Difference between revisions of "Test2"
From Scriptwiki
m |
m |
||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IAL-UPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IAL-UPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
;info: | ;info: | ||
Line 967: | Line 63: | ||
on *:join:#:{ | on *:join:#:{ | ||
; we join, IAL not updated, timer does not run, start a timer | ; we join, IAL not updated, timer does not run, start a timer | ||
− | [[If-Then-Else|if]] ($nick == $me) && (!$timer($+($cid,.ial-update.update))) { | + | [[If-Then-Else|if]] ([[$nick_(remote)|$nick]] == [[$me]]) && (![[|$timer]]([[DollarPlus|$+]]([[$cid]],.ial-update.update))) { |
− | .![[timer]] $+ $cid $+ .ial-update.update 1 $$delay.who ial-update.update | + | .![[timer]] [[DollarPlus|$+]] [[$cid]] [[DollarPlus|$+]] .ial-update.update 1 $$delay.who ial-update.update |
} | } | ||
} | } | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
− | on *:load:{ !scon -at1 .!timer $!+ $!cid $!+ .ial-update.update 1 $$delay.who ial-update.update } | + | on *:load:{ !scon -at1 .!timer [[$!]][[DollarPlus|+]] [[$!]][[cid]] [[$!]][[DollarPlus|+]] .ial-update.update 1 $$delay.who ial-update.update } |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
[[alias]] ialupdate { ![[echo]] -a IAL-update: $ial-update.update } | [[alias]] ialupdate { ![[echo]] -a IAL-update: $ial-update.update } | ||
Line 979: | Line 75: | ||
![[Local_Variables|var]] %c, %n | ![[Local_Variables|var]] %c, %n | ||
; IAL is set on | ; IAL is set on | ||
− | [[If-Then-Else|if]] ($ial) { | + | [[If-Then-Else|if]] ([[$ial]]) { |
; hash table does not exist, set a var with the channels we need to who | ; hash table does not exist, set a var with the channels we need to who | ||
− | [[If-Then-Else|if]] (!$hget($+(ial-update.,$cid))) { ![[Local_Variables|var]] %c = $ial-update.chan($max.who,$len.who) | + | [[If-Then-Else|if]] (![[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { ![[Local_Variables|var]] %c = [[|$ial-update.chan]]($max.who,$len.who) |
; something is in there, send it to the hash alias, send the who request | ; something is in there, send it to the hash alias, send the who request | ||
[[If-Then-Else|if]] (%c) { ial-update.hash %c | .!quote WHO %c } | [[If-Then-Else|if]] (%c) { ial-update.hash %c | .!quote WHO %c } | ||
; else no channels to who, set a var with the nicks we need to who | ; else no channels to who, set a var with the nicks we need to who | ||
− | [[If-Then-Else|else]] { ![[Local_Variables|var]] %n = $ial-update.nick($max.who,$len.who) | + | [[If-Then-Else|else]] { ![[Local_Variables|var]] %n = [[|$ial-update.nick]]($max.who,$len.who) |
; something is in there, send it to the hash alias, send the who request | ; something is in there, send it to the hash alias, send the who request | ||
[[If-Then-Else|if]] (%n) { ial-update.hash %n | .!quote WHO %n } | [[If-Then-Else|if]] (%n) { ial-update.hash %n | .!quote WHO %n } | ||
Line 991: | Line 87: | ||
} | } | ||
; we did a who or the hash table was not empty, start a timer to run this alias again | ; we did a who or the hash table was not empty, start a timer to run this alias again | ||
− | [[If-Then-Else|if]] (%c) || (%n) || ($hget($+(ial-update.,$cid))) { | + | [[If-Then-Else|if]] (%c) || (%n) || ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { |
− | .![[timer]] $+ $cid $+ .ial-update.update 1 $$repeat.who ial-update.update | + | .![[timer]] [[DollarPlus|$+]] [[$cid]] [[DollarPlus|$+]] .ial-update.update 1 $$repeat.who ial-update.update |
} | } | ||
; return some info | ; return some info | ||
[[If-Then-Else|if]] (%c) || (%n) { ![[return]] updating } | [[If-Then-Else|if]] (%c) || (%n) { ![[return]] updating } | ||
− | [[If-Then-Else|elseif]] ($hget($+(ial-update.,$cid))) { ![[return]] already in progress } | + | [[If-Then-Else|elseif]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { ![[return]] already in progress } |
[[If-Then-Else|else]] { ![[return]] nothing to update } | [[If-Then-Else|else]] { ![[return]] nothing to update } | ||
} | } | ||
Line 1,012: | Line 108: | ||
; $chan(0) returns the number of open channel windows, | ; $chan(0) returns the number of open channel windows, | ||
; which does not mean you are on it ("keep channels open" option) | ; which does not mean you are on it ("keep channels open" option) | ||
− | [[while]] (%x <= $comchan($me,0)) { | + | [[while]] (%x <= [[$comchan]]([[$me]],0)) { |
; check if the ial is not updated or busy, add it to a var | ; check if the ial is not updated or busy, add it to a var | ||
− | [[If-Then-Else|if]] ($chan($comchan($me,%x)).ial == $false) { ![[Local_Variables|var]] %c = $addtok(%c,$+($nick($comchan($me,%x),0),.,%x),32) } | + | [[If-Then-Else|if]] ([[$chan_(window)|$chan(]][[$comchan]]([[$me]],%x)).ial == $false) { ![[Local_Variables|var]] %c = [[$addtok]](%c,[[DollarPlus|$+]]([[$nick_(nick)|$nick(]][[$comchan]]([[$me]],%x),0),.,%x),32) } |
![[inc]] %x | ![[inc]] %x | ||
} | } | ||
; return it sorted | ; return it sorted | ||
− | ![[return]] $sorttok(%c,32,n) | + | ![[return]] [[$sorttok]](%c,32,n) |
} | } | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.MAX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.MAX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
Line 1,028: | Line 124: | ||
![[Local_Variables|var]] %x = 1, %t = 0, %c = $ial-update.sort, %w | ![[Local_Variables|var]] %x = 1, %t = 0, %c = $ial-update.sort, %w | ||
; loop through the channels and as long as %t smaller then $1, increase %t | ; loop through the channels and as long as %t smaller then $1, increase %t | ||
− | [[while]] (%x <= $numtok(%c,32)) && (%t < $1) { | + | [[while]] (%x <= [[$numtok]](%c,32)) && (%t < [[$1|$1]]) { |
− | ![[inc]] %t $gettok($gettok(%c,%x,32),1,46) | + | ![[inc]] %t [[$gettok]]([[$gettok]](%c,%x,32),1,46) |
; if %t is greater then $1, stop the loop | ; if %t is greater then $1, stop the loop | ||
− | [[If-Then-Else|if]] (%t > $1) { ![[break]] } | + | [[If-Then-Else|if]] (%t > [[$1|$1]]) { ![[break]] } |
; add it to a var | ; add it to a var | ||
− | ![[Local_Variables|var]] %w = $addtok(%w,$gettok($gettok(%c,%x,32),2,46),32) | + | ![[Local_Variables|var]] %w = [[$addtok]](%w,[[$gettok]]([[$gettok]](%c,%x,32),2,46),32) |
![[inc]] %x | ![[inc]] %x | ||
} | } | ||
Line 1,044: | Line 140: | ||
; this alias is used to WHO channels | ; this alias is used to WHO channels | ||
[[alias]] -l ial-update.chan { | [[alias]] -l ial-update.chan { | ||
− | ![[Local_Variables|var]] %x = 1, %l = 0, %c = $ial-update.max($1), %w | + | ![[Local_Variables|var]] %x = 1, %l = 0, %c = [[|$ial-update.max]]([[$1|$1]]), %w |
; loop through the channels, as long as %l smaller then $2, increase %l for the length of the channel | ; loop through the channels, as long as %l smaller then $2, increase %l for the length of the channel | ||
− | [[while]] (%x <= $numtok(%c,32)) && (%l < $2) { | + | [[while]] (%x <= [[$numtok]](%c,32)) && (%l < [[$1|$2]]) { |
− | ![[inc]] %l $len($comchan($me,$gettok(%c,%x,32))) | + | ![[inc]] %l [[$len]]([[$comchan]]([[$me]],[[$gettok]](%c,%x,32))) |
; %l greater then $2, stop the loop | ; %l greater then $2, stop the loop | ||
− | [[If-Then-Else|if]] (%l > $2) { ![[break]] } | + | [[If-Then-Else|if]] (%l > [[$1|$2]]) { ![[break]] } |
; add it to the var | ; add it to the var | ||
− | ![[Local_Variables|var]] %w = $addtok(%w,$comchan($me,$gettok(%c,%x,32)),44) | + | ![[Local_Variables|var]] %w = [[$addtok]](%w,[[$comchan]]([[$me]],[[$gettok]](%c,%x,32)),44) |
![[inc]] %x | ![[inc]] %x | ||
} | } | ||
Line 1,064: | Line 160: | ||
![[Local_Variables|var]] %x = 1 | ![[Local_Variables|var]] %x = 1 | ||
; loop through the channels untill we found one where the IAL isnt updated | ; loop through the channels untill we found one where the IAL isnt updated | ||
− | [[while]] ($chan($comchan($me,%x)).ial != $false) && (%x <= $comchan($me,0)) { | + | [[while]] ([[$chan_(window)|$chan(]][[$comchan]]([[$me]],%x)).ial != $false) && (%x <= [[$comchan]]([[$me]],0)) { |
![[inc]] %x | ![[inc]] %x | ||
} | } | ||
; ial is not updated, set vars | ; ial is not updated, set vars | ||
− | [[If-Then-Else|if]] ($chan($comchan($me,%x)).ial == $false) { ![[Local_Variables|var]] %y = 1, %t = 0, %l = 0, %w | + | [[If-Then-Else|if]] ([[$chan_(window)|$chan(]][[$comchan]]([[$me]],%x)).ial == $false) { ![[Local_Variables|var]] %y = 1, %t = 0, %l = 0, %w |
; loop | ; loop | ||
− | [[while]] (%t <= $1) && (%l < $2) && (%y <= $nick($comchan($me,%x),0)) { | + | [[while]] (%t <= [[$1|$1]]) && (%l < [[$1|$2]]) && (%y <= [[$nick_(nick)|$nick(]][[$comchan]]([[$me]],%x),0)) { |
; ial for that nick isnt updated, increase %l | ; ial for that nick isnt updated, increase %l | ||
− | [[If-Then-Else|if]] (!$ial($nick($comchan($me,%x),%y))) { | + | [[If-Then-Else|if]] (![[$ial]]([[$nick_(nick)|$nick(]][[$comchan]]([[$me]],%x),%y))) { |
− | ![[inc]] %l $len($nick($comchan($me,%x),%y)) | + | ![[inc]] %l [[$len]]([[$nick_(nick)|$nick(]][[$comchan]]([[$me]],%x),%y)) |
; if greater then $2, stop the loop | ; if greater then $2, stop the loop | ||
− | [[If-Then-Else|if]] (%l > $2) { ![[break]] } | + | [[If-Then-Else|if]] (%l > [[$1|$2]]) { ![[break]] } |
; add it to the var | ; add it to the var | ||
− | ![[Local_Variables|var]] %w = $addtok(%w,$nick($comchan($me,%x),%y),44) | + | ![[Local_Variables|var]] %w = [[$addtok]](%w,[[$nick_(nick)|$nick(]][[$comchan]]([[$me]],%x),%y),44) |
} | } | ||
![[inc]] %y | ![[inc]] %y | ||
Line 1,088: | Line 184: | ||
[[alias]] -l ial-update.hash { | [[alias]] -l ial-update.hash { | ||
; $2 is not there, set a var | ; $2 is not there, set a var | ||
− | [[If-Then-Else|if]] ($2 == $null) { ![[Local_Variables|var]] %x = $numtok($1,44) | + | [[If-Then-Else|if]] ([[$1|$2]] == [[$null]]) { ![[Local_Variables|var]] %x = [[$numtok]]([[$1|$1]],44) |
; loop through each part seperated with a comma, add it to a hash table | ; loop through each part seperated with a comma, add it to a hash table | ||
− | [[while]] (%x) { ![[hadd]] -m $+(ial-update.,$cid) $gettok($1,%x,44) 1 | ![[dec]] %x } | + | [[while]] (%x) { ![[hadd]] -m [[DollarPlus|$+]](ial-update.,[[$cid]]) [[$gettok]]([[$1|$1]],%x,44) 1 | ![[dec]] %x } |
; add mask | ; add mask | ||
− | ![[hadd]] -m $+(ial-update.,$cid) -mask $1 | + | ![[hadd]] -m [[DollarPlus|$+]](ial-update.,[[$cid]]) -mask [[$1|$1]] |
} | } | ||
; $2 is -remove, set a var | ; $2 is -remove, set a var | ||
− | [[If-Then-Else|elseif]] ($2 == -remove) { ![[Local_Variables|var]] %x = $numtok($1,44) | + | [[If-Then-Else|elseif]] ([[$1|$2]] == -remove) { ![[Local_Variables|var]] %x = [[$numtok]]([[$1|$1]],44) |
; loop through each part seperated with a comma, remove it from the hash table | ; loop through each part seperated with a comma, remove it from the hash table | ||
− | [[while]] (%x) { [[If-Then-Else|if]] ($hget($+(ial-update.,$cid))) { ![[hdel]] $+(ial-update.,$cid) $gettok($1,%x,44) } | ![[dec]] %x } | + | [[while]] (%x) { [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[$gettok]]([[$1|$1]],%x,44) } | ![[dec]] %x } |
; del mask | ; del mask | ||
− | ![[hdel]] $+(ial-update.,$cid) -mask | + | ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) -mask |
; check hash table, free hash table | ; check hash table, free hash table | ||
− | [[If-Then-Else|if]] ($hget($+(ial-update.,$cid),0).item == 0) && ($hget($+(ial-update.,$cid))) { ![[hfree]] $+(ial-update.,$cid) } | + | [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),0).item == 0) && ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { ![[hfree]] [[DollarPlus|$+]](ial-update.,[[$cid]]) } |
} | } | ||
} | } | ||
Line 1,108: | Line 204: | ||
raw 352:& & & & & & & & *: { | raw 352:& & & & & & & & *: { | ||
; chan or nick are in the hash table | ; chan or nick are in the hash table | ||
− | [[If-Then-Else|if]] ($hget($+(ial-update.,$cid),$2)) || ($hget($+(ial-update.,$cid),$6)) { | + | [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[$1|$2]])) || ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[$1|$6]])) { |
; check setting, set a var | ; check setting, set a var | ||
− | [[If-Then-Else|if]] ($show.who == 1) && ($hget($+(ial-update.,$cid),$2)) && ($comchan($6,0)) { ![[Local_Variables|var]] %x = $comchan($6,0) | + | [[If-Then-Else|if]] ($show.who == 1) && ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[$1|$2]])) && ([[$comchan]]([[$1|$6]],0)) { ![[Local_Variables|var]] %x = [[$comchan]]([[$1|$6]],0) |
; loop, set a var | ; loop, set a var | ||
− | [[while]] (%x) { ![[Local_Variables|var]] %c = $comchan($6,%x) | + | [[while]] (%x) { ![[Local_Variables|var]] %c = [[$comchan]]([[$1|$6]],%x) |
; check has table | ; check has table | ||
− | [[If-Then-Else|if]] ($hget($+(ial-update.,$cid),%c)) { | + | [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),%c)) { |
; * meaning oper isin $7, increase | ; * meaning oper isin $7, increase | ||
− | [[If-Then-Else|if]] (* isin $7) { ![[hinc]] $+(ial-update.,$cid) $+(%c,$chr(44),oper) } | + | [[If-Then-Else|if]] (* isin [[$1|$7]]) { ![[hinc]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),oper) } |
; G meaning Gone isin $7, increase | ; G meaning Gone isin $7, increase | ||
− | [[If-Then-Else|if]] (G isincs $7) { ![[hinc]] $+(ial-update.,$cid) $+(%c,$chr(44),away) } | + | [[If-Then-Else|if]] (G isincs [[$1|$7]]) { ![[hinc]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),away) } |
; d meaning deaf isin $7, increase | ; d meaning deaf isin $7, increase | ||
− | [[If-Then-Else|if]] (d isincs $7) { ![[hinc]] $+(ial-update.,$cid) $+(%c,$chr(44),deaf) } | + | [[If-Then-Else|if]] (d isincs [[$1|$7]]) { ![[hinc]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),deaf) } |
; x meaning fake host isin $7, increase | ; x meaning fake host isin $7, increase | ||
− | [[If-Then-Else|if]] (x isincs $7) { ![[hinc]] $+(ial-update.,$cid) $+(%c,$chr(44),xhost) } | + | [[If-Then-Else|if]] (x isincs [[$1|$7]]) { ![[hinc]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),xhost) } |
} | } | ||
![[dec]] %x | ![[dec]] %x | ||
Line 1,135: | Line 231: | ||
raw 315:& & end of /WHO list.: { | raw 315:& & end of /WHO list.: { | ||
; check -mask in hash table | ; check -mask in hash table | ||
− | [[If-Then-Else|if]] ($hget($+(ial-update.,$cid),-mask) == $2) { | + | [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),-mask) == [[$1|$2]]) { |
; check setting, set a var | ; check setting, set a var | ||
− | [[If-Then-Else|if]] ($show.who == 1) { ![[Local_Variables|var]] %x = $numtok($2,44) | + | [[If-Then-Else|if]] ($show.who == 1) { ![[Local_Variables|var]] %x = [[$numtok]]([[$1|$2]],44) |
; loop, we are on the channel, set var | ; loop, we are on the channel, set var | ||
− | [[while]] (%x) { [[If-Then-Else|if]] ($me ison $gettok($2,%x,44)) { ![[Local_Variables|var]] %c = $gettok($2,%x,44) | + | [[while]] (%x) { [[If-Then-Else|if]] ([[$me]] ison [[$gettok]]([[$1|$2]],%x,44)) { ![[Local_Variables|var]] %c = [[$gettok]]([[$1|$2]],%x,44) |
; oper info | ; oper info | ||
− | ![[Local_Variables|var]] %oper = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),oper)),$ifmatch,0) | + | ![[Local_Variables|var]] %oper = [[$iif]]([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[DollarPlus|$+]](%c,[[$chr]](44),oper)),[[$ifmatch]],0) |
− | ![[Local_Variables|var]] %oper = %oper / $round($calc(%oper / $nick(%c,0) * 100),1) $+ % Oper | + | ![[Local_Variables|var]] %oper = %oper / [[$round]]([[$calc]](%oper / [[$nick_(nick)|$nick(]]%c,0) * 100),1) [[DollarPlus|$+]] % Oper |
; away info | ; away info | ||
− | ![[Local_Variables|var]] %away = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),away)),$ifmatch,0) | + | ![[Local_Variables|var]] %away = [[$iif]]([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[DollarPlus|$+]](%c,[[$chr]](44),away)),[[$ifmatch]],0) |
− | ![[Local_Variables|var]] %away = %away / $round($calc(%away / $nick(%c,0) * 100),1) $+ % Away | + | ![[Local_Variables|var]] %away = %away / [[$round]]([[$calc]](%away / [[$nick_(nick)|$nick(]]%c,0) * 100),1) [[DollarPlus|$+]] % Away |
; deaf info | ; deaf info | ||
− | ![[Local_Variables|var]] %deaf = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),deaf)),$ifmatch,0) | + | ![[Local_Variables|var]] %deaf = [[$iif]]([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[DollarPlus|$+]](%c,[[$chr]](44),deaf)),[[$ifmatch]],0) |
− | ![[Local_Variables|var]] %deaf = %deaf / $round($calc(%deaf / $nick(%c,0) * 100),1) $+ % deaf | + | ![[Local_Variables|var]] %deaf = %deaf / [[$round]]([[$calc]](%deaf / [[$nick_(nick)|$nick(]]%c,0) * 100),1) [[DollarPlus|$+]] % deaf |
; xhost info | ; xhost info | ||
− | ![[Local_Variables|var]] %xhost = $iif($hget($+(ial-update.,$cid),$+(%c,$chr(44),xhost)),$ifmatch,0) | + | ![[Local_Variables|var]] %xhost = [[$iif]]([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]),[[DollarPlus|$+]](%c,[[$chr]](44),xhost)),[[$ifmatch]],0) |
− | ![[Local_Variables|var]] %xhost = %xhost / $round($calc(%xhost / $nick(%c,0) * 100),1) $+ % x-host | + | ![[Local_Variables|var]] %xhost = %xhost / [[$round]]([[$calc]](%xhost / [[$nick_(nick)|$nick(]]%c,0) * 100),1) [[DollarPlus|$+]] % x-host |
; echo | ; echo | ||
− | ![[echo]] -t $gettok($2,%x,44) * IAL updated ( $+ %oper ---- %away ---- %deaf ---- %xhost $+ ) | + | ![[echo]] -t [[$gettok]]([[$1|$2]],%x,44) * IAL updated ( [[DollarPlus|$+]] %oper ---- %away ---- %deaf ---- %xhost [[DollarPlus|$+]] ) |
} | } | ||
; remove from hash table | ; remove from hash table | ||
− | ![[hdel]] $+(ial-update.,$cid) $+(%c,$chr(44),oper) | ![[hdel]] $+(ial-update.,$cid) $+(%c,$chr(44),away) | + | ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),oper) | ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),away) |
− | ![[hdel]] $+(ial-update.,$cid) $+(%c,$chr(44),deaf) | ![[hdel]] $+(ial-update.,$cid) $+(%c,$chr(44),xhost) | + | ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),deaf) | ![[hdel]] [[DollarPlus|$+]](ial-update.,[[$cid]]) [[DollarPlus|$+]](%c,[[$chr]](44),xhost) |
![[dec]] %x | ![[dec]] %x | ||
} | } | ||
} | } | ||
; remove the items from the hash table | ; remove the items from the hash table | ||
− | ial-update.hash $2 -remove | + | ial-update.hash [[$1|$2]] -remove |
![[haltdef]] | ![[haltdef]] | ||
} | } | ||
} | } | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DISCONNECT EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DISCONNECT EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
− | on *:disconnect:{ [[If-Then-Else|if]] ($hget($+(ial-update.,$cid))) { ![[hfree]] $+(ial-update.,$cid) } } | + | on *:disconnect:{ [[If-Then-Else|if]] ([[|$hget]]([[DollarPlus|$+]](ial-update.,[[$cid]]))) { ![[hfree]] [[DollarPlus|$+]](ial-update.,[[$cid]]) } } |
Revision as of 13:55, 3 February 2011
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IAL-UPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;info: ; ; by wiebe @ QuakeNet ; version 1.0 (written and tested on mIRC 6.15) ; ; last edit: Sun Jun 06 2004 ; ; ;What does this script do? ; ; updates the IAL by doing /who chan1,chan2,chan3 etc ; if a channel is too big, /who nick1,nick2,nick3 etc is done untill the IAL for the channel is updated ; script updates from smallest to the biggest channel ; ; ;How to use this script? ; ; config the options below ; /ialupdate can be used to make the script update the IAL without waiting for the timer to trigger it ; ; ;Why is this script good? ; ; sending /who chan for every channel is not needed and goes slow (lag) ; sending /who chan on join may cause Excess Flood or Max sendQ exceeded ; sending /who chan1,chan2,chan3 can be much faster, but only if there are not too many results (Max sendQ exceeded) ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS MAX.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l max.who { ; maximum number of replies in a WHO, too big may cause 'Max sendQ exceeded' disconnection ; too low may take the script a long time to update the IAL, 500 or 400 should be fine for most situations !return 700 } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS LEN.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l len.who { ; maximum length of the /who <string>, too long may cause the server to ignore the command ; too low may slow things down, 400 should be fine in most cases !return 400 } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS DELAY.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l delay.who { ; N seconds after the first join, the script starts to update the IAL !return 120 } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS REPEAT.WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l repeat.who { ; wait N seconds after doing /who to do the next check and /who !return 30 } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS SHOW ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l show.who { ; set this to 1 if you want the script to echo when the IAL is updated ; shows number of opers, number of users that are away, number of users that are deaf (+d), ; number of users that have fake host (+x) ; may slow things down, needs some checks / loops etc ; only shows when a whole channel is being who'd !return 1 } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; JOIN EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; on *:join:#:{ ; we join, IAL not updated, timer does not run, start a timer if ($nick == $me) && (![[|$timer]]($+($cid,.ial-update.update))) { .!timer $+ $cid $+ .ial-update.update 1 $$delay.who ial-update.update } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LOAD EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; on *:load:{ !scon -at1 .!timer $!+ $!cid $!+ .ial-update.update 1 $$delay.who ial-update.update } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IALUPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias ialupdate { !echo -a IAL-update: $ial-update.update } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.UPDATE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; alias -l ial-update.update { !var %c, %n ; IAL is set on if ($ial) { ; hash table does not exist, set a var with the channels we need to who if (![[|$hget]]($+(ial-update.,$cid))) { !var %c = [[|$ial-update.chan]]($max.who,$len.who) ; something is in there, send it to the hash alias, send the who request if (%c) { ial-update.hash %c | .!quote WHO %c } ; else no channels to who, set a var with the nicks we need to who else { !var %n = [[|$ial-update.nick]]($max.who,$len.who) ; something is in there, send it to the hash alias, send the who request if (%n) { ial-update.hash %n | .!quote WHO %n } } } ; we did a who or the hash table was not empty, start a timer to run this alias again if (%c) || (%n) || ([[|$hget]]($+(ial-update.,$cid))) { .!timer $+ $cid $+ .ial-update.update 1 $$repeat.who ial-update.update } ; return some info if (%c) || (%n) { !return updating } elseif ([[|$hget]]($+(ial-update.,$cid))) { !return already in progress } else { !return nothing to update } } ; ial is off return some info else { !return ERROR, IAL is turned off, /IAL on to enable } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.SORT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $ial-update.sort ; sorts channels where the IAL is not updated ; <number of nicks>.<channel number> ; 127.1 <= means 127 users on channel 1 alias -l ial-update.sort { !var %x = 1, %c ; loop through all common channels that we have with ourself ; $chan(0) returns the number of open channel windows, ; which does not mean you are on it ("keep channels open" option) while (%x <= $comchan($me,0)) { ; check if the ial is not updated or busy, add it to a var if ($chan($comchan($me,%x)).ial == $false) { !var %c = $addtok(%c,$+($nick($comchan($me,%x),0),.,%x),32) } !inc %x } ; return it sorted !return $sorttok(%c,32,n) } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.MAX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $ial-update.max(N) ; N maximum number of nicks to request at once ; this alias returns the channels to ial based on the info provided by $ial-update.sort ; #chan1,#chan2,#chan3 alias -l ial-update.max { !var %x = 1, %t = 0, %c = $ial-update.sort, %w ; loop through the channels and as long as %t smaller then $1, increase %t while (%x <= $numtok(%c,32)) && (%t < $1) { !inc %t $gettok($gettok(%c,%x,32),1,46) ; if %t is greater then $1, stop the loop if (%t > $1) { !break } ; add it to a var !var %w = $addtok(%w,$gettok($gettok(%c,%x,32),2,46),32) !inc %x } !return %w } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.CHAN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $ial-update.chan(N,L) ; N maximum number of nicks to request at once ; L maximum length of the WHO request ; this alias is used to WHO channels alias -l ial-update.chan { !var %x = 1, %l = 0, %c = [[|$ial-update.max]]($1), %w ; loop through the channels, as long as %l smaller then $2, increase %l for the length of the channel while (%x <= $numtok(%c,32)) && (%l < $2) { !inc %l $len($comchan($me,$gettok(%c,%x,32))) ; %l greater then $2, stop the loop if (%l > $2) { !break } ; add it to the var !var %w = $addtok(%w,$comchan($me,$gettok(%c,%x,32)),44) !inc %x } !return %w } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.NICK ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; $ial-update.nick(N,L) ; N maximum number of nicks to request at once ; L maximum length of the WHO request ; this alias is used to WHO nicks alias -l ial-update.nick { !var %x = 1 ; loop through the channels untill we found one where the IAL isnt updated while ($chan($comchan($me,%x)).ial != $false) && (%x <= $comchan($me,0)) { !inc %x } ; ial is not updated, set vars if ($chan($comchan($me,%x)).ial == $false) { !var %y = 1, %t = 0, %l = 0, %w ; loop while (%t <= $1) && (%l < $2) && (%y <= $nick($comchan($me,%x),0)) { ; ial for that nick isnt updated, increase %l if (!$ial($nick($comchan($me,%x),%y))) { !inc %l $len($nick($comchan($me,%x),%y)) ; if greater then $2, stop the loop if (%l > $2) { !break } ; add it to the var !var %w = $addtok(%w,$nick($comchan($me,%x),%y),44) } !inc %y } !return %w } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ALIAS IAL-UPDATE.HASH ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; /ial-update.hash <things> -remove alias -l ial-update.hash { ; $2 is not there, set a var if ($2 == $null) { !var %x = $numtok($1,44) ; loop through each part seperated with a comma, add it to a hash table while (%x) { !hadd -m $+(ial-update.,$cid) $gettok($1,%x,44) 1 | !dec %x } ; add mask !hadd -m $+(ial-update.,$cid) -mask $1 } ; $2 is -remove, set a var elseif ($2 == -remove) { !var %x = $numtok($1,44) ; loop through each part seperated with a comma, remove it from the hash table while (%x) { if ([[|$hget]]($+(ial-update.,$cid))) { !hdel $+(ial-update.,$cid) $gettok($1,%x,44) } | !dec %x } ; del mask !hdel $+(ial-update.,$cid) -mask ; check hash table, free hash table if ([[|$hget]]($+(ial-update.,$cid),0).item == 0) && ([[|$hget]]($+(ial-update.,$cid))) { !hfree $+(ial-update.,$cid) } } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RAW 352 WHO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 352 <you> <channel> <user> <host> <server> <nick> <flags> :<distance> <realname> raw 352:& & & & & & & & *: { ; chan or nick are in the hash table if ([[|$hget]]($+(ial-update.,$cid),$2)) || ([[|$hget]]($+(ial-update.,$cid),$6)) { ; check setting, set a var if ($show.who == 1) && ([[|$hget]]($+(ial-update.,$cid),$2)) && ($comchan($6,0)) { !var %x = $comchan($6,0) ; loop, set a var while (%x) { !var %c = $comchan($6,%x) ; check has table if ([[|$hget]]($+(ial-update.,$cid),%c)) { ; * meaning oper isin $7, increase if (* isin $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),oper) } ; G meaning Gone isin $7, increase if (G isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),away) } ; d meaning deaf isin $7, increase if (d isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),deaf) } ; x meaning fake host isin $7, increase if (x isincs $7) { !hinc $+(ial-update.,$cid) $+(%c,$chr(44),xhost) } } !dec %x } } ; stop mirc from showing this raw !haltdef } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RAW 315 WHO END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; raw 315 <you> <requested> :End of /who list. raw 315:& & end of /WHO list.: { ; check -mask in hash table if ([[|$hget]]($+(ial-update.,$cid),-mask) == $2) { ; check setting, set a var if ($show.who == 1) { !var %x = $numtok($2,44) ; loop, we are on the channel, set var while (%x) { if ($me ison $gettok($2,%x,44)) { !var %c = $gettok($2,%x,44) ; oper info !var %oper = $iif([[|$hget]]($+(ial-update.,$cid),$+(%c,$chr(44),oper)),$ifmatch,0) !var %oper = %oper / $round($calc(%oper / $nick(%c,0) * 100),1) $+ % Oper ; away info !var %away = $iif([[|$hget]]($+(ial-update.,$cid),$+(%c,$chr(44),away)),$ifmatch,0) !var %away = %away / $round($calc(%away / $nick(%c,0) * 100),1) $+ % Away ; deaf info !var %deaf = $iif([[|$hget]]($+(ial-update.,$cid),$+(%c,$chr(44),deaf)),$ifmatch,0) !var %deaf = %deaf / $round($calc(%deaf / $nick(%c,0) * 100),1) $+ % deaf ; xhost info !var %xhost = $iif([[|$hget]]($+(ial-update.,$cid),$+(%c,$chr(44),xhost)),$ifmatch,0) !var %xhost = %xhost / $round($calc(%xhost / $nick(%c,0) * 100),1) $+ % x-host ; echo !echo -t $gettok($2,%x,44) * IAL updated ( $+ %oper ---- %away ---- %deaf ---- %xhost $+ ) } ; remove from hash table !hdel $+(ial-update.,$cid) $+(%c,$chr(44),oper) | !hdel $+(ial-update.,$cid) $+(%c,$chr(44),away) !hdel $+(ial-update.,$cid) $+(%c,$chr(44),deaf) | !hdel $+(ial-update.,$cid) $+(%c,$chr(44),xhost) !dec %x } } ; remove the items from the hash table ial-update.hash $2 -remove !haltdef } } ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DISCONNECT EVENT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; on *:disconnect:{ if ([[|$hget]]($+(ial-update.,$cid))) { !hfree $+(ial-update.,$cid) } }