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 ;)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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
}
}
}
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.
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.
:)
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.
Where do you begin to copy and where do you paste the script at ? help please thanks.