Mass Kill & K-Line

By F*U*R*B*Y* on Jul 27, 2008

Simply type /masskill

it opens up the dialog, then you can select individual names and transfer them across, or add them all in one go, then type in a reason and hit perform, it will k-line them, and kill them with that reason.

Useful for a clone attack

MUST BE AN IRCOP TO USE THIS

Thanks to Typo for helping me with the did's stuff ;)

Image

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Mass Kill & K-Line Script         ;
; Created by Paul (F*U*R*B*Y*)      ;
; Massivly Editted by Typo          ;
; Many thanks to Typo for assistance;
;                                   ;
; Purpose for Useage:               ;
; Assist IRCop's in an event of a   ;
; Clone attack.                     ;
;                                   ;
; Useage: /masskill <chan(Optional)>;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Aliases

alias masskill {
  if ($1) set %kill.chan $1
  else set %kill.chan $active
  dialog -mado killkline killkline
}

;; Dialogs

dialog killkline {
  title "Mass Kill/K-Line"
  size -1 -1 153 184
  option dbu
  box "Don't Kill/K-line", 1, 3 2 71 135
  list 2, 6 10 65 124, size vsbar
  box Kill and K-line, 3, 78 2 70 135
  list 4, 81 10 63 123, size vsbar
  edit "Reason", 5, 4 156 143 10
  button "Perform", 6, 55 169 37 12
  button "->", 7, 6 137 15 12
  button "ALL", 8, 30 137 19 12
  button "ALL", 9, 107 137 17 12
  button "<-", 10, 136 137 11 12
}

;; On Join Event
on *:JOIN:%kill.chan: if ($dialog(killkline)) { did -a killkline 2 $nick }
;; On Part Event
on *:PART:%kill.chan: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      if ($did(killkline,2,%a).text == $nick) { did -d killkline 2 %a }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline,4,%b).text == $nick) { did -d killkline 4 %b }
      dec %b
    }
  }
}

;; On Nick Event
on *:NICK: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      if ($did(killkline,2,%a).text == $nick) { did -o killkline 2 %a $newnick }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline,4,%b).text == $nick) { did -o killkline 4 %b $newnick }
      dec %b
    }
  }
}

;; On Quit Event
on *:QUIT: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      if ($did(killkline,2,%a).text == $nick) { did -d killkline 2 %a $nick }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline4,%b).text == $nick) { did -d killkline 4 %b $nick }
      dec %b
    }
  }
}

;; Dialog Events

on *:DIALOG:killkline:*:*: {
  if ($devent == init) {
    if (%kill.chan) {
      var %a = 1
      while ($nick(%kill.chan,%a)) {
        if (($nick(%kill.chan,%a) != $me) && ($nick(%kill.chan,%a) !isop $chan)) {
          did -a killkline 2 $nick(%kill.chan,%a)
          inc %a
        }
        else { inc %a }
      }
    }
  }
  if ($devent == sclick) {
    if ($did == 6) {
      var %kill.lines $did(4).lines
      while (%kill.lines) {
        kline $address($did(4,%kill.lines).text, 2) : $+ $did(5)
        kill $did(4,%kill.lines).text $did(5)
        dec %kill.lines
        did -d killkline 4 $did(4,%kill.lines).sel
      }
    }
    if ($did == 7) {
      var %kill.nick $did(2).seltext, %kill.nick.id $did(2).sel
      did -a killkline 4 %kill.nick
      did -d killkline 2 %kill.nick.id
    }
    if ($did == 8) {
      did -r killkline 2
      var %a = 1
      while ($nick(%kill.chan,%a)) {
        if (($nick(%kill.chan,%a) != $me) && ($nick(%kill.chan,%a) !isop $chan)) {
          did -a killkline 4 $nick(%kill.chan,%a)
          inc %a
        }
        else { inc %a }
      }
    }
    if ($did == 9) {
      did -r killkline 4
      var %a = 1
      while ($nick(%kill.chan,%a)) {
        if (($nick(%kill.chan,%a) != $me) && ($nick(%kill.chan,%a) !isop $chan)) {
          did -a killkline 2 $nick(%kill.chan,%a)
          inc %a
        }
        else { inc %a }
      }
    }
    if ($did == 10) {
      var %kill.nick $did(4).seltext, %kill.nick.id $did(4).sel
      did -a killkline 2 %kill.nick
      did -d killkline 4 %kill.nick.id
    }
  }
}

Comments

Sign in to comment.
macs-rock   -  Jan 07, 2011

cool helped me kill a few bots off in a botnet
thanks dude

(stupid kids botnetting)

 Respond  
TheWhistler   -  Oct 28, 2008

i like this but just want-kline on my network the kill works great lol, as for puting in the channel to bring up the dialog killkline in the script itself i put at the bottom
menu channel {
Mass-Kill-kline
.On://msg $chan /masskill
it works for me
but still its a great script

 Respond  
deejay8   -  Aug 20, 2008

10/10 btw :P

 Respond  
deejay8   -  Aug 20, 2008

awesome but u can add

menu * {
  Mass Kill/K-Line:masskill
}

then ppl can just right click on it

 Respond  
Typo   -  Jul 27, 2008

Something else I forgot to mention. Using On :Dialog:KillKline::*: really seams like a good idea but in reality it isnt. The reason is the fact that the dialog event covers mouse movements so any time the mouse is moved over any pixel in the dialog it triggers an event. This normally is no big deal when we dont monitor it but using your on dialog event you are and it actually has to process 6 lines before it knows it doesnt need to do anything.

To see what I mean you can try one of two things, either open the task manager in windows and have a look at the mirc.exe cpu usage and see what its at then open your dialog and move the mouse around on it and youll see this actually impacts the CPU. Depending on the pc will have a lot to do with the % but for me it seems to be about 3-10 percent because Im on a laptop. The other way to really visually see how much information this is would me to go ahead and make a little test by adding a new line at the top of your dialog event to echo every line to a window or the status window. IF you do that Im sure youll be amazed at the amount of events that fly by wjen you move your mouse.

Anyhow I just thought I should let you know. This is the one case where I actually think that multile events are better than one.

 Respond  
F*U*R*B*Y*   -  Jul 27, 2008

Cheers, Updated

 Respond  
Typo   -  Jul 27, 2008

Ok, have a look at what i did to the events compared to yours.

alias masskill {
  if ($1) set %kill.chan $1
  else set %kill.chan $active
  dialog -mado killkline killkline
}
dialog killkline {
  title \"Mass Kill/K-Line\"
  size -1 -1 153 184
  option dbu
  box \"Don\'t Kill/K-line\", 1, 3 2 71 135
  list 2, 6 10 65 124, size vsbar
  box Kill and K-line, 3, 78 2 70 135
  list 4, 81 10 63 123, size vsbar
  edit \"Reason\", 5, 4 156 143 10
  button \"Perform\", 6, 55 169 37 12
  button \"->\", 7, 6 137 15 12
  button \"ALL\", 8, 30 137 19 12
  button \"ALL\", 9, 107 137 17 12
  button \"<-\", 10, 136 137 11 12
}
on *:JOIN:%kill.chan: if ($dialog(killkline)) { did -a killkline 2 $nick }
on *:PART:%kill.chan: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      if ($did(killkline,2,%a).text == $nick) { did -d killkline 2 %a }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline,4,%b).text == $nick) { did -d killkline 4 %b }
      dec %b
    }
  }
}
on *:NICK: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      echo -a 1 $nick $newnick
      if ($did(killkline,2,%a).text == $nick) { did -o killkline 2 %a $newnick }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline,4,%b).text == $nick) { did -o killkline 4 %b $newnick }
      dec %b
    }
  }
}
on *:QUIT: {
  if ($dialog(killkline)) {
    var %a $did(killkline,2).lines
    while (%a) {
      if ($did(killkline,2,%a).text == $nick) { did -d killkline 2 %a $nick }
      dec %a
    }
    var %b $did(killkline,4).lines
    while (%b) {
      if ($did(killkline4,%b).text == $nick) { did -d killkline 4 %b $nick }
      dec %b
    }
  }
}

You werent using -o to overwrite instead of deleting and adding and you also forgot to tell it which line to change in the id.

:)

JessDude  -  Oct 14, 2014

Where do you begin to copy and where do you paste the script at ? help please thanks.

Sign in to comment

Typo   -  Jul 27, 2008

Lmao, you totally asked for that. Nice script man, I really like the idea as you know. I was thinking it would be cool if you also added a channel menu shortcut to start it. A lot of people dont like using command lines because of the fact that they forget the commands and their just not convenient.

 Respond  
Typo   -  Jul 27, 2008

Improve it.

 Respond  
F*U*R*B*Y*   -  Jul 27, 2008

Please leave feedback for me to improve it :)

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.