I have built this script from seeing other scripts.
I have a same detto type of script for EXCESSIVE CONTROL CODES
which includes bold, color, reverse, inverse and plain. That script
works fine and has no problem.
This is alike it based on the same algorithm only the search words/keys
are changed as these are ascii not control codes.
When I execute this script, My bot doesn't kick on excessive ascii codes.
I check in DCC with the BOT, it doesn't give any error while executing this script as well, infact I get no msg while the script executes.
I don't know what is happening, I get no result output from the bot.
Do you think that eggdrops ignore ASCII in TCL?
I have no idea... what is happening and why doesn't this script work.
Please help me.
HERE IS THE SCRIPT:
[/quote]
###########################################
## ------------------------------------- ##
## 25. Excessive ASCII Codes Kick Script ##
## ------------------------------------- ##
###########################################
# This variable is used to determine MAXIMUM VALUES allowed for ASCII codes.
# If the maximum value of control codes detected in a text/action is great than or equal to
# this variable then the script will kick/ban that user.
set ascii_maxchar 20
######### Please don't edit anything below unless you know what you are doing#########
bind pub - * asciicodes
bind pubm - * asciicodes
bind ctcp - ACTION ctcp_asciicodes
proc asciicodes {nick uhost hand chan text} {
global botnick ascii_maxchar ascii_chans
set file [open $::kickno r]
set tilnow "[gets $file]"
catch {close $file}
set totalkicks [expr $tilnow]
if {[isbotnick $nick]} {return 0}
if {[string match \[^!-ÿ\] $text]} {
set asciibanhost1 "*!*@[lindex [split $uhost @] 1]"
set asciibanhost2 "*!*$uhost"
set asciilength [string length $text]
set ascii1 0; set ascii2 0; set ascii3 0; set ascii4 0; set ascii5 0; set ascii6 0; set ascii7 0; set ascii8 0; set ascii9 0; set ascii10 0
set ascii11 0; set ascii12 0; set ascii13 0; set ascii14 0; set ascii15 0; set ascii16 0; set ascii17 0; set ascii18 0; set ascii19 0; set ascii20 0
set ascii21 0; set ascii22 0; set ascii23 0; set ascii24 0; set ascii25 0; set ascii26 0; set ascii27 0; set ascii28 0; set ascii29 0; set ascii30 0
set ascii31 0; set ascii32 0; set ascii33 0; set ascii34 0; set ascii35 0; set ascii36 0; set ascii37 0; set ascii38 0; set ascii39 0; set ascii40 0
set ascii41 0; set ascii42 0; set ascii43 0; set ascii44 0; set ascii45 0; set ascii46 0; set ascii47 0; set ascii48 0; set ascii49 0; set ascii50 0
set ascii51 0; set ascii52 0; set ascii53 0; set ascii54 0; set ascii55 0; set ascii56 0; set ascii57 0; set ascii58 0; set ascii59 0; set ascii60 0
set ascii61 0; set ascii62 0; set ascii63 0; set ascii64 0; set ascii65 0; set ascii66 0; set ascii67 0; set ascii68 0; set ascii69 0; set ascii70 0
set ascii71 0; set ascii72 0; set ascii73 0; set ascii74 0; set ascii75 0; set ascii76 0; set ascii77 0; set ascii78 0
for {set j 0} {$j < $asciilength} {incr j} {
if {[string index $text $j] == "€"} {incr ascii1}
if {[string index $text $j] == "ƒ"} {incr ascii2}
if {[string index $text $j] == "†"} {incr ascii3}
if {[string index $text $j] == "Š"} {incr ascii4}
if {[string index $text $j] == "Œ"} {incr ascii5}
if {[string index $text $j] == "š"} {incr ascii6}
if {[string index $text $j] == "œ"} {incr ascii7}
if {[string index $text $j] == "Ÿ"} {incr ascii8}
if {[string index $text $j] == "¢"} {incr ascii9}
if {[string index $text $j] == "£"} {incr ascii10}
if {[string index $text $j] == "¥"} {incr ascii11}
if {[string index $text $j] == "§"} {incr ascii12}
if {[string index $text $j] == "©"} {incr ascii13}
if {[string index $text $j] == "®"} {incr ascii14}
if {[string index $text $j] == "µ"} {incr ascii15}
if {[string index $text $j] == "¶"} {incr ascii16}
if {[string index $text $j] == "À"} {incr ascii17}
if {[string index $text $j] == "Á"} {incr ascii18}
if {[string index $text $j] == "Â"} {incr ascii19}
if {[string index $text $j] == "Ã"} {incr ascii20}
if {[string index $text $j] == "Ä"} {incr ascii21}
if {[string index $text $j] == "Å"} {incr ascii22}
if {[string index $text $j] == "Æ"} {incr ascii23}
if {[string index $text $j] == "Ç"} {incr ascii24}
if {[string index $text $j] == "È"} {incr ascii25}
if {[string index $text $j] == "É"} {incr ascii26}
if {[string index $text $j] == "Ê"} {incr ascii27}
if {[string index $text $j] == "Ë"} {incr ascii28}
if {[string index $text $j] == "Ì"} {incr ascii29}
if {[string index $text $j] == "Í"} {incr ascii30}
if {[string index $text $j] == "Î"} {incr ascii31}
if {[string index $text $j] == "Ï"} {incr ascii32}
if {[string index $text $j] == "Ð"} {incr ascii33}
if {[string index $text $j] == "Ñ"} {incr ascii34}
if {[string index $text $j] == "Ò"} {incr ascii35}
if {[string index $text $j] == "Ó"} {incr ascii36}
if {[string index $text $j] == "Ô"} {incr ascii37}
if {[string index $text $j] == "Õ"} {incr ascii38}
if {[string index $text $j] == "Ö"} {incr ascii39}
if {[string index $text $j] == "Ø"} {incr ascii40}
if {[string index $text $j] == "Ù"} {incr ascii41}
if {[string index $text $j] == "Ú"} {incr ascii42}
if {[string index $text $j] == "Û"} {incr ascii43}
if {[string index $text $j] == "Ü"} {incr ascii44}
if {[string index $text $j] == "Ý"} {incr ascii45}
if {[string index $text $j] == "Þ"} {incr ascii46}
if {[string index $text $j] == "ß"} {incr ascii47}
if {[string index $text $j] == "à"} {incr ascii48}
if {[string index $text $j] == "á"} {incr ascii49}
if {[string index $text $j] == "â"} {incr ascii50}
if {[string index $text $j] == "ã"} {incr ascii51}
if {[string index $text $j] == "ä"} {incr ascii52}
if {[string index $text $j] == "å"} {incr ascii53}
if {[string index $text $j] == "æ"} {incr ascii54}
if {[string index $text $j] == "ç"} {incr ascii55}
if {[string index $text $j] == "è"} {incr ascii56}
if {[string index $text $j] == "é"} {incr ascii57}
if {[string index $text $j] == "ê"} {incr ascii58}
if {[string index $text $j] == "ë"} {incr ascii59}
if {[string index $text $j] == "ì"} {incr ascii60}
if {[string index $text $j] == "í"} {incr ascii61}
if {[string index $text $j] == "î"} {incr ascii62}
if {[string index $text $j] == "ï"} {incr ascii63}
if {[string index $text $j] == "ð"} {incr ascii64}
if {[string index $text $j] == "ñ"} {incr ascii65}
if {[string index $text $j] == "ò"} {incr ascii66}
if {[string index $text $j] == "ó"} {incr ascii67}
if {[string index $text $j] == "ô"} {incr ascii68}
if {[string index $text $j] == "õ"} {incr ascii69}
if {[string index $text $j] == "ö"} {incr ascii70}
if {[string index $text $j] == "ø"} {incr ascii71}
if {[string index $text $j] == "ù"} {incr ascii72}
if {[string index $text $j] == "ú"} {incr ascii73}
if {[string index $text $j] == "û"} {incr ascii74}
if {[string index $text $j] == "ü"} {incr ascii75}
if {[string index $text $j] == "ý"} {incr ascii76}
if {[string index $text $j] == "þ"} {incr ascii77}
if {[string index $text $j] == "ÿ"} {incr ascii78}
}
set totalascii_codes [expr $ascii1 + $ascii2 + $ascii3 + $ascii4 + $ascii5 + $ascii6 + $ascii7 + $ascii8 + $ascii9 + $ascii10 + $ascii11 + $ascii12 + $ascii13 + $ascii14 + $ascii15 + $ascii16 + $ascii17 + $ascii18 + $ascii19 + $ascii20 + $ascii21 + $ascii22 + $ascii23 + $ascii24 + $ascii25 + $ascii26 + $ascii27 + $ascii28 + $ascii29 + $ascii30 + $ascii31 + $ascii32 + $ascii33 + $ascii34 + $ascii35 + $ascii36 + $ascii37 + $ascii38 + $ascii39 + $ascii40 + $ascii41 + $ascii42 + $ascii43 + $ascii44 + $ascii45 + $ascii46 + $ascii47 + $ascii48 + $ascii49 + $ascii50 + $ascii51 + $ascii52 + $ascii53 + $ascii54 + $ascii55 + $ascii56 + $ascii57 + $ascii58 + $ascii59 + $ascii60 + $ascii61 + $ascii62 + $ascii63 + $ascii64 + $ascii65 + $ascii66 + $ascii67 + $ascii68 + $ascii69 + $ascii70 + $ascii71 + $ascii72 + $ascii73 + $ascii74 + $ascii75 + $ascii76 + $ascii77 + $ascii78]
if {([botisop $chan]) && (![isop $nick $chan]) && (![isvoice $nick $chan]) && (![matchattr $hand mnf|mnf $chan]) && ($totalascii_codes >= $ascii_maxchar)} {
putquick "MODE $chan -o+bb $nick $asciibanhost2 $asciibanhost1"
putquick "KICK $chan $nick :0,1 Excessive ASCII Codes Kick 12,0- Your 2text/action 12exceeded2 $ascii_maxchar ascii code characters. 12Total 2Ascii codes 12detected:2 $totalascii_codes. 12Please 2*do not* use ascii codes 12to display as a2 text or action 12in this channel, because they are2 difficult to read.2 - (Kick #$totalkicks)"
timer 30 "putserv \"mode $chan -bb $asciibanhost2 $asciibanhost1\""
return 0
}
}
}
proc ctcp_asciicodes {nick uhost hand chan keyword rest} {
asciicodes $nick $uhost $hand $chan $rest
}