Channel Operator Central
::::::::::::::::::::::::::::
:::::: Coded By eNkIL ::::::
::::::::::::::::::::::::::::
::: Cambiale si sabes =) :::
::::::::::::::::::::::::::::
;Central de Operador
menu channel {
Central de Op:cenop
-
}
dialog cenop {
title ""
size -1 -1 308 320
option dbu
;Usuarios
box "", 1, 1 0 81 318
list 2, 4 10 75 313,extsel
;Info Canal
box "", 3, 85 0 220 85
text "Topic:", 4, 87 10 15 10
edit "", 5, 102 9 175 10, autohs
button "", 6, 278 8 26 11
check "", 7, 87 40 75 10
check "", 8, 87 50 75 10
check "", 9, 87 60 75 10
check "", 10, 87 70 75 10
check "", 11, 175 40 50 10
check "", 12, 175 50 50 10
check "" , 13, 175 60 65 9
edit "", 14, 242 61 29 9, center
check "", 15, 175 70 50 10
edit "", 16, 242 71 50 9, autohs
;Controles de Op
box "", 17, 85 86 62 55
button "+@", 18, 87 93 28 10
button "-@", 19, 118 93 27 10
button "+v", 20, 87 105 28 10
button "-v", 21, 118 105 27 10
button "Kick", 22, 87 117 28 10
button "", 23, 118 117 27 10
button "Ban", 24, 87 129 28 10
button "", 25, 118 129 27 10
;Mensajes a Ops
box "", 26, 150 86 155 55
text "OMsg:", 27, 155 94 25 8
edit "", 28, 152 106 120 9, autohs
button "", 29, 275 106 29 9
Text "ONotice:", 30, 155 118 25 8
edit "", 31, 152 130 120 9, autohs
button "", 32, 275 130 29 9
;Info nick list
box "", 33, 85 142 220 18
text "Ops:", 34, 90 150 15 8
edit "", 35, 105 150 15 8, disable center
text "Voice:", 36, 148 150 15 8
edit "", 37, 165 150 15 8, disable center
text "Regular:", 38, 208 150 20 8
edit "", 39, 230 150 15 8, disable center
text "Total:", 40, 274 150 15 8
edit "", 41, 289 150 15 8, disable center
;Lista de Ban
box "", 42, 85 160 220 135
list 43, 87 168 217 100,size extsel multsel check result
button "", 44, 110 283 45 10
button "", 45, 173 283 45 10
button "", 46, 235 283 45 10, ok
box "", 47, 85 290 220 28
;Actualizacion
text "", 94, 87 270 35 8
edit "", 95, 125 270 15 8, disable center
button "", 96, 87 20 215 18,disable
check "", 97, 242 40 61 10,
check "English", 98, 277 300 28 10
check "", 99, 87 300 28 10
}
;Raw
raw 367:*: halt
raw 368:*: halt
;Alias
alias MDX { dll $shortfn($mircdir/scripts/dlls/ $+ MDX.dll) $$1- }
alias Views return $shortfn($mircdir/scripts/dlls/ $+ Views.mdx)
alias dialogMDX return $shortfn($mircdir/scripts/dlls/ $+ dialog.mdx)
alias -l ov { if ($nick($active,%i) isop $active) return $chr(64) | elseif ($nick($active,%i) isvo $active) return $chr(43) | else return $chr(160) }
alias -l rc2 { var %i = $len($1) | dec %i 1 | return $right($1,%i) }
alias -l cenops { .mode $active +b | did -o cenop 35 1 $nick($active,0,o) | did -o cenop 37 1 $nick($active,0,v,o) | did -o cenop 39 1 $nick($active,0,r) | did -o cenop 41 1 $nick($active,0) }
alias toprev1 { if ($1 == ref) { clear @toprev | echo @toprev $did(cenop,5).text } }
alias channel { if (%cenopd) { cenop } | else { channel | echo -a -Dialogo de Central Normal.. | halt } }
alias cenop { if ($dialog(cenop) == $null) { %cbc = $chan | noop $dialog(cenop,cenop,-4) } | else { .echo -a -Dialogo de Central de Operador Ejecutandose.. } }
alias banlist { var %chan = $active, %i = 1 | while ($ibl(%chan, %i) != $null) { did -a cenop 43 $ibl(%chan ,%i) $chr(9) $ibl(%chan, %i).by $chr(9) $ibl(%chan, %i).date | inc %i } }
alias totalbans { did -r cenop 95 | did -a cenop 95 $ibl($Active,N) }
alias -l cenopl {
if (%cenopl) {
dialog -t $dname Op Central - Channel: $active
did -i $dname 43 1 HeaderText Host $chr(9) Set by $chr(9) Time & Hour
did -ra $dname 1 Users
did -ra $dname 3 Channel Info
did -ra $dname 6 Change
did -ra $dname 7 Only ops change Topic (+t)
did -ra $dname 8 No external messages (+n)
did -ra $dname 9 Invite only (+i)
did -ra $dname 10 Moderate (+m)
did -ra $dname 11 Private (+p)
did -ra $dname 12 Secret (+s)
did -ra $dname 13 User Limit (+l)
did -ra $dname 15 Password (+k)
did -ra $dname 17 Op Control
did -ra $dname 23 K Reason
did -ra $dname 25 B Reason
did -ra $dname 26 Messages
did -ra $dname 29 Send
did -ra $dname 32 Send
did -ra $dname 33 Users Info
did -ra $dname 42 Banlist
did -ra $dname 44 Remove
did -ra $dname 45 Remove all
did -ra $dname 46 Done
did -ra $dname 94 Total Bans:
did -ra $dname 97 Only Registered (+r)
did -ra $dname 99 Activate
}
else {
dialog -t $dname Central de Operador - Canal: $active
did -i $dname 43 1 HeaderText Host $chr(9) Puesto por $chr(9) Fecha y Hora
did -ra $dname 1 Usuarios
did -ra $dname 3 Informacion del canal
did -ra $dname 6 Cambiar
did -ra $dname 7 Solo ops ponen Topic (+t)
did -ra $dname 8 No mensajes Externos (+n)
did -ra $dname 9 Solo invitacion (+i)
did -ra $dname 10 Moderado (+m)
did -ra $dname 11 Privado (+p)
did -ra $dname 12 Secreto (+s)
did -ra $dname 13 Limite de usuarios (+l)
did -ra $dname 15 Contraseña (+k)
did -ra $dname 17 Control de Op
did -ra $dname 23 K Razon
did -ra $dname 25 B Razon
did -ra $dname 26 Mensajes
did -ra $dname 29 Enviar
did -ra $dname 32 Enviar
did -ra $dname 33 Informacion de Usuarios
did -ra $dname 42 Banlist
did -ra $dname 44 Quitar
did -ra $dname 45 Quitar todos
did -ra $dname 46 Hecho
did -ra $dname 94 Total de Bans:
did -ra $dname 97 Solo Registrados (+r)
did -ra $dname 99 Activar
}
}
alias cenopi {
if $dialog(cenop) {
if $active ischan {
did $iif($me isop $active,-e,-b) cenop 5-25,28,29,31,32,44,45,46,97
did -u cenop 7-12,13,15
did -r cenop 2,5,14,16,43
if (%cenopl) did -c cenop 98
if (%cenopd) did -c cenop 99
if ($chan($active).topic != $null) did -a cenop 5 $chan($active).topic | if ($chan($active).topic != $null) echo @toprev $chan($active).topic
var %m $gettok($chan($active).mode,1,32)
if (%m) did -c cenop $replace($left($regsubex(tnimpsr,/(.)/g,$iif(\1 isincs %m,\1 $+ $chr(44))),-1),t,7,n,8,i,9,m,10,p,11,s,12,r,97)
if l isincs %m { did -c cenop 13 | did -a cenop 14 $chan($active).limit }
if k isincs %m { did -c cenop 15 | did -a cenop 16 $chan($active).key }
set %i $nick(%cbc,0,a)
:loop
did -i cenop 2 1 $ov $+ $nick(%cbc,%i)
if (%i <= 0) goto end
else dec %i 1 | goto loop
:end
did -d cenop 2 1
unset %i
.timerbanlist 1 1 banlist
.timertotalb 1 1.5 totalbans
}
else dialog -x cenop
}
}
alias -l limpia.bans {
var %x $ibl($active,0)
while %x {
var %i %i $ibl($active,$v1)
if $numtok(%i,32) == $modespl {
mode $active $+(-,$str(b,$v2)) %i
%i =
}
dec %x
}
if (%i) mode $active $+(-,$str(b,$numtok(%i,32))) %i
did -r cenop 43
}
alias -l cenop.sel {
return $gettok($did(cenop,$1,$did(cenop,$1).sel),6,32)
halt
if ($did(cenop,$1,0).sel > 1) {
var %x = $did(cenop,$1,0).sel
while (%x) { var %y = $addtok(%y,$did(cenop,$1,%x).sel,44) | dec %x }
var %y = $replace(%y,$chr(36),$chr(44))
echo -a %y
}
}
;Eventos dialogo
on *:dialog:cenop:*:*:{
if ($devent == init) {
if ($did = 0) {
MDX MarkDialog $dname
MDX SetMircVersion $version
MDX SetControlMDX $dname 43 ListView report grid rowselect headerdrag showsel > $Views
MDX SetControlMDX $dname 96 window > $dialogmdx
window -h @toprev tahoma 12
did -a $dname 96 grab $window(@toprev).hwnd @toprev
did -i $dname 43 1 setcolor bkg $color($color(background))
did -i $dname 43 1 setcolor text $color($color(normal))
did -i $dname 43 1 HeaderDims 135 190 105
$cenopi | $cenopl | $cenops
}
}
if ($devent == edit) { if ($did == 5) { toprev1 ref } }
if ($devent == dclick) { if ($did == 2) { .query $rc2($did($dname,2).seltext) } }
if ($devent == sclick) {
;Topic
if ($did = 6) { if ($chan($active).topic != $did(5)) { topic $active $did(5) }
}
;controles op
if ($did = 18) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { mode %cbc +o $rc2($did(cenop,2).seltext) | .timercenopi 1 1 cenopi } }
}
if ($did = 19) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { mode %cbc -o $rc2($did(cenop,2).seltext) | .timercenopi 1 1 cenopi } }
}
if ($did = 20) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { mode %cbc +v $rc2($did(cenop,2).seltext) | .timercenopi 1 1 cenopi } }
}
if ($did = 21) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { mode %cbc -v $rc2($did(cenop,2).seltext) | .timercenopi 1 1 cenopi } }
}
if ($did = 22) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { kick %cbc $rc2($did(cenop,2).seltext) Solo Porque Si... | did -r cenop 2 | .timercenopi 1 1 cenopi } }
}
if ($did = 23) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { kick %cbc $rc2($did(cenop,2).seltext) $?="Razon?:" | did -r cenop 2 | .timercenopi 1 1 cenopi } }
}
if ($did = 24) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { ban %cbc $rc2($did(cenop,2).seltext) | kick $active $rc2($did(cenop,2).seltext) Solo Porque Si... | did -r cenop 2 |. timercenopi 1 1 cenopi } }
}
if ($did = 25) {
if (!$did($dname,2).seltext) { if (%cenopl) { noop $input(You did not select a nick.,uwo,[AS2010] Error!) }
else { noop $input(NO seleccionaste ningun nick!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { ban %cbc $rc2($did(cenop,2).seltext) | kick $active $rc2($did(cenop,2).seltext) $?="Razon?:" | did -r cenop 2 | .timercenopi 1 1 cenopi } }
}
;Mensajes a Ops
if ($did = 29) {
if (!$did($dname,28).text) { if (%cenopl) { noop $input(You did not write anything.,uwo,[AS2010] Error!) }
else { noop $input(NO escribiste nada!.,uwo,[AS2010] Error!) } }
else { if ($did(28).text != $null) { omsg %cbc $did($dname,28).text | did -r $dname 28 } }
}
if ($did = 32) {
if (!$did($dname,31).text) { if (%cenopl) { noop $input(You did not write anything.,uwo,[AS2010] Error!) }
else { noop $input(NO escribiste nada!.,uwo,[AS2010] Error!) } }
else { if ($did(2).sel != $null) { onotice %cbc $did($dname,31).text | did -r $dname 31 } }
}
;Lista de ban
if ($did = 44) && ($cenop.Sel(43)) { ban -r $active $cenop.Sel(43) | did -d $dname 43 $did($dname,43).sel }
if ($did = 45) && ($did($dname,43).lines > 1) { limpia.bans b }
if ($did = 98) { set %cenopl $did($dname,98).state | cenopl }
if ($did = 99) { set %cenopd $did($dname,99).state }
;boton cerrar
if ($did = 46) {
if ($active ischan) {
if ($chan($active).topic != $did(5)) { topic $active $did(5) }
if ($did(7).state == 1) { var %DC+Mode = t }
else { var %DC-Mode = $+(%DC-Mode,t) }
if ($did(8).state == 1) { var %DC+Mode = $+(%DC+Mode,n) }
else { var %DC-Mode = $+(%DC-Mode,n) }
if ($did(9).state == 1) { var %DC+Mode = $+(%DC+Mode,i) }
else { var %DC-Mode = $+(%DC-Mode,i) }
if ($did(10).state == 1) { var %DC+Mode = $+(%DC+Mode,m) }
else { var %DC-Mode = $+(%DC-Mode,m) }
if ($did(11).state == 1) { var %DC+Mode = $+(%DC+Mode,p) }
else { var %DC-Mode = $+(%DC-Mode,p) }
if ($did(12).state == 1) { var %DC+Mode = $+(%DC+Mode,s) }
else { var %DC-Mode = $+(%DC-Mode,s) }
if ($did(97).state == 1) { var %DC+Mode = $+(%DC+Mode,r) }
else { var %DC-Mode = $+(%DC-Mode,r) }
if ($did(15).state == 1) && ($did(16)) { mode $active +k $did(16) }
elseif (k isincs $gettok($chan($active).mode,1,32)) && ($did(16)) { mode $active -k $did(16) | did -r $dname 16 }
if ($did(13).state == 1) && ($did(14)) { mode $active +l $did(14) }
elseif (l isincs $gettok($chan($active).mode,1,32)) && ($did(14)) { mode $active -l | did -r $dname 14 }
mode $active $+(+,%DC+Mode,-,%DC-Mode)
}
else { dialog -c $dname }
}
}
}