| View previous topic :: View next topic |
| Author |
Message |
irclove Voice
Joined: 09 Dec 2010 Posts: 5
|
Posted: Sat Jan 15, 2011 11:28 pm Post subject: switch on/off repeat tcl |
|
|
hello, I have this tcl, what it does is just ban and not kick
I wish there a switch on / off. thanks for the help
| Quote: | <admin>!repeatban on
<bot> Repeat Ban on
<admin !repeatban off
<bot> Repeat ban off |
| Code: | # by Tris, 17jul96 (v2)
# action added by fantomas 22Dec1997
# Updated to v4 (17 November 1998) by slennox <slenny@ozemail.com.au>
# About time someone updated this nice little script that more
# people should be using Smile
# - Updated for 1.3 bots (channel specific +o user no longer kicked)
# - Added options to set number of kicks in how many seconds
# and kick msg
# - Added option to ban as well as kick
#
# Fixed version (1 December 1998)
# - repeatban set to 1 was generating 'invalid command name' error.
# I'd forgotten to add 'fixbanmask' proc (stolen from subop*.tcl by
# MHT & YaZZ) Smile
#
# Updated to v4.1 (8 December 1998)
# - Got rid of the fixbanmask crap and changed ban type to an IP ban Smile
# Updated (25 November 2002) @/+ exempt
# - Now this script won't kick opped/voiced users. I added an op/voice exempt to this script
# originally made by Tris and modified by users listed above. (|am|) @ DALnet amit@amit.mu
# Number of repeats before kicking
set repeatkick 5
# In how many seconds
set repeattime 22
# Kick msg
set repeatmsg "Stop Flooding"
# Also ban?
set repeatban 1
# How long the ban should last (in minutes)
set repeatbantime 1
# Don't edit below unless you know what you're doing
bind pubm - * repeat_pubm
bind ctcp - ACTION repeat_action
bind nick - * repeat_nick
proc repeat_pubm {nick uhost hand chan text} {
if {[matchattr $nick mo|mo $chan] || [isop $nick $chan] || [isvoice $nick $chan] || [matchattr $nick o|o $chan]} {
return 0
}
global repeat_last repeat_num repeatkick repeatmsg repeatban repeatbantime
if [info exists repeat_last([set n [string tolower $nick]])] {
if {[string compare [string tolower $repeat_last($n)] [string tolower $text]] == 0} {
if {[incr repeat_num($n)] >= ${repeatkick}} {
if {$repeatban} {
set banmask "*!*[string range $uhost [string first "@" $uhost] end]"
putquick "MODE $chan +b $banmask"
timer $repeatbantime [list pushmode $chan -b $banmask]
}
putserv "BAN $chan $nick :$repeatmsg"
unset repeat_last($n)
unset repeat_num($n)
}
return
}
}
set repeat_num($n) 1
set repeat_last($n) $text
}
proc repeat_action {nick uhost hand dest keyword text} {
if {[matchattr $nick mo|mo $dest] || [isop $nick $dest] || [isvoice $nick $dest] || [matchattr $nick o|o $dest]} {
return 0
}
global botnick altnick repeat_last repeat_num repeatkick repeatmsg repeatban repeatbantime
if [info exists repeat_last([set n [string tolower $nick]])] {
if {[string compare [string tolower $repeat_last($n)] [string tolower $text]] == 0} {
if {[incr repeat_num($n)] >= ${repeatkick}} {
if {$repeatban} {
set banmask "*!*[string range $uhost [string first "@" $uhost] end]"
newchanban $dest $banmask repeat $repeatmsg $repeatbantime
}
putserv "KICK $dest $nick :$repeatmsg"
unset repeat_last($n)
unset repeat_num($n)
}
return
}
}
set repeat_num($n) 1
set repeat_last($n) $text
}
proc repeat_nick {nick uhost hand chan newnick} {
if {[matchattr $nick mo|mo $chan] || [isop $nick $chan] || [isvoice $nick $chan] || [matchattr $nick o|o $chan]} {return 0}
global repeat_last repeat_num
catch {set repeat_last([set nn [string tolower $newnick]]) $repeat_last([set on [string tolower $nick]])}
catch {unset repeat_last($on)}
catch {set repeat_num($nn) $repeat_num($on)}
catch {unset repeat_num($on)}
}
proc repeat_timr {} {
global repeat_last repeattime
catch {unset repeat_last}
catch {unset repeat_num}
utimer $repeattime repeat_timr
}
if ![regexp repeat_timr [utimers]] { # thanks to jaym
utimer $repeattime repeat_timr
}
putlog "repeat.tcl (@/+ exempt) by |am| originally made by Tris loaded" |
thanks to all those who help without anything in return a thousand thanks |
|
| Back to top |
|
 |
irclove Voice
Joined: 09 Dec 2010 Posts: 5
|
Posted: Sun Jan 16, 2011 8:48 pm Post subject: |
|
|
| I did not understand anything he says, not if I have understood Friend, do not like to be the command, in the channel and not via ctcp |
|
| Back to top |
|
 |
username Op

Joined: 06 Oct 2005 Posts: 196 Location: Russian Federation, Podolsk
|
Posted: Mon Jan 17, 2011 2:46 am Post subject: |
|
|
Try to add
| Code: | bind pub n !repeatban repeat_set
proc repeat_set {nick uhost hand chan text} {
global lastbind repeatban
switch [lindex [split $text] 0] {
"" {
putserv "NOTICE $nick :$nick, use $lastbind on/off."
return 0
}
"on" {
set repeatban 1
putserv "NOTICE $nick :$nick, Repeat Ban turned on."
}
"off" {
set repeatban 0
putserv "NOTICE $nick :$nick, Repeat Ban turned off."
}
}
} | after | Code: | | bind nick - * repeat_nick |
_________________ Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/ |
|
| Back to top |
|
 |
|