This is my first script using hash tables. This is similar to a seen system except it keeps track of all nicks used by an ip address. Once you load the script into your remotes you need to either restart mirc or type '/hmake nick 100'. I didn't really have time to test this real good so if you find any bugs let me know and I will try and fix them.
Usage is '/pnicks @host'
ex: /pnicks @undernet.users.net
on *:start:{
hmake nick 100
if ($isfile(nick.dat)) { hload nick nick.dat }
}
on *:exit:{
if ($hget(nick)) { hsave -o nick nick.dat }
}
on !*:join:#:{
set %ad $address
if ($len($hget(nick,$ad1)) <= 375) {
hadd nick $ad1 $addtok($hget(nick,$ad1),$nick,32)
}
elseif (%nickinc) && ($len($hget(nick,$ad1)) >= 375) && (%nickinc <= $numtok($ad1,32)) {
inc %nickinc
hadd nick $ad1 $puttok($hget(nick,$ad1),$nick,%nickinc,32)
}
elseif (%nickinc) && ($len($hget(nick,$ad1)) >= 375) && (%nickinc >= $numtok($ad1,32)) {
set %nickinc 1
hadd nick $ad1 $puttok($hget(nick,$ad1),$nick,%nickinc,32)
}
else {
set %nickinc 1
hadd nick $ad1 $puttok($hget(nick,$ad1),$nick,%nickinc,32)
}
}
on *:nick:{
set %ad $address
if ($len($hget(nick,$ad1)) <= 375) {
hadd nick $ad1 $addtok($hget(nick,$ad1),$newnick,32)
}
elseif (%nickinc) && ($len($hget(nick,$ad1)) >= 375) && (%nickinc <= $numtok($ad1,32)) {
inc %nickinc
hadd nick $ad1 $puttok($hget(nick,$ad1),$newnick,%nickinc,32)
}
elseif (%nickinc) && ($len($hget(nick,$ad1)) >= 375) && (%nickinc >= $numtok($ad1,32)) {
set %nickinc 1
hadd nick $ad1 $puttok($hget(nick,$ad1),$newnick,%nickinc,32)
}
else {
set %nickinc 1
hadd nick $ad1 $puttok($hget(nick,$ad1),$newnick,%nickinc,32)
}
}
alias ad1 {
var %a = $len(%ad),%g = $pos(%ad,@,1),%b = $calc(%a - %g + 1)
return $mid(%ad,%g,%b)
}
alias nn {
var %n = $hget(nick,$1)
if (!%n) { return I don't have record of $1 }
else {
var %a = $1
tokenize 32 %n
return $+($chr(40),%a,$chr(41)) has been known as $1-
}
}
alias pnicks {
echo -a $nn($1)
}