******************************************************************* * * * Console ZenChanV2 * * * * * * Par Syltheb (email Syltheb@Zen-Attitude.org) avec la collaboration d'Alan * * * ******************************************************************* on *:load: { set %overlimit 2 } menu channel { .- ZenChanV2: dialog -mied ZenChanV2 ZenChanV2 } alias ZC dialog -mied ZenChanV2 ZenChanV2 dialog ZenChanV2 { title " Z e n C h a n " size -1 -1 130 245 option dbu box "U s e r s ", 1, 3 35 85 179 box "G e s t i o n d e s A c c e s s ", 2, 2 218 116 24 button "&&", 3, 4 226 13 12 button "@", 4, 18 226 13 12 button "%", 5, 32 226 13 12 button "+", 6, 46 226 13 12 button "Aucun", 7, 60 226 27 12 button "Liste", 9, 88 226 27 12 button "Rafraichir", 10, 91 38 37 12 button "Whois", 11, 91 51 37 12 button "Quit", 12, 91 202 37 12, ok list 8, 6 43 79 168, sort size extsel hsbar vsbar button "Notice", 15, 91 64 37 12 button "Mass Notice", 16, 91 77 37 12 button "Limiter", 17, 91 90 37 12 button "Auto-Voice", 18, 91 103 37 12 button "Akick", 19, 91 117 37 12 button "UnAkick", 20, 91 130 37 12 button "Topic", 21, 91 143 37 12 button "Xop", 22, 91 156 37 12 button "Kick", 13, 91 175 37 12 button "Ban", 14, 91 188 37 12 text " ", 134, 3 21 124 9 combo 135, 3 2 84 50, sort size drop text " ", 138, 89 17 39 8 text " ", 137, 89 26 40 8 menu "Configuration", 29 menu "Botserv", 35 item "Botlist", 36, 35 item "Assign", 37, 35 menu "Set", 38, 35 menu "DONTKICKOPS", 46, 38 item "On", 51, 46 item "Off", 52, 46 menu "DONTKICKVOICES", 47, 38 item "On", 53, 47 item "Off", 54, 47 menu "Fantasy", 48, 38 item "On", 55, 48 item "Off", 56, 48 menu "Greet", 49, 38 item "On", 57, 49 item "Off", 58, 49 menu "Symbiosis", 50, 38 item "On", 59, 50 item "Off", 60, 50 menu "Kick", 39, 35 menu "Bolds", 61, 39 item "On", 69, 61 item "Off", 70, 61 menu "Badwords", 62, 39 item "On", 71, 62 item "Off", 72, 62 menu "Caps", 63, 39 item "On", 73, 63 item "Off", 74, 63 menu "Colors", 64, 39 item "On", 75, 64 item "Off", 76, 64 menu "Flood", 65, 39 item "On", 77, 65 item "Off", 78, 65 menu "Repeat", 66, 39 item "On", 79, 66 item "Off", 80, 66 menu "Reverses", 67, 39 item "On", 81, 67 item "Off", 82, 67 menu "Underlines", 68, 39 item "On", 83, 68 item "Off", 84, 68 menu "Badwords", 41, 35 item "ADD", 85, 41 item "DEL", 86, 41 item "LIST", 87, 41 item "CLEAR", 88, 41 item "Act", 42, 35 item "Info", 43, 35 item "Say", 44, 35 item "Unassign", 45, 35 menu "Chanserv", 89 menu "SET", 92, 89 item "FOUNDER", 91, 92 item "SUCCESSOR", 93, 92 item "PASSWORD", 94, 92 item "ENTRYMSG", 98, 92 menu "BANTYPE", 99, 92 item "*!user@host", 111, 99 item "*!*user@host", 112, 99 item "*!*@host", 113, 99 item "*!*user@*.domain", 114, 99 item "MLOCK", 100, 92 menu "KEEPTOPIC", 101, 92 item "On", 115, 101 item "Off", 116, 101 menu "OPNOTICE", 102, 92 item "On", 117, 102 item "Off", 118, 102 menu "PEACE", 103, 92 item "On", 119, 103 item "Off", 120, 103 menu "PRIVATE", 104, 92 item "On", 121, 104 item "Off", 122, 104 menu "RESTRICTED", 105, 92 item "On", 123, 105 item "Off", 124, 105 menu "SECURE", 106, 92 item "On", 125, 106 item "Off", 126, 106 menu "SECUREOPS", 107, 92 item "On", 127, 107 item "Off", 128, 107 menu "SECUREFOUNDER", 108, 92 item "On", 129, 108 item "Off", 130, 108 menu "SIGNKICK", 109, 92 item "On", 131, 109 item "Off", 133, 109 item "Info", 90, 89 } on *:dialog:ZenChanV2:init:*: { did -a ZenChanV2 29 30 Définir Salon did -a ZenChanV2 29 31 Supprimer Salon did -a ZenChanV2 29 136 Limite did -a ZenChanV2 8 Aucun salon sélectionné RemplirCombo } ; Ajouter un nouveau salon ********************* on *:dialog:ZenChanV2:menu:30: { set %ZenChanV21 $$?="Nom du salon 1 (avec le #)" if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) == on) { echo -a 4Je suis la dialog -k ZenChanV2 timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2 timerremplir 1 1 did -r ZenChanV2 8 timerremplir 1 1 did -a ZenChanV2 8 %ZenChanV21 déjà existant halt } if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) != on) { writeini [ %ZenChanV21 $+ .ini ] SALON caractéristique on writeini [ %ZenChanV21 $+ .ini ] SALON Auto_Voice off writeini [ %ZenChanV21 $+ .ini ] SALON ZenLimite off writeini [ %ZenChanV21 $+ .ini ] SALON Limite 2 write ZenChanSalon.txt %ZenChanV21 set %ZenChanV2 %ZenChanV21 dialog -k ZenChanV2 timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2 timerremplir 1 1 RemplirListe } } ; Supprimer un salon **************** on *:dialog:ZenChanV2:menu:31: { set %ZenChanV21 $$?="Nom du salon 1 (avec le #)" if ($readini([ %ZenChanV21 $+ .ini ],SALON,caractéristique) == on) { remini [ %ZenChanV21 $+ .ini ] SALON protectionamj_off mode %ZenChanV21 -l write -ds %ZenChanV21 ZenChanSalon.txt RemplirCombo unset %ZenChanV21 unset %ZenChanV2 dialog -k ZenChanV2 timerdialog 1 1 dialog -mied ZenChanV2 ZenChanV2 } } on *:dialog:ZenChanV2:menu:36: { bs botlist } on *:dialog:ZenChanV2:menu:37: { bs assign %ZenChanV2 $$?="Nom du botserv : ?" } on *:dialog:ZenChanV2:menu:42: { bs ACT %ZenChanV2 $$?="Message : ?" } on *:dialog:ZenChanV2:menu:43: { bs INFO %ZenChanV2 } on *:dialog:ZenChanV2:menu:44: { bs SAY %ZenChanV2 $$?="Message : ?" } on *:dialog:ZenChanV2:menu:45: { bs UNASSIGN %ZenChanV2 } on *:dialog:ZenChanV2:menu:51: { bs set %ZenChanV2 DONTKICKOPS on } on *:dialog:ZenChanV2:menu:52: { bs set %ZenChanV2 DONTKICKOPS off } on *:dialog:ZenChanV2:menu:53: { bs set %ZenChanV2 DONTKICKVOICES on } on *:dialog:ZenChanV2:menu:54: { bs set %ZenChanV2 DONTKICKVOICES off } on *:dialog:ZenChanV2:menu:55: { bs set %ZenChanV2 FANTASY on } on *:dialog:ZenChanV2:menu:56: { bs set %ZenChanV2 FANTASY off } on *:dialog:ZenChanV2:menu:57: { bs set %ZenChanV2 GREET on } on *:dialog:ZenChanV2:menu:58: { bs set %ZenChanV2 GREET off } on *:dialog:ZenChanV2:menu:59: { bs set %ZenChanV2 SYMBIOSIS on } on *:dialog:ZenChanV2:menu:60: { bs set %ZenChanV2 SYMBIOSIS off } on *:dialog:ZenChanV2:menu:69: { bs KICK %ZenChanV2 BOLDS on } on *:dialog:ZenChanV2:menu:70: { bs KICK %ZenChanV2 BOLDS off } on *:dialog:ZenChanV2:menu:71: { bs KICK %ZenChanV2 BADWORDS on } on *:dialog:ZenChanV2:menu:72: { bs KICK %ZenChanV2 BADWORDS off } on *:dialog:ZenChanV2:menu:73: { bs KICK %ZenChanV2 CAPS on } on *:dialog:ZenChanV2:menu:74: { bs KICK %ZenChanV2 CAPS off } on *:dialog:ZenChanV2:menu:75: { bs KICK %ZenChanV2 COLORS on } on *:dialog:ZenChanV2:menu:76: { bs KICK %ZenChanV2 COLORS off } on *:dialog:ZenChanV2:menu:77: { bs KICK %ZenChanV2 FLOOD on } on *:dialog:ZenChanV2:menu:78: { bs KICK %ZenChanV2 FLOOD off } on *:dialog:ZenChanV2:menu:79: { bs KICK %ZenChanV2 REPEAT on } on *:dialog:ZenChanV2:menu:80: { bs KICK %ZenChanV2 REPEAT off } on *:dialog:ZenChanV2:menu:81: { bs KICK %ZenChanV2 REVERSES on } on *:dialog:ZenChanV2:menu:82: { bs KICK %ZenChanV2 REVERSES off } on *:dialog:ZenChanV2:menu:83: { bs KICK %ZenChanV2 UNDERLINES on } on *:dialog:ZenChanV2:menu:84: { bs KICK %ZenChanV2 UNDERLINES off } on *:dialog:ZenChanV2:menu:85: { bs BADWORDS %ZenChanV2 ADD $$?="Badword à ajouter : ?" } on *:dialog:ZenChanV2:menu:86: { bs BADWORDS %ZenChanV2 DEL $$?="Badword à supprimer : ?" } on *:dialog:ZenChanV2:menu:87: { bs BADWORDS %ZenChanV2 LIST } on *:dialog:ZenChanV2:menu:87: { bs BADWORDS %ZenChanV2 CLEAR } on *:dialog:ZenChanV2:menu:90: { cs INFO %ZenChanV2 ALL } on *:dialog:ZenChanV2:menu:91: { cs SET %ZenChanV2 FOUNDER $$?="Pseudo du nouvel owner du salon : ?" } on *:dialog:ZenChanV2:menu:93: { cs SET %ZenChanV2 SUCCESSOR $$?="Pseudo du repreneur éventuel du salon : ?" } on *:dialog:ZenChanV2:menu:94: { cs SET %ZenChanV2 PASSWORD $$?="Nouveau mot de passe : ?" } on *:dialog:ZenChanV2:menu:98: { cs SET %ZenChanV2 ENTRYMSG $$?="Message d'accueil : ?" } on *:dialog:ZenChanV2:menu:100: { cs SET %ZenChanV2 MLOCK $$?="Mode(s) à maintenir (ex: +p-l) :?" } on *:dialog:ZenChanV2:menu:111: { cs SET %ZenChanV2 BANTYPE 0 } on *:dialog:ZenChanV2:menu:112: { cs SET %ZenChanV2 BANTYPE 1 } on *:dialog:ZenChanV2:menu:113: { cs SET %ZenChanV2 BANTYPE 2 } on *:dialog:ZenChanV2:menu:114: { cs SET %ZenChanV2 BANTYPE 3 } on *:dialog:ZenChanV2:menu:115: { cs SET %ZenChanV2 KEEPTOPIC On } on *:dialog:ZenChanV2:menu:116: { cs SET %ZenChanV2 KEEPTOPIC Off } on *:dialog:ZenChanV2:menu:117: { cs SET %ZenChanV2 OPNOTICE On } on *:dialog:ZenChanV2:menu:118: { cs SET %ZenChanV2 OPNOTICE Off } on *:dialog:ZenChanV2:menu:119: { cs SET %ZenChanV2 PEACE On } on *:dialog:ZenChanV2:menu:120: { cs SET %ZenChanV2 PEACE Off } on *:dialog:ZenChanV2:menu:121: { cs SET %ZenChanV2 PRIVATE On } on *:dialog:ZenChanV2:menu:122: { cs SET %ZenChanV2 PRIVATE Off } on *:dialog:ZenChanV2:menu:123: { cs SET %ZenChanV2 RESTRICTED On } on *:dialog:ZenChanV2:menu:124: { cs SET %ZenChanV2 RESTRICTED Off } on *:dialog:ZenChanV2:menu:125: { cs SET %ZenChanV2 SECURE On } on *:dialog:ZenChanV2:menu:126: { cs SET %ZenChanV2 SECURE Off } on *:dialog:ZenChanV2:menu:127: { cs SET %ZenChanV2 SECUREOPS On } on *:dialog:ZenChanV2:menu:128: { cs SET %ZenChanV2 SECUREOPS Off } on *:dialog:ZenChanV2:menu:129: { cs SET %ZenChanV2 SECUREFOUNDER On } on *:dialog:ZenChanV2:menu:130: { cs SET %ZenChanV2 SECUREFOUNDER Off } on *:dialog:ZenChanV2:menu:131: { cs SET %ZenChanV2 SIGNKICK On } on *:dialog:ZenChanV2:menu:133: { cs SET %ZenChanV2 SIGNKICK Off } on *:dialog:ZenChanV2:sclick:135: { set %ZenChanV2 $did(135).seltext | RemplirListe } on *:dialog:ZenChanV2:menu:136: { writeini [ %ZenChanV2 $+ .ini ] SALON Limite $$?="Quelle limite : ?" | if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { did -a ZenChanV2 137 Limite ON + $readini([ %ZenChanV2 $+ .ini ],SALON,Limite) } } on *:dialog:ZenChanV2:sclick:3: { cs access %ZenChanV2 add $did(08).seltext 10 | mode %ZenChanV2 +ao $did(08).seltext $did(08).seltext } on *:dialog:ZenChanV2:sclick:4: { cs access %ZenChanV2 add $did(08).seltext 5 | mode %ZenChanV2 +o-a $did(08).seltext $did(08).seltext } on *:dialog:ZenChanV2:sclick:5: { cs access %ZenChanV2 add $did(08).seltext 4 | mode %ZenChanV2 +h-ao $did(08).seltext $did(08).seltext $did(08).seltext } on *:dialog:ZenChanV2:sclick:6: { cs access %ZenChanV2 add $did(08).seltext 3 | mode %ZenChanV2 +v-aoh $did(08).seltext $did(08).seltext $did(08).seltext $did(08).seltext } on *:dialog:ZenChanV2:sclick:7: { cs access %ZenChanV2 del $did(08).seltext | mode %ZenChanV2 -vaoh $did(08).seltext $did(08).seltext $did(08).seltext $did(08).seltext } on *:dialog:ZenChanV2:sclick:9: { cs access %ZenChanV2 list } on *:dialog:ZenChanV2:sclick:10: { RemplirListe } on *:dialog:ZenChanV2:sclick:11: { whois $did(08).seltext } on *:dialog:ZenChanV2:sclick:13: { cs kick %ZenChanV2 $did(08).seltext Oust } on *:dialog:ZenChanV2:sclick:14: { ban %ZenChanV2 %ZenChanV2Ban $+(*,$did(08).seltext,*!*@!) | ban %ZenChanV2 $+(*!*,$did(08).seltext,*@*) | ban %ZenChanV2 $did(08).seltext 2 | kick %ZenChanV2 $did(08).seltext Du balai !! } on *:dialog:ZenChanV2:sclick:15: { notice $did(08).seltext $$?="Message à envoyer : ?" } on *:dialog:ZenChanV2:sclick:16: { notice %ZenChanV2 $$?="Message à envoyer : ?" } ; Bouton Limiter on *:dialog:ZenChanV2:sclick:17: { if ($readini([ %ZenChanV2 $+ .ini ],SALON,caractéristique) == on) { if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == off) { writeini [ %ZenChanV2 $+ .ini ] SALON ZenLimite on | did -a ZenChanV2 137 Limite ON + $readini([ $1 $+ .ini ],SALON,Limite) | echo -a 4 Limite activée sur %ZenChanV2 | protectionamj_on %ZenChanV2 | halt } if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { writeini [ %ZenChanV2 $+ .ini ] SALON ZenLimite off | did -a ZenChanV2 137 Limite OFF | echo -a 4 Limite désactivée sur %ZenChanV2 | protectionamj_off | mode %ZenChanV2 -l | halt } } } ; Bouton Auto-Voice on *:dialog:ZenChanV2:sclick:18: { if ($readini([ %ZenChanV2 $+ .ini ],SALON,caractéristique) == on) { if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == off) { writeini [ %ZenChanV2 $+ .ini ] SALON Auto_Voice on | did -a ZenChanV2 138 Auto-voice ON | echo -a 4 Auto-Voice activé sur %ZenChanV2 | halt } if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == on) { writeini [ %ZenChanV2 $+ .ini ] SALON Auto_Voice off | did -a ZenChanV2 138 Auto-voice OFF | echo -a 4 Auto-Voice désactivé sur %ZenChanV2 | halt } } } on *:dialog:ZenChanV2:sclick:19: { cs akick %ZenChanV2 add $did(08).seltext } on *:dialog:ZenChanV2:sclick:20: { cs akick %ZenChanV2 list | echo -a 2,0Pour enlever le "akick" tape la commande suivante: 4/msg ChanServ AKICK %ZenChanV2 DEL "N° du akick" } on *:dialog:ZenChanV2:sclick:21: { cs topic %ZenChanV2 $$?="Message du Topic : ?" } on *:dialog:ZenChanV2:sclick:22: { cs set %ZenChanV2 xop $$?="XOP = On ou Off ?" } on *:dialog:ZenChanV2:sclick:23: { cs akick %ZenChanV2 list } alias RemplirListe { did -r ZenChanV2 8 set %total.nick $nick(%ZenChanV2,0) set %x 1 while (%x <= %total.nick) { did -a ZenChanV2 8 $nick(%ZenChanV2,%x) inc %x 1 } did -a ZenChanV2 134 %ZenChanV2 - %total.nick users if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == on) { did -a ZenChanV2 138 Auto-voice ON } if ($readini([ %ZenChanV2 $+ .ini ],SALON,Auto_Voice) == off) { did -a ZenChanV2 138 Auto-voice OFF } if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == on) { did -a ZenChanV2 137 Limite ON + $readini([ %ZenChanV2 $+ .ini ],SALON,Limite) } if ($readini([ %ZenChanV2 $+ .ini ],SALON,ZenLimite) == off) { did -a ZenChanV2 137 Limite OFF } } alias RemplirCombo { loadbuf -ro ZenChanV2 135 ZenChanSalon.txt } on *:join:#:{ if ($readini([ $chan $+ .ini ],SALON,caractéristique) == on) { if ($readini([ $chan $+ .ini ],SALON,Auto_Voice) == on) { if ((($me isop $chan) || ($me ishop $chan) && ($nick != $me))) { mode $chan +v $nick } } } if ($nick == $me) { if ($readini([ $chan $+ .ini ],SALON,caractéristique) == on) { if ($readini([ $chan $+ .ini ],SALON,ZenLimite) == on) { protectionamj_on $chan } } } } Anti mass-join (@fantomette™) ============== alias protectionamj_on { /timerprotect [ $+ [ $1 ] ] 0 7 .pramj $1 } alias pramj { if ($readini([ $1 $+ .ini ],SALON,caractéristique) == on) { if ($readini([ $1 $+ .ini ],SALON,ZenLimite) == on) { set %overlimit $readini([ $1 $+ .ini ],SALON,Limite) /mode $1 +l $calc($nick($1,0) + %overlimit) } } } alias protectionamj_off { /timerprotect [ $+ [ $1 ] ] off }