Public feed #722117

votekick

public text v1 · immutable
Raw Edit
·published 2007-10-01 19:30 UTC
rendered paste body
#######################################
Vote Kick V1.7.2

Stick the votekick.mrc in your mIRC directory and type the following:

/load -rs votekick.mrc

Triggers:
*yourtrigger*vote kick *name* *reason* - Starts a vote kick on a person, needs 60% of votes to be yes.
*yourtrigger*vote ban *name* *reason* - Starts a vote ban on a person, needs 80% of votes to be yes and more than 2 votes to pass.
*yourtrigger*vote yes/no - Votes yes/no on a person
*yourtrigger*override vote yes/no - Set 1000 votes on yes or no
*yourtrigger*override vote cancel - Stops the current vote

Log Window:
When someone tries vote kicking/banning someone, you will see information in the "VoteLog" window.
This log window is useful for keeping track of who starts many votes and so on.

Access:
To start a vote kick you need to be: voice or op
To vote: any

Restrictions:
Cant use * as vote kick trigger, script will do WEIIRD things.

Support:
If you need any help visit #McReW on irc.gamesurge.net

Credits:
K94 - IRC Nick: |Mc|K94
ccnncc99 - E-Mail: ccnncc99@chi-wire.com MSN: ccnncc99@kungfoogamers.com
Visit us at http://scripts.zilfa.com
Plz Idle #McReW on irc.gamesnet.net
#######################################

on *:load:{
  if (%votecommandprefix == $null) {
    set %votecommandprefix $$?="Comand prefix (ie !, @, -, `):"
  }
  if (gamesnet isin $server) {
    .notice cc`server I have just loaded Vote Kick $votekickversion $+ .
  }
  echo -a You have just loaded the Vote Kick $votekickversion by ccnncc99.
  echo -a For support visit #McReW @ irc.gamesurge.net
  :prefixcheck
  if (%votecommandprefix == $chr(42)) {
    set %votecommandprefix $$?="Sorry, you cannot use $chr(42) $+ . Enter a new prefix."
    goto prefixcheck
  }
}

on *:start:{
  votekicklogging start
}

;Log Window Shit

alias votekicklogging {
  if ($1 == start) {
    window @VoteLog
    window -k0 @VoteLog
  }
  elseif ($1 == ban) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - %vote.starter votebanned %vote.imbeingvotedout - %vote.reason
  }
  elseif ($1 == overrideyes) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - $2 overrode vote yes
  }
  elseif ($1 == overrideno) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - $2 overrode vote no
  }
  elseif ($1 == overridecancel) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - $2 canceled vote
  }
  elseif ($1 == banfail) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - Vote Ban Failed
  }
  elseif ($1 == banpass) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - Vote Ban Passed
  }
  elseif ($1 == kickpass) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - Vote Kick Passed
  }
  elseif ($1 == kickfail) {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - Vote Kick Failed
  }
  else {
    aline -p @VoteLog $chr(91) $+ $time(hh:nntt mm/dd/yy) $+ $chr(93) $+ -[ $+ %vote.chan $+ ] - %vote.starter votekicked %vote.imbeingvotedout - %vote.reason
  }
}

;End of Log Window Shit
;Main Crap

on *:TEXT:$(%votecommandprefix $+ vote kick*):*:{
  if ($me isop $chan) {
    if (%vote.on == yes) {
      notice $nick There is already a vote currently on.
    }
    elseif ($3 == $null) {
      notice $nick This command requires more parameters
    }
    elseif ($3 == $nick) {
      notice $nick You cannot vote kick yourself.
    }
    elseif ($4 == $null) {
      notice $nick You must include a reason.
    }
    elseif ($3 == $me) {
      notice $nick You cannot vote kick me.
    }
    elseif ($3 !ison $chan) {
      notice $nick $3 is not currently in this channel.
    }
    elseif (%vote.on != yes) {
      if ($nick isvoice $chan) || ($nick isop $chan) {
        whois $nick
        whois $3
        set %vote.imbeingvotedout $3
        set %vote.on yes
        set %vote.imbeingvotedoutaddress $address( $+ $3 $+ ,2)
        set %vote.starter $address( $+ $nick $+ ,2)
        set %vote.yes 0
        set %vote.no 0
        set %vote.chan $chan
        set %vote.reason $4-
        set %vote.starter $nick
        set %vote.mode kick
        unset %vote.voted
        msg $chan Vote Kicker Has Been Started.
        msg $chan A Vote Has Been Started By $nick To Kick $3
        msg $chan To kick $3 Say " $+ %votecommandprefix $+ vote yes" or to save $3 say " $+ %votecommandprefix $+ vote no"
        timervotekick1 1 60 result
        votekicklogging start
        votekicklogging
      }
      else {
        notice $nick You do not have enough access to use this command.
      }
    }
  }
  else {
    notice $nick I need to be op in this chan for you to be able to start a vote kick.
  }
}

on *:TEXT:$(%votecommandprefix $+ vote ban*):*:{
  if ($me isop $chan) {
    if (%vote.on == yes) {
      notice $nick There is currently a vote already on right now.
    }
    elseif ($3 == $null) {
      notice $nick This command requires more parameters
    }
    elseif ($3 == $nick) {
      notice $nick You cannot vote kick yourself.
    }
    elseif ($4 == $null) {
      notice $nick You must include a reason.
    }
    elseif ($3 == $me) {
      notice $nick You cannot vote kick me.
    }
    elseif ($3 !ison $chan) {
      notice $nick $3 is not currently in this channel.
    }
    elseif (%vote.on != yes) {
      if ($nick isvoice $chan) || ($nick isop $chan) {
        whois $nick
        whois $3
        set %vote.imbeingvotedout $3
        set %vote.on yes
        set %vote.imbeingvotedoutaddress $address( $+ $3 $+ ,2)
        set %vote.starter $address( $+ $nick $+ ,2)
        set %vote.yes 0
        set %vote.no 0
        set %vote.chan $chan
        set %vote.reason $4-
        set %vote.starter $nick
        set %vote.mode ban
        unset %vote.voted
        msg $chan Vote Kicker Has Been Started.
        msg $chan A Vote Has Been Started By $nick To Ban $3 For 15 Mins
        msg $chan To kick $3 Say " $+ %votecommandprefix $+ vote yes" or to save $3 say " $+ %votecommandprefix $+ vote no"
        timervotekick1 1 60 result
        votekicklogging start
        votekicklogging ban
      }
      else {
        notice $nick You do not have enough access to use this command.
      }
    }
  }
  else {
    notice $nick I need to be op in this chan for you to be able to start a vote kick.
  }
}

on *:TEXT:$(%votecommandprefix $+ override vote yes):*:{
  if ($nick isop %vote.chan) {
    if (%vote.on == yes) {
      set %vote.yes 1000
      set %vote.no 0
      notice $nick Vote overrode for yes.
      votekicklogging start
      votekicklogging overrideyes $nick
    }
    else {
      notice $nick There is currently no vote on right now.
    }
  }
  else {
    notice $nick You don't have enough access to use this command.
  }
}

on *:TEXT:$(%votecommandprefix $+ override vote no):*:{
  if ($nick isop %vote.chan) {
    if (%vote.on == yes) {
      set %vote.yes 0
      set %vote.no 1000
      notice $nick Vote overrode for no.
      votekicklogging start
      votekicklogging overrideno $nick
    }
    else {
      notice $nick There is currently no vote on right now.
    }
  }
  else {
    notice $nick You don't have enough access to use this command.
  }
}

on *:TEXT:$(%votecommandprefix $+ override vote cancel):*:{
  if ($nick isop %vote.chan) {
    if (%vote.on == yes) {
      msg %vote.chan Vote has been canceled by $nick
      votekicklogging start
      votekicklogging overridecancel $nick
      votekickunset
      timervotekick1 off
    }
    else {
      notice $nick There is currently no vote on right now.
    }
  }
  else {
    notice $nick You don't have enough access to use this command.
  }
}

on *:TEXT:$(%votecommandprefix $+ vote*):*:{
  if ($2 == $null) {
    notice $nick Instructions on use:
    notice $nick %votecommandprefix $+ vote kick/ban nick reason, %votecommandprefix $+ vote yes/no
  }
  elseif (%vote.on == yes) {
    if ($address($nick,2) !isin %vote.voted) {
      if ($2 == yes) || ($2 == 1) {
        inc %vote.yes
        notice $nick Your vote has been cast.
        set %vote.voted %vote.voted $address($nick,2)
      }
      elseif ($2 == no) || ($2 == 2) {
        inc %vote.no
        notice $nick Your vote has been cast.
        set %vote.voted %vote.voted $address($nick,2)
      }
    }
    elseif ($address($nick,2) isin %vote.voted) {
      notice $nick You already voted.
    }
    elseif ($2 != kick) && ($2 != ban) {
      notice $nick Unknown command
    }
  }
  else {
    notice $nick There is currently no vote on right now.
  }
}

alias result {
  if (%vote.mode == kick) {
    if (($calc( %vote.yes / ( %vote.yes + %vote.no )) >= 0.6) && (%vote.yes >= 2)) {
      msg %vote.chan The vote to kick %vote.imbeingvotedout has passed with yes: %vote.yes no: %vote.no
      kick %vote.chan %vote.imbeingvotedout You were vote kicked by %vote.starter with yes: %vote.yes no: %vote.no for reason of: %vote.reason
      votekicklogging start
      votekicklogging kickpass
      votekickunset
    }
    else {
      msg %vote.chan The vote to kick %vote.imbeingvotedout has failed with yes: %vote.yes no: %vote.no
      votekicklogging start
      votekicklogging kickfail
      votekickunset
    }
  }
  elseif (%vote.mode == ban) {
    if (($calc( %vote.yes / ( %vote.yes + %vote.no )) >= 0.8) && (%vote.yes >= 2)) {
      msg %vote.chan The vote to kick %vote.imbeingvotedout has passed with yes: %vote.yes no: %vote.no
      ban %vote.chan %vote.imbeingvotedoutaddress
      timerunban 1 900 mode %vote.chan -b %vote.imbeingvotedoutaddress
      kick %vote.chan %vote.imbeingvotedout You were vote kicked by %vote.starter with yes: %vote.yes no: %vote.no for reason of: %vote.reason
      votekicklogging start
      votekicklogging banpass
      votekickunset
    }
    else {
      msg %vote.chan The vote to kick %vote.imbeingvotedout has failed with yes: %vote.yes no: %vote.no
      votekicklogging start
      votekicklogging banfail
      votekickunset
    }
  }
}

alias votekickunset {
  unset %vote.imbeingvotedout
  unset %vote.voted
  unset %vote.on
  unset %vote.imbeingvotedoutaddress
  unset %vote.starter
  unset %vote.yes
  unset %vote.no
  unset %vote.chan
  unset %vote.reason
  unset %vote.starter
  unset %vote.yes
  unset %vote.no
  unset %vote.mode
}

;End Main Crap
;Ban evasion hax

on *:nick:{
  if (%vote.imbeingvotedout == $nick) {
    set %vote.imbeingvotedout $newnick
  }
}

;End ban evasion hax
;Credits and Version

alias votekickversion {
  return V1.7.2
}

ctcp *:*:*:{
  if ($1 == version) {
    .ctcpreply $nick $1 Running Vote kick script $votekickversion by ccnncc99, get it at http://scripts.zilfa.com
  }
}

on *:TEXT:!credits:*:{
  .notice $nick Running Vote kick script $votekickversion by ccnncc99, get it at http://scripts.zilfa.com
}

on *:TEXT:@credits:*:{
  .notice $nick Running Vote kick script $votekickversion by ccnncc99, get it at http://scripts.zilfa.com
}

;End of Credits and Versions

;Menus

menu channel {
  .Change Vote Kick Prefix:{
    set %votecommandprefix $$?="Comand prefix (ie !, @, -, `):"
    :prefixcheck
    if (%votecommandprefix == $chr(42)) {
      set %votecommandprefix $$?="Sorry, you cannot use $chr(42) $+ . Enter a new prefix."
      goto prefixcheck
    }
  }
  .Advertise Vote Kick(channel):msg $active Runnnig Vote Kick script version $votekickversion by ccnncc99, get it at http://scripts.zilfa.com
  .Advertise Vote Kick(global):amsg Running Vote Kick script version $votekickversion by ccnncc99, get it at http://scripts.zilfa.com
}

menu @VoteLog {
  .Clear:clear @VoteLog
}

;End Of Menus