Advertisement
Guest User

Basic R5

a guest
Jul 8th, 2013
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.01 KB | None | 0 0
  1. /*
  2. MySQL R5 basic Gamemode by Items4Landwirt aka. Music4You™
  3. Dieses Script soll als Kleines einführungs Script in das MySQL scripting geben.
  4. Es ist nichts Besonderes^^
  5.  
  6. Bei intresse schaut doch mal auf meinem YT Kanal vorbei: http://www.youtube.com/user/Music4You43 würde mich über ein Abo freuen :)
  7.  
  8. Hier noch der Link zum Tutorial von Maddin für das R5 Plugin
  9. https://forum.sa-mp.de/san-andreas-multiplayer/tutorials/61587-mysql-installation-zugriff-einstellungen-login-register-beispiel/
  10. */
  11.  
  12. //=============== Includes ===============//
  13. #include <a_samp>
  14. #include <ocmd>
  15. #include <banfix>
  16.  
  17. //=============== Defines ===============//
  18. #include <a_mysql>
  19. #define SQL_HOST "127.0.0.1"
  20. #define SQL_USER "root"
  21. #define SQL_PASS "johndeere"
  22. #define SQL_DATA "samp"
  23.  
  24. #define grau 0xB4B4B4FF
  25. #define rot 0xFF0023FF
  26. #define blau 0x0023FFFF
  27. #define orange 0xFFAA00FF
  28. #define gruen 0x4BB400FF
  29.  
  30. #define SCM SendClientMessage
  31.  
  32. //=============== Enum´s ===============//
  33. enum
  34. {
  35. DIALOG_REGISTER,
  36. DIALOG_LOGIN,
  37. DIALOG_KICK,
  38. DIALOG_BAN,
  39. DIALOG_STATS
  40. };
  41.  
  42. enum SpielerDaten
  43. {
  44. pName[MAX_PLAYER_NAME],
  45. Level,
  46. Geld,
  47. Adminlevel,
  48. ban,
  49. pAutoschein,
  50. pMotorradschein,
  51. pFlugschein,
  52. pBootschein
  53. }
  54. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  55.  
  56. main()
  57. {
  58. print("\n======================================================");
  59. print(" MySQL R5 Basic Script by Items4Landwirt aka. Music4You");
  60. print("======================================================\n");
  61. }
  62.  
  63. public OnGameModeInit()
  64. {
  65.  
  66. SetGameModeText("German Reallife");
  67. Connect_To_Database();
  68. createtable();
  69. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  70. return 1;
  71. }
  72.  
  73. public OnGameModeExit()
  74. {
  75. return 1;
  76. }
  77.  
  78. public OnPlayerRequestClass(playerid, classid)
  79. {
  80. if(GetPVarInt(playerid,"Eingeloggt") == 0)
  81. {
  82. if(mysql_CheckAccount(playerid) == 0)
  83. {
  84. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Herzlich Wilkommen auf Name\nGebe nun dein Gewünschtes Passwort ein um einen Account zu erstellt","Weiter","Exit");
  85. }
  86. else if(mysql_CheckAccount(playerid) == 1)
  87. {
  88. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Herzlich Wilkommen auf Name\nBitte gib dein Passwort ein:","Login","Abbrechen");
  89. }
  90. }
  91. return 1;
  92. }
  93.  
  94. public OnPlayerConnect(playerid)
  95. {
  96. return 1;
  97. }
  98.  
  99. public OnPlayerDisconnect(playerid, reason)
  100. {
  101. SavePlayer(playerid);
  102. DeletePVar(playerid,"Eingeloggt");
  103. return 1;
  104. }
  105.  
  106. public OnPlayerSpawn(playerid)
  107. {
  108. return 1;
  109. }
  110.  
  111. public OnPlayerDeath(playerid, killerid, reason)
  112. {
  113. return 1;
  114. }
  115.  
  116. public OnVehicleSpawn(vehicleid)
  117. {
  118. return 1;
  119. }
  120.  
  121. public OnVehicleDeath(vehicleid, killerid)
  122. {
  123. return 1;
  124. }
  125.  
  126. public OnPlayerText(playerid, text[])
  127. {
  128. return 1;
  129. }
  130.  
  131. public OnPlayerCommandText(playerid, cmdtext[])
  132. {
  133. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  134. {
  135. // Do something here
  136. return 1;
  137. }
  138. return 1;
  139. }
  140. ocmd:makeadmin(playerid, params[])
  141. {
  142. new pid,level,string[128],string1[128];
  143. if(!IstSpielerAdmin(playerid,5)) return SCM(playerid,rot,"Nicht befugt!");
  144. if(sscanf(params,"ud", pid, level)) return SendClientMessage(playerid, grau,"Verwendung : /makeadmin [ID] [Level]");
  145. if(IstSpielerAdmin(pid,level) == level) return SendClientMessage(playerid, orange,"Der Spieler hat schon das angegebene Adminlevel!");
  146. SpielerInfo[pid][Adminlevel] = level;
  147. SavePlayer(pid);
  148.  
  149. format(string,sizeof(string),"[%s] %s hat dir das Adminlevel %d gegeben ",adminrang(playerid),SpielerName(playerid),level);
  150. format(string1,sizeof(string1),"Du hast %s das Adminlevel %d gegeben ",SpielerName(pid),level);
  151. SCM(playerid,gruen,string1);
  152. SCM(pid,gruen,string);
  153. return 1;
  154. }
  155. ocmd:kick(playerid,params[])
  156. {
  157. new pID,reason[128],string[128],msg[128];
  158. if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht befugt!");
  159. if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, grau, "Verwendung: /kick [ID] [Grund]");
  160.  
  161. format(string,sizeof(string),"[%s] %s hat dich vom Server gekickt, Grund: %s.\n\nAchte das nächste mal darauf, sonst werden härtere Sanktionen Kommen!",adminrang(playerid),SpielerName(playerid),reason);
  162. format(msg,sizeof(msg),"[%s] %s hat den Spieler %s vom Server gekickt, Grund: %s",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
  163. ShowPlayerDialog(pID,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick",string,"Verlassen","");
  164. SendClientMessageToAll(rot,msg);
  165. Kick(pID);
  166. return 1;
  167. }
  168. ocmd:ban(playerid,params[])
  169. {
  170. new pID,string[128],msg[128],reason[128],query[150];
  171. if(!IstSpielerAdmin(playerid,4)) return SCM(playerid,rot,"Nicht Befugt");
  172. if(sscanf(params,"us",pID,reason)) return SendClientMessage(playerid, grau, "Verwendung: /ban [ID] [Grund]");
  173.  
  174. format(string,sizeof(string),"[%s] %s hat dich Permanent vom Server gebannt, Grund: %s.\n\nFalls du zu unrecht gebannt wurdest mache einen Screen davon und schreib es im Forum",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
  175. format(msg,sizeof(string),"[%s] %s hat den Spieler %s vom Server Gebannt, Grund %s.",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
  176. ShowPlayerDialog(pID,DIALOG_BAN,DIALOG_STYLE_MSGBOX,"Ban",string,"Verlassen","");
  177. SendClientMessageToAll(rot,msg);
  178.  
  179. format(query, sizeof(query), "UPDATE accounts SET banngrund = '%s' WHERE Name = '%s'", reason, SpielerName(pID));
  180. mysql_query(query);
  181. SpielerInfo[playerid][ban]=1;
  182. Kick(pID);
  183. return 1;
  184. }
  185. ocmd:a(playerid, params[])
  186. {
  187. if(SpielerInfo[playerid][Adminlevel] > 0)
  188. {
  189. new text[128];
  190. if(sscanf(params, "s", text))
  191. return SendClientMessage(playerid, grau, "Benutzung: /a [Text]");
  192. format(text, sizeof text, "[Adminchat] [%s] {FAFAFA}%s: %s", adminrang(playerid), SpielerName(playerid), text);
  193. for(new i; i < GetMaxPlayers(); i++)
  194. {
  195. if(IsPlayerConnected(i))
  196. SendAdminMessage(blau, text);
  197. }
  198. }
  199. return 1;
  200. }
  201. ocmd:mute(playerid,params[])
  202. {
  203. if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
  204. new pID,string[128];
  205. if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"/mute [Spielername/ID]");
  206. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht online");
  207. SetPVarInt(pID,"Mute",1);
  208. format(string,sizeof(string),"AdmCmd: Du wurdest von Admin %s gemutet",SpielerName(playerid));
  209. SendClientMessage(pID,rot,string);
  210. format(string,sizeof(string),"AdmCmd: Du hast erfolgreich User %s gemutet",SpielerName(pID));
  211. SendClientMessage(playerid,rot,string);
  212. return 1;
  213. }
  214. ocmd:unmute(playerid,params[])
  215. {
  216. if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
  217. new pID,string[128];
  218. if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"/unmute [Spielername/ID]");
  219. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht online");
  220. SetPVarInt(pID,"Mute",0);
  221. format(string,sizeof(string),"AdmCmd: Du wurdest von Admin %s entmutet",SpielerName(playerid));
  222. SendClientMessage(pID,gruen,string);
  223. format(string,sizeof(string),"AdmCmd: Du hast erfolgreich User %s entmutet",SpielerName(pID));
  224. SendClientMessage(playerid,gruen,string);
  225. return 1;
  226. }
  227. ocmd:goto(playerid,params[])
  228. {
  229. if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
  230. new pID,string[128],string2[128];
  231. if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"FEHLER: /go [ID/Name]");
  232. new Float:x, Float:y, Float:z;
  233. new car = GetPlayerVehicleID(playerid);
  234. GetPlayerPos(pID,x,y,z);
  235. SetPlayerInterior(playerid,GetPlayerInterior(pID));
  236. SetPlayerPos(playerid,x+2,y+2,z+2);
  237. if(IsPlayerInAnyVehicle(playerid))
  238. {
  239. SetVehiclePos(GetPlayerVehicleID(playerid), x+2, y+2, z+2);
  240. PutPlayerInVehicle(playerid,car,0);
  241. }
  242. else
  243. {
  244. format(string,128,"Du hast dich zu %s teleportiert.",SpielerName(pID));
  245. format(string2,128,"%s hat sich zu dir teleportiert.",SpielerName(playerid));
  246. SendClientMessage(pID,orange,string2);
  247. SendClientMessage(playerid,orange,string);
  248. }
  249. return 1;
  250. }
  251. ocmd:gethere(playerid,params[])
  252. {
  253. if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt!");
  254. new string[128],player;
  255. if(sscanf(params,"u",player))return SendClientMessage(playerid,grau,"FEHLER: /gethere [ID/Name]");
  256. {
  257. new sendername[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
  258. GetPlayerName(player,sendername,sizeof sendername);
  259. GetPlayerName(playerid,playername,sizeof playername);
  260. format(string,sizeof string,"Admin %s hat dich zu sich geportet.",playername);
  261. SendClientMessage(player,orange,string);
  262. format(string,sizeof string,"Du hast %s zu dir geportet.",sendername);
  263. SendClientMessage(playerid,orange,string);
  264. new Float:X,Float:Y,Float:Z;
  265. GetPlayerPos(playerid,X,Y,Z);
  266. if(IsPlayerInAnyVehicle(player))
  267. {
  268. new autoid = GetPlayerVehicleID(player);
  269. SetVehiclePos(autoid, X, Y+4, Z);
  270. }
  271. else
  272. {
  273. SetPlayerPos(player,X,Y+2,Z);
  274. }
  275. }
  276. return 1;
  277. }
  278. ocmd:tv(playerid,params[])
  279. {
  280. new pID,string[128];
  281. if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
  282. if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"/tv [Spielername/ID]");
  283. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online");
  284. {
  285. format(string,sizeof(string),"AdmCmd: Du beobachtest nun %s",SpielerName(pID));
  286. SendClientMessage(playerid,orange,string);
  287. TogglePlayerSpectating(playerid, 1);
  288. PlayerSpectatePlayer(playerid, pID);
  289. }
  290. return 1;
  291. }
  292. ocmd:specoff(playerid,params[])
  293. {
  294. if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
  295. {
  296. TogglePlayerSpectating(playerid, 0);
  297. }
  298. return 1;
  299. }
  300. ocmd:sethp(playerid,params[])
  301. {
  302. new pID;
  303. new Health;
  304. if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
  305. if(sscanf(params, "ud", pID, Health))return SendClientMessage(playerid,grau,"/sethp [Spielername/ID] [Leben]");
  306. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online!");
  307. SetPlayerHealth(pID, Health);
  308. new string[128];
  309. format(string, sizeof(string), "AdmCmd: Dein Leben wurden von %s auf %d gesetzt.", SpielerName(playerid), Health);
  310. SendClientMessage(pID, gruen, string);
  311. format(string, sizeof(string), "AdmCmd: Du hast das Leben von %s auf %d gesetzt.", SpielerName(pID), Health);
  312. SendClientMessage(playerid, gruen, string);
  313. SavePlayer(pID);
  314. return 1;
  315. }
  316. ocmd:setarmour(playerid,params[])
  317. {
  318. new pID;
  319. new Armour;
  320. if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
  321. if(sscanf(params, "ud", pID, Armour))return SendClientMessage(playerid,grau,"Benutzung: /setarmour [Spielername/ID] [Armour]");
  322. if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online!");
  323. SetPlayerArmour(pID, Armour);
  324. new string[256];
  325. format(string, sizeof(string), "AdmCmd: Deine Weste wurden von %s auf %d gesetzt.", SpielerName(playerid), Armour);
  326. SendClientMessage(pID, gruen, string);
  327. format(string, sizeof(string), "AdmCmd: Du hast die Weste von %s auf %d gesetzt.", SpielerName(pID),Armour);
  328. SendClientMessage(playerid, gruen, string);
  329. SavePlayer(pID);
  330. return 1;
  331. }
  332. ocmd:stats(playerid,params[])
  333. {
  334. new string[600];
  335. format(string,sizeof(string),"Statistik von %s\n\nGeld\t\t%s\nLevel\t\t%s\nAdminlevel\t%s",SpielerName(playerid),GetPlayerMoney(playerid),GetPlayerScore(playerid),adminrang(playerid));
  336. ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_LIST,"Statistik",string,"Ok","");
  337. return 1;
  338. }
  339.  
  340. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  341. {
  342. return 1;
  343. }
  344.  
  345. public OnPlayerExitVehicle(playerid, vehicleid)
  346. {
  347. return 1;
  348. }
  349.  
  350. public OnPlayerStateChange(playerid, newstate, oldstate)
  351. {
  352. new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
  353. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  354. {
  355. if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 || modelid == 454 )
  356. {
  357. if(SpielerInfo[playerid][pBootschein] == 0)
  358. {
  359. SendClientMessage(playerid, rot, " Du hast keine Bootschein");
  360. RemovePlayerFromVehicle(playerid);
  361.  
  362. }
  363. else
  364. {
  365.  
  366. }
  367. }
  368. else if(modelid == 592 || modelid == 577 || modelid == 511 || modelid == 512 || modelid == 593 || modelid == 520 || modelid == 553 || modelid == 476 || modelid == 519 || modelid == 460 || modelid == 513 || modelid == 548 || modelid == 425 || modelid == 417 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 563 || modelid == 447 || modelid == 469 )
  369. {
  370. if(SpielerInfo[playerid][pFlugschein] == 0)
  371. {
  372. SendClientMessage(playerid, rot, "Du hast keinen Flugschein !");
  373. RemovePlayerFromVehicle(playerid);
  374. }
  375. else
  376. {
  377.  
  378. }
  379. }
  380. else if(modelid == 448 || modelid == 521 || modelid == 522 || modelid == 523 || modelid == 581 || modelid == 586)
  381. {
  382. if(SpielerInfo[playerid][pMotorradschein] == 0)
  383. {
  384. SendClientMessage(playerid, rot, "Du hast keinen Motorradschein !");
  385. RemovePlayerFromVehicle(playerid);
  386. }
  387. else
  388. {
  389.  
  390. }
  391. }
  392. else if(modelid == 509 || modelid == 510 || modelid == 481)
  393. {
  394. }
  395. else
  396. {
  397. if(SpielerInfo[playerid][pAutoschein] == 0)
  398. {
  399. SCM(playerid,rot,"Du hast keinen Autoschein");
  400. RemovePlayerFromVehicle(playerid);
  401. }
  402. else
  403. {
  404.  
  405. }
  406. }
  407. }
  408. return 1;
  409. }
  410.  
  411. public OnPlayerEnterCheckpoint(playerid)
  412. {
  413. return 1;
  414. }
  415.  
  416. public OnPlayerLeaveCheckpoint(playerid)
  417. {
  418. return 1;
  419. }
  420.  
  421. public OnPlayerEnterRaceCheckpoint(playerid)
  422. {
  423. return 1;
  424. }
  425.  
  426. public OnPlayerLeaveRaceCheckpoint(playerid)
  427. {
  428. return 1;
  429. }
  430.  
  431. public OnRconCommand(cmd[])
  432. {
  433. return 1;
  434. }
  435.  
  436. public OnPlayerRequestSpawn(playerid)
  437. {
  438. return 1;
  439. }
  440.  
  441. public OnObjectMoved(objectid)
  442. {
  443. return 1;
  444. }
  445.  
  446. public OnPlayerObjectMoved(playerid, objectid)
  447. {
  448. return 1;
  449. }
  450.  
  451. public OnPlayerPickUpPickup(playerid, pickupid)
  452. {
  453. return 1;
  454. }
  455.  
  456. public OnVehicleMod(playerid, vehicleid, componentid)
  457. {
  458. return 1;
  459. }
  460.  
  461. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  462. {
  463. return 1;
  464. }
  465.  
  466. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  467. {
  468. return 1;
  469. }
  470.  
  471. public OnPlayerSelectedMenuRow(playerid, row)
  472. {
  473. return 1;
  474. }
  475.  
  476. public OnPlayerExitedMenu(playerid)
  477. {
  478. return 1;
  479. }
  480.  
  481. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  482. {
  483. return 1;
  484. }
  485.  
  486. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  487. {
  488. return 1;
  489. }
  490.  
  491. public OnRconLoginAttempt(ip[], password[], success)
  492. {
  493. return 1;
  494. }
  495.  
  496. public OnPlayerUpdate(playerid)
  497. {
  498. return 1;
  499. }
  500.  
  501. public OnPlayerStreamIn(playerid, forplayerid)
  502. {
  503. return 1;
  504. }
  505.  
  506. public OnPlayerStreamOut(playerid, forplayerid)
  507. {
  508. return 1;
  509. }
  510.  
  511. public OnVehicleStreamIn(vehicleid, forplayerid)
  512. {
  513. return 1;
  514. }
  515.  
  516. public OnVehicleStreamOut(vehicleid, forplayerid)
  517. {
  518. return 1;
  519. }
  520.  
  521. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  522. {
  523. switch(dialogid)
  524. {
  525. case DIALOG_REGISTER:
  526. {
  527. if(response)
  528. {
  529. if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
  530. {
  531. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
  532. return 1;
  533. }
  534. else
  535. {
  536. CreateAccount(playerid, inputtext); //Account wird erstellt
  537. SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
  538. SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
  539. return 1;
  540. }
  541. }
  542. else
  543. {
  544. Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
  545. }
  546. }
  547. case DIALOG_LOGIN:
  548. {
  549. if(response)
  550. {
  551. if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
  552. {
  553. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  554. return 1;
  555. }
  556. else
  557. {
  558. new name[MAX_PLAYER_NAME];
  559. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  560. if(!strcmp(inputtext, mysql_ReturnPasswort(name), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
  561. {
  562. SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
  563. LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
  564. SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
  565. return 1;
  566. }
  567. else
  568. {
  569. //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
  570. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  571. return 1;
  572. }
  573. }
  574. }
  575. else
  576. {
  577. Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
  578. }
  579. }
  580. }
  581. return 1;
  582. }
  583. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  584. {
  585. return 1;
  586. }
  587.  
  588. //================ Stocks ================//
  589. stock Connect_To_Database()
  590. {
  591. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  592. if(mysql_ping() == 1)
  593. {
  594. print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  595. return true;
  596. }
  597. else
  598. {
  599. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  600. print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  601. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  602. if(mysql_ping() == 1)
  603. {
  604. print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
  605. return true;
  606. }
  607. else
  608. {
  609. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  610. print("<-| [MYSQL] Der Server wird nun beendet!");
  611. SendRconCommand("exit");
  612. return true;
  613. }
  614. }
  615. }
  616. stock mysql_CheckAccount(playerid)
  617. {
  618. new Query[128],Name[MAX_PLAYER_NAME],count;
  619. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  620. mysql_real_escape_string(Name, Name);
  621. format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
  622. mysql_query(Query);
  623. mysql_store_result();
  624. count = mysql_num_rows();
  625. mysql_free_result();
  626. return count;
  627. }
  628. stock CreateAccount(playerid, pass[])
  629. {
  630. new query[256],Name[MAX_PLAYER_NAME];
  631. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  632. mysql_real_escape_string(Name,Name);
  633. mysql_real_escape_string(pass,pass);
  634. format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
  635. mysql_query(query);
  636. return true;
  637. }
  638. stock mysql_ReturnPasswort(Name[])
  639. {
  640. new query[130], Get[130];
  641. mysql_real_escape_string(Name, Name);
  642. format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
  643. mysql_query(query);
  644. mysql_store_result();
  645. mysql_fetch_row(Get);
  646. mysql_free_result();
  647. return Get;
  648. }
  649. stock LoadPlayer(playerid)
  650. {
  651. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
  652. {
  653. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
  654. SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName])); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
  655. GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]));
  656. SpielerInfo[playerid][Adminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pName]);
  657. SpielerInfo[playerid][ban] = mysql_GetInt("accounts", "ban", "Name", SpielerInfo[playerid][pName]);
  658. SpielerInfo[playerid][pAutoschein] = mysql_GetInt("accounts", "Autoschein", "Name", SpielerInfo[playerid][pName]);
  659. SpielerInfo[playerid][pMotorradschein] = mysql_GetInt("accounts","Motorradschein", "Name", SpielerInfo[playerid][pName]);
  660. SpielerInfo[playerid][pBootschein] = mysql_GetInt("accounts", "Bootschein", "Name", SpielerInfo[playerid][pName]);
  661. SpielerInfo[playerid][pFlugschein] = mysql_GetInt("accounts", "Flugschein", "Name", SpielerInfo[playerid][pName]);
  662. }
  663. new querys[128];
  664. format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
  665. mysql_query(querys);
  666.  
  667. if(SpielerInfo[playerid][ban]==1)
  668. {
  669. Kick(playerid);
  670. }
  671. return 1;
  672. }
  673. stock SavePlayer(playerid)
  674. {
  675. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
  676. {
  677. if(GetPVarInt(playerid,"Eingeloggt") == 1)
  678. {
  679. mysql_SetInt("accounts", "Level", GetPlayerScore(playerid), "Name", SpielerInfo[playerid][pName]);
  680. mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);
  681. mysql_SetInt("accounts", "Adminlevel", SpielerInfo[playerid][Adminlevel], "Name", SpielerInfo[playerid][pName]);
  682. mysql_SetInt("accounts", "ban", SpielerInfo[playerid][ban], "Name", SpielerInfo[playerid][pName]);
  683. mysql_SetInt("accounts", "Autoschein", SpielerInfo[playerid][pAutoschein], "Name", SpielerInfo[playerid][pName]);
  684. mysql_SetInt("accounts", "Motorradschein", SpielerInfo[playerid][pMotorradschein], "Name", SpielerInfo[playerid][pName]);
  685. mysql_SetInt("accounts", "Flugschein", SpielerInfo[playerid][pFlugschein], "Name", SpielerInfo[playerid][pName]);
  686. mysql_SetInt("accounts", "Bootschein", SpielerInfo[playerid][pBootschein], "Name", SpielerInfo[playerid][pName]);
  687. }
  688. }
  689. new querys[128];
  690. format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
  691. mysql_query(querys);
  692. return 1;
  693. }
  694. stock mysql_GetString(Table[], Field[], Where[], Is[])
  695. {
  696. new query[128], Get[128];
  697. mysql_real_escape_string(Table, Table);
  698. mysql_real_escape_string(Field, Field);
  699. mysql_real_escape_string(Where, Where);
  700. mysql_real_escape_string(Is, Is);
  701. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  702. mysql_query(query);
  703. mysql_store_result();
  704. mysql_fetch_row(Get);
  705. mysql_free_result();
  706. return Get;
  707. }
  708. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  709. {
  710. new query[128], Float:sqlfloat;
  711. mysql_real_escape_string(Table, Table);
  712. mysql_real_escape_string(Field, Field);
  713. mysql_real_escape_string(Where, Where);
  714. mysql_real_escape_string(Is, Is);
  715. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  716. mysql_query(query);
  717. mysql_store_result();
  718. mysql_fetch_float(sqlfloat);
  719. mysql_free_result();
  720. return sqlfloat;
  721. }
  722. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  723. {
  724. new query[128];
  725. mysql_real_escape_string(Table, Table);
  726. mysql_real_escape_string(Field, Field);
  727. mysql_real_escape_string(Where, Where);
  728. mysql_real_escape_string(Where2, Where2);
  729. format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  730. mysql_query(query);
  731. return true;
  732. }
  733. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  734. {
  735. new query[128];
  736. mysql_real_escape_string(Table, Table);
  737. mysql_real_escape_string(Field, Field);
  738. mysql_real_escape_string(To, To);
  739. mysql_real_escape_string(Where, Where);
  740. mysql_real_escape_string(Where2, Where2);
  741. format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  742. mysql_query(query);
  743. return true;
  744. }
  745. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  746. {
  747. new query[128];
  748. mysql_real_escape_string(Table, Table);
  749. mysql_real_escape_string(Field, Field);
  750. mysql_real_escape_string(Where, Where);
  751. mysql_real_escape_string(Where2, Where2);
  752. format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  753. mysql_query(query);
  754. return true;
  755. }
  756. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  757. {
  758. new query[128];
  759. mysql_real_escape_string(Table, Table);
  760. mysql_real_escape_string(Field, Field);
  761. mysql_real_escape_string(Where, Where);
  762. mysql_real_escape_string(Is, Is);
  763. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  764. mysql_query(query);
  765. mysql_store_result();
  766. new sqlint = mysql_fetch_int();
  767. mysql_free_result();
  768. return sqlint;
  769. }
  770. stock createtable()
  771. {
  772. mysql_query("CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  773. mysql_query("ALTER TABLE `accounts` ADD `Name` varchar(64)");
  774. mysql_query("ALTER TABLE `accounts` ADD `Passwort` varchar(128) NOT NULL");
  775. mysql_query("ALTER TABLE `accounts` ADD `IP` varchar(128) NOT NULL");
  776. mysql_query("ALTER TABLE `accounts` ADD `Level` int(11) NOT NULL DEFAULT '0'");
  777. mysql_query("ALTER TABLE `accounts` ADD `Geld` int(11) NOT NULL DEFAULT '0'");
  778. mysql_query("ALTER TABLE `accounts` ADD `Adminlevel` int(11) NOT NULL DEFAULT '0'");
  779. mysql_query("ALTER TABLE `accounts` ADD `ban` varchar(128) NOT NULL");
  780. mysql_query("ALTER TABLE `accounts` ADD `banngrund` varchar(128) NOT NULL");
  781. mysql_query("ALTER TABLE `accounts` ADD `Autoschein` int(11) NOT NULL DEFAULT '0'");
  782. mysql_query("ALTER TABLE `accounts` ADD `Motorradschein` int(11) NOT NULL DEFAULT '0'");
  783. mysql_query("ALTER TABLE `accounts` ADD `Flugschein` int(11) NOT NULL DEFAULT '0'");
  784. mysql_query("ALTER TABLE `accounts` ADD `Bootschein` int(11) NOT NULL DEFAULT '0'");
  785. }
  786. stock SpielerName(playerid)
  787. {
  788. new name[MAX_PLAYER_NAME];
  789. GetPlayerName(playerid,name,sizeof(name));
  790. return name;
  791. }
  792. stock IstSpielerAdmin(playerid,level)
  793. {
  794. if(SpielerInfo[playerid][Adminlevel] >= level) return 1;
  795. return 0;
  796. }
  797. stock adminrang(playerid)
  798. {
  799. new adminr[50];
  800. if (SpielerInfo[playerid][Adminlevel] == 0) adminr = ("Zivilist");
  801. if (SpielerInfo[playerid][Adminlevel] == 1) adminr = ("Probe Supporter");
  802. if (SpielerInfo[playerid][Adminlevel] == 2) adminr = ("Supporter");
  803. if (SpielerInfo[playerid][Adminlevel] == 3) adminr = ("Admin");
  804. if (SpielerInfo[playerid][Adminlevel] == 4) adminr = ("High Admin");
  805. if (SpielerInfo[playerid][Adminlevel] == 5) adminr = ("Server Manager");
  806. if (SpielerInfo[playerid][Adminlevel] == 6) adminr = ("Server Leitung");
  807. return adminr;
  808. }
  809. stock SpielerIP(playerid)
  810. {
  811. new getip[16];
  812. GetPlayerIp(playerid,getip,sizeof(getip));
  813. return getip;
  814. }
  815. stock SendAdminMessage(farbe,string[])
  816. {
  817. for(new i = 0; i < MAX_PLAYERS; i++)
  818. {
  819. if (SpielerInfo[i][Adminlevel] >= 1)
  820. {
  821. SendClientMessage(i, farbe, string);
  822. }
  823. }
  824. }
  825.  
  826. //Sscanf
  827. stock sscanf(string[], format[], {Float,_}:...)
  828. {
  829. #if defined isnull
  830. if (isnull(string))
  831. #else
  832. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  833. #endif
  834. {
  835. return format[0];
  836. }
  837. #pragma tabsize 4
  838. new
  839. formatPos = 0,
  840. stringPos = 0,
  841. paramPos = 2,
  842. paramCount = numargs(),
  843. delim = ' ';
  844. while (string[stringPos] && string[stringPos] <= ' ')
  845. {
  846. stringPos++;
  847. }
  848. while (paramPos < paramCount && string[stringPos])
  849. {
  850. switch (format[formatPos++])
  851. {
  852. case '\0':
  853. {
  854. return 0;
  855. }
  856. case 'i', 'd':
  857. {
  858. new
  859. neg = 1,
  860. num = 0,
  861. ch = string[stringPos];
  862. if (ch == '-')
  863. {
  864. neg = -1;
  865. ch = string[++stringPos];
  866. }
  867. do
  868. {
  869. stringPos++;
  870. if ('0' <= ch <= '9')
  871. {
  872. num = (num * 10) + (ch - '0');
  873. }
  874. else
  875. {
  876. return -1;
  877. }
  878. }
  879. while ((ch = string[stringPos]) > ' ' && ch != delim);
  880. setarg(paramPos, 0, num * neg);
  881. }
  882. case 'h', 'x':
  883. {
  884. new
  885. num = 0,
  886. ch = string[stringPos];
  887. do
  888. {
  889. stringPos++;
  890. switch (ch)
  891. {
  892. case 'x', 'X':
  893. {
  894. num = 0;
  895. continue;
  896. }
  897. case '0' .. '9':
  898. {
  899. num = (num << 4) | (ch - '0');
  900. }
  901. case 'a' .. 'f':
  902. {
  903. num = (num << 4) | (ch - ('a' - 10));
  904. }
  905. case 'A' .. 'F':
  906. {
  907. num = (num << 4) | (ch - ('A' - 10));
  908. }
  909. default:
  910. {
  911. return -1;
  912. }
  913. }
  914. }
  915. while ((ch = string[stringPos]) > ' ' && ch != delim);
  916. setarg(paramPos, 0, num);
  917. }
  918. case 'c':
  919. {
  920. setarg(paramPos, 0, string[stringPos++]);
  921. }
  922. case 'f':
  923. {
  924.  
  925. new changestr[16], changepos = 0, strpos = stringPos;
  926. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  927. {
  928. changestr[changepos++] = string[strpos++];
  929. }
  930. changestr[changepos] = '\0';
  931. setarg(paramPos,0,_:floatstr(changestr));
  932. }
  933. case 'p':
  934. {
  935. delim = format[formatPos++];
  936. continue;
  937. }
  938. case '\'':
  939. {
  940. new
  941. end = formatPos - 1,
  942. ch;
  943. while ((ch = format[++end]) && ch != '\'') {}
  944. if (!ch)
  945. {
  946. return -1;
  947. }
  948. format[end] = '\0';
  949. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  950. {
  951. if (format[end + 1])
  952. {
  953. return -1;
  954. }
  955. return 0;
  956. }
  957. format[end] = '\'';
  958. stringPos = ch + (end - formatPos);
  959. formatPos = end + 1;
  960. }
  961. case 'u':
  962. {
  963. new
  964. end = stringPos - 1,
  965. id = 0,
  966. bool:num = true,
  967. ch;
  968. while ((ch = string[++end]) && ch != delim)
  969. {
  970. if (num)
  971. {
  972. if ('0' <= ch <= '9')
  973. {
  974. id = (id * 10) + (ch - '0');
  975. }
  976. else
  977. {
  978. num = false;
  979. }
  980. }
  981. }
  982. if (num && IsPlayerConnected(id))
  983. {
  984. setarg(paramPos, 0, id);
  985. }
  986. else
  987. {
  988. #if !defined foreach
  989. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  990. #define __SSCANF_FOREACH__
  991. #endif
  992. string[end] = '\0';
  993. num = false;
  994. new
  995. name[MAX_PLAYER_NAME];
  996. id = end - stringPos;
  997. foreach (Player, playerid)
  998. {
  999. GetPlayerName(playerid, name, sizeof (name));
  1000. if (!strcmp(name, string[stringPos], true, id))
  1001. {
  1002. setarg(paramPos, 0, playerid);
  1003. num = true;
  1004. break;
  1005. }
  1006. }
  1007. if (!num)
  1008. {
  1009. setarg(paramPos, 0, INVALID_PLAYER_ID);
  1010. }
  1011. string[end] = ch;
  1012. #if defined __SSCANF_FOREACH__
  1013. #undef foreach
  1014. #undef __SSCANF_FOREACH__
  1015. #endif
  1016. }
  1017. stringPos = end;
  1018. }
  1019. case 's', 'z':
  1020. {
  1021. new
  1022. i = 0,
  1023. ch;
  1024. if (format[formatPos])
  1025. {
  1026. while ((ch = string[stringPos++]) && ch != delim)
  1027. {
  1028. setarg(paramPos, i++, ch);
  1029. }
  1030. if (!i)
  1031. {
  1032. return -1;
  1033. }
  1034. }
  1035. else
  1036. {
  1037. while ((ch = string[stringPos++]))
  1038. {
  1039. setarg(paramPos, i++, ch);
  1040. }
  1041. }
  1042. stringPos--;
  1043. setarg(paramPos, i, '\0');
  1044. }
  1045. default:
  1046. {
  1047. continue;
  1048. }
  1049. }
  1050. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1051. {
  1052. stringPos++;
  1053. }
  1054. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1055. {
  1056. stringPos++;
  1057. }
  1058. paramPos++;
  1059. }
  1060. do
  1061. {
  1062. if ((delim = format[formatPos++]) > ' ')
  1063. {
  1064. if (delim == '\'')
  1065. {
  1066. while ((delim = format[formatPos++]) && delim != '\'') {}
  1067. }
  1068. else if (delim != 'z')
  1069. {
  1070. return delim;
  1071. }
  1072. }
  1073. }
  1074. while (delim > ' ');
  1075. return 0;
  1076. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement