Advertisement
JeffryUGP

Eddy - Code

May 30th, 2014
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.57 KB | None | 0 0
  1. /*
  2.   © 2013 - 2014 SmR Roleplay - Version 0.1 Beta
  3.  
  4.  
  5.   San Miami Roleplay - Erlebe einen Server wie nie zuvor!
  6.   ------------------------------------------------------
  7.  
  8.  
  9.   ------------------------
  10.   |Merkendes / Wichtiges.|
  11.   ------------------------
  12.   - Serverfarbe: 0x3252BEFF
  13.   - Anti Spawn Text: 0x861014FF
  14.   ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\nMerken Sie sich Ihr Passwort gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
  15.   ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_PASSWORD,"SmR: {0xFF0000EE}Falsches Passwort","{FFFFFF}Das von Ihnen gewählte Passwort war leider nicht Richtig.\nGegebenfalls beachten Sie die Groß und Kleinschreibung.\n\nAchtung! Sie haben nur noch 2/3 versuche.","Einloggen","Abbrechen");
  16.  
  17.  
  18.   Changelog == ( F = Fertig || A = In Arbeit || B = Bug enthalten || G = In Planung)
  19.   ----------------------------------------------------------------------------------
  20.   A: Register & Login System ( Mit Altersabfrage und Geschlecht ).
  21.   G: Maximale Einloggen  (versuche) = 3
  22.  
  23. -------------------------------------------------------------------------------------------------------------------
  24.                                           Script anfang
  25. -----------------------------------------------------------------------------------------------------------------*/
  26.  
  27. #include <a_samp>
  28. #include <a_mysql>
  29.  
  30. #undef MAX_PLAYERS
  31. #define MAX_PLAYERS 5
  32.  
  33. // MySQL Connection //
  34. #define DB_Host "127.0.0.1"
  35. #define DB_User "Admin"
  36. #define DB_Pass "samp"
  37. #define DB_Data "smr_accounts"
  38. new DBHandle;
  39.  
  40. enum
  41. {
  42.     Dialog_Register = 1,
  43.     Dialog_Geschlecht,
  44.     Dialog_Alter,
  45.     Dialog_Login
  46. }
  47.  
  48. enum SpielerDaten
  49. {
  50.     pName[MAX_PLAYER_NAME+1],
  51.     pAlter,
  52.     pBargeld,
  53.     pKontoguthaben,
  54.     pLastLogin[30],
  55.     pRegDatum[30],
  56.     pWrongPass,
  57.     Float:pLeben,
  58.     bool:pLogged
  59. }
  60. new Spieler[MAX_PLAYERS][SpielerDaten];
  61.  
  62. forward LoadPlayerDataSequence(playerid, l_step);
  63. forward KickPlayer(playerid);
  64. /*-------------------------------------------------------------------------------------------------------------------------------------*/
  65. /*                                        Script anfang                                                                                */
  66. /*-------------------------------------------------------------------------------------------------------------------------------------*/
  67. main()
  68. {
  69.     print("\n----------------------------------");
  70.     print(" Blank Gamemode by your name here");
  71.     print("----------------------------------\n");
  72. }
  73.  
  74. public OnGameModeInit()
  75. {
  76.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  77.     SetGameModeText("Blank Script");
  78.     DBHandle = mysql_connect(DB_Host,DB_User,DB_Data,DB_Pass);
  79.     CreateTables();
  80.     mysql_log(1);
  81.     return 1;
  82. }
  83.  
  84. public OnGameModeExit()
  85. {
  86.     mysql_close();
  87.     return 1;
  88. }
  89.  
  90. public OnPlayerRequestClass(playerid, classid)
  91. {
  92.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  93.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  94.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  95.     return 1;
  96. }
  97.  
  98. public OnPlayerConnect(playerid)
  99. {
  100.     GetPlayerName(playerid,Spieler[playerid][pName],MAX_PLAYER_NAME);
  101.     new query[160 + MAX_PLAYER_NAME];
  102.     mysql_format(DBHandle, query, sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` = '%e'",Spieler[playerid][pName]);
  103.     mysql_function_query(DBHandle, query, true, "LoadPlayerDataSequence","dd",playerid,1);
  104.     return 1;
  105. }
  106.  
  107. public OnPlayerDisconnect(playerid, reason)
  108. {
  109.     if(Spieler[playerid][pLogged])
  110.     {
  111.         SavePlayerData(playerid);
  112.     }
  113.     ResetPlayerVars(playerid);
  114.     return 1;
  115. }
  116.  
  117. public OnPlayerSpawn(playerid)
  118. {
  119.     SetSpawnInfo(playerid,0,185,1958.3783, 1343.1572, 15.3746,0,0,0,0,0,0,0);
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerDeath(playerid, killerid, reason)
  124. {
  125.     return 1;
  126. }
  127.  
  128. public OnVehicleSpawn(vehicleid)
  129. {
  130.     return 1;
  131. }
  132.  
  133. public OnVehicleDeath(vehicleid, killerid)
  134. {
  135.     return 1;
  136. }
  137.  
  138. public OnPlayerText(playerid, text[])
  139. {
  140.     return 1;
  141. }
  142.  
  143. public OnPlayerCommandText(playerid, cmdtext[])
  144. {
  145.     return 0;
  146. }
  147.  
  148. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  149. {
  150.     return 1;
  151. }
  152.  
  153. public OnPlayerExitVehicle(playerid, vehicleid)
  154. {
  155.     return 1;
  156. }
  157.  
  158. public OnPlayerStateChange(playerid, newstate, oldstate)
  159. {
  160.     return 1;
  161. }
  162.  
  163. public OnPlayerEnterCheckpoint(playerid)
  164. {
  165.     return 1;
  166. }
  167.  
  168. public OnPlayerLeaveCheckpoint(playerid)
  169. {
  170.     return 1;
  171. }
  172.  
  173. public OnPlayerEnterRaceCheckpoint(playerid)
  174. {
  175.     return 1;
  176. }
  177.  
  178. public OnPlayerLeaveRaceCheckpoint(playerid)
  179. {
  180.     return 1;
  181. }
  182.  
  183. public OnRconCommand(cmd[])
  184. {
  185.     return 1;
  186. }
  187.  
  188. public OnPlayerRequestSpawn(playerid)
  189. {
  190.     if(!Spieler[playerid][pLogged]) return 0; SendClientMessage(playerid,0x861014FF,"Sie müssen sich zuerst Einloggen um Spawnen zu können!");
  191.     return 1;
  192. }
  193.  
  194. public OnObjectMoved(objectid)
  195. {
  196.     return 1;
  197. }
  198.  
  199. public OnPlayerObjectMoved(playerid, objectid)
  200. {
  201.     return 1;
  202. }
  203.  
  204. public OnPlayerPickUpPickup(playerid, pickupid)
  205. {
  206.     return 1;
  207. }
  208.  
  209. public OnVehicleMod(playerid, vehicleid, componentid)
  210. {
  211.     return 1;
  212. }
  213.  
  214. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  215. {
  216.     return 1;
  217. }
  218.  
  219. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  220. {
  221.     return 1;
  222. }
  223.  
  224. public OnPlayerSelectedMenuRow(playerid, row)
  225. {
  226.     return 1;
  227. }
  228.  
  229. public OnPlayerExitedMenu(playerid)
  230. {
  231.     return 1;
  232. }
  233.  
  234. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  235. {
  236.     return 1;
  237. }
  238.  
  239. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  240. {
  241.     return 1;
  242. }
  243.  
  244. public OnRconLoginAttempt(ip[], password[], success)
  245. {
  246.     return 1;
  247. }
  248.  
  249. public OnPlayerUpdate(playerid)
  250. {
  251.     return 1;
  252. }
  253.  
  254. public OnPlayerStreamIn(playerid, forplayerid)
  255. {
  256.     return 1;
  257. }
  258.  
  259. public OnPlayerStreamOut(playerid, forplayerid)
  260. {
  261.     return 1;
  262. }
  263.  
  264. public OnVehicleStreamIn(vehicleid, forplayerid)
  265. {
  266.     return 1;
  267. }
  268.  
  269. public OnVehicleStreamOut(vehicleid, forplayerid)
  270. {
  271.     return 1;
  272. }
  273.  
  274. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  275. {
  276.     switch(dialogid)
  277.     {
  278.         case Dialog_Register:
  279.         {
  280.             if(!response)
  281.             {
  282.                 SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
  283.                 SetTimerEx("KickPlayer",250,0,"i",playerid);
  284.                 return 1;
  285.             }
  286.             if(!inputtext[0] || !(3 <= strlen(inputtext) <= 10))
  287.             {
  288.                 ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
  289.                 return 1;
  290.             }
  291.             new query[228 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
  292.             getdate(Tag,Monat,Jahr);
  293.             gettime(Stunde,Minute,Sekunde);
  294.             format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
  295.             mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Accounts` (`pName`, `pPasswort`, `pAlter`, `pBargeld`, `pKontoguthaben`, `pLastLogin`, `pRegDatum`, `pVersuche`, `pLeben`) VALUES ('%e','%e','%e','0','0','%s','%s','%e','100.0')",Spieler[playerid][pName],inputtext,Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,query,Spieler[playerid][pWrongPass],Spieler[playerid][pLeben]);
  296.             mysql_tquery(DBHandle, query, "", "");
  297.             Spieler[playerid][pLogged] = true;
  298.             SpawnPlayer(playerid);
  299.             return 1;
  300.         }
  301.         case Dialog_Login:
  302.         {
  303.             if(!response)
  304.             {
  305.                 SendClientMessage(playerid,0xFF0000FF,"Dieser Vorgang wurde Ab.-oder Unterbrochen\nBitte beenden Sie das Spiel, indem Sie /q als Textnachricht in den Chat eingeben.");
  306.                 SetTimerEx("KickPlayer",250,0,"i",playerid);
  307.                 return 1;
  308.             }
  309.             if(!inputtext[0] || !(3 <= strlen(inputtext) <= 25))
  310.             {
  311.                 ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie müssen von unserem System Identifiziert werden.\nGeben Sie dafür Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschließend auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nSie haben noch 3/3 versuche!","Einloggen","Abbrechen");
  312.                 return 1;
  313.             }
  314.             new query[180 + MAX_PLAYER_NAME];
  315.             mysql_format(DBHandle, query,sizeof(query),"SELECT COUNT(*) AS `count` FROM `Accounts` WHERE `pName` ='%e' AND `pPasswort` ='%e'",Spieler[playerid][pName],inputtext);
  316.             mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,2);
  317.             return 1;
  318.         }
  319.     }
  320.     return 1;
  321. }
  322.  
  323. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  324. {
  325.     return 1;
  326. }
  327.  
  328. public LoadPlayerDataSequence(playerid, l_step)
  329. {
  330.     switch(l_step)
  331.     {
  332.         case 1:
  333.         {
  334.             new count = cache_get_field_content_int(0,"count");
  335.             if(count)
  336.             {
  337.                 ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_INPUT,"SmR: {0x3252BEFF}Einloggen","{FFFFFF}Sie müssen von unserem System Identifiziert werden.\nGeben Sie dafür Ihr Passwort unten in das Feld ein.\n\n Klicken Sie anschließend auf Einloggen, damit Ihre Daten kontrolliert werden können.\n\nSie haben noch 3/3 versuche!","Einloggen","Abbrechen");
  338.                 return 1;
  339.             }
  340.             else
  341.             {
  342.                 ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"SmR: {0x3252BEFF}Registrierung","{FFFFFF}Herzlich Willkommen auf San Miami Roleplay\n\nUnser System hat Ihre Spielerinformationen\nnicht in unserer Datenbank gefunden. Um einen Charakter auf unserem Server zu Erstellen\nbenötigen wir einige Informationen. Als erstes tragen Sie Bitte ein Sicheres Passwort in das untere Feld ein.\n\nMerken Sie sich Ihr Passwort Gut.\n\nKlicken Sie anschließend auf Annehmen.","Annehmen","Abbrechen");
  343.                 return 1;
  344.             }
  345.         }
  346.         case 2:
  347.         {
  348.             new count = cache_get_field_content_int(0,"count");
  349.             if(count)
  350.             {
  351.                 new query[160 + MAX_PLAYER_NAME];
  352.                 mysql_format(DBHandle, query ,sizeof(query),"SELECT * FROM `Accounts` WHERE `pName` = '%e'",Spieler[playerid][pName]);
  353.                 mysql_function_query(DBHandle, query, true,"LoadPlayerDataSequence","dd",playerid,3);
  354.                 return 1;
  355.             }
  356.             else
  357.             {
  358.                 ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_PASSWORD,"SmR: {0xFF0000EE}Falsches Passwort","{FFFFFF}Das von Ihnen gewählte Passwort war leider nicht Richtig.\nGegebenfalls beachten Sie die Groß und Kleinschreibung.\n\nAchtung! Sie haben nur noch 2/3 versuche.","Einloggen","Abbrechen");
  359.                 return 1;
  360.             }
  361.         }
  362.         case 3:
  363.         {
  364.             Spieler[playerid][pAlter] = cache_get_field_content_int(0,"pAlter");
  365.             Spieler[playerid][pBargeld] = cache_get_field_content_int(0,"pBargeld");
  366.             Spieler[playerid][pKontoguthaben] = cache_get_field_content_int(0,"pKontoguthaben");
  367.             cache_get_field_content(0,"pLastLogin",Spieler[playerid][pLastLogin]);
  368.             cache_get_field_content(0,"pRegDatum",Spieler[playerid][pRegDatum]);
  369.             Spieler[playerid][pWrongPass] = cache_get_field_content_int(0,"pVersuche");
  370.             Spieler[playerid][pLeben] = cache_get_field_content_float(0,"pLeben");
  371.             Spieler[playerid][pLogged] = true;
  372.             return 1;
  373.         }
  374.         default:
  375.         {
  376.             SendClientMessage(playerid,0x7D0000FF,"Es ist ein Fehler aufgetreten, Bitte starten Sie Ihren Clienten neu, und versuchen Sie es erneut,\nSollten weiterhin Fehler auftreten, so Melde Sie sich umgehend Bitte bei einem Teammitglied.");
  377.             return 1;
  378.         }
  379.     }
  380.     return 1;
  381. }
  382.  
  383. stock SavePlayerData(playerid)
  384. {
  385.     new query[450 + MAX_PLAYER_NAME],Tag,Monat,Jahr,Stunde,Minute,Sekunde;
  386.     getdate(Tag,Monat,Jahr);
  387.     gettime(Stunde,Minute,Sekunde);
  388.     format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
  389.     mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pRegDatum` = '%s', `pVersuche` = '%s', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pRegDatum],Spieler[playerid][pWrongPass],Spieler[playerid][pLeben],Spieler[playerid][pName]);
  390.     //Falls das oben nicht tut, nutze das:
  391.     //mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pVersuche` = '%s', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pWrongPass],Spieler[playerid][pLeben],Spieler[playerid][pName]);
  392.     mysql_tquery(DBHandle, query, "","");
  393.     return 1;
  394. }
  395.  
  396. stock ResetPlayerVars(playerid)
  397. {
  398.     for(new x; SpielerDaten:x < SpielerDaten; ++x) Spieler[playerid][SpielerDaten:x] = 0;
  399.     return 1;
  400. }
  401.  
  402. stock CreateTables()
  403. {
  404.     mysql_tquery(DBHandle,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(30), `pRegDatum` varchar(30), `pVersuche` int(11), `pLeben` float, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;","","");
  405.     return 1;
  406. }
  407.  
  408. public KickPlayer(playerid) return Kick(playerid);
  409.  
  410. stock mktime(hour,minute,second,day,month,year)
  411. {
  412.     new timestamp2;
  413.     timestamp2 = second + (minute * 60) + (hour * 3600);
  414.     new days_of_month[12];
  415.     if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
  416.     {
  417.         days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31};
  418.     }
  419.     else
  420.     {
  421.         days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31};
  422.     }
  423.     new days_this_year = 0;
  424.     days_this_year = day;
  425.     if(month > 1)
  426.     {
  427.         for(new i=0; i<month-1;i++)
  428.         {
  429.             days_this_year += days_of_month[i];
  430.         }
  431.     }
  432.     timestamp2 += days_this_year * 86400;
  433.     for(new j=1970;j<year;j++)
  434.     {
  435.         timestamp2 += 31536000;
  436.         if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )  timestamp2 += 86400;
  437.     }
  438.     return timestamp2;
  439. }
  440.  
  441. stock Now()
  442. {
  443.     new hour,minute,second,year,month,day;
  444.     gettime(hour, minute, second);
  445.     getdate(year, month, day);
  446.     return mktime(hour,minute,second,day,month,year);
  447. }
  448.  
  449. public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
  450. {
  451.    printf("Errorid %d",errorid);
  452.    print(error);
  453.    print(callback);
  454.    print(query);
  455.    return 1;
  456. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement