Guest User

Untitled

a guest
Oct 18th, 2011
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.38 KB | None | 0 0
  1. //Started 1st July 6:20 PM by [HiC]TheKiller
  2. //___________________________________________
  3. //Build 1.5 10/10/2011
  4. //This requires G-sTyLeZzZ MySQL plugin.
  5. //This script also requires sscanf2 by Yless, thanks Yless!
  6. //I'm using DCMD instead of ZCMD ;).
  7.  
  8. //Includes
  9. #include <a_samp>
  10. #include <a_mysql> //http://forum.sa-mp.com/showthread.php?t=56564
  11. #include <sscanf2> //http://forum.sa-mp.com/showthread.php?t=120356
  12. #include <foreach> //http://forum.sa-mp.com/showthread.php?t=92679
  13. #include <zcmd> //http://forum.sa-mp.com/showthread.php?t=91354
  14. native WP_Hash(buffer[], len, const str[]);
  15. //Configure the following variables
  16. #define SQL_HOST "127.0.0.1"
  17. #define SQL_USER "test"
  18. #define SQL_PASS "test"
  19. #define SQL_DB "test"
  20. #define DIALOG_REPORTS 1000
  21. #define DIALOG_MUTES 1500
  22. #define DIALOG_ADMINS 2000
  23. #define DIALOG_KICK 2500
  24. #define DIALOG_BAN 3000
  25. #define DIALOG_BANNED 3500
  26. //===============================
  27.  
  28. //Macro's
  29. #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
  30. #define GetAdminLevel(%1) GetPVarInt(%1, "AdminLevel")
  31. #define SendErrorMessage(%1,%2) SendClientMessage(%1,0xFF0000AA,%2)
  32. #define levelerror(%1) if(GetAdminLevel(playerid)<%1) return SendErrorMessage(playerid, "Youre admin level is too low to use this command!")
  33. #define stringempty(%1) format(%1,sizeof(%1), "")
  34. //===============================
  35.  
  36. //Global Vars
  37. new Query[500];
  38. new line[750];
  39. new Pname[24];
  40. new PIP[18];
  41. new escpass[100];
  42. new string[200];
  43. new estring[200];
  44. new largestring[400];
  45. new plid;
  46. new Float:posxx[3];
  47.  
  48. //Temporary strings
  49. new reports[5][100];
  50. new reportnumber;
  51.  
  52. public OnFilterScriptInit()
  53. {
  54. new
  55. buf[129];
  56. WP_Hash(buf, sizeof (buf), "The quick brown fox jumps over the lazy dog");
  57. for(new x = 0; x < 3; x++)
  58. {
  59. if(!mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS)) printf("MySQL connection attempt %d failed!", x);
  60. else break;
  61. }
  62. mysql_debug(1);
  63. return 1;
  64. }
  65.  
  66. public OnFilterScriptExit()
  67. {
  68. mysql_close();
  69. return 1;
  70. }
  71.  
  72. public OnPlayerConnect(playerid)
  73. {
  74. bancheck(playerid);
  75. GetPlayerIp(playerid, PIP, 18);
  76. format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `user` = '%s' LIMIT 1", escpname(playerid), PIP);
  77. mysql_query(Query);
  78. mysql_store_result();
  79. if(mysql_num_rows() != 0)
  80. {
  81. new PIP2[18];
  82. mysql_fetch_field_row(PIP2, "IP");
  83. if(!strcmp(PIP, PIP2, true) && strlen(PIP2) != 0)
  84. {
  85. SetPVarInt(playerid, "Logged", 1);
  86. SendClientMessage(playerid, 0x009600AA, "Auto Logged in!");
  87. if(mysql_fetch_row(line))
  88. {
  89. new data[3][55];
  90. new data2[5];
  91. sscanf(line, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estring);
  92. stringempty(estring);
  93. stringempty(largestring);
  94. SetPVarInt(playerid, "Kills", data2[0]);
  95. SetPVarInt(playerid, "Logged", 1);
  96. SetPVarInt(playerid, "Deaths", data2[1]);
  97. SetPlayerScore(playerid, data2[2]);
  98. GivePlayerMoney(playerid, data2[3]);
  99. SetPVarInt(playerid, "AdminLevel", data2[4]);
  100. mysql_free_result();
  101. }
  102. }
  103. else
  104. {
  105. SendClientMessage(playerid, 0x009600AA, "This account is registered, please login");
  106. ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
  107. }
  108. }
  109. else
  110. {
  111. ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
  112. SendClientMessage(playerid, 0x009600AA, "This account is not registered, please register!");
  113. }
  114. mysql_free_result();
  115. return 1;
  116. }
  117.  
  118. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  119. {
  120. if(dialogid == 14600)
  121. {
  122. if(response)
  123. {
  124. if(!strlen(inputtext))
  125. {
  126. ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
  127. SendClientMessage(playerid, 0xF60000AA, "Please enter a password");
  128. }
  129. mysql_real_escape_string(inputtext, escpass);
  130. WP_Hash(largestring, sizeof(largestring), escpass);
  131. GetPlayerIp(playerid, PIP, 50);
  132. format(Query, sizeof(Query), "INSERT INTO `playerinfo` (`user`, `password`, `kills`, `deaths`, `score`, `money`, `IP`, `adminlvl`) VALUES ('%s', '%s', 0, 0, 0, 0, '%s', 0)", escpname(playerid), largestring, PIP);
  133. mysql_query(Query);
  134. GameTextForPlayer(playerid, "~g~Registered", 2000, 3);
  135. SendClientMessage(playerid, 0x0000D9AA, "Registered and Logged into your account!");
  136. SetPVarInt(playerid, "Logged", 1);
  137. }
  138. }
  139. if(dialogid == 15000)
  140. {
  141. if(response)
  142. {
  143. WP_Hash(largestring, sizeof(largestring), inputtext);
  144. format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `user` = '%s' AND `password` = '%s' LIMIT 1", escpname(playerid), largestring);
  145. mysql_query(Query);
  146. mysql_store_result();
  147. new rows = mysql_num_rows();
  148. if(!rows)
  149. {
  150. SendClientMessage(playerid, 0xF60000AA, "Invalid password!");
  151. SetPVarInt(playerid, "WrongPass", GetPVarInt(playerid, "WrongPass") + 1);
  152. ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
  153. if(GetPVarInt(playerid, "WrongPass") == 3)
  154. {
  155. SendClientMessage(playerid, 0xF60000AA, "Max password tries exceeded!!");
  156. Kick(playerid);
  157. }
  158. mysql_free_result();
  159. }
  160. else if(rows > 0)
  161. {
  162. if(mysql_fetch_row(line))
  163. {
  164. new data[3][55];
  165. new data2[5];
  166. sscanf(line, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestring, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estring);
  167. stringempty(estring);
  168. stringempty(largestring);
  169. SetPVarInt(playerid, "Kills", data2[0]);
  170. SetPVarInt(playerid, "Logged", 1);
  171. SetPVarInt(playerid, "Deaths", data2[1]);
  172. SetPlayerScore(playerid, data2[2]);
  173. GivePlayerMoney(playerid, data2[3]);
  174. SetPVarInt(playerid, "AdminLevel", data2[4]);
  175. SendClientMessage(playerid, 0x0000D9AA, "Logged in!");
  176. mysql_free_result();
  177. GetPlayerIp(playerid, PIP, 18);
  178. format(Query, sizeof(Query), "UPDATE `playerinfo` SET IP = '%s' WHERE user='%s'", PIP, escpname(playerid));
  179. mysql_query(Query);
  180. }
  181. }
  182. }
  183. }
  184. return 1;
  185. }
  186.  
  187. public OnPlayerRequestSpawn(playerid)
  188. {
  189. if(GetPVarInt(playerid, "Logged") == 0)
  190. {
  191. format(Query, sizeof(Query), "SELECT `user` FROM `playerinfo` WHERE `user` = '%s' LIMIT 1" , escpname(playerid));
  192. mysql_query(Query);
  193. mysql_store_result();
  194. if(!mysql_num_rows()) ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
  195. else ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
  196. return 0;
  197. }
  198. return 1;
  199. }
  200.  
  201. public OnPlayerSpawn(playerid)
  202. {
  203. if(GetPVarInt(playerid, "Logged") == 1 && GetPVarInt(playerid, "MoneyGiven") > 0)
  204. {
  205. GivePlayerMoney(playerid, GetPVarInt(playerid, "MoneyGiven"));
  206. SetPVarInt(playerid, "MoneyGiven", 0);
  207. }
  208. return 1;
  209. }
  210.  
  211. public OnPlayerDeath(playerid, killerid, reason)
  212. {
  213. SetPVarInt(playerid, "Deaths", GetPVarInt(playerid, "Deaths") + 1);
  214. if(killerid != INVALID_PLAYER_ID) SetPVarInt(playerid, "Kills", GetPVarInt(playerid, "Kills") + 1);
  215. return 1;
  216. }
  217.  
  218. public OnPlayerDisconnect(playerid, reason)
  219. {
  220. if(GetPVarInt(playerid, "Logged") == 1)
  221. {
  222. format(Query, sizeof(Query), "UPDATE `playerinfo` SET `score` = '%d',`money` = '%d', `kills` = '%d', `deaths` = '%d' WHERE `user` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths"), escpname(playerid));
  223. mysql_query(Query);
  224. }
  225. return 1;
  226. }
  227.  
  228. CMD:admins(playerid, params[])
  229. {
  230. new count;
  231. foreach(Player, i)
  232. {
  233. if(!PlayerAdmin(i)) continue;
  234. count++;
  235. if(strlen(largestring) != 0) format(largestring, sizeof(largestring), "%s \r\n%s(%d) - Level (%d)", largestring, PlayerName(i), i, GetAdminLevel(i));
  236. else format(largestring, sizeof(largestring), "%s(%d) - Level (%d)", PlayerName(i), i, GetAdminLevel(i));
  237. }
  238. if(count == 0) return SendClientMessage(playerid, 0xFF0000, "No admins online!");
  239. else ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_MSGBOX, "Admins", largestring, "Ok", "Cancel");
  240. stringempty(largestring);
  241. return 1;
  242. }
  243.  
  244. CMD:makeadmin(playerid, params[])
  245. {
  246. if(GetPVarInt(playerid, "AdminLevel") == 5) return SendErrorMessage(playerid, "You are already max level!");
  247. format(Query, sizeof(Query), "UPDATE `playerinfo` SET `adminlvl` = 5 WHERE `user` = '%s'", escpname(playerid));
  248. mysql_query(Query);
  249. mysql_free_result();
  250. SetPVarInt(playerid, "AdminLevel", 5);
  251. SendClientMessage(playerid, 0xCC00FF, "You have set {CC00FF}yourself{FFFFFF} to level 5 admin");
  252. return 1;
  253. }
  254.  
  255. CMD:score(playerid, params[])
  256. {
  257. SetPlayerScore(playerid, 10000);
  258. GivePlayerMoney(playerid, 1000000);
  259. return 1;
  260. }
  261.  
  262. CMD:reports(playerid, params[])
  263. {
  264. levelerror(1);
  265. if(!strlen(reports[0])) return SendClientMessage(playerid, 0xFF0000AA, "There have been no reports");
  266. for(new x; x<5; x++)
  267. {
  268. if(strlen(reports[x]) != 0)
  269. {
  270. format(largestring, sizeof(largestring), "%s \r\n%s", largestring, reports[x][7]);
  271. }
  272. }
  273. ShowPlayerDialog(playerid, DIALOG_REPORTS, DIALOG_STYLE_MSGBOX, "Last five reported Players", largestring, "Ok", "Cancel");
  274. stringempty(largestring);
  275. return 1;
  276. }
  277.  
  278. CMD:muted(playerid, params[])
  279. {
  280. levelerror(1);
  281. foreach(Player, i)
  282. {
  283. if(GetPVarInt(i, "Muted") == 1)
  284. plid++;
  285. format(largestring, sizeof(largestring), "%s \r\n %s(%d)", largestring, PlayerName(i), i);
  286. }
  287. if(plid == 0) return SendErrorMessage(playerid, "Nobody is currently muted!");
  288. else ShowPlayerDialog(playerid, DIALOG_MUTES, DIALOG_STYLE_MSGBOX, "Muted Players", largestring, "Ok", "Cancel");
  289. stringempty(largestring);
  290. return 1;
  291. }
  292.  
  293. CMD:acmds(playerid, params[])
  294. {
  295. levelerror(1);
  296. if(GetAdminLevel(playerid) == 1) SendClientMessage(playerid, 0xCC00FF, "Level 1: {FFFFFF} /reports, /muted, /acmds, admin chat (#)");
  297. if(GetAdminLevel(playerid) == 2)
  298. {
  299. SendClientMessage(playerid, 0xCC00FF, "Level 1: {FFFFFF} /reports, /muted, /acmds, admin chat (#)");
  300. SendClientMessage(playerid, 0xCC00FF, "Level 2: {FFFFFF} /ip, /akill, /slap, /mute, /unmute");
  301. }
  302. if(GetAdminLevel(playerid) == 3)
  303. {
  304. SendClientMessage(playerid, 0xCC00FF, "Level 1: {FFFFFF} /reports, /muted, /acmds, admin chat (#)");
  305. SendClientMessage(playerid, 0xCC00FF, "Level 2: {FFFFFF} /ip, /akill, /slap, /mute, /unmute");
  306. SendClientMessage(playerid, 0xCC00FF, "Level 3: {FFFFFF} /explode, /goto, /freeze, /unfreeze, /vkill, /kick");
  307. }
  308. if(GetAdminLevel(playerid) == 4)
  309. {
  310. SendClientMessage(playerid, 0xCC00FF, "Level 1: {FFFFFF} /reports, /muted, /acmds, admin chat (#)");
  311. SendClientMessage(playerid, 0xCC00FF, "Level 2: {FFFFFF} /ip, /akill, /slap, /mute, /unmute");
  312. SendClientMessage(playerid, 0xCC00FF, "Level 3: {FFFFFF} /explode, /goto, /freeze, /unfreeze, /vkill, /kick");
  313. SendClientMessage(playerid, 0xCC00FF, "Level 4: {FFFFFF} /get, /ban, /unban");
  314. }
  315. if(GetAdminLevel(playerid) == 5)
  316. {
  317. SendClientMessage(playerid, 0xCC00FF, "Level 1: {FFFFFF} /reports, /muted, /acmds, admin chat (#)");
  318. SendClientMessage(playerid, 0xCC00FF, "Level 2: {FFFFFF} /ip, /akill, /slap, /mute, /unmute");
  319. SendClientMessage(playerid, 0xCC00FF, "Level 3: {FFFFFF} /explode, /goto, /freeze, /unfreeze, /vkill, /kick");
  320. SendClientMessage(playerid, 0xCC00FF, "Level 4: {FFFFFF} /get, /ban, /unban");
  321. SendClientMessage(playerid, 0xCC00FF, "Level 5: {FFFFFF} /setlevel");
  322. }
  323. return 1;
  324. }
  325.  
  326.  
  327. public OnPlayerText(playerid, text[])
  328. {
  329. if(PlayerAdmin(playerid) && text[0] == '#')
  330. {
  331. format(string, sizeof(string), "%s(%d): %s", PlayerName(playerid), playerid, text[1]);
  332. SendMessageToAllAdmins(string, 0xCC00FF);
  333. return 0;
  334. }
  335. if(GetPVarInt(playerid, "muted") == 1)
  336. {
  337. SendErrorMessage(playerid, "You are muted, you cannot talk.");
  338. return 0;
  339. }
  340. return 1;
  341. }
  342.  
  343. CMD:changepass(playerid, params[])
  344. {
  345. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /changepass <password>");
  346. if (GetPVarInt(playerid, "Logged") != 1) return SendErrorMessage(playerid, "You are not logged in!");
  347. if (strlen(params) > 99) return SendErrorMessage(playerid, "Password must be between 1 - 100 characters!");
  348. WP_Hash(largestring, sizeof(largestring), params);
  349. format(Query, sizeof(Query), "UPDATE `playerinfo` SET `password` = '%s' WHERE `user` = '%s'", largestring , escpname(playerid));
  350. mysql_query(Query);
  351. mysql_free_result();
  352. SendClientMessage(playerid, 0xFFFFFF, "Password has been saved!");
  353. return 1;
  354. }
  355.  
  356. CMD:setlevel(playerid, params[])
  357. {
  358. new Level;
  359. levelerror(5);
  360. if(sscanf(params, "ud", plid, Level)) return SendErrorMessage(playerid, "Usage: /setlevel <id> <level>");
  361. if (Level < 0 || Level > 5) return SendErrorMessage(playerid, "Admin levels are between 1 - 5");
  362. format(Query, sizeof(Query), "UPDATE `playerinfo` SET `adminlvl` = %d WHERE `user` = '%s'", Level, escpname(plid));
  363. mysql_query(Query);
  364. mysql_free_result();
  365. format(string, sizeof(string), "You have set {FF00AA}%s(%d){FFFFFF} admin level to %d", PlayerName(plid), plid, Level);
  366. SendClientMessage(playerid, 0xFFFFFF, string);
  367. if(GetPVarInt(plid, "AdminLevel") < Level) format(string, sizeof(string), "You have been {CC00FF}promoted{FFFFFF} to level %d admin by admin %s(%d)", Level, PlayerName(playerid), playerid);
  368. if(GetPVarInt(plid, "AdminLevel") > Level) format(string, sizeof(string), "You have been {FF00AA}demoted{FFFFFF} to level %d admin by admin %s(%d)", Level, PlayerName(playerid), playerid);
  369. SendClientMessage(plid, 0xFFFFFF, string);
  370. SetPVarInt(plid, "AdminLevel", Level);
  371. return 1;
  372. }
  373.  
  374. CMD:setemail(playerid, params[])
  375. {
  376. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /setemail <email>");
  377. if (GetPVarInt(playerid, "Logged") != 1) return SendErrorMessage(playerid, "You are not logged in!");
  378. if (strlen(params) > 149 || strlen(params) < 5) return SendErrorMessage(playerid, "Email must be between 5 - 150 characters!");
  379. format(Query, sizeof(Query), "UPDATE `playerinfo` SET `email` = '%s' WHERE `user` = '%s'", escstring(params) , escpname(playerid));
  380. mysql_query(Query);
  381. mysql_free_result();
  382. SendClientMessage(playerid, 0xFFFFFF, "Email has been saved!");
  383. return 1;
  384. }
  385.  
  386. CMD:ip(playerid, params[])
  387. {
  388. levelerror(2);
  389. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /ip <id>");
  390. plid = strval(params);
  391. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  392. GetPlayerIp(plid, PIP, sizeof(PIP));
  393. format(string, sizeof(string), "IP of %s: {FFFFFF}%s", PlayerName(plid), PIP);
  394. SendClientMessage(playerid, 0x66FF33, string);
  395. return 1;
  396. }
  397.  
  398. CMD:akill(playerid, params[])
  399. {
  400. levelerror(2);
  401. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /kill <id>");
  402. plid = strval(params);
  403. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  404. SetPlayerHealth(plid, 0);
  405. format(string, sizeof(string), "You have been killed by admin {FFFFFF}%s(%d)", PlayerName(playerid), playerid);
  406. SendErrorMessage(plid, string);
  407. format(string, sizeof(string), "You have killed {FFFFFF}%s(%d)", PlayerName(plid), plid);
  408. SendClientMessage(playerid, 0x66FF33, string);
  409. return 1;
  410. }
  411.  
  412. CMD:vkill(playerid, params[])
  413. {
  414. levelerror(3);
  415. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /vkill <vid>");
  416. plid = strval(params);
  417. format(string, sizeof(string), "You have destroyed vehicle ID {FFFFFF}%d", plid);
  418. SendClientMessage(playerid, 0x66FF33, string);
  419. DestroyVehicle(plid);
  420. return 1;
  421. }
  422.  
  423. CMD:explode(playerid, params[])
  424. {
  425. levelerror(3);
  426. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /explode <id>");
  427. plid = strval(params);
  428. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  429. format(string, sizeof(string), "You have exploded {FFFFFF}%s(%d)", PlayerName(plid), plid);
  430. SendClientMessage(playerid, 0x66FF33, string);
  431. GetPlayerPos(plid, posxx[0], posxx[1], posxx[2]);
  432. CreateExplosion(posxx[0], posxx[1], posxx[2], 1, 2);
  433. return 1;
  434. }
  435.  
  436. CMD:slap(playerid, params[])
  437. {
  438. levelerror(2);
  439. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /slap <id>");
  440. plid = strval(params);
  441. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  442. format(string, sizeof(string), "You have slapped {FFFFFF}%s(%d)", PlayerName(plid), plid);
  443. SendClientMessage(playerid, 0x66FF33, string);
  444. GetPlayerPos(plid, posxx[0], posxx[1], posxx[2]);
  445. SetPlayerPos(plid, posxx[0], posxx[1], posxx[2]+40);
  446. return 1;
  447. }
  448.  
  449. CMD:goto(playerid, params[])
  450. {
  451. levelerror(3);
  452. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /goto <id>");
  453. plid = strval(params);
  454. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  455. format(string, sizeof(string), "You have teleported to {FFFFFF}%s(%d)", PlayerName(plid), plid);
  456. SendClientMessage(playerid, 0x66FF33, string);
  457. SendPlayerToAnother(playerid, plid);
  458. return 1;
  459. }
  460.  
  461. CMD:get(playerid, params[])
  462. {
  463. levelerror(4);
  464. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /get <id>");
  465. plid = strval(params);
  466. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  467. format(string, sizeof(string), "You have teleported {FFFFFF}%s(%d){66FF33} to you", PlayerName(plid), plid);
  468. SendClientMessage(playerid, 0x66FF33, string);
  469. format(string, sizeof(string), "You have been teleported to {FFFFFF}%s(%d)", PlayerName(playerid), playerid);
  470. SendPlayerToAnother(plid, playerid);
  471. return 1;
  472. }
  473.  
  474. CMD:kick(playerid, params[])
  475. {
  476. levelerror(3);
  477. if(sscanf(params, "us[200]", plid, estring)) return SendErrorMessage(playerid, "Usage: /kick <id> <reason>");
  478. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  479. format(string, sizeof(string), "You have kicked {FFFFFF}%s(%d)", PlayerName(plid), plid);
  480. SendClientMessage(playerid, 0x66FF33, string);
  481. format(largestring, sizeof(largestring), "You have been kicked from the server by admin %s(%d) \r\nReason:%s", escpname(playerid), playerid, estring);
  482. ShowPlayerDialog(plid, DIALOG_KICK, DIALOG_STYLE_MSGBOX, "You have been kicked", largestring, "Ok", "Cancel");
  483. Kick(plid);
  484. return 1;
  485. }
  486.  
  487. CMD:freeze(playerid, params[])
  488. {
  489. levelerror(3);
  490. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /freeze <id>");
  491. plid = strval(params);
  492. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  493. format(string, sizeof(string), "You have frozen {FFFFFF}%s(%d)", PlayerName(plid), plid);
  494. SendClientMessage(playerid, 0x66FF33, string);
  495. format(string, sizeof(string), "You have been frozen by admin %s(%d)", PlayerName(playerid), playerid);
  496. SendErrorMessage(plid, string);
  497. TogglePlayerControllable(plid, false);
  498. return 1;
  499. }
  500.  
  501. CMD:unfreeze(playerid, params[])
  502. {
  503. levelerror(3);
  504. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /unfreeze <id>");
  505. plid = strval(params);
  506. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  507. format(string, sizeof(string), "You have unfrozen {FFFFFF}%s(%d)", PlayerName(plid), plid);
  508. SendClientMessage(playerid, 0x66FF33, string);
  509. format(string, sizeof(string), "You have been unfrozen by {FFFFFF}admin %s(%d)", PlayerName(playerid), playerid);
  510. SendClientMessage(plid, 0x66FF33, string);
  511. TogglePlayerControllable(plid, true);
  512. return 1;
  513. }
  514.  
  515. CMD:ban(playerid, params[])
  516. {
  517. levelerror(4);
  518. if (sscanf(params, "us[200]", plid, estring)) return SendErrorMessage(playerid, "Usage: /ban <id> <reason>");
  519. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  520. format(string, sizeof(string), "You have banned {FFFFFF}%s(%d)", PlayerName(plid), plid);
  521. SendClientMessage(playerid, 0x66FF33, string);
  522. format(largestring, sizeof(largestring), "Admin %s banned you from the server\r\nReason:%s", PlayerName(playerid), estring);
  523. ShowPlayerDialog(plid, DIALOG_KICK, DIALOG_STYLE_MSGBOX, "You have been banned", largestring, "Ok", "Cancel");
  524. GetPlayerIp(plid, PIP, 50);
  525. new Hour, Minute, Second, Year, Month, Day;
  526. gettime(Hour, Minute, Second);
  527. getdate(Year, Month, Day);
  528. format(string, sizeof(string), "%02d:%02d:%02d on %02d/%02d/%d", Hour, Minute, Second, Day, Month, Year);
  529. format(Query, sizeof(Query), "INSERT INTO `banlog` (`time`, `name`, `ip`, `reason`, `admin`, `banned`) VALUES ('%s', '%s', '%s', '%s', '%s', 1)", string, escpname(plid), PIP, escstring(estring), escpname(playerid));
  530. mysql_query(Query);
  531. mysql_free_result();
  532. Kick(plid);
  533. return 1;
  534. }
  535.  
  536. CMD:unban(playerid, params[])
  537. {
  538. levelerror(4);
  539. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /unban <name>");
  540. format(Query, sizeof(Query), "SELECT `name` FROM `banlog` WHERE name = '%s' AND banned = 1 LIMIT 1", escstring(params));
  541. mysql_query(Query);
  542. mysql_store_result();
  543. if(!mysql_num_rows())
  544. {
  545. format(string, sizeof(string), "Nobody under the name of %s is banned!", params);
  546. mysql_free_result();
  547. return SendErrorMessage(playerid, string);
  548. }
  549. else if(mysql_num_rows() != 0)
  550. {
  551. format(Query, sizeof(Query), "UPDATE `banlog` SET `banned` = 0 WHERE name = '%s'", escstring(params));
  552. mysql_query(Query);
  553. mysql_store_result();
  554. format(string, sizeof(string), "%s has been unbanned!", params);
  555. SendClientMessage(playerid, 0x66FF33, string);
  556. }
  557. return 1;
  558. }
  559.  
  560. CMD:mute(playerid, params[])
  561. {
  562. levelerror(2);
  563. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /mute <id>");
  564. plid = strval(params);
  565. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  566. if (GetPVarInt(playerid, "muted") == 1) return SendErrorMessage(playerid, "Player is already muted");
  567. if (plid == playerid) return SendErrorMessage(playerid, "You cannot mute yourself");
  568. SetPVarInt(plid, "muted", 1);
  569. format(string, sizeof(string), "You have muted player %s(%d)", PlayerName(plid), plid);
  570. SendClientMessage(playerid, 0x66FF33, string);
  571. format(string, sizeof(string), "Admin %s(%d) has {FF00AA}muted {FFFFFF}you", PlayerName(playerid), playerid);
  572. SendClientMessage(plid, 0xFFFFFF, string);
  573. return 1;
  574. }
  575.  
  576. CMD:unmute(playerid, params[])
  577. {
  578. levelerror(2);
  579. if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /unmute <id>");
  580. plid = strval(params);
  581. if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
  582. if (GetPVarInt(plid, "muted") == 0) return SendErrorMessage(playerid, "Player isn't muted");
  583. SetPVarInt(plid, "muted", 0);
  584. format(string, sizeof(string), "You have unmuted player %s(%d)", PlayerName(plid), plid);
  585. SendClientMessage(playerid, 0x66FF33, string);
  586. format(string, sizeof(string), "Admin %s(%d) has {00FF33}unmuted {FFFFFF}you", PlayerName(playerid), playerid);
  587. SendClientMessage(plid, 0xFFFFFF, string);
  588. return 1;
  589. }
  590.  
  591. CMD:report(playerid, params[])
  592. {
  593. if (sscanf(params, "us[200]", plid, estring)) return SendClientMessage(playerid, 0xFF0000AA, "Usage: /report <playerid> <reason>");
  594. if (!IsPlayerConnected(plid)) return SendClientMessage(playerid, 0xFF0000AA, "The player you have tried to report is not connected!");
  595. if (plid == playerid) return SendClientMessage(playerid, 0xFF0000AA, "You cannot report yourself!");
  596. format(string, sizeof(string), "REPORT: %s(%d) has reported %s(%d) for %s", PlayerName(playerid), playerid, PlayerName(plid), plid, estring);
  597. SendMessageToAllAdmins(string, 0xFF0000AA);
  598. SendClientMessage(playerid, 0x99FF66, "Your report has been sent.");
  599. if(reportnumber != 5)
  600. {
  601. format(reports[reportnumber], 100, "%s", string);
  602. reportnumber++;
  603. return 1;
  604. }
  605. if(reportnumber == 5)
  606. {
  607. reportnumber = 0;
  608. format(reports[reportnumber], 100, "%s", string);
  609. reportnumber ++;
  610. }
  611. return 1;
  612. }
  613.  
  614. stock escpname(playerid)
  615. {
  616. new escname[24];
  617. GetPlayerName(playerid, Pname, 24);
  618. mysql_real_escape_string(Pname, escname);
  619. return escname;
  620. }
  621.  
  622. stock escstring(stri[])
  623. {
  624. new escstr[200];
  625. mysql_real_escape_string(stri, escstr);
  626. return escstr;
  627. }
  628.  
  629. stock PlayerName(pid)
  630. {
  631. GetPlayerName(pid, Pname, 24);
  632. return Pname;
  633. }
  634.  
  635. stock SendMessageToAllAdmins(message[], color)
  636. {
  637. foreach(Player, i)
  638. {
  639. if(PlayerAdmin(i))
  640. {
  641. SendClientMessage(i, color, message);
  642. }
  643. }
  644. return 1;
  645. }
  646.  
  647. stock SendPlayerToAnother(sendingplayer, receivingplayer)
  648. {
  649. GetPlayerPos(receivingplayer, posxx[0], posxx[1], posxx[2]);
  650. SetPlayerPos(sendingplayer, posxx[0], posxx[1]+2, posxx[2]);
  651. SetPlayerVirtualWorld(sendingplayer, GetPlayerVirtualWorld(receivingplayer));
  652. SetPlayerInterior(sendingplayer, GetPlayerInterior(receivingplayer));
  653. return 1;
  654. }
  655.  
  656. stock bancheck(playerid)
  657. {
  658. GetPlayerIp(playerid, PIP, sizeof(PIP));
  659. format(Query, sizeof(Query), "SELECT * FROM `banlog` WHERE (`name` = '%s' OR `ip` = '%s') AND `banned` = 1 LIMIT 1", escpname(playerid), PIP);
  660. mysql_query(Query);
  661. mysql_store_result();
  662. if(mysql_num_rows() != 0)
  663. {
  664. new Name2[24];
  665. while(mysql_fetch_row(Query))
  666. {
  667. mysql_fetch_field_row(string, "reason");
  668. mysql_fetch_field_row(Pname, "admin");
  669. mysql_fetch_field_row(estring, "time");
  670. mysql_fetch_field_row(PIP, "ip");
  671. mysql_fetch_field_row(Name2, "name");
  672. }
  673. format(largestring, sizeof(largestring), "You are currently banned from this server. \r\nUser:%s \r\nIP:%s \r\nTime:%s \r\nAdmin:%s\r\nReason:%s", Name2, PIP, estring, Pname, string);
  674. ShowPlayerDialog(plid, DIALOG_BANNED, DIALOG_STYLE_MSGBOX, "You are banned from this server", largestring, "Ok", "Cancel");
  675. Kick(playerid);
  676. }
  677. mysql_free_result();
  678. return 1;
  679. }
  680.  
  681.  
  682. stock PlayerAdmin(pid)
  683. {
  684. if( GetPVarInt(pid, "AdminLevel" ) > 0) return 1;
  685. return 0;
  686. }
  687.  
Advertisement
Add Comment
Please, Sign In to add comment