Code: Select all
# The channels you want this script active on
set cp_chans "#eleet"
# Number of *!*@host joins in how many seconds, joins:seconds
set cp_j_flood 2:5
# Number of *!*user@host join/part cycles in how many seconds, j/p_cycles:seconds
set cp_jp_flood 2:8
# Period in minutes to ban *!*@host for multiple joins or join/part floods
set clone_btime 10
##### DON'T edit anything below this line unless you know what you're doing #####
bind join - * clone_pro_join
bind part - * clone_pro_leave
bind sign - * clone_pro_leave
proc clone_pro_join {nick uhost hand chan} {
global cp_chans cp_j_flood cp_jp_flood cp_host_count cp_uh_count clone_btime
set uhost [string tolower $uhost]
set host [lindex [split $uhost @] 1]
set chan [string tolower $chan]
set file [open $::kickno r]
set tilnow "[gets $file]"
catch {close $file}
set totalkicks [expr $tilnow]
set cloneban "*!*@[lindex [split $uhost @] 1]"
if {[lsearch -exact $cp_chans $chan] == -1} {return 0}
if {![info exists cp_host_count($host:$chan)]} {
set cp_host_count($host:$chan) 1
} else {
incr cp_host_count($host:$chan)
}
utimer [lindex $cp_j_flood 1] [list cp_expire cp_host_count($host:$chan)]
if {$cp_host_count($host:$chan) > [lindex $cp_j_flood 0]} {
if {[botisop $chan]} {
putquick "MODE $chan +b $cloneban"
timer $clone_btime "pushmode $chan -b $cloneban"
set mask "*!*@[lindex [split $uhost @] 1]"
set list [list]
foreach user [chanlist $chan] {
if {[string equal -nocase $user $nick]} { continue }
if {[string match -nocase $mask "${nick}![getchanhost $user $chan]"]} { lappend list $user }
}
putserv "KICK $chan [join $list {,}] :0,1 Excessive Clone/Botnet Kick 12,0 - 12Detected 2*3 or more* 12clients with the 2host $cloneban 12joining in here, in 2less than 4 secs. 2Excessive Clones 12and 2Botnets 12are 2not allowed 12to 2enter this channel, 12if done so further more 2your host 12will be 2banned permanently.2 - (Kick #$totalkicks)"
}
}
if {![info exists cp_uh_count($uhost:$chan)]} {
set cp_uh_count($uhost:$chan) 1
} else {
incr cp_uh_count($uhost:$chan)
}
utimer [lindex $cp_jp_flood 1] [list cp_expire cp_uh_count($uhost:$chan)]
if {$cp_uh_count($uhost:$chan) >= [expr [lindex $cp_jp_flood 0]*2]} {
if {[botisop $chan]} {
putquick "MODE $chan +b $cloneban"
putquick "KICK $chan $nick :0,1 Mass Join/Part Flood Kick 12,0 - 12Detected 2multiple 12clients in here, with the 2host $cloneban 12performing2 *more than 3* join/part cycles,12 in less than2 10 secs. 2Mass Join/Part floods 12by 2botnets 12are 2prohibited in here, 12if done so further more 212you will be 2banned permanently 12from this 2network/channel.2 - (Kick #$totalkicks)"
timer $clone_btime "pushmode $chan -b $cloneban"
}
}
}
can anyone help please?(Luggage): [19:41] Tcl error [clone_pro_join]: can't read "::kickno": no such variable
(Luggage): [19:42] Tcl error [clone_pro_leave]: invalid command name "clone_pro_leave"