Advertisement
Guest User

Untitled

a guest
Mar 29th, 2013
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.02 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3.  
  4. #include <a_mysql>
  5. #define SQL_HOST "localhost"
  6. #define SQL_USER "root"
  7. #define SQL_PASS ""
  8. #define SQL_DATA "db_1"
  9.  
  10. #define Function%0(%1) forward%0(%1); public%0(%1)
  11.  
  12. #define DIALOG_REGISTER 0
  13. #define DIALOG_LOGIN    1
  14.  
  15. #define colorWhite      0xffffffff
  16. #define colorRed        0xcc0000ff
  17. #define colorLightBlue  0x00afffff
  18.  
  19. #define ORT_INSEL       0
  20. #define ORT_STADT       1
  21.  
  22. enum SpielerInfo
  23. {
  24.     pName[MAX_PLAYER_NAME],
  25.     pAdmin,
  26.     pOrt,
  27.     pBanned
  28. }
  29. new pInfo[MAX_PLAYERS][SpielerInfo];
  30.  
  31. main()
  32. {
  33.     print("\n----------------------------------");
  34.     print(" Blank Gamemode by your name here");
  35.     print("----------------------------------\n");
  36. }
  37.  
  38. public OnGameModeInit()
  39. {
  40.     mysql_debug(1);
  41.     Connect_To_Database();
  42.     SetGameModeText("Blank Script");
  43.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  44.     return 1;
  45. }
  46.  
  47. public OnGameModeExit()
  48. {
  49.     return 1;
  50. }
  51.  
  52. public OnPlayerRequestClass(playerid, classid)
  53. {
  54.     if(GetPVarInt(playerid, "loggedIn") == 0)
  55.     {
  56.         if(mysql_CheckAccount(playerid) == 0)
  57.         {
  58.             ClearChatBox(playerid, 2);
  59.             SendClientMessage(playerid, colorRed, "                 |-Servername-|                ");
  60.             SendClientMessage(playerid, colorRed, "Account nicht gefunden, registriere dich bitte!");
  61.             ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "**Registration**", "Gebe bitte ein Passwort ein.\nMit dem Passwort wirst du dich später einloggen also solltest du es dir merken.", "Registrieren", "Abbrechen");
  62.         }
  63.         else if(mysql_CheckAccount(playerid) == 1)
  64.         {
  65.             ClearChatBox(playerid, 2);
  66.             SendClientMessage(playerid, colorRed, "             |-Servername-|            ");
  67.             SendClientMessage(playerid, colorLightBlue, "Account gefunden, logge dich bitte ein!");
  68.             ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "**Login**", "Gebe bitte dein Passwort ein dich einzuloggen.\n Du hast noch 3 von 3 Versuchen!", "Login", "Abbrechen");
  69.         }
  70.     }
  71.  
  72.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  73.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  74.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  75.     return 1;
  76. }
  77.  
  78. public OnPlayerConnect(playerid)
  79. {
  80.     return 1;
  81. }
  82.  
  83. public OnPlayerDisconnect(playerid, reason)
  84. {
  85.     SavePlayer(playerid);
  86.     DeletePVar(playerid, "loggedIn");
  87.     return 1;
  88. }
  89.  
  90. public OnPlayerSpawn(playerid)
  91. {
  92.     /*if(pInfo[playerid][pOrt] == ORT_INSEL)
  93.     {
  94.         //Spawn auf Insel
  95.     }
  96.     else if(pInfo[playerid][pOrt] == ORT_STADT)
  97.     {
  98.         //Spawn in Stadt
  99.     }*/
  100.     return 1;
  101. }
  102.  
  103. public OnPlayerDeath(playerid, killerid, reason)
  104. {
  105.     return 1;
  106. }
  107.  
  108. public OnVehicleSpawn(vehicleid)
  109. {
  110.     return 1;
  111. }
  112.  
  113. public OnVehicleDeath(vehicleid, killerid)
  114. {
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerText(playerid, text[])
  119. {
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerCommandText(playerid, cmdtext[])
  124. {
  125.     if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  126.     {
  127.         // Do something here
  128.         return 1;
  129.     }
  130.     return 0;
  131. }
  132.  
  133. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  134. {
  135.     return 1;
  136. }
  137.  
  138. public OnPlayerExitVehicle(playerid, vehicleid)
  139. {
  140.     return 1;
  141. }
  142.  
  143. public OnPlayerStateChange(playerid, newstate, oldstate)
  144. {
  145.     return 1;
  146. }
  147.  
  148. public OnPlayerEnterCheckpoint(playerid)
  149. {
  150.     return 1;
  151. }
  152.  
  153. public OnPlayerLeaveCheckpoint(playerid)
  154. {
  155.     return 1;
  156. }
  157.  
  158. public OnPlayerEnterRaceCheckpoint(playerid)
  159. {
  160.     return 1;
  161. }
  162.  
  163. public OnPlayerLeaveRaceCheckpoint(playerid)
  164. {
  165.     return 1;
  166. }
  167.  
  168. public OnRconCommand(cmd[])
  169. {
  170.     return 1;
  171. }
  172.  
  173. public OnPlayerRequestSpawn(playerid)
  174. {
  175.     return 1;
  176. }
  177.  
  178. public OnObjectMoved(objectid)
  179. {
  180.     return 1;
  181. }
  182.  
  183. public OnPlayerObjectMoved(playerid, objectid)
  184. {
  185.     return 1;
  186. }
  187.  
  188. public OnPlayerPickUpPickup(playerid, pickupid)
  189. {
  190.     return 1;
  191. }
  192.  
  193. public OnVehicleMod(playerid, vehicleid, componentid)
  194. {
  195.     return 1;
  196. }
  197.  
  198. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  199. {
  200.     return 1;
  201. }
  202.  
  203. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  204. {
  205.     return 1;
  206. }
  207.  
  208. public OnPlayerSelectedMenuRow(playerid, row)
  209. {
  210.     return 1;
  211. }
  212.  
  213. public OnPlayerExitedMenu(playerid)
  214. {
  215.     return 1;
  216. }
  217.  
  218. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  219. {
  220.     return 1;
  221. }
  222.  
  223. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  224. {
  225.     return 1;
  226. }
  227.  
  228. public OnRconLoginAttempt(ip[], password[], success)
  229. {
  230.     return 1;
  231. }
  232.  
  233. public OnPlayerUpdate(playerid)
  234. {
  235.     return 1;
  236. }
  237.  
  238. public OnPlayerStreamIn(playerid, forplayerid)
  239. {
  240.     return 1;
  241. }
  242.  
  243. public OnPlayerStreamOut(playerid, forplayerid)
  244. {
  245.     return 1;
  246. }
  247.  
  248. public OnVehicleStreamIn(vehicleid, forplayerid)
  249. {
  250.     return 1;
  251. }
  252.  
  253. public OnVehicleStreamOut(vehicleid, forplayerid)
  254. {
  255.     return 1;
  256. }
  257.  
  258. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  259. {
  260.     new Name[MAX_PLAYER_NAME];
  261.     GetPlayerName(playerid, Name, sizeof(Name));
  262.     switch(dialogid)
  263.     {
  264.         case DIALOG_REGISTER:
  265.         {
  266.             if(response) //Wenn register geklickt oder enter gedrückt
  267.             {
  268.                 if(strlen(inputtext) <= 6 || strlen(inputtext) >= 20)
  269.                     ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "**Registration**", "Beachte, das passwort muss mindestens 6 Zeichen,\ndarf aber maximal 20 Zeichen lang sein!", "Registrieren", "Abbrechen");
  270.                 else
  271.                 {
  272.                     CreateAccount(playerid, inputtext);
  273.                     SetPVarInt(playerid, "loggedIn", 1);
  274.                     SendClientMessage(playerid, colorLightBlue, "Erfolgreich registriert, viel Spaß!");
  275.                     SpawnPlayer(playerid);
  276.                 }
  277.             }
  278.             else
  279.             {
  280.                 SendClientMessage(playerid, colorRed, "Du hast den Vorgang abgebrochen!");
  281.                 Kick(playerid);
  282.             }
  283.         }
  284.         case DIALOG_LOGIN:
  285.         {
  286.             if(response) //Wenn login geklickt oder enter gedrückt
  287.             {
  288.                 if(!strcmp(inputtext, mysql_ReturnPasswort(Name), true)) //Wenn das passwort übereinstimmt
  289.                 {
  290.                     LoadPlayer(playerid);
  291.                     if(pInfo[playerid][pBanned] == 1)return SendClientMessage(playerid, colorRed, "Du bist gebannt!"), Kick(playerid);
  292.                     else
  293.                     {
  294.                         SetPVarInt(playerid, "loggedIn", 1);
  295.                         SendClientMessage(playerid, colorLightBlue, "Erfolgreich einbgeloggt, viel Spaß!");
  296.                         SpawnPlayer(playerid);
  297.                         SetPlayerColor(playerid, colorWhite);
  298.                     }
  299.                 }
  300.                 else
  301.                 {
  302.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "**Login**", "Das Passwort war falsch, bitte versuche es nochmal.", "Login", "Abbrechen");
  303.                 }
  304.             }
  305.             else
  306.             {
  307.                 SendClientMessage(playerid, colorRed, "Du hast den Vorgang abgebrochen!");
  308.                 Kick(playerid);
  309.             }
  310.         }
  311.     }
  312.     return 1;
  313. }
  314.  
  315. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  316. {
  317.     return 1;
  318. }
  319.  
  320. stock Connect_To_Database()
  321. {
  322.     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.
  323.     if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
  324.     {
  325.         //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
  326.         print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  327.         return true;
  328.     }
  329.     else
  330.     {
  331.         //Falls nicht wird erneut versucht eine Verbindung aufzubauen.
  332.         print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  333.         print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  334.         mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  335.         if(mysql_ping() == 1)
  336.         {
  337.             print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
  338.             return true;
  339.         }
  340.         else
  341.         {
  342.             //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
  343.             print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  344.             print("<-| [MYSQL] Der Server wird nun beendet!");
  345.             SendRconCommand("exit");
  346.             return true;
  347.         }
  348.     }
  349. }
  350.  
  351. stock mysql_CheckAccount(playerid)
  352. {
  353.     new Query[128],Name[MAX_PLAYER_NAME],count;
  354.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  355.     mysql_real_escape_string(Name, Name);
  356.     format(Query, sizeof(Query), "SELECT * FROM `reallife` WHERE `Name` = '%s'", Name);
  357.     mysql_query(Query);
  358.     mysql_store_result();
  359.     count = mysql_num_rows();
  360.     mysql_free_result();
  361.     return count;
  362. }
  363.  
  364. stock mysql_ReturnPasswort(Name[])
  365. {
  366.     new query[130], Get[130];
  367.     mysql_real_escape_string(Name, Name);
  368.     format(query, 128, "SELECT `passwort` FROM `reallife` WHERE `Name` = '%s'", Name);
  369.     mysql_query(query);
  370.     mysql_store_result();
  371.     mysql_fetch_row(Get);
  372.     mysql_free_result();
  373.     return Get;
  374. }
  375.  
  376. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  377. {
  378.     new query[128];
  379.     mysql_real_escape_string(Table, Table);
  380.     mysql_real_escape_string(Field, Field);
  381.     mysql_real_escape_string(Where, Where);
  382.     mysql_real_escape_string(Is, Is);
  383.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  384.     mysql_query(query);
  385.     mysql_store_result();
  386.     new sqlint = mysql_fetch_int();
  387.     mysql_free_result();
  388.     return sqlint;
  389. }
  390.  
  391. stock mysql_GetString(Table[], Field[], Where[], Is[])
  392. {
  393.     new query[128], Get[128];
  394.     mysql_real_escape_string(Table, Table);
  395.     mysql_real_escape_string(Field, Field);
  396.     mysql_real_escape_string(Where, Where);
  397.     mysql_real_escape_string(Is, Is);
  398.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  399.     mysql_query(query);
  400.     mysql_store_result();
  401.     mysql_fetch_row(Get);
  402.     mysql_free_result();
  403.     return Get;
  404. }
  405.  
  406. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  407. {
  408.     new query[128], Float:sqlfloat;
  409.     mysql_real_escape_string(Table, Table);
  410.     mysql_real_escape_string(Field, Field);
  411.     mysql_real_escape_string(Where, Where);
  412.     mysql_real_escape_string(Is, Is);
  413.     format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  414.     mysql_query(query);
  415.     mysql_store_result();
  416.     mysql_fetch_float(sqlfloat);
  417.     mysql_free_result();
  418.     return sqlfloat;
  419. }
  420.  
  421. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  422. {
  423.     new query[128];
  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(Where2, Where2);
  428.     format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  429.     mysql_query(query);
  430.     return true;
  431. }
  432.  
  433. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  434. {
  435.     new query[128];
  436.     mysql_real_escape_string(Table, Table);
  437.     mysql_real_escape_string(Field, Field);
  438.     mysql_real_escape_string(To, To);
  439.     mysql_real_escape_string(Where, Where);
  440.     mysql_real_escape_string(Where2, Where2);
  441.     format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  442.     mysql_query(query);
  443.     return true;
  444. }
  445.  
  446. stock mysql_SetFloat(Table[], Field[], Float: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(Where, Where);
  452.     mysql_real_escape_string(Where2, Where2);
  453.     format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  454.     mysql_query(query);
  455.     return true;
  456. }
  457.  
  458. stock ClearChatBox(playerid, zeilen) //zeilen = Zeilen die nicht gelöscht werden
  459. {
  460.     new Zeilen = 10 - zeilen;
  461.     for(new i = 0; i < Zeilen; i++)
  462.     {
  463.         SendClientMessage(playerid, colorWhite, " ");
  464.     }
  465.     return 1;
  466. }
  467.  
  468. stock CreateAccount(playerid, pass[])
  469. {
  470.     new query[256],Name[MAX_PLAYER_NAME];
  471.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  472.     mysql_real_escape_string(Name,Name);
  473.     mysql_real_escape_string(pass,pass);
  474.     format(query, sizeof(query), "INSERT INTO `reallife` (`Name`, `Password`) VALUES ('%s', '%s')", Name, pass);
  475.     mysql_SetInt("reallife", "Admin", 0, "Name", pInfo[playerid][pName]);
  476.     mysql_SetInt("reallife", "Ort", 0, "Name", pInfo[playerid][pName]);
  477.     mysql_SetInt("reallife", "Banned", 0, "Name", pInfo[playerid][pName]);
  478.     mysql_query(query);
  479.     return true;
  480. }
  481.  
  482. stock LoadPlayer(playerid)
  483. {
  484.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  485.     {
  486.         GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
  487.         pInfo[playerid][pAdmin] = mysql_GetInt("reallife", "Admin", "Name", pInfo[playerid][pName]);
  488.         pInfo[playerid][pOrt] = mysql_GetInt("reallife", "Ort", "Name", pInfo[playerid][pName]);
  489.         pInfo[playerid][pBanned] = mysql_GetInt("reallife", "Banned", "Name", pInfo[playerid][pName]);
  490.     }
  491.     return 1;
  492. }
  493.  
  494. stock SavePlayer(playerid)
  495. {
  496.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  497.     {
  498.         if(GetPVarInt(playerid,"Eingeloggt") == 1)
  499.         {
  500.             mysql_SetInt("reallife", "Admin", pInfo[playerid][pAdmin], "Name", pInfo[playerid][pName]);
  501.             mysql_SetInt("reallife", "Ort", pInfo[playerid][pOrt], "Name", pInfo[playerid][pName]);
  502.             mysql_SetInt("reallife", "Banned", pInfo[playerid][pBanned], "Name", pInfo[playerid][pName]);
  503.         }
  504.     }
  505.     return 1;
  506. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement