Advertisement
Guest User

Untitled

a guest
Aug 15th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.02 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <ZCMD>
  4. #include <sscanf>
  5. #include <zones>
  6.  
  7.  
  8. #define DHOST ""
  9. #define DUSER ""
  10. #define DPASS ""
  11. #define DDB ""
  12.  
  13. #define DIALOG_LOGIN 100
  14. #define DIALOG_REGISTER 101
  15. #define DIALOG_MYINFO 105
  16. #define DIALOG_SUGGESTION 106
  17.  
  18. #define gLOGIN 1
  19. #define gREGISTRATION 2
  20. #define gINIT 3
  21. #define gSAVE 4
  22. #define gNEWUSER 5
  23. #define Report 6
  24.  
  25. #define SERVERNAME "Welcome to the server!"
  26. #define SERVER "Server by Georgelopez"
  27.  
  28. #define cGREEN 0x33AA33AA
  29. #define cRED 0xAA3333AA
  30. #define cYELLOW 0xFFFF00AA
  31. #define cLIGHTBLUE 0x33CCFFAA
  32. #define cORANGE 0xFF9900AA
  33. #define cWHITE 0xFFFFFFAA
  34.  
  35. main(){}
  36.  
  37. enum pInfo
  38. {
  39. Username[25],
  40. Password[50],
  41. PlayerIP[19],
  42. pScore,
  43. pMoney,
  44. pLevel
  45. };
  46. new PlayerInfo[MAX_PLAYERS][pInfo];
  47.  
  48. public OnGameModeInit()
  49. {
  50. mysql_debug(1);
  51. mysql_connect(DHOST, DUSER, DDB, DPASS);
  52.  
  53. SetGameModeText(SERVER);
  54. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  55. return 1;
  56. }
  57.  
  58. public OnGameModeExit()
  59. {
  60. mysql_close();
  61. return 1;
  62. }
  63.  
  64. public OnPlayerConnect(playerid)
  65. {
  66. CheckUser(playerid);
  67. return 1;
  68. }
  69.  
  70. public OnPlayerDisconnect(playerid)
  71. {
  72. SaveUser(playerid);
  73. return 1;
  74. }
  75.  
  76. public OnPlayerSpawn(playerid)
  77. {
  78. return 1;
  79. }
  80.  
  81. //=========Commands==========
  82. CMD:suggestion(playerid, params[])
  83. {
  84. ShowPlayerDialog(playerid, DIALOG_SUGGESTION, DIALOG_STYLE_INPUT, SERVERNAME, "Insert your suggestion below!", "Submit", "Cancel");
  85. }
  86.  
  87. CMD:myinfo(playerid, params[])
  88. {
  89. new string[200];
  90. format(string,sizeof(string),"Your IP: %s \r\nYour Name: %s \r\nYour Score: %d \r\nYour Ping: %d",GetIp(playerid), GetName(playerid), PlayerInfo[playerid][pScore], GetPlayerPing(playerid));
  91. ShowPlayerDialog(playerid, DIALOG_MYINFO, DIALOG_STYLE_MSGBOX, "Player Info", string, "Finished", "Cancel");
  92. return 1;
  93. }
  94.  
  95. CMD:score(playerid, params[])
  96. {
  97. SetPlayerScore(playerid, GetPlayerScore(playerid) + 10);
  98. GivePlayerMoney(playerid, GetPlayerMoney(playerid) + 10);
  99. return 1;
  100. }
  101.  
  102. COMMAND:fix(playerid,params[])
  103. {
  104. if(IsPlayerInAnyVehicle(playerid))
  105. {
  106. if(GetPlayerMoney(playerid) > 400)
  107. {
  108. RepairVehicle(GetPlayerVehicleID(playerid));
  109. GivePlayerMoney(playerid, -500);
  110. SendClientMessage(playerid, cGREEN, "You vehicle has been repaired");
  111. }
  112. else
  113. {
  114. SendClientMessage(playerid, cRED, "You dont have enough money to use this service!");
  115. }
  116. }
  117. else
  118. {
  119. SendClientMessage(playerid, cRED, "You arnt currently in a vehicle");
  120. }
  121. return 1;
  122. }
  123.  
  124. CMD:setlevel(playerid, params[])
  125. {
  126. new pId, alevel;
  127. if(PlayerInfo[playerid][pLevel] >= 5 || IsPlayerAdmin(playerid))
  128. {
  129. if(sscanf(params, "dd", pId, alevel)) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
  130. else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, cRED, "The ID You Entered Was Not Found.");
  131. else if(alevel < 0) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
  132. else if(alevel > 5) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
  133. else
  134. {
  135. new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  136. new string[256],string2[256];
  137. GetPlayerName(playerid,pName,sizeof(pName));
  138. GetPlayerName(pId,pName2,sizeof(pName2));
  139. format(string,sizeof(string),"[Administrator]: %s (%d) Has Set %s's (%d) Level To %d.",pName,playerid,pName2,pId,alevel);
  140. format(string2,sizeof(string2),"SERVER: %s (%d) Has Set Your Level To %d.",pName,playerid,alevel);
  141. SendClientMessageToAll(cYELLOW,string);
  142. SendClientMessage(pId,cYELLOW,string2);
  143. PlayerInfo[playerid][pLevel] = alevel;
  144. }
  145. }
  146. else
  147. {
  148. return 0;
  149. }
  150. return 1;
  151. }
  152.  
  153. //=====Stocks======
  154.  
  155. stock GetIp(playerid)
  156. {
  157. new Ip[16];
  158. GetPlayerIp(playerid, Ip, sizeof(Ip));
  159. return Ip;
  160. }
  161.  
  162. stock GetName(playerid)
  163. {
  164. new pName[MAX_PLAYER_NAME];
  165. GetPlayerName(playerid, pName, sizeof(pName));
  166. return pName;
  167. }
  168.  
  169. stock CheckUserLogin(playerid, password[])
  170. {
  171. new Query[400]; format(Query, sizeof(Query), "SELECT * FROM `names` WHERE username = '%s' AND password = '%s';",GetName(playerid), password);
  172. mysql_query(Query);
  173. return 1;
  174. }
  175.  
  176. stock CreateUser(playerid, password[])
  177. {
  178. new Query[400];
  179. format(Query, sizeof(Query), "INSERT INTO `names` (`Username`, `Password`, `PlayerIP`) VALUES('%s', '%s', '%s')", GetName(playerid), password, GetIp(playerid));
  180. mysql_query(Query, gNEWUSER, playerid);
  181.  
  182. SendClientMessage(playerid, cYELLOW, "Account created, you should be logged in any second now.");
  183. LoginUser(playerid);
  184. }
  185.  
  186. stock SaveSuggestion(playerid, suggestion[])
  187. {
  188. new Query[400];
  189. format(Query, sizeof(Query), "INSERT INTO `suggestions` (`Username`, `Suggestion`) VALUES('%s', '%s')", GetName(playerid), suggestion);
  190. mysql_query(Query, gNEWUSER, playerid);
  191.  
  192. SendClientMessage(playerid, cYELLOW, "Thank you for your suggestion! An admin will review this shortly!");
  193. }
  194.  
  195. COMMAND:report(playerid, params[])
  196. {
  197. new warnID, aReason[250], warnname[25];
  198. if(sscanf(params,"ds",warnID, aReason)) return SendClientMessage(playerid, cRED, "/report (playerid) (reason)");
  199. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, cRED,"Player not connected.");
  200. if(warnID == playerid) return SendClientMessage(playerid, cRED,"You cannot report yourself!");
  201. new Query[400], string[198];
  202. format(string, 198, "You have reported %s for '%s'",warnname, aReason);
  203. SendClientMessage(playerid, cWHITE, string);
  204. GetPlayerName(warnID,warnname,25);
  205. format(Query, sizeof(Query), "INSERT INTO `reports` (`Reported`, `Reporter`, `Reason`) VALUES('%s', '%s', '%s')", warnname, GetName(playerid), aReason);
  206. mysql_query(Query, Report, playerid);
  207. return 1;
  208. }
  209.  
  210. stock CheckUser(playerid)
  211. {
  212. new Query[400];
  213. format(Query, sizeof(Query), "SELECT * FROM `names` WHERE `Username` = '%s'",GetName(playerid));
  214. mysql_query(Query, gINIT, playerid);
  215. return 1;
  216. }
  217.  
  218. stock LoginUser(playerid)
  219. {
  220. new Query[400];
  221. format(Query, sizeof(Query), "SELECT * FROM `names` WHERE `Username` = '%s'", GetName(playerid));
  222. mysql_query(Query, gLOGIN, playerid);
  223. return 1;
  224. }
  225.  
  226. stock SaveUser(playerid)
  227. {
  228. new query[400];
  229. format(query, sizeof(query), "UPDATE `names` SET `Score` = %d, `Money` = %d, `pLevel` = %d WHERE `Username` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), PlayerInfo[playerid][pLevel], GetName(playerid));
  230. mysql_query(query, gSAVE);
  231. }
  232.  
  233. public OnQueryFinish(query[], resultid, extraid, connectionHandle)
  234. {
  235. switch(resultid)
  236. {
  237. case gINIT:
  238. {
  239. mysql_store_result();
  240. if(mysql_num_rows() > 0) ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Server", "Please enter your password to login", "Login", "Cancel");
  241. else ShowPlayerDialog(extraid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Server", "Please insert a password with between 3 and 15 characters!", "Register", "Cancel");
  242. mysql_free_result();
  243. }
  244. case gLOGIN:
  245. {
  246. mysql_store_result();
  247. sscanf(query, "p<|>s[25]s[50]s[19]ddd", PlayerInfo[extraid]);
  248. mysql_free_result();
  249.  
  250. GivePlayerMoney(extraid, PlayerInfo[extraid][pMoney]);
  251. SetPlayerScore(extraid, PlayerInfo[extraid][pScore]);
  252. SendClientMessage(extraid, cYELLOW, "You have successfully logged in!");
  253.  
  254. new query2[128];
  255. format(query2, sizeof(query2), "UPDATE `names` SET `PlayerIP` = '%s' WHERE `Username` = '%s'", GetIp(extraid), GetName(extraid));
  256. mysql_query(query2);
  257. }
  258. case gSAVE: return 1;
  259. case gREGISTRATION: return 1;
  260. case gNEWUSER: return 1;
  261. }
  262. return 1;
  263. }
  264.  
  265. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  266. {
  267. switch(dialogid)
  268. {
  269. case DIALOG_LOGIN:
  270. {
  271. if(CheckUserLogin(playerid,inputtext)) LoginUser(playerid);
  272. else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "That account is not in the database!", "I'm sorry, That password was incorrect! Try again!", "Login", "Cancel");
  273. }
  274. case DIALOG_REGISTER:
  275. {
  276. if(response)
  277. {
  278. if(strlen(inputtext) >= 3 && strlen(inputtext) <= 15) CreateUser(playerid, inputtext);
  279. else
  280. {
  281. SendClientMessage(playerid, cYELLOW, "Password has to contain between 3 and 15 letters / numbers.");
  282. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, SERVERNAME, "Please insert a password with between 3 and 15 characters!", "Register", "Cancel");
  283. }
  284. }
  285. }
  286. case DIALOG_SUGGESTION:
  287. {
  288. if(response)
  289. {
  290. if(strlen(inputtext) >= 10 && strlen(inputtext) <= 250) SaveSuggestion(playerid, inputtext);
  291. else
  292. {
  293. SendClientMessage(playerid, cYELLOW, "Suggestion has to contain between 10 and 250 words/numbers.");
  294. }
  295. }
  296. }
  297. }
  298. return 0;
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement