Ciao, come ti dissi, se usassi David-Bot, in particolare, lo script "protezione-chan.mrc" avresti già molte delle cose che chiedi configurate.
In particolare, stai chiedendo di re-implementare la gestione del Nick Flood presente su David-Bot.
Te la riporto qua:
Codice: Seleziona tutto
on *:NICK:{
var %i = 1
while (%i <= $comchan($newnick,0)) {
if ($gettok(%protections.nick. [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ],1,44) == 1) {
if ($newnick !isop $comchan($newnick,%i)) && ($newnick !ishop $comchan($newnick,%i)) && ($newnick != %ownernick. [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ]) && ($newnick != %proprietario. [ $+ [ $network ] ]) && ($istok(%protections.exception. [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ],$newnick,32) == $false) {
var %maxnick $gettok($gettok(%protections.nick. [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ],2,44),1,58)
var %time $gettok($gettok(%protections.nick. [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ],2,44),2,58)
var %doinc inc -u $+ %time $chr(37) $+ nickflood. [ $+ [ $address($newnick,2) ] ] [ $+ . ] [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ]
%doinc
if (%nickflood. [ $+ [ $address($newnick,2) ] ] [ $+ . ] [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ] == %maxnick) {
notice $newnick Smetti di cambiare nick o verrai bannato da $comchan($newnick,%i) $+ ! - %logo
}
if (%nickflood. [ $+ [ $address($newnick,2) ] ] [ $+ . ] [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ] > %maxnick) {
kickclones $newnick $comchan($newnick,%i)
ban -ku300 $comchan($newnick,%i) $newnick 2 Nick Flood - %logo
unset %nickflood. [ $+ [ $address($newnick,2) ] ] [ $+ . ] [ $+ [ $comchan($newnick,%i) ] ] [ $+ . ] [ $+ [ $network ] ]
}
}
}
inc %i
}
}
In sostanza, il trucco sta nel recuperare il canale tramite $comchan() e vedere se su quel canale è attiva la protezione dal nick flood.
Nel tuo caso, potresti fare un controllo sulla variabile %chchch estendendo l'if:
Codice: Seleziona tutto
if (%chchch != $null) && (%chchch == #MioCanaleAbilitato) { ban -u180 %chchch $newnick 2 | kick %chchch $newnick Nick Flood | goto end }
N.B.: visto che sarà vero solo per il tuo canale abilitato, ha senso fare direttamente: "goto end", in modo da interrompere il ciclo realizzato con i goto.