;------------------------------------------- ; Channel central by Lindrian ; Do not edit anything here unless you know what youre doing! ;------------------------------------------- dialog cm { title "Channel central..." size -1 -1 228 185 option dbu icon icons\script.ico tab "Channel modes", 10, 2 0 225 169 tab "Bans", 2 tab "Excepts", 64 tab "Invites", 65 tab "Topic", 47 tab "Statistics", 16 edit "", 41, 67 145 18 10, tab 10 autohs edit "", 42, 67 135 61 10, tab 10 pass autohs edit "", 48, 7 25 211 37, tab 47 autovs multi vsbar limit 600 text "Characters avaliable:", 110, 10 125 52 8, tab 47 text "", 52, 64 125 155 8, tab 47, right button "Set topic", 54, 50 171 33 12, tab 47 box "Current channel information...", 55, 4 16 220 65, tab 10 edit "", 56, 81 26 120 9, tab 10 read autohs edit "", 57, 81 46 120 9, tab 10 read autohs edit "", 58, 81 36 120 9, tab 10 read autohs edit "", 59, 81 56 120 9, tab 10 read autohs text ":", 19, 76 26 6 8, tab 10 center text ":", 26, 76 66 6 8, tab 10 center text ":", 25, 76 56 6 8, tab 10 center text ":", 24, 76 46 6 8, tab 10 center text ":", 23, 76 36 6 8, tab 10 center edit + $+ $chanmodes, 890, 81 66 120 10, tab 10 read autohs text "Active channel", 60, 16 27 59 8, tab 10 text "Active network/server", 61, 16 47 59 8, tab 10 text "Current modes", 62, 16 37 61 8, tab 10 text "Ammount of ops (@)", 63, 16 57 59 8, tab 10 text "users", 29, 89 146 16 8, tab 10 check "p - Private", 103, 82 95 50 8, tab 10 check "s - Secret", 104, 82 105 50 8, tab 10 check "m - Moderated", 107, 16 125 50 8, tab 10 check "t - Only ops set topic", 100, 16 95 60 8, tab 10 check "n - No ext. messages", 101, 16 105 65 8, tab 10 check "i - Invite only", 102, 16 115 50 8, tab 10 check "l - Limit channel:", 106, 16 145 51 8, tab 10 check "k - Channel key:", 105, 16 135 51 8, tab 10 combo 49, 30 140 189 35, tab 47 drop text "Topic:", 50, 10 141 16 8, tab 47 text "Topic set at:", 90, 10 152 30 8, tab 47 text "-No topic selected-", 91, 44 152 158 15, tab 47 button "Clear topic data", 92, 2 171 45 12, tab 47 text "", 97, 7 115 211 8, tab 47 text "Avaliable modes", 5, 16 67 59 8, tab 10 button "Close", 1, 190 171 37 12, cancel default button "Ok", 3, 150 171 37 12 list 4, 4 17 220 135, tab 2 size extsel list 8, 4 17 220 135, tab 64 size extsel list 12, 4 17 220 135, tab 65 size extsel text "Current/maximum:", 9, 6 155 50 8, tab 64 text "0/0", 11, 50 155 170 8, tab 64, right text "Current/maximum:", 13, 6 155 50 8, tab 65 text "0/0", 14, 50 155 170 8, tab 65, right text "Current/maximum:", 6, 6 155 50 8, tab 2 text "0/0", 7, 50 155 170 8, tab 2, right box "Topic...", 15, 4 16 220 121, tab 47 box "Modes", 577, 4 85 220 81, tab 10 text Bans are not supported on $network $+ !, 584, 4 80 221 20, tab 2 hide center text Excepts are not supported on $network $+ !, 585, 4 80 221 20, tab 64 hide center text Invites are not supported on $network $+ !, 586, 4 80 221 20, tab 65 hide center list 17, 4 17 220 105, tab 16 size extsel list 18, 4 123 220 44, tab 16 size extsel list 20, 154 98 51 59, tab 10 size box "Other modes", 21, 150 89 59 73, tab 10 button "", 22, 7 63 211 50, tab 47 } dialog inform { title "information..." size -1 -1 150 76 option dbu icon icons\script.ico button "Ok", 3, 110 62 37 12, ok edit "", 2, 2 4 145 50, read multi return vsbar edit "", 4, 2 58 147 1 } on *:dialog:inform:init:0: { dll $mdx SetMircVersion $version dll $mdx MarkDialog $dname dll $mdx SetBorderStyle 4 staticedge dll $mdx SetBorderStyle 2 did -ra $dname 2 %cm.inform } alias cb2 return on *:dialog:cm:*:*: { if ($devent == init) { dcx Mark $dname cb2 did -ra $dname 4 Refreshing bans... did -ra $dname 8 Refreshing excepts... did -ra $dname 12 Refreshing invites... var %t = $ticks unset %cm.mode.* %cm.other.modes dll $mdx SetMircVersion $version dll $mdx MarkDialog $dname dll $mdx SetColor $dname 4,8,12 background $color($color(background)) dll $mdx SetColor $dname 4,8,12 text $color($color(text)) dll $mdx SetColor $dname 4,8,12 textbg $color($color(background)) dll $mdx SetControlMDX $dname 97 ProgressBar smooth > $ctl dll $mdx SetControlMDX $dname 4,8,12,17 ListView report showsel rowselect labeltip editlabels > $views dll $mdx SetControlMDX $dname 18 ListView report report showsel rowselect labeltip noheader > $views dll $mdx SetControlMDX $dname 20 ListView report showsel labeltip checkboxes noheader > $views did -i $dname 20 1 headerdims 80:1 dll $mdx SetBorderStyle 56,57,58,890,59 windowedge dll $mdx SetFont $dname 55,15,577,21 13 700 Tahoma did -i $dname 4,8,12 1 headerdims 215:1 97:2 110:3 did -i $dname 4,8,12 1 headertext + 0 Address + 0 Set by + 0 Date did -i $dname 17 1 Headerdims 50 40 80 80 70 120 80 80 did -i $dname 17 1 headertext $+(Number,$chr(9),Status,$chr(9),Nick,$chr(9),Real name,$chr(9),Ident,$chr(9),Host,$chr(9),Away,$chr(9),IrcOp) did -i $dname 18 1 headerdims 200:1 60:2 160:3 did -i $dname 18 1 headertext + 0 1 + 0 2 + 0 3 if ($scid($activecid).status != connected) { dialog -x $dname | halt } $iif($chan(%cm.chan).topic,cm.topic.load.2,cm.topic.load.er) did -ra $dname 56 %cm.chan ( $+ $nick(%cm.chan,0) users $+ ) did -ra $dname 57 $network ( $+ $server $+ ) did -ra $dname 58 $iif($chan(%cm.chan).mode,$v1,No modes set) did -ra $dname 59 $+($round($calc($nick(%cm.chan,0,o) / $nick(%cm.chan,0) * 100),0),%) ( $+ $nick(%cm.chan,0,o) $+ ) did -a $dname 48 $chan(%cm.chan).topic set %cm.chan.cid $cid cm.mode.check cm.topic.check ;cm.topic.load dialog -t $dname Channel Central... [/cc] ( $+ %cm.chan $+ ) if (b isincs $chanmodes) mode %cm.chan +b if (e isincs $chanmodes) mode %cm.chan +e if (I isincs $chanmodes) mode %cm.chan +I other.modes.load if (I !isincs $chanmodes) { did -v $dname 586 did -h $dname 12-14 } if (e !isincs $chanmodes) { did -v $dname 585 did -h $dname 8,9,11 } if (b !isincs $chanmodes) { did -v $dname 584 did -h $dname 4,6,7 } did -b $dname 54 if ($me !isop %cm.chan) { did -b $dname 100-105,107,42,106,41,29,3,54 } who_ %cm.chan var %n = $nick(%cm.chan,0) did -a $dname 18 Total users on the channel $chr(9) %n did -a $dname 18 Ops $chr(9) $nick(%cm.chan,0,o) $chr(9) $round($calc($nick(%cm.chan,0,o) / %n * 100),1) $+ % did -a $dname 18 Voiced users $chr(9) $nick(%cm.chan,0,v) $chr(9) $round($calc($nick(%cm.chan,0,v) / %n * 100),1) $+ % did -a $dname 18 Regulars $chr(9) $nick(%cm.chan,0,r) $chr(9) $round($calc($nick(%cm.chan,0,r) / %n * 100),1) $+ % did -a $dname 18 Away users $chr(9) 0 $chr(9) 0% did -a $dname 18 IRC operators $chr(9) 0 $chr(9) 0% set %cm.temp.topic $didtok(48,32) cm.topic.check dll $mdx SetControlMDX $dname 22 window > $dialogs window -phf @topicprev -1 -1 $window(-1).w $window(-1).h did -a $dname 22 grab $window(@topicprev).hwnd @topicprev prevtopic var %i = $hfind(topichist,$+($network,%cm.chan,$cr,*),0,w),%r,%z = 1,%g,%n = $nick(%cm.chan,0),%cm = $gettok($chanmodes,1,44) while (%i) { %r = $addtok(%r,$hget(topichist,$hfind(topichist,$+($network,%cm.chan,$cr,*),%i,w)) %i,124) dec %i } %r = $sorttok(%r,124) while ($gettok(%r,%z,124)) { tokenize 32 $v1 did -i $dname 49 1 $+($decode($gettok($hfind(topichist,$+($network,%cm.chan,$cr,*),$2,w),2,13),m),$str( ,150),$1) inc %z } if ($calc($ticks - %t) > 500) { set %cm.inform The channel central took $calc($v1 / 1000) seconds to load. This is most likely due to your topic history being too mayor! Please clean it up! It may also be due to a huge ban/invite/excepts list, or alot of users on the channel for the statistics. $dialog(inform,inform,-4) } set %cm.chan.t 10 } elseif ($devent == edit) { if ($did == 41) { if ($did(41) !isnum) { var %t = $did(41) did -ra $dname 41 $remove(%t,$right(%t,1)) beep 1 } } if ($did == 48) { cm.topic.check prevtopic if ($($didtok(48,32),0) != $chan(%cm.chan).topic) && ($($didtok(48,32),0) != %cm.temp.topic) && ($gtxt($dname,48) != $chan(%cm.chan).topic) && ($oh($me,%cm.chan)) { did -e $dname 54 } else { did -b $dname 54 } } } elseif ($devent == sclick) { if ($did) { tokenize 32 $did($did,1) if ($1-2 == headerclick headerEvent) && ($3 isnum) { headersort } } if ($dialog($dname).tab != 16) { set %cm.chan.t $v1 } if $did == 16 { if $chan($active).inwho { set %cm.inform There's already a /who request for %cm.chan in progress! Please wait for it to finish. $dialog(inform,inform,-4) did -f $dname %cm.chan.t } } if ($did == 17) { tokenize 32 $did($did,1) if ($1 == rclick) && ($did(17).seltext) { stats.popup } } if ($istok(4 8 12,$did,32)) { if (!$istok(bans excepts invites,$gettok($did($did).seltext,7,32),32)) && ($oh($me,%cm.chan)) { var %r, %ö = $iif($did == 4,-b+b,$iif($did == 8,-e+e,$iif($did == 12,-I+I))) if ($did($did).sel) && ($oh($me,%cm.chan)) { %r = 1 } if (beginlabeledit * iswm $did($did,1)) && (!$did(20).enabled) { did -i $dname $did 1 cancel } elseif (endlabeledit * iswm $did($did,1)) { cm.labeledit %ö $did $lbl($did,1) $gtok($did($did,1),3-) } } tokenize 32 $did($did,1) if ($1 == rclick) { if ($istok(bans excepts invites,$gettok($did($did).seltext,7,32),32)) { cm.popup $did $iif($did == 4,ba&n,$iif($did == 8,e&xcept,$iif($did == 12,&invite))) 1 } else { cm.popup $did $iif($did == 4,ba&n,$iif($did == 8,e&xcept,$iif($did == 12,&invite))) } } } if ($did == 92) { cdialog Are you sure you wish to clear all topic data? if (%cdialog.did == yes) { hdel -w topichist * hsave -o topichist topichist.hsh did -r $dname 49 did -ra $dname 91 -No topic selected- } } if ($did == 54) { if ($($didtok(48,32),0) != $chan(%cm.chan).topic) && ($($didtok(48,32),0) != %cm.temp.topic) && ($gtxt($dname,48) != $chan(%cm.chan).topic) { var %topic = $iif($didtok(48,32),$v1,$chr(10)) .scid $activecid topic %cm.chan $(%topic,0) cm.topic.check did -b $dname 54 } } if ($did == 49) { var %t = $gettok($did($did),-1,160) did -ra $dname 48 $deltok($did($did),-1,160) did -ra $dname 91 $asctime(%t,dddd $+ $chr(44) mmmm doo yyyy $+ $chr(44) HH:nn:ss) ( $+ $duration($calc($ctime - %t)) ago) cm.topic.check prevtopic if ($($didtok(48,32),0) != $chan(%cm.chan).topic) && ($($didtok(48,32),0) != %cm.temp.topic) && ($gtxt($dname,48) != $chan(%cm.chan).topic) && ($oh($me,%cm.chan)) { did -e $dname 54 } else { did -b $dname 54 } halt } elseif ($istok(100 101 102 103 104 107,$did,32)) { if $did($did).state { set %cm.mode.add $addtok(%cm.mode.add,$left($did($did),1),32) } else { set %cm.mode.add $remtok(%cm.mode.add,$left($did($did),1),32) set %cm.mode.rem $addtok(%cm.mode.rem,$left($did($did),1),32) } } elseif ($did == 105) { did $iif($did(105).state,-e,-b) $dname 42 } elseif ($did == 106) { did $iif($did(106).state,-e,-b) $dname 41 } elseif ($did == 43) { cm.other.modes.add } elseif ($did == 3) { if ($oh($me,%cm.chan)) { var %y = $chan(%cm.chan).mode if ($did(105).state == 0) { mode %cm.chan -k $chan(%cm.chan).key } elseif $did(42) && $did(105).state == 1 { mode %cm.chan +k $did(42) } var %a = %cm.chan,%i = $did(20).lines,%r,%d,%m = $gtok($chan(%a).mode,1),%z while (%i > 1) { tokenize 32 $gettok($did(20,%i),1,9) var %z = $mid($6,2) if ($5 == 2) { if (%z !isincs %m) { %r = $+(%r,$iif(!%r,+),%z) } } elseif (%z isincs %m) { %d = $+(%d,$iif(!%d,-),%z) } if ($regex(%r $+ %d,/[a-zA-Z]/g) >= $modespl) { mode %cm.chan %r $+ %d var %r = "",%d = "" } dec %i } if ($did(106).state == 1) { mode %cm.chan +l $did(41) } elseif ($did(106).state == 0) && (l isincs $gtok($chan(%cm.chan).mode,1)) { %cm.mode.rem = %cm.mode.rem $+ l } var %x = $remove($+($iif(%r,%r,+),%cm.mode.add,$iif(%d,%d,-),%cm.mode.rem),$chr(32)) if ($removecs(%x,+,-,$chr(32)) != $null) .scid $activecid mode %cm.chan %x ; .scid $activecid mode %cm.chan $removecs($+(+,$remove(%r,+),$remove(%cm.mode.add,+),-,%t,$remove(%cm.mode.rem,-)),$chr(32)) unset %cm.mode.* } if ($($didtok(48,32),0) != $chan(%cm.chan).topic) && ($($didtok(48,32),0) != %cm.temp.topic) && ($gtxt($dname,48) != $chan(%cm.chan).topic) { .scid $activecid topic %cm.chan $iif($didtok(48,32),$($v1,0),$chr(10)) } dialog -x $dname unset %cm.temp.topic } } } alias cm.clear { set -u1 %cm.clear.all 1 if ($1 == b) { var %p = b, %il = $ibl(%cm.chan,%a), %max = $ibl(%cm.chan,0), %id = 4, %msg = bans, %id2 = 7 } if ($1 == I) { var %p = I, %il = $iil(%cm.chan,%a), %max = $iil(%cm.chan,0), %id = 12, %msg = invites, %id2 = 11 } if ($1 == e) { var %p = e, %il = $iel(%cm.chan,%a), %max = $iel(%cm.chan,0), %id = 8, %msg = excepts, %id2 = 14 } var %a = 1, %b while (%a <= %max) { %b = %b $iif(%p == b,$ibl(%cm.chan,%a),$iif(%p == I,$iil(%cm.chan,%a),$iif(%p == e,$iel(%cm.chan,%a)))) if $numtok(%b,32) == $modespl { mode %cm.chan $+(-,$str(%p,$numtok(%b,32))) %b %b = "" } inc %a } if (%b) { mode %cm.chan $+(-,$str(%p,$numtok(%b,32))) %b } ;mode %cm.chan $+(+,%p) did -ra cm %id No %msg set. cm.update.stats %id2 %cm.chan } alias cc { if $active !ischan { echo -a This feature can only be used in channels! | halt } if ($me !ison $active) { echo -a You're not currently on $_Wrap($active) $+ ! | halt } if (!$dialog(cm)) && ($status == connected) { set %cm.chan $active $dialog(cm,cm,-4) } } alias inform { set %cm.inform $$1- if (!$dialog(inform)) { dialog -m inform inform } else { did -ra inform 2 %cm.inform dialog -v inform } } alias cm.topic.load.2 { var %c = $cm.topiclen var %text = $didtok(cm,48,32) var %calc = $int($calc($len(%text) / %c * 100)) set %cm.top %text did -ra $dname 97 $iif(%calc <= 100,$v1,100) did -ra $dname 52 $+($len(%text),/,%c) ( $+ $calc(100 - %calc) $+ % $+ ) if ($len(%text) > %c) { dll $mdx SetColor $dname 52,53 text $rgb(480,0,0) } else { dll $mdx SetColor $dname 52,53 text $rgb(0,0,0) } } alias cm.topic.load.er { did -ra cm 52 0/ $+ $cm.topiclen (0%) did -a cm 97 0 } on *:part:%cm.chan: { if (%cm.chan.cid == $cid) && ($nick == $me) { if ($dialog(cm)) { dialog -c cm cm $inform(You have parted from %cm.chan $+ , closing dialog...) } } } on *:kick:%cm.chan: { if (%cm.chan.cid == $cid) && ($knick == $me) { if ($dialog(cm)) { dialog -c cm cm $inform(You have been kicked from %cm.chan $+ , closing dialog...) } } } alias cm.mode.check { var %x = $chan(%cm.chan).mode if (t isincs $gettok(%x,1,32)) { did -c cm 100 } if (n isincs $gettok(%x,1,32)) { did -c cm 101 } if (i isincs $gettok(%x,1,32)) { did -c cm 102 } if (p isincs $gettok(%x,1,32)) { did -c cm 103 } if (s isincs $gettok(%x,1,32)) { did -c cm 104 } if (m isincs $gettok(%x,1,32)) { did -c cm 107 } if (k isincs %x) { did -c cm 105 if ($me isop %cm.chan) did -e cm 42 did -ra cm 42 $chan(%cm.chan).key } else { did -b cm 42 } if (l isincs %x) { did -c cm 106 if ($me isop %cm.chan) did -e cm 41 did -ra cm 41 $chan(%cm.chan).limit } else { did -b cm 41 } } alias -l cm.id return 100,101,102,103,104,105,106,107,41,42 alias cm.topiclen { return $iif(%cm.topic. [ $+ [ $cid ] ],$v1,0) } alias cm.topic { var %a = $chan(%cm.chan).topic, %b = $(%a),2 | set %c $len(%b) } #channel on alias channel cc #channel end alias cm.topic.check { var %c = $cm.topiclen var %lines = $did(cm,48).lines var %text = $didtok(cm,48,32) var %len = $iif(%lines > 1,$calc($len(%text) - ($v1 - 1)),$len(%text)) var %calc = $int($calc(%len / %c * 100)) set %cm.top %text did -a cm 97 $iif(%calc <= 100,$v1,100) did -ra cm 52 $+($calc(%c - %len),/,%c) ( $+ $calc(100 - %calc) $+ % $+ ) if (%len > %c) { Dll $mdx SetColor cm 52,53 text $rgb(480,0,0) } else { Dll $mdx SetColor cm 52,53 text $rgb(0,0,0) } } on *:rawmode:%cm.chan: { statusbar if ($dialog(cm)) { if ($right($1,1) === e) { var %dialog = 8, %dialog2 = 11 } if ($right($1,1) === b) { var %dialog = 4, %dialog2 = 7 } if ($right($1,1) === I) { var %dialog = 12, %dialog2 = 14 } cm.update.stats %dialog2 %cm.chan if ($istok(-b+b -e+e -I+I,$1,32)) { did -o cm %dialog %label.sel $+($3,$chr(9),$nick,$chr(9),$asctime($ctime,dd/mm/yyyy HH:nn)) unset %label.sel } if (!%cm.clear.all) { if ($nick == $me) && ($left($1,1) == -) { halt } if ($did(cm,%dialog).lines == 1) { return } if ($left($1,1) == -) && ($nick != $me) { did -r cm %dialog mode %cm.chan $+(+,$right($1,1)) return } if ($istok(bans excepts invites,$gettok($did(cm,%dialog,2),7,32),32)) { did -r cm %dialog } if (%dialog) did -a cm %dialog + 0 0 0 $2 $+ + 0 0 0 $nick $+ + 0 0 0 $asctime($ctime,dd/mm/yyyy HH:nn) if (%dialog == 4) { if ($dialog(cm)) did -ra cm 7 $iif(%cm.bans. [ $+ [ $cid ] ],$ibl(%cm.chan,0) $+ / $+ $v1,$ibl(%cm.chan,0) $+ /unknown) ( $+ $round($calc($ibl(%cm.chan,0) / %cm.bans. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } } if (%dialog == 8) { if ($dialog(cm)) did -ra cm 11 $iif(%cm.excepts. [ $+ [ $cid ] ],$iel(%cm.chan,0) $+ / $+ $v1,$iel(%cm.chan,0) $+ /unknown) ( $+ $round($calc($iel(%cm.chan,0) / %cm.excepts. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } if (%dialog == 12) { if ($dialog(cm)) did -ra cm 14 $iif(%cm.invites. [ $+ [ $cid ] ],$iil(%cm.chan,0) $+ / $+ $v1,$iil(%cm.chan,0) $+ /unknown) ( $+ $round($calc($iil(%cm.chan,0) / %cm.invites. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } } } on *:op:%cm.chan: { if ($opnick == $me) { if ($dialog(cm)) { did -e cm 100-105,107,42,106,41,29,3,54 } } } on *:deop:%cm.chan: { if ($opnick == $me) { if ($dialog(cm)) { did -b cm 100-105,107,42,106,41,29,3,54 } } } raw 367:*: { haltdef if (!%ban.delay) && ($dialog(cm)) did -r cm 4 | set %ban.delay 1 if ($dialog(cm)) { did -a cm 4 + 0 0 0 $3 $+ + 0 0 0 $iif($4,$v1,*) $+ + 0 0 0 $asctime($5,dd/mm/yyyy HH:nn) } } raw 348:*: { haltdef if (!%except.delay) && ($dialog(cm)) did -r cm 8 | set %except.delay 1 if ($dialog(cm)) { did -a cm 8 + 0 0 0 $3 $+ + 0 0 0 $iif($4,$v1,*) $+ + 0 0 0 $asctime($5,dd/mm/yyyy HH:nn) } } raw 346:*: { haltdef if (!%invite.delay) && ($dialog(cm)) did -r cm 12 | set %invite.delay 1 if ($dialog(cm)) { did -a cm 12 + 0 0 0 $3 $+ + 0 0 0 $iif($4,$v1,*) $+ + 0 0 0 $asctime($5,dd/mm/yyyy HH:nn) } } raw 368:*: { statusbar if ($ibl($2,0) == 0) && ($dialog(cm)) { did -ra cm 4 No bans set. } if ($dialog(cm)) { did -ra cm 7 $ibl($2,0) $+ / $+ $iif(%cm.bans. [ $+ [ $cid ] ],$v1,unknown) ( $+ $round($calc($ibl($2,0) / %cm.bans. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } unset %ban.delay haltdef } raw 349:*: { statusbar if ($iel($2,0) == 0) && ($dialog(cm)) { did -ra cm 8 No excepts set. } if ($dialog(cm)) did -ra cm 11 $iif(%cm.excepts. [ $+ [ $cid ] ],$iel($2,0) $+ / $+ $v1,$iil($2,0) $+ /unknown) ( $+ $round($calc($iel($2,0) / %cm.excepts. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) unset %except.delay haltdef } raw 347:*: { statusbar if ($iil($2,0) == 0) && ($dialog(cm)) { did -ra cm 12 No invites set. } if ($dialog(cm)) did -ra cm 14 $iif(%cm.invites. [ $+ [ $cid ] ],$iil($2,0) $+ / $+ $v1,$iil($2,0) $+ /unknown) ( $+ $round($calc($iil($2,0) / %cm.invites. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) unset %invite.delay haltdef } raw 472:*: haltdef raw 461:*: { var %x = k,%y = l | if (%x isin $1-) || (%y isin $1-) { haltdef } } raw 005:*: { if $regex($1-,/MAXBANS=(\d+)/) { set $+(%,cm.bans,.,$cid) $regml(1) } if $regex($1-,/TOPICLEN=(\d+)/) { set $+(%,cm.topic,.,$cid) $regml(1) } if $regex($1-,/MAXLIST=b:([0-9]+)/) { set $+(%,cm.bans,.,$cid) $regml(1) } if ($gettok($wildtok($1-,PREFIX=?*,1,32),2,61)) { set $+(%,cm.prefix,.,$cid) $v1 } var %r = /MAXLIST=.*?,e:(\d+)/ | if $regex($1-,%r) { set $+(%,cm.excepts,.,$cid) $regml(1) } var %r = /MAXLIST=.*?,I:(\d+)/ | if $regex($1-,%r) { set $+(%,cm.invites,.,$cid) $regml(1) } if ($gettok($wildtok($1-,SILENCE=?*,1,32),2,61)) { set %silencenum. $+ $cid $v1 } } raw 004:*:{ set %usermodes. $+ $cid $4 } raw 352:*: { if ($dialog(cm)) { var %number = $did(cm,17).lines did -a cm 17 $+(%number,$chr(46)) $+($chr(9),$iif(~ isin $7,$v1,$iif(& isin $7,$v1,$iif(@ isin $7,$v1,$iif(% isin $7,$v1,$iif(+ isin $7,$v1))))),$chr(9),$6,$chr(9),$9,$chr(9),$3,$chr(9),$4,$chr(9),$iif(G isin $7,Yes,No),$chr(9),$iif($chr(42) isin $7,Yes,No)) cm.stats $1- haltdef } } raw 315:*: { if ($dialog(cm)) { haltdef } } alias cm.stats { if (G isincs $7) { var %g = $calc($gettok($did(cm,18,6),12,32) + 1), %n = $nick(%cm.chan,0) did -o cm 18 6 Away users $chr(9) %g $chr(9) $round($calc(%g / %n * 100),1) $+ % } if (* isin $7) { var %y = $calc($gettok($did(cm,18,7),12,32) + 1), %n = $nick(%cm.chan,0) did -o cm 18 7 1 IRC operators $chr(9) %y $chr(9) $round($calc(%y / %n * 100),1) $+ % } } alias stats.popup { mkmenu stats office2003rev if ($did(cm,$did).seltext) { var %nick = $remove($gettok($did(cm,17).seltext,15,32),+fs,+,$chr(9)) xpop -a stats 0 $chr(9) +g 1 0 $chr(151) $iif($len(%nick) > 8,$left(%nick,8) $+ ..,%nick) $chr(151) xpop -a stats 0 $chr(9) + 0 0 - } var %o = $iif($oh($me,%cm.chan),+,+g), %r = $iif($did(cm,$did).seltext,+,+g) xpopup -i stats + 0 $shortfn($scriptdiricons\question.ico) xpop -a stats 0 $chr(9) + 1 1 Whois xpop -a stats 0 $chr(9) + 0 0 - xpop -a stats 0 $chr(9) $iif(%o == +,%r,%o) 2 0 K&ick xpop -a stats 0 $chr(9) $iif(%o == +,%r,%o) 3 0 B&an xpop -a stats 0 $chr(9) $iif(%o == +,%r,%o) 4 0 K&ick && Ban xpopup -s stats +t $mouse.dx $mouse.dy xpopup -d stats } alias stats.do { var %nick = $remove($gettok($did(cm,17).seltext,15,32),+fs,$chr(9),+s) if ($1 == kick) { kick %cm.chan %nick } if ($1 == whois) { whois %nick %nick } if ($1 == ban) { mode %cm.chan +b $bantype(%nick) } if ($1 == kb) { ban -k %cm.chan %nick } } alias cm.popup { if ($1 == 4) { var %d = $iif($ibl(%cm.chan,0) == 0,+g,+) } elseif ($1 == 8) { var %d = $iif($iel(%cm.chan,0) == 0,+g,+) } elseif ($1 == 12) { var %d = $iif($iil(%cm.chan,0) == 0,+g,+) } var %o = $iif($oh($me,%cm.chan),+,+g), %r = $iif($did(cm,$1).seltext,+,+g), %r = $iif($3,+g,%r), %z = $iif($did(cm,$1,0).sel > 1,+g,+) mkmenu cm office2003rev xpopup -i cm + 0 $shortfn($scriptdiricons\question.ico) xpopup -i cm + 0 $shortfn($scriptdiricons\search.ico) if ($did(cm,$did).seltext) && (!$3) { xpop -a cm 0 $chr(9) +g 1 1 $chr(151) $iif($len($remove($gettok($did(cm,$did).seltext,6,32), ,+fs)) > 8,$left($remove($gettok($did(cm,$did).seltext,6,32), ,+fs),8) $+ ..,$remove($gettok($did(cm,$did).seltext,6,32), ,+fs)) $chr(151) xpop -a cm 0 $chr(9) + 0 0 - } xpop -a cm 0 $chr(9) %o 2 0 &Add $2 xpop -a cm 0 $chr(9) $iif(%o == +,%r,%o) 3 0 &Remove $+($2,(s)) xpop -a cm 0 $chr(9) $iif(%o == + && %z == +,%r,$iif(%o == +,%z,%o)) 4 0 &Edit $2 xpop -a cm 0 $chr(9) + 0 0 - if ($did == 4) { xpop -a cm 0 $chr(9) $iif($ibl(%cm.chan,0) == 0,+g,+) 5 2 Fin&d ban.. xpop -a cm 0 $chr(9) + 0 0 - } xpop -a cm 0 $chr(9) $iif(%o == +,%d,%o) 6 0 Clear $+($2,(s)) xpopup -s cm +t $mouse.dx $mouse.dy xpopup -d cm } ON *:SIGNAL:Xpopup-cm: { var %pop = $gettok($signal, 2-, 45) if (%pop == cm) { var %id = $replace($dialog(cm).tab,2,4,64,8,65,12) if ($1 == 2) { cm.menu.do %id add } elseif ($1 == 3) { cm.menu.do %id rem } elseif ($1 == 4) { cm.menu.do %id edit } elseif ($1 == 5) { findban } elseif ($1 == 6) { cm.menu.do %id clear } } } on *:signal:xpopup-stats: { if ($1 == 1) stats.do whois elseif ($1 == 2) stats.do kick elseif ($1 == 3) stats.do ban elseif ($1 == 4) stats.do kb } alias cm.menu.do { if ($1 == 4) { if ($2 == rem) { cm.remove.sel 4 } elseif ($2 == add) { set %prefix +b | set %dialog 4 | $dialog(cm.add,cm.add,-4) } elseif ($2 == edit) { set %prefix -b+b | set %prefix2 +b | set %dialog 4 | $dialog(cm.edit,cm.edit,-4) } elseif ($2 == clear) { cm.clear b } } if ($1 == 8) { if ($2 == rem) { cm.remove.sel 8 } elseif ($2 == add) { set %prefix +e | set %dialog 8 | $dialog(cm.add,cm.add,-4) } elseif ($2 == edit) { set %prefix -e+e | set %prefix2 +e | set %dialog 8 | $dialog(cm.edit,cm.edit,-4) } elseif ($2 == clear) { cm.clear e } } if ($1 == 12) { if ($2 == rem) { cm.remove.sel 12 } elseif ($2 == add) { set %prefix +I | set %dialog 12 | $dialog(cm.add,cm.add,-4) } elseif ($2 == edit) { set %prefix -I+I | set %prefix2 +I | set %dialog 12 | $dialog(cm.edit,cm.edit,-4) } elseif ($2 == clear) { cm.clear I } } } dialog cm.add { title "Channel Central [/cm]" size -1 -1 143 73 option dbu text "Please input your mask below in the format of: nick!ident@address.com", 1, 5 4 108 15 edit "", 2, 3 42 137 10 icon icons\script.ico button "Ok", 3, 73 58 32 13, default button "Cancel", 4, 108 58 32 13, cancel default } on *:dialog:cm.add:init:0: did -b $dname 3 on *:dialog:cm.add:edit:2: { did $iif($did(2),-e,-b) $dname 3 $iif($did(2),did -t $dname 3) } on *:dialog:cm.add:sclick:3: { mode %cm.chan %prefix $did(2) dialog -x $dname unset %prefix %dialog } dialog cm.edit { title "Channel Central [/cm]" size -1 -1 143 73 option dbu text "Please input your replacement below in the format of: nick!ident@address.com", 1, 5 4 108 15 edit "", 2, 3 42 137 10 icon icons\script.ico button "Ok", 3, 71 58 32 12, default button "Cancel", 4, 108 58 32 13, cancel } on *:load: { if ($version < 6.21) { echo -a This script require you to have mIRC 6.21 or above. download the latest version from www.mirc.com unload -rs $qt($script) } else { .scon -at1 .version set %cm.statsbar off .enable #channel set %cm.style office2003rev 2 echo -at Thank you for loading my channel central. The channel central will now by default be enabled, toggle it and various settings by typing /cm.settings } } on *:dialog:cm.edit:init:0: { set %cm.replace $remove($gettok($did(cm,%dialog).seltext,6,32), ,+fs) set %label.sel $did(cm,%dialog).sel did -ra $dname 2 %cm.replace did -c $dname 2 1 1 $calc($len(%cm.replace) + 1) } on *:dialog:cm.edit:sclick:3: { if ($did(2) != %cm.replace) { mode %cm.chan %prefix %cm.replace $did($dname,2) | dialog -x $dname } else { dialog -x $dname } } alias findban { if (%cm.chan !ischan) { inform * /findban: insufficient parameters (You're in no channel) | return } var %x = 1, %y = $ibl(%cm.chan,0) $iif(!$1,idialog Name or address to search for. Wildcards such as ? and * are accepted.) set %findban $iif(%idialog.result,$v1,$1) if (%findban == *!*@*) { inform You can't search for the term $v2 $+ ! | return } if (!%findban) return updatenl while (%x <= %y) { if ($wildtok($ibl(%cm.chan,%x),$+(*,%findban,*),1,32)) { set %match 1 inform $qt(%findban) matched $ibl(%cm.chan,%x) set by $ibl(%cm.chan,%x).by at $asctime($ibl(%cm.chan,%x).ctime) on %cm.chan $+ . } inc %x } if (!%match) && (%findban != $null) { inform No matches for $qt(%findban) found on %cm.chan $+ . } unset %findban %match %idialog.result } ; Thanks to xDaeMoN and Snabbi for helping me here. alias cm.remove.sel { var %a = 1, %r, %t = $iif($1 == 4,-b,$iif($1 == 8,-e,$iif($1 == 12,-I))), %i = $iif($1 == 4,7,$iif($1 == 8,11,$iif($1 == 12,14))) while ($did(cm,$1,%a).sel) { %r = %r $remove($gettok($did(cm,$1,$did(cm,$1,%a).sel),6,32),$chr(9),+fs,+s) if ($numtok(%r,32) == $modespl) { mode %cm.chan $str(%t,$numtok(%r,32)) %r var %r = "" } inc %a } if (%r) mode %cm.chan $str(%t,$numtok(%r,32)) %r cm.dialog.rem $did(cm,$1,0).sel $1 cm.update.stats %i %cm.chan if ($did(cm,$1).lines == 1) { did -ra cm $1 No $iif($1 == 4,bans,$iif($1 == 8,excepts,$iif($1 == 12,invites))) set. } } alias cm.dialog.rem { var %i = $1 while (%i) { did -d cm $2 $did(cm,$2,%i).sel dec %i } } alias oh return $iif($1 isop $2 || $1 ishop $2,$true,$false) alias cm.update.stats { var %i = $1 if ($dialog(cm)) { if (%i == 7) { did -ra cm 7 $iif(%cm.bans. [ $+ [ $cid ] ],$ibl($2,0) $+ / $+ $v1,$ibl($2,0) $+ /unknown) ( $+ $round($calc($ibl($2,0) / %cm.bans. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } if (%i == 11) { did -ra cm 11 $iif(%cm.excepts. [ $+ [ $cid ] ],$iel($2,0) $+ / $+ $v1,$iel($2,0) $+ /unknown) ( $+ $round($calc($iel($2,0) / %cm.excepts. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } if (%i == 14) { did -ra cm 14 $iif(%cm.invites. [ $+ [ $cid ] ],$iil($2,0) $+ / $+ $v1,$iil($2,0) $+ /unknown) ( $+ $round($calc($iil($2,0) / %cm.invites. [ $+ [ $cid ] ] * 100),0) $+ % $+ ) } } } alias other.modes.load { var %i = 1, %m = $removecs($chanmodes,$chr(44),$chr(32),t,m,n,p,s,k,l,i,b,e,I) while ( %i <= $len(%m) ) { $iif($mid(%m,%i,1) isincs $gettok($chan(%cm.chan).mode,1,32),%cm.other.modes = %cm.other.modes $mid(%m,%i,1)) did -a cm 20 0 0 0 $iif($mid(%m,%i,1) isincs $gettok($chan(%cm.chan).mode,1,32),2,1) + $+ $mid(%m,%i,1) inc %i } } alias prevtopic { var %i = 0, %w = @topicprev,%y = 1,%t = $gtxt(cm,48),%f = $window(%w).font,%s = $window(%w).fontsize,%h = $calc($height(%t,%f,%s) +1) drawrect -nf %w $color(back) 1 0 0 $window(%w).w $window(%w).h if (%t != $null) { while (%y < $window(%w).h) { drawtext -npb %w $color(topic) $color(back) $qt(%f) %s $calc(2-(%i *($window(%w).w -6))) %y %t inc %y %h inc %i } drawrect -n %w $color(back) 2 0 0 $calc($window(%w).w -2) $calc($window(%w).h -2) } drawdot %w } alias gtxt { var %i = $did($1,$2).lines,%r while (%i) { %r = $did($1,$2,%i) $+ %r dec %i } return %r } alias cm.labeledit { if ($3 != $4) && ($4) { set %label.sel $did(cm,$2).sel mode %cm.chan $1 $3-4 } } alias save.topic { if ($encode($3-,m)) { var %t = $v1,%h = $+($network,$1,$cr,%t) if ($1 == %chancentral.chan) && (!$hget(topichist,%h)) { did -i chancentral 5 1 $+($3-,$str( ,150),$2) } hadd -m topichist %h $2 } if ($hfind(topichist,$+($network,$1,$cr,*),0,w) > 50) { var %i = $v1,%l = $ctime,%r while (%i) { var %h = $hfind(topichist,$+($network,$1,$cr,*),%i,w) if ($hget(topichist,%h) < %l) { var %l = $v1,%r = %h } dec %i } hdel topichist %r } } on *:topic:#: { save.topic $chan $ctime $1- if ($dialog(cm)) { did -r cm 49 did -ra cm 91 -No topic selected- var %i = $hfind(topichist,$+($network,%cm.chan,$cr,*),0,w),%r,%z = 1,%g,%n = $nick(%cm.chan,0),%cm = $gettok($chanmodes,1,44) while (%i) { %r = $addtok(%r,$hget(topichist,$hfind(topichist,$+($network,%cm.chan,$cr,*),%i,w)) %i,124) dec %i } %r = $sorttok(%r,124) while ($gettok(%r,%z,124)) { tokenize 32 $v1 did -i cm 49 1 $+($decode($gettok($hfind(topichist,$+($network,%cm.chan,$cr,*),$2,w),2,13),m),$str( ,150),$1) inc %z } } } raw 333:*:{ save.topic $2 $4 $chan($2).topic } alias -l mdx return $shortfn($scriptdirdlls\mdx.dll) alias -l views return $shortfn($scriptdirdlls\views.mdx) alias -l dialogs return $shortfn($scriptdirdlls\dialog.mdx) alias -l ctl return $shortfn($scriptdirdlls\ctl_gen.mdx) alias who_ { .enable #raws who $1- } #rawz off raw 315:*: haltdef raw 352:*: haltdef #rawz end alias mkmenu { if ($xpopup($1).ismenu == $false) { xpopup -c $1 $gettok(%cm.style,1,32) xpopup -l $1 2 $rgb(58, 110, 165) xpopup -l $1 5 $rgb(214, 230, 250) xpopup -l $1 7 $rgb(214, 230, 250) xpopup -l $1 8 $rgb(58, 110, 165) xpopup -l $1 2 $rgb(58, 110, 165) xpopup -l $1 5 $rgb(214, 230, 250) xpopup -l $1 7 $rgb(214, 230, 250) xpopup -l $1 8 $rgb(58, 110, 165) xpopup -t $1 $gettok(%cm.style,1,32) } } alias -l xpop { if ( $isid ) returnex $dcx( _xpop, $1 $prop $2- ) dcx xpop $2 $1 $3- } alias -l xpopup { if ( $isid ) returnex $dcx( _xpopup, $1 $prop $2- ) dcx xpopup $2 $1 $3- } alias -l dcx { if ($isid) returnex $dll($scriptdirdlls\dcx.dll,$1,$2-) else dll " $+ $scriptdirdlls\dcx.dll" $1 $2- } alias gtok return $gettok($1,$2,32) alias headerunsel { var %w1 = $+(@mdxunsel.,$1,.,$2,.1),%w2 = $+(@mdxunsel.,$1,.,$2,.2),%z window -hw0 %w1 window -hw0 %w2 filter -iwr 2- $+ $did($1,$2).lines $1 $2 %w1 var %i = 1,%t = $line(%w1,0) while (%i <= %t) { noop $regsub($gtok($line(%w1,%i),3-),/ \+[fs]+ (\d+) (\d+) (\d+)/g, + \1 \2 \3,%z) echo %w2 1 + %z inc %i } close -@ %w1 } alias headersort { if (headerclick headerEvent ?* iswm $did($did,1)) { var %z,%x = $gtok($did($did,1),3),%w = $+(@mdxunsel.,$dname,.,$did,.2),%r headerunsel $dname $did filter $iif(%sortheader. [ $+ [ $dname ] $+ ] . [ $+ [ $did ] ] == %x,-cwoet,-cwot) %x 9 %w $dname $did * close -@ %w did -i $dname $did 1 page headertext noop $regsub($puttok($remove($gtok($did($did,1),2-),(asc.),(desc.)),$remove($iif(%x == 1,$gtok($gettok($did($did,1),%x,9),2-),$gettok($did($did,1),%x,9)),(asc.),(desc.)) ( $+ $iif(%sortheader. [ $+ [ $dname ] $+ ] . [ $+ [ $did ] ] == %x,desc.,asc.) $+ ),%x,9),/(\+[clr]) 1/g,\1 0,%r) var %ö = $gettok($did($did,1),%x,9)) did -i $dname $did 1 %r if (%sortheader. [ $+ [ $dname ] $+ ] . [ $+ [ $did ] ] != %x) { set $+(%,sortheader.,$dname,.,$did) %x } else { unset $+(%,sortheader.,$dname,.,$did) } } } alias idialog { if ($1) { set %idialog.text $1- $dialog(idialog,idialog,-4) } } dialog idialog { title "input request" size -1 -1 163 86 option dbu icon icons\script.ico edit "", 2, 2 3 159 51, read multi return vsbar button "Cancel", 3, 124 72 37 12, cancel default edit "", 4, 2 58 159 12, autohs button "Ok", 5, 84 72 37 12, disable default } on *:dialog:idialog:*:*: { if ($devent == init) { dll $mdx SetMircVersion $version dll $mdx MarkDialog $dname dll $mdx SetBorderStyle $dname 2 did -f $dname 4 did -ra $dname 2 %idialog.text if (%idialog.text2) { did -ra $dname 4 $v1 did -c $dname 4 1 1 $calc($len($v1) + 1) unset %idialog.text2 } } if ($devent == close) unset %idialog.result idialog.text if ($devent == edit) { if ($did == 4) { did $iif($did(4),-e,-b) $dname 5 did -t $dname $iif($did(4),5,3) } } elseif ($devent == sclick) { if ($did == 5) { set %idialog.result $did(4) dialog -x $dname } } } dialog cdialog { title "confirmation request..." size -1 -1 163 70 option dbu icon icons\script.ico edit "", 2, 2 4 159 45, read multi return vsbar button "No", 3, 123 56 37 12, default button "Yes", 5, 83 56 37 12 edit "", 10, 2 52 160 1 } on *:dialog:cdialog:init:0: { dll $mdx SetMircVersion $version dll $mdx MarkDialog $dname dll $mdx SetBorderStyle $dname 2 dll $mdx SetBorderStyle $dname 10 staticedge did -ra $dname 2 %cdialog.text did -f $dname 3 } alias cdialog { if ($1) { set %cdialog.text $1- $dialog(cdialog,cdialog,-4) } } on *:dialog:cdialog:sclick:*: { if ($istok(3 5,$did,32)) { if ($did) set -u2 %cdialog.did $did($did) dialog -x $dname .timer -m 1 500 unset %idialog.result %cdialog.did } } alias lbl { if ($dialog($1)) && ($1 !isnum) { if ($4) { var %t = $did($1,$2,$3), %c = $4 } else { var %t = $did($1,$2).seltext, %c = $3 } } else { if ($3) { var %t = $did($1,$2), %c = $3 } else { var %t = $did($1).seltext, %c = $2 } } return $gtok($gettok($gettok(%t,1,4),%c,9),$iif(%c == 1,6-,5-)) } on *:exit: { if ($hget(topichist)) .hsave -o topichist topichist.hsh } on *:disconnect: { if ($hget(topichist)) .hsave -o topichist topichist.hsh } on *:start: { if !$hget(topichist) { .hmake topichist 100 } if $exists(topichist.hsh) { .hload topichist topichist.hsh } } raw 005:*: { if $regex($1-,/MAXBANS=(\d+)/) { set $+(%,cm.bans,.,$cid) $regml(1) } if $regex($1-,/TOPICLEN=(\d+)/) { set $+(%,cm.topic,.,$cid) $regml(1) } if $regex($1-,/MAXLIST=b:([0-9]+)/) { set $+(%,cm.bans,.,$cid) $regml(1) } var %r = /MAXLIST=.*?,e:(\d+)/ | if $regex($1-,%r) { set $+(%,cm.excepts,.,$cid) $regml(1) } var %r = /MAXLIST=.*?,I:(\d+)/ | if $regex($1-,%r) { set $+(%,cm.invites,.,$cid) $regml(1) } } on *:unload: { unset %cm.* hfree topichist } alias statusbar { if ($1) { if ($1 == new) { xstatusbar -A 1 tooltips grip dcx xSignal 1 +s set %cm.statusbar on if ($dialog(config)) { did -c config 227 } } elseif ($1 == close) { xstatusbar -A 0 dcx xSignal 0 +s set %cm.statusbar off if ($dialog(config)) { did -u config 227 } } } if ($xstatusbar().visible) { xstatusbar -l $str(120 $chr(32),10) -1 xstatusbar -w + 0 $shortfn($scriptdiricons\3.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\2.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\1.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\6.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\4.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\5.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\3.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\10.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\11.ico) xstatusbar -w + 0 $shortfn($scriptdiricons\12.ico) .scid $activecid xstatusbar -t 1 +p 1 Users: $iif($active ischan,$nick($active,0),n/a) $chr(9) Users: $iif($active ischan,$nick($active,0),n/a) if (~ isincs %cm.prefix. [ $+ [ $activecid ] ]) .scid $activecid xstatusbar -t 2 +p 2 Owners: $iif($active ischan,$nick($active,0,q) $wr($calc(($nick($active,0,q) / $nick($active,0)) * 100)),n/a) $chr(9) Owners: $iif($active ischan,$nick($active,0,q) $wr($calc(($nick($active,0,q) / $nick($active,0)) * 100)),n/a) else .scid $activecid xstatusbar -t 2 +p 0 n/a if (& isincs %cm.prefix. [ $+ [ $activecid ] ]) .scid $activecid xstatusbar -t 3 +p 3 Admins: $iif($active ischan,$nick($active,0,a,vhrq) $wr($calc(($nick($active,0,a,vhrq) / $nick($active,0)) * 100)),n/a) $chr(9) Admins: $iif($active ischan,$nick($active,0,a,vhrq) $wr($calc(($nick($active,0,a,vhrq) / $nick($active,0)) * 100)),n/a) else .scid $activecid xstatusbar -t 3 +p 0 n/a if (@ isincs %cm.prefix. [ $+ [ $activecid ] ]) .scid $activecid xstatusbar -t 4 +p 4 Ops: $iif($active ischan,$nick($active,0,o) $wr($calc(($nick($active,0,o) / $nick($active,0)) * 100)),n/a) $chr(9) Ops: $iif($active ischan,$nick($active,0,o) $wr($calc(($nick($active,0,o) / $nick($active,0)) * 100)),n/a) else .scid $activecid xstatusbar -t 4 +p 0 n/a if (% isincs %cm.prefix. [ $+ [ $activecid ] ]) .scid $activecid xstatusbar -t 5 +p 5 Half-Ops: $iif($active ischan,$nick($active,0,h) $wr($calc(($nick($active,0,h) / $nick($active,0)) * 100)),n/a) $chr(9) Half-Ops: $iif($active ischan,$nick($active,0,h) $wr($calc(($nick($active,0,h) / $nick($active,0)) * 100)),n/a) else .scid $activecid xstatusbar -t 5 +p 0 n/a if (+ isincs %cm.prefix. [ $+ [ $activecid ] ]) .scid $activecid xstatusbar -t 6 +p 6 Voices: $iif($active ischan,$nick($active,0,v) $wr($calc(($nick($active,0,v) / $nick($active,0)) * 100)),n/a) $chr(9) Voices: $iif($active ischan,$nick($active,0,v) $wr($calc(($nick($active,0,v) / $nick($active,0)) * 100)),n/a) else .scid $activecid xstatusbar -t 6 +p 0 n/a var %b = %cm.bans. [ $+ [ $activecid ] ], %e = %cm.excepts. [ $+ [ $activecid ] ], %i = %cm.invites. [ $+ [ $activecid ] ] .scid $activecid xstatusbar -t 7 +p 7 Regulars: $iif($active ischan,$nick($active,0,r) $wr($calc(($nick($active,0,r) / $nick($active,0)) * 100)),n/a) $chr(9) Regulars: $iif($active ischan,$nick($active,0,r) $wr($calc(($nick($active,0,r) / $nick($active,0)) * 100)),n/a) .scid $activecid xstatusbar -t 8 +p 8 Bans: $iif($active ischan,$ibl($active,0) $wr($calc(($ibl($active,0) / %b) * 100)),n/a) $chr(9) Bans: $iif($active ischan,$ibl($active,0) $wr($calc(($ibl($active,0) / %b) * 100)),n/a) .scid $activecid xstatusbar -t 9 +p 9 Invites: $iif($active ischan,$iel($active,0) $wr($calc(($iel($active,0) / %i) * 100)),n/a) $chr(9) Invites: $iif($active ischan,$iel($active,0) $wr($calc(($iel($active,0) / %e) * 100)),n/a) .scid $activecid xstatusbar -t 10 +p 10 Excepts: $iif($active ischan,$iil($active,0) $wr($calc(($iil($active,0) / %i) * 100)),n/a) $chr(9) Excepts: $iif($active ischan,$iil($active,0) $wr($calc(($iil($active,0) / %i) * 100)),n/a) } } alias -l wr return ( $+ $round($1-,0) $+ % $+ ) on *:active:*: statusbar on *:join:#: statusbar on *:SIGNAL:*: { if ($signal == XPopup-statusbar) { if ($1 == 2) statusbar elseif ($1 == 4) statusbar close } if ($1 == DCXStatusbar) { if ($2 == rclick) { mkmenu statusbar office2003rev xpopup -i statusbar + 0 $shortfn($scriptdiricons\question.ico) xpop -a statusbar 0 $chr(9) +g 1 1 $xstatusbar($4).text xpop -a statusbar 0 $chr(9) + 0 0 - xpop -a statusbar 0 $chr(9) + 2 0 &Refresh xpop -a statusbar 0 $chr(9) + 0 0 - xpop -a statusbar 0 $chr(9) +c 4 0 En&able statusbar xpopup -s statusbar +t $mouse.dx $mouse.dy xpopup -d statusbar } } } alias xstatusbar { !if ($isid) returnex $dcx( _xstatusbar, mIRC $prop $1- ) dcx xstatusbar $1- } dialog cm.settings { title "Channel Central configuration..." size -1 -1 113 64 option dbu check "Enable channel central", 1, 8 9 68 9 check "Use statusbar", 2, 16 20 50 8 combo 3, 49 30 54 35, drop text "Menu Style:", 4, 17 31 31 9 box "Settings...", 5, 4 0 105 46 button "&Ok", 6, 69 49 40 13, ok icon $scriptdiricons\script.ico } on *:dialog:cm.settings:*:*: { if ($devent == init) { dll $mdx MarkDialog $dname dll $mdx SetFont $dname 5 13 700 Tahoma didtok $dname 3 44 office2003,office2003rev,officexp,icy,icyrev,grade,graderev,normal,vertical,verticalrev did $iif(%cm.statusbar == on,-e,-b) $dname 4,2 did $iif(%cm.statusbar == on,-c,-u) $dname 2 did $iif($group(#channel) == on,-e,-b) $dname 4,2 did $iif($group(#channel) == on,-c,-u) $dname 1 did -c $dname 3 $gettok(%cm.style,2,32) } elseif ($devent == sclick) { if ($did == 1) { did $iif($did(1).state == 1,-e,-b) $dname 4,2 $iif($did(1).state == 1,.enable,.disable) #channel statusbar $iif($did(1).state == 1 && $did(2).state == 1,new,close) } elseif ($did == 2) { statusbar $iif($did(2).state == 0,close,new) } elseif ($did == 3) { set %cm.style $did(3) $did(3).sel } } } alias cm.settings dialog $iif($dialog(cm.settings),-v,-m) cm.settings cm.settings ;--------------------------------------- ; End of file ;---------------------------------------