Guest User

Untitled

a guest
Feb 4th, 2017
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.35 KB | None | 0 0
  1. //----------------------------------------------------------
  2.  
  3. #include <a_samp>
  4. #include <core>
  5. #include <float>
  6. #include "../include/gl_common.inc"
  7. #include "../include/gl_spawns.inc"
  8. #include "../include/a_mysql.inc"
  9.  
  10. #pragma tabsize 0
  11.  
  12. //----------------------------------------------------------
  13.  
  14. #define COLOR_WHITE 0xFFFFFFFF
  15. #define COLOR_NORMAL_PLAYER 0xFFFFFFFF
  16. #define mysql_host "localhost"
  17. #define mysql_db "bazadate"
  18. #define mysql_user "root"
  19. #define mysql_pass ""
  20. #undef MAX_PLAYERS
  21. #define MAX_PLAYERS 50
  22.  
  23. enum pEnum
  24. {
  25. Name[MAX_PLAYER_NAME],
  26. Password[32],
  27. Admin,
  28. Money,
  29. };
  30. new UserStats[MAX_PLAYERS][pEnum];
  31. new AccountExists[MAX_PLAYERS];
  32. new PlayerLogged[MAX_PLAYERS];
  33.  
  34. main()
  35. {
  36. print("\n---------------------------------------");
  37. print("Starting TEST SERVER\n");
  38. print("---------------------------------------\n");
  39. }
  40.  
  41. //----------------------------------------------------------
  42.  
  43. CheckAccountExists(account[])
  44. {
  45. new string[128];
  46. format(string, sizeof(string), "SELECT * FROM Users WHERE Name = '%s'", account);
  47. mysql_query(string);
  48.  
  49. mysql_store_result();
  50.  
  51. new value;
  52. value = mysql_num_rows();
  53. mysql_free_result();
  54. return value;
  55. }
  56.  
  57. public OnPlayerConnect(playerid)
  58. {
  59. GameTextForPlayer(playerid,"~w~TEST SERVER",3000,4);
  60. SendClientMessage(playerid,COLOR_WHITE,"Welcome to {88AA88}T{FFFFFF}EST {88AA88}S{FFFFFF}erver");
  61. GetPlayerName(playerid, UserStats[playerid][Name], MAX_PLAYER_NAME);
  62. if(CheckAccountExists(UserStats[playerid][Name])) AccountExists[playerid] = 1;
  63. else AccountExists[playerid] = 0;
  64. return 1;
  65. }
  66.  
  67. ConnectMySQL()
  68. {
  69. if(mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS))
  70. print("[MySQL] Connection to the MySQL Database was successfully!");
  71.  
  72. else
  73. print("[MySQL] Could not connect to the MySQL Database!");
  74. }
  75.  
  76. CheckMySQL()
  77. {
  78. if(mysql_ping() == -1)
  79. mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS);
  80. }
  81.  
  82. explode(const sSource[], aExplode[][], const sDelimiter[] = " ", iVertices = sizeof aExplode, iLength = sizeof aExplode[])
  83. {
  84. new
  85. iNode,
  86. iPointer,
  87. iPrevious = -1,
  88. iDelimiter = strlen(sDelimiter);
  89.  
  90. while(iNode < iVertices)
  91. {
  92. iPointer = strfind(sSource, sDelimiter, false, iPointer);
  93.  
  94. if(iPointer == -1)
  95. {
  96. strmid(aExplode[iNode], sSource, iPrevious, strlen(sSource), iLength);
  97. break;
  98. }
  99. else
  100. {
  101. strmid(aExplode[iNode], sSource, iPrevious, iPointer, iLength);
  102. }
  103.  
  104. iPrevious = (iPointer += iDelimiter);
  105. ++iNode;
  106. }
  107. return iPrevious;
  108. }
  109.  
  110. RegisterPlayer(playerid, password[])
  111. {
  112. if(AccountExists[playerid])
  113. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] You're already registered!");
  114.  
  115. if(PlayerLogged[playerid])
  116. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] You're already logged in!");
  117.  
  118. if(strlen(password) < 3 || strlen(password) >= 32)
  119. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] Your password is too short or too long!");
  120.  
  121. CheckMySQL();
  122.  
  123. new string[128];
  124. format(string, sizeof(string), "INSERT INTO Users (Name,Password) VALUES ('%s','%s')", UserStats[playerid][Name], password);
  125. mysql_query(string);
  126.  
  127. AccountExists[playerid] = 1;
  128. SendClientMessage(playerid, COLOR_YELLOW, "[ACCOUNT] Your account has been created, please login now!");
  129.  
  130. LoginPlayer(playerid, password);
  131. return 1;
  132. }
  133.  
  134. LoginPlayer(playerid, password[])
  135. {
  136. if(!AccountExists[playerid])
  137. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] You're not registered!");
  138.  
  139. if(PlayerLogged[playerid])
  140. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] You're already logged in!");
  141.  
  142. if(strlen(password) < 3 || strlen(password) >= 32)
  143. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] Your password is too short or too long!");
  144.  
  145. CheckMySQL();
  146.  
  147. new string[128];
  148. format(string, sizeof(string), "SELECT * FROM Users WHERE Name = '%s' AND Password = '%s'", UserStats[playerid][Name], password);
  149. mysql_query(string);
  150. mysql_store_result();
  151.  
  152. if(!mysql_num_rows())
  153. return SendClientMessage(playerid, COLOR_RED, "[ACCOUNT] Incorrect password!");
  154.  
  155. new row[128];
  156. new field[4][32];
  157.  
  158. mysql_fetch_row_format(row, "|");
  159. explode(row, field, "|");
  160. mysql_free_result();
  161.  
  162. format(UserStats[playerid][Password], 32, "%s", field[1]);
  163. UserStats[playerid][Admin] = strval(field[2]);
  164. UserStats[playerid][Money] = strval(field[3]);
  165.  
  166. GivePlayerMoney(playerid, UserStats[playerid][Money]);
  167.  
  168.  
  169. format(string, sizeof(string), "[ACCOUNT] Welcome back %s, you are now logged in!", UserStats[playerid][Name]);
  170. SendClientMessage(playerid, COLOR_YELLOW, string);
  171.  
  172. PlayerLogged[playerid] = 1;
  173. return 1;
  174. }
  175.  
  176. SavePlayer(playerid)
  177. {
  178. if(!PlayerLogged[playerid])
  179. return 0;
  180.  
  181. UserStats[playerid][Money] = GetPlayerMoney(playerid);
  182.  
  183.  
  184. CheckMySQL();
  185.  
  186. new string[256];
  187. format(string, sizeof(string), "UPDATE Users SET Password='%s',Admin='%d',Money='%d' WHERE Name='%s'", UserStats[playerid][Password], UserStats[playerid][Admin], UserStats[playerid][Money], UserStats[playerid][Name]);
  188. mysql_query(string);
  189. return 1;
  190. }
  191.  
  192. //----------------------------------------------------------
  193.  
  194. public OnPlayerSpawn(playerid)
  195. {
  196. SetPlayerPos(playerid, 1952.8693,1342.9752,15.3672);
  197. SetPlayerCameraPos(playerid, 1952.8693,1342.9752,15.3672);
  198. SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200);
  199. SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200);
  200. SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200);
  201. SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200);
  202. SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200);
  203. SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200);
  204. SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200);
  205. SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200);
  206. SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200);
  207. SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200);
  208. SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200);
  209. return 1;
  210. }
Advertisement
Add Comment
Please, Sign In to add comment