cmds_punish.pwn 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. CMD:warn(playerid, params[])
  2. {
  3. new targetid, reason[128];
  4. if (Players[playerid][pAdmin] < 1)
  5. {
  6. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  7. }
  8. else if (sscanf(params, "us[128]", targetid, reason))
  9. {
  10. return SendSyntaxMessage(playerid, "/warn [playerid/name] [reason]");
  11. }
  12. else if (!IsPlayerConnected(targetid))
  13. {
  14. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  15. }
  16. else
  17. {
  18. SendFormatMessage(targetid, COLOR_RED, "Warning: %s", reason);
  19. SendFormatMessage(playerid, COLOR_RED, "Warning to %s: %s", ReturnNameEx(targetid, 0), reason);
  20. }
  21. return 1;
  22. }
  23. CMD:kick(playerid, params[])
  24. {
  25. new targetid, reason[128];
  26. if (Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1 && Players[playerid][pVeteran] < 1)
  27. {
  28. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  29. }
  30. else if (sscanf(params, "us[128]", targetid, reason))
  31. {
  32. return SendSyntaxMessage(playerid, "/kick [playerid/name] [reason]");
  33. }
  34. else if (!IsPlayerConnected(targetid))
  35. {
  36. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  37. }
  38. else if (Players[targetid][pAdmin] > Players[playerid][pAdmin])
  39. {
  40. return SendErrorMessage(playerid, "The specified target has a higher admin level.");
  41. }
  42. else
  43. {
  44. AddPunishment(targetid, ReturnName(playerid), "Kick", reason);
  45. format(gExecute, sizeof(gExecute), "INSERT INTO rp_kicklogs (Admin, Player, Reason, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(playerid), ReturnName(targetid), mysql_escaped(reason));
  46. mysql_tquery(gConnection, gExecute);
  47. SendFormatMessageToAll(COLOR_RED, "Admin: %s was kicked by %s, reason: \"%s\"", ReturnNameEx(targetid, 0), ReturnAdminName(playerid), reason);
  48. Dialog_Show(targetid, Kick, DIALOG_STYLE_MSGBOX, "{6688FF}You've been kicked!", "You have been kicked from the server.\n\nAdmin: %s\nReason: %s\nDate: %s\n\nSince this is only a kick, you may rejoin the server.\nPlease do not break any further rules or you may be banned.", "Close", "", ReturnAdminName(playerid), reason, GetDateAndTime());
  49. KickPlayer(targetid);
  50. new notereason[128];
  51. format(notereason, sizeof(notereason), "Kick: \"%s\"", reason );
  52. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnAdminName(playerid));
  53. mysql_tquery(gConnection, gExecute);
  54. }
  55. return 1;
  56. }
  57. CMD:ajail(playerid, params[])
  58. {
  59. new targetid, minutes, reason[128];
  60. if (Players[playerid][pAdmin] < 1)
  61. {
  62. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  63. }
  64. else if (sscanf(params, "uis[128]", targetid, minutes, reason))
  65. {
  66. return SendSyntaxMessage(playerid, "/ajail [playerid/name] [minutes] [reason]");
  67. }
  68. else if (!IsPlayerConnected(targetid))
  69. {
  70. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  71. }
  72. else if (IsPlayerNPC(targetid))
  73. {
  74. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  75. }
  76. else if (!IsPlayerLoggedIn(targetid))
  77. {
  78. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  79. }
  80. else if (minutes < 1)
  81. {
  82. return SendErrorMessage(playerid, "The minutes can't be below 1 - use /unjail for that.");
  83. }
  84. else if (Players[playerid][pSupporter] > 0 && !Players[playerid][pAdmin] && (minutes < 1 || minutes > 120))
  85. {
  86. return SendErrorMessage(playerid, "The specified minute interval must be between 1 and 120.");
  87. }
  88. else if (Players[targetid][pAdmin] > Players[playerid][pAdmin])
  89. {
  90. return SendErrorMessage(playerid, "The specified target has a higher admin level.");
  91. }
  92. else
  93. {
  94. new
  95. string[128];
  96. format(string, sizeof(string), "%s (%i minutes)", reason, minutes);
  97. AddPunishment(targetid, ReturnName(playerid), "Admin Jail", string);
  98. Players[targetid][pJailType] = 1;
  99. Players[targetid][pJailTime] = minutes * 60;
  100. SendFormatMessageToAll(COLOR_RED, "Admin: %s was jailed by %s, reason: \"%s\"", ReturnNameEx(targetid, 0), ReturnAdminName(playerid), reason);
  101. Dialog_Show(targetid, Jailed, DIALOG_STYLE_MSGBOX, "{6688FF}You've been jailed!", "You have been sent to admin jail for %i minutes.\n\nAdmin: %s\nReason: %s\nDate: %s\n\nPlease avoid breaking rules to avoid being jailed.", "Close", "", minutes, ReturnAdminName(playerid), reason, GetDateAndTime());
  102. ResetPlayer(targetid);
  103. SpawnPlayerInJail(targetid);
  104. new notereason[128];
  105. format(notereason, sizeof(notereason), "Ajail: %i minutes for: \"%s\"", minutes, reason );
  106. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnAdminName(playerid));
  107. mysql_tquery(gConnection, gExecute);
  108. }
  109. return 1;
  110. }
  111. CMD:release(playerid, params[])
  112. {
  113. return cmd_unjail(playerid, params);
  114. }
  115. CMD:unjail(playerid, params[])
  116. {
  117. new targetid;
  118. if (Players[playerid][pAdmin] < 1)
  119. {
  120. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  121. }
  122. else if (sscanf(params, "u", targetid))
  123. {
  124. return SendSyntaxMessage(playerid, "/unjail [playerid/name]");
  125. }
  126. else if (!IsPlayerConnected(targetid))
  127. {
  128. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  129. }
  130. else if (IsPlayerNPC(targetid))
  131. {
  132. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  133. }
  134. else if (!IsPlayerLoggedIn(targetid))
  135. {
  136. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  137. }
  138. else if (!Players[targetid][pJailType])
  139. {
  140. return SendErrorMessage(playerid, "The specified target is not in jail.");
  141. }
  142. else
  143. {
  144. Players[targetid][pJailTime] = 1;
  145. SendFormatMessageToAll(COLOR_RED, "Admin: %s was released from jail by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  146. }
  147. return 1;
  148. }
  149. CMD:slap(playerid, params[])
  150. {
  151. new targetid, Float:x, Float:y, Float:z;
  152. if (Players[playerid][pAdmin] < 1)
  153. {
  154. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  155. }
  156. else if (sscanf(params, "u", targetid))
  157. {
  158. return SendSyntaxMessage(playerid, "/slap [playerid/name]");
  159. }
  160. else if (!IsPlayerConnected(targetid))
  161. {
  162. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  163. }
  164. else if (IsPlayerNPC(targetid))
  165. {
  166. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  167. }
  168. else if (!IsPlayerLoggedIn(targetid))
  169. {
  170. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  171. }
  172. else if (Players[targetid][pAdmin] > Players[playerid][pAdmin])
  173. {
  174. return SendErrorMessage(playerid, "The specified target has a higher admin level.");
  175. } else if(IsPlayerInAnyVehicle(targetid)) {
  176. return SendErrorMessage(playerid, "That user is in a vehicle.");
  177. }
  178. else
  179. {
  180. GetPlayerPos(targetid, x, y, z);
  181. SetPlayerPos(targetid, x, y, z + 5);
  182. PlayerPlaySound(targetid, 1130, 0.0, 0.0, 0.0);
  183. SendAdminMessage(COLOR_RED, "Admin: %s was slapped by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  184. }
  185. return 1;
  186. }
  187. CMD:vslap(playerid, params[])
  188. {
  189. new targetid, Float:x, Float:y, Float:z, vehicleid;
  190. if (Players[playerid][pAdmin] < 1)
  191. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  192. if (sscanf(params, "u", targetid))
  193. return SendSyntaxMessage(playerid, "/slap [playerid/name]");
  194. if (!IsPlayerConnected(targetid))
  195. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  196. if (IsPlayerNPC(targetid))
  197. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  198. if (!IsPlayerLoggedIn(targetid))
  199. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  200. if (Players[targetid][pAdmin] > Players[playerid][pAdmin])
  201. return SendErrorMessage(playerid, "The specified target has a higher admin level.");
  202. if(!IsPlayerInAnyVehicle(targetid))
  203. return SendErrorMessage(playerid, "That user is not in a vehicle.");
  204. vehicleid = GetPlayerVehicleID(targetid);
  205. GetVehiclePos(vehicleid, x, y, z);
  206. SetVehiclePos(vehicleid, x, y, z + 5);
  207. PlayerPlaySound(targetid, 1130, 0.0, 0.0, 0.0);
  208. SendAdminMessage(COLOR_RED, "Admin: %s was slapped by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  209. return 1;
  210. }
  211. CMD:mute(playerid, params[])
  212. {
  213. new targetid;
  214. if (Players[playerid][pAdmin] < 1)
  215. {
  216. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  217. }
  218. else if (sscanf(params, "u", targetid))
  219. {
  220. return SendSyntaxMessage(playerid, "/mute [playerid/name]");
  221. }
  222. else if (!IsPlayerConnected(targetid))
  223. {
  224. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  225. }
  226. else if (IsPlayerNPC(targetid))
  227. {
  228. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  229. }
  230. else if (!IsPlayerLoggedIn(targetid))
  231. {
  232. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  233. }
  234. else if (Players[targetid][pMuted])
  235. {
  236. return SendErrorMessage(playerid, "The specified target is already muted. Use /unmute to unmute that player.");
  237. }
  238. else
  239. {
  240. Players[targetid][pMuted] = 1;
  241. SendAdminMessage(COLOR_RED, "Admin: %s was muted by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  242. SendInfoMessage(targetid, "You've been muted by an admin.");
  243. }
  244. return 1;
  245. }
  246. CMD:unmute(playerid, params[])
  247. {
  248. new targetid;
  249. if (Players[playerid][pAdmin] < 1)
  250. {
  251. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  252. }
  253. else if (sscanf(params, "u", targetid))
  254. {
  255. return SendSyntaxMessage(playerid, "/unmute [playerid/name]");
  256. }
  257. else if (!IsPlayerConnected(targetid))
  258. {
  259. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  260. }
  261. else if (!IsPlayerLoggedIn(targetid))
  262. {
  263. return SendErrorMessage(playerid, "The specified target is not logged in yet.");
  264. }
  265. else if (!Players[targetid][pMuted])
  266. {
  267. return SendErrorMessage(playerid, "The specified target is not muted.");
  268. }
  269. else if (IsPlayerNPC(targetid))
  270. {
  271. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  272. }
  273. else
  274. {
  275. Players[targetid][pMuted] = 0;
  276. SendAdminMessage(COLOR_RED, "Admin: %s was unmuted by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  277. SendInfoMessage(targetid, "You've been unmuted by an admin.");
  278. }
  279. return 1;
  280. }
  281. CMD:freeze(playerid, params[])
  282. {
  283. new targetid;
  284. if (Players[playerid][pAdmin] < 1)
  285. {
  286. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  287. }
  288. else if (sscanf(params, "u", targetid))
  289. {
  290. return SendSyntaxMessage(playerid, "/freeze [playerid/name]");
  291. }
  292. else if (!IsPlayerConnected(targetid))
  293. {
  294. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  295. }
  296. else if (IsPlayerNPC(targetid))
  297. {
  298. return SendErrorMessage(playerid, "You cannot use this command on a NPC.");
  299. }
  300. else
  301. {
  302. TogglePlayerControllable(targetid, false);
  303. SendAdminMessage(COLOR_RED, "Admin: %s was frozen by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  304. SendInfoMessage(targetid, "You've been frozen by an admin.");
  305. }
  306. return 1;
  307. }
  308. CMD:unfreeze(playerid, params[])
  309. {
  310. new targetid;
  311. if (Players[playerid][pAdmin] < 1)
  312. {
  313. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  314. }
  315. else if (sscanf(params, "u", targetid))
  316. {
  317. return SendSyntaxMessage(playerid, "/unfreeze [playerid/name]");
  318. }
  319. else if (!IsPlayerConnected(targetid))
  320. {
  321. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  322. }
  323. else
  324. {
  325. TogglePlayerControllable(targetid, true);
  326. SendAdminMessage(COLOR_RED, "Admin: %s was unfrozen by %s.", ReturnNameEx(targetid, 0), ReturnAdminName(playerid));
  327. SendInfoMessage(targetid, "You've been unfrozen by an admin.");
  328. }
  329. return 1;
  330. }
  331. CMD:ban(playerid, params[])
  332. {
  333. new targetid, reason[128];
  334. if (Players[playerid][pAdmin] < 1)
  335. {
  336. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  337. }
  338. else if (sscanf(params, "us[128]", targetid, reason))
  339. {
  340. return SendSyntaxMessage(playerid, "/ban [playerid/name] [reason]");
  341. }
  342. else if (!IsPlayerConnected(targetid))
  343. {
  344. return SendErrorMessage(playerid, "The specified target doesn't exist.");
  345. }
  346. else if (Players[targetid][pAdmin])
  347. {
  348. return SendErrorMessage(playerid, "You cannot ban another administrator.");
  349. }
  350. else
  351. {
  352. AddToBlacklist(targetid, ReturnName(playerid), reason);
  353. SendFormatMessageToAll(COLOR_RED, "Admin: %s was banned by %s, reason: \"%s\"", ReturnNameEx(targetid, 0), ReturnAdminName(playerid), reason);
  354. Dialog_Show(targetid, Kick, DIALOG_STYLE_MSGBOX, "{6688FF}You've been banned!", "You have been banned from the server.\n\nAdmin: %s\nReason: %s\nDate: %s\n\nYou can appeal this ban on our website at %s.", "Close", "", ReturnAdminName(playerid), reason, GetDateAndTime(), SERVER_WEBSITE);
  355. new notereason[128];
  356. format(notereason, sizeof(notereason), "Ban: \"%s\"", reason );
  357. format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnAdminName(playerid));
  358. mysql_tquery(gConnection, gExecute);
  359. }
  360. return 1;
  361. }
  362. CMD:unban(playerid, params[])
  363. {
  364. if (Players[playerid][pAdmin] < 2)
  365. {
  366. return SendErrorMessage(playerid, "You are not privileged to use this command.");
  367. }
  368. else
  369. {
  370. ShowBanList(playerid);
  371. }
  372. return 1;
  373. }