egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

switch on/off repeat tcl

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Requests
View previous topic :: View next topic  
Author Message
irclove
Voice


Joined: 09 Dec 2010
Posts: 5

PostPosted: Sat Jan 15, 2011 11:28 pm    Post subject: switch on/off repeat tcl Reply with quote

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
View user's profile Send private message
irclove
Voice


Joined: 09 Dec 2010
Posts: 5

PostPosted: Sun Jan 16, 2011 8:48 pm    Post subject: Reply with quote

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
View user's profile Send private message
username
Op


Joined: 06 Oct 2005
Posts: 196
Location: Russian Federation, Podolsk

PostPosted: Mon Jan 17, 2011 2:46 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Requests All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber