Indice del forum
RegistratiCercaFAQLista utentiGruppiLog in
Tcl botserv per kick, ban, ecc ecc

 
Rispondi    Indice del forum » Bot, Eggdrop, Darkbot, Psotnic, Tcl & Co Precedente
Successivo
Tcl botserv per kick, ban, ecc ecc
Autore Messaggio
bilbo
Membro Senior


Registrato: 19/10/03 01:08
Messaggi: 63

Messaggio Tcl botserv per kick, ban, ecc ecc Rispondi citando
Ciao a tutti, stavo cercando il rete una buona tcl per le funzioni di kick, ban, op e altre funzioni insomma come un vero e proprio botserv. Ho trovato questa tcl posto il codice anche se lunghetto Smile

### Now your eggdrop may be sinchronized to the channel's op list.

### Thanks to C|ty_Hunter, M4rUsCi4, Neiken and all the members of #egghelp for the helpful test.

set ver "1.6"

set csrehash 30
set msgdelay 8
set reasonsfile "scripts/reasons.txt"
set lamahreason "lamer!"
set noexec "Accesso negato. Non e` possibile eseguire comandi kick e ban su utenti della stessa lista o superiore."

set tmpchans ""
set dynlist ""
set dyntmpchan ""
set tmpnick ""
set gnick ""
set gnuser ""
set gchan ""
set gcmd ""
set timeleft 0
set listinuse 0

set csmask "ChanServ!service@azzurra.org"
set liststrig "*list di*"
set xoplist "*) * (*) by *"
set stopcode "*Fine della Lista*"


bind pub - !op giveop
bind pub - !deop takeop
bind pub - !ban buser
bind pub - !kick kickuser
bind pub n !csrehash rehashlists
bind raw - "NOTICE" addoptolist
bind raw - 307 setid

set flood-msg 0

proc checkid {nick} {
putserv "whois $nick"
}

proc setid {from keyword text} {
global gnick gchan gcmd
checkop $gnick $gchan $gcmd
}

proc checklevel {nick channel} {
global tmpchans
foreach tmplevel $tmpchans {
set dynnick [join [lindex [split $tmplevel ":"] 0]]
set dynchan [join [lindex [split $tmplevel ":"] 1]]
set dynlevel [join [lindex [split $tmplevel ":"] 2]]
if {([string tolower $nick] == [string tolower $dynnick]) && ([string tolower $channel] == [string tolower $dynchan])} {
return $dynlevel
}
}
}

proc checkop {nick channel comando} {
global tmpchans gnuser greason noexec
foreach tmpchan $tmpchans {

set dynnick [join [lindex [split $tmpchan ":"] 0]]
set dynchan [join [lindex [split $tmpchan ":"] 1]]
if {([string tolower $gnuser] == [string tolower $dynnick]) && ([string tolower $channel] == [string tolower $dynchan])} {
switch -- [string tolower $comando] {
op { putserv "mode $channel +o $nick" }
deop { putserv "mode $channel -o $nick" }
kick { if {[checklevel $gnuser $channel] > [checklevel $nick $channel]} {
putserv "kick $channel $nick :$greason"
} else { putserv "notice $gnuser :$noexec" }
}
ban { if {[checklevel $gnuser $channel] > [checklevel $nick $channel]} {
putserv "mode $channel +b [getchanhost $nick]"
putserv "kick $channel $nick :$greason"
} else { putserv "notice $gnuser :$noexec" }
}
}
}
}
}

proc giveop {nick uhost handle channel text} {
global gcmd gchan gnick gnuser
set gnuser $nick
set gnick $nick
set gchan $channel
set gcmd "op"
checkid $nick
}

proc takeop {nick uhost handle channel text} {
global gcmd gchan gnick gnuser
set gnuser $nick
set gnick $nick
set gchan $channel
set gcmd "deop"
checkid $nick
}

proc buser {nick uhost handle channel text} {
global botnick gcmd gchan gnick gnuser greason lamahreason
set gnuser $nick
set gnick [string tolower [lindex $text 0]]
set gchan $channel
set gcmd "ban"
set greason [join [lrange [split $text] 1 end]]
if {[llength $text] == 1} { set greason [getreason] }
if {[string tolower $gnick] == [string tolower $botnick]} {
putserv "kick $gchan $nick :$lamahreason"
return
}
checkid $nick
}

proc kickuser {nick uhost handle channel text} {
global botnick gcmd gchan gnick gnuser greason lamahreason
set gnuser $nick
set gnick [string tolower [lindex $text 0]]
set gchan $channel
set gcmd "kick"
set greason [join [lrange [split $text] 1 end]]
if {[string tolower [llength $text]] == 1} { set greason [getreason] }
if {[string tolower $gnick] == [string tolower $botnick]} {
putserv "kick $gchan $nick :$lamahreason"
return
}
checkid $nick
}

proc rehashlists {nick uhost handle channel text} {
sendrehash
}

proc getreason {} {
global reasonsfile
set count 0
set file [open $reasonsfile r]
while {![eof $file]} {
set line [gets $file]
set count [expr $count +1]
}
close $file
set count [rand $count]
set file [open $reasonsfile r]
while {$count > 0 && ![eof $file]} {
set line [gets $file]
set count "[expr $count -1]"
}
close $file
return $line
}

proc sendrehash {} {
global tmpchans csrehash
set tmpchans ""
foreach chan [channels] {
checklist aop $chan
}
dccbroadcast "BotServ: Updating CS lists."
timer $csrehash sendrehash
}

proc checklist {list chan} {
global msgdelay timeleft
set timeleft [expr $timeleft + $msgdelay]
set msgcmd "putserv \"privmsg ChanServ :$list $chan list\""
utimer $timeleft $msgcmd
}

proc addoptolist {from keyword text} {
global csmask dynlist liststrig xoplist tmpchans dyntmpchan tmpnick stopcode listinuse
regsub -all "\002" $text "" text
if {[string tolower $from] == [string tolower $csmask]} {

if {[string match [string tolower $liststrig] [string tolower $text]]} {
set dyntmpchan [lindex $text 4]
regsub ":" [lindex $text 1] "" acclevel
switch -- [string tolower $acclevel] {
aop { set listinuse 1 }
sop { set listinuse 2 }
co-founder { set listinuse 3 }
}
}
}

if {[string match [string tolower $xoplist] [string tolower $text]]} {
set tmpnick [lindex $text 3]
regsub -all "\002" $tmpnick "" tmpnick
lappend tmpchans "$tmpnick:$dyntmpchan:$listinuse"
}

if {[string match [string tolower $stopcode] [string tolower $text]]} {
switch -- $listinuse {
1 { checklist sop $dyntmpchan }
2 { checklist cf $dyntmpchan }
}
}
}


timer $csrehash sendrehash
putlog "BotServ $ver by Progeny"


Ora la domanda ?: come funziona? bisogna dare dei comandi per attivarla da dcc chat del bot dov? caricata la tcl? e quali?
poi bisogna impostare un vhost ai nick op per addarli nella tcl?

Grazie in anticipo per le info Smile
Dom Giu 03, 2007 12:45 pm Profilo Invia messaggio privato
Attila
Site Admin


Registrato: 08/11/02 22:07
Messaggi: 1898
Residenza: Roma

Messaggio Rispondi citando
In genere c'? sempre un file di spiegazioni..
Se non c'? ti consiglio di prendere un'altra tcl..
ciao!

_________________
Attila,
Webmaster -[AT]- Tuttoirc.it
https://www.tuttoirc.it
Very Happy
Dom Giu 03, 2007 1:17 pm Profilo Invia messaggio privato Invia e-mail HomePage MSN ICQ
bilbo
Membro Senior


Registrato: 19/10/03 01:08
Messaggi: 63

Messaggio Rispondi citando
eh infatti non c? Sad non ne hai nessuna da consigliare?
Dom Giu 03, 2007 1:34 pm Profilo Invia messaggio privato
Attila
Site Admin


Registrato: 08/11/02 22:07
Messaggi: 1898
Residenza: Roma

Messaggio Rispondi citando
Prova questa:
https://www.tuttoirc.it/dm/download.php?id=214

_________________
Attila,
Webmaster -[AT]- Tuttoirc.it
https://www.tuttoirc.it
Very Happy
Dom Giu 03, 2007 3:07 pm Profilo Invia messaggio privato Invia e-mail HomePage MSN ICQ
bilbo
Membro Senior


Registrato: 19/10/03 01:08
Messaggi: 63

Messaggio Rispondi citando
mi da degli errori su com? stata scritta Sad

l'ho aperta con notepad c? la prima linea che ? cosi:

channel.tcl 100644 1751 144 41565 6461212130 12270 0 ustar eggdrop users ###########################################################################################

ho provato anche a commentare la prima riga ma niente poi da l'errore del primo testo che trova senza commento.
Dom Giu 03, 2007 6:34 pm Profilo Invia messaggio privato
Attila
Site Admin


Registrato: 08/11/02 22:07
Messaggi: 1898
Residenza: Roma

Messaggio Rispondi citando
a me funziona bene..
aprila con wordpad
Codice:
#                                                                                         #
# This is my channel script                                                               #
# Version 0.5.3                                                                           #
# Written by BrianM@dial.pipex.com                                                        #
#                                                                                         #
# If you have any comments or ideas on how to enhance this script then please dont        #


_________________
Attila,
Webmaster -[AT]- Tuttoirc.it
https://www.tuttoirc.it
Very Happy
Mar Giu 05, 2007 10:27 am Profilo Invia messaggio privato Invia e-mail HomePage MSN ICQ
bilbo
Membro Senior


Registrato: 19/10/03 01:08
Messaggi: 63

Messaggio Rispondi citando
o tolto anche la prima riga... mi da questo errore

[06:34] Tcl error in file 'ChanBOT.conf':
[06:34] extra characters after close-brace
while executing
"proc dig {nick host hand chan text} {
if {[matchattr $nick +o $chan] == 0} {
} else {
if {[onchan $text $chan] == 1} {
set host [lindex [split ..."
(file "scripts/channel.tcl" line 452)
invoked from within
"source scripts/channel.tcl"
(file "ChanBOT.conf" line 525)
[06:34] * CONFIG FILE NOT LOADED (NOT FOUND, OR ERROR)


io nel conf ho solo aggiunto come sempre source scripts/channel.tcl
Mar Giu 05, 2007 12:37 pm Profilo Invia messaggio privato
Attila
Site Admin


Registrato: 08/11/02 22:07
Messaggi: 1898
Residenza: Roma

Messaggio Rispondi citando
Hai pi? trovato una tcl che ti funzionasse?

_________________
Attila,
Webmaster -[AT]- Tuttoirc.it
https://www.tuttoirc.it
Very Happy
Sab Giu 16, 2007 9:27 am Profilo Invia messaggio privato Invia e-mail HomePage MSN ICQ
Mostra prima i messaggi di:    
Rispondi    Indice del forum » Bot, Eggdrop, Darkbot, Psotnic, Tcl & Co Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a: 
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Flowers Online.phpbb.it