Guest User

Untitled

a guest
Jun 23rd, 2015
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.06 KB | None | 0 0
  1.  
  2. #include <a_samp>
  3. #include <a_mysql>
  4. #include <zcmd>
  5.  
  6.  
  7.  
  8. #define MYSQL_HOST  "127.0.0.1"
  9. #define MYSQL_USER  "root"
  10. #define MYSQL_DATEBASE      "users"
  11. #define MYSQL_PASSWORD  ""
  12.  
  13. #define dlogin 1188
  14. #define dregister 119
  15. new mysql,Name[126],IP[126];
  16. native WP_Hash(buffer[], len, const str[]); //whirlpool, for hashing our password
  17. public OnFilterScriptInit()
  18. {
  19. print("mysql strted");
  20. mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATEBASE, MYSQL_PASSWORD);
  21. mysql_log(LOG_ALL);
  22. return 1;
  23. }
  24. enum Info
  25. {
  26. ID,
  27. Password[129],
  28. Ip,
  29. AdminLevel,
  30. VIP,
  31. Cash,
  32. WantedLevel,
  33. LastSkinID,
  34. RegisteredDate,
  35. Kicked,
  36. Armour,
  37. PTScore,
  38. DMScore,
  39. WarnedTimes,
  40. JailedTimes,
  41. MutedTimes,
  42. Boost,
  43. AutoLogin,
  44. Godmode,
  45. bool:SavedPos,
  46. posX,
  47. posY,
  48. posZ,
  49. PAngle,
  50. }
  51.  
  52. new pInfo[MAX_PLAYERS][Info];
  53.  
  54. public OnPlayerSpawn(playerid)
  55. {
  56. new query[128];
  57. GetPlayerName(playerid, Name, 24);
  58. GetPlayerIp(playerid, IP[playerid], 16);
  59. mysql_format(mysql, query, sizeof(query),"SELECT `ID`, `password` FROM `players` WHERE `username` = '%e' LIMIT 1", Name[playerid]);
  60. mysql_tquery(mysql, query, "CheckACC", "i", playerid);
  61. return 1;
  62. }
  63. forward CheckACC(playerid);
  64. public CheckACC(playerid)
  65. {
  66. new rows, fields;
  67. cache_get_data(rows, fields, mysql);
  68. if(rows)
  69. {
  70. cache_get_field_content(0, "PASS", pInfo[playerid][Password], mysql, 129);
  71. pInfo[playerid][ID] = cache_get_field_content_int(0, "ID");
  72. ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login", "Login", "Quit");
  73.  
  74. }
  75. else
  76. {
  77. ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.", "Register", "Quit");
  78.  
  79. }
  80. return 1;
  81. }
  82.  
  83.  
  84. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  85. {
  86. switch(dialogid)
  87. {
  88. case dlogin
  89. {
  90. if(!response) Kick(playerid);
  91. new hpass[129];
  92. new query[100];
  93. WP_Hash(hpass, 129, inputtext);
  94. if(!strcmp(hpass, pInfo[playerid][Password]))
  95. {
  96. mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
  97.  
  98. mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
  99.  
  100. }
  101. else
  102. {
  103. ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login\nWrong password!", "Login", "Quit");
  104. }
  105. }
  106. case dregister:
  107. {
  108. if(!response) return Kick(playerid);
  109. if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.\nYour password must be at least 6 characters long!", "Register", "Quit");
  110. new query[300];
  111. WP_Hash(pInfo[playerid][Password], 129, inputtext);
  112. mysql_format(mysql, query, sizeof(query), "INSERT INTO `players` (`Username`, `Password`, `IP`, `AdminLevel`, `VIP`, `Money`, `PosX` ,`PosY`, `PosZ`) VALUES ('%e', '%s', '%s', 0, 0, 0, 0.0, 0.0, 0.0)", Name[playerid], pInfo[playerid][Password], IP[playerid]);
  113. mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid);
  114. }
  115. }
  116. return 1;
  117. }
  118.  
  119. forward OnAccountLoad(playerid);
  120. forward OnAccountRegister(playerid);
  121.  
  122. public OnAccountLoad(playerid)
  123. {
  124.     pInfo[playerid][AdminLevel] = cache_get_field_content_int(0, "Admin");
  125.     pInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP");
  126.  // pInfo[playerid][posX] = cache_get_field_content_float(0, "posX");
  127.  // pInfo[playerid][posY] = cache_get_field_content_float(0, "posY");
  128.  // pInfo[playerid][posZ] = cache_get_field_content_float(0, "posZ");
  129.     SendClientMessage(playerid, -1, "Successfully logged in");
  130.     return 1;
  131. }
  132.  
  133. public OnAccountRegister(playerid)
  134. {
  135.     pInfo[playerid][ID] = cache_insert_id();
  136.     printf("New account registered. ID: %d", pInfo[playerid][ID]);
  137.     return 1;
  138. }
  139.  
  140. public OnPlayerDisconnect(playerid, reason)
  141. {
  142.     new query[128], Float:pos[3];
  143.     GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
  144.     mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Money`=%d, `posX`=%f, `posY`=%f, `posZ`=%f WHERE `ID`=%d",\
  145.     pInfo[playerid][AdminLevel], pInfo[playerid][VIP],pos[0], pos[1], pos[2], pInfo[playerid][ID]);
  146.     mysql_tquery(mysql, query, "", "");
  147.    
  148. return 1;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment