Advertisement
Guest User

Vote-Kick

a guest
Dec 6th, 2014
807
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf>
  4.  
  5. #define CL 0x33CCFFAA
  6. #define PRESSED(%0) \
  7. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  8.  
  9. new Text:KickLol;
  10. new Text:PlayerName;
  11. new Text:Yes;
  12. new Text:No;
  13.  
  14. new Active;
  15. new PoolActive;
  16. new YesPlayers;
  17. new NoPlayers;
  18.  
  19. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  20. {
  21. if(Active == 1)
  22. {
  23. if(PRESSED(KEY_YES))
  24. {
  25. new string[128], name[MAX_PLAYER_NAME];
  26. GetPlayerName(playerid, name, sizeof(name));
  27. SendClientMessage(playerid, CL, "You voted to kick that player {FF0000}[YES]");
  28. Active = 0;
  29. Close();
  30. YesPlayers++;
  31. format(string, sizeof(string), "{FF0000}%s {FFCC33}voted for.", name);
  32. SendClientMessageToAll(-1, string);
  33. }
  34. if(PRESSED(KEY_NO))
  35. {
  36. new string[128], name[MAX_PLAYER_NAME];
  37. GetPlayerName(playerid, name, sizeof(name));
  38. SendClientMessage(playerid, CL, "You voted to don't kick that player {FF0000}[NO]");
  39. Active = 0;
  40. Close();
  41. NoPlayers++;
  42. format(string, sizeof(string), "{FF0000}%s {FFCC33}voted aganist.", name);
  43. SendClientMessageToAll(-1, string);
  44. }
  45. }
  46. return 1;
  47. }
  48.  
  49. public OnFilterScriptInit()
  50. {
  51. KickLol = TextDrawCreate(9.599999, 163.519958, "Do you want to kick");
  52. TextDrawLetterSize(KickLol, 0.541999, 2.563199);
  53. TextDrawAlignment(KickLol, 1);
  54. TextDrawColor(KickLol, 16777215);
  55. TextDrawSetShadow(KickLol, 0);
  56. TextDrawSetOutline(KickLol, 1);
  57. TextDrawBackgroundColor(KickLol, 51);
  58. TextDrawFont(KickLol, 1);
  59. TextDrawSetProportional(KickLol, 1);
  60.  
  61. PlayerName = TextDrawCreate(208.799957, 164.266647, "JucatorName?");
  62. TextDrawLetterSize(PlayerName, 0.495599, 2.481067);
  63. TextDrawAlignment(PlayerName, 1);
  64. TextDrawColor(PlayerName, -16776961);
  65. TextDrawSetShadow(PlayerName, 0);
  66. TextDrawSetOutline(PlayerName, 1);
  67. TextDrawBackgroundColor(PlayerName, 51);
  68. TextDrawFont(PlayerName, 1);
  69. TextDrawSetProportional(PlayerName, 1);
  70.  
  71. Yes = TextDrawCreate(16.799993, 209.066635, "1. Yes");
  72. TextDrawLetterSize(Yes, 0.527600, 3.018666);
  73. TextDrawAlignment(Yes, 1);
  74. TextDrawColor(Yes, -1);
  75. TextDrawSetShadow(Yes, 0);
  76. TextDrawSetOutline(Yes, 1);
  77. TextDrawBackgroundColor(Yes, 51);
  78. TextDrawFont(Yes, 2);
  79. TextDrawSetProportional(Yes, 1);
  80.  
  81. No = TextDrawCreate(13.600000, 234.453231, "2. NO");
  82. TextDrawLetterSize(No, 0.530799, 2.891733);
  83. TextDrawAlignment(No, 1);
  84. TextDrawColor(No, -1);
  85. TextDrawSetShadow(No, 0);
  86. TextDrawSetOutline(No, 1);
  87. TextDrawBackgroundColor(No, 51);
  88. TextDrawFont(No, 2);
  89. TextDrawSetProportional(No, 1);
  90. return 1;
  91. }
  92.  
  93. CMD:votekick(playerid, params[])
  94. {
  95. new ID, aname[MAX_PLAYER_NAME], string[128], name[MAX_PLAYER_NAME], newtext[30];
  96. if(IsPlayerAdmin(playerid))
  97. {
  98. if(sscanf(params,"u", ID)) return SendClientMessage(playerid,CL, "Usage: {15FF00}/VoteKick [ID]");
  99. GetPlayerName(ID, name, sizeof(name));
  100. GetPlayerName(playerid, aname, sizeof(aname));
  101. format(newtext, sizeof(newtext), "%s", name);
  102. Show();
  103. TextDrawSetString(PlayerName, newtext);
  104. Active = 1;
  105. PoolActive = 1;
  106. format(string, sizeof(string), "{FFCC33}Administrator {FF0000}%s {FFCC33}started {FF0000}Vote-Kick {FFCC33}for {FF0000}%s {FFCC33}!", aname, name);
  107. SendClientMessageToAll(-1, string);
  108. format(string, sizeof(string), "{FFCC33}Press {FF0000}Y {FFCC33}if you want to be kicked!");
  109. SendClientMessageToAll(-1, string);
  110. format(string, sizeof(string), "{FFCC33}Press {FF0000}N {FFCC33}if you don't want to be kicked!");
  111. SendClientMessageToAll(-1, string);
  112. SetTimer("CloseLol", 60000, false);
  113. }
  114. else
  115. {
  116. SendClientMessage(playerid, CL, "You need to be RCON Admin to start a {FF0000}Vote-Kick!");
  117. }
  118. return 1;
  119. }
  120.  
  121. CMD:checkpools(playerid, params[])
  122. {
  123. new string[128];
  124. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, CL, "You aren't RCON Admin, so you can't check pools results!");
  125. if(!PoolActive) return SendClientMessage(playerid, CL, "There isn't any pool active!");
  126. format(string, sizeof(string), "{FFCC33}Yes: {FF0000}%d {FFCC33}!", YesPlayers);
  127. SendClientMessage(playerid, -1, string);
  128. format(string, sizeof(string), "{FFCC33}No: {FF0000}%d {FFCC33}!", NoPlayers);
  129. SendClientMessage(playerid, -1, string);
  130. if(YesPlayers > NoPlayers) return SendClientMessage(playerid, CL, "You need to kick voted player!");
  131. if(NoPlayers > YesPlayers) return SendClientMessage(playerid, CL, "You don't need to kick voted player!");
  132. SetTimer("UpdatePools", 20000, false);
  133. return 1;
  134. }
  135.  
  136. stock Show()
  137. {
  138. TextDrawShowForAll(KickLol);
  139. TextDrawShowForAll(PlayerName);
  140. TextDrawShowForAll(Yes);
  141. TextDrawShowForAll(No);
  142. return 1;
  143. }
  144.  
  145. stock Close()
  146. {
  147. TextDrawHideForAll(KickLol);
  148. TextDrawHideForAll(PlayerName);
  149. TextDrawHideForAll(Yes);
  150. TextDrawHideForAll(No);
  151. return 1;
  152. }
  153.  
  154. forward UpdatePools();
  155. forward CloseLol();
  156.  
  157. public CloseLol()
  158. {
  159. Close();
  160. }
  161.  
  162. public UpdatePools()
  163. {
  164. YesPlayers = 0;
  165. NoPlayers = 0;
  166. return 1;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement