SMF Script 8 — File Browser
SMFScript8v8.13 / SMFScript8v8.13 / system / misc.mrc
misc.mrc — 25.92 KB — Download this file
alias nmn return $readini $qts($scriptdirservices.ini) NickMan $$1
on *:op:#: if ($opnick = $me) ojscmio $chan
alias ojscmio if ($me isop $1) && ($wcthing($sets(chanmodes)) !iswm $chan($1).mode) && (%smf.setcmodes) mode $1 + $+ $sets(chanmodes) $isinif($sets(chanmodekey),k) $isinif($sets(chanmodelimit),l)
alias isinif if ($2 isin $sets(chanmodes)) return $1
alias prcnt var %pc.1 = $calc($2 / $1 * 100) | if ($len($gettok(%pc.1,2,46)) > 2) return $round(%pc.1,2) | return %pc.1
alias kick inc %kc.count | if (%kc.active) { if (%kc.style = 1) kick $1- ( $+ %kc.count users served | if (%kc.style = 2) kick $1- (Kick $chr(35) $+ %kc.count | if (%kc.style != 1) && (%kc.style != 2) kick $1- ( $+ $chr(35) $+ %kc.count } | else kick $1-
alias quit if ($server = $null) return | if ($1 = $null) { if (%quit) quit %quit | else quit $READ $mircdirdocs\quit.txt } | else quit $1-
alias varclean set -u0 %varnum $lines($scriptdirvars.ini) | :loop | inc -u0 %varinc | if (%varinc > %varnum) goto end | set %varcnt $read -l $+ %varinc $qts($mircdirsystem\vars.ini) | set -u0 %varcnt $gettok(%varcnt,2,61) | if ($gettok(%varcnt,2,32) = "") && ($gettok(%varcnt,3,32) = $null) smf.set vars $sets(vars) $gettok(%varcnt,1,32) | goto loop | :end | if ($sets(vars)) unset $sets(vars) | smf.unset vars
alias wcthing set -u0 %wct.ttl $len($1) | :loop | inc -u0 %wct.inc | if (%wct.inc > %wct.ttl) goto end | set -u0 %wct.return %wct.return $mid($1,%wct.inc,1) | goto loop | :end | return $chr(42) $+ $replace(%wct.return,$chr(32),$chr(42)) $+ $chr(42)
alias cscan {
if ($chan($$1).ial = $false) { set %cscan.halt - | set %cscan.chan $1 | echo 3 -a * retrieving IAL... | who %cscan.chan | return } | window -sh @CS | :loop | set %cscan.ttl $nick($$1,0) | inc %cscan.num | if (%cscan.num > %cscan.ttl) goto next | set %cscan.addy $address($nick($1,%cscan.num),2) | if ($ialchan(%cscan.addy,$1,2)) aline @CS %cscan.addy $nick($1,%cscan.num) | goto loop | :next | set %cs.chan $1 | unset %cscan.* | dialog -mn cscan cscan | set %cscan.ttl $line(@cs,0) | :loop0r | inc %cscan.num | if (%cscan.num > %cscan.ttl) goto end | set %cscan.tmp $line(@cs,%cscan.num) | if ($gettok(%cscan.tmp,1,32) = $gettok(%cscan.lne,1,32)) { set %cscan.lne %cscan.lne $+ $chr(44) $+ $gettok(%cscan.tmp,2,32) }
else { if (%cscan.lne) did -a cscan 5 %cscan.lne | set %cscan.lne %cscan.tmp } | goto loop0r | :end | did -a cscan 5 %cscan.lne | if ($did(cscan,5,1) = $null) { did -i cscan 5 1 No clones found. | did -b cscan 1,2,3,6 } | unset %cscan.* | window -c @cs | if ($me !isop %cs.chan) did -b cscan 1,2,3 | if (o !isin $usermodes) did -b cscan 6
}
dialog cscan {
title "Clone Scanner"
size -1 -1 400 199
button "Kick",1,114 165 54 26
button "BanKick",2,173 165 54 26
button "Ban",3,232 165 54 26
button "Close",4,291 165 54 26,cancel
list 5,10 10 380 150,sort,extsel
button "Kill",6,55 165 54 26
}
on *:dialog:cscan:sclick:*: if ($did = 1) && ($did(5,$did(5).sel)) .timer 1 0 mkick %cs.chan $gettok($did(5,$did(5).sel),1,32) $!?="Message" | if ($did = 2) && ($did(5,$did(5).sel)) { set %ms.kick.ban - | .timer 1 0 mkick %cs.chan $gettok($did(5,$did(5).sel),1,32) $!?="Message" } | if ($did = 3) && ($did(5,$did(5).sel)) mode %cs.chan +b $gettok($did(5,$did(5).sel),1,32) | if ($did = 4) unset %cs.chan | if ($did = 6) && ($did(5,$did(5).sel)) .timer 1 0 mkill %cs.chan $gettok($did(5,$did(5).sel),1,32) $$!?="Message"
alias operscan dialog -mn operscan operscan | set %operscan - | who 0 o | set %operscan.chan $active | did -a operscan 7 %operscan.chan | did -b operscan 3
dialog operscan {
title "IRC Operator Scan"
size -1 -1 192 218
button "Close",3,69 183 54 26,cancel
list 4,9 28 85 150,sort
list 5,98 28 85 150,sort
text "Network",6,10 10 84 13,center
text "",7,98 10 84 13,center
}
on *:dialog:operscan:sclick:*: if ($did = 3) unset %opersca* | if ($did = 4) query $did(4,$did(4).sel) | if ($did = 5) query $did(5,$did(5).sel)
alias massaction set %mop.chan $active | set %mop.nicks.num $nick($active,0) | if (%mop.nicks.num = 0) goto end | :loop | inc %mop.1 | if (%mop.1 > %mop.nicks.num) goto end | set %mop.nicks %mop.nicks $nick(%mop.chan,%mop.1) | goto loop | :end | selmode $replace(%mop.nicks,$chr(32),$chr(44)) $1- | unset %mop.*
alias selkick set %selk.chan $active | set %selk.nicknum $numtok($1,44) | :loop | inc %selk.numinc | if (%selk.numinc > %selk.nicknum) goto end | if ($gettok($1,%selk.numinc,44) ison %selk.chan) { if ($2) mode %selk.chan +b $address($gettok($1,%selk.numinc,44),3) | kick %selk.chan $gettok($1,%selk.numinc,44) $rkm } | goto loop | :end | unset %selk.*
alias selmode {
set %selv.chan $active | set %selv.nicknum $numtok($1,44) | :loop | inc %selv.numinc | if (%selv.numinc < %selv.nicknum) { if ($numtok(%selv.nicks,32) = 5) { mode %selv.chan $iif($2 = A,+,-) $+ $str($3,5) %selv.nicks | unset %selv.nicks } | if ($2 = A) && ($gettok($1,%selv.numinc,44) isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | if ($2 = R) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) !isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | goto loop }
if (%selv.numinc = %selv.nicknum) { if ($2 = A) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | if ($2 = R) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) !isreg %selv.chan) && ($gettok($1,%selv.numinc,44) ison %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | mode %selv.chan $iif($2 = A,+,-) $+ $str($3,%selv.numinc) %selv.nicks | goto end } | :end | unset %selv.* | if ($5) .timer -m 1 250 selmode $1 $4-
}
alias selsamode {
if (a !isin $usermode) nooper | set %selv.chan $active | set %selv.nicknum $numtok($1,44) | :loop | inc %selv.numinc | if (%selv.numinc < %selv.nicknum) { if ($numtok(%selv.nicks,32) = 5) { samode %selv.chan $iif($2 = A,+,-) $+ $str($3,5) %selv.nicks | unset %selv.nicks } | if ($2 = A) && ($gettok($1,%selv.numinc,44) isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | if ($2 = R) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) !isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | goto loop }
if (%selv.numinc = %selv.nicknum) { if ($2 = A) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) isreg %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | if ($2 = R) && ($me != $gettok($1,%selv.numinc,44)) && ($gettok($1,%selv.numinc,44) !isreg %selv.chan) && ($gettok($1,%selv.numinc,44) ison %selv.chan) set %selv.nicks %selv.nicks $gettok($1,%selv.numinc,44) | samode %selv.chan $iif($2 = A,+,-) $+ $str($3,%selv.numinc) %selv.nicks | goto end } | :end | unset %selv.* | if ($5) .timer -m 1 250 selsamode $1 $4-
}
alias chan.add.fold set %add.chan $1 | set %add.chan.num -1 | :loop | inc %add.chan.num | set %add.chan.ttl n $+ %add.chan.num | set %add.chan.cnt $readini $qts($mircini) channels %add.chan.ttl | if (%add.chan.cnt = $null) { writeini $qts($mircini) channels %add.chan.ttl %add.chan | goto end } | if (%add.chan.cnt = %add.chan) goto end | else goto loop | :end | unset %add.cha*
alias chanlist if ($dialog(ChanFold)) return | dialog -mn ChanFold ChanFold | set %cf.dat -1 | :loop | inc %cf.dat | set %cf.tmp n $+ %cf.dat | set %cf.tmp $readini $qts($mircini) channels %cf.tmp | if (%cf.tmp) { did -a ChanFold 3 %cf.tmp | goto loop } | unset %cf.dat %cf.tmp | prevchan
dialog ChanFold {
title "SMF Script Channels Folder"
size -1 -1 311 210
button "OK" 1, 251 173 54 26, ok
text "Channel Name" 2, 10 5 234 12, center
list 3, 9 51 236 150
button "Delete" 4, 251 83 54 26
button "Autojoin" 5, 251 114 54 26
combo 6, 10 21 234 120, edit, drop
button "Add" 7, 251 21 54 26,
button "Edit" 8, 251 52 54 26
}
on *:dialog:ChanFold:dclick:3: if ($server) join $gettok($did(3,$did(3).sel),1,32)
on *:dialog:ChanFold:sclick:*: if ($did = 4) if ($did(3,$did(3).sel)) { did -d ChanFold 3 $did(3).sel | cf.save } | if ($did = 5) && ($did(3,$did(3).sel)) ajoin.add $gettok($did(3,$did(3).sel),1,32) | if ($did = 7) { if ($did(6)) { if ($chr(35) !isin $did(6)) did -a ChanFold 3 $chr(35) $+ $did(6) | else did -a ChanFold 3 $did(6) | did -r ChanFold 6 | prevchan | cf.save } } | if ($did = 8) { if ($did(3,$did(3).sel)) { if ($did(6)) { if ($chr(35) !isin $did(6)) did -a ChanFold 3 $chr(35) $+ $did(6) | else did -a ChanFold 3 $did(6) | did -r ChanFold 6 | cf.save } | did -r ChanFold 6 | did -ac ChanFold 6 $did(3,$did(3).sel) | did -d ChanFold 3 $did(3).sel | prevchan } }
alias ajoin.add dialog -mn ajoin.add ajoin.add | did -a ajoin.add 3 $iif($left($$1,1) != $chr(35),$chr(35)) $+ $1 | :loop | inc -u0 %aj.adinc | did -a ajoin.add 5 $$readini $qts($scriptdirsettings.ini) ajoin %aj.adinc | goto loop
dialog ajoin.add {
size -1 -1 243 64
title "Add channel to autojoin"
button "Cancel",1,124 33 54 26,cancel
text "Add",2,5 10 19 13
edit "",3,26 5 100 23,autohs
text "to",4,127 10 10 13
combo 5,138 6 100 200,drop
button "OK",6,65 33 54 26,ok
}
on *:dialog:ajoin.add:sclick:6: if ($did(5,$did(5).sel) = $null) || ($did(3) = $null) return | if ($dialog(ajoin)) && (%aj.crnt = $did(5,$did(5).sel)) && ($aj.ver.loc($addchan($did(3))) != $true) did -a ajoin 6 $addchan($did(3)) | else { set -u0 %aj.mew $readini $qts($scriptdirsettings.ini) $did(5,$did(5).sel) channels | if ($addchan($did(3)) !isin %aj.mew) writeini $qts($scriptdirsettings.ini) $did(5,$did(5).sel) channels %aj.mew $+ $iif(%aj.mew,$chr(44)) $+ $addchan($did(3)) }
alias cf.save remini $qts($mircini) channels | set %cf.l 1 | set %cf.l2 0 | :loop | set %cf.l3 $did(3,%cf.l) | if (%cf.l3) { set %cf.l4 n $+ %cf.l2 | writeini $qts($mircini) channels %cf.l4 %cf.l3 | inc %cf.l | inc %cf.l2 | goto loop } | unset %cf.l*
on *:join:#:if ($nick = $me) { if ($qts.wav($def.wav(join))) splay $qts.wav($def.wav(join)) | if ($chan != %cf.1) && ($chan != %cf.2) && ($chan != %cf.3) && ($chan != %cf.4) && ($chan != %cf.5) { set %cf.1 %cf.2 | set %cf.2 %cf.3 | set %cf.3 %cf.4 | set %cf.4 %cf.5 | set %cf.5 $chan } }
alias prevchan if (%cf.1) did -a ChanFold 6 %cf.1 | if (%cf.2) did -a ChanFold 6 %cf.2 | if (%cf.3) did -a ChanFold 6 %cf.3 | if (%cf.4) did -a ChanFold 6 %cf.4 | if (%cf.5) did -a ChanFold 6 %cf.5
alias conectA if ($network) { if ($aj.ver.netser($network)) && ($readini $qts($scriptdirsettings.ini) $network active) join $$readini $qts($scriptdirsettings.ini) $network channels | else { :loop | inc -u0 %aj.netinc | if ($readini $qts($scriptdirsettings.ini) ajoin %aj.netinc = $null) { writeini $qts($scriptdirsettings.ini) ajoin %aj.netinc $network | return } | goto loop } } | else { if ($aj.ver.netser($server)) && ($readini $qts($scriptdirsettings.ini) $network active) join $$readini $qts($scriptdirsettings.ini) $server channels | else { :loop | inc -u0 %aj.servinc | if ($readini $qts($scriptdirsettings.ini) ajoin %aj.servinc = $null) { writeini $qts($scriptdirsettings.ini) ajoin %aj.servinc $server | return } | goto loop } }
alias ajoinlist if ($dialog(Ajoin)) return | dialog -mn Ajoin Ajoin | did -b Ajoin 5,6,7,8,9,10,11 | :loop | inc -u0 %aj.dat | did -a ajoin 3 $$readini $qts($scriptdirsettings.ini) ajoin %aj.dat | goto loop
dialog ajoin {
size -1 -1 299 246
title "SMF Script Autojoin List"
button "Close",1,214 125 80 21,cancel
text "Network/Server",2,5 5 100 13,center
combo 3,6 21 100 200,drop
text "Channel",4,110 5 100 13,center
edit "",5,110 20 100 23,autohs
list 6,5 46 205 200
button "Add Channel",7,214 47 80 21
button "Del Network",8,214 21 80 21
button "Del Channel",9,214 73 80 21
button "Edit Channel",10,214 99 80 21
check "Enabled",11,214 151 80 13
}
on *:dialog:ajoin:sclick:*: if ($did = 1) { if (%aj.crnt) { aj.list.sv | unset %aj.crnt } } | if ($did = 3) && ($did(3,$did(3).sel)) aj.list.get $did(3,$did(3).sel) | if ($did = 7) && ($did(5)) && ($aj.ver.loc($addchan($did(5))) != $true) { did -a ajoin 6 $addchan($did(5)) | did -r ajoin 5 } | if ($did = 8) .timer 1 0 aj.net.del $did(3,$did(3).sel) $did(3).sel | if ($did = 9) && ($did(6,$did(6).sel)) did -d ajoin 6 $did(6).sel | if ($did = 10) && ($did(6,$did(6).sel)) { if ($did(5)) && ($aj.ver.loc($addchan($did(5))) != $true) { did -a ajoin 6 $addchan($did(5)) | did -r ajoin 5 } | did -ra ajoin 5 $did(6,$did(6).sel) | did -d ajoin 6 $did(6).sel } | if ($did = 11) { if ($did(11).state = 0) remini $qts($scriptdirsettings.ini) %aj.crnt active | else writeini $qts($scriptdirsettings.ini) %aj.crnt active - }
on *:dialog:ajoin:dclick:6:if ($server) join $did(6,$did(6).sel)
alias aj.ver.loc :loop | inc -u0 %aj.inc | if ($did(6,%aj.inc) = $1) return $true | if ($did(ajoin,6,%aj.inc) = $null) return $false | goto loop
alias aj.ver.netser :loop | inc -u0 %aj.inc | if ($readini $qts($scriptdirsettings.ini) ajoin %aj.inc = $1) return $true | if ($readini $qts($scriptdirsettings.ini) ajoin %aj.inc = $null) return $false | goto loop
alias addchan if ($left($1,1) = $chr(35)) return $1 | return $chr(35) $+ $1
alias aj.net.del if ($?!="Are you sure you wish to delete $$1 $+ ?" != $true) return | did -d ajoin 3 $$2 | did -rb ajoin 6 | did -b Ajoin 5,7,8,9,10,11 | remini $qts($scriptdirsettings.ini) ajoin | remini $qts($scriptdirsettings.ini) $1 | :loop | inc -u0 %aj.inc | if ($did(ajoin,3,%aj.inc) = $null) goto end | writeini $qts($scriptdirsettings.ini) ajoin %aj.inc $did(ajoin,3,%aj.inc) | goto loop | :end | did -c ajoin 3 1 | aj.list.get $$readini $qts($scriptdirsettings.ini) ajoin 1
alias aj.list.sv :loop | inc -u0 %aj.i | if ($did(ajoin,6,%aj.i) = $null) goto end | set -u0 %aj.ii %aj.ii $did(ajoin,6,%aj.i) | goto loop | :end | if (%aj.ii) writeini $qts($scriptdirsettings.ini) %aj.crnt channels $replace(%aj.ii,$chr(32),$chr(44)) | else remini $qts($scriptdirsettings.ini) %aj.crnt channels
alias aj.list.get if (%aj.crnt) aj.list.sv | set %aj.crnt $1 | set -u0 %aj.chn.tmp $readini $qts($scriptdirsettings.ini) $1 channels | if (%aj.chn.tmp = $null) goto end | set -u0 %aj.chn.ttl $numtok(%aj.chn.tmp,44) | did -r ajoin 6 | :loop | inc -u0 %aj.inc.tmp | if (%aj.inc.tmp > %aj.chn.ttl) goto end | did -a ajoin 6 $gettok(%aj.chn.tmp,%aj.inc.tmp,44) | goto loop | :end | did -e Ajoin 5,6,7,8,9,10,11 | if ($readini $qts($scriptdirsettings.ini) $1 active) did -c ajoin 11 | else did -u ajoin 11
#banlist off
alias banlist if ($dialog(Ban)) return | dialog -mn Ban Ban | did -h Ban 6,7,9,12 | did -b ban 11,4
dialog Ban {
title "SMF Script Remote Banlist"
size -1 -1 311 210
list 3, 9 51 236 150
edit "" 5, 9 20 236 23, autohs
edit "" 6, 9 20 236 23, autohs
text "Channel Name" 8, 9 5 236 12, center
text "Ban Mask" 9, 9 5 236 12, center
button "Ban" 7, 251 21 54 26,
button "Get List" 2, 251 21 54 26,
button "Unban" 4, 251 52 54 26
button "Ban" 11, 251 83 54 26
button "Close" 1, 251 173 54 26,cancel
button "Cancel",12,251 83 54 26
}
on *:dialog:Ban:sclick:*: if ($did = 1) { unset %blchan | .disable #Banlist } | if ($did = 11) { did -h Ban 2,5,8,11 | did -v Ban 6,7,9,12 | did -r Ban 6 } | if ($did = 12) { did -h Ban 6,7,9,12 | did -v Ban 2,5,8,11 } | if ($did = 4) { mode %blchan -b $did(3,$did(3).sel) } | if ($did = 2) { if ($did(5).text) set %blchan $did(5).text | if ($chr(35) !isin %blchan) set %blchan $chr(35) $+ %blchan | did -r Ban 3,5 | mode %blchan +b | if ($me isop %blchan) did -e Ban 11,4 | else did -b Ban 11,4 } | if ($did = 7) { if ($did(6)) mode %blchan +b $did(6) | did -r Ban 6 | did -h Ban 6,7,9,12 | did -v Ban 2,5,1,8,11 }
on *:ban:%blchan: did -r Ban 3 | mode %blchan +b
on *:unban:%blchan: did -r Ban 3 | mode %blchan +b
raw 367:*: if ($dialog(Ban) = $null) .diable #banlist | did -a Ban 3 $3 | haltdef
raw 368:*: dialog -t Ban Banlist for %blchan | haltdef
on *:op:%blchan: if ($me = $opnick) did -e Ban 11,4
on *:deop:%blchan: if ($me = $opnick) did -b Ban 11,4
#banlist end
alias cntrycod if ($dialog(CCode) = $null) dialog -mn CCode CCode
dialog CCode {
title "Country Codes"
size -1 -1 245 50
edit "" 5, 9 20 68 23, autohs, default
button "OK" 1, 183 18 54 26, ok
text "Code" 2, 9 5 68 12, Center
text "Country" 3, 78 5 100 12, Center
edit "" 6, 78 20 100 23, autohs, read
}
on *:dialog:CCode:edit:5: did -r CCode 6 | if ($cntry($did(5))) did -a CCode 6 $cntry($did(5))
alias cntry if ($1 = $null) return | return $read -s $+ $$remove($1,.) $qts($mircdirdocs\country.txt)
dialog mKick {
title "SMF Script Mass Kick Console"
size -1 -1 218 148
text "Address Pattern" 1,9 6 200 12, center
edit "nick!user@host.domain" 2,8 21 202 23, edit, drop
button "Cancel" 3,110 113 54 26, cancel
text "Kick Message" 4,9 50 200 12, center
button "Kick" 5,50 113 54 26,
edit "" 6,9 65 200 23
check "Ban" 7,86 95 100 13
}
on *:dialog:mKick:sclick:*: if ($did = 3) unset %ms.kick.* | if ($did = 7) { if ($did(7).state = 1) set %ms.kick.ban - | else unset %ms.kick.ban } | if ($did = 5) && ($did(2)) && ($did(6)) { mkick %ms.kick.chan $did(2) $did(6) | dialog -x mkick }
alias mkick set %ms.kick.chan $1 | set %ms.kick.st $2 | set %ms.kick.msg $3- | set %ms.kick.ttl $ial(%ms.kick.st,0) | :loop | inc %ms.kick.cnt | if ($ial(%ms.kick.st,%ms.kick.cnt).nick != $me) && ($ial(%ms.kick.st,%ms.kick.cnt).nick ison %ms.kick.chan) { if (%ms.kick.ban) ban %ms.kick.chan $ial(%ms.kick.st,%ms.kick.cnt).nick 3 | kick %ms.kick.chan $ial(%ms.kick.st,%ms.kick.cnt).nick %ms.kick.msg } | if (%ms.kick.cnt < %ms.kick.ttl) goto loop | unset %ms.kick.*
alias sf1 if ($left($active,1) = $chr(35)) && ($snicks) && ($me isop $active) selkick $snicks
alias sf2 if ($left($active,1) = $chr(35)) && ($snicks) && ($me isop $active) selkick $snicks Ban
alias kick.con {
dialog -mn Kick Kick
did -a Kick 50 $address(%k.nick,3)
did -a Kick 51 $address(%k.nick,8)
did -a Kick 52 $gettok($address(%k.nick,8),1,33) $+ !*@*
did -a Kick 54 $address(%k.nick,5)
did -b Kick 54,47,48,50,51,52,53,54
if ($sets(bantime)) did -a Kick 47 $sets(bantime)
else did -a Kick 47 3
:loop
inc -u0 %k.inc
did -a Kick 6 $$readini $qts($scriptdirsettings.ini) kicks %k.inc
goto loop
}
dialog Kick {
title "SMF Script Kick Console"
size -1 -1 311 210
button "Kick" 2, 251 18 54 26,default
combo 6, 9 20 236 200, edit, drop
text "Kick Message" 9, 9 5 236 12, center
button "Cancel" 4, 251 80 54 26, cancel
button "Messages" 66, 251 49 54 26
check "Ban", 45, 9 51 37 13, 2state
check "Ban For", 46, 9 70 55 13, 2state
edit "" 47, 68 66 30 23, autohs
text "Seconds", 48, 100 70 55 13
box "Ban Masks", 49, 9 90 236 110
radio "", 50, 14 110 226 13,
radio "", 51, 14 130 226 13,
radio "", 52, 14 150 226 13,
radio "", 53, 14 170 13 13,
edit "", 54, 30 166 200 23, autohs
}
on *:dialog:Kick:sclick:*:{
if ($did = 4) { unset %ban.mask %ban.op %ban.yes %k.chan %k.nick | if ($dialog(k.msg.edt)) dialog -x k.msg.edt } | if ($did = 66) k.msg.edt | if ($did = 2) { if (%ban.yes) && (%ban.op = 45) mode %k.chan +b %ban.mask | if (%ban.yes) && (%ban.op = 46) ban -u $+ $sets(bantime) %k.chan %ban.mask | kick %k.chan %k.nick $did(6) | dialog -c Kick } | if ($did = 52) { did -b Kick 54 | set %ban.mask $did(52,$did(52).next) } | if ($did = 53) { did -e Kick 54 | set %ban.mask $did(54) }
if ($did = 45) { did -u Kick 46 | did -b Kick 47,48 | if (%ban.yes = $null) { set %ban.yes - | did -e Kick 50,51,52,53 | did -c Kick 50 | set %ban.mask $did(50,$did(50).next) } | if (%ban.op = 45) { unset %ban.op %ban.mask %ban.yes | did -b Kick 50,51,52,53,4 } | else set %ban.op 45 } | if ($did = 46) { did -u Kick 45 | did -e Kick 47,48 | if (%ban.yes = $null) { set %ban.yes - | did -e Kick 50,51,52,53 | did -c Kick 50 | set %ban.mask $did(50,$did(50).next) } | if (%ban.op = 46) { unset %ban.op %ban.mask %ban.yes | did -b Kick 47,48,50,51,52,53,54 } | else set %ban.op 46 } | if ($did = 50) { did -b Kick 54 | set %ban.mask $did(50,$did(50).next) } | if ($did = 51) { did -b Kick 54 | set %ban.mask $did(51,$did(51).next) }
}
alias rkm set -u0 %km.mew $readini $qts($scriptdirsettings.ini) kicks total | set -u0 %km.mew $readini $qts($scriptdirsettings.ini) kicks $rand(1,%km.mew) | return %km.mew
on *:dialog:Kick:edit:*: if ($did = 54) set %ban.mask $did(54) | if ($did = 47) smf.set bantime $did(47) | if ($did = 6) set %k.msg $did(6)
alias k.msg.edt if ($dialog(k.msg.edt) = $null) dialog -mn k.msg.edt k.msg.edt | did -ra k.msg.edt 7 $readini $qts($scriptdirsettings.ini) kicks total kicks in file. | did -r k.msg.edt 2 | :loop | inc -u0 %kme.inc | did -az k.msg.edt 2 $$readini $qts($scriptdirsettings.ini) kicks %kme.inc | goto loop
dialog k.msg.edt {
title "Kick message editor"
size -1 -1 311 251
edit "",1,9 20 236 23,autohs
list 2,9 49 236 200,hsbar,sort
button "Add",3,251 19 53 26
button "Edit",4,251 50 53 26
button "Delete",5,251 81 53 26
button "OK",6,251 143 51 26,ok
button "Cancel",8,251 174 51 26,cancel
text "",7,9 5 236 13,center
}
on *:dialog:k.msg.edt:sclick:*:{
if ($did = 3) && ($did(1)) { did -az k.msg.edt 2 $did(1) | did -r k.msg.edt 1 | did -ra k.msg.edt 7 $did(2).lines kicks in file. }
if ($did = 4) && ($did(2,$did(2).sel)) { if ($did(1)) did -az k.msg.edt 2 $did(1) | did -ra k.msg.edt 1 $did(2,$did(2).sel) | did -d k.msg.edt 2 $did(2).sel | did -ra k.msg.edt 7 $did(2).lines kicks in file. }
if ($did = 5) && ($did(2,$did(2).sel)) { did -d k.msg.edt 2 $did(2).sel | did -ra k.msg.edt 7 $did(2).lines kicks in file. }
if ($did = 6) k.msg.edt.sv
}
alias k.msg.edt.sv {
remini $qts($scriptdirsettings.ini) kicks
writeini $qts($scriptdirsettings.ini) kicks total $did(2).lines
:loop
inc -u0 %kme.inc
writeini $qts($scriptdirsettings.ini) kicks %kme.inc $$did(2,%kme.inc)
goto loop
}
alias ban.con dialog -mn ban.con ban.con | did -a ban.con 4 $address(%b.nick,3) | did -a ban.con 5 $address(%b.nick,8) | did -a ban.con 6 $gettok($address(%b.nick,8),1,33) $+ !*@* | did -a ban.con 8 $address(%b.nick,5) | if ($sets(bantime)) did -a ban.con 12 $sets(bantime) | else { smf.set bantime 3 | did -a ban.con 12 $sets(bantime) } | did -b ban.con 11,12,13,8
dialog ban.con {
title "SMF Script Ban Console"
size -1 -1 306 145
button "Ban" 2, 247 12 54 26,
radio "", 4, 14 29 226 13,default
button "Cancel" 3, 247 43 54 26, cancel
radio "", 5, 14 49 226 13,
radio "", 6, 14 69 226 13,
radio "", 7, 14 89 13 13,
edit "", 8, 30 85 200 23, autohs
box "Ban Masks" 9, 6 6 236 110
check "" 10, 14 123 13 13, 2state
text "Ban For" 11, 30 123 40 12
edit "" 12, 70 118 30 23, autohs
text "Second(s)" 13, 102 123 55 23
}
on *:dialog:ban.con:sclick:*: if ($did = 3) unset %b.mask %b.chan %b.nick %b.check | if ($did = 2) { if (%b.mask) && (%b.check) { ban -u $+ $sets(bantime) %b.chan %b.mask } | if (%b.mask) && (%b.check = $null) mode %b.chan +b %b.mask | dialog -c ban.con } | if ($did = 4) { did -b Ban.con 8 | set %b.mask $did(4,$did(4).next) } | if ($did = 5) { did -b Ban.con 8 | set %b.mask $did(5,$did(5).next) } | if ($did = 6) { did -b Ban.con 8 | set %b.mask $did(6,$did(6).next) } | if ($did = 7) { did -e Ban.con 8 | set %b.mask $did(8) } | if ($did = 10) { if (%b.check) { did -b ban.con 11,12,13 | unset %b.check } | else { did -e ban.con 11,12,13 | set %b.check - } }
on *:dialog:Ban.con:edit:*:if ($did = 8) set %b.mask $did(54) | if ($did = 12) smf.set bantime $did(12)
alias showglob if ($sets(notice) = Active) echo $colour(notice) -a [GLOBAL][ $+ $1 $+ $chr(93) $2- | if ($sets(notice) = Special) { if ($window(@Global) = $null) window -kaen @Global 0 0 638 360 173 | aline -ph $colour(notice) @Global $chr(91) $+ $1 $+ $chr(93) $2- | if (o isin $usermodes) editbox @Global /globops }
alias showloc if ($sets(notice) = Active) echo $colour(notice) -a [LocOps][ $+ $1 $+ $chr(93) $2- | if ($sets(notice) = Special) { if ($window(@LocOps) = $null) window -kaen @LocOps 0 0 638 360 173 | aline -ph $colour(notice) @LocOps $chr(91) $+ $1 $+ $chr(93) $2- | if (o isin $usermodes) editbox @LocOps /locops }
alias showchat if ($sets(notice) = Active) echo $colour(notice) -a [ChatOps][ $+ $1 $+ $chr(93) $2- | if ($sets(notice) = Special) { if ($window(@ChatOps) = $null) window -kaen @ChatOps 0 0 638 360 173 | aline -ph $colour(notice) @ChatOps $chr(91) $+ $1 $+ $chr(93) $2- | if (o isin $usermodes) editbox @ChatOps /chatops }
alias shownotice if ($sets(notice) = Active) echo $colour(notice) -a - $+ $1- | if ($sets(notice) = Special) { if ($window(@Notice) = $null) window -kaen @Notice 0 0 638 360 173 | aline -ph $colour(notice) @Notice - $+ $1- | editbox @Notice /notice $nick }
alias showlop if ($sets(notice) = Active) echo $colour(wallop) -a - $+ $1- | if ($sets(notice) = Special) { if ($window(@Wallops) = $null) window -kaen @Wallops 0 0 638 360 173 | aline -ph $colour(wallop) @Wallops - $+ $1- | if (o isin $usermodes) editbox @wallops /wallops }
alias showserv if ($sets(notice) = Active) echo $colour(hilight) -a < $+ $1- | if ($sets(notice) = Special) { if ($window( @ [ $+ [ $nick ] ] ) = $null) window -kaen @ $+ $nick 0 0 638 360 173 | aline -ph $colour(highlight) @ $+ $nick < $+ $1- | editbox @ $+ $nick / $+ $nick }
on ^*:wallops:*: if ($chr(46) isin $nick) { if ($1 = GLINE) && ($12 = for) { if (%sn.kline) showsnot kick *** $nick has G:Lined $3 for $duration($13) ( $+ $15- | haltdef } | if ($1 = CMD) && ($2 = mode) && ($chr(35) isin $3) { if (%sn.samode) showsnot mode *** Set mode on $3 $+ : $4 $gettok($5-,1- [ $+ [ $calc($numtok($5-,32) - 1) ] $+ ] ,32) on $asctime($remove($gettok($5-,$numtok($5-,32),32),[,])) | haltdef } } | else { if ($sets(notice) != Default) { if ($inwave != $true) .splay $qts.wav($def.wav(notice)) | showlop $nick $+ - $1- | haltdef } }
on ^*:notice:*:?: if ($sets(notice) != Default) && ($1 != sping) && ($1 != DCC) { if ($inwave != $true) .splay $qts.wav($def.wav(notice)) | if ($nick = chanserv) || ($nick = nickserv) || ($nick = memoserv) || ($nick = operserv) || ($nick = helpserv) || ($nick = statserv) { showserv $nick $+ > $1- | halt } | else shownotice $nick $+ - $1- | haltdef }
on ^*:notice:*:#: if ($nick = $server) && ($2 = Notice) && ($4 = TS) { if (%sn.ts) showsnot info2 *** Changed timestamp for $6 $+ , $8- | halt } | if ($sets(notice) != Default) { if ($inwave != $true) .splay $qts.wav($def.wav(notice)) | shownotice $chr(91) $+ $nick $+ ][ $+ $chan $+ $chr(93) $+ - $1- | haltdef }