Advertisement
Guest User

This Script

a guest
Jan 10th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.22 KB | None | 0 0
  1. /*
  2.  
  3.  
  4.                                     .Andy47.
  5.                                    
  6.                          MySql R8 Login Register System
  7.  
  8.  
  9. */
  10. //      *** Includes
  11.  
  12.         #include <a_samp>
  13.         #include <a_mysql>
  14.         #include <zcmd>
  15.        
  16. //      *** Defines
  17.  
  18. #define mysql_host "localhost"
  19. #define mysql_user "root"
  20. #define mysql_db   "legend"
  21. #define mysql_pass ""
  22.  
  23. #define COLOR_GREY 0xAFAFAFAA
  24.  
  25. #define G "{00FF00}"
  26. #define W "{FFFFFF}"
  27. #define LB "{00C0FF}"
  28. #define O "{FFAF00}"
  29. #define R "{F81414}"
  30. #define SRV "{AFE7FF}"
  31. #define GR "{C3C3C3}"
  32.  
  33. #define Function::%0(%1)    forward%0(%1); public%0(%1)
  34. //      *** News
  35. new gQuery[2800], gString[4000];
  36.  
  37. //      *** Functii
  38.  
  39. #define SPD ShowPlayerDialog
  40. #define SCM SendClientMessage
  41.  
  42. stock bool:False = false;
  43.  
  44. #define SCMF(%0,%1,%2,%3)\
  45.     do{\
  46.         gString[0] = EOS;\
  47.         format(gString,256,(%2),%3);\
  48.         SendClientMessage((%0),(%1),gString);\
  49.     }\
  50.     while( False )
  51.    
  52. //      *** Enums
  53.  
  54. enum
  55. {
  56.     THREAD_DIALOG_REGISTER,
  57.     THREAD_DIALOG_LOGIN
  58. }
  59. enum PlayerData
  60. {
  61.     ID,
  62.     pKills,
  63.     pDeaths,
  64.     pMoney
  65. }
  66. new P_DATA[MAX_PLAYERS][PlayerData];
  67. new bool:Logged[MAX_PLAYERS];
  68.  
  69. main()
  70. {
  71.     print("              MySql Project      ");
  72.     print("                 MySql r8        ");
  73.     print("               by .ANdy47.       ");
  74. }
  75.  
  76.  
  77. public OnGameModeInit()
  78. {
  79. //===============================MySql Connect==================================
  80.     mysql_connect(mysql_host,mysql_user,mysql_db,mysql_pass);
  81.  
  82. //==============================================================================
  83.     SetGameModeText("MySql Project");
  84.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  85.     UsePlayerPedAnims();
  86.     DisableInteriorEnterExits();
  87.     SetTimer("SavePlayerData",600000,false); // odata la 10 minute se salveaza conturile
  88.     return 1;
  89. }
  90.  
  91. public OnGameModeExit()
  92. {
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerRequestClass(playerid, classid)
  97. {
  98.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  99.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  100.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  101.     return 1;
  102. }
  103.  
  104. public OnPlayerConnect(playerid)
  105. {
  106.     new pName[MAX_PLAYER_NAME],
  107.         pName1[MAX_PLAYER_NAME],
  108.         string[256];
  109.        
  110.     GetPlayerName(playerid,pName,sizeof(pName));
  111.     mysql_real_escape_string(pName,pName1);
  112.    
  113.     format(string,sizeof(string),"SELECT `Name` FROM `Users` WHERE `Name` = '%s' LIMIT 0,1",pName1);
  114.     mysql_function_query(1,string,true,"AccountLoad","is",playerid,pName1);
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerDisconnect(playerid, reason)
  119. {
  120.     if(Logged[playerid] == false) // daca playerul nu este logat i se va sterge contul
  121.     {
  122.         gQuery[0] = EOS;
  123.         format(gQuery, 256, "SELECT `Name` FROM `Users` WHERE `Name` = '%s' LIMIT 0,1", GetName(playerid));
  124.         mysql_function_query(1, gQuery, true, "DeletePlayerAccount", "s", GetName(playerid));
  125.     }
  126.     else
  127.     {
  128.         SavePlayerData(playerid);
  129.     }
  130.     return 1;
  131. }
  132.  
  133. public OnPlayerSpawn(playerid)
  134. {
  135.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  136.     return 1;
  137. }
  138.  
  139. public OnPlayerDeath(playerid, killerid, reason)
  140. {
  141.     P_DATA[playerid][pDeaths] ++;
  142.     P_DATA[killerid][pKills] ++;
  143.     return 1;
  144. }
  145.  
  146. public OnVehicleSpawn(vehicleid)
  147. {
  148.     return 1;
  149. }
  150.  
  151. public OnVehicleDeath(vehicleid, killerid)
  152. {
  153.     return 1;
  154. }
  155.  
  156. public OnPlayerText(playerid, text[])
  157. {
  158.     return 1;
  159. }
  160.  
  161. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  162. {
  163.     return 1;
  164. }
  165.  
  166. public OnPlayerExitVehicle(playerid, vehicleid)
  167. {
  168.     return 1;
  169. }
  170.  
  171. public OnPlayerStateChange(playerid, newstate, oldstate)
  172. {
  173.     return 1;
  174. }
  175.  
  176. public OnPlayerEnterCheckpoint(playerid)
  177. {
  178.     return 1;
  179. }
  180.  
  181. public OnPlayerLeaveCheckpoint(playerid)
  182. {
  183.     return 1;
  184. }
  185.  
  186. public OnPlayerEnterRaceCheckpoint(playerid)
  187. {
  188.     return 1;
  189. }
  190.  
  191. public OnPlayerLeaveRaceCheckpoint(playerid)
  192. {
  193.     return 1;
  194. }
  195.  
  196. public OnRconCommand(cmd[])
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerRequestSpawn(playerid)
  202. {
  203.     return 1;
  204. }
  205.  
  206. public OnObjectMoved(objectid)
  207. {
  208.     return 1;
  209. }
  210.  
  211. public OnPlayerObjectMoved(playerid, objectid)
  212. {
  213.     return 1;
  214. }
  215.  
  216. public OnPlayerPickUpPickup(playerid, pickupid)
  217. {
  218.     return 1;
  219. }
  220.  
  221. public OnVehicleMod(playerid, vehicleid, componentid)
  222. {
  223.     return 1;
  224. }
  225.  
  226. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  227. {
  228.     return 1;
  229. }
  230.  
  231. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  232. {
  233.     return 1;
  234. }
  235.  
  236. public OnPlayerSelectedMenuRow(playerid, row)
  237. {
  238.     return 1;
  239. }
  240.  
  241. public OnPlayerExitedMenu(playerid)
  242. {
  243.     return 1;
  244. }
  245.  
  246. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  247. {
  248.     return 1;
  249. }
  250.  
  251. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  252. {
  253.     return 1;
  254. }
  255.  
  256. public OnRconLoginAttempt(ip[], password[], success)
  257. {
  258.     return 1;
  259. }
  260.  
  261. public OnPlayerUpdate(playerid)
  262. {
  263.     return 1;
  264. }
  265.  
  266. public OnPlayerStreamIn(playerid, forplayerid)
  267. {
  268.     return 1;
  269. }
  270.  
  271. public OnPlayerStreamOut(playerid, forplayerid)
  272. {
  273.     return 1;
  274. }
  275.  
  276. public OnVehicleStreamIn(vehicleid, forplayerid)
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnVehicleStreamOut(vehicleid, forplayerid)
  282. {
  283.     return 1;
  284. }
  285.  
  286. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  287. {
  288.     switch(dialogid)
  289.     {
  290.         case THREAD_DIALOG_REGISTER:
  291.         {
  292.             if(!response)
  293.                 return SetTimerEx("KickRegister",500,false,"i",playerid);
  294.                
  295.             if(response)
  296.             {
  297.                 new string[256];
  298.                
  299.                 gQuery[0] = EOS;
  300.                 format(gQuery, 256, ""W"Nu ai introdus nici o parola!\n"W"Te rugam introdu parola cu care vrei sa te inregistrezi!");
  301.                 if(!strlen(inputtext)) return SPD(playerid,THREAD_DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,""GR"Inregistrare",gQuery,"Register","Kick");
  302.                 format(string, sizeof(string),"INSERT INTO `Users`(Name,Password,Kills,Deaths,Money) VALUES('%s','%s','0','0','0')",GetName(playerid),inputtext);
  303.                 mysql_function_query(1,string,false,"","");
  304.  
  305.                 format(gQuery, 256,""W"Bine ai venit inapoi, "LB"%s!\nPoti sa te loghezi.",GetName(playerid));
  306.                 SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Logare",gQuery,"Login","Cancel");
  307.             }
  308.         }
  309.         case THREAD_DIALOG_LOGIN:
  310.         {
  311.             if(!response)
  312.                 return SetTimerEx("KickRegister",500,false,"i",playerid);
  313.             if(response)
  314.             {
  315.                 gQuery[0] = EOS;
  316.                 new q_str[256];
  317.  
  318.                 format(q_str,sizeof(q_str),"SELECT `Name` FROM `Users` WHERE `Name` = '%s' AND `Password` = '%s'", GetName(playerid),inputtext);
  319.                 mysql_function_query(1,q_str,true,"Query_LoadP_DATA","is",playerid,GetName(playerid));
  320.  
  321.                 Logged[playerid] = true;
  322.                
  323.                 SpawnPlayer(playerid);
  324.             }
  325.         }
  326.     }
  327.     return 1;
  328. }
  329. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  330. {
  331.     return 1;
  332. }
  333.  
  334. CMD:stats(playerid, params[])
  335. {
  336.     SCMF(playerid, -1,""SRV"Name: %s Kills: %d Deaths: %d Money: %d",GetName(playerid),P_DATA[playerid][pKills],P_DATA[playerid][pDeaths],P_DATA[playerid][pMoney]);
  337.     return 1;
  338. }
  339. Function:: Query_LoadP_DATA(playerid,q_acc[])
  340. {
  341.     new q_rows,
  342.         q_fields,
  343.         q_str[150];
  344.  
  345.     cache_get_data(q_rows,q_fields);
  346.  
  347.     if(!q_rows)
  348.     {
  349.         new str[300];
  350.         format(str,sizeof(str),""W"Hey "LB"%s !\nAi introdus parola gresita\nTe rugam rescrieti parola mai jos pentru a te loga .",GetName(playerid));
  351.         SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Login",str,"Login","exit");
  352.     }
  353.     else
  354.     {
  355.         format(q_str, sizeof(q_str),"SELECT * FROM `Users` WHERE Name = '%s'",q_acc);
  356.         mysql_function_query(1, q_str,true,"OnPlayerCheckedLogin","ds",playerid,q_acc);
  357.     }
  358.  
  359.     return 1;
  360. }
  361. Function:: OnPlayerCheckedLogin(playerid)
  362. {
  363.     P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
  364.     P_DATA[playerid][pKills] = cache_get_field_content_int(0, "Kills");
  365.     P_DATA[playerid][pDeaths] = cache_get_field_content_int(0, "Deaths");
  366.     P_DATA[playerid][pMoney] = cache_get_field_content_int(0, "Money");
  367.     return 1;
  368. }
  369.  
  370. Function:: AccountLoad(playerid,q_acc[])
  371. {
  372.     new q_rows,
  373.         q_fields;
  374.  
  375.     cache_get_data(q_rows,q_fields);
  376.     if(q_rows)
  377.     {
  378.         gQuery[0] = EOS;
  379.         format(gQuery,256,""W"Bine ai venit inapoi, "LB"%s!\nPoti sa te loghezi.",q_acc);
  380.         SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Logare",gQuery,"Login","Cancel");
  381.     }
  382.     else
  383.     {
  384.         gQuery[0] = EOS;
  385.         format(gQuery, 256,""W"Bun Venit, "LB"%s!\nPoti sa te inregistrezi!",q_acc);
  386.         SPD(playerid,THREAD_DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,""GR"Inregistrare",gQuery,"Register","Kick");
  387.     }
  388.  
  389.     return 1;
  390. }
  391.  
  392. Function:: SavePlayerData(playerid)
  393. {
  394.     new ks = P_DATA[playerid][pKills],
  395.         dth = P_DATA[playerid][pDeaths],
  396.         mn = P_DATA[playerid][pMoney];
  397.        
  398.     gQuery[0] = EOS;
  399.     format(gQuery, 256,"UPDATE `Users` SET `Kills`='%d',`Deaths`='%d',`Money`='%d'WHERE `Name`='%s'",ks,dth,mn,GetName(playerid));
  400.  
  401.     mysql_function_query(1,gQuery,false,"","");
  402.  
  403.     SendClientMessageToAll(-1,""LB"Conturi:"O"Conturile au fost salvate in baza de date.");
  404.     return 1;
  405. }
  406.  
  407. Function:: DeletePlayerAccount(q_acc[])
  408. {
  409.     new rows, fields;
  410.    
  411.     cache_get_data(rows, fields);
  412.     if(rows)
  413.     {
  414.         gQuery[0] = EOS;
  415.         format(gQuery, 256, "DELETE FROM `Users` WHERE `Name` = '%s'", q_acc);
  416.         mysql_function_query(1, gQuery, false, "", "");
  417.     }
  418.     return 1;
  419. }
  420.  
  421. stock GetName(playerid)
  422. {
  423.     new AlEx[24];
  424.     GetPlayerName(playerid,AlEx,sizeof(AlEx));
  425.     return AlEx;
  426. }
  427.  
  428. //      *** Kick Function
  429.  
  430. Function:: KickRegister(playerid)
  431. {
  432.     Kick(playerid);
  433.     SCMF(playerid,-1,""SRV"%s ai primit kick!",GetName(playerid));
  434.     return 1;
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement