Guest User

Warn System.

a guest
Dec 31st, 2014
678
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3.  
  4. #define DIALOG_WARN 9000
  5. #define DIALOG_UNWARN 9001
  6.  
  7. new InvalidWords[][100] =
  8. {
  9. "ass",
  10. "fuck",
  11. "pussy",
  12. "dick",
  13. "gay",
  14. "suck",
  15. "cum"
  16. };
  17.  
  18. enum wInfo
  19. {
  20. Warns,
  21. }
  22. new WarnInfo[MAX_PLAYERS][wInfo];
  23.  
  24. CMD:warn(playerid, params[])
  25. {
  26. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You are not authorized to use this command.");
  27. ShowPlayerDialog(playerid, DIALOG_WARN, DIALOG_STYLE_INPUT, "{FFFFFF}Warn", "{FFFFFF}Please input below the player's name who will got warned:", "Warn", "Exit");
  28. return 1;
  29. }
  30.  
  31. CMD:unwarn
  32. (playerid, params[])
  33. {
  34. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You are not authorized to use this command.");
  35. ShowPlayerDialog(playerid, DIALOG_UNWARN, DIALOG_STYLE_INPUT, "{FFFFFF}UnWarn", "{FFFFFF}Please, input below the player's name who will got unwarned:", "Unwarn", "Exit");
  36. return 1;
  37. }
  38.  
  39. CMD:mywarns(playerid, params[])
  40. {
  41. new string[128];
  42. if(WarnInfo[playerid][Warns] == 0) return SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}Congrats. You have {FF0000}0 {FFFFFF}warnings.");
  43. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}You have currentlly {FF0000}%d {FFFFFF}warnings.", WarnInfo[playerid][Warns]);
  44. SendClientMessage(playerid, -1, string);
  45. return 1;
  46. }
  47.  
  48. CMD:warnall(playerid, params[])
  49. {
  50. new string[80], name[MAX_PLAYER_NAME];
  51. GetPlayerName(playerid, name, sizeof(name));
  52. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You are not authorized to use this command.");
  53. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}Administrator {FF0000}%s {FFFFFF}has warned all players.", name);
  54. SendClientMessage(playerid, -1, string);
  55. WarnAll();
  56. return 1;
  57. }
  58.  
  59. CMD:unwarnall(playerid, params[])
  60. {
  61. new string[80], name[MAX_PLAYER_NAME];
  62. GetPlayerName(playerid, name, sizeof(name));
  63. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You are not authorized to use this command.");
  64. ResetWarnsToAll();
  65. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}Administrator {FF0000}%s {FFFFFF}has warned all players.", name);
  66. SendClientMessage(playerid, -1, string);
  67. return 1;
  68. }
  69.  
  70. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  71. {
  72. if(dialogid == DIALOG_WARN)
  73. {
  74. if(response)
  75. {
  76. new name[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], ID, string[128], year, month, day, fileini[128];
  77. getdate(year, month, day);
  78. ID = strval(inputtext);
  79. if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}That player is not connected.");
  80. GetPlayerName(playerid, name, sizeof(name));
  81. GetPlayerName(ID, pname, sizeof(pname));
  82. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}You got warned by Administrator {FF0000}%s{FFFFFF}.", name);
  83. SendClientMessage(ID, -1, string);
  84. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}You warned player {FF0000}%s{FFFFFF}.", pname);
  85. SendClientMessage(playerid, -1, string);
  86. printf("Administrator %s has warned player %s.", name, pname);
  87. WarnPlayer(playerid);
  88. new File:warnsa=fopen("warns.cfg", io_append);
  89. format(fileini, sizeof(fileini), "[%d/%d/%d] --> Administrator %s has warned player %s.", day, month, year, name, pname);
  90. fwrite(warnsa, fileini);
  91. fclose(warnsa);
  92. }
  93. }
  94. if(dialogid == DIALOG_UNWARN)
  95. {
  96. if(response)
  97. {
  98. new name[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME], ID, string[128], year, month, day, fileini[128];
  99. getdate(year, month, day);
  100. ID = strval(inputtext);
  101. if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}That player is not connected.");
  102. if(WarnInfo[ID][Warns] == 0) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}That player it's havin' {FF0000}0 {FFFFFF}warnings.");
  103. GetPlayerName(playerid, name, sizeof(name));
  104. GetPlayerName(ID, pname, sizeof(pname));
  105. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}You got unwarned by Administrator {FF0000}%s{FFFFFF}.", name);
  106. SendClientMessage(ID, -1, string);
  107. format(string, sizeof(string), "{FF0000}[INFO]: {FFFFFF}You unwarned player {FF0000}%s{FFFFFF}.", pname);
  108. SendClientMessage(playerid, -1, string);
  109. printf("Administrator %s has unwarned player %s.", name, pname);
  110. ResetWarns(ID);
  111. new File:warnsa=fopen("unwarns.cfg", io_append);
  112. format(fileini, sizeof(fileini), "[%d/%d/%d] --> Administrator %s has unwarned player %s.", day, month, year, name, pname);
  113. fwrite(warnsa, fileini);
  114. fclose(warnsa);
  115. }
  116. }
  117. return 1;
  118. }
  119.  
  120. public OnPlayerText(playerid, text[])
  121. {
  122. for(new cnt = 0; cnt < sizeof(InvalidWords); cnt++)
  123. {
  124. if(strfind(text, InvalidWords[cnt], true) != -1)
  125. {
  126. WarnPlayer(playerid);
  127. SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}You got warned for saying a bad word.");
  128. return 0;
  129. }
  130. }
  131. return 1;
  132. }
  133.  
  134. public OnPlayerUpdate(playerid)
  135. {
  136. if(WarnInfo[playerid][Warns] == 3)
  137. {
  138. SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}You got kicked because you get {FF0000}3 {FFFFFF}warnings.");
  139. SetTimerEx("KickPlayerForWarn", 2000, false, "i", playerid);
  140. }
  141. return 1;
  142. }
  143.  
  144. forward KickPlayerForWarn(playerid);
  145.  
  146. public KickPlayerForWarn(playerid)
  147. {
  148. Kick(playerid);
  149. return 1;
  150. }
  151.  
  152.  
  153. stock ResetWarns(playerid)
  154. {
  155. WarnInfo[playerid][Warns] = 0;
  156. }
  157.  
  158. stock ResetWarnsToAll()
  159. {
  160. for(new i = 0; i < MAX_PLAYERS; i++)
  161. {
  162. WarnInfo[i][Warns] = 0;
  163. }
  164. }
  165.  
  166. stock WarnPlayer(playerid)
  167. {
  168. WarnInfo[playerid][Warns]++;
  169. }
  170.  
  171. stock WarnAll()
  172. {
  173. for(new i = 0; i < MAX_PLAYERS; i++)
  174. {
  175. WarnInfo[i][Warns]++;
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment