dialog cscans { title "Channel Scanner" size -1 -1 170 138 option dbu box "Scanning", 1, 1 0 168 75 box "", 2, 1 73 168 19 check "Clones", 3, 5 79 40 10, push check "IRCops", 4, 46 79 40 10, push check "Aways", 5, 87 79 40 10, push list 6, 4 8 162 53, size hide list 7, 4 8 162 53, size hide list 8, 4 8 162 53, size hide box "Actions", 15, 1 92 100 30 text "After scanning, perform:", 16, 5 99 102 8 button "Scan!", 9, 144 78 20 12, disable combo 10, 5 107 65 50, size drop button "Perform!", 11, 73 107 25 10, disable box "Channels", 12, 102 92 67 30 text "WWE Script Scanner", 13, 3 126 100 13, disable button "Done!", 14, 146 124 23 12, ok text "Choose scan chan:", 17, 106 99 83 8 combo 18, 106 107 60 50, size drop text "Nicks:", 19, 5 63 20 13, hide edit "", 20, 20 61 92 10, read multi autovs return hide text "Clone group(s):", 21, 115 63 40 13, hide edit "", 22, 154 61 12 10, read hide text "IRCop(s):", 23, 130 63 40 13, hide edit "", 24, 154 61 12 10, read hide text "Away nick(s):", 25, 120 63 40 13, hide edit "", 26, 154 61 12 10, read hide text "Scan in:", 27, 6 63 40 13, hide radio "Network", 28, 31 61 30 12, hide radio "Spec. channels", 29, 71 61 45 12, hide } alias mdx.vdll { return VIEWS.MDX } alias mdx { dll mdx.dll $1- } on *:dialog:cscans:*:*:{ if ($devent == init) { mdx SetMircVersion $version | mdx MarkDialog $dname mdx SetFont $dname 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29 13 300 Tahoma mdx SetControlMDX $dname 6,7,8 ListView report flatsb grid rowselect showsel nosortheader single > [ $mdx.vdll ] var %x = 1 | while (%x <= $chan(0)) { did -a $dname 18 $chan(%x) | inc %x } | did -i $dname 6 1 headerdims 275:1 30:2 | did -i $dname 6 1 headertext Host $ch9 $chr(35) | did -i $dname 7 1 headerdims 85:1 218:2 | did -i $dname 7 1 headertext IRCop Nick $ch9 Host | did -i $dname 8 1 headerdims 85:1 220:2 | did -i $dname 8 1 headertext Away Nick $ch9 Host } if ($devent == sclick) { if ($did == 3) { did -u $dname 4,5 | dide 9,18 | didv 6,19,20,21,22 | did -h $dname 7,8,23,24,25,26,27,28,29 } if ($did == 4) { did -u $dname 3,5 | dide 9 | did -h $dname 6,8,19,20,21,22,25,26 | did -b $dname 18 | didv 7,23,24,27,28,29 } if ($did == 5) { did -u $dname 3,4 | dide 9,18 | didv 8,25,26 | did -h $dname 6,7,19,20,21,22,7,23,24,27,28,29 } if ($did isnum 3-5) { if ($did($dname,$did).state == 0) { did -h $dname 6,7,8,19,20,21,22,23,24,25,26,27,28,29 | did -b $dname 9,11,18 } } if ($did == 6) { info $gettok($did($dname,$did).seltext,6,32) } if ($did == 9) { did -r $dname 10 unset %s.action if ($did(18).seltext) { if ($did(3).state == 1) { scan $did(18).seltext clones } if ($did(5).state == 1) { scan $did(18).seltext away } } if ($did(4).state == 1) { if (%ircop.type) { ircop.scan } else { echo $color(info) -a * Scanner: Choose IRCoperator scan type! } } } if ($did == 10) { if ($did($dname,10).seltext) { set %s.action $did($dname,10).seltext } } if ($did == 11) { if ($did(10).seltext) { if ($did(3).state == 1) { clone.act $iif($did(10).sel == 1,kick,kban) } | else { var %t.sel = $iif($did($dname,4).state == 1,7,8) | %s.action $gettok($did( $dname,%t.sel).seltext,6,32) } } } if ($did == 18) { dialog -t $dname Scanning: $did(18).seltext } if ($did == 28) { did -b $dname 18 | set %ircop.type network } if ($did == 29) { dide 18 | set %ircop.type channel } } } alias -l scan { if ($2 == clones) { if ($chan($1).ial != $true) && ($me ison $1) { .who $1 } did -r cscans 6 var %x = 1, %y = 1 if ($hget(_clones) == $null) { .hmake -s _clones 100 } while (%x <= $nick($1,0)) { if ($ialchan($address($nick($1,%x),2),$1,0) > 1) { .hadd _clones $address($nick($1,%x),2) $hget(_clones,$address($nick($1,%x),2)) } inc %x } while (%y <= $hget(_clones,0).item) { did -a cscans 6 $hget(_clones,%y).item $ch9 $ialchan($hget(_clones,%y).item,$1,0) inc %y } dide 11 | dialog -t cscans Finished Clone scanning: $did(cscans,18).seltext | did -o cscans 22 1 $calc($did(6).lines - 1) | didtok cscans 10 44 Kick,BanKick | .hfree -s _clones } if ($2 == away) { did -r cscans 8 | .enable #scanaway | .who $$1 } } alias -l info { did -r cscans 20 var %x = 1, %y = 1 if ($hget(_info) == $null) { .hmake -s _info 100 } while (%x <= $ialchan($1,$did(cscans,18).seltext,0)) { .hadd _info $ialchan($1,$did(cscans,18).seltext,%x).nick inc %x } while (%y <= $hget(_info,0).item) { did -a cscans 20 $hget(_info,%y).item $+ , inc %y } did -ra cscans 20 $left($did(cscans,20).text,-1) | .hfree -s _info } alias -l clone.act { var %chan = $did(cscans,18).seltext , %t.user = $gettok($did(cscans,6).seltext,11,32) , %t.host = $gettok($did(cscans,6).seltext,6,32) $iif($1 == kban,ban %chan %t.host 2) var %bloh = 1 while (%bloh <= %t.user) { var %t.nicks = $ialchan(%t.host,%chan,%bloh).nick kick %chan %t.nicks Clone %bloh out of %t.user inc %bloh } unset %chan,%t.nicks,%t.user,%t.host } alias dide did -e cscans $1- alias didv did -v cscans $1- alias ircop.scan { did -r cscans 7 | .enable #ircop-scan.net if (%ircop.type == network) { .who 0 o } else { .who $did(cscans,18).seltext } } alias scanner if ($dialog(cscans)) dialog -v cscan | else dialog -m cscans cscans alias ch9 return $chr(9) #ircop-scan.net off raw 315:*: .disable #ircop-scan.net | dialog -t cscans Finished IRCop scanning: $iif(%ircop.type == channel,$did(cscans,18).seltext),$network) | did -o cscans 24 1 $calc($did(cscans,7).lines - 1) | didtok cscans 10 44 /whois,/query | did -e cscans 11 | did -c cscans 18 1 | unset %ircop.type | halt raw 352:*: { if (%ircop.type == channel) { if (* isin $7) { did -a cscans 7 $6 $chr(9) $address($6,2) } | haltdef } else { did -a cscans 7 $6 $chr(9) $address($6,2) } } #ircop-scan.net end #scanaway off raw 352:*: if (G isin $7) { did -a cscans 8 $6 $ch9 $address($6,2) | inc %scan.aways } raw 315:*: dialog -t cscans Finished Away scanning: $did(cscans,18).seltext | did -o cscans 26 1 $calc($did(cscans,8).lines - 1) | .disable #scanaway | unset %scan.aways | didtok cscans 10 44 /whois,/query | did -e cscans 11 | did -c cscans 18 1 | halt #scanaway end alias ircstatsscanner2 { dialog -m cscans cscans } alias ircstatsscanner { dialog -md chanscan chanscan } dialog chanscan { title "Channel Scanner" size -1 -1 150 150 option dbu button "close",1, 82 137 30 10, ok button "scan",2, 37 137 30 10, disable box "scan type selection",3, 2 2 147 60 box "results",4, 2 63 147 71 radio "away scan - scans for away users",5, 10 13 130 10, group radio "clone scan - scans for clone groups",6, 10 24 100 10 radio "ircop scan - scans for ircop users",7, 10 35 100 10 radio "mode scan - scans for user cmodes",8, 10 46 100 10 list 9, 5 70 141 70, vsbar, hsbar } on *:dialog:chanscan:sclick:*:{ if ($did == 2) { if (%scan.type == clones) { clonescan } if (%scan.type == away) { awayscan | did -ra chanscan 9 please wait... | did -u chanscan 5 | did -b chanscan 2 } if (%scan.type == ircop) { ircopscan | did -ra chanscan 9 please wait... | did -u chanscan 7 | did -b chanscan 2 } if (%scan.type == mode) { statscan | did -ra chanscan 9 please wait... | did -u chanscan 8 | did -b chanscan 2 } } if ($did == 5) { did -e $dname 2 | set %scan.type away | .enable #rawchk } if ($did == 6) { did -e $dname 2 | set %scan.type clones } if ($did == 7) { did -e $dname 2 | set %scan.type ircop | .enable #rawchk } if ($did == 8) { did -e $dname 2 | set %scan.type mode } } #rawchk off raw 352:*:{ if (%scan.type == away) && (G isin $7) { set %awaynicks $addtok(%awaynicks,$6,44) } if (%scan.type == ircop) && (* isin $7) { set %ircopnicks $addtok(%ircopnicks,$6,44) } } raw 315:*:{ if (%scan.type == away) { did -ra chanscan 9 away marked on $active $+ : | awayscanchk | .timer 1 1 did -e chanscan 2 } if (%scan.type == ircop) { did -ra chanscan 9 ircops on $active $+ : | ircopscanchk | .timer 1 1 did -e chanscan 2 } } #rawchk end dialog chanscan { title "Channel Scanner" size -1 -1 150 150 option dbu button "close",1, 82 137 30 10, ok button "scan",2, 37 137 30 10, disable box "scan type selection",3, 2 2 147 60 box "results",4, 2 63 147 71 radio "away scan - scans for away users",5, 10 13 130 10, group radio "clone scan - scans for clone groups",6, 10 24 100 10 radio "ircop scan - scans for ircop users",7, 10 35 100 10 radio "mode scan - scans for user cmodes",8, 10 46 100 10 list 9, 5 70 141 70, vsbar, hsbar } alias -l clonescan { if ($active ischan) { did -r chanscan 9 | var %chan = $active | var %a = $nick(%chan,0) | var %b = 0 :next | inc %b if ($ialchan($address($nick(%chan,%b),2),%chan,0) > 1) { set %clones $addtok(%clones,$address($nick(%chan,%b),2),32) } if (%a > %b) { goto next } | else { clonechk } } } alias -l clonechk { if (%clones) { var %i = $calc($count(%clones,$chr(32)) + 1) while (%i > 0) { did -a chanscan 9 $ialchan($gettok(%clones,%i,32),$active,0) users from $gettok(%clones,%i,32) | dec %i } unset %clones | did -b chanscan 2 | .timer 1 1 did -e chanscan 2 | did -u chanscan 6 } else { unset %clones | did -a chanscan 9 no clones on $active | did -b chanscan 2 | .timer 1 1 did -e chanscan 2 | did -u chanscan 6 } } alias -l awayscan { if ($active ischan) { did -r chanscan 9 | .who $active } } alias -l awayscanchk { if (%awaynicks) { var %i = $calc($count(%awaynicks,$chr(44)) + 1) while (%i > 0) { did -a chanscan 9 $gettok(%awaynicks,%i,44) | dec %i } unset %awaynicks .disable #rawchk } else { did -r chanscan 9 | did -a chanscan 9 no away marked on $active | unset %awaynicks | .disable #rawchk } } alias -l ircopscan { if ($active ischan) { did -r chanscan 9 | .who $active } } alias -l ircopscanchk { if (%ircopnicks) { var %i = $calc($count(%ircopnicks,$chr(44)) + 1) | while (%i > 0) { did -a chanscan 9 $gettok(%ircopnicks,%i,44) | dec %i } unset %ircopnicks | .disable #rawchk } else { did -r chanscan 9 | did -a chanscan 9 no ircops on $active | unset %ircopnicks | .disable #rawchk } } alias -l statscan { if ($active ischan) { .timer -m 1 1 did -ra chanscan 9 statistics for $active $+ : var %ops = users( $+ $opnick($active,0) $+ ) \ percent( $+ $round($calc($opnick($active,0) * 100 / $nick($active,0)),1) $+ % $+ ) var %helps = users( $+ $hnick($active,0) $+ ) \ percent( $+ $round($calc($hnick($active,0) * 100 / $nick($active,0)),1) $+ % $+ ) var %voices = users( $+ $vnick($active,0) $+ ) \ percent( $+ $round($calc($vnick($active,0) * 100 / $nick($active,0)),1) $+ % $+ ) var %totals = users( $+ $nick($active,0) $+ ) \ percent( $+ $round($calc($nick($active,0) * 100 / $nick($active,0)),1) $+ % $+ ) .timerblah2 -m 1 100 did -a chanscan 9 ops : %ops .timerblah3 -m 1 100 did -a chanscan 9 help : %helps .timerblah4 -m 1 100 did -a chanscan 9 voice : %voices .timerblah5 -m 1 100 did -a chanscan 9 total : %totals .timer 1 1 did -e chanscan 2 .timer 1 3 unset %ops %helps %voices %totals } }