Azzurra IRC Network Forum

Eggdrop e "SVSKilled: Smetti di floodare i servizi"

Kid · 23/10/2004 11:33 · #1
Ciao a tutti :D

sul mio eggdrop ho caricato la tcl Azzurra.tcl scaricata su egghelp, però ho un piccolo problema di flood hai servizi. Se l'egg joina su almeno 2/3 canali dove è solo vop, ogni 20/24 ore cade x flood. Telenettando il bot mi accorgo ke effettivamente ogni minuto tenta di ooparsi, ovviamente senza successo. Sarebbe possibile rallentare la richiesta di op? credo che impostandola ongi 5 minuti fare 1 grosso favore al mio egg e ad azzurra :P

grassie ciauuuuuuu
Steve · 24/10/2004 13:41 · #2
Scusa, una domanda stupida: perche' tenta di opparsi se e' solo vop? Non puoi disabilitare direttamente quel comando?
Kid · 24/10/2004 18:14 · #3
Scusa, una domanda stupida: perche' tenta di opparsi se e' solo vop? Non puoi disabilitare direttamente quel comando?

si, a capire cosa editare ... si :(
Kid · 02/11/2004 22:42 · #4
Scusa, una domanda stupida: perche' tenta di opparsi se e' solo vop? Non puoi disabilitare direttamente quel comando?ho provato varie tcl ma questa è senza dubbio la + completa e funzionale ( ovviamente ho corretto il bug del NS_pass / NS:pass ), così l'ho ricaricata e ho cominciato a giocarci tentando di rallentare un pochino la richiesta di riop.

credo di esserci riuscito, ora chiede il riop a chanserv ogni 5 minuti.


il prossimo passo sarebbe questo: fargli chiedere il riop per tutti i canali dove non è op, ed 1 volta che ha terminato "il giro" farlo fermare per 5 minuti. oppure settare in una variabile i soli canali dove ha il permesso di richiedere il riop


ricordo l'url della tcl iniziale: http://www.egghelp.org/cgi-bin/tcl_archive.tcl?mode=download&id=752 ... e se volete posso postare il codice, magari (sicuramente) qualcuno + bravo di me ha qualche suggerimento


ciao :D :D :D
Dracoo · 02/11/2004 23:12 · #5
Io invece con quella tcl, ho il problema che si identifica al nick anche più di una volta al minuto... HELP!
Kid · 10/11/2004 22:25 · #6
io ne sto scrivendo una analoga, perchè l'editing dell'originale mi ha dato + problemi che altro, ovviamente nel scrivere quella nuova sono partito da azzurra.tcl

mi da solo un errore:
[21:33] Tcl error [chanserv_ok]: wrong # args: should be "chanserv_ok type"

e la procedura è

proc chanserv_ok {args} {
incr cs_ok 1
}


io vorrei *solo* incrementare di 1 la variabile cs_ok, ma non riesco

qualcuno mi sa aiutare?
risolto questo dvrebbe funzionare benino e potrei renderla pubblica :-)

grassie



ciauuuuuu
Kid · 10/11/2004 22:40 · #7
mi rispondo da solo

ho corretto la procedura in questo modo




proc chanserv_ok {args} {
global cs_ok
incr cs_ok 1
}


uff, sembra fungere finalmente :D :D :D :D

se a qualcuno servisse lo dica, la passo volentieri per un test
zed · 30/12/2004 01:39 · #8
salve a tutti,

riesumo questo post per sapere se qualcuno e' riuscito a modificare azzurra.tcl (visto che nei chan in cui l'egg e' solo VOP egli si identifica ogni 60 sec circa)

grazie :-)
Gitan · 30/12/2004 03:17 · #9
Ma non è meglio aggiungere queste 3 righe nel file *.conf ??

bind evnt - init-server evnt:init_server
proc evnt:init_server {type} {
global botnick
putquick "MODE $botnick +i-xws"
putserv "PRIVMSG NICKSERV :identify NICK PASS"
}
Dracoo · 30/12/2004 13:25 · #10
La sto riscrivendo da capo... diciamo che è fatta un po' con i piedi... solo che il mio bottolo è down ora :E
zed · 30/12/2004 13:31 · #11
@Gitan

non penso che aggiungendo quelle righe si risolva il problema della multi-identificazione :D

@dracoo

quando l'hai finita la condividi? 😊
Dracoo · 30/12/2004 14:42 · #12
@Gitan

non penso che aggiungendo quelle righe si risolva il problema della multi-identificazione :D

@dracoo

quando l'hai finita la condividi? 😊D'accordo, è che devo imparare ad usare gli eventi Mode e Raw... gh
Poi quando funzia, al limite la pubblico :-)
La mia prima tcl...gh
Dracoo · 30/12/2004 21:03 · #13
A Voi il debug...gh


set identified 0
set Nickpass "pass"
### Al posto di "pass" metteteci la passoword del Bottolo, gh :-)
adduser NickServ NickServ!service@azzurra.org
chattr NickServ -hp+fF

### BINDS
bind evnt - init-server identifica
bind notc -|F "*Password accettata per il nick*" conferma
bind mode - * deop_proc
bind raw - 473 invite_proc
bind raw - 475 invite_proc

### PROCS

proc identifica {} {
global Nickpass
putserv "PRIVMSG NickServ :identify $NS_pass"
}

proc conferma {nick uhost handle text {dest ""}} {
global botnick; if {$dest == ""} {set dest $botnick}
gloabl identified
if {$nick == NickServ} { set identified 1 }
}

proc deop_proc {nick uhost hand chan mc victim} {
global botnick
global identified
if {[$mc == "-o"] && [$victim == $botnick] && [$identified == 1]} {
putserv "msg ChanServ :op $chan $botnick"
}
}
proc invite_proc {from key arg} {
global botnick
global identified
set chan [lindex $arg 2]
if {[$identified == 1]} {
putserv "msg ChanServ :invite $chan"
putserv "Join $chan"
}
}
Drizzt · 01/01/2005 19:06 · #14
Semplice tcl di autoidentificazione ;)
P.S. Non usare i raw quando non servono, usa bind need :)


#Password del Nickname
set nickserv(password) "password_del_bot"
#Nick di NickServ
set nickserv(nick) "NickServ"
#Host di NickServ
set nickserv(host) "service@azzurra.org"

#Stringa di riconoscimento del Nickserv
bind notc - "Questo nick e' stato registrato da un altro utente. Per favore scegline un altro." ns:id

proc ns:id { nick uhost handle text dest } {
global nickserv
if { $nick == $nickserv(nick) && $uhost == $nickserv(host) } {
putquick "PRIVMSG $nickserv(nick) :identify $nickserv(password)"
putcmdlog "Identificazione in corso...."
}
}
Dracoo · 01/01/2005 20:55 · #15
Semplice tcl di autoidentificazione ;)
P.S. Non usare i raw quando non servono, usa bind need :)

Se io metto un bind need sulla @ continua a farmi la procedura richiamata se questa non ha buon termine (perchè ad esempio il bot non è aop+ nel canale). Perciò mi trovo il bot che continua a tentare di opparsi...
Kid · 16/01/2005 13:08 · #16
già che ci siamo posto pure la mia tcl, non sarà una meraviglia in quanto a codice, ma a me funge abbastanza bene :D




# Impostazioni per l'identificazione automatica a nickserv
set egg_nick "nick"
set egg_pass "password"

# controllo la corretta impostazione di nick e password
if {![info exists egg_nick]} {die "TCL (automatismi.tcl (E' necessario impostare e registrare il nick per poter usare questo script.))"}
if {![info exists egg_pass]} {die "TCL (automatismi.tcl (E' necessario impostare una password e registrare il nick per poter usare questo script.))"}

#aggiungo nickserv e chanserv come utenti del bot
adduser NickServ NickServ!service@azzurra.org
adduser ChanServ ChanServ!service@azzurra.org
chattr NickServ -hp+fS
chattr ChanServ -hp+fS

# identificazione alla connessione
# e
#identificazione al notice di nickserv
bind evnt - init-server ident_nickserv
bind notc S "*registrato*" ident_nickserv
bind notc S "*identificati*" ident_nickserv
proc ident_nickserv {args} {
global egg_nick
global egg_pass
putquick "PRIVMSG NickServ : identify $egg_pass"
}

# se l'egg cambia nick per un qualsiasi motivo
# si riprende il nick impostato
bind evnt - nick recover_nickserv
proc recover_nickserv {args} {
global egg_nick
global egg_pass
putquick "PRIVMSG NickServ : recover $egg_nick $egg_pass"
}

# abilitazione di base (1) dell'accesso al chanserv
# per funzioni di reop e unban personali
set cs_ok 1

# controllo notice di accesso negato a chanserv
# e incremento variabile $cs_ok
bind notc S "*accesso negato*" chanserv_ok
proc chanserv_ok {args} {
global cs_ok
incr cs_ok 1
}

# se non sono op provo a riopparmi
# controllo prima se ho l'accesso a chanserv
bind need - "* op" re_op
proc re_op {chan type} {
global cs_ok
global botnick
if {$cs_ok < 7} {
putlog " Tento di riprendermi l'op su $chan tramite ChanServ "
putquick "PRIVMSG ChanServ :op $chan $botnick"
} else {
putlog " Non è possibile riprendere l'op su $chan : -= AntiFlood ai servizi =- "
}
}

# se vengo bannato provo a sbannarmi
# controllo prima se ho l'accesso a chanserv
bind need - "* unban" un_ban
proc un_ban {chan type} {
global cs_ok
global botnick
if {$cs_ok < 7} {
putlog "Azzurra.tcl -- Tento di rimuovermi il ban su $chan tramite ChanServ."
putquick "PRIVMSG ChanServ :unban $chan me"
} else {
putlog " Non è possibile riprendere l'op su $chan : -= AntiFlood ai servizi =- "
}
}
# ogni 10 minuti resetto a uno il valore
# della variabile di controllo del chanserv
bind time - "?0 * * * *" azzeramento_chanserv_ok
proc azzeramento_chanserv_ok {args} {
global cs_ok
set cs_ok 1
}