#############################################
# #
# Clone scanner by jizzy@AustNet #
# #
# Usage: /clonescan [#channel] #
# #
#############################################
alias clonescan {
var %# = $iif($1,#$1,$chan))
dialog $iif($dialog(clones),-v,-m) clones clones
did -r clones 1,2
if (!%#) did -a clones 2 You must specify a channel
elseif (!$server) did -a clones 2 Not connected to server
elseif ($me !ison %#) did -a clones 2 You are not on %#
elseif (!$chan(%#).ial) {
did -a clones 2 Updating IAL, please wait...
.enable #updateial
who %#
}
else {
var %x = 1
while ($nick(%#,%x)) {
var %a = $address($v1,2)
hadd -m clones %a $hget(clones,%a) $v1
inc %x 1
}
var %n = 0, %h = 0
while ($hget(clones,1).item) {
var %v = $v1, %c
if ($numtok($hget(clones,%v),32) > 1) {
inc %n $v1
var %x = 1
while ($gettok($hget(clones,%v),%x,32)) {
var %c = %c $v1 &
inc %x 1
}
did -a clones 1 Host: $mid(%v,5) $crlf $+ Clones: $left(%c,-1) $crlf $crlf
inc %h 1
}
hdel clones %v
}
hfree clones
did -ar clones 2 %# - Found %n clones on %h host $+ $iif(%h != 1,s)
}
}
#updateial off
raw *:*:{
if ($numeric == 352) haltdef
elseif ($numeric == 315) {
if ($dialog(clones)) clonescan $2
.disable #updateial
haltdef
}
}
#updateial end
dialog -l clones {
title "Clones"
size -1 -1 182 139
option dbu
edit "", 1, 3 5 175 120, read multi vsbar
edit "", 2, 3 125 175 10, read
}
menu channel {
Clone Scan:clonescan
}