on *:load:if ($version >= 5.8) { echo $colour(info) -a * command: /clonescan [channel] [-a] } | else { echo $colour(info) -a * mirc version: $version - v5.8 needed, get newer mirc at www.mirc.co.uk, unloading.. | .unload -rs $script }
alias clonescan {
var %chan = $iif($left($1,1) == $chr(35),$1,#), %type = $iif($2,$2,$iif($left($1,1) == -,$1)) | set %ac %chan
if ($dialog(clonescanner) == $null) && (%type != -a) { dialog -m clonescanner clonescanner }
if (%chan !ischan) {
if (%type == -a) { echo $colour(info) -a * Please enter a valid channel, ie. a channel that you are in. | return }
else { did -ra clonescanner 4 Please enter a valid channel, ie. a channel that you are in. | return }
}
if ($chan(%chan).ial != $true) {
.ial on
if (%type == -a) { echo $colour(info) -a * Updating IAL for %chan }
else { did -ra clonescanner 4 Updating IAL for %chan $+ ... }
set %cs.chan $addtok(%cs.chan,%chan,32) | raw -q WHO %chan | set %cs.type %type | return
}
else {
if ($dialog(clonescanner)) { did -r clonescanner 2 | dialog -t clonescanner Clone Scanner - scanning %chan }
if ($hget(cs)) { hfree cs }
hmake cs $nick(%chan,0)
var %i = 1, %ticks = $ticks, %clones
while ($nick(%chan,%i)) { hadd cs $address($nick(%chan,%i),2) $hget(cs,$address($nick(%chan,%i),2)) $iif($numtok($hget(cs,$address($nick(%chan,%i),2)),38) > 0,$chr(38)) $nick(%chan,%i) | inc %i }
var %o = 1
if (%type == -a) { echo -a - | echo -a * Clone Scan in %chan }
while ($hget(cs,%o).item) {
if ($numtok($hget(cs,$hget(cs,%o).item),38) > 1) {
if (%type == -a) { echo -a $numtok($hget(cs,$hget(cs,%o).item),38) => $hget(cs,%o).item $+ : $hget(cs,$hget(cs,%o).item) }
else { did -a clonescanner 2 $hget(cs,%o).item ( $+ $numtok($hget(cs,$hget(cs,%o).item),38) $+ ): $hget(cs,$hget(cs,%o).item) | did -z clonescanner 2 }
inc %clones
}
inc %o
}
if (%type == -a) { echo -a * Done. $iif(%clones > 0,%clones,no) group $+ $iif(%clones > 1,s) of clones found. (done: $+ $calc($ticks - %ticks) $+ ms) | echo -a - }
else { did -ra clonescanner 4 Done. $iif(%clones > 0,%clones,no) group $+ $iif(%clones > 1,s) of clones found. (done: $+ $calc($ticks - %ticks) $+ ms) }
hfree cs
}
}
raw 352:*:if ($istok(%cs.chan,$2,32)) { halt }
raw 315:*:if ($istok(%cs.chan,$2,32)) { set %cs.chan $remtok(%cs.chan,$2,1,32) | clonescan $2 %cs.type | unset %cs.type | halt }
menu channel {
clone scanner:clonescan #
}
dialog clonescanner {
title "Clone Scanner"
size -1 -1 280 150
option dbu
button "", 1, 0 0 0 0, ok
list 2, 2 2 276 93
box "", 3, 2 87 276 12
text "", 4, 5 91 170 7
edit "",5,3 101 275 10
button "Whois",10,5 115 40 10
button "Ping",11,46 115 40 10
button "Notice",20,5 126 40 10
button "Msg",21,46 126 40 10
button "Query",22,87 126 40 10
button "Final Warn.",23,128 126 40 10
button "Kick",30,5 137 40 10
button "Ban",31,46 137 40 10
button "Ban 10 min",32,87 137 40 10
button "Ban Hour",33,128 137 40 10
button "New Scan",40, 235 115 40 10
button "Close",41,235 137 40 10,cancel
}
on *:dialog:clonescanner:dclick:2: {
var %x = $gettok(%CSSC,3-,32)
var %t = $matchtok(%x,&,0,32)
while (%t > 0) {
var %x = $remtok(%x,&,%t,32)
dec %t
}
.did -ra clonescanner 5 %x
.unset %CSSC
}
on *:dialog:clonescanner:sclick:*: {
set %CSSC $did(2).seltext
if ($did == 10) {
var %n = $numtok($did(5),32)
while (%n > 0) {
whois $gettok($did(5),%n,32) $gettok($did(5),%n,32)
dec %n
}
}
if ($did == 11) {
var %n = $numtok($did(5),32)
while (%n > 0) {
.enable #ping
ping $gettok($did(5),%n,32)
dec -c %n
}
}
if ($did == 20) {
var %n = $numtok($did(5),32)
while (%n > 0) {
.notice $gettok($did(5),%n,32) 4 No Clones, Servers and Ops Only... Msg Me if there is a problem. %ac
dec -c %n
}
}
if ($did == 21) {
var %n = $numtok($did(5),32)
while (%n > 0) {
.msg $gettok($did(5),%n,32) 4 No Clones, Servers and Ops Only... Msg Me if there is a problem. %ac
.echo -a < $+ $me $+ > 4 No Clones, Servers and Ops Only... Final Warning!! %ac
}
}
if ($did == 22) {
var %n = $numtok($did(5),32)
while (%n > 0) {
query $gettok($did(5),%n,32) 4 No Clones, Servers and Ops Only... %ac
dec -c %n
}
}
if ($did == 23) {
var %n = $numtok($did(5),32)
while (%n > 0) {
.notice $gettok($did(5),%n,32) 4 No Clones, Servers and Ops Only... Final Warning!! %ac
.msg $gettok($did(5),%n,32) 4 No Clones, Servers and Ops Only... Final Warning!! %ac
.echo -a < $+ $me $+ > 4 No Clones, Servers and Ops Only... Final Warning!! %ac
dec -c %n
}
}
if ($did == 30) {
var %n = $numtok($did(5),32)
while (%n > 0) {
kick %ac $gettok($did(5),%n,32) 4 Clones
dec -c %n
}
}
if ($did == 31) {
var %n = $numtok($did(5),32)
while (%n > 0) {
ban $gettok($did(5),%n,32)
kick %ac $gettok($did(5),%n,32) 4 Clones
dec -c %n
}
}
if ($did == 32) {
var %n = $numtok($did(5),32)
while (%n > 0) {
ban -u600 %ac $gettok($did(5),%n,32)
kick %ac $gettok($did(5),%n,32) 4 Clones
dec -c %n
}
}
if ($did == 33) {
var %n = $numtok($did(5),32)
while (%n > 0) {
ban -u3600 %ac $gettok($did(5),%n,32)
kick %ac $gettok($did(5),%n,32) 4 Clones
dec -c %n
}
}
if ($did == 40) {
dialog -x clonescanner clonescanner
clonescan %ac
}
}
on *:join:#:{
var %i = $ialchan($wildsite,#,0),%out
if (%i > 1) {
while (%i) {
%out = $addtok(%out,$ialchan($wildsite,#,%i).nick,44)
dec %i
}
echo -t # 4,0 * Clones: 9 $wildsite 8 %out
}
}
#ping off
On ^*:Pong: {
echo 2 -a * PONG from $1 $+ : $2
.disable #ping
haltdef
}
#ping end