Downloads containing votekick.mut

Downloads
Name Author Game Mode Rating
JJ2+ Only: Vote kickingFeatured Download szmol96 Mutator 8.7 Download file

File preview

  1. #pragma name "Votekick"
  2.  
  3. const int timeout = 30; //Time limit in seconds
  4. int counter = 0;
  5. bool votingActive = false;
  6.  
  7. uint playerToKick = 0;
  8. string reasonForKicking = "";
  9. int votes = 0;
  10.  
  11. int activePlayers() {
  12.         uint number = 0;
  13.         for(uint i = 0; i < 32; i++) {
  14.                 if (jjPlayers[i].isActive) number++;
  15.         }
  16.         return number;
  17. }
  18.  
  19. void onMain() {
  20.         if (jjIsServer && votingActive) {
  21.                 if (votes > activePlayers() / 2) {
  22.                         jjChat("/kick " + playerToKick + " " + reasonForKicking);
  23.                         votingActive = false;
  24.                         playerToKick = 0;
  25.                         reasonForKicking = "";
  26.                         votes = 0;
  27.                         counter = 0;
  28.                 }
  29.                
  30.                 if (counter == timeout * 70) {
  31.                         jjConsole("Kick voting for " + join(jjPlayers[playerToKick- 1].name.split("|"), "") + " timed out.", true);
  32.                         playerToKick = 0;
  33.                         reasonForKicking = "";
  34.                         votes = 0;
  35.                         votingActive = false;
  36.                         counter = 0;
  37.                 }
  38.                
  39.                 counter++;
  40.         }
  41. }
  42.  
  43. void onChat(int clientID, string &in stringReceived, CHAT::Type chatType) {
  44.         array<string> results;
  45.         if (jjIsServer) {
  46.                 if (jjRegexIsValid(stringReceived) && jjRegexMatch(stringReceived, "!votekick\\s+(\\d+)\\s+(.+?)\\s*", results, true) && !votingActive) {
  47.                         if (jjPlayers[parseInt(results[1]) - 1].isActive) {
  48.                                 jjConsole(join(jjPlayers[clientID].name.split("|"), "") + " started a kick voting against " + join(jjPlayers[parseInt(results[1]) - 1].name.split("|"), ""), true);
  49.                                 jjConsole("Reason: " + results[2], true);
  50.                                 playerToKick = parseInt(results[1]);
  51.                                 reasonForKicking = results[2];
  52.                                 votingActive = true;
  53.                         }
  54.                 }
  55.                 if (votingActive && stringReceived == "!y") {
  56.                         votes++;
  57.                         jjConsole(join(jjPlayers[clientID].name.split("|"), "") + " voted yes.", true);
  58.                 }
  59.         }
  60. }