Advertisement
Maddin

MySQL beispiel Skript

Apr 8th, 2011
2,216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.12 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3.  
  4. #define SQL_HOST   "127.0.0.1"
  5. #define SQL_USER   "root"
  6. #define SQL_PASS   ""
  7. #define SQL_DATA   "samp_db"
  8.  
  9. #define DIALOG_REGISTER (1)
  10. #define DIALOG_LOGIN (2)
  11.  
  12. enum SpielerDaten
  13. {
  14.     pName[MAX_PLAYER_NAME],
  15.     pLevel,
  16.     pGeld,
  17.     pKills,
  18.     pTode,
  19.     Float:pHealth
  20. }
  21. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  22.  
  23. main()
  24. {
  25.     print("\n----------------------------------");
  26.     print(" Blank Gamemode by your name here");
  27.     print("----------------------------------\n");
  28. }
  29.  
  30. public OnGameModeInit()
  31. {
  32.     Connect_To_Database();
  33.     SetGameModeText("Blank Script");
  34.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  35.     return 1;
  36. }
  37.  
  38. public OnGameModeExit()
  39. {
  40.     return 1;
  41. }
  42. public OnPlayerRequestClass(playerid, classid)
  43. {
  44.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  45.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  46.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  47.     if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin auswahl uns neu Einloggen müssen.
  48.     {
  49.         if(mysql_CheckAccount(playerid) == 0)//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
  50.         {
  51.             SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
  52.             SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde nicht gefunden, bitte Registriere dich!");
  53.             ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Bitte Gib ein Passwort an:","Register","Exit");
  54.         }
  55.         else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
  56.         {
  57.             SendClientMessage(playerid, 0xFFFFFFFF,"________-> Willkommen auf auf meinem Server <-________");
  58.             SendClientMessage(playerid, 0xFFFFFFFF,"Dein Account wurde gefunden, bitte Log dich nun ein!");
  59.             ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
  60.         }
  61.     }
  62.     return 1;
  63. }
  64.  
  65. public OnPlayerConnect(playerid)
  66. {
  67.     return 1;
  68. }
  69.  
  70. public OnPlayerDisconnect(playerid, reason)
  71. {
  72.     SavePlayer(playerid);
  73.     DeletePVar(playerid,"Eingeloggt");
  74.     return 1;
  75. }
  76.  
  77. public OnPlayerSpawn(playerid)
  78. {
  79.     return 1;
  80. }
  81.  
  82. public OnPlayerDeath(playerid, killerid, reason)
  83. {
  84.     return 1;
  85. }
  86.  
  87. public OnVehicleSpawn(vehicleid)
  88. {
  89.     return 1;
  90. }
  91.  
  92. public OnVehicleDeath(vehicleid, killerid)
  93. {
  94.     return 1;
  95. }
  96.  
  97. public OnPlayerText(playerid, text[])
  98. {
  99.     return 1;
  100. }
  101.  
  102. public OnPlayerCommandText(playerid, cmdtext[])
  103. {
  104.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  105.     {
  106.         // Do something here
  107.         return 1;
  108.     }
  109.     return 0;
  110. }
  111.  
  112. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  113. {
  114.     return 1;
  115. }
  116.  
  117. public OnPlayerExitVehicle(playerid, vehicleid)
  118. {
  119.     return 1;
  120. }
  121.  
  122. public OnPlayerStateChange(playerid, newstate, oldstate)
  123. {
  124.     return 1;
  125. }
  126.  
  127. public OnPlayerEnterCheckpoint(playerid)
  128. {
  129.     return 1;
  130. }
  131.  
  132. public OnPlayerLeaveCheckpoint(playerid)
  133. {
  134.     return 1;
  135. }
  136.  
  137. public OnPlayerEnterRaceCheckpoint(playerid)
  138. {
  139.     return 1;
  140. }
  141.  
  142. public OnPlayerLeaveRaceCheckpoint(playerid)
  143. {
  144.     return 1;
  145. }
  146.  
  147. public OnRconCommand(cmd[])
  148. {
  149.     return 1;
  150. }
  151.  
  152. public OnPlayerRequestSpawn(playerid)
  153. {
  154.     return 1;
  155. }
  156.  
  157. public OnObjectMoved(objectid)
  158. {
  159.     return 1;
  160. }
  161.  
  162. public OnPlayerObjectMoved(playerid, objectid)
  163. {
  164.     return 1;
  165. }
  166.  
  167. public OnPlayerPickUpPickup(playerid, pickupid)
  168. {
  169.     return 1;
  170. }
  171.  
  172. public OnVehicleMod(playerid, vehicleid, componentid)
  173. {
  174.     return 1;
  175. }
  176.  
  177. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  178. {
  179.     return 1;
  180. }
  181.  
  182. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  183. {
  184.     return 1;
  185. }
  186.  
  187. public OnPlayerSelectedMenuRow(playerid, row)
  188. {
  189.     return 1;
  190. }
  191.  
  192. public OnPlayerExitedMenu(playerid)
  193. {
  194.     return 1;
  195. }
  196.  
  197. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  198. {
  199.     return 1;
  200. }
  201.  
  202. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  203. {
  204.     return 1;
  205. }
  206.  
  207. public OnRconLoginAttempt(ip[], password[], success)
  208. {
  209.     return 1;
  210. }
  211.  
  212. public OnPlayerUpdate(playerid)
  213. {
  214.     return 1;
  215. }
  216.  
  217. public OnPlayerStreamIn(playerid, forplayerid)
  218. {
  219.     return 1;
  220. }
  221.  
  222. public OnPlayerStreamOut(playerid, forplayerid)
  223. {
  224.     return 1;
  225. }
  226.  
  227. public OnVehicleStreamIn(vehicleid, forplayerid)
  228. {
  229.     return 1;
  230. }
  231.  
  232. public OnVehicleStreamOut(vehicleid, forplayerid)
  233. {
  234.     return 1;
  235. }
  236.  
  237. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  238. {
  239.     switch(dialogid)
  240.     {
  241.         case DIALOG_REGISTER:
  242.         {
  243.             if(response)
  244.             {
  245.                 if(strlen(inputtext) == 0)
  246.                 {
  247.                     ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurtz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
  248.                     return 1;
  249.                 }
  250.                 else
  251.                 {
  252.                     CreateAccount(playerid, inputtext);
  253.                     SetPVarInt(playerid,"Eingeloggt",1);
  254.                     SpawnPlayer(playerid);
  255.                     return 1;
  256.                 }
  257.             }
  258.             else
  259.             {
  260.                 Kick(playerid);
  261.             }
  262.         }
  263.         case DIALOG_LOGIN:
  264.         {
  265.             if(response)
  266.             {
  267.                 if(strlen(inputtext) == 0)
  268.                 {
  269.                     ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  270.                     return 1;
  271.                 }
  272.                 else
  273.                 {
  274.                     new SpielerName[MAX_PLAYER_NAME];
  275.                     GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
  276.                     if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true))
  277.                     {
  278.                         SetPVarInt(playerid,"Eingeloggt",1);
  279.                         LoadPlayer(playerid);
  280.                         SpawnPlayer(playerid);
  281.                         return 1;
  282.                     }
  283.                     else
  284.                     {
  285.                         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
  286.                         return 1;
  287.                     }
  288.                 }
  289.             }
  290.             else
  291.             {
  292.                 Kick(playerid);
  293.             }
  294.         }
  295.     }
  296.     return 1;
  297. }
  298.  
  299. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  300. {
  301.     return 1;
  302. }
  303. stock Connect_To_Database()
  304. {
  305.     mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
  306.     if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
  307.     {
  308.         //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
  309.         print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  310.         return true;
  311.     }
  312.     else
  313.     {
  314.         //Falls nicht wird erneut versucht eine verbindung aufzubauen.
  315.         print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  316.         print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  317.         mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  318.         if(mysql_ping() == 1)
  319.         {
  320.             print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
  321.             return true;
  322.         }
  323.         else
  324.         {
  325.             //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
  326.             print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  327.             print("<-| [MYSQL] Der Server wird nun beendet!");
  328.             SendRconCommand("exit");
  329.             return true;
  330.         }
  331.     }
  332. }
  333. stock mysql_CheckAccount(playerid)
  334. {
  335.     new Query[128],Name[MAX_PLAYER_NAME],count;
  336.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  337.     mysql_real_escape_string(Name, Name);
  338.     format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
  339.     mysql_query(Query);
  340.     mysql_store_result();
  341.     count = mysql_num_rows();
  342.     mysql_free_result();
  343.     return count;
  344. }
  345. stock CreateAccount(playerid, pass[])
  346. {
  347.     new query[256],Name[MAX_PLAYER_NAME];
  348.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  349.     mysql_real_escape_string(Name,Name);
  350.     mysql_real_escape_string(pass,pass);
  351.     format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
  352.     mysql_query(query);
  353.     return true;
  354. }
  355. stock mysql_ReturnPasswort(Name[])
  356. {
  357.     new query[130], Get[130];
  358.     mysql_real_escape_string(Name, Name);
  359.     format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
  360.     mysql_query(query);
  361.     mysql_store_result();
  362.     mysql_fetch_row(Get);
  363.     mysql_free_result();
  364.     return Get;
  365. }
  366. stock LoadPlayer(playerid)
  367. {
  368.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  369.     {
  370.         GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
  371.         SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
  372.         SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
  373.         SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
  374.         SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
  375.     }
  376.     return 1;
  377. }
  378. stock SavePlayer(playerid)
  379. {
  380.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  381.     {
  382.         if(GetPVarInt(playerid,"Eingeloggt") == 1)
  383.         {
  384.             mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
  385.             mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
  386.             mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
  387.             mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
  388.             mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
  389.         }
  390.     }
  391.     return 1;
  392. }
  393. stock mysql_GetString(Table[], Field[], Where[], Is[])
  394. {
  395.     new query[128], Get[128];
  396.     mysql_real_escape_string(Table, Table);
  397.     mysql_real_escape_string(Field, Field);
  398.     mysql_real_escape_string(Where, Where);
  399.     mysql_real_escape_string(Is, Is);
  400.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  401.     mysql_query(query);
  402.     mysql_store_result();
  403.     mysql_fetch_row(Get);
  404.     mysql_free_result();
  405.     return Get;
  406. }
  407. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  408. {
  409.     new query[128];
  410.     mysql_real_escape_string(Table, Table);
  411.     mysql_real_escape_string(Field, Field);
  412.     mysql_real_escape_string(Where, Where);
  413.     mysql_real_escape_string(Is, Is);
  414.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  415.     mysql_query(query);
  416.     mysql_store_result();
  417.     new sqlint = mysql_fetch_int();
  418.     mysql_free_result();
  419.     return sqlint;
  420. }
  421. stock mysql_GetFloat(Table[], Field[], Where[], Is[])
  422. {
  423.     new query[128], Float:sqlfloat;
  424.     mysql_real_escape_string(Table, Table);
  425.     mysql_real_escape_string(Field, Field);
  426.     mysql_real_escape_string(Where, Where);
  427.     mysql_real_escape_string(Is, Is);
  428.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  429.     mysql_query(query);
  430.     mysql_store_result();
  431.     mysql_fetch_float(sqlfloat);
  432.     mysql_free_result();
  433.     return sqlfloat;
  434. }
  435. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  436. {
  437.     new query[128];
  438.     mysql_real_escape_string(Table, Table);
  439.     mysql_real_escape_string(Field, Field);
  440.     mysql_real_escape_string(Where, Where);
  441.     mysql_real_escape_string(Where2, Where2);
  442.     format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  443.     mysql_query(query);
  444.     return true;
  445. }
  446. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  447. {
  448.     new query[128];
  449.     mysql_real_escape_string(Table, Table);
  450.     mysql_real_escape_string(Field, Field);
  451.     mysql_real_escape_string(To, To);
  452.     mysql_real_escape_string(Where, Where);
  453.     mysql_real_escape_string(Where2, Where2);
  454.     format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  455.     mysql_query(query);
  456.     return true;
  457. }
  458. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  459. {
  460.     new query[128];
  461.     mysql_real_escape_string(Table, Table);
  462.     mysql_real_escape_string(Field, Field);
  463.     mysql_real_escape_string(Where, Where);
  464.     mysql_real_escape_string(Where2, Where2);
  465.     format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  466.     mysql_query(query);
  467.     return true;
  468. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement