IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   Tcl Arşivi (https://www.ircforumlari.net/tcl-scriptler/44556-tcl-arsivi.html)

AsiL 16 Aralık 2007 21:41

Tcl Arşivi
 
Elimde Bulunan tcl dosyalarını sizinle paylaşmak istedim cogunuzun işini görür tabiki burda olanlarda vardır ama tek başlık altında coğu tcl dosyalarını bulacagınıza inanıyorum umarım bir faydamız dokunur.

Google Tcl

PHP- Kodu:

package require http
bind pub 
- !ara pub:google
bind pub 
- !resim pub:image
bind pub 
- !dosya pub:file
set agent 
"Mozilla"
proc pub:google nick uhost handle channel arg } {
 global 
agent
 
if {[llength $arg]==0} {
  
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
 
} else {
  
set query "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">for { 
set index 0 } { $index<[llength $arg] } { incr index } {
   
set query "$query[lindex $arg $index]"
   
if {$index<[llength $arg]-1then {
    
set query "$query+"
   
}
  }
  
#putserv "PRIVMSG $channel :$query"
                
set token [http::config -useragent $agent]
  
set token [http::geturl $query]
  
puts stderr ""
  
upvar #0 $token state
  
set max 0
  
foreach {name value$state(meta) {
   if {[
regexp -nocase ^location$name]} {
    
set newurl [string trim $value]
    
putserv "PRIVMSG $channel :$newurl"
   
}
  }
 }
}
proc pub:image nick uhost handle channel arg } {
 global 
agent
 
if {[llength $arg]==0} {
  
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
 
} else {
  
set query "http://images.google.de/images?btnI=&q="
  
for { set index 0 } { $index<[llength $arg] } { incr index } {
   
set query "$query[lindex $arg $index]"
   
if {$index<[llength $arg]-1then {
    
set query "$query+"
   
}
  }
  
append query &imgsafe=off
 
# putserv "PRIVMSG $channel :$query"
                
set token [http::config -useragent $agent]
  
set token [http::geturl $query]
  
puts stderr ""
  
upvar #0 $token state
  
set max 0
  
foreach {name value$state(meta) {
   if {[
regexp -nocase ^location$name]} {
    
set starturl "http://"
    
set newurl [string trim $value]
    
set newurl [string range $newurl [expr [string first $newurl]+1] [expr [string first $newurl]-1]]
    
append starturl $newurl
    putserv 
"PRIVMSG $channel :$starturl"
   
}
  }
 }
}
proc pub:file nick uhost handle channel arg } {
 global 
agent
 
if {[llength $arg]==0} {
  
putserv "PRIVMSG $channel :hey ! tappes un nom de fichier boulet !"
 
} else {
  
set query "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set query 
"$query[lindex $arg 0]"
 
# putserv "PRIVMSG $channel :$query"
                
set token [http::config -useragent $agent]
  
set token [http::geturl $query]
  
set html  [http::data $token]
  
puts stderr ""
  
upvar #0 $token state
  
set max 0
 
# foreach {name value} $state(meta) {
 #  putserv "PRIVMSG $channel :$value"
 # }
 # putserv "PRIVMSG $channel :$html"
  
set result "[lindex $html 1]"
  
set result [string range $result [expr [string first $result]+2] [expr [string first $result]-2]]
  
putserv "PRIVMSG $channel :$result"
 
}
}
putlog "Google v0.2.1 - LOADED!" 


AsiL 16 Aralık 2007 21:48

Cevap: Tcl Arşivi
 
Radyo Tcl

PHP- Kodu:

# config ##########################
 
 
 
set radiochans "#radyo" 
 
set adminchans "#radyo" 
 
set streamip "ip-adresiniz" 
 
set streamport "port" 
 
set streampass "şifreniz"
 
set scstatstrigger "!durum"
 
set scstreamtrigger "!adres"
 
set scplayingtrigger "!calan"
 
set sclistenertrigger "!dinleyici"
 
set scdjtrigger "!dj"
 
set scsetdjtrigger "!setdj"
 
set scunsetdjtrigger "!unsetdj"
 
set scwishtrigger "!istek"
 
set scgreettrigger "!karsılama"
 
set sclastsongstrigger "!son"
 
set schelptrigger "!yardım"
 
set alertadmin ""
 
set doalertadmin "1"
 
set announce "1"
 
set urltopic "1"
 
set ctodjc "1"
 
set tellsongs "1"
 
set tellusers "1"
 
set tellbitrate "0"
 
set advertise "1"
 
set advertiseonlyifonline "1"
 
set offlinetext "1Şu anda yayınımız kesilmiştir."
 
set offlinetopic "7-1Radyo şu anda radyo yayını aktif DEĞİLDİR! http://$streamip:$streamport/listen.pls"
 
set onlinetext "7-1Radyoda şu anda yayında Dj 12/sgenre/1 arkadaşımız var. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
set onlinetopic "7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
set streamtext "1Sizde Dinleyin! 2 /dj/ 4http://$streamip:$streamport/listen.pls"
 
set advertisetext "15-14- 1Radyo 12http://$streamip:$streamport/listen.pls 14-15-"
 
 
 
bind pub $scstatstrigger pub_scstat
 
bind msg 
$scstatstrigger msg_scstat
 
 
 
bind pub 
$scplayingtrigger pub_playing
 
bind msg 
$scplayingtrigger msg_playing
 
 
 
bind pub 
$scdjtrigger pub_dj
 
bind msg 
$scdjtrigger msg_dj
 
 
 
bind pub D $scsetdjtrigger pub_setdj
 
bind msg D $scsetdjtrigger msg_setdj
 
 
 
bind pub D $scunsetdjtrigger pub_unsetdj
 
bind msg D $scunsetdjtrigger msg_unsetdj
 
 
 
bind pub 
$scwishtrigger pub_wish
 
bind msg 
$scwishtrigger msg_wish
 
 
 
bind pub 
$scgreettrigger pub_greet
 
bind msg 
$scgreettrigger msg_greet
 
 
 
bind pub 
$scstreamtrigger pub_stream
 
bind msg 
$scstreamtrigger msg_stream
 
 
 
bind pub 
$sclastsongstrigger pub_lastsongs
 
bind msg 
$sclastsongstrigger msg_lastsongs
 
 
 
bind pub 
$sclistenertrigger pub_listener
 
bind msg 
$sclistenertrigger msg_listener
 
 
 
bind pub 
$schelptrigger pub_help
 
bind msg 
$schelptrigger msg_help
 
 
 
bind time 
"* * * * *" isonline
 
bind time 
"?0 * * * *" advertise
 
bind nick D 
djnickchange
 
 
 
set dj 
""
 
set surl "http://$streamip:$streamport/listen.pls"
 
set bitrate "48"
 
set stitle ""
 
 
 
if {[file exists dj]} {
 
set temp [open "dj" r]
 
set dj [gets $temp]
 
close $temp
 
}
 
 
 
proc shrink calc number string start bl} { return [expr [string first "$string$bl $start$calc $number] }
 
 
 
 
 
proc status { } {
 
global 
streamip streamport streampass
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } else {
 
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
 
puts $sock "Host: $streamip"
 
puts $sock "Connection: close"
 
puts $sock ""
 
flush $sock
 
while {[eof $sock] != 1} {
 
set bl [gets $sock]
 
if { [
string first "standalone" $bl] != -} {
 
set streamstatus [string range $bl [shrink 14 "<STREAMSTATUS>" 0 $bl] [shrink "</STREAMSTATUS>" 0 $bl]]
 
}}
 
close $sock
 

 
if { 
$streamstatus == "1" } { return } else { return }
 
}
 
 
 
 
 
 
 
 
 
proc poststuff mode target targetname text } {
 
global 
radiochans dj
 
set curlist 
"0"
 
set curhigh "0"
 
set surl "http://$streamip:$streamport/listen.pls"
 
set cursong ""
 
set sgenre ""
 
set bitrate "48"
 
set stitle ""
 
 
 
set temp [open "isonline" r]
 
while {[
eof $temp] != 1} {
 
set zeile [gets $temp]
 
if {[
string first "curlist:" $zeile] != -} { set curlist $zeile }
 
if {[
string first "curhigh:" $zeile] != -} { set curhigh $zeile }
 
if {[
string first "cursong:" $zeile] != -} { set cursong [lrange $zeile 1 [llength $zeile]]] }
 
if {[
string first "sgenre:" $zeile] != -} { set sgenre [lrange $zeile 1 [llength $zeile]]}
 
if {[
string first "serverurl:" $zeile] != -} { set surl [lindex $zeile 1] }
 
if {[
string first "bitrate:" $zeile] != -} { set bitrate [lindex $zeile 1] }
 
if {[
string first "stitle:" $zeile] != -} { set stitle [lindex $zeile 1] }
 
}
 
close $temp
 
 
 
regsub 
-all "/stitle/" $text "$stitletext
 
regsub 
-all "/curlist/" $text "$curlisttext
 
regsub 
-all "/curhigh/" $text "$curhightext
 
regsub 
-all "/cursong/" $text "$cursongtext
 
regsub 
-all "/sgenre/" $text "$sgenretext
 
regsub 
-all "/surl/" $text "$surltext
 
regsub 
-all "/bitrate/" $text "$bitratetext
 
regsub 
-all "/dj/" $text "$djtext
 
 
 
if {$target == "chan"} {
 
foreach 
chan [channels] {
 
if {
$radiochans == "" } { putserv "$mode $chan :$text}
 
if {
$radiochans != "" } {
 
if {([
lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1)} {putserv "$mode $chan :$text"}
 
}}}
 
if {
$target == "nick"} { putserv "$mode $targetname :$text}
 
}
 
 
 
 
 
proc schelp target } {
 
global 
scstatstrigger scstreamtrigger scplayingtrigger scdjtrigger sclastsongstrigger scwishtrigger scgreettrigger sclistenertrigger
 
putserv 
"notice $target :Uygulayabileceginiz Komutlar Asagida listelenmistir:"
 
putserv "notice $target :$scstatstrigger - $scstreamtrigger - $scplayingtrigger - $sclastsongstrigger - $scwishtrigger - $sclistenertrigger"
 
putserv "notice $target :radyo"
 
}
 
 
 
proc pub_help {nick uhost hand chan arg} {
 
global 
radiochans
 
if {$radiochans == "" } { schelp $nick }
 
if {
$radiochans != "" } {
 
if {([
lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { schelp $nick}
 
}}
 
 
 
proc advertise nick uhost hand chan arg } {
 
global 
advertisetext advertise advertiseonlyifonline
 
if {$advertise == "1" && $advertiseonlyifonline == "0"} { poststuff privmsg chan none "$advertisetext}
 
if {
$advertise == "1" && $advertiseonlyifonline == "1" && [status] == 1} { poststuff privmsg chan none "$advertisetext}
 
}
 
 
 
 
 
proc setdj {nickname djnickname } {
 
global 
ctodjc onlinetopic
 
if {$djnickname == "" } { set djnickname $nickname }
 
global 
streamip streamport streampass dj 
 
putlog 
"shoutcast: new dj: $djnickname ($nickname)"
 
set temp [open "dj" w+]
 
puts $temp $djnickname
 
close $temp
 
set temp 
[open "djnick" w+]
 
puts $temp $nickname
 
close $temp
 
set dj $djnickname
 
if { [status] == "1" } { poststuff privmsg chan none "$djnickname is now rocking the turntables, enjoy."
 
if { $ctodjc == "1" } { poststuff topic chan none "$onlinetopic}
 
} else {
 
putserv "privmsg $nickname :Radyo şu anda kapalıdır." }
 
}
 
 
 
proc msg_setdj nick uhost hand arg } { setdj $nick $arg }
 
proc pub_setdj nick uhost hand chan arg } { global adminchans; if {([lsearch -exact [string tolower $adminchans] [string tolower $chan]] != -1) || ($adminchans == "")} { setdj $nick $arg }}
 
 
 
proc unsetdj nick } {
 
global 
dj onlinetopic ctodjc
 
file delete dj
 
set dj 
""
 
putserv "notice $nick :dj silindi."
 
if { [status] == "1" && $ctodjc == "1" } { poststuff topic chan none "$onlinetopic}
 
}
 
 
 
proc msg_unsetdj nick uhost hand arg } { unsetdj $nick }
 
proc pub_unsetdj nick uhost hand chan arg } { global adminchans; if {([lsearch -exact [string tolower $adminchans] [string tolower $chan]] != -1) || ($adminchans == "")} { unsetdj $nick }}
 
 
 
proc listener target } {
 
global 
streamip streamport streampass
 
putlog 
"shoutcast: $target requested listener count"
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } else {
 
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
 
puts $sock "Host: $streamip"
 
puts $sock "Connection: close"
 
puts $sock ""
 
flush $sock
 
while {[eof $sock] != 1} {
 
set bl [gets $sock]
 
if { [
string first "standalone" $bl] != -} {
 
set repl [string range $bl [shrink 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink "</REPORTEDLISTENERS>" 0 $bl]]
 
set curhigh [string range $bl [shrink 15 "<PEAKLISTENERS>" 0 $bl] [shrink "</PEAKLISTENERS>" 0 $bl]]
 
set maxl [string range $bl [shrink 14 "<MAXLISTENERS>" 0 $bl] [shrink "</MAXLISTENERS>" 0 $bl]]
 
set avgtime [string range $bl [shrink 13 "<AVERAGETIME>" 0 $bl] [shrink "</AVERAGETIME>" 0 $bl]]
 
}}
 
close $sock
 
putserv 
"notice $target :1Şu anda radyo yayınımızı $repl kişi dinlemektedir. En fazla dinleyici sayısı $maxl rakamına ulaşmıştır."
 
}}
 
 
 
proc msg_listener nick uhost hand arg } { listener $nick }
 
proc pub_listener nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { listener $nick }}
 
 
 
proc wish nick arg } {
 
if {
$arg == ""} { putserv "notice $nick :you forgot to add your wish"; return 0}
 
if { [
status] == "1" } { 
 
set temp [open "djnick" r]
 
set djnick [gets $temp]
 
close $temp
 
putserv 
"privmsg $djnick WISH) - $nick - $arg"
 
} else {
 
putserv "notice $nick :Üzgünüm, şu anda radyo yayını aktif değil." }
 
}
 
 
 
 
 
proc msg_wish nick uhost hand arg } { wish $nick $arg }
 
proc pub_wish nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { wish $nick $arg }}
 
 
 
proc sclastsongs target } {
 
global 
streamip streamport streampass
 
putlog 
"shoutcast: $target requested songhistory"
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } else {
 
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
 
puts $sock "Host: $streamip"
 
puts $sock "Connection: close"
 
puts $sock ""
 
flush $sock
 
while {[eof $sock] != 1} {
 
set bl [gets $sock]
 
if { [
string first "standalone" $bl] != -} {
 
set songs [string range $bl [string first "<TITLE>" $bl] [expr [string last "</TITLE>" $bl] + 7]]
 
 
 
regsub -all "&#x3C;" $songs "<" songs
 
regsub 
-all "&#x3E;" $songs ">" songs
 
regsub 
-all "&#x26;" $songs "+" songs
 
regsub 
-all "&#x22;" $songs "\"" songs
 
regsub 
-all "&#x27;" $songs "'" songs
 
regsub 
-all "&#xFF;" $songs "" songs
 
regsub 
-all "<TITLE>" $songs "(" songs
 
regsub 
-all "</TITLE>" $songs ")" songs
 
regsub 
-all "<SONG>" $songs "" songs
 
regsub 
-all "</SONG>" $songs " - " songs
 
regsub 
-all "<PLAYEDAT>" $songs "" songs
 
regsub 
-all "</PLAYEDAT>" $songs "" songs
 
regsub 
-all {\d$songs "" songs
 
 
 
regsub 
-all "&#xB4;" $songs "´" songs
 
regsub 
-all "&#x96;" $songs "-" songs
 
regsub 
-all "&#xF6;" $songs "ö" songs
 
regsub 
-all "&#xE4;" $songs "ä" songs
 
regsub 
-all "&#xFC;" $songs "ü" songs
 
regsub 
-all "&#xD6;" $songs "Ö" songs
 
regsub 
-all "&#xC4;" $songs "Ä" songs
 
regsub 
-all "&#xDC;" $songs "Ü" songs
 
regsub 
-all "&#xDF;" $songs "ß" songs
 
 
 
 
 
 
 
}}
 
close $sock
 
putserv 
"notice $target :$songs"
 
}}
 
 
 
 
 
proc msg_lastsongs nick uhost hand arg } { sclastsongs $nick }
 
proc pub_lastsongs nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { sclastsongs $nick }}
 
 
 
proc scstream target } {
 
global 
streamip streamport streamtext
 
putlog 
"shoutcast: streaminfo requested by $target"
 
poststuff notice nick $target $streamtext
 
}
 
 
 
proc msg_stream nick uhost hand arg } { scstream $nick }
 
proc pub_stream nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scstream $nick }}
 
 
 
proc scgreet nick arg } {
 
if {
$arg == ""} { putserv "notice $nick :7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"; return 0}
 
if { [
status] == "1" } { 
 
set temp [open "djnick" r]
 
set djnick [gets $temp]
 
close $temp
 
putserv 
"privmsg $djnick GREET) - $nick - $arg"
 
} else {
 
putserv "notice $nick :Üzgünüm, şu anda radyo yayını aktif değil." }
 
}
 
 
 
 
 
proc msg_greet nick uhost hand arg } { scgreet $nick $arg }
 
proc pub_greet nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scgreet $nick $arg }}
 
 
 
 
 
proc djnickchange oldnick uhost hand chan newnick } {
 
set temp [open "djnick" r]
 
set djnick [gets $temp]
 
close $temp
 
if {$oldnick == $djnick} {
 
putlog "shoutcast: dj nickchange $oldnick -> $newnick"
 
set temp [open "djnick" w+]
 
puts $temp $newnick
 
close $temp
 
}}
 
 
 
 
 
proc dj target } {
 
global 
streamip streamport streampass dj
 
putlog 
"shoutcast: $target asked for dj info" 
 
if {[status] == 1} {
 
if {[
file exists dj]} {
 
set temp [open "dj" r]
 
set dj [gets $temp]
 
close $temp
 
putserv 
"notice $target :$dj Şu anda Yayında!"
 
} else { putserv "notice $target :Dj Adı Bulunamadı." }
 
} else { 
putserv "notice $target :Şu anda radyo aktif değildir." }
 
}
 
 
 
 
 
 
 
proc msg_dj nick uhost hand arg } { dj $nick"}
 
proc pub_dj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower 
$radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { dj $nick }}
 
 
 
 
 
 
 
proc scstat {target} {
 
global streamip streamport streampass
 
putlog "
shoutcast$target asked for serverstats"
 
if {[catch {set sock [socket 
$streamip $streamport] } sockerror]} {
 
putlog "
error$sockerror"
 
return 0 } else {
 
puts 
$sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts 
$sock "User-AgentMozilla/5.0 (X11ULinux i686en-USrv:0.9.9)"
 
puts 
$sock "Host$streamip"
 
puts 
$sock "Connectionclose"
 
puts 
$sock ""
 
flush 
$sock
 
while {[eof 
$sock] != 1} {
 
set bl [gets 
$sock]
 
if { [string first "
standalone$bl] != -1 } {
 
set streamstatus [string range 
$bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]
 
set repl [string range 
$bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $bl]]
 
set curhigh [string range 
$bl [shrink + 15 "<PEAKLISTENERS>" 0 $bl] [shrink - 1 "</PEAKLISTENERS>" 0 $bl]]
 
set currentl [string range 
$bl [shrink + 18 "<CURRENTLISTENERS>" 0 $bl] [shrink - 1 "</CURRENTLISTENERS>" 0 $bl]]
 
set surl [string range 
$bl [shrink + 11 "<SERVERURL>" 0 $bl] [shrink - 1 "</SERVERURL>" 0 $bl]]
 
set maxl [string range 
$bl [shrink + 14 "<MAXLISTENERS>" 0 $bl] [shrink - 1 "</MAXLISTENERS>" 0 $bl]]
 
set bitrate [string range 
$bl [shrink + 9 "<BITRATE>" 0 $bl] [shrink - 1 "</BITRATE>" 0 $bl]]
 
set stitle [string range 
$bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]
 
set sgenre [string range 
$bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]
 
if 
{$sgenre != ""} {set sgenre " ($sgenre)"}
 
set avgtime [string range 
$bl [shrink + 13 "<AVERAGETIME>" 0 $bl] [shrink - 1 "</AVERAGETIME>" 0 $bl]]
 
set irc [string range 
$bl [shrink + 5 "<IRC>" 0 $bl] [shrink - 1 "</IRC>" 0 $bl]]
 
set icq [string range 
$bl [shrink + 5 "<ICQ>" 0 $bl] [shrink - 1 "</ICQ>" 0 $bl]]
 
if 
{$icq == 0} { set icq "N/A" }
 
set aim [string range 
$bl [shrink + 5 "<AIM>" 0 $bl] [shrink - 1 "</AIM>" 0 $bl]]
 
set webhits [string range 
$bl [shrink + 9 "<WEBHITS>" 0 $bl] [shrink - 1 "</WEBHITS>" 0 $bl]]
 
set streamhits [string range 
$bl [shrink + 12 "<STREAMHITS>" 0 $bl] [shrink - 1 "</STREAMHITS>" 0 $bl]]
 
set version [string range 
$bl [shrink + 9 "<VERSION>" 0 $bl] [shrink - 1 "</VERSION>" 0 $bl]]
 
if 
{$streamstatus == 1} {
 
if {[file exists dj]} {
 
set temp [open "
dj" r]
 
set dj [gets 
$temp]
 
close 
$temp
 
} else { set dj "
none" }
 
putserv "
notice $target :$stitle$sgenre yayındaVersion$version Yayın Kalitesi$bitrate kbps DJ$sgenre Yayını Dinlemek için tıklayınızhttp://$streamip:$streamport/listen.pls"
 
} else {
 
putserv "notice $target :$stitle$sgenre yayında değildir.. Version: $version Son Yayın Kalitesi: $bitrate kbps Son Yayın Adresi : $surl}
 
putserv "notice $target :1Şu anda radyo yayınımızı $repl kişi dinlemektedir. En fazla dinleyici sayısı $maxl rakamına ulaşmıştır."
 
putserv "notice $target :Ortalama Dinlenme Suresi : $avgtime sn, Web Hit : $webhits Dinlenme Hit : $streamhits "
 
putserv "notice $target :radyo rotasız, rotasız radyonuz!"
 
}}
 
close $sock
 
}}
 
 
 
 
 
proc msg_scstat nick uhost hand arg } { scstat $nick}
 
proc pub_scstat nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scstat $nick }}
 
 
 
 
 
proc playing {target} {
 
global 
streamip streamport streampass dj
 
putlog 
"shoutcast: $target asked for current song"
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } else {
 
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
 
puts $sock "Host: $streamip"
 
puts $sock "Connection: close"
 
puts $sock ""
 
flush $sock
 
while {[eof $sock] != 1} {
 
set bl [gets $sock]
 
if { [
string first "standalone" $bl] != -} {
 
set streamstatus [string range $bl [shrink 14 "<STREAMSTATUS>" 0 $bl] [shrink "</STREAMSTATUS>" 0 $bl]]
 
set songtitle [string range $bl [shrink 11 "<SONGTITLE" 0 $bl] [shrink "</SONGTITLE>" 0 $bl]]
 
set songurl [string range $bl [shrink "<SONGURL>" 0 $bl] [shrink "</SONGURL>" 0 $bl]]
 
if {
$songurl != ""} { set songurl " ($songurl)"}
 
regsub -all "&#x3C;" $songtitle "<" songtitle
 
regsub 
-all "&#x3E;" $songtitle ">" songtitle
 
regsub 
-all "&#x26;" $songtitle "+" songtitle 
 
regsub 
-all "&#x22;" $songtitle "\"" songtitle
 
regsub 
-all "&#x27;" $songtitle "'" songtitle
 
regsub 
-all "&#xFF;" $songtitle "" songtitle
 
regsub 
-all "&#xB4;" $songtitle "´" songtitle
 
regsub 
-all "&#x96;" $songtitle "-" songtitle
 
regsub 
-all "&#xF6;" $songtitle "ö" songtitle
 
regsub 
-all "&#xE4;" $songtitle "ä" songtitle
 
regsub 
-all "&#xFC;" $songtitle "ü" songtitle
 
regsub 
-all "&#xD6;" $songtitle "Ö" songtitle
 
regsub 
-all "&#xC4;" $songtitle "Ä" songtitle
 
regsub 
-all "&#xDC;" $songtitle "Ü" songtitle
 
regsub 
-all "&#xDF;" $songtitle "ß" songtitle
 
 
 
if {$streamstatus == 1} {
 
putserv "notice $target :1Şu anda çalan şarkı: $songtitle$songurl"
 
} else {
 
putserv "notice $target :1Şu anda yayında dj yok!"
 
}}}
 
close $sock
 
}}
 
 
 
proc msg_playing nick uhost hand arg } { playing $nick}
 
proc pub_playing nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { playing $nick }}
 
 
 
 
 
 
 
proc isonline nick uhost hand chan arg } {
 
global 
radiochans announce tellusers tellsongs tellbitrate urltopic dj
 
global offlinetext offlinetopic onlinetext onlinetopic
 
global streamip streampass streamport dj
 
global doalertadmin alertadmin
 
 
 
if {$announce == || $tellsongs == || $tellusers == || $tellbitrate == 1} {
 
set isonlinefile "isonline"
 
set oldisonline "isonline: 0"
 
set oldcurlist "curlist: 0"
 
set oldcurhigh "curhigh: 0"
 
set oldsong "cursong: 0"
 
set oldbitrate "bitrate: 0"
 
if {[file exists $isonlinefile]} {
 
putlog "shoutcast: checking if stream is online"
 
set temp [open "isonline" r]
 
while {[
eof $temp] != 1} {
 
set zeile [gets $temp]
 
if {[
string first "isonline:" $zeile] != -} { set oldisonline $zeile }
 
if {[
string first "curlist:" $zeile] != -} { set oldcurlist $zeile }
 
if {[
string first "curhigh:" $zeile] != -} { set oldcurhigh $zeile }
 
if {[
string first "cursong:" $zeile] != -} { set oldsong $zeile }
 
if {[
string first "bitrate:" $zeile] != -} { set oldbitrate $zeile }
 
}
 
close $temp
 
}
 
 
 
 
 
if {[catch {
set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return 0} else {
 
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
 
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
 
puts $sock "Host: $streamip"
 
puts $sock "Connection: close"
 
puts $sock ""
 
flush $sock
 
while {[eof $sock] != 1} {
 
set bl [gets $sock]
 
if { [
string first "standalone" $bl] != -} {
 
set streamstatus "isonline: [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]"
 
set repl "curlist: [string range $bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $bl]]"
 
set curhigh "curhigh: [string range $bl [shrink + 15 "<PEAKLISTENERS>" 0 $bl] [shrink - 1 "</PEAKLISTENERS>" 0 $bl]]"
 
set currentl [string range $bl [shrink 18 "<CURRENTLISTENERS>" 0 $bl] [shrink "</CURRENTLISTENERS>" 0 $bl]]
 
set surl "serverurl: [string range $bl [shrink + 11 "<SERVERURL>" 0 $bl] [shrink - 1 "</SERVERURL>" 0 $bl]]"
 
set cursong "cursong: [string range $bl [shrink + 11 "<SONGTITLE" 0 $bl] [shrink - 1 "</SONGTITLE>" 0 $bl]]"
 
set songurl [string range $bl [shrink "<SONGURL>" 0 $bl] [shrink "</SONGURL>" 0 $bl]]
 
set bitrate "bitrate: [string range $bl [shrink + 9 "<BITRATE>" 0 $bl] [shrink - 1 "</BITRATE>" 0 $bl]]"
 
set stitle "stitle: [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]"
 
set sgenre "sgenre: [string range $bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]"
 
}}
 
close $sock
 
}
 
 
 
set temp [open "isonline" w+]
 
puts $temp "$streamstatus\n$repl\n$curhigh\n$cursong\n$bitrate \n$stitle\n$sgenre\n$surl"
 
close $temp
 
if {$announce == } {
 
if {
$streamstatus == "isonline: 0" && $oldisonline == "isonline: 1"} {
 
poststuff privmsg chan none $offlinetext
 
if {$doalertadmin == "1"} { sendnote domsen $alertadmin "radio is now offline" }
 
if {
$urltopic == 1} { poststuff topic chan none $offlinetopic }
 
}
 
if {
$streamstatus == "isonline: 1" && $oldisonline == "isonline: 0" } {
 
if {
$sgenre != ""} {
 
set sgenre " ([lrange $sgenre 1 [llength $sgenre]] )"
 
}
 
poststuff privmsg chan none "$onlinetext"
 
if {$urltopic == 1} { poststuff topic chan none "$onlinetopic}
 
}}
 
if {(
$tellusers == 1) && ($streamstatus == "isonline: 1") && ($oldcurhigh != "curhigh: 0") } {
 
if {
$oldcurhigh != $curhigh} {
 
poststuff privmsg chan none "new listener peak: [lindex $curhigh 1]"
 
}
 
if {
$oldcurlist != $repl} {
 
poststuff privmsg chan none "1Şu anda radyo rotasızı ($currentl) kişi dinlemektedir."
 
}}
 
if {(
$tellsongs == 1) && ($oldsong != $cursong) && ($streamstatus == "isonline: 1") } {
 
if {
$songurl != ""} { set songurl " ($songurl)"}
 
regsub -all "&#x3C;" $cursong "<" cursong
 
regsub 
-all "&#x3E;" $cursong ">" cursong
 
regsub 
-all "&#x26;" $cursong "+" cursong 
 
regsub 
-all "&#x22;" $cursong "\"" cursong
 
regsub 
-all "&#x27;" $cursong "'" cursong
 
regsub 
-all "&#xFF;" $cursong "" cursong
 
regsub 
-all "&#xB4;" $cursong "´" cursong
 
regsub 
-all "&#x96;" $cursong "-" cursong
 
regsub 
-all "&#xF6;" $cursong "ö" cursong
 
regsub 
-all "&#xE4;" $cursong "ä" cursong
 
regsub 
-all "&#xFC;" $cursong "ü" cursong
 
regsub 
-all "&#xD6;" $cursong "Ö" cursong
 
regsub 
-all "&#xC4;" $cursong "Ä" cursong
 
regsub 
-all "&#xDC;" $cursong "Ü" cursong
 
regsub 
-all "&#xDF;" $cursong "ß" cursong
 
putlog $cursong
 
poststuff privmsg chan none 
"7-1Yayın Yapan DJ:12 /sgenre/ 1Sıradaki Parça:12  [lrange $cursong 1 [llength $cursong]]$songurl 1Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls 1 link adresine tıklayınız!"
 
}
 
 
 
if {(
$tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
 
poststuff privmsg chan none "7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
}}} 


AsiL 16 Aralık 2007 21:51

Cevap: Tcl Arşivi
 
Bad Nick

PHP- Kodu:

###############################################################################
########### Bad nick Protection by Prince_of_the_net ############
###############################################################################
#While I am in my channel I have seen quite a few people joining with irrtating
#or offensive nicks.This script will teach thoes lamers a lesson by kicking and
#optionally banning them.Like my other scripts,you need to load my counter
#script (counter.tcl,available at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set bnick 
{
"*fuck*" 
"*rape*" 
"*fuk*" 
"*badwa" 
"*phudi*" 
"*fudi" 
"*pussy*" 
"*boobs*" 
"*porn*" 
"*p0rn*"
}
#Set this to the time for which you would like to place a bad nick host on ban.
#0 makes the ban permanent.(Not recommended)
set bnick_bantime 30
#Set this to the time after which you would like to reset the timer for the
#bad nick.
set bnick_reset 60
#Set this to the number of times you want to warn before you would like to
#place ban.0 gives no warnings.
set bnick_warnings 1
#Set this to the reason to be given while kicking the offender the first time.
set bnick_kick "Your nick offends me.Change it and come back."
#Set this to the reason while banning the user after bnick_warnings have expired
set bnick_ban "I think I told you to change ur nick.Now we don't need you."
# How do you want it to mask a ban? Default == 2
# 0 - *!user@host.domain
# 1 - *!*user@host.domain
# 2 - *!*@host.domain
# 3 - *!*user@*.domain
# 4 - *!*@*.domain
# 5 - nick!user@host.domain
# 6 - nick!*user@host.domain
# 7 - nick!*@host.domain
# 8 - nick!*user@*.domain
# 9 - nick!*@*.domain
# You can also specify a type of 10 to 19 which correspond to masks 0 to 9, but
# instead of using a * wildcard to replace portions of the host.domain, it uses ?
# wildcards to replace the numbers in the address.
set bnick_ban_type 12
###############################################################################
## You can edit below this but dont mail me if things start acting weird :Ş ##
###############################################################################
bind join - * bnick:check
bind nick 
- * bnick:check
proc bnick
:check {nick uhost hand chan {newnick ""}} {
global 
logo bnicks bnick_bantime bnick bnick_reset bnick_warnings bnick_kick bnick_ban bnick_ban_type
if {$newnick == ""} {set newnick $nick}
foreach 
bword [split $bnick "\n"] { 
if {[
regexp -nocase $bword $newnick] && [botisop $chan]} {
if {![
info exists bnicks($uhost)]} {
set bnicks($uhost1
putkick $chan $newnick 
"$bnick_kick [count_update 0] $logo"
timer $bnick_reset "unset bnicks($uhost)"
putlog "Warned and kicked $newnick on $chan for using bad nicks."
puthelp "NOTICE $newnick :Change your nick before you come to $chan.The next time I catch you using bad nicks, I will ban you. $logo"
} {
if {
$bnicks($uhost) < $bnick_warnings} {
incr bnicks($uhost)
bnick:resettimer "bnicks($uhost)"
timer $bnick_reset "unset bnicks($uhost)"
putkick $chan $newnick "Warning $bnicks($uhost) for using bad nicks.Be careful I am watching you... [count_update 0] $logo"
puthelp "NOTICE $newnick :Join $chan with a bad nick for [expr $bnick_warnings - $bnick($uhost)] more time(s) and I will make sure you will join no more. $logo"
putlog "Warning $bnick($uhost) for $newnick on $chan for using bad nicks."
} {
unset 
bnicks($uhost)
bnick:resettimer "bnicks($uhost)"
newchanban $chan [bnick:masktype $nick!$uhost $bnick_ban_type"Bad Nick Protection" "$bnick_ban [count_update 1] $logo$$bnick_bantime
putkick $chan $newnick 
"$bnick_ban [count_update 1] $logo"
}
}
}
}
}
proc bnick:resettimer {reset} {
foreach 
time_check [string tolower [timers]] {
if {[
string match *$reset$time_check]} {killtimer [lindex [split $time_checkend]}
}
}
proc bnick:replace {string subs} {
if {[
llength $subs] == "1"} {set subs [lindex $subs 0]}
for {
set i 0} {[lindex $subs $i] != ""} {incr i 2} {
regsub -all -- [lindex $subs $i$string [lindex $subs [expr $i+1]] string
} ; return $string
}
proc bnick:masktype {uhost type} {
if {![
string match "*!*@*.*" $uhost]} {
set nick [lindex [split $uhost "!"0] ; set uhost "$nick![getchanhost $nick]"
if {$uhost == "$nick!"} {set type "return_nothing"}
}
switch -
exact $type {
{set ban "*[string range $uhost [string first ! $uhost] e]"}
{set ban "*!*[string trimleft [string range $uhost [expr [string first ! $uhost]+1] e] "~"]"}
{set ban "*!*[string range $uhost [string first @ $uhost] e]"}
{
set ident [string range $uhost [expr [string first $uhost]+1] [expr [string last $uhost]-1]]
set ban "*!*[string trimleft $ident "~"][string range [maskhost $uhost] [string first @ [maskhost $uhost]] e]"
}
{set ban "*!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"}
{set ban $uhost}
{
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range $uhost [string last "@$uhost] e]"
}
{
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range $uhost [string last "@$uhost] e]"
}
{
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
{
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
10 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!$ident$host"
} {set ban [bnick:masktype $uhost 0]}
}
11 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!*[string trimleft $ident "~"]$host"
} {set ban [bnick:masktype $uhost 1]}
}
12 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ban "*!*$host"
} {set ban [bnick:masktype $uhost 2]}
}
13 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {set ban [bnick:masktype $uhost 11]} {set ban [bnick:masktype $uhost 3]}
}
14 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {set ban [bnick:masktype $uhost 12]} {set ban [bnick:masktype $uhost 4]}
}
15 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest [string range $uhost 0 [expr [string last "@" $uhost]-1]]
set ban $rest$host
} {set ban [bnick:masktype $uhost 5]}
}
16 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!$uhost]-1]]!*[string trimleft [string range $uhost [expr [string first "!$uhost]+1] [expr [string last "@$uhost]-1]] "~"]"
set ban $rest$host
} {set ban [bnick:masktype $uhost 6]}
}
17 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {
set host [bnick:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!$uhost]-1]]!*"
set ban $rest$host 
} {set ban [bnick:masktype $uhost 7]}
}
18 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {set ban [bnick:masktype $uhost 16]} {set ban [bnick:masktype $uhost 8]}
}
19 {
set host [string range $uhost [string last "@" $uhoste]
if {[
bnick:findip [string range $host 1 e]] == "0"} {set ban [bnick:masktype $uhost 17]} {set ban [bnick:masktype $uhost 9]}
}
return_nothing {set ban ""}
default {
set ban "*!*[string range $uhost [string first "@$uhost] e]"}
}
set _nick [lindex [split $ban !] 0]
set _ident [string range $ban [expr [string first $ban]+1] [expr [string last $ban]-1]]
set _host [string range $ban [expr [string last $ban]+1e]
if {
$_ident != [set temp [string range $_ident [expr [string length $_ident]-9e]]} {
set _ident *[string trimleft $temp *]
}
if {
$_host != [set temp [string range $_host [expr [string length $_host]-63e]]} {
set _host *[string trimleft $temp *]
} ; return 
$_nick!$_ident@$_host
}
proc bnick:findip {args} {
catch {unset 
bnick_found_ip}
if {![
string match *.*.*.* $args]} {return 0}
foreach 
arg $args {
if {[
string match *.*.*.* $arg]} {
set bnick_testa [split $arg "."] ; set i 0
while {[llength $bnick_testa] != $i} {
set bnick_test [lrange $bnick_testa $i end]
if {[
string length [lindex $bnick_test 1]]<&& [string length [lindex $bnick_test 2]]<4} {
if {[
lindex $bnick_test 1] < 256 && [lindex $bnick_test 2] < 256 && [lindex $bnick_test 1] >= && [lindex $bnick_test 2] >= 0} {
set first "abcdefghi"
if {[string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 1]] <= && [string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 1]] >= 0} {
set first [string range [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 1end]
if {[
string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 2]] <= && [string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 2]] >= 0} {
set first [string range [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 2end]
if {[
string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 3]] <= && [string index [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 3]] >= 0} {
set first [string range [lindex $bnick_test 0] [expr [string length [lindex $bnick_test 0]] - 3end]
}
}
}
set second [lindex $bnick_test 1] ; set third [lindex $bnick_test 2] ; set fourth "abcdefghi"
if {[string index [lindex $bnick_test 30] <= && [string index [lindex $bnick_test 30] >= 0} {
set fourth [string index [lindex $bnick_test 30]
if {[
string index [lindex $bnick_test 31] <= && [string index [lindex $bnick_test 31] >= 0} {
set fourth $fourth[string index [lindex $bnick_test 31]
if {[
string index [lindex $bnick_test 32] <= && [string index [lindex $bnick_test 32] >= 0} {
set fourth $fourth[string index [lindex $bnick_test 32]
}
}
}
if {(
$first 256) && ($second 256) && ($third 256) &&
(
$fourth 256) && ($first 0) && ($second 0) &&
(
$third 0) && ($fourth 0) && ([string index $first 0] > 0) &&
([
string index $second 0] > 0) && ([string index $third 0] > 0) &&
([
string index $fourth 0] > 0)} {
if {[
info exists bnick_found_ip]} {
set bnick_found_ip "$bnick_found_ip $first.$second.$third.$fourth"
} {set bnick_found_ip $first.$second.$third.$fourth}
}
}
} ; 
incr i +1
}
}
} ; if {[
info exists bnick_found_ip]} {return $bnick_found_ip} {return 0}
}
putlog "Bad nick control v3.0 by \002Prince_of_the_net\002 \[Loaded\]"
###############################################################################
######################## END OF SCRIPT ##########################
############################################################################### 


AsiL 16 Aralık 2007 21:52

Cevap: Tcl Arşivi
 
Bad İdent

PHP- Kodu:

# $Id: badident.tcl, eggdrop-1.6.x 2004/5 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 Exp $
# Begin - Unacceptable User Ident, Bad Ident Kicker Script v1.65.b
# Script Version: 1.65.b
# Built Date: January 2004, Last Updated: 31st May 2004
# Copyright © 1999-2004 awyeah (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)
# TCL script was designed to use with eggdrop v1.5.x or higher
#########################################################################
#             Bad Ident Kicker Script v1.65.b               #
#                                # 
#                                  #
# Author: awyeah                     31st May 2004 #
# Email: 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
             Build version 1.65.b #
# Copyright © 2004 awyeah All Rights Reserved  
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set badidentchans 
"#mychannel"
#Set the *bad words* for the script to react on. 
#When users join a channel this script is activated 
#and their idents match this current world list, 
#they will be kicked/banned. (wildcards "*" are accepted)
#(Set/edit these words according to your needs)
#(I have already added some as examples)
set badidents {
"asshole"
"bitch"
"slut"
"cock"
"cunt"
"nigger"
"dickhead"
"hot*guy"
"faggot"
"prostitute"
"whore"
"lesbian"
"naked"
"xxx"
"horny"
"orgasm"
"bastard"
"hooker"
"rapist"
"orgy"
"penis"
"vagina"
"clit"
"cyber***"
"lesbian"
"prick"
"masturbate"
"masturbation"
"jackoff"
"blowjob"
"bigcock"
"bigdick"
"wetpussy"
"blow*job"
"superbitch"
"fuckwit"
"dumbfuck"
"fucknut"
"bi***ual"
"tran***ual"
"transvestite"
"homo***ual"
"lesbi"
"testicle"
"***ual"
"asswipe"
"jackass"
"dumbass"
"intercourse"
"clitoris"
"incest"
"nigga"
"nigger"
"molest"
"breast"
"boobs"
"fuck"
"fuckers"
"fucking"
"***ual"
"*****"
"condom"
"erect"
"erection"
"phuck"
"masturbating"
"motherfucker"
"oral***"
"anal***"
"wtf"
"orgy"
"stfu"
}

#Set the flags for bot owners, masters, ops
#and users which to exempt from the script.
#(Usage: m, n, o, or "mnf", "fbo" etc)
set badidentexempt "mnof|mnof"
#For how long you wish (in minutes) to ban the 
#user with the bad ident. (mins)
set badidbantime 30

###############################################################################
### Don't edit anything else from this point onwards, even if you know tcl! ###
###############################################################################
bind join - * join:badident
proc join
:badident {nick host hand chan} {
 global 
botnick badidents badidentchans badidentexempt badidbantime
  
if {(([lsearch -exact [string tolower $badidentchans] [string tolower $chan]] != -1) || ($badidentchans == "*")) && ($nick != $botnick)} {
    foreach 
badident [string tolower $badidents] {
     
set badidentban1 "*!*$badident*@*"
     
set badidentban2 "*!*@[lindex [split $host @] 1]"
     
set userident "[string trimleft [string tolower [lindex [split $host "@"] 0]] "~"]"
    
if {[string match *$badident* [string tolower $userident]]} {
      if {([
botisop $chan]) && (![isop $nick $chan]) && (![isvoice $nick $chan]) && (![matchattr $hand $badidentexempt $chan]) && ([onchan $nick $chan])} {
   
putquick "MODE $chan -o+bb $nick $badidentban1 $badidentban2"
        
putquick "KICK $chan $nick :0,1 Bad User Ident Kick 2,0 - Unacceptable *User Ident* 12detected. Please change your 2'IDENT' 12to a suitable one and then 2rejoin back."
        
timer $badidbantime "pushmode $chan -b $badidentban2"
        
return 0
        
}
      }
    }
  }
}
# (ain't i an asskicker?...)

putlog "Bad Ident Kicker Script v1.65.ab by \002awyeah (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)\002 -=Loaded=-"
putlog "*ENABLED* Bad Ident Kicker Script on:\002 $badidentchans"
return 


AsiL 16 Aralık 2007 21:54

Cevap: Tcl Arşivi
 
Kanal Limit


PHP- Kodu:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Binds                                                               
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind time "* * * * *" time:ChanLimit
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# time:ChanLimit start                                                   
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc time:ChanLimit {min hour day month year} {
    foreach 
chan [channels] {
 
set newlimit [expr [llength [chanlist $chan]] + 15]
 
set currentlimit [currentlimit $chan]
 if {
$currentlimit < [expr $newlimit 1] || $currentlimit > [expr $newlimit 1]} {
     
putserv "mode $chan +l $newlimit"
 
}
    }    
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# time:ChanLimit end                                                     
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# currentlimit start                                                   
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc currentlimit {chan} {
    
set currentmodes [getchanmode $chan]
    if {[
string match "*l*" [lindex $currentmodes 0]]} {
 return [
lindex $currentmodes end
    }
    return 
0
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# currentlimit end                                                    
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# putlog                                                              
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
putlog "mirchane.com chanlimit" 


AsiL 16 Aralık 2007 21:57

Cevap: Tcl Arşivi
 
Join / Part

PHP- Kodu:

  bind part - * jpcheck
#------------------------------------------------------------------------------------------------------------
# This Proc kicks anyone who starts begging within 30 seconds of joining the channel
#------------------------------------------------------------------------------------------------------------
proc jpcheck {nick uhost hand chan rest} {
    global 
approved_chans jpmsg jpbantime jpwarnings nojpchannels
    set chan 
[string tolower $chan]
    
# If the request comes from an approved channel, continue on to fulfill the request
    
if {[string first $chan " $approved_chans] != -1} { 
        if {[
lsearch -exact $nojpchannels [string tolower $chan]] >= 0} {return 0}
 if {[
matchattr $hand o]} {return 0}
 if {[
matchattr $hand v]} {return 0}
 if {[
matchattr $hand f]} {return 0}
 if {[
matchattr $hand b]} {return 0}
 if {[
getchanjoin $nick $chan] == 0} {return 0}
 if [
expr [unixtime] - [getchanjoin $nick $chan] > 8] {return 0}
 
putlog "\0033 AutoBanning $nick - Revolving Door ban"
 
set mask [getmask $nick $chan]
 
warnban $nick $mask $chan $jpbantime $jpwarnings $jpmsg
    
}



AsiL 16 Aralık 2007 21:59

Cevap: Tcl Arşivi
 
Flood Koruma

PHP- Kodu:

##
# Ban Flooders v2.1.3
#  by MC_8 - Carl M. Gregory <
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
>
#  This script will only run on eggdrop 1.5.5 or greater.
#
#    R.I.P. Mom, To always be remembered; Nancy Marie Gregory.
#
# My Website - http://mc.purehype.net/
# Have a bug?  http://mc.purehype.net/bugzilla/
##
##
# This script will automatically kick/ban a public/msg/ctcp flooder for x
# minute(s) from all channels there (if bot is op'd).  Flood settings are
# defined by `.chaninfo''s flood setting.  You set the flood settings via
# `.chanset'.
#
# This script excels in takeover (deop flood) prevention (especially if the
# script runs on more than 1 bot and the bot's are linked.
#
# For good flood protection, here are a few pointers:
#   - Tweak your flood settings via `.chanset' just right... if the flood
#     settings are to lenient, the script will do you no good.  The settings are
#     really up to you, different channels require different settings.  I.e.
#     This if my flood-deop, 3:10
#   - Use other scripts as well; mc.banflooders does excel in things like
#     takeover attempt (deop floods).  But other scripts do things this one
#     doesn't.
#     Recommended scripts, and why:
#       o sentinel (by slennox), this script is great for protecting the channel
#         from mass flood attacks.  As mc.banflooders (due to how it feeds from
#         eggdrop's flood-types) only watches floods on a per person basis.
#       o mc.limit (by MC_8), this script will further protection from large
#         floodnets.  It keeps a limit on the channel just above the number of
#         people in the channel and updates it slowly ... making it hard for a
#         large floodnet to join really fast.
#       o repeat (by slennox), this serves 2 purposes;
#         1) Removing those pesky people that repeat.
#         2) Stop large floodnets from doing a repeat floods.
#       o "+bitch", this isn't a script; it's a core function of eggdrop.  You
#         set it via `.chanset'.  This ensures that ONLY registered ops (users
#         added to the bot with +o) get ops, and no one else.
#       o superbitch (by slennox), this is pretty much the same as +bitch, but
#         instead of just deop'n the person that isn't a registered op, it will
#         also deop the person that op'd that non-registered person.  Some say
#         that this is excessive, but I use it and like it.
##
##
# Configuration
##
#
# What flagged users are exempt from this script?  Set to "" to exempt no-one.
# Flag syntax: <global>|<channel>
set mc_bf(exempt""
# [0=no/1=yes] Do you want to exempt op'd users?
set mc_bf(exempt:op0
# [0=no/1=yes] Do you want to exempt voice'd users?
set mc_bf(exempt:voice0
# If a user is found flooding, how long (in min.s) do you want to ban the user?
#   -2 = Permanent ban (no expiration in bot records).
#   -1 = Will not ban (no ban, disable banning).
#    0 = Performs a server ban, but doesn't store the ban in the bot's banlist.
#   Any number greater than 0 will be the time in which the ban will expire.
#   All ban's will be channel ban's, if you want it to be global then put a '@'
#   in front of the time.
#     Example: set mc_bf(bantime) @1400
#   Also, if you want the ban to be 'sticky' (read '.help stick' in the bot's
#   dcc console), then append the time with a '!'.
#     Example: set mc_bf(bantime) 1400!
#     Example: set mc_bf(bantime) @1400!
set mc_bf(bantime"@43200"

# What do you want the ban message to be?
# Replacment variables are:
#  %nick = IRC Nickname of the flooder.
#  %ident = Ident of the flooder.
#  %host  = Host of the flooder.
#  %hand  = Handle of the flooder.
#  %chan  = Channel where the flood happened (or "me" if personal flood).
#  %type  = What type of flood (ctcp/ pub/ msg/ join).
set mc_bf(banmsg"Not smart to %type flood %chan."
# [0=no/1=yes] If a deop flood is detected, do you want the bot to try and de
# synch it's self (-o+o self self)?  This is good to ensure that all the linked
# irc servers know that the bot is an op.  Please note that some IRC servers
# such as EfNet will not process this correctly and in doing so, the bot will
# loose it's ops.  This feature does work on Undernet.
set mc_bf(desynch1
# [0=no/1=yes] If a deop flood is detected, do you want to set the channel to
# +simk?  The key will be a random key.
set mc_bf(deop:enforce:chmod1
# How long do you want to limit the key to.  Before this was set to 24 and could
# not be changed, but I found that undernet has a bug that allows 24 but only
# lets you unset at 23 (so keys could not be removed).  If your on undernet, I
# suggest you set this to 23.  Any other network, I do not know -- do a long +k
# in your channel then remove it to see what your length limit is.
set mc_bf(key:limit23
# If a deop flood is detected and the above, deop:enforce:chmod, is enabled; how
# long (in sec.s) do you want to wait before unlocking the channel?  Assuming
# the bot has recovered ops by that time.  Set this to 0 if you want don't want
# the bot to unlock the channel.
set mc_bf(deop:enforce:time15
# [0=no/1=yes] If a deop flood is detected, do you want to have this script to
# deop all non registered ops (not +o in userfile)?
set mc_bf(bitch1
# [0=no/1=yes] If a deop flood is detected, do you want to utilize the botnet?
# If other bots using this script are op'd and are setup to receive these
# requests, it could greatly improve your possibility of recovering from a
# takeover attempt.  Ideal example, 2 bots, 1 is lagged by a couple of seconds
# therefor doesn't see the deop flood yet, so it can properly kick/ban/reop
# effectively.
set mc_bf(deop:bottx1
# [0=no/1=yes] Do you want to receive botnet help requests?  Read the above
# setting, deop:bottx, for a better explanation.
set mc_bf(deop:botrx1
# If a public flood is detected, what mode change do you want to perform on the
# channel?  Set this to "" to disable.
set mc_bf(pub:enforce:chmod"+mi"
# If a public flood is detected and the above, pub:enforce:chmod, is enabled;
# how long (in sec.s) do you want to wait before removing the mode change?  Set
# this to 0 if you want don't want the bot to remove the mode change.
set mc_bf(pub:enforce:time15
# [0=no/1=yes] If any flood is detected, do you want this script to 'boot' the
# user from the botnet's partyline (if found)?
set mc_bf(boot1
# How do you want to mask how the flooders get banned?
#      0 - *!user@host.domain
#      1 - *!*user@host.domain
#      2 - *!*@host.domain
#      3 - *!*user@*.domain
#      4 - *!*@*.domain
#      5 - nick!user@host.domain
#      6 - nick!*user@host.domain
#      7 - nick!*@host.domain
#      8 - nick!*user@*.domain
#      9 - nick!*@*.domain
#     You can also specify a type of 10 to 19 which correspond to masks 0 to 9.
#     But if the host.domain is a;
#       hostname = Instead of using a * wildcard to replace portions of the
#                  host.domain, it replaces the numbers in the host.domain with
#                  a '?' (question mark) wildcard.
#       ip       = It will mask as normal, with no '?' (question mark)
#                  replacements as does hostname.
set mc_bf(bantype2

## SVS Client (Script Version Service) v3.1.1 ##
# Once a day, the SVS Client will connect to MC_8's SVS Server to determine if
# there is a newer version of this script available.  This will only notify
# users of the new version via a note.  It's up to the owner of the bot to
# download, adjust settings then install the script.
# If a newer version is found, whom do you want to notify?  The notification is
# sent via a note.  Seperate each user with a space, or set this to "" to
# disable SVS notification.  For those whom know TCL; do not put this in list
# format, keep it in string format.
set mc_bf(svs:notify"MC_8"
# Would you like to restrict the concept of a new version to stable releases
# only?
#   0 = No, inform of both stable and beta release versions.
#   1 = Yes, inform of only stable release versions.
set mc_bf(svs:mode0
#
##
##
# Done with configurations, do not edit past here unless you know TCL.
##
#Script:mc_bf
set mc_bf(script)      "Ban Flooders"
set mc_bf(version)     "v2.1.3"
set mc_bf(svs:script)  "banflooders"
set mc_bf(svs:version"002001003000"
set mc_bf(svs:server)  "mc.svs.purehype.net"
set mc_bf(svs:port)    "81"
set mc_bf(svs:get)     "/index.tcl"
set mc_bf(svs:query)   "svs=$mc_bf(svs:script)&version=$mc_bf(svs:version)"
catch {unset temp}
if {![
info exists numversion] || ($numversion "1050500")} {
  
set temp(tag"$mc_bf(script) $mc_bf(version)"
  
putlog "$temp(tag) by MC_8 will only work on eggdrop 1.5.5 or greater."
  
putlog "$temp(tag)  will not work with eggdrop $version."
  
putlog "$temp(tag)  not loaded."
  
return 1
}

# Error system, v3.0
proc mc:bf:error {command error arg} {
  global 
mc_bf version lastbind errorInfo
  putlog 
"Error in script $mc_bf(script) $mc_bf(version)."
  
putlog "    Error System: v3.0"
  
putlog "       Last Bind: [expr {[info exists lastbind]?$lastbind:"-NULL-"}]"
  
putlog "         Command: $command"
  
putlog "       Arguments: $arg"
  
putlog "       Error Msg: $error"
  
putlog "    Egg. Version: [expr {[info exists version]?$version:"-NULL-"}]"
  
putlog "     TCL Version: [info tclversion]"
  
putlog "  TCL Patchlevel: [info patchlevel]"
  
putlog "*** Please submit this bug so MC_8 can fix it.  Visit"
  
putlog "*** http://mc.purehype.net:81/bugzilla/ to properly report the bug."
  
putlog \
    
"*** Please include ALL info. in the bug report, including the next(s)."
  
error $errorInfo
}
proc mc:bf:errchk {command arg} {
  if {![catch {eval 
$command $arg} return]} {return $return}
  
mc:bf:error $command $return $arg
  
return 0
}
# ^
bind flud - * mc:bf:flud
proc mc
:bf:flud {nick uhost hand type chan} {
  return [
mc:bf:errchk mc:bf:flud_[list $nick $uhost $hand $type $chan]]
}
proc mc:bf:flud_ {nick uhost hand type chan} {
  global 
mc_bf botnick use-silence ignore-time
  
if {$mc_bf(exempt) == ""} {set temp() 0} else {set temp() 1}
  if {
$chan == "*"} {
    
set chan me
    set exempt 
[expr ([matchattr $hand $mc_bf(exempt)] && $temp())]
  } else {
    
set exempt [expr ([matchattr $hand $mc_bf(exempt$chan] && $temp()) || \
                     ([
isop $nick $chan] && $mc_bf(exempt:op)) || \
                     ([
isvoice $nick $chan] && $mc_bf(exempt:voice))]
  }; if {
$exempt} {return 0}
  
putlog "$mc_bf(script):  Detected $nick ($uhost$type flooding $chan."
  
set banmask [mc:bf:maskhostbytype $nick!$uhost $mc_bf(bantype)]
  if {
$type == "deop"} {
# Xmit to botnet
    
if {$mc_bf(deop:bottx)} {
      
set buffer[list [string tolower $nickdeop [string tolower $chan]]
      if {![
info exists mc_bf(:buffer:$buffer)]} {
        
putallbots[list mc.banflooders $nick $uhost $hand $type $chan $botnick]
        
set mc_bf(:buffer:$buffer) [clock seconds]
        
# 10 seconds should be enough for botnet lag.
        
utimer 10[list unset mc_bf(:buffer:$buffer)]
      }
    }
# Resynch self
    
if {$mc_bf(desynch)} {putquick "MODE $chan -o+o $botnick $botnick-next}
# Ban and deop flooder
    
putquick "MODE $chan -o+b $nick $banmask-next
# Lock the channel
    
if {$mc_bf(deop:enforce:chmod)} {
      
set key [encrypt [rand 9999999999] [rand 9999999999]]
      
set key [string range $key 0 [expr $mc_bf(key:limit)-1]]
      
putquick "MODE $chan +ikms $key-next
      
if {$mc_bf(deop:enforce:time)} {
        
set temp() "[list pushmode $chan -i]\;[list pushmode $chan -k $key]\;"
        
append temp() "[list pushmode $chan -m];[list pushmode $chan -s]"
        
utimer $mc_bf(deop:enforce:time$temp()
      }
    }
# Do bitch on channel
    
if {$mc_bf(bitch)} {
      foreach 
user [chanlist $chan -o] {
        if {![
isbotnick $user]} {pushmode $chan -o $user}
      }
      
flushmode $chan
    
}
  } elseif {
$type == "pub"} {
    if {
$mc_bf(pub:enforce:chmod) != ""} {
      
putquick "MODE $chan $mc_bf(pub:enforce:chmod)" -next
      
if {$mc_bf(pub:enforce:time)} {
        
set temp() \
          [
scan "$mc_bf(pub:enforce:chmod)\015" "%s %\[^\015\]" mode end]
        if {
$temp() == "1"} {
          
set end ""
        
}
        if {[
regexp -- {\+([a-zA-Z0-9]*)[^a-zA-Z0-9]?} $mode temp() pmode]} {
          
set pmode -$pmode
        
} else {set pmode ""}
        if {[
regexp -- {\-([a-zA-Z0-9]*)[^a-zA-Z0-9]?} $mode temp() nmode]} {
          
set nmode +$nmode
        
} else {set nmode ""}
        
utimer $mc_bf(pub:enforce:time) \[list putserv "MODE $chan ${pmode}${nmode} $end"]
      }
    }
  }
  
scan $uhost {%[^@]@%sident host
  set time $mc_bf
(bantime)
  if {[
string match *! $time]} {
    
set option "sticky"
    
set time [string trimright $time !]
  } else {
set option "none"}
  if {[
string match @* $time]} {
    
set global 1
    set time 
[string trimleft $time @]
  } else {
set global 0}
  
set reason [mc:bf:replace $mc_bf(banmsg)[list %nick $nick \
                                                 %
ident $ident \
                                                 %
host $host \
                                                 %
hand $hand \
                                                 %
chan $chan \
                                                 %
type $type]]
  if {
$time != "-1"} {
    if {
$time == ""} {set time 0}
    if {
$chan == "me"} {
      
set temp(time$time
      
if {$temp(time) == "-2"} {set temp(time0} \
      elseif {
$temp(time) == "0"} {set temp(time) ${ignore-time}}
      if {![
isignore $banmask]} {
        if {!
$temp(time)} {set temp(duration"permanent"} \
        else {
          
# When wrighting, the maximum number [unixtime] can represent is
          # 1999999999.  This may need adjusting if eggdrop decides to go
          # higher.
          
set limit [expr (1999999999-[clock seconds])/60] ;# Minutes
          
if {$temp(time) > $limit} {
            
set temp(1"Timer number too high"
            
set temp(2"converting; $temp(time) -> $limit"
            
putloglev d "$mc_bf(script): $temp(1), $temp(2)"
            
set temp(time$limit
          
}
          
set temp(duration) [duration [expr $temp(time)*60]]
        }
        
putlog "$mc_bf(script):  Ignoring $nick via $banmask ($temp(duration))."
        
newignore $banmask BanFlood $reason $temp(time)
        
# Some bot version, forgot which, had a problem with removing the
        # silence after the ignore's time was up.  This is a fix.
        
if {([info exists {use-silence}]) &&
            (${use-
silence}) &&
            (
$temp(time))} {
          
timer $temp(time)[list putserv "SILENCE -$banmask"]
        }
      }
    } else {
      
set temp(time$time
      
if {$temp(time) == "0"} {
        if {
$global} {set temp(channels) [channels]} \
        else {
set temp(channels)[list $chan]}
        
set temp(lchannels""
        
foreach temp(channel$temp(channels) {
          if {[
botisop $temp(channel)]} {
            
set temp(found0
            set temp
(banmask) [string tolower $banmask]
            foreach 
temp(ban) [chanbans $temp(channel)] {
              if {[
string tolower $temp(ban)] == $temp(banmask)} {
                
set temp(found1
                
break
              }
            }
            if {!
temp(found)} {
              
pushmode $temp(channel) +b $banmask
              lappend temp
(lchannels$temp(channel)
            }
          }
        }
        if {[
llength $temp(lchannels)]} {
          
set temp() "[join $temp(lchannels) ""] (server ban)"
          
putlog "$mc_bf(script):  Banned $nick via $banmask on $temp()."
        
}
      } else {
        if {![
isban $banmask $chan]} {
          if {
$temp(time) == "-2"} {set temp(time0}
          if {!
$temp(time)} {set temp(duration"permanent"} \
          else {
            
# When wrighting, the maximum number [unixtime] can represent is
            # 1999999999.  This may need adjusting if eggdrop decides to go
            # higher.
            
set limit [expr (1999999999-[clock seconds])/60] ;# Minutes
            
if {$temp(time) > $limit} {
              
set temp(1"Timer number too high"
              
set temp(2"converting; $temp(time) -> $limit"
              
putloglev d "$mc_bf(script): $temp(1), $temp(2)"
              
set temp(time$limit
            
}
            
set temp(duration) [duration [expr $temp(time)*60]]
          }
          
set temp(1"Added internal ban to"
          
set temp(2"banlist; $nick via $banmask ($temp(duration))."
          
if {$global} {
            
newban $banmask BanFlood $reason $temp(time$option
            putlog 
"$mc_bf(script):  $temp(1) global $temp(2)"
          
} else {
            
newchanban $chan $banmask BanFlood $reason $time $option
            putlog 
"$mc_bf(script):  $temp(1) $chan's $temp(2)"
          
}
        }
      }
    }
  }
  if {
$mc_bf(boot)} {
    
set ban $host
    
foreach temp() [whom *] {
      
set fhand [lindex $temp() 0]
      
set fbot [lindex $temp() 1]
      
set fuhost [lindex $temp() 2]
      
set fnick [hand2nick $fhand]
      
scan $fuhost {%[^@]@%sfident fhost
      
if {[validuser $fhand]} {
        if {
$mc_bf(exempt) == ""} {set temp() 0} else {set temp() 1}
        if {
$chan == "me"} {
          
set exempt [expr ([matchattr $fhand $mc_bf(exempt)] && $temp())]
        } else {
          
set exempt [expr ([matchattr $fhand $mc_bf(exempt$chan] && \
                            
$temp()) || \
                           ([
isop $fnick $chan] && $mc_bf(exempt:op)) || \
                           ([
isvoice $fnick $chan] && $mc_bf(exempt:voice))]
        }
      } else {
set exempt 0}
      if {(
$exempt) ||
          ([
string tolower $host] != [string tolower $fhost])} {continue}
      
boot $fhand@$fbot $reason
    
}
  }; return 
1
}
bind bot mc.banflooders mc:bf:bot
proc mc
:bf:bot {from command arg} {
  return [
mc:bf:errchk mc:bf:bot_[list $from $command $arg]]
}
proc mc:bf:bot_ {from command arg} {
  global 
botnick mc_bf
  set nick 
[lindex $arg 0]; set uhost [lindex $arg 1]; set hand  [lindex $arg 2]
  
set type [lindex $arg 3]; set chan  [lindex $arg 4]; set ifrom [lindex $arg 5]
  
set buffer[list [string tolower $nick] [string tolower $type] \
    [
string tolower $chan]]
  if {(![
validchan $chan]) || (![onchan $botnick $chan]) ||
      ([
info exists mc_bf(:buffer:$buffer)])} {return 0}
  
set mc_bf(:buffer:$buffer) [clock seconds]
  
# 10 seconds should be enough for botnet lag.
  
utimer 10[list unset mc_bf(:buffer:$buffer)]
  if {([
onchan $ifrom $chan]) && ($type == "deop") && ($mc_bf(desynch))} {
    
putquick "MODE $chan -o+o $ifrom $ifrom-next
  
}
  
set temp() "$type flood detected!  Botnet relay"
  
append temp() " from $from ($ifrom).  Processing..."
  
putlog "$mc_bf(script):  $temp()"
  
mc:bf:flud $nick $uhost $hand $type $chan
}
## More Tools quick procs.
## -- http://mc.purehype.net:81/script_info.tcl?script=moretools
# mc:bf:badargs <args> <min_llength> <max_llength|end> <argNames>
#     version:
#       v1.0
proc mc:bf:badargs {{args ""}} {
  if {[
llength $args] < 4} {
    
error {
  
wrong # args: should be "mc:bf:badargs args min_llength max_llength argNames"
    
}
  }
  
set index 0
  
foreach varName[list args min max names] {
    
set check_$varName [lindex $args $index]
    
incr index
  
}
  if {[
regexp -- {([^0-9])} $check_min -> bad]} {
    
error "bad number \"$bad\" in: $check_min"
  
}
  if {[
regexp -- {([^0-9])} $check_max -> bad] && ($check_max != "end")} {
    
error "bad number \"$bad\" in: $check_max"
  
}
  
# Make sure $check_args is in list format, if not then make it so.
  # Were not going to use 2list here, don't want to evoke a 'too many nested
  # calls to Tcl_EvalObj' error since '2list' uses on this proc.
  
if {[catch {llength $check_argsllength]} {
    
set check_args [split $check_args]
    
set llength $check_args
  
}
  if {(
$llength $check_min) ||
      ((
$llength != "end") && ($llength $check_max))} {
    if {[
info level] == "1"} {return 1}
    
error "wrong # args: should be \"[lindex [info level -1] 0] $check_names\""
  
}; return 0
}
# mc:bf:unlist <argsList> [varName1] [varName2] ... [varNameN]
#     version:
#       v1.0
proc mc:bf:unlist {{args ""}} {
  
mc:bf:badargs $args 1 end "argsList ?varName varName ...?"
  
set argList [lindex $args 0]
  
set argList [expr {([catch {llength $argList}])?[split $argList]:$argList}]
  
set argNames [lrange $args 1 end]
  if {![
llength $argNames]} {
    return [
expr {(![catch {llength $argList}])?
      [
join $argList]:$argList}]
  }
  for {
set index 0} {$index < [llength $argNames]} {incr index 1} {
    
set argName     [lindex $argNames $index]
    
set argListItem [lindex $argList  $index]
    
set argName_ [expr {([catch {llength $argName}])?[split $argName]:$argName}]
    
set setTo   [lindex $argName_ 1]
    
set argName [lindex $argName_ 0]
    if {
$argName == ""} {continue}
    
upvar 1 $argName var
    if {[
expr $index+1] > [llength $argList]} {
      if {[
llength $argName_] == "2"} {set var $setTo}
    } else {
      if {
$argName == "args"} {
        
set var [lrange $argList $index end]
        
incr index [expr [llength $var]-1]
      } else {
set var $argListItem}
    }
  }; return 
$index
}
# 2list <text>
#     version:
#       v1.0
proc mc:bf:2list {{args ""}} {
  
mc:bf:badargs $args 1 1 "text"
  
mc:bf:unlist $args text
  
return [expr {([catch {llength $text}])?[split $text]:$text}]
}
# findnicks <nick!ident@host.domain> [channel]
#     version:
#       v2.0
proc mc:bf:findnicks {{args ""}} {
  
mc:bf:badargs $args 1 2 "nick!ident@host.domain ?channel?"
  
mc:bf:unlist $args hostmask channel
  set hostmask 
[string tolower $hostmask]
  if {
$channel == ""} {set channels [channels]} \
  elseif {![
validchan $channel]} {error "no such channel record"} \
  else {
set channels[list $channel]}
  
set origional_channel $channel
  set 
list ""
  
foreach channel $channels {
    foreach 
user [chanlist $channel] {
      
set nuhost [string tolower $user![getchanhost $user $channel]]
      if {[
string match $hostmask $nuhost]} {
        
lappend list $user[expr {($origional_channel != "")?"":"@$channel"}]
      }
    }
  }; return 
$list
}
# maskhostbytype <nick!ident@host.domain> [type]
#     version:
#       v2.1
proc mc:bf:maskhostbytype {{args ""}} {
  
mc:bf:badargs $args 1 2 "nick!ident@host.domain ?type?"
  
mc:bf:unlist $args nuhost type
  set type 
[expr {($type == "")?5:$type}]
  if {![
regexp -- {^1?[0-9]$} $type]} {
    
set valid "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 {or 19}"
    
error "bad type \"$type\": must be [join $valid ""]"
  
}
  
# Define the maximum length the ircd allows for an ident.  Standard is 9,
  # however I made it to a variable incase someone wants to change it up.
  
set ident_max-length 9
  
# Define the maximum length the ircd allows for a hostname/ ip.  Standard is
  # 63, however I made it to a variable incase someone wants to change it up.
  
set host_max-length 63
  
if {![regexp -- {^(.*[^!])!((.*)@(.*))$} $nuhost -> nick uhost ident host]} {
    
error "invalid nick!ident@host.domain: $nuhost"
  
}
  
set maskhost 1
  
if {[string length $type] == "2"} {
    
# Type must be 10-19.
    
if {[info tclversion] < "8.1"} {
      
set re_syntax_1 {([12][0-9][0-9]|[1-9][0-9]|[1-9])}
      
set re_syntax_2 {([12][0-9][0-9]|[1-9][0-9]|[0-9])}
    } else {
      
set re_syntax_1 {([12]\d{2}|[1-9][0-9]|[1-9])}
      
set re_syntax_2 {([12]\d{2}|[1-9][0-9]|[0-9])}
    }
    
set re_syntax ^$re_syntax_1\\.$re_syntax_2\\.$re_syntax_2\\.$re_syntax_2\$
    if {![
regexp -- $re_syntax $host]} {
      
regsub -all -- {[0-9]} $host host
      set maskhost 0
    
}; set type [string index $type 1]
  }
  
# Previous version used regexp instead of these string matches.  String match
  # in this case is ~3 microseconds faster.
  
if {[string match {[0-4]} $type]} {set nick *}
  if {[
string match {[2479]} $type]} {set ident *}
  if {[
string match {[1368]} $type]} {regsub -- {^~?(.*)$} $ident *\\1 ident}
  if {[
string match {[3489]} $type] && $maskhost} {
    
set host [lindex [split [maskhost $host] @] end]
  }
  if {[
set length [string length $ident]] > ${ident_max-length}} {
    
set ident *[string range $ident [expr $length-${ident_max-length}] end]
  }
  if {[
set length [string length $host]] > ${host_max-length}} {
    
set host *[string range $host [expr $length-${host_max-length}] end]
  }
  return 
$nick!$ident@$host
}
# replace [switches] <text> <substitutions>
#     version:
#       v1.3
proc mc:bf:replace {{args ""}} {
  
mc:bf:badargs $args 2 4 "?switches? text substitutions"
  
set switches ""
  
for {set i 0} {[string match -* [set arg [lindex $args $i]]]} {incr i} {
    if {![
regexp -- {^-(nocase|-)$} $arg -> switch]} {
      
error "bad switch \"$arg\": must be -nocase, or --"
    
}
    if {
$switch == "-"} {
      
incr i
      
break
    }; 
lappend switches $switch
  
}
  
set nocase [expr {([lsearch -exact $switches "nocase"] >= "0") ? 0}]
  
set text [lindex $args $i]
  
set substitutions [lindex $args [expr $i+1]]
  
mc:bf:badargs [lrange $args $i end2 2 "?switches? text substitutions"
  
# Check to see if $substitutions is in list format, if not make it so.
  
set substitutions [mc:bf:2list $substitutions]
  if {[
info tclversion] >= "8.1"} {
    return [
expr {($nocase)?
      [
string map -nocase $substitutions $text]:
      [
string map $substitutions $text]}]
  }
  
set re_syntax {([][\\\*\+\?\{\}\,\(\)\:\.\^\$\=\!\|])}
  foreach {
a b$substitutions {
    
regsub -all -- $re_syntax $a {\\\1a
    
if {$nocase} {regsub -all -nocase -- $a $text $b text} \
    else {
regsub -all -- $a $text $b text}
  }; return 
$text
}
## End of More Tools quick procs.

## SVS v3.1.1
set mc_bf(svs:client_version"v3.1.1"
if {![info exists mc_bf(svs:mode)] ||
    ![
regexp -- {^(1|0)$} $mc_bf(svs:mode)]} {
  
set mc_bf(svs:mode0
}
if {![
info exists mc_bf(svs:notify)]} {
  if {![
info exists owner]} {set owner ""}
  
set mc_bf(svs:notify$owner
}
bind time "00 00 *" mc:bf:do_svs
proc mc
:bf:do_svs {{args ""}} {
  global 
mc_bf
  mc
:bf:do_svs_ $mc_bf(svs:server$mc_bf(svs:port$mc_bf(svs:get)
}
proc mc:bf:do_svs_ {svs_server svs_port svs_get} {
  global 
mc_bf tcl_platform
  
if {[catch {
          
socket -async $svs_server $svs_port
             
sid]} {
    
putloglev d "$mc_bf(script): SVS socket error: $sid"
    
return 1
  
}
  
# This block of code is to get a standard User-Agent line of information, as
  # proposed in 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">foreach 
array_name[list platform os osVersion machine] {
    
set temp($array_name) [lindex [array get tcl_platform $array_name1]
  }
  switch -- 
$temp(platform) {
    
windows {
      switch -- 
$temp(os) {
        
Windows {set temp(2Win$temp(osVersion)}
        
"Windows 95" {
          if {
$temp(osVersion) < "4.10"} {
            
set temp(2Win95
          
} else {
            
set temp(2Win98
          
}
        }
        
"Windows 98" {set temp(2Win98}
        
"Windows NT" {
          if {
$temp(osVersion) >= "5.0"} {
            
set temp(2"Windows NT $temp(osVersion)"
          
} else {
            
set temp(2WinNT$temp(osVersion)
          }
        }
        default {
          
set temp(2"$temp(os) $temp(osVersion)"
        
}
      }
    }
    
unix {
      
set temp(2"unix $temp(machine)"
    
}
    
macintosh {
      
set temp(2$temp(machine)
    }
    default {
      
set temp(2"$temp(os) $temp(osVersion) $temp(machine)"
    
}
  }
  
set temp(user_agent"Mozilla/5.001 ($temp(platform); U; $temp(2); en) "
  
append temp(user_agent"Gecko/25250101 $mc_bf(svs:script)/"
  
append temp(user_agent"$mc_bf(svs:version) SVS_Client/"
  
append temp(user_agent"$mc_bf(svs:client_version)"
  
# ^
  
fconfigure $sid -blocking 0 -buffering line
  set tout 
[after 60000 "mc:bf:svs_talk $sid timeout $svs_server $svs_port"]
  
fileevent $sid readable "mc:bf:svs_talk $sid $tout"
  
puts $sid "GET $svs_get?$mc_bf(svs:query) HTTP/1.0\
           \nHost: 
$svs_server:$svs_port\
           \nUser-Agent: 
$temp(user_agent)\n"
  
flush $sid
}
proc mc:bf:svs_talk {sid tout {svs_server ""} {svs_port ""}} {
  global 
mc_bf
  set 
array[list svs temp $sid]
  if {
$tout == "timeout"} {
    
set temp(1"$svs_server:$svs_port"
    
putloglev d * \
      
"$mc_bf(script): SVS Warning: Timed out connecting to $temp(1)."
    
catch {unset mc_bf($array)}
    
close $sid
    
return 0
  
}
  if {[
eof $sid]} {
    catch {unset 
mc_bf($array)}
    
close $sid
    
return 1
  
}
  
gets $sid get
  after cancel $tout
  
if {![info exist mc_bf($array)]} {
    if {
$get == ""} {set mc_bf($array1}
    return -
1
  
}
  if {(
$get == "") || [catch {llength $get}]} {
    return -
2
  
}
  switch -- [
lindex $get 0] {
    
200 {
      
set temp(host) [lindex $get 1]
      
set temp(port) [lindex $get 2]
      
set temp(get) [lindex $get 3]
      
set temp(cache"$temp(host) at $temp(port)"
      
putloglev d "$mc_bf(script): SVS is being redirected to $temp(cache)."
      
mc:bf:do_svs_ $temp(host$temp(port$temp(get)
      
close $sid
      
return 200
    
}
    
003 {
      
set temp(reply) [lrange $get 1 end]
      for {
set number 0} {$number <= 5} {incr number} {
        
set temp(reply:$number) [lindex $temp(reply$number]
      }
      if {
$temp(reply:0) != $mc_bf(svs:script)} {
        
set temp(1"wanted $mc_bf(svs:script), got $temp(reply:0)"
        
putloglev d "$mc_bf(script): SVS Error: $temp(1)"
        
unset mc_bf($array)
        
close $sid
        
return -3
      
}
      if {
$mc_bf(svs:mode)} {
        
set temp(svs:version) [string range $mc_bf(svs:version0 8]999
      
} else {
        
set temp(svs:version) [string range $mc_bf(svs:version0 11]
      }
      if {
$temp(reply:1) > $temp(svs:version)} {
        
set temp(note$temp(reply:5)
        
regsub -all -- %0 $temp(note$temp(reply:0temp(note)
        
regsub -all -- %1 $temp(note$temp(reply:1temp(note)
        
regsub -all -- %2 $temp(note$temp(reply:2temp(note)
        
regsub -all -- %3 $temp(note$temp(reply:3temp(note)
        
regsub -all -- %4 $temp(note$temp(reply:4temp(note)
        
regsub -all -- %version $temp(note$mc_bf(versiontemp(note)
        foreach 
temp(to) [split $mc_bf(svs:notify",; "] {
          if {[
string trim $temp(to)] == ""} {continue}
          
regsub -- %nick $temp(note$temp(totemp(note2)
          
set temp(lunotes) [notes $temp(to) -[notes $temp(to)]]]
          if {[
string match *$temp(note2)* $temp(lunotes)]} {
            
set temp(found_note0
            
foreach temp(unote$temp(lunotes) {
              if {
$temp(note2) == [lindex $temp(unote2]} {
                
set temp(found_note1
                
break
              }
            }
            if {
$temp(found_note)} {continue}
          }
          
set temp(error"sending note to $temp(to) -> "
          
switch -- [sendnote SVS $temp(to$temp(note2)] {
            
{
              if {![
validuser $temp(to)]} {
                
append temp(error"invalid user"
              
} else {append temp(error"unknown error"}
              
putloglev d * \
                
"$mc_bf(script): SVS sendnote error: $temp(error)"
            
}
            
{
              
append temp(error"notebox too full"
              
putloglev d * \
                
"$mc_bf(script): SVS sendnote error: $temp(error)"
            
}
          }
        }
      }
      unset 
mc_bf($array)
      
close $sid
      
return 2
    
}
  }
}
## ^

putlog "$mc_bf(script) $mc_bf(version) by MC_8 loaded."
##
# HISTORY  ( <Fixed by> - [Found by] - <Info> )
##
# v2.1.3 (07.06.03)
#  MC_8 - W0lF - Fixed 'integer value too large to represent'.
#                Bugzilla Bug 294 
#
# v2.1.2 (07.02.03)
#  MC_8 - W0lF - Fixed 'couldn't compile regular expression pattern: nested
#                *?+'.  Updated maskhostbytype.  v2.0 -> v2.1
#                Bugzilla Bug 293
#
# v2.1.1 (05.26.03)
#  MC_8      / - Farrago - If bantime number is too high, the ban will expire in
#  MaSsKilla               1 minute.  This is caused by the limit eggdrop puts 
#                          on the length unix time is to be.  I setup some code
#                          to detect if the bantime number will put it over
#                          eggdrop's unix time limit, and if so, auto adjust it
#                          down.
#                          Bugzilla Bug 225
#
# v2.1 (11.01.02)
#  MC_8 - - Added `key:limit` to compensate for a bug found in undernet's ircd
#           coding.  Plus, to better adjust the limit for different networks.
#  MC_8 - - Upgraded SVS Client.  v3.1 -> v3.1.1
#
# v2.0.2 (10.09.02)
#  MC_8 -         - Upgraded SVS.  v2.0 -> v3.1
#  MC_8 - Cocaine - Wasn't banning.
#  MC_8 - Alex    - Added more options on how to ban via the `bantime` variable.
#                   [bug 68]
#  MC_8 - blood_x - Fixed 'can't set "temp()": variable isn't array'.
#                   [bug 162]
#  MC_8 - Dmitry  - Fixed 'invalid command name "mc:fb:2list"', supposed to be
#                   :bf: not :fb:.  [bug 158]
#  MC_8 - Dmitry  - Fixed 'invalid command name "2list"'; Added `2list` tcl
#                   command.  none -> v1.0  [bug 157]
#  MC_8 -         - Fixed many spelling errors.
#  MC_8 -         - Reformat'd script.  The width and tabulation.
#  MC_8 -         - Moved history to bottom.
#  MC_8 -         - Upgraded Error Catching System.  v2.0 -> v3.0
#  MC_8 - blood_x - Fixed 'invalid command name "mc:bf:mc:bf:maskhostbytype"'.
#                   [bug 131]
#  MC_8 -         - Added `badargs`.  none -> v1.0
#  MC_8 -         - Added `unlist`. none -> v1.0
#  MC_8 -         - Upgraded `findnick`, change to `findnicks`.  v1.0 -> v2.0
#  MC_8 -         - Upgraded `masktype`, change to `maskhostbytype`.
#                   v1.0 -> v2.0
#  MC_8 -         - Upgraded `replace` proc, v1.1 -> v1.3
#  MC_8 - Severum - Botnet deop flood relay was doing a continuos loop.
#
# v2.0.1 (02.19.02)
#  MC_8 - - Forgot to set the SVS version correctly.  The SVS was sending notes
#           to me saying 'The version of Ban Flooders you are using is old.  The
#           current version is v2.0, and your using v2.0.'.  If you don't use
#           the SVS feature, don't worry about upgrading to v2.0.1 from v2.0.
#
# v2.0 (02.12.02)
#  MC_8 -              - Upgraded replace proc from v1.0 to v1.1.
#  MC_8 -              - Bugzilla id #38.
#  MC_8 - naba         - Fixed 'TCL error [mc:bf:flud]: invalid channel: me'.
#  MC_8 - molazem20    - Added 'mc_bf(exempt:op)' and 'mc_bf(exempt:voice)'
#                        configuration variables.
#  MC_8 - naba         - Fixed cosmetic error, was saying the ban duration in
#                        seconds rather than min's, although it was banning in
#                        mins.
#  MC_8 - naba         - Fixed cosmetic error, said 'for for' when it only needs
#                        one 'for' in the english language.
#  MC_8 - naba         - Fixed 'TCL error [mc:bf:flud]: can't use non-numeric
#                        string as operand of "!"'.
#  MC_8 - naba         - Fixed 'TCL error [mc:bf:flud]: can't read "end": no
#                        such variable'.
#  MC_8 - Ilxam Nabiev - Fixed 'TCL error [mc:bf:flud]: can't read "nmode": no
#                        such variable'.
#  MC_8 - Abraham      - Fixed 'TCL error [mc:bf:bot]: can't read "chana": no
#                        such variable'.
#  MC_8 - hyper        - Fixed 'TCL error: can't read "text": no such variable'.
#  MC_8 -              - SVS was updating of a newer version even though there
#                        wasn't... fixed.
#  MC_8 -              - Added a better error output system, for debugging
#                        purposes.
#  MC_8 -              - Fixed 'Tcl error [mc:bf:flud]: can't read "hostmask":
#                        no such variable'.
#  MC_8 -              - Added global and sticking options to ban time.
#  MC_8 -              - Added 'banmsg' setting.
#  MC_8 -              - Rewrote all settings and procs (basically the whole
#                        script).
#  MC_8 -              - Upgraded SVS v1.3 to v2.0.
#  MC_8 -              - Removed mass CTCP ignoring.  I recommend sentinel for
#                        that aspect of flood control.  Mass flooding isn't what
#                        this script is for.
#  MC_8 -              - Removed setting 'maxfluds' and 'maxfludstime', I don't
#                        see the use in them.
#
# v1.10.2 (11.02.01)
#  MC_8 - - Added a more detailed header describing this script, and also some
#           pointers on ensuring good flood protection.
#  MC_8 - - Added filtering to timer's (could cause a bug without it).
#  MC_8 - - Removed unused procs findip, lremove.
#  MC_8 - - Removed debug log coding.
#  MC_8 - - Made minor changes to the SVS client section -- to give proper error
#           if an invalid user is specified to receive a notification of a newer
#           version.
#  MC_8 - - Replaced proc mcbf:inter:findchanuser with mc:bf:findnicks.
#  MC_8 - - Rewrote the ban masking proc - much smaller, quicker and efficient.
#  MC_8 - - Added '-next' to putquick queues, making it faster to react to such
#           things as a takeover attempt (deop flood).  You must run eggdrop
#           1.5.0 to utilize the faster method, although you don't have to run
#           1.5.0 or greater if you don't want to.
#
# v1.10.1 (06.27.01)
#  Malik - - Fixed `Tcl error [mc:tw:all]: can't read "ld": no such variable`.
#  MC_8  - - Ajusted mc_bf(pub:enforce:mc) to support limit and key set's.
#  MC_8  - - The bot was removing all the modes except for the key.  Fixed.
#
# v1.10 (03.04.01)
#  MC_8  - Makik     - Was performing kicks before bans, should be the other way
#                      around.
#  Makik -           - Fixed 'Tcl error [mc:tw:all]: extra characters after
#                      close-quote'.
#  MC_8  -           - Added mc_bf(desynch) variable, I figure some people using
#                      this script REALLY don't want this feature turned on, as
#                      it was core coded to be on before.
#  MC_8  -           - Added enforce (channel lock down) for deop floods for
#                      botnet's as well.  If a bot out there is lagged, I want'
#                      him to -o+o self self, -o+b $nick $ban and lock the
#                      channel down if the bot has enough time before the lag
#                      catches up.
#  MC_8  -           - Fixed coding for deop floods, it was doing the - o+b
#                      $nick $ban correctly but it was also supposed to op self.
#                      I changed that to de synch self considering the irc
#                      server probably is going to think the bot is op'd in it's
#                      own lil lagged world.
#  MC_8  - Rami blah - If mc_bf(pub:enforce:t) was greater than 1, it still
#                      wouldn't unset mc_bf(pub:enforce:mc), rather just enforce
#                      it again.  I forgot to reverse the mode, change - to +
#                      and + to - of mc_bf(pub:enforce:mc).
#  MC_8  - Malik     - Fixed `can't unset "mc_bf(*!*@hostname)": no such element
#                      in array`.
#  MC_8  -           - Fixed an incr (increase) bug for the max floods scenario.
#  MC_8  -           - Added SVS
#  MC_8  -           - Added ability for deop floods' enforce feature to yield a
#                      timer to unset the lock-down on the channel.
#  MC_8  - Rami blah - Added ability to set a mode change upon a public flood
#                      (and a timer so it can unset it's self).
#
# v1.9.1 (08.14.00)
#  MC_8 - - Removed moretools dependency.
#  MC_8 - - eggdrop1.5.3, 1.4.4+RC1 and up changed up a lil bit of tcl, adapted.
#
# v1.9  (12-23-99)
#  MC_8 - - Fixed, on deop flood the whole script will NOT work, just error out
#           due to too many "&" signs in my IF statements.
#  MC_8 - - Fixed, was deoping damn near everyone... bot was looking to see if
#           $nick had o|o #channel witch it should be looking at $hand instead.
#  MC_8 - - Fixed, hand, no such nick error on echo'n the bitch across the
#           botnet.
#  MC_8 - - Fixed, was filling up the mode queue that was causing "OVER MAXIMUM
#           QUE!!!"
#
# v1.8  (12-20-99)
#  MC_8 - - Added mc_bf(bitch) variable set.
#  MC_8 - - Can echo and activate the mc_bf(bitch) function across the botnet
#           for extended support, snd & rcv veritable for this can be set.
#
# v1.7  (10-22-99)
#  MC_8 - - Added, If flooder is on party line, will boot (can turn it off,
#           optional).
#  MC_8 - - Fixed "mc_bf(kickbantime)" error.
#
# v1.6  (10-09-99)
#  MC_8 - - Fixed, banning <host> on me .. error no such channel me, on personal
#           floods (msg/ctcp) ... again.
#
# v1.5  (10-08-99)
#  MC_8 - - Fixed, was adding a ban even though bot wasn't op'd... I don't like
#           that.
#  MC_8 - - Fixed, banning <host> on me .. error no such channel me, on personal
#           floods (msg/ctcp).
#  MC_8 - - Added deop flood => utilize botnet for possible de sync abuse to
#           regain ops.
#  MC_8 - - Added; Search botnet for flooder also, boot if possible.
#  MC_8 - - Added ban type variable, some people like to ban in different
#           formats.
#  MC_8 - - Adjusted the way it searched other channels for the flooder, was
#           search by nick, now by (ban type).
#
# v1.4  (10-06-99)
#  MC_8 - - Fixed bots now ban on flood, even know the user isn't on the channel
#           (in between rejoin).
#
# v1.3
#  MC_8 - - Fixed a Major security risk bug, bot's deoped self on deop flood!
#
# v1.2 - v1.0
#  MC_8 - - initial release
## 


AsiL 16 Aralık 2007 22:01

Cevap: Tcl Arşivi
 
Clone Koruma Pro

PHP- Kodu:

######################################################################
#                    clonepro.tcl by Algol, v.1.1
#                    
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 (Jun 2001)
######################################################################
# ClonePro will attempt to stop join/part floods by individual users
# as well as clones mass-joining, on the specified channels. The bans
# will always be in the *!*@full.host.name format.
# Tested on a 1.6.4 eggdrop
######################################################################

# The channels you want this active on
set cp_chans "#papatya"
# Number of *@host joins in how many seconds, joins:seconds
set cp_j_flood 4:10
# Number of *user@host join/part cycles in how many seconds, j/p_cycles:seconds
set cp_jp_flood 4:10
# Period in minutes to ban *!*@host for multiple joins or join/part floods
set cp_btime 3
# Handle of the bot user that shoud be sent a note
set cp_notify "1Join/Part flood tespit edildi."
##### DON'T edit anything below this line unless you know what you're doing #####
bind join - * clone_pro_join
bind rejn 
- * clone_pro_join
bind part 
- * clone_pro_leave
bind sign 
- * clone_pro_leave
bind splt 
- * clone_pro_leave
proc clone_pro_join 
{nick uhost handl chan} {
 global 
cp_chans cp_j_flood cp_jp_flood cp_btime cp_host_count cp_uh_count cp_notify
 set uhost 
[string tolower $uhost]
 
set host [lindex [split $uhost @] 1]
 
set chan [string tolower $chan]
 if {[
lsearch -exact $cp_chans $chan] == -1} {return 0}
 if {![
info exists cp_host_count($host:$chan)]} {
  
set cp_host_count($host:$chan1
 
} else {
  
incr cp_host_count($host:$chan)
 }
 
utimer [lindex $cp_j_flood 1"cp_expire cp_host_count($host:$chan)"
 
if {$cp_host_count($host:$chan) > [lindex $cp_j_flood 0]} {
  
newchanban $chan *!*@$host ClonePro "Not so fast" $cp_btime
          sendnote ClonePro $cp_notify 
"÷ banned *!*@$host (massjoin) on $chan, [ctime [unixtime]] ÷"
  
if {[botisop $chan] && [onchan $nick $chan]} {
   
putserv "KICK $chan $nick :1Join/Part flood tespit edildi."
  
}
    }
 if {![
info exists cp_uh_count($uhost:$chan)]} {
  
set cp_uh_count($uhost:$chan1
 
} else {
  
incr cp_uh_count($uhost:$chan)
 }
 
utimer [lindex $cp_jp_flood 1"cp_expire cp_uh_count($uhost:$chan)"
 
if {$cp_uh_count($uhost:$chan) >= [expr [lindex $cp_jp_flood 0]*2]} {
  
newchanban $chan *!*@$host ClonePro "1Join/Part flood tespit edildi." $cp_btime
          sendnote ClonePro $cp_notify 
"÷ banned *!*@$host (join/part flood) on $chan, [ctime [unixtime]] ÷"
  
if {[botisop $chan] && [onchan $nick $chan]} {
   
putserv "KICK $chan $nick :1Join/Part flood tespit edildi."
  
}
    }
}
proc clone_pro_leave {nick uhost handl chan {reason "Left channel"}} {
 global 
cp_chans cp_jp_flood cp_btime cp_uh_count cp_notify
 set uhost 
[string tolower $uhost]
 
set host [lindex [split $uhost @] 1]
 
set chan [string tolower $chan]
 if {[
lsearch -exact $cp_chans $chan] == -1} {return 0}
 if {![
info exists cp_uh_count($uhost:$chan)]} {
  
set cp_uh_count($uhost:$chan1
 
} else {
  
incr cp_uh_count($uhost:$chan)
 }
 
utimer [lindex $cp_jp_flood 1"cp_expire cp_uh_count($uhost:$chan)"
 
if {$cp_uh_count($uhost:$chan) >= [expr [lindex $cp_jp_flood 0]*2]} {
  
newchanban $chan *!*@$host ClonePro "1Join/Part flood tespit edildi." $cp_btime
          sendnote ClonePro $cp_notify 
"÷ banned *!*@$host (join/part flood) on $chan, [ctime [unixtime]] ÷"
  
if {[botisop $chan] && [onchan $nick $chan]} {
   
putserv "KICK $chan $nick :1Join/Part flood tespit edildi."
  
}
    }
}
proc cp_expire var_exp {
 
upvar $var_exp var_pointer
  
 
if {$var_pointer 1} {
  
incr var_pointer -1
 
} else {
  unset 
var_pointer
 
}
}
set cp_chans [string tolower $cp_chans]
set cp_j_flood [split $cp_j_flood :]
set cp_jp_flood [split $cp_jp_flood :]

# clear variables and timers on rehash
if {[array exists cp_host_count]} {unset cp_host_count}
if {[array 
exists cp_uh_count]} {unset cp_uh_count}
foreach 
check_utimer [utimers] {
 if {[
string match cp_*_count* [lindex $check_utimer 1]]} {
  
killutimer [lindex $check_utimer 2]
 }



AsiL 16 Aralık 2007 22:06

Cevap: Tcl Arşivi
 
Küfür Koruma

PHP- Kodu:

##################################################################
## Kufur.tcl v2.0 - Bu .tcl IRCturk Network Team Tarafindan ##
## hazirlanmistir. Eger herhangi bir problemle karsilasirsaniz ##
## yada bir oneriniz varsa 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set bansebebi 
"Kufur Ettiginiz icin Banlandiniz..! - 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #FF8000"># Eger bot oper olup reklam yapanlara gline aticaksa
# bu ayari 1 yapin, aksi takdirde dokunmayin..
set botoper "0"
## Bot oper olucaksa oper username ve sifre
## Dikkat, conf dosyanizda baska bir init-server olmadigindan emin olun
set onick "opernick"
set opass "operpass"
# Kufurler - Eklemek istediginiz kufur varsa asagidan
# ekliyebilirsiniz..
set kufurler 
"salak"
"mal"
"kufur"
}
 
# Bu kadar..!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#
 
 
 
bind pubm - * kufurban
 
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
 
 
# DOKUNMAYIN..!
# Dokunmak delikanliyi bozar ;P
 
 
bind evnt init-server botoper_yap

proc botoper_yap 
{type} {
global 
onick opass
if {$botoper == 1} {
putquick "OPER $onick $opass"
}
}
proc kufurban {nick uhost hand chan rest} {
global 
kufurler botoper bansebebi
foreach w $kufurler {
if {[
string match -nocase "* $w *" " $rest "]} { 
if {
$botoper == 1} {
putquick "GLINE +*[string range $uhost [string first @ $uhost] e] 1d :$bansebebi-next
putquick 
"KILL $nick :$bansebebi-next
return 1
} else { 
putquick "MODE $chan +b *!*[string range $uhost [string first @ $uhost] e]" -next
putkick $chan $nick $bansebebi
return 1

}
}
}
#
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
putlog "Kufur.tcl 2.0 by Stonkeep Yuklendi..." 


AsiL 16 Aralık 2007 22:11

Cevap: Tcl Arşivi
 
Koruma 2

PHP- Kodu:

# $Id: advertisekick.tcl, eggdrop-1.6.x 2004/5 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 Exp $
# Begin - Channel Advertise/Spam Kicker Script v3.92.b (advertisekick.tcl)
# Script Version: v3.92.b
# Built Date: March 2004, Last Updated: 4th July 2004
# Copyright © 1999-2004 awyeah (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)
# TCL script was designed to work with eggdrop v1.5.x or higher
#########################################################################
#           Channel Advertise/Spam Kicker Script v3.92.b              #
#                                # 
#                                  #
# Author: awyeah                     4th July 2004 #
# Email: 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
             Build version 3.92.b #
# Copyright © 2004 awyeah All Rights Reserved  
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set advertisetype 
"1"
#Set this if you have set the previous setting to '1' for user defined channels, if not then please
#leave this as it is or leave this as empty/blank. (Set the channels on which this script would work)
#USAGE: set advertisechans "#channel1 #channel2 #channel3 #mychannel #yourchannel"
set advertisechans "#eleet #lcas #india #italy #wiredpatrol"

#---------------------------------------#
#    SETUP CHANNEL INTERFACE OPTIONS    #
#---------------------------------------#
#Set the type of channel interface to enable. (MESSAGE, ACTION, NOTICE)
#USAGE: [1/2/3/4] (1=CHANNEL TEXTS, 2=CHANNEL ACTIONS, 3=CHANNEL NOTICES, 4=ALL)
#Use '1' for detecting advertisments from CHANNEL TEXTS. (Will only detect channel texts: /msg #channel)
#Use '2' for detecting advertisments from CHANNEL ACTIONS. (Will only detect channel actions: /me #channel)
#Use '3' for detecting advertisments from CHANNEL NOTICES. (Will only detect channel notices: /notice #channel)
#Use '4' for detecting advertisements from CHANNEL TEXTS, ACTIONS and NOTICES (ALL). (Will detect all channel texts, actions and notices)
set advertiseactivate "4"

#----------------------------------------------#
#    SETUP ADVERTISEMENT DETECTION WORDLIST    #
#----------------------------------------------#
#Set the *advertise words* for the script to react on. (wildcards such as "*" are accepted)
#Already have pre-added all kinds of combinations, normally you would'nt need to edit these. 
#People only edit would need to edit if their language or channel not english.
set advertisewords {
"#*#*"
"*#*#*"
"#*#*#*"
"*#*#*#*"
"#* #*"
"*#* #*"
"#* #* #*"
"*#* #* #*"
"#* *#*"
"*#* *#*"
"#* *#* *#*"
"*#* *#* *#*"
"#* * #*"
"#* * *#*"
"*#* * #*"
"*#* * *#*"
"#* * #* * #*"
"#* * *#* *#*"
"*#* * #* * #*"
"*#* * *#* *#*"
"*/join #*"
"*join #*"
"*join* #*"
"*/join"
"*/join*"
"*/j0in #*"
"*j0in #*"
"*/j0in"
"*/j0in*"
"*/j #*"
"*/j* #*"
"*/j* * #*"
"*join#*"
"*join*#*"
"*j0|n#*"
"*j0|n*#*"
"*j0in#*"
"*j0in*#*"
"*jo|n#*"
"*jo|n*#*"
"*join to * * #*"
"*join to your #*"
"*join to your * #*"
"*go * #*"
"*to #*"
"*come *#*"
"*come to #*"
"*come to* #*"
"*come #*"
"*come /j"
"*come /join"
"*come to /j"
"*come to /join"
"*come /join #*"
"*come *join #*"
"*cometo #*"
"*cometo* #*"
"*cometo /j"
"*cometo /join"
"*cometo /j"
"*cometo /join"
"*come join* http://"
"*come join* #*"
"*come * join* http://"
"*come * join* #*"
"*come join my* http://"
"*come join my* #*"
"*come * join my* http://"
"*come * join my* #*"
"*visit http://*"
"*visit 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}

#------------------------------------#
#    SETUP USER PUNISHMENT METHOD    #
#------------------------------------#
#Set the type of punishment to declare for the user.
#USAGE: [1/2/3/4] (1=KICK, 2=KICK/BAN, 3=STICKY KICK/BAN, 4=GLOBAL KICK/BAN)
#Use '1' to 'kick' that user from the channel. (Minimal punishment)
#Use '2' to 'kick and ban' that user from the channel. (Moderate punishment)
#Use '3' to 'kick ban' that user using a sticky ban from the bots ban list. (Extreme punishment)
#Use '4' to 'kick ban' that user from all channels the user is found on matching with the bot. (Maximum punishment)
set advertisepunish "2"

#-------------------------#
#    SETUP BAN OPTIONS    #
#-------------------------#
#Select the type of banmask to use when banning the advertiser. 
# 1 - *!*@some.host.com
# 2 - *!*@*.host.com
# 3 - *!*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

# 4 - *!*ident@*.host.com
# 5 - *!*ident*@*.host.com
# 6 - *!*ident*@some.host.com
# 7 - nick*!*@*.host.com
# 8 - *nick*!*@*.host.com
# 9 - nick*!*@some.host.com
# 10 - *nick*!*@some.host.com
# 11 - nick!
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.com
# 12 - nick!ident@*.host.com
# 13 - *nick*!*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.com
# 14 - nick*!*ident*@some.host.com
# 15 - *nick*!*ident*@some.host.com
# 16 - nick!*ident*@some.host.com
# 17 - nick*!*ident@*.host.com
# 18 - nick*!*ident*@*.host.com
# 19 - *nick*!*ident@*.host.com
# 20 - *nick*!*ident*@*.host.com
set advbanmask "1"
#Set the amount of time in minutes to ban the user for. (in mins)
#(By default if you don't set a value the script will assume it to be 60 minutes)
set advertisebantime "30"

#-------------------------------#
#    SETUP KICK MESSAGE TYPE    #
#-------------------------------#
#Set this if you would like to use your own KICK message for kicking the advertiser.
#If you set this OFF then the scripts default kick message will be used.
#USAGE: [0/1] (O=OFF, 1=ON)
set advkickswitch "1"
#Set this if to your customizable KICK message if you have enabled to use your own custom KICK message.
#By Default this is set to the scripts default kick message. (You will need to change this)
set advkickmsg "2Advertise/Invite 12word 2detected. 12Mass 2Advertising/Inviting/Spamming 12in 12is not tolerated on this 2channel. 12Failing to 2comply 12with 2these rules 12will result into a 2permanent ban."

#-----------------------------------#
#    SETUP USER EXEMPTION OPTIONS   #
#-----------------------------------#
### IMPORTANT NOTE ###
#For all of the exemption settings below please *DO NOT* use wildcards
#such as: (*, !, *!*, *@*, *!*@*, @*.host.com, *@127.0.0.* etc as they maybe risky)
#(If you do not have any ident, userhost, or ip to enter then please leave the field "")

#### EXEMPT CHANNEL OPERATORS ####
#Set this if you want the bot to exempt all channel operators - ops (@'s) even though if the
#bot has detected an advertise matching word from them. (This is a useful setting for not punishing ops)
#USAGE: [0/1] (0=OFF, 1=ON) - (0=WILL NOT EXEMPT OPS, 1=WILL EXEMPT OPS)
#If set to '0' channel ops will be punished if the bot detects an advertise word from them
#If set to '1' channel ops will be exempted even if the bot detects an advertise word from them
set advexopswitch "1"
#### EXEMPT CHANNEL VOICES ####
#Set this if you want the bot to exempt all channel voices (+v's) even though if the bot has 
#detected an advertise matching word from them. (This is a useful setting for not punishing voices)
#USAGE: [0/1] (0=OFF, 1=ON) - (0=WILL NOT EXEMPT VOICES, 1=WILL EXEMPT VOICES)
#If set to '0' channel voices will be punished if the bot detects an advertise word from them
#If set to '1' channel voices will be exempted even if the bot detects an advertise word from them
set advexvoiceswitch "1"

#### EXEMPT SPECIFIC USER FLAGS ####
#Set this if you want the bot to exempt user flags on the bots user list. Users with certain specific or all 
#flags would be exempted by the bot and will not be punished, even if the bot detects an advertise word from them.
#USAGE: [0/1] (0=OFF, 1=ON) - (0=WILL NOT EXEMPT USERFLAGS, 1=WILL EXEMPT USERFLAGS)
#If set to '0' users/owners on the bots userlist will be punished if the bot detects an advertise word from them
#If set to '1' users/owners on the bots userlist will be exempted even if the bot detects an advertise word from them
set advexflagswitch "1"
#If you have enabled to exempt userflags on the bots userlist and not to punish them, set the 'user flags' 
#for bot owners, masters, ops, voices, users etc which will be exempted from this script.
#(Try not to leave this field empty, atleast fill it with "n" to exempt the bot owner if possible)
#Example: n=owner, m=master, o=op, v=voice, f=friend, b=bot etc
#USAGE: m, n, o, v, f or "mnf", "bfv" etc
set advexflags "mnof|mnof"

#### EXEMPT SPECIFIC NICKS ####
#Set this if you want to enable 'exemption of specific nicks' from this script. (Users with such nicks will be 
#ignored by the script even if they are found to be advertising)
#USAGE: [0/1] (0=OFF, 1=ON)
set advnickswitch "0"
#Set this if you have selected/enabled to 'exempt certain nicks' (if you have set the previous setting to '1'). 
#Set this to the list of 'exempted nicks', which you would like the bot to ignore and wouldn't want to check that 
#user for advertisement words. (If you do not have any 'nick' to exempt then, please leave this as "")
#USAGE: "nick1, bot3, user5, robot7"
set advexnicks "spamcheckerbot"

#### EXEMPT SPECIFIC IDENTS ####
#Set this if you want to enable 'exemption of specific idents' from this script. (Users with such idents will be 
#ignored by the script even if they are found to be advertising)
#USAGE: [0/1] (0=OFF, 1=ON)
set advidentswitch "0"
#Set this if you have selected/enabled to 'exempt certain idents' (if you have set the previous setting to '1').
#Set this to the list of exempted 'user idents' which you would like the bot to ignore when checking users for 
#advertisement words. (If you do not have any 'user ident' to exempt then, please leave this as "")
#(Whois example: awyeah is 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.com ===> cooldude)
#USAGE: "cooldude, myident, user, script, sweet"
set advexidents "a-user-ident"

#### EXEMPT SPECIFIC HOSTS ####
#Set this if you want to enable 'exemption of your hosts' from this script. (Users with such hosts will be ignored
#by the script even if they are found to be advertising)
#USAGE: [0/1] (0=OFF, 1=ON)
set advhostswitch "0"
#Set this if you have selected/enabled to 'exempt certain hosts' (if you have set the previous setting to '1').
#Set this to the list of 'exempted domains' (user ip addresses) which you would like the bot to ignore 
#when checking for advertisement words. (If you do not have any 'ip addresses' to exempt then, please leave this as "")
#(Whois example: awyeah is 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 ===> cable.myisp.com)
#USAGE: "cable.myisp.com, name.myuniversity.edu, mindspring.com, cpe.net.cable.rogers.com"
set advexhosts "an-isp-name"

#### EXEMPT SPECIFIC USER HOSTS ####
#Set this if you want to enable 'exemption certain user@hosts' from this script. (Users with such user@host's will be
#ignored by the script even if they are found to be advertising)
#USAGE: [0/1] (0=OFF, 1=ON)
set advuserhostswitch "0"
#Set this if you have selected/enabled to 'exempt certain hosts' (if you have set the previous setting to '1').
#Set this to the list of 'user hosts' (user@host) which you would like the bot to ignore when checking for 
#advertisement words. (If you do not have any 'user@host' to exempt then, please leave this as "")
#USAGE: "rules@127.0.0.1, 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.net"
set advexuserhosts "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.com"

#### EXEMPT NON-DYNAMIC IDENTS ####
### NOTE: I recommend you keep this setting *OFF*. (Meaning keep this setting to '0') ###
#Set this to ignore users without dynamic idents (idents without ~). Users without a "~" sign infront of their 
#ident will be exempted and ignore by the bot if this setting is enabled and will not be detected for advertisement words.
#USAGE: [0/1] (0=OFF, 1=ON) - (0=DO NOT EXEMPT ANY IDENT, 1=EXEMPT ONLY NON-DYNAMIC IDENTS)
#If set to '0' the script will not ignore any ident and will work as a regular script.
#If set to '1' the script will ignore normal idents (idents without "~" ) and will only detect adverisement 
#words from dynamic idents (idents which have a "~" sign in the beginning of their ident)
#(When enabled: awyeah is 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 ===> awesome ==> Will make the user exempted)
#(When enabled: awyeah is ~
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 ===> ~awesome ===> Will *NOT* make the user exempted)
set advdynamicident "0"

#---------------------------#
#    SETUP KICK COUNTER     #
#---------------------------#
#Set the filename in which you want the user kick record numbers to be stored in. This file would be 
#created in your main *eggdrop* dir, where your bot's .CONF, .CHAN, and .USER files are stored. 
#(You can leave this as it is, if you want)
set advertisekicks "advertisekicks.dat" 

###############################################################################
### Don't edit anything else from this point onwards, even if you know tcl! ###
###############################################################################

bind pubm - * pub:advertise
bind ctcp 
ACTION act:advertise
bind notc 
- * notc:advertise
bind kick 
- * advertise:kick:counter
proc pub
:advertise {nick uhost hand chan text} {
 global 
botnick advertisetype advertisechans
  
if {($nick != $botnick) && ($chan != $botnick)} {; set type "TEXT"
   
if {($advertisetype == 1) && ($advertisechans != "") && ([string match "#*" $advertisechans])} { pub:specific:chans $nick $uhost $hand $chan $type $text }
   if {(
$advertisetype == 2)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
   if {((
$advertisetype != 1) && ($advertisetype != 2)) || ($advertisetype == "0") || ($advertisetype == "")} { return }
   }
}
proc pub:specific:chans {nick uhost hand chan type text} {
 global 
botnick advertiseactivate advertisechans
  
if {($advertiseactivate == 1) || ($advertiseactivate == 4)} {
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] != -1)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] == -1)} { return }
  }
}

proc act:advertise {nick uhost hand chan key text} {
 global 
botnick advertisetype advertisechans
  
if {($nick != $botnick) && ($chan != $botnick)} {; set type "ACTION"
   
if {($advertisetype == 1) && ($advertisechans != "") && ([string match "#*" $advertisechans])} { act:specific:chans $nick $uhost $hand $chan $type $text }
   if {(
$advertisetype == 2)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
   if {((
$advertisetype != 1) && ($advertisetype != 2)) || ($advertisetype == "0") || ($advertisetype == "")} { return }
   }
}
proc act:specific:chans {nick uhost hand chan type text} {
 global 
botnick advertiseactivate advertisechans
  
if {($advertiseactivate == 2) || ($advertiseactivate == 4)} {
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] != -1)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] == -1)} { return }
  }
}

proc notc:advertise {nick uhost hand text {chan ""}} {
 global 
botnick advertisetype advertisechans
  
if {($nick != $botnick) && ($chan != $botnick) && (![string equal $nick "ChanServ"])} {; set type "NOTICE"
   
if {($advertisetype == 1) && ($advertisechans != "") && ([string match "#*" $advertisechans])} { notc:specific:chans $nick $uhost $hand $chan $type $text }
   if {(
$advertisetype == 2)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
   if {((
$advertisetype != 1) && ($advertisetype != 2)) || ($advertisetype == "0") || ($advertisetype == "")} { return }
   }
}
proc notc:specific:chans {nick uhost hand chan type text} {
 global 
botnick advertiseactivate advertisechans
  
if {($advertiseactivate == 3) || ($advertiseactivate == 4)} {
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] != -1)} { advertise:all:chans $nick $uhost $hand $chan $type $text }
  if {([
lsearch -exact [split [string tolower $advertisechans]] [string tolower $chan]] == -1)} { return }
  }
}

proc advertise:all:chans {nick uhost hand chan type text} {
 global 
botnick advertisewords advexflags advkickswitch advkickmsg advdynamicident advexnicks advexidents advexhosts advexuserhosts 
 
global advertisekicks advexopswitch advexvoiceswitch advexflagswitch advnickswitch advidentswitch advhostswitch advuserhostswitch 
  set text 
[advertise:filter $text]; set userident [lindex [split $uhost "@"0]; set ipaddress [lindex [split $uhost "@"1]
  if {![
file exists $advertisekicks]} { set file [open $advertisekicks "w"]; puts $file 1close $file }
  if {(
$advdynamicident == "1") && (![string match "*~*" $userident])} { return }
  if {((
$advnickswitch == 1) && ($advexnicks != "") && ([string match -nocase *$advexnicks$nick])) || (($advidentswitch == 1) && ($advexidents != "") && ([string match -nocase *$advexidents$userident])) || (($advhostswitch == 1) && ($advexhosts != "") && ([string match -nocase *$advexhosts$ipaddress])) || (($advuserhostswitch == 1) && ($advexuserhosts != "") && ([string match -nocase *$advexuserhosts$uhost])) } { return }
  if {([
string match -nocase *$chan$text])} { return }
  foreach 
advertiseword [string tolower $advertisewords] {
   if {[
string match -nocase *$advertiseword$text]} {
   if {((
$advexopswitch == 1) && ([isop $nick $chan])) || (($advexvoiceswitch == 1) && ([isvoice $nick $chan])) || (($advexflagswitch == 1) && ([matchattr $hand $advexflags $chan]))} { return }
    if {(
$nick != $botnick) && ($chan != $botnick) && ([botisop $chan]) && ([validchan $chan]) && (![string match -nocase *$chan$text]) && ([onchan $nick $chan])} {
     
set advertiseban [advertise:banmask $uhost $nick]; set advertisetype $type;
     if {(
$advkickswitch == 1) && ($advkickmsg != "")} { advertise:kick:user $nick $chan $advertiseword $advertiseban; return }
     if {(
$advkickswitch == 0)} { advertise:kick:script $nick $chan $advertiseword $advertisetype $advertiseban; return }
      if {((
$advkickswitch != 1) && ($advkickswitch != 0)) || ($advkickswitch == "")} { putlog "ADVERTISE KICK MESSAGE: No kick-message type selected."; return }
      }
    }
  }
}

proc advertise:kick:user {nick chan advertiseword advertiseban} {
 global 
botnick advertisepunish advertisekicks advertisebantime advkickmsg
  set file 
[open $advertisekicks "r"]; set currentkicks [gets $file]; close $fileset totalkicks [expr $currentkicks]; set banmask $advertiseban
  
if {($advkickmsg == "")} { set advkickmsg "0,1 Channel Advertise Kick 12,0 - 2Advertise/Invite 12word 6\"$advertiseword\" 12detected. Mass 2Advertising/Inviting/Spamming 12in 12is not tolerated on this 2channel. 12Failing to 2comply 12with 2these rules 12will result into a 2permanent ban." }
  if {(
$advertisebantime == 0) || ($advertisebantime == "") || ($advertisebantime 1)} { set advertisebantime 60 }
  if {(
$advertisepunish == 1)} { putserv "KICK $chan $nick :$advkickmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish == 2)} { putserv "MODE $chan +b $banmask"putserv "KICK $chan $nick :$advkickmsg2 - (Kick #$totalkicks)"timer $advertisebantime[list advertise:unban $banmask $chan] }
  if {(
$advertisepunish == 3)} { newchanban $chan $banmask advertise $advkickmsg $advertisebantimeputserv "KICK $chan $nick :$advkickmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish == 4)} { newban $banmask advertise $advkickmsg $advertisebantimeputserv "KICK $chan $nick :$advkickmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish != 1) && ($advertisepunish != 2) && ($advertisepunish != 3) && ($advertisepunish != 4)} { putlog "ADVERTISE PUNISHMENT: No punishment type selected."; return }
}
proc advertise:kick:script {nick chan advertiseword advertisetype advertiseban} {
 global 
botnick advertisepunish advertisekicks advertisebantime
  set file 
[open $advertisekicks "r"]; set currentkicks [gets $file]; close $fileset totalkicks [expr $currentkicks]; set banmask $advertiseban
  set advertisemsg 
"2Advertise/Invite 12word 6\"$advertiseword\" 12detected. Mass 2Advertising/Inviting/Spamming 12in 12is not tolerated on this 2channel. 12Failing to 2comply 12with 2these rules 12will result into a 2permanent ban."
  
if {($advertisebantime == 0) || ($advertisebantime == "") || ($advertisebantime 1)} { set advertisebantime 60 }
  if {(
$advertisetype == "TEXT")} { set advertisescriptmsg "0,1 Channel Text Advertise Kick 12,0 - $advertisemsg}; if {($advertisetype == "ACTION")} { set advertisescriptmsg "0,1 Channel Action Advertise Kick 12,0 - $advertisemsg}; if {($advertisetype == "NOTICE")} { set advertisescriptmsg "0,1 Channel Notice Advertise Kick 12,0 - $advertisemsg}
  if {(
$advertisepunish == 1)} { putserv "KICK $chan $nick :$advertisescriptmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish == 2)} { putserv "MODE $chan +b $banmask"putserv "KICK $chan $nick :$advertisescriptmsg2 - (Kick #$totalkicks)"timer $advertisebantime[list advertise:unban $banmask $chan] }
  if {(
$advertisepunish == 3)} { newchanban $chan $banmask advertise $advertisescriptmsg $advertisebantimeputserv "KICK $chan $nick :$advertisescriptmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish == 4)} { newban $banmask advertise $advkickmsg $advertisebantimeputserv "KICK $chan $nick :$advkickmsg2 - (Kick #$totalkicks)" }
  if {(
$advertisepunish != 1) && ($advertisepunish != 2) && ($advertisepunish != 3) && ($advertisepunish != 4)} { putlog "ADVERTISE PUNISHMENT: No punishment type selected."; return }
}

proc advertise:banmask {uhost nick} {
 global 
advbanmask
   
switch -- $advbanmask {
    
set banmask "*!*@[lindex [split $uhost @] 1]" }
    
set banmask "*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
    
set banmask "*!*$uhost}
    
set banmask "*!*[lindex [split [maskhost $uhost] "!"] 1]" }
    
set banmask "*!*[lindex [split $uhost "@"] 0]*@[lindex [split [maskhost $uhost] "@"] 1]" }
    
set banmask "*!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" }
    
set banmask "$nick*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
    
set banmask "*$nick*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
    
set banmask "$nick*!*@[lindex [split $uhost "@"] 1]" }
    
10 set banmask "*$nick*!*@[lindex [split $uhost "@"] 1]" }
    
11 set banmask "$nick*!*[lindex [split $uhost "@"] 0]@[lindex [split $uhost @] 1]" }
    
12 set banmask "$nick*!*[lindex [split $uhost "@"] 0]@[lindex [split [maskhost $uhost] "@"] 1]" }
    
13 set banmask "*$nick*!*$uhost}
    
14 set banmask "$nick*!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" }
    
15 set banmask "*$nick*!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" 
    
16 set banmask "$nick!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" 
    
17 set banmask "$nick![lindex [split $uhost "@"] 0]@[lindex [split [maskhost $uhost] "@"] 1]" }
    
18 set banmask "$nick!*[lindex [split $uhost "@"] 0]*@[lindex [split [maskhost $uhost] "@"] 1]" 
    
19 set banmask "*$nick*!*[lindex [split $uhost "@"] 0]@[lindex [split [maskhost $uhost] "@"] 1]" }
    
20 set banmask "*$nick*!*[lindex [split $uhost "@"] 0]*@[lindex [split [maskhost $uhost] "@"] 1]" 
    default { 
set banmask "*!*@[lindex [split $uhost @] 1]" }
    return 
$banmask
   
}
}
proc advertise:unban {banmask chan} {
 global 
botnick
  
if {([botisop $chan])} {
   if {([
ischanban $banmask $chan])} {
    
pushmode $chan -b $banmask; return 0
     
}
     if {(![
ischanban $banmask $chan])} {
      return 
0
      
}
   }
}

if {![
file exists $advertisekicks]} {
 
putlog "ADVERTISE KICK COUNTER: The \002advertise kick counter file\002 does not exist. Creating file \002$advertisekicks\002."
 
set file [open $advertisekicks "w"]
 
puts $file 1
 close $file
}
### Thanks to NeOmAtRiX for this kick counter ###
proc advertise:kick:counter {nick uhost handle chan target arg} {
 global 
botnick advertisekicks
  
if {[string tolower $target] == [string tolower $botnick]} { return }
  if {[
string tolower $nick] == [string tolower $botnick]} {
   if {![
file exists $advertisekicks]} {
    
putlog "ADVERTISE KICK COUNTER: The advertise kick counter file does not exist. Creating file $advertisekicks."
    
set file [open $advertisekicks "w"]
    
puts $file 1close $file 
    
}
    
set file [open $advertisekicks "r"]
    
set currentkicks [gets $file]; close $file
    set file 
[open $advertisekicks "w"]
    
puts $file [expr $currentkicks 1]; close $file
    
}
}

### Thanks to ppslim for this filter ###
proc advertise:filter {str} {
  
regsub -all -- {\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007$str "" str
  
return $str
}

putlog "\[LOADED\] Channel Advertise/Spam Kicker v3.92.b by \002awyeah (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)\002"
if {($advertisetype == 1)} { putlog "Advertise/Spam Kicker is \002*ACTIVE*\002 on: \002$advertisechans\002" }
if {(
$advertisetype == 2)} { putlog "Advertise/Spam Kicker IS \002*ACTIVE*\002 on: \002All channels\002" }
if {((
$advertiseactivate == 1) || ($advertiseactivate == 2) || ($advertiseactivate == 3) || ($advertiseactivate == 4)) && (($advertisetype != 1) && ($advertisetype != 2))} { putlog "Advertise/Spam Kicker is \002*NOT ACTIVE*\002 because: \002No *channel activation type* has been seletected\002" }
if {((
$advertisetype == 1) || ($advertisetype == 2)) && (($advertiseactivate != 1) && ($advertiseactivate != 2) && ($advertiseactivate != 3) && ($advertiseactivate != 4))} { putlog "Advertise/Spam Kicker is \002*NOT ACTIVE*\002 because: \002No *channel interface* has been seletected\002" }
if {(
$advertisetype != 1) && ($advertisetype != 2) && ($advertiseactivate != 1) && ($advertiseactivate != 2) && ($advertiseactivate != 3) && ($advertiseactivate != 4)} { putlog "Advertise/Spam Kicker is \002*NOT ACTIVE*\002 because: \002No *channel activation type* and *channel interface* has been seletected\002" }
return 


AsiL 16 Aralık 2007 22:13

Cevap: Tcl Arşivi
 
Tekrar Koruma

PHP- Kodu:

# Settings
# Channels where you want RepeatPro active (quoted list, spaces between channelnames)
set rp_channels "#papatya"
# Small repeat flood, kick on repeats:seconds
set rp_kflood 3:30
# Small repeat flood kick reasons
set rp_kreason {
  
"1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
}
# Large repeat flood, kick-ban on repeats:seconds
set rp_bflood 5:30
# Large repeat flood kick-ban reasons
set rp_breason {
  
"1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
}
# Spam repeat flood, kick on repeats:seconds
set rp_sflood 3:240
# Spam repeat flood kick reasons
set rp_sreason {
  
"1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
}
# Set the string length for spam-type text (lines of text shorter than this
# will not be counted by the 'spam' type repeat detector)
set rp_slength 40
# Repeat offences, ban on two repeat floods from a particular host within
# how many seconds
set rp_mtime 300
# Length of time in minutes to ban large repeat flooders and repeat
# offenders
set rp_btime 1
# Repeat offences ban reasons
set rp_mreason {
  
"1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
  "1Tekrar yapmak yasaktır!"
}

##### DON'T edit anything below this line unless you know what you're doing #####
proc rp_pubmsg {nick uhost hand chan text} {
  global 
botnick rp_count rp_scount rp_bflood rp_breason rp_btime rp_kflood rp_kreason rp_sflood rp_slength rp_sreason rp_channels
  set uhost 
[string tolower $uhost]
  
set chan [string tolower $chan]
  
set trimtext [string tolower $text]
  
set text [trimctrl $trimtext]
  if {[
lsearch -exact $rp_channels $chan] == -1} {return 0}
  if {
$nick == $botnick} {return 0}
  if {[
matchattr $hand f|f $chan]} {return 0}
  
lappend rp_count($uhost:$chan:$text1
  utimer 
[lindex $rp_bflood 1"expire rp_count($uhost:$chan:$text)"
  
if {[string length $text] > $rp_slength} {
    
lappend rp_scount($uhost:$chan:$text1
    utimer 
[lindex $rp_sflood 1"expire rp_scount($uhost:$chan:$text)"
  
}
  if {[
llength $rp_count($uhost:$chan:$text)] == [lindex $rp_bflood 0]} {
    if {[
botisop $chan] && [onchan $nick $chan]} {
      
putserv "KICK $chan $nick :[rand_reason rp_breason]"
    
}
    
newchanban $chan [wild_banmask $uhostRepeatPro [rand_reason rp_kreason$rp_btime
    
return 0
  
}
  if {[
llength $rp_count($uhost:$chan:$text)] == [lindex $rp_kflood 0]} {
    
rp_mhost $nick $uhost $chan
    
if {[botisop $chan] && [onchan $nick $chan]} {
      
putserv "KICK $chan $nick :[rand_reason rp_kreason]"
    
}
    return 
0
  
}
  if {[
info exists rp_scount($uhost:$chan:$text)]} {
    if {[
llength $rp_scount($uhost:$chan:$text)] == [lindex $rp_sflood 0]} {
      
rp_mhost $nick $uhost $chan
      
if {[botisop $chan] && [onchan $nick $chan]} {
        
putserv "KICK $chan $nick :[rand_reason rp_sreason]"
      
}
      return 
0
    
}
  }
}
proc rp_pubact {nick uhost hand dest key arg} {
  
rp_pubmsg $nick $uhost $hand $dest $arg
}
proc rp_pubnotc {from keyword arg} {
  
set nick [lindex [split $from !] 0]
  
set chan [string tolower [lindex [split $arg0]]
  if {![
validchan $chan] || ![onchan $nick $chan]} {return 0}
  
set uhost [getchanhost $nick $chan]
  
set hand [nick2hand $nick $chan]
  
set text [join [lrange [split $arg1 end]]
  
rp_pubmsg $nick $uhost $hand $chan $text
}
proc rp_mhost {nick uhost chan} {
  global 
rp_btime rp_mhosts rp_mreason rp_mtime
  
if {![info exists rp_mhosts($chan)]} {
    
set rp_mhosts($chan""
  
}
  if {[
lsearch -exact $rp_mhosts($chan$uhost] != -1} {
    
newchanban $chan [wild_banmask $uhostRepeatPro [rand_reason rp_mreason$rp_btime
  
} else {
    
lappend rp_mhosts($chan$uhost
    utimer $rp_mtime 
"rp_mhostreset $chan"
  
}
}
proc rp_mhostreset {chan} {
  global 
rp_mhosts
  set rp_mhosts
($chan) [lrange rp_mhosts($chan1 end]
}
proc trimctrl {text} { 
  
# 1) Remove any ^B, ^R, ^U control characters from the text
  
regsub -all {[]} $text "" text
  
# 2) Remove any ^K colour control characters along with their formatting numeric codes
  
regsub -all {..,..|..,.|.,..|.,.|..|.|} $text "" text
  
# 3) Remove any non-alphanumeric characters
  
regsub -all {[^!-ÿ]} $text "" text
  
# 4) Handle special Tcl characters
  
regsub -all {\;} $text "\xa1" text
  regsub 
-all {\\} $text "\xa5" text
  regsub 
-all {\[} $text "\xa6" text
  regsub 
-all {\$} $text "\xa7" text
  
  
# 5) Return contents
  
set finaltext $text
  
return $finaltext
}
proc expire var_exp {
  
upvar $var_exp var_pointer
  
if {[llength $var_pointer] > 1} {
    
set var_pointer [lrange $var_pointer 1 end]
  } else {
    unset 
var_pointer
  
}
}
proc rand_reason var_rand {
  
upvar $var_rand rand_pointer
  set rand_reason 
[lindex $rand_pointer [rand [llength $rand_pointer]]]
  return 
$rand_reason
}
proc wild_banmask {uhost} {
  
set wildhost [lindex [split [maskhost [lindex [split $uhost @] 1]] @] 1]
  
regsub {\~} [lindex [split $uhost @] 0"" wilduser
  set w_bmask 
*!*$wilduser@$wildhost
  
return $w_bmask
}
set rp_channels [string tolower $rp_channels]
set rp_kflood [split $rp_kflood :]
set rp_bflood [split $rp_bflood :]
set rp_sflood [split $rp_sflood :]
bind pubm - * rp_pubmsg
bind ctcp 
ACTION rp_pubact
bind raw 
NOTICE rp_pubnotc 


AsiL 16 Aralık 2007 22:15

Cevap: Tcl Arşivi
 
Opver Tcl

PHP- Kodu:

# Botun giriste ircop olmasi icin gerekli ircop nicki
set inick "Protecti0n"
# Buda gerekli olan sifre
set ipass "bot12345"
# Ayarlar Bu kadar.! DOKUNMAYIN!!!
#gerekli bindler
bind pub opver opver
bind evnt 
init-server baglan_yap
proc baglan_yap 
{type} {
global 
inick ipass
  putserv 
"OPER $inick $ipass"
  
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc opver {n u h c a} {
  global 
gnick
 set gnick $n
        set kanal 
[lindex $a 0]
 
putserv "SAMODE $kanal +o :$gnick"
 
putserv "PRIVMSG $c :$n $kanal Kanalinda Oplandi..!"
 
putserv "WALLOPS :$n $kanal Kanalinda Oplandi..!"



AsiL 16 Aralık 2007 22:16

Cevap: Tcl Arşivi
 
Op Voice Teşekkür

PHP- Kodu:

# here are some bindings
bind mode - * thanksfor:mode
# now the core :) procedure
# you can change colours or text, just edit
# "Thanks" part
proc thanksfor:mode nick host hand chan mode target } {
global 
botnick
if {$target == $botnick} {
   if {
$mode == "+v"} { 
    
puthelp "PRIVMSG $chan :Voice icin tesekkurler"
      
}
   if {
$mode == "+o"} { 
    
puthelp "PRIVMSG $chan :Op icin tesekkurler"
      
}
   }



AsiL 16 Aralık 2007 22:20

Cevap: Tcl Arşivi
 
Bu Tcl Örnegini Kurcaladıgınız Zaman Cok İşe Yarıyacagını Anlayacaksınız Bir Çok Şey Yaptıra Biliyorunuz Paylaşım Bizden Denemesi Sizden :)


PHP- Kodu:

# Op Commands By xTc^bLiTz
# Gonna Ask You Not To Rip This, But Since Half Of You Probably Are Not To
# Much I Can Do About It. Just Remember That Ripping This For Yourself
# Takes Away From The Statisfaction Of Making Something Like This Yourself.
# Also If I Find People Ripping My Work, I Will No Longer Post Other
# Scripts, And You Will Have To Start Making Everything For Yourself
# Give Credit Where Credit Is Due.
# This Script Contains A Bunch Of Commands To Be Used By Op/Master Flagged 
# Users To Better Control The Channel And Other Users. You Can Use 
# !commands In The Channel To List All Available Commands
# NOTE: Not All Commands Listed When You Use !commands Are Available From 
# This Script, You May Have To Edit The Commands List At The Bottom Of This 
# Script, There Is Notation There On How To Edit It.
# This Script Was Not Written Originally For Distribution, But By Popular 
# Demand/Request I Have Released It On 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">bind pub n
|!die proc_die
bind pub n
|!restart proc_restart
bind pub m
|!addop proc_addop
bind pub m
|!delop proc_delop
bind pub m
|!deluser proc_deluser
bind pub m
|!adduser proc_adduser
bind pub m
|!jump proc_jump
bind pub m
|!gban proc_gban
bind pub o
|!lc proc_lc
bind pub o
|!uc proc_uc
bind pub o
|!ban proc_ban
bind pub o
|!unban proc_unban
bind pub o
|!whois proc_whois
bind pub o
|!opme proc_opme
bind pub o
|!op proc_op
bind pub o
|!deop proc_deop
bind pub o
|!deopme proc_deopme
bind pub o
|!kick proc_kick
bind pub o
|!voice proc_voice
bind pub o
|!devoice proc_devoice
bind pub o
|!server proc_server
bind pub 
-|- !commands proc_commands
# Processes
# Process lc
proc proc_lc nick uhost hand chan args } {
putquick "PRIVMSG $chan :Locking Channel"
putquick "MODE $chan +im"
}
proc proc_uc nick uhost hand chan args } {
putquick "PRIVMSG $chan :UnLocking Channel"
putquick "MODE $chan -im"
}
# Process die
proc proc_die nick uhost hand chan text } {
if {
$text == ""} {
die 
$nick
} else { die $text }
}
# Process Restart
proc proc_restart nick uhost hand chan text } {
putquick "PRIVMSG $chan :Restart Requested By \002$nick\002. Restarting BRB... (hopefully..)"
restart
}
# Op Process
proc proc_op nick uhost hand chan text } {
putserv "MODE $chan +o $text"
}
# DeOp Process
proc proc_deop nick uhost hand chan text } {
global 
botnick
if {$text == $botnick} {
putserv "MSG $chan :umm.. no"
return 0
}
putserv "MODE $chan -o $text"
}
# Process Global Ban
proc proc_gban nick uhost hand chan text } {
global 
botnick
# if {@ isin $text} {
# +ban $text Auto-Kicked
# stick ban $text
# return 0
# }
if {[onchan $text]} {
if {
$text == $botnick} { return }
set banmask [getchanhost $text $chan]
newchanban $chan $banmask $nick Auto-Kicked 0 sticky
putkick $chan $text Auto
-Kicked
putlog 
"\002$nick\002 Globally Banned \002$text\($banmask\)\002"
} else { putserv "PRIVMSG $chan :$text Not In Channel." 
}
# Proces Jump
proc proc_jump nick uhost hand chan text } {
jump $text
}
# Process Server
proc proc_server nick uhost hand chan text } {
global 
serveraddress
putserv 
"PRIVMSG $chan :I Am Current Connected To \002$serveraddress\002"
}
# Addop Process
proc proc_addop nick uhost hand chan text } {
set addopnick [nick2hand $text]
if {[
validuser $addopnick]} {
chattr $addopnick +o
putserv 
"PRIVMSG $chan :$text Has Been Giving Auto-Op Access"
putlog "$nick added $addopnick to Auto-Op"
putquick "MODE $chan +o $text"
putserv "NOTICE $text :You Have Been Givin Auto-Op Access For Channel: \002$chan\002 use \002!commands\002 To List New Channel Commands Available To You"
} else { putserv "PRIVMSG $chan :$text Not Found In User Database, Use !whois <nickname>" }
unset 
addopnick
}
# Delop Process
proc proc_delop nick uhost hand chan text } {
set delopnick [nick2hand $text]
if {[
validuser $delopnick]} {
chattr $delopnick -o
putserv 
"PRIVMSG $chan :$text Removed From Auto-Op Access"
putlog "$nick removed $delopnick from Auto-Op"
putquick "MODE $chan -o $text"
} else { putserv "PRIVMSG $chan :$text Not Found In User Database, Use !whois <nickname>" }
unset 
delopnick
}
# Ban Process
proc proc_ban nick uhost hand chan text } {
global 
botnick
if {[onchan $text]} {
if {
$text == $botnick} { return }
set banmask [getchanhost $text $chan]
putquick "MODE $chan +b $banmask"
putkick $chan $text :Requested
} else { putserv "PRIVMSG $chan :$text Is Not In The Channel" }
}
# Unban Process
proc proc_unban nick uhost hand chan text } {
if {[
ischanban $text $chan]} {
pushmode $chan -b $text
} else { putserv "PRIVMSG $chan :$text Is Not In The Ban List" }
}
proc proc_whois nick uhost hand chan text } {
set whoisnick [nick2hand $text]
if {
$whoisnick == ""} {
putserv "PRIVMSG $chan :\002$text\002 Not Currently In Channel: \002$chan\002"
} elseif {$whoisnick == "*"} { 
putserv "PRIVMSG $chan :\002$text\002 Not Found In User Database, Use \002!adduser $text\002" 
} else { putserv "PRIVMSG $chan :I Recognize \002$text\002 As \002$whoisnick\002" }

# Process Opme
proc proc_opme nick uhost hand chan text } {
putquick "MODE $chan +o $nick"
}
# Process Deopme
proc proc_deopme nick uhost hand chan text } {
putquick "MODE $chan -o $nick"
putquick "MODE $chan +v $nick"
}
# Process AddUser
proc proc_adduser nick uhost hand chan text } {
set addusernick [nick2hand $text]
if {[
validuser $addusernick]} {
putserv "PRIVMSG $chan :\002$text\002 Is Already In User Database As \002$addusernick\002"
} else {
unset 
addusernick
set addusermask 
[maskhost $text![getchanhost $text $chan]]
adduser $text $addusermask
set addusernick 
[nick2hand $text]
putlog "\002$nick\002 Added \002$addusernick\($text\)\002 To User Database"
putserv "PRIVMSG $chan :\002$text\002 Added To User Database As \002$addusernick\002"
unset addusermask
unset addusernick
}
}
# Process DelUser
proc proc_deluser nick uhost hand chan text } {
set delusernick [nick2hand $text]
if {[
validuser $delusernick]} {
deluser $delusernick
putserv 
"PRIVMSG $chan :\002$text \($delusernick\)\002 Has Been Removed From User Database"
putlog "$nick Removed $delusernick From user Database"
} else { putserv "PRIVMSG $chan :\002$text\002 Not Found In User Database, Use !whois <nickname>" }
}
# Process Kick
proc proc_kick nick uhost hand chan text } {
if {[
onchan $text]} {
putquick "KICK $chan $text :Requested"
} else { putserv "PRIVMSG $chan :\002$text\002 Not In Channel: \002$chan\002" }
}
# Voice Process
proc proc_voice nick uhost hand chan text } {
if {[
onchan $text]} {
set voicenick [nick2hand $text]
if {[
validuser $voicenick]} {
chattr $voicenick +v
putquick 
"MODE $chan +v $text"
putserv "PRIVMSG $chan :\002$text\002 Added To Auto-Voice List"
putlog "$nick Added $voicenick To Auto-Voice List"
} else {
putquick "MODE $chan +v $text"
}
} else { 
putserv "PRIVMSG $chan :\002$text\002 Not Found In Channel: \002$chan\002"
}
}
# DeVoice Process
proc proc_devoice nick uhost hand chan text } {
if {[
onchan $text]} {
set devoicenick [nick2hand $text]
if {[
validuser $devoicenick]} {
chattr $devoicenick -v
putquick 
"MODE $chan -v $text"
putserv "PRIVMSG $chan :\002$text\002 Removed From Auto-Voice List"
putlog "$nick Removed $devoicenick From Auto-Voice List"
} else {
putquick "MODE $chan -v $text"
}
} else { 
putserv "PRIVMSG $chan :\002$text\002 Not Found In Channel: \002$chan\002" }
}
# Commands Process
proc proc_commands nick uhost hand chan text } {
if {[
matchattr $hand m|m $chan]} {
putserv "NOTICE $nick :You Are Currently Bot Master, And Have Access To The Following Commands"
proc_listcommands $nick $uhost $hand $chan
return 0
} elseif {[matchattr $hand o|o $chan]} {
putserv "NOTICE $nick :You Are Currently Auto-Op, And Have Access To The Following Commands"
proc_listcommands $nick $uhost $hand $chan
return 0
} else {
putserv "NOTICE $nick :You Are A Basic User, And Have Access To Teh Following Commands"
proc_listcommands $nick $uhost $hand $chan
return 0
}
}
# List Commands Process - This Process Is Where You Can Enter The Commands 
# For The !commands List, Just Follow The Format That Is Listed Below, Also 
# If You Have Commands Listing That You Do Not Have Available On Your Bot, 
# Then You Can Remove The Line For That Command. Feel Free To Add Any 
# Commands You Have Listed For Your Bot In Here. The Command List Is Broken 
# Down According To Flags In This Order
# Basic - People No Op/Master Flags
# Auto-Op - People Who Have Op Flag. I Used The Default o Flag, You Will 
# Have To Edit The Flags In Both This Process And The Above Process If You 
# Use A Different Flag.
# Master - People Who Have Master Flag. Again I Used Default m Flag.
proc proc_listcommands nick uhost hand chan } {
global 
botnick
putserv 
"NOTICE $nick :\002Basic User\002 Commands"
putserv "NOTICE $nick :!seen <nickname> - See When The Last Time <nickname> Was Online"
putserv "NOTICE $nick :!seennick <nickname> - Search For A Specific Nickname"
putserv "NOTICE $nick :!google <search keyword\(s\)> - Search Google And Return Top Result"
putserv "NOTICE $nick :!statsite - Get The Link To The $chan Stats Site"
putserv "NOTICE $nick :!vibrate - Gets The Bot Vibrating For You"
putserv "NOTICE $nick :!unf <nickname> - Give Someone A Good Unfin"
putserv "NOTICE $nick :!slap <nickname> - Slap Someone Around A Bit, DO NOT Abuse This Or You Will Be Banned"
putserv "NOTICE $nick :!spork <nickname> - Give Someone A Good Sporking"
putserv "NOTICE $nick :!Top<stat> - Returns The Top Statistics For The <Stat> Type. Stat Types Are: talk lol smile swear kick time speed"
putserv "NOTICE $nick :!My<stat> - Returns Your Rating In The Statistics For The <Stat> Type. Stat Types Are: talk lol smile swear kick time speed stat total."
putserv "NOTICE $nick : - Users Found Abusing The !Top And !My Commands Will Be Banned From The Bot And Stats Will Not Be Recorded For Them. Please Use Some Courtesy Here."
putserv "NOTICE $nick :End Of Basic User Commands"
if {[matchattr $hand o|o $chan]} {
putserv "NOTICE $nick :\002Auto-Op\002 Commands"
putserv "NOTICE $nick :!commands - Kinda Obvious Don't Ya Think.."
putserv "NOTICE $nick :!opme - Have The Bot Op You"
putserv "NOTICE $nick :!deopme - Have The Bot De-Op You"
putserv "NOTICE $nick :!op <nickname> - Have The Bot Op Someone"
putserv "NOTICE $nick :!deop <nickname> - Have Tbe Bot DeOp Someone"
putserv "NOTICE $nick :!whois <nickname> - Find Out If The Nickname Is In The Bots User Database"
putserv "NOTICE $nick :!kick <nickname> - Have The Bot To A Quick Kick Of Nickname"
putserv "NOTICE $nick :!ban <nickname> - Have The Bot Do A Quick Kick/Ban Of Nickname"
putserv "NOTICE $nick :!server - Find Out What Server:Port The Bot Is On"
putserv "NOTICE $nick :!lc - Lock The Channel To Prevent Flooding"
putserv "NOTICE $nick :!uc - Unlock The Channel"
putserv "NOTICE $nick :!seenstats - Display Database Information For !seen Database"
putserv "NOTICE $nick :End Of Auto-Op Commands"
}
if {[
matchattr $hand m|m $chan]} {
putserv "NOTICE $nick :\002Bot Master\002 Commands"
putserv "NOTICE $nick :!addop <nickname> - Add The Nickname To The Bots Auto-Op List"
putserv "NOTICE $nick :!delop <nickname> - Remove The Nickname From The Bots Auto-Op List"
putserv "NOTICE $nick :!adduser <nickname> - Add User To The User Database With Default Flags"
putserv "NOTICE $nick :!deluser <nickname> - Remove A User From The Bots Database, Can Be Used If User Needs To Re-Register With The Bot"
putserv "NOTICE $nick :!jump <server> - Forces The Bot To Change Servers To Server Entered"
putserv "NOTICE $nick :!update - Manually Update The Stats Site"
putserv "NOTICE $nick :getlog <date> - Have A Logfile From A Certain Date Sent To You. Usage: /msg $botnick getlog <ddMonyyyy> \(ie getlog 01Jul2005\) Month MUST Have A Capital First Letter"
putserv "NOTICE $nick :!gban <nickname> - Add A Global Ban To The Bots Internal Ban List (ie: akick)"
putserv "NOTICE $nick :!noop <nickname> - Adds A Flag To The Nickname That Prevets The Person From Being Op\'d"
putserv "NOTICE $nick :!allowop <nickname> - Removes The Flag That Prevents People From Getting Op\'d"
putserv "NOTICE $nick :End Of Bot Master Commands"
}
}
 
putlog "*** Op Commands by xTc^bLiTz <
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
> Loaded" 


AsiL 16 Aralık 2007 22:22

Cevap: Tcl Arşivi
 
Otomatik Voice Verme

PHP- Kodu:

############################## _\|/_ ###############################
##
## autovoice on pubmsg script v1.2 
## by aerosoul@IRCNet (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)
##
## this script will give voice to users who say something on the
## channel and devoice them after idle time.
##
## people will have a overlook of who idles and who is active on your
## channels (especially for chans with bot-only ops)
##
## - add voice on pubmsg for #channel : 
##   .chanset #channel +av.pubmsg
##   remove with .chanset #channel -av.pubmsg
## - add devoice after idle time for #channel :
##   .chanset #channel +av.devoice
## - optionally set devoice time in the bots partyline :
##   .chanset #channel av.dtime 30 (in minutes)
##
## there is a little delay before voicing, so there won't be
## modefloods.
##
## tell me bugs and suggestions @ IRCNet #playaz or 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

## (no, I don't write a version for older eggys, sorry.)
## if you want to send me ganja, please leave a msg ;)
##
## v1.2 28. may 2001: - added option to set devoice time @ partyline
##   - fixed some stuff / cleaned up
##    - removed responding to stupid "thank you, bot"
##     scripts
##   - the script now also voices @'s. makes more
##     sense =)
##
############################## _\|/_ ###############################
#################################################################
#
# Bu script ile kanalda surekli konusan kullanicilara bot otomatik olarak
# +v verir. Eger Belli bir sure konusmazlarsa +v yi alir.
# Kullanabileceginiz komutlar:
# .chanset #kanal +av.pubmsg       otomatik voice verme islemi belirtilen kanal icin aktif olur.
# .chanset #kanal -av.pubmsg       otomatik voice verme kapatilir.
# .chanset #kanal +av.devoice      belli sure konusmayanlar devoice yapilir.
# .chanset #kanal av.dtime <sure>  +v olan kullanici en fazla ne kadar konusmadan durabilir.
# sure dakika cinsinden girilecek.
# Bu komutlari sadece partylineda kullanabilirsiniz.    
# kac dakika konusmazsa devoice olacak
set av_dtime 10
# hangi bayraga sahip kullanicilar devoice yapilmayacak
set av_nodevoiceflag "2fgb"
# +1 bayragina sahip kullaniclar +v alamayacaktir.
set av_novoiceflag "1"
# devoiceleri partylineda goster ? (0/1)
set av_partylog 0
# voice vermeden once hak saniye beklenecek 
set av_delay 20
# oplara voice ver? (0/1)
set av_opvoice 0
# !!!!!!!!!!! Ayarlamalar Bitti !!!!!!!!!!!!!!!!!
############################## _\|/_ ###############################
# # # # # # # # # # don't edit below this line # # # # # # # # # # #
# # # # # # # # if you don't know what you're doing  # # # # # # # #
if {$numversion "1050000"} {
 
putlog "you need eggdrop version >1.5 for autovoice on pubmsg script to work"
 
return 0
}
setudef flag av.pubmsg
setudef flag av
.devoice
setudef int av
.dtime
proc av_main 
{nik uhost hand chan text} { 
 global 
av_delay av_novoiceflag
 set delay 
[expr 1 + [rand $av_delay]] 
 if {![
string match *av_devoice* [timers]]} {timer [expr 3 + [rand 5]] av_devoice}
 
set chan [string tolower $chan
 if {[
av_fcheck $chan] == 0} {return 0}
 if {[
matchattr $hand $av_novoiceflag] || [matchattr $hand |$av_novoiceflag $chan]} { 
 return 
0
 
}
 if {![
isvoice $nik $chan]} { 
 
utimer $delay [split "av_doit $chan $nik"
 }
}
proc av_doit {vchan vnick} { 
global 
av_opvoice
 
if {![isvoice $vnick $vchan]} {
  if {(
$av_opvoice == 0) && [isop $vnick $vchan]} { return }
  
pushmode $vchan +v $vnick 
 


proc av_devoice {} {
global 
av_dtime av_nodevoiceflag av_partylog
if {![string match *av_devoice* [timers]]} {timer [expr 1 + [rand 3]] av_devoice}
 foreach 
chan [channels] {
  
set dtime $av_dtime
  
if {[av_cdtime $chan] != 0} {
   
set dtime [av_cdtime $chan]
  }
  
set av_deoplist ""
  
if {[av_dcheck $chan] == 1} {
   foreach 
user [chanlist $chan] {
    
set hand [nick2hand $user]
    if {[
matchattr $hand $av_nodevoiceflag] || [matchattr $hand |$av_nodevoiceflag $chan]} {
 continue
    }
    if {([
getchanidle $user $chan] > $dtime) && [isvoice $user $chan]} {
 
pushmode $chan -v $user
 set av_deoplist 
"$av_deoplist $user"
    
}
   }
   if {
$av_partylog == 1} {
    
set count 0
    
foreach u $av_deoplist {
 
set count [expr $count 1]
    }
    if {(
$count != 0)} {
     
putlog "-\[ av.pubmsg \]- devoicing $count users in $chan$av_deoplist"
    
}
   }
  }
 }
}
proc av_cdtime {chan} {
 foreach 
info [string tolower [channel info $chan]] {
  if {[
lindex $info 0] == "av.dtime"} {
   return [
lindex $info 1]
  }
 }
}
proc av_fcheck {chan} {
 foreach 
info [channel info $chan] {
  if {[
string tolower [string range $info 1 e]] == "av.pubmsg"} {
   if {[
string index $info 0] == "-"} {
    return 
0
   
} else {
    return 
1
   
}
  }
 }
 return 
0
}
proc av_dcheck {chan} {
 foreach 
info [channel info $chan] {
  if {[
string tolower [string range $info 1 e]] == "av.devoice"} {
   if {[
string index $info 0] == "-"} {
    return 
0
   
} else {
    return 
1
   
}
  }
 }
 return 
0
}
set autovoice_chans ""
foreach chan [channels] {
 if {[
av_fcheck $chan] == 1} {
 
set autovoice_chans "$autovoice_chans $chan"
 
}
}
if {![
string match *av_devoice* [timers]]} {timer [expr 3 + [rand 5]] av_devoice}
bind pubm - * av_main
############################## _\|/_ ###############################
putlog "-\[ voice on pubmsg script v1.2 by aerosoul active on: $autovoice_chans \]-"
############################ legalize! ############################# 


AsiL 16 Aralık 2007 22:24

Cevap: Tcl Arşivi
 
mass join flood

PHP- Kodu:

#--------------------------------------------------------------------------------------------------------------------#
#                                 ANTI MASS JOIN / JOIN FLOOD PROTECTION SCRIPT BY RANA USMAN                        #
#--------------------------------------------------------------------------------------------------------------------#
#  AUTHOR :  RANA USMAN
## EMAIL  :  
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
 , 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

## URL    :  
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set joinlockmodes 
"mr"
## Set the banmask type to use in banning the join floods
# Currently BAN Type is set to 1 (*!*@any.domain.com),
# BAN Types are given below;
# 1 - *!*@some.domain.com 
# 2 - *!*@*.domain.com
# 3 - *!*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

# 4 - *!*ident@*.domain.com
# 5 - *!*ident*@some.domain.com
# 6 - *nick*!*@*.domain.com
# 7 - *nick*!*@some.domain.com
# 8 - nick!
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

# 9 - nick!ident@*.host.com
set bantype "1"
## Set the time in seconds to Unlock Modes 
# The Bot will Unlock the channel after the specified time you will set below
set unlocktime "15"
## Set The Punish Type
# Set it to '1' if you want to add the Ban for joinflood in bots list.By doing it Bot will ban the IP everytime when the 
# clone will join the channel even if it is unbanned from channel OR Simply a stick ban
# Set it to '2' for a simple channel Ban :) :: RECOMMENDED ::
set joinpunish "2"
## Set the reason you want to give while kicking 
set jreason "Mass Join Flood"
###########################
# CONFIGURATION ENDS HERE #
###########################
#--------------------------------------------------------------------------------------------------------------------#
#  SCRIPT STARTS FROM HERE.YOU CAN MAKE MODIFICATIONS AT UR OWN RISK, I DONT RESTRICT YOU TO NOT TO TOUCH THE CODE!  #
#--------------------------------------------------------------------------------------------------------------------#
bind flud join joinflood:RanaUsman
proc joinflood
:RanaUsman {nick uhost hand type chan} {
global 
joinlockmodes banmask unlocktime joinpunish jreason botnick
if {![botisop $chan] || [matchattr $hand of]} { return }
set banmask [joinpart:banmask $uhost $nick]
if {(
$joinpunish == 1)} { 
putquick "MODE $chan +$joinlockmodes"
newchanban $chan $banmask $botnick $jreason
putquick 
"KICK $chan $nick :$jreason"
utimer $unlocktime[list putquick "MODE $chan -$joinlockmodes"]
}
if {(
$joinpunish == 2)} { 
putquick "MODE $chan +$joinlockmodes"
putquick "MODE $chan +b $banmask"
putquick "KICK $chan $nick :$jreason"
utimer $unlocktime[list putquick "MODE $chan -$joinlockmodes"]
 }
}
proc joinpart:banmask {uhost nick} {
 global 
bantype
  
switch -- $bantype {
   
set banmask "*!*@[lindex [split $uhost @] 1]" }
   
set banmask "*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
   
set banmask "*!*$uhost}
   
set banmask "*!*[lindex [split [maskhost $uhost] "!"] 1]" }
   
set banmask "*!*[lindex [split $uhost "@"] 0]*@[lindex [split $uhost "@"] 1]" }
   
set banmask "*$nick*!*@[lindex [split [maskhost $uhost] "@"] 1]" }
   
set banmask "*$nick*!*@[lindex [split $uhost "@"] 1]" }
   
set banmask "$nick![lindex [split $uhost "@"] 0]@[lindex [split $uhost @] 1]" }
   
set banmask "$nick![lindex [split $uhost "@"] 0]@[lindex [split [maskhost $uhost] "@"] 1]" }
   default { 
set banmask "*!*@[lindex [split $uhost @] 1]" }
   return 
$banmask
  
}
}
#-------------------------------------------------------------------------------------------------------------------------#
putlog "=- \002ANTI MASS JOIN/JOIN FLOOD PROTECTION BY RANA USMAN (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #FF8000">#-------------------------------------------------------------------------------------------------------------------------# 


AsiL 16 Aralık 2007 22:26

Cevap: Tcl Arşivi
 
Özele Reklam

PHP- Kodu:

bind pubm "s*e*r*v*e*r" pub_dont_invite
bind pubm 
"w*w*w.*" pub_dont_invite
bind pubm 
"i*r*c*.*" pub_dont_invite
bind pubm 
"h*t*t*p*:*/*" pub_dont_invite
bind pubm 
"f*t*p*:*/*" pub_dont_invite
bind pubm 
"*.*c*o*m" pub_dont_invite
bind pubm 
"*.*n*e*t" pub_dont_invite
bind pubm 
"*.*o*r*g" pub_dont_invite
bind pubm 
"*sikerim*" pub_dont_invite
bind pubm 
"*SİKERİM*" pub_dont_invite
bind pubm 
"*****" pub_dont_invite
bind pubm 
"***" pub_dont_invite
bind pubm 
"***ler" pub_dont_invite
bind pubm 
"********" pub_dont_invite
bind pubm 
"*pezevenk*" pub_dont_invite
bind pubm 
"*siktir*" pub_dont_invite
proc pub_dont_invite 
{nick host handle channel arg} {
global 
botnick
if {![isop $botnick $channel]} {return 0}
if {[
isop $nick $channel]} {
return 
0
}
set n2hand [nick2hand $nick $channel]
if {([
matchattr $n2hand m] || [matchattr $n2hand p]  || [matchattr $n2hand b] || [matchattr $n2hand n] || [matchattr $n2hand f])} {
return 
0
}
if [
regexp -nocase dcc $nick] {return 0}
set banmask "*!*[string trimleft [maskhost [getchanhost $nick $channel]] *!]"
set targmask "*!*[string trimleft $banmask *!]"
set ban $targmask
putserv 
"KICK $channel $nick :Özele Reklam/Küfür"
pushmode $channel +b $ban
return 1
}
putlog "ozelreklam.tcl by mirchane.com" 


AsiL 16 Aralık 2007 22:33

Cevap: Tcl Arşivi
 
Karsılama Tcl

PHP- Kodu:

proc join_greet {nick uhost handle channel} {
     
putserv "privmsg $nick :12mesajınız14 Sohbet Odalarina Hosgeldiniz!"
     
putserv "privmsg $nick :12siteniz14.com"
   
}
bind join - * join_greet 


AsiL 16 Aralık 2007 22:35

Cevap: Tcl Arşivi
 
PHP- Kodu:

#!/usr/bin/tclsh
################################################################################

# TCL scripts by Ofloo all rights reserved.

# HomePage: http://ofloo.net/
# CVS: http://cvs.ofloo.net/
# Email: support[at]ofloo.net

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

################################################################################
#
# Easy install 
#
# 1st you down load it from the webserver.. to your shell
# 2nd you type "tar -jxvf filename" in your shell
# 3th you copy it to your script dir
# 4th you edit your eggdrop.conf file and add "source scripts/ip-to-country.tcl"
# 5th edit the settings below to your preference, now rehash your bot and you're done.
#
namespace eval ip2c {

variable trigger "!ip2c" ;# channel trigger
variable channel "#channel1,#channel2,#channel3" ;# define your list of channels seperated by a ','
variable flag "-" ;# this flag decides who gets to use your trigger
variable ismode "0" ;# 0 public, 1: user needs to be voiced, 2:user needs halfops, 3: user needs ops
#
# cookies to use in msg templates.
#
# %n% nick
# %c% channel
# %h% handle
# %k% short value ex: BE
# %l% long value ex: BEL
# %f% Full value ex: Belguim
# %i% input (nick,host,ip, .. !ip2c <input>)
#

#
# templates
#

variable ip2cip "PRIVMSG %c% :Ip2c lookup for \(\002%i%\002\) is \(\002%f%\002\)." ;# lookup ipaddr
variable ip2cnick "PRIVMSG %c% :Ip2c lookup for \(\002%i%\002\) is \(\002%f%\002\)." ;# lookup nickname
variable ip2chost "PRIVMSG %c% :Ip2c lookup for \(\002%i%\002\) is \(\002%f%\002\)." ;# lookup hostname
variable invalid "NOTICE %n% :Error usage: $trigger <nick|host|ip>." 
variable unknown "PRIVMSG %c% :There are no results for \(\002%i%\002\)."
variable dnserror "PRIVMSG %c% :Error couldn't associate an valid ip with \(\002%i%\002\)." 
variable notonchan "PRIVMSG %c% :Error \(\002%i%\002\) is not on \(\002%c%\002\)." ;# user is not on channel
#
# Do not edit below if you do not know what it is you are doing.
#

variable version "0.7"
variable longversion "1121868771"
proc ip2c_pub {nick host hand chan arg} {
variable invalidvariable ip2cipvariable unknownvariable notonchan
if {[ischan $chan] && [ismode $nick $chan]} {
if {[
llength $arg] && ([llength $arg] < 2)} {
if {[
isip $arg]} {
if {[catch {
socket -async ip2c.ofloo.net 80s]} {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">putserv 
[string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
} else {
fileevent $s writable[list [namespace current]::async_callback_ip $s $arg $nick $hand $chan $arg]
}
} elseif {[
ishost $arg]} {
dnslookup $arg [namespace current]::dns_callback_host $nick $hand $chan $arg
} elseif {[onchan $arg $chan]} {
dnslookup [lindex [split [getchanhost $arg] \x40end] [namespace current]::dns_callback_nick $nick $hand $chan $arg
} elseif {![onchan $arg $chan]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $notonchan] -next
} else {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $invalid] -next
}
} else {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $invalid] -next
}
}
}
proc dns_callback_nick {ip host status nick hand chan arg} {
variable dnserrorvariable unknown
if {$status} {
if {[catch {
socket -async ip2c.ofloo.net 80s]} {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">putserv 
[string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
} else {
fileevent $s writable[list [namespace current]::async_callback_nick $s $ip $nick $hand $chan $arg]
}
} else {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $dnserror] -next
}
}
proc dns_callback_host {ip host status nick hand chan arg} {
variable dnserrorvariable unknown
if {$status} {
if {[catch {
socket -async ip2c.ofloo.net 80s]} {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">putserv 
[string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
} else {
fileevent $s writable[list [namespace current]::async_callback_host $s $ip $nick $hand $chan $arg]
}
} else {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $dnserror] -next
}
}
proc async_callback_host {s ip nick hand chan arg} {
variable ip2chostvariable unknownvariable version
if {[string equal {} [fconfigure $s -error]]} {
flush $s
puts $s 
"GET /[ip2longip $ip] HTTP/1.1"
puts $s "Host: ip2c.ofloo.net"
puts $s "Connection: Close"
puts $s "User-Agent: Ip-to-Country lookup script version $version\n"
flush $s
while {![eof $s]} {
gets $s x
if {[regexp -nocase {<resolve[\x20]{0,100}c02="([a-z]{2})"[\x20]{0,100}c03="([a-z]{3})"[\x20]{0,100}full="(.*?)"[\x20]{0,100}/>} $x -> k l f]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k$k %l$l %f% [wFormat $f]] $ip2chost] -next
break
}
}
close $s
if {![info exists k]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
}
} else {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}
}
proc async_callback_nick {s ip nick hand chan arg} {
variable ip2cnickvariable unknownvariable version
if {[string equal {} [fconfigure $s -error]]} {
flush $s
puts $s 
"GET /[ip2longip $ip] HTTP/1.1"
puts $s "Host: ip2c.ofloo.net"
puts $s "Connection: Close"
puts $s "User-Agent: Ip-to-Country lookup script version $version\n"
flush $s
while {![eof $s]} {
gets $s x
if {[regexp -nocase {<resolve[\x20]{0,100}c02="([a-z]{2})"[\x20]{0,100}c03="([a-z]{3})"[\x20]{0,100}full="(.*?)"[\x20]{0,100}/>} $x -> k l f]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k$k %l$l %f% [wFormat $f]] $ip2cnick] -next
break
}
}
close $s
if {![info exists k]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
}
} else {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}
}
proc async_callback_ip {s ip nick hand chan arg} {
variable ip2cipvariable unknownvariable version
if {[string equal {} [fconfigure $s -error]]} {
flush $s
puts $s 
"GET /[ip2longip $arg] HTTP/1.1"
puts $s "Host: ip2c.ofloo.net"
puts $s "Connection: Close"
puts $s "User-Agent: Ip-to-Country lookup script version $version\n"
flush $s
while {![eof $s]} {
gets $s x
if {[regexp -nocase {<resolve[\x20]{0,100}c02="([a-z]{2})"[\x20]{0,100}c03="([a-z]{3})"[\x20]{0,100}full="(.*?)"[\x20]{0,100}/>} $x -> k l f]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k$k %l$l %f% [wFormat $f]] $ip2cip] -next
break
}
}
close $s
if {![info exists k]} {
putserv [string map[list %n$nick %h$hand %i$arg %c$chan %k% {} %l% {} %f% {}] $unknown] -next
}
} else {
putlog "Error couldn't connect to webserver plz inform the webmaster at 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}
}
proc wFormat {arg} {
foreach {
w} [string tolower $arg] {
if {[
info exists word]} {unset word}
foreach 
[split $w {}] {
if {[
info exists word]} {
append word $x
} else {
append word [string toupper $x]
}
}
lappend str $word
}
return 
$str
}
proc longip2ip {long} {
return [
join [scan [format %.8x $long] %2x%2x%2x%2x] \x2e]
}
proc ip2longip {ip} {
return [
format %u 0x[eval format %.2x%.2x%.2x%.2x [split $ip \x2e]]]
}
 
proc isip {ip} {
if {[
regexp {^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$} $ip -> a b c d]} {
if {(
$a <= 255) && ($b <= 255) && ($c <= 255) && ($d <= 255)} {
return 
1
}
}
return 
0
}
proc ishost {host} {
if {[
regexp -nocase {[a-z\-]{1,100}\.[a-z]{2,4}$} $host]} {
return 
1
}
return 
0
}
proc ischan {chan} {
variable channel
foreach {x} [split $channel \x2c] {
if {[
string equal -nocase $x $chan]} {
return 
1
}
}
return 
0
}
proc ismode {nick chan} {
variable ismode
switch -exact $ismode {
"0" {
return 
1
}
"1" {
if {[
isvoice $nick $chan] || [ishalfop $nick $chan] || [isop $nick $chan]} {
return 

}
}
"2" {
if {[
ishalfop $nick $chan] || [isop $nick $chan]} {
return 

}
}
"3" {
if {[
isop $nick $chan]} {
return 

}
}
}
return 
0
}
bind pub $flag $trigger [namespace current]::ip2c_pub
################################################################################
putlog "Loaded \002Ip-to-Country.tcl\002 version \002$version\002 by \002Ofloo\002."



AsiL 16 Aralık 2007 22:39

Cevap: Tcl Arşivi
 
İnviter Koruma

PHP- Kodu:

#########################################################################
#                                                         mirchane.com  #
#   _|_|_|_|_|                                        _|            _| #
#       _|      _|_|_|  _|  _|_|    _|_|_|  _|    _|        _|_|_| #
#       _|    _|    _|  _|_|      _|    _|  _|    _|  _|  _|        _|  #
#       _|    _|    _|  _|        _|    _|  _|    _|  _|  _|        _|  #
#       _|      _|_|_|  _|          _|_|_|    _|_|_|  _|    _|_|_|  _|  #
#                                                 _|                    #
#                                             _|_|   _|_|          _|   #
#                                                  _|   _|       _|  _| #
#                                                      _|        _|  _| #
#                                                    _|          _|  _| #
#                                                  _|_|_|_|   _|   _|   #
#                                                                       #
#########################################################################
#########################################################################
# inviterlerin serverdan nasıl atılacagını belirler.                    #
# Kline için "kline" ; Kill için "kill" yazınız.                        #
#                                                                       #
  
set atma "kline"
  
set ktime "+3600"
#########################################################################
# inviterlerin serverdan  atılırken yazılacak mesajı belirler.          #
#                                                                       #
  
set txt "1Reklam/Küfür tespit edildi. Auto Kline!"
#########################################################################
# Kanaldan cıkıp kanala girme zamanını belirler. (Dakika turunden)      #
#                                                                       #
  
set cikgir 5
#########################################################################
# host gizlemede kullanılacak ipyi belirler.                            #
# ornek : 1342A7A7.45327A5C.55774CAB1.IP                                #
#                                                                       #
 
set host "Scanner"
#########################################################################
# Botun nicki confdaki nickle aynı olmalıdır.                           #
#                                                                       #
 
set bnick H-B
#########################################################################
#                                                                       #
#                          !! DIKKAT !!                                 #
#      Burdan sonrasında oynama yapmayınız. Botunuzun hatalı            #
#             çalışmasına sebebiyet verebilirsiniz.                     #
#                                                                       #
#########################################################################
set hst 1
set host Scanner
set colornum 0
bind msgm 
"*s*e*r*v*e*r*" tara
bind msgm 
"*i*r*c*.*" tara
bind msgm 
"*w*w*w*.*" tara
bind msgm 
"h*t*t*p*:*/*" tara
bind msgm 
"*.*c*o*m*" tara
bind msgm 
"*.*n*e*t*" tara
bind msgm 
"*i*r*c*.*k*i*t*l*e*.*n*e*t*" tara
bind msgm 
"*.tr*" tara
bind msgm 
"*******" tara
bind msgm 
"*p0rn0*" tara
bind msgm 
"film" tara
bind msgm 
"***" tara
bind msgm 
"seks" tara
timer $hst host
proc host 
{} {
 global 
bnick host
  putserv 
"chghost $bnick $host"
  
putserv "mode $bnick +H"
}
timer $cikgir cikgir
proc cikgir 
{} {
 global 
cikgir
 
foreach kanal [channels] {
  
putserv "part $kanal"putserv "join $kanal"timer $cikgir cikgir
 
}
}
proc tara {nick uhost hand thinks} {
global 
colornum txt atma botnick ktime
   putserv 
"$atma $nick $ktime$txt"
}
#########################################################################
# Tarayici Version 2.0                                                  #
putlog "Tarayici 2.0 =- By mirchane.com -= yuklendi."
# Tarayici Version 2.0                                                  #
######################################################################### 


AsiL 16 Aralık 2007 22:49

Cevap: Tcl Arşivi
 
Help Bot

PHP- Kodu:

set colornum 0
set reklamknum 1
set reklamunum 0
bind msg 
- !yardim helpme
proc helpme 
{nick uhost hand stuff} {
  global 
colornum botnick
  
if {!([matchattr $hand o] || [matchattr $hand m])} { set cchoice [lindex $stuff 0] }
  
set cchoice [lindex $stuff 0]
  
putserv "PRIVMSG $nick : 14Merhaba12 $nick"  
  
putserv "PRIVMSG $nick : 14Anamenu'ye hoşgeldiniz" 
  
putserv "PRIVMSG $nick : 14Ben size yardim etmek üzere özel olarak tasarlanmış Robotum!"
  
putserv "PRIVMSG $nick : "
  
putserv "PRIVMSG $nick : 14Servisler hakkında yardım almak için 12!menu14 yaziniz."
  
putserv "PRIVMSG $nick : 14Helper alimlari hakkında bilgi edinmek için 12!helper14 yazınız."
  
putserv "PRIVMSG $nick : "
  
putserv "PRIVMSG $nick : 14Benim hakkımda bilgi almak için 12!version14 yazınız."
  
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!yardim14 tamamlanmıştır.."
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     ChanServ Başlangıç              #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !chanmenu chanM
proc chanM 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 12ChanServ14 menüsüne hoş geldiniz;"
 
putserv "PRIVMSG $nick : 4!register 4!identify 4!access 4!akick"
 
putserv "PRIVMSG $nick : 4!info     4!mlock    4!op     4!mode"
 
putserv "PRIVMSG $nick : 14Size gerekli yardım vermebilmem için lütfen seçiminizi yapınız."
 
putserv "PRIVMSG $nick : 14Menüde yazanlar hakkında açıklama isterseniz 6!chanacikla yazmanız yeterlidir."
 
putserv "PRIVMSG $nick : 12ChanServ14 ile ilgili yardımım yeterli gelmezse sorularınızı kanal @ larına sorunuz .."
 
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!chanmenu14 tamamlanmıştır.." 
}
bind msg - !chanacikla Cacik
proc Cacik 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Kanal kayıt etmek istiyorsanız 4!register"
 
putserv "PRIVMSG $nick : 14Kanalınız Chanserv e tanıtmak için 4!identify"
 
putserv "PRIVMSG $nick : 14Kanalınızda bir kullanıcıya access (aop,sop) eklemek için 4!access"
 
putserv "PRIVMSG $nick : 14Kanalınızda istemediginiz bir kullanıcıyı kanala alamamak için 4!akick"
 
putserv "PRIVMSG $nick : 14Kanal hakkında bilgi almak için 4!info"
 
putserv "PRIVMSG $nick : 14Kanal modelerini ChanServden değiştirmek için 4!mlock" 
 
putserv "PRIVMSG $nick : 14Kanal modları hakkında bilgi almak için 4!mode"
 
putserv "PRIVMSG $nick : 14Aciklama menüsü bitti şimdi ilgilendiginiz bölümü seçiniz"
}
bind msg - !register Ckayit
proc Ckayit 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : /msg chanserv register #kanal şifre açıklama "
 
putserv "PRIVMSG $nick : Kanal ınızı kaydetmek için bu komutu kullanabilirsiniz."
}
bind msg - !identify Ciden
proc Ciden 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : Ayni nickte oldugu gibi chanserv'in sizi tanimasi ve kanalda ilgili en yüksek Kisi olmaniz için bu yapmaniz gerekli" 
 
putserv "PRIVMSG $nick : /msg chanserv identify #kanal sifre"
}
bind msg - !access Cacc
proc Cacc 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : /msg chanserv access #kanal add nick seviye"
 
putserv "PRIVMSG $nick : Kanalda VOP Eklemek için Seviye: 30"
 
putserv "PRIVMSG $nick : Kanalda HALFOP Eklemek için Seviye: 40"
 
putserv "PRIVMSG $nick : Kanalda AOP Eklemek için Seviye: 50"
 
putserv "PRIVMSG $nick : Kanalda SOP Eklemek için Seviye: 999"
}
bind msg - !akick Cakick
proc Cakick 
{nick uhost hand stuff} {
 global 
colornum botnick 
 putserv 
"PRIVMSG $nick : /msg chanserv akick #kanal add nick!ident@ip Sebeb"
 
putserv "PRIVMSG $nick : Bu Sizin kanala girmesini istemediginiz kisileri kanala sokamazlar. Yani Bir Nevi yasak gibi.. Add (ekle), del (sil), List (Liste)."
}
bind msg - !info Cinfo
proc Cinfo 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : Bir kanalin kimin ait oldugunu ve diger bilgilerinide gösterir." 
 
putserv "PRIVMSG $nick : /msg chanserv info #kanal"
}
bind msg - !mlock Cmlock
proc Cmlock 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : Kanalin bir çok ayari bu komutla kilitlenir. Herhangi bir opun kanalin ayarlari ile oynayamamasi için kullanilir. En ideal sekli +ntr-ispklmR olmasidir."
 
putserv "PRIVMSG $nick : /msg chanserv set #kanal mlock +ntr-ispklmR"
}
bind msg - !op Cop
proc Cop 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : /msg chanserv aop #kanal add nick"
 
putserv "PRIVMSG $nick : Kanalınıza aop eklemek için bu komutu kullanabilirsiniz. Silmek için add yerine del yazmalınız."
 
putserv "PRIVMSG $nick :"
 
putserv "PRIVMSG $nick : /msg chanserv sop #kanal add nick"
 
putserv "PRIVMSG $nick : Kanalınıza sop eklemek için bu komutu kullanabilirsiniz. Unulmamalıdır ki her sop aop ekleyebilir."
}
bind msg - !mode Cmode
proc Cmode 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : Kanal Modelari Bolumu"
 
putserv "PRIVMSG $nick : +m: Kanalda sadece op ve voiceler konusabilir."
 
putserv "PRIVMSG $nick : +M: Kanalda sadece nicki kayitli kullanicilar konusabilir."
 
putserv "PRIVMSG $nick : +R: Kanala sadece nicki kayitli kullanicilar girebilir."
 
putserv "PRIVMSG $nick : +i: Kanala sadece davet edilen kullanicilar girebilir."
 
putserv "PRIVMSG $nick : +l: Kanala kullanici sayisi limit koyar."
 
putserv "PRIVMSG $nick : +p: Kanalin whois ve list 'de cikmasini engeller."
 
putserv "PRIVMSG $nick : +s: Kanalin sadece whois de cikmasini engeller."
 
putserv "PRIVMSG $nick : +k: Kanala sifre koyar."
 
putserv "PRIVMSG $nick : +G: Sunucu tarafindan yasaklanmis kelimelerin kullanilmasini engeller."
 
putserv "PRIVMSG $nick : +t: Topici sadece oplarin degistirebilmesini saglar."
 
putserv "PRIVMSG $nick : +n: Kanala disaridan mesaj yollanmasini engeller."
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     NickServ Başlangıç              #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !nickmenu nickM
proc nickM 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 12NickServ14 menüsüne hoş geldiniz;"
 
putserv "PRIVMSG $nick : 4!regnick 4!idenick 4!password 4!kill"
 
putserv "PRIVMSG $nick : 4!ghost   4!release 4!url-icq"
 
putserv "PRIVMSG $nick : 14Size gerekli yardım vermebilmem için lütfen seçiminizi yapınız."
 
putserv "PRIVMSG $nick : 14Menüde yazanlar hakkında açıklama isterseniz 6!nickacikla yazmanız yeterlidir."
 
putserv "PRIVMSG $nick : 14NickServ ile ilgili yardımım yeterli gelmezse sorularınızı kanal @ larına sorunuz .."
 
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!nickmenu14 tamamlanmıştır.."
}
bind msg - !nickacikla Nacik
proc Nacik 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Kullandıgınız Nickinizi kayıt etmek istiyorsanız 4!regnick" 
 
putserv "PRIVMSG $nick : 14Nickinizi NickServ e tanıtmak için 4!idenick"
 
putserv "PRIVMSG $nick : 14Nickinizin şifresini değiştirmek için 4!password"
 
putserv "PRIVMSG $nick : 14Nickinize bir koruma eklemek için 4!kill"
 
putserv "PRIVMSG $nick : 14Asılı kalan Nick inizi düşürmek için 4!ghost" 
 
putserv "PRIVMSG $nick : 14Nickiniz başkası tarafından kullanılıyor ise 4!release"
 
putserv "PRIVMSG $nick : 14Nickinizin infosuna url veya icq no eklemek 4!url-icq"
}
bind msg - !regnick Nreg
proc Nreg 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Nickinizi kayit edebilmenizi sağlar"
 
putserv "PRIVMSG $nick : 12/msg nickserv register sifre e-mail"
}
bind msg - !idenick Niden
proc Niden 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Kayıtlı nickinizi NickServ e her baglandıgınızda tanıtmanız gerekir."
 
putserv "PRIVMSG $nick : 12/msg nickserv identify sifre"
}
bind msg - !password Npas
proc Npas 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Nickinizin şifresini değistirmek için kullanılır. Komutu kullanmak için nickinizi identify edilmiş olması gerekir."
 
putserv "PRIVMSG $nick : 12/nickserv set password yenisifre"
}
bind msg - !kill Nkill
proc Nkill 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Bu komut siz yokken nickinizin kullanılmasını engeller."
 
putserv "PRIVMSG $nick : 14Nickinizin sifresini 1 dakika içinde yazmassanız veya 3"
 
putserv "PRIVMSG $nick : 14tane yanlış şifre girerseniz serverdan killeneceksiniz." 
 
putserv "PRIVMSG $nick : 12/msg nickserv set kill on"
}
bind msg - !ghost Ngho
proc Ngho 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Serverdan düştünüz ama nickiniz aslı kaldı. Nickinizi kurtarmak için."
 
putserv "PRIVMSG $nick : 12/msg nickserv ghost nick sifre" 
}
bind msg - !release  Nrel
proc Nrel 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Nickiniz kullaniliyorsa onu serverdan düsürürsünüz."
 
putserv "PRIVMSG $nick : 12/msg nickserv release nick şifre"
}
bind msg - !url-icq  Nui
proc Nui 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Nickinize info çeken kisinin sizin e-mail, icq veya web adresinize ulasmasini saglayan komut."
 
putserv "PRIVMSG $nick : 14Komutu kullanmak için nickinizi identify etmis olmalisiniz."
 
putserv "PRIVMSG $nick : 12/msg nickserv set url adres" 
 
putserv "PRIVMSG $nick : 12/msg nickserv set icq icqno"
}

#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Memoserv Başlangıç              #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !memomenu memoM
proc memoM 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 12MemoServ14 menüsüne hoş geldiniz;"
 
putserv "PRIVMSG $nick : 4!memosend     4!memolist       4!memoread       4!memodel"
 
putserv "PRIVMSG $nick : 14Size gerekli yardım vermebilmem için lütfen seçiminizi yapınız."
 
putserv "PRIVMSG $nick : 14Menüde yazanlar hakkında açıklama isterseniz 6!memoacikla yazmanız yeterlidir."
 
putserv "PRIVMSG $nick : 14MemoServ ile ilgili yardımım yeterli gelmezse sorularınızı kanal @ larına sorunuz .."
 
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!memomenu 14tamamlanmıştır.." 
}
bind msg - !memoacikla Macik
proc Macik 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Bir memo göndermek için 4!memosend" 
 
putserv "PRIVMSG $nick : 14Memo listenizi görmek için 4!memolist"
 
putserv "PRIVMSG $nick : 14Size gelen bir memo yu okumak için 4!memoread"
 
putserv "PRIVMSG $nick : 14Memolarınız silmek için 4!memodel" 
}
bind msg - !memosend  Msend
proc Msend 
{nick uhost hand stuff} {
 global 
colornum botnick 
 putserv 
"PRIVMSG $nick : 14Herhangi bir kişiye memo mesaj yollamanızı sağlayan komuttur."
 
putserv "PRIVMSG $nick : 12/msg memoserv send nick"
}
bind msg - !memolist  Mlist
proc Mlist 
{nick uhost hand stuff} {
 global 
colornum botnick 
 putserv 
"PRIVMSG $nick : 14Size gelen memo mesajları listelemenizi sağlayan komuttur."
 
putserv "PRIVMSG $nick : 12/msg memoserv list"
}
bind msg - !memoread  Mread
proc Mread 
{nick uhost hand stuff} {
 global 
colornum botnick 
 putserv 
"PRIVMSG $nick : 14Size gelen memo mesajları okumanızı sağlayan komuttur."
 
putserv "PRIVMSG $nick : 12/msg memoserv read numara"
}
bind msg - !memodel Mdel
proc Mdel 
{nick uhost hand stuff} {
 global 
colornum botnick 
 putserv 
"PRIVMSG $nick : 14Size gelen memo mesajlardan birini silmenizi sağlayan komuttur."
 
putserv "PRIVMSG $nick : 12/msg memoserv del numara"
 
putserv "PRIVMSG $nick : 14Size gelen memoların tamamını bir seferde silmenizi saglayan komut"
 
putserv "PRIVMSG $nick : 12/msg memoserv del all"
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Operserv Başlangıç              #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#
#
#
#
#
#
#
#
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Menu Başlangıç                #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !menu Menu
proc Menu 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 14Servisler menüsüne hoş geldiniz;"
 
putserv "PRIVMSG $nick : 14Lütfen yardım istediginiz servis menusunu seçiniz."
 
putserv "PRIVMSG $nick : "
 
putserv "PRIVMSG $nick : 14NickServ için 12!nickmenu"
 
putserv "PRIVMSG $nick : 14Chanserv için 12!chanmenu"  
 
putserv "PRIVMSG $nick : 14Memoserv için 12!memomenu"
 
putserv "PRIVMSG $nick : 14Kanal Modelari için 12!mode"
 
putserv "PRIVMSG $nick : "
 
putserv "PRIVMSG $nick : 14Ana munuye dönmek için 12!anamenu14 yazınız."
 
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!menu14 tamamlanmıştır.." 
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Anamenu Başlangıç                #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !anamenu Amenu
proc Amenu 
{nick uhost hand stuff} {
  global 
colornum botnick
  putserv 
"PRIVMSG $nick : 14Servisler hakkında yardım almak için 12!menu14 yaziniz."
  
putserv "PRIVMSG $nick : 14Helper olamak istiyorsanız 12!helper14 yazınız."
  
putserv "PRIVMSG $nick : 14Lütfen seçiminizi yapınız."
  
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!anamunu14 tamamlanmıştır.." 
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Bilgi Başlangıç               #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !helper bil
proc bil 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 12Irc.Server.Com Server'ında HELPER olabilmek için,"
 
putserv "PRIVMSG $nick : 14Yapılacak helper sınavlarına katılmalısınız. Sınav zamanları önceden belirtilecektir." 
 
putserv "PRIVMSG $nick : 14Tüm Userlere açık olan bu sınavda;"
 
putserv "PRIVMSG $nick : 14Chanserv, Nickserv, Memoserv Servislerine ait Konulardan secilecek 3 Soru Sorulacak Olup," 
 
putserv "PRIVMSG $nick : 14Üç Sorununda bilinmesi mecburidir.."
 
putserv "PRIVMSG $nick : 14Seçmiş oldugunuz 12!bilgi14 tamamlanmıştır.." 
}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     version Başlangıç               #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind msg - !version ver
proc ver 
{nick uhost hand stuff} {
 global 
colornum botnick
 putserv 
"PRIVMSG $nick : 12Guncelleme Tarihi  14: 01.06.2006" 
 
putserv "PRIVMSG $nick : 12Version Türü       14: mhhlp-v.2.0"
 
putserv "PRIVMSG $nick : 12Yapımcı            14: bLackStar"
 
putserv "PRIVMSG $nick : 12Download           14: 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
#     Giriş Başlangıç               #
#+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+#
bind join - * helpchannel
proc helpchannel 
{nick uhost hand chan} {
 global 
colornum botnick
 
if {$nick == $botnick} {return 0}
 
putserv "NOTICE $nick : 4#HELP12 Kanalına Hoşgeldiniz $nick. Kanalda bulunan oplar serverin resmi helperleridir. Size voice verilene kadar bekleyiniz. Voice aldıktan sonra sorunuzu kısa ve anlaşılır şekilde sorunuz."
 
putserv "NOTICE $nick : 12Sorununuz Cözüldükten Sonra Kanaldan Ayrılınız. Kanalda Uzun Süre Bekelemeniz Banlanmanıza Neden Olacaktır!"
 
putserv "NOTICE $nick : 12Eğer kanalda op yoksa, 4/msg MisisHelp !yardim12 yazarak benden yardim alabilirsiniz."
 
 
if {$colornum == 0} {return 0}
if {
$colornum == 1} {
if {[
matchattr $hand o] || [matchattr $hand m]} {
  }
  return 
0
 
}
if {
$colornum == 2} {
if {[
matchattr $hand o] || [matchattr $hand m]} {
  }
  return 
0
 
}



AsiL 16 Aralık 2007 22:55

Cevap: Tcl Arşivi
 
Oyun TCL

[PHP]# Botun kullanicagi sorularin listesinin oldugu dosya.
# Duzenleyin.!
set tgqdb "/home/kullaniciadi/eggdrop/scripts/oyun/tcl/trivia.questions"
# The character that seperates the question and in the
# question/answer file.
# Sorular dosyasinda sorulari cevaplardan ayirmak icin kullanilacak
# olan karakter. Dokunmayin.
set tgqdbsep "|"
# Soru ve cevaplarin sorular dosyasindaki ayirimini duzenlemeye yarar.
# Eger 1 olarak ayarli olursa soru*cevap
# Eger 0 olarak ayarli olursa cevap*soru seklinde sorular sorulucaktir.!
# Eger botunuz cevaplari soru olarak soruyorsa, bunu degistirin.
set tgqdbquestionfirst 0
# Hatalarin admine nasil gonderilecegini ayarlar. Eger 1 olarak
# ayarlanirsa bot admine hatalari mail ile gonderir. Botun mail
# erisimi olmasi gereklidir.! Eger 0 olarak birakilirsa bot hatalari
# dosyaya kayit eder. Duzenlemeye gerek yok.
set tgerrmethod 0
set tgscf "/home/kullaniciadi/eggdrop/scripts/oyun/tcl/trivia.scores"
set tgerrmethod 1
set tgerrfil "/home/kullaniciadi/eggdrop/scripts/oyun/tcl/trivia.errors"
# Botun admin`i nin Email Adresi.
set tgerremail "[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]"
# Eger bot hatalari mail ile gondericeks ebot gecici dosyalari
# nereye koyucagini ayarlar.
set tgerrmailtmp "/tmp"
# Web istatistikleri icin olusturulacak dosyanin tam yolu ve ismi.
# Ayrintili web istatistiklerinin nasil yapilacagini ogrenmek icin
# sitemizi ziyaret edin.
set tghtmlfile "/home/kullaniciadi/public_html/oyun.html"
# Web istatistikleri kac saniyede bir yenilenecek.!
set tghtmlrefresh 60
# Web sitesinin fontu.
set tghtmlfont "verdana,helvetica,arial"
# Oyunu oynanacagi kanal. Bu kanal sadece 1 tane olabilir. Ayrica ayni
# botda 2 ayri script birlikte calismaz.!!!
set tgchan "#Oyun"
# Her dogru cevap icin verilicek puan.
set tgpointsperanswer 1
# Maximum ipucu adedi.
set tgmaxhint 4
# Should the bot show the question on each hint (1) or only on the first (0)?
# Botun her ipucu verildiginde soruyu tekrar gosterir gostermemesini ayarlar.
# 1= her seferinde soruyu gosterir, 0= sadece 1 kere gosterir.
set tgalwaysshowq 1
# Sorulari BUYUK harflerle sorar. ( 0= sorulari kucuk harfle sorar.)
set tgcapsquestion 0
# Cevaplari BUYUK harfle yazar. (0= cevaplari kucuk harfle yazar.)
set tgcapsanswer 1
# Show hints in all CAPS (1) or not (0)?
# Ipuclarini BUYUK harfle yazar. (0= ipuclarini kucuk harfle yazar.)
set tgcapshint 0
# The minimum number of correct answers in a row by one person which
# puts them on a winning streak. Setting this to 0 will disable the
# winning streak feature.
# Arka arkaya bilme rekorunun olabilmesi icin en az kac sorunun arka
# arkaya bilinmesi gerektigini ayarlar. (0= iptal eder)
set tgstreakmin 5
# Botu eger ayarlanan miktarda soruya cevap veren cikmazsa durur. 0 ayarlanirsa
# bot hic durmadan soru sorar.
set tgmaxmissed 0
# Sorularin kanalda sorulurken neyle sifrelenecegini ayarlar.
set tghintchar "*"
# Ipuclari arasindaki zaman farki. (saniye)
set tgtimehint 11
# Eski soruyla yeni sorulucak soru arasindaki zaman farki.
set tgtimenext 4
# Soru bilindiginde botun kullanacagi terimler.
set tgcongrats[list "Tebrikler..." "Harika" "Tebrik ederim, bildin!" "Gayet iyisin, tebrikler!" "Soruyu doğru bildin!" "Sen bir numarasın!" "Helal olsun!" ]
# Kimse bilemediginde botun kullanacagi terimler.
set tgnobodygotit[list "Soruyu kimse bilemedi!"]
# Eski soru bitip yenisi sorulurken kulanilan terimler.
set tgtrythenextone[list "Yeni sorunuzu seçiyorum..."]
# Cevabin kac saniye surdugunu aktif eder. (0=kapatir)
set tgtimeanswer 1
# Eger kimse dogru cevabi veremezse bot sorunun cevabini gosterir. (0=gostermez)
set tgshowanswer 1
# When someone answers a question, will the bot show just that person's score (0)
# or will it show all players' scores (1) (default). This is useful in channels with
# a large number (>20) players.
# Birisi sorulan soruya dogru cevap verdiginde, bot sadece o kisinin skorunumu yoksa
# butun ilk 20 yimi gostericek. 1= sadece kisinin, 0= ilk 20nin.
set tgshowallscores 0
# Use bold codes in messages (1) or not (0)?
# msglarda kalin yazi kullan(1) kullanma(0).
set tgusebold 0
# Send private messages using /msg (1) or not (0)?
# If set to 0, private messages will be sent using /notice
# msglar notice(0) ile mi yoksa msg(1) ilemi gonderilecek. ?
set tgpriv2msg 1
# Botdan yardim almak icin kullanilalacak komut.
set tgcmdhelp "!yardim"
# Botu baslatma komutu.
set tgcmdstart "!basla"
# Oyunu baslatma yetkisi ayarlari.
set tgflagsstart "-|-"
# Oyunu durdurma komutu.
set tgcmdstop "!dur"
# Oyunu durdurma yetkisi ayarlari.
set tgflagsstop "o|o"
# Ipucu almak icin kullanilan komut.
set tgcmdhint "!ipucu"
# Ipucu almak icin yetki ayarlari.
set tgflagshint "-|-"
# Ipucu verildikten sonra kac diger ipucu icin kac saniye beklenicek.
set tgtempnohint 15
# Sorulan soruyu gecmek icin kullanilan komut.
set tgcmdskip "!raistlin"
# Soruyu gecmek icin kullanilan yetki ayarlari.
set tgflagsskip "o|o"
# Ilk 10 nun gosterilme komutu.
set tgcmdtop10 "!top10"
# ilk 10 komutunu icin yetki ayari.
set tgflagstop10 "-|-"
# Skorlari resetlemek icin kullanilan komut.
set tgcmdreset "!reset"
# reset komutunu kullanilbek icin yetki ayari.
set tgflagsreset "m|m"
# Skorlara bakmak icin kullanilan komut.
set tgcmdlookup "!skor"
# Sizden bir usttekine bakmak icin kullanilan komut.
set tgcmdtarget "!hedef"
# Hatalari bildirmek icin kullanilan komut.
set tgcmderror "!hata"
# Kurallari gormek icin kullanilan komutlar.
set tgcmdrules "!kurallar"
# Kanala Kurallari.!
set tgrules "Oyunu Baslatmak icin !basla yaziniz.!"
# Hatalari nasil bildirilecegini gonderen msg kac dakika da bir kanalda yazilicak.!
set tgerrremindtime 20
# RENKLER
# Mircdeki renk kodlari ile ayni kodlardir..!
# 00:beyaz 01:siyah 02:koyu mavi 03:koyu yesil
# 04:kirmizi 05:krengi 06:pembe 07:portakal
# 08:sari 09:acik yesil 10:turkuaz 11:cyan
# 12:acik mavi 13:magenta 14:koyu gri 15:acik gri
set tgcolourstart "0,1" ;#Oyun baslatildi.
set tgcolourstop "0,1" ;#Oyun durduruldu.
set tgcolourskip "01" ;#Soru gecildi.
set tgcolourerr "01" ;#Nasil hata bildirilir.
set tgcolourmiss "0,1" ;#Kimse soruyu bilemedi.
set tgcolourqhead "0,4" ;#Soru basligi.
set tgcolourqbody "02" ;#Sorunun kendisi.
set tgcolourhint "01" ;#Ipucu.
set tgcolourstrk "0,4" ;#Arka arkaya bilme rekorunda olan kisi.
set tgcolourscr1 "04" ;#1.Siradaki kisi.
set tgcolourscr2 "04" ;#2.Siradaki kisi.
set tgcolourscr3 "04" ;#3.Siradaki kisi.
set tgcolourrset "04" ;#Skorlar Resetlendi.
set tgcolourstend "12" ;#Arka arkaya bilme rekoru bitti.
set tgcolourmisc1 "0,1" ;#Ara reng 1.
set tgcolourmisc2 "7" ;#Ara reng 2.

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# Any editing done beyond this point is done at your own risk! #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#Misc checks & var initialisations
set tgver "1.3.4"
set tgrel "release"
if {[info tclversion]<8.2} {
putlog "\002[file tail [info script]]\002 failed to load: in order to use this script, eggdrop needs to be compiled to use tcl 8.2 or higher (recommended: latest stable version)."
return
}
if {$tgtimeanswer==1&&[info tclversion]<8.3} {
putlog "\002[file tail [info script]]\002 warning: timing of answers has been automatically disabled. this feature requires tcl 8.3 or higher."
set tgtimeanswer 0
}
if {![info exists alltools_loaded]||$allt_version<205} {
putlog "\002[file tail [info script]]\002 failed to load: please load alltools.tcl v1.14 or higher (available with eggdrop 1.6.13 or higher) before attempting to load this script."
return
}
if {[utimerexists tghtml]!=""} {killutimer $tghtmlrefreshtimer}
if {$tghtmlrefresh>0} {
set tghtmlrefreshtimer [utimer $tghtmlrefresh tghtml]
}
if {![file exists $tgqdb]} {
putlog "\002[file tail [info script]]\002 failed to load: $tgqdb does not exist."
return
}
if {[llength [split $tgchan]]!=1} {
putlog "\002[file tail [info script]]\002 failed to load: too many channels specified."
return
}
if {![info exists tgplaying]} {
set ctcp-version "${ctcp-version} (with trivia.tcl $tgver ($tgrel) from [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...])"
set tgplaying 0
}
if {![info exists tghintnum]} {set tghintnum 0}
if {![info exists tgmissed]} {set tgmissed 0}
#Binds
bind pubm $tgflagsstart "$tgchan %$tgcmdstart" tgstart
bind pubm $tgflagsstop "$tgchan %$tgcmdstop" tgstop
proc tgbindhintcmd {} {
global tgflagshint tgcmdhint
bind pubm $tgflagshint "$::tgchan %$tgcmdhint" tgforcehint
}
proc tgunbindhintcmd {} {
global tgflagshint tgcmdhint
unbind pubm $tgflagshint "$::tgchan %$tgcmdhint" tgforcehint
}
tgbindhintcmd
bind pubm $tgflagsskip "$tgchan %$tgcmdskip" tgskip
bind pubm $tgflagstop10 "$tgchan %$tgcmdtop10" tgshowtop10
bind join -|- "$tgchan *" tgjoinmsg
bind msg - $tgcmdhelp tggivehelp
bind msg - $tgcmdlookup tgscorelookup
bind msg - $tgcmdtarget tgtargetlookup
bind msg - $tgcmderror tgerror
bind msg - $tgcmdrules tgrulesmsg
bind msg $tgflagsreset "$tgcmdreset" tgresetscores
bind kick - "$tgchan $botnick" tgbotgotkicked
bind evnt - disconnect-server tgbotgotdisconnected
#starts the game if it isn't running.
proc tgstart {nick host hand chan text} {
global tgplaying tgstreak tgchan tgerrremindtime tgerrremindtimer tgmissed
if {[strlwr $tgchan]==[strlwr $chan]} {
if {$tgplaying==0} {
tggamemsg "[tgcolstart]$nick Oyunu baslatti.!"
tgnextq
set tgplaying 1
set tgstreak 0
set tgmissed 0
set tgerrremindtimer [timer $tgerrremindtime tgerrremind]
}
}
}
#stops the game if it's running.
proc tgstop {nick host hand chan text} {
global tghinttimer tgnextqtimer tgplaying tgchan tgcurrentanswer tgstreak tgstreakmin
global tgerrremindtimer tgrebindhinttimer
if {[strlwr $tgchan]==[strlwr $chan]} {
if {$tgplaying==1} {
tggamemsg "[tgcolstop] $nick oyunu durdurdu.!"
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
set tgstreak 0
set tgplaying 0
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
if {[utimerexists tghint]!=""} {killutimer $tghinttimer}
if {[utimerexists tgnextq]!=""} {killutimer $tgnextqtimer}
if {[timerexists tgerrremind]!=""} {killtimer $tgerrremindtimer}
if {[utimerexists tgrebindhinttimer]!=""} {killtimer $tgrebindhinttimer}
}
}
}
#gives a hint if there is currently a question to answer.
proc tgforcehint {nick host hand chan text} {
global tghinttimer tgnextqtimer tgplaying tgchan tgcurrentanswer tgstreak tgstreakmin
global tgtempnohint tgmaxhintcurrent tghintnum tgrebindhinttimer tgtempnohint
if {[strlwr $tgchan]==[strlwr $chan]} {
if {$tgplaying==1&&[utimerexists tghint]!=""} {
killutimer $tghinttimer
tghint
tgunbindhintcmd
if {$tghintnum<$tgmaxhintcurrent} {
set tgrebindhinttimer [utimer $tgtempnohint tgbindhintcmd]
}
}
}
}
#skips the current question if one has been asked.
proc tgskip {nick host hand chan text} {
global tghinttimer tgnextqtimer tgplaying tgchan tgcurrentanswer tgstreak
global tgstreakmin tgtimenext tgrebindhinttimer
if {[strlwr $tgchan]==[strlwr $chan]} {
if {$tgplaying==1&&[utimerexists tghint]!=""} {
tggamemsg "[tgcolskip]Yeni Soruya geciliyot [tgcolmisc2]$nick's[tgcolskip] ole istedi.!"
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin&&[strlwr [lindex [split $tgstreak ,] 0]]==[strlwr $nick]} {
tgstreakend
set tgstreak 0
}
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
killutimer $tghinttimer
if {[utimerexists tgrebindhinttimer]!=""} {killtimer $tgrebindhinttimer}
set tgnextqtimer [utimer $tgtimenext tgnextq]
}
}
}
#reminds channel how to report errors in questions/answers
proc tgerrremind {} {
global tgerrremindtimer tgerrremindtime botnick tgcmderror
tggamemsg "[tgcolerr]Remember: to report errors in questions/answers, type /msg $botnick $tgcmderror <number> \[description\]"
set tgerrremindtimer [timer $tgerrremindtime tgerrremind]
}
#bot got kicked. stop the game.
proc tgbotgotkicked {nick host hand chan targ text} {
tgquietstop
}
#bot got disconnected. stop the game.
proc tgbotgotdisconnected {disconnect-server} {
tgquietstop
}
#stops the game without telling the channel.
proc tgquietstop {} {
global tgplaying tgstreak tgchan tgcurrentanswer tghinttimer tgnextqtimer tgerrremindtimer
global tgrebindhinttimer
if {$tgplaying==1} {
set tgstreak 0
set tgplaying 0
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
if {[utimerexists tghint]!=""} {killutimer $tghinttimer}
if {[utimerexists tgnextq]!=""} {killutimer $tgnextqtimer}
if {[timerexists tgerrremind]!=""} {killtimer $tgerrremindtimer}
if {[utimerexists tgrebindhinttimer]!=""} {killtimer $tgrebindhinttimer}
}
}
#reads the question database.
proc tgreadqdb {} {
global tgqdb tgquestionstotal tgquestionslist
set tgquestionstotal 0
set tgquestionslist ""
set qfile [open $tgqdb r]
set tgquestionslist [split [read -nonewline $qfile] "\n"]
set tgquestionstotal [llength $tgquestionslist]
close $qfile
}
#selects the next question.
proc tgnextq {} {
global tgqdb tgcurrentquestion tgcurrentanswer tgquestionnumber
global tgquestionstotal tghintnum tgchan tgquestionslist tgqdbsep tgqdbquestionfirst
global tgcapsquestion tgcapsanswer
tgreadqdb
set tgcurrentquestion ""
set tgcurrentanswer ""
while {$tgcurrentquestion == ""} {
set tgquestionnumber [rand [llength $tgquestionslist]]
set tgquestionselected [lindex $tgquestionslist $tgquestionnumber]
set tgcurrentquestion [lindex [split $tgquestionselected $tgqdbsep] [expr $tgqdbquestionfirst^1]]
if {$tgcapsquestion==1} {
set tgcurrentquestion [strupr $tgcurrentquestion]
}
set tgcurrentanswer [string trim [lindex [split $tgquestionselected $tgqdbsep] $tgqdbquestionfirst]]
if {$tgcapsanswer==1} {
set tgcurrentanswer [strupr $tgcurrentanswer]
}
}
unset tghintnum
tghint
bind pubm -|- "$tgchan *" tgcheckanswer
return
}
#shows timed hints.
proc tghint {} {
global tgmaxhint tghintnum tgcurrentanswer tghinttimer tgchan
global tgtimehint tghintchar tgquestionnumber tgquestionstotal
global tgcurrentquestion tghintcharsused tgnextqtimer tgtimenext tgstreak tgstreakmin
global tgnobodygotit tgtrythenextone tgmissed tgmaxmissed tgcmdstart tgshowanswer
global tgtimestart tgtimeanswer tgalwaysshowq tgmaxhintcurrent tgtempnohint tgcapshint
if {[catch {incr tghintnum}]!=0} {
set tghintnum 0
regsub -all -- "\[^A-Za-z0-9\]" $tgcurrentanswer "" _hintchars
set tgmaxhintcurrent [expr [strlen $_hintchars]<=$tgmaxhint?[expr [strlen $_hintchars]-1]:$tgmaxhint]
catch {tgunbindhintcmd}
if {$tgmaxhintcurrent>0} {
set tgrebindhinttimer [utimer $tgtempnohint tgbindhintcmd]
}
}
if {$tghintnum >= [expr $tgmaxhintcurrent+1]} {
incr tgmissed
set _msg ""
append _msg "[tgcolmiss][lindex $tgnobodygotit [rand [llength $tgnobodygotit]]]"
if {$tgshowanswer==1} {
append _msg " Dogru Cevap [tgcolmisc2]$tgcurrentanswer[tgcolmiss]."
}
if {$tgmaxmissed>0&&$tgmissed>=$tgmaxmissed} {
append _msg " Arka arkaya cevap verilmeyen $tgmissed soru. Bot otomatik olarak durucak. Tekrar calistirmak icin $tgcmdstart yaziniz.!"
tgquietstop
} else {
append _msg " [lindex $tgtrythenextone [rand [llength $tgtrythenextone]]]"
}
tggamemsg "[tgcolmiss]$_msg"
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
set tgstreak 0
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
if {$tgmaxmissed==0||$tgmissed<$tgmaxmissed} {
set tgnextqtimer [utimer $tgtimenext tgnextq]
}
return
} elseif {$tghintnum == 0} {
set i 0
set _hint {}
set tghintcharsused {}
foreach word [split $tgcurrentanswer] {
regsub -all -- "\[A-Za-z0-9\]" $word $tghintchar _current
lappend _hint $_current
}
if {$tgtimeanswer==1} {
set tgtimestart [clock clicks -milliseconds]
}
} elseif {$tghintnum == 1} {
set i 0
set _hint {}
while {$i<[llength [split $tgcurrentanswer]]} {
set _word [lindex [split $tgcurrentanswer] $i]
set j 0
set _newword {}
while {$j<[strlen $_word]} {
if {$j==0} {
append _newword [stridx $_word $j]
lappend tghintcharsused $i,$j
} else {
if {[string is alnum [stridx $_word $j]]} {
append _newword $tghintchar
} else {
append _newword [stridx $_word $j]
lappend tghintcharsused $i,$j
}
}
incr j
}
lappend _hint $_newword
incr i
}
} else {
set i 0
set _hint {}
while {$i<[llength [split $tgcurrentanswer]]} {
set _word [lindex [split $tgcurrentanswer] $i]
set j 0
set _newword {}
set _selected [rand [strlen $_word]]
regsub -all -- "\[^A-Za-z0-9\]" $_word "" _wordalnum
if {[strlen $_wordalnum]>=$tghintnum} {
while {[lsearch $tghintcharsused $i,$_selected]!=-1||[string is alnum [stridx $_word $_selected]]==0} {
set _selected [rand [strlen $_word]]
}
}
lappend tghintcharsused $i,$_selected
while {$j<[strlen $_word]} {
if {[lsearch $tghintcharsused $i,$j]!=-1||[string is alnum [stridx $_word $j]]==0} {
append _newword [stridx $_word $j]
} else {
if {[string is alnum [stridx $_word $j]]} {
append _newword $tghintchar
}
}
incr j
}
lappend _hint $_newword
incr i
}
}
if {$tgcapshint==1} {
set _hint [strupr $_hint]
}
tggamemsg "[tgcolqhead]Sorunuz : [expr $tgquestionnumber+1]/$tgquestionstotal [expr $tghintnum?"(Ipucu $tghintnum/$tgmaxhintcurrent)":""] "
if {$tgalwaysshowq==1||$tghintnum==0} {
tggamemsg "[tgcolqbody]$tgcurrentquestion"
}
tggamemsg "[tgcolhint]İpucu: [join $_hint]"
set tghinttimer [utimer $tgtimehint tghint]
}
#triggered when someone uses !top10 command
proc tgshowtop10 {nick host hand chan text} {
global tgscores tgchan tgscorestotal
if {[strlwr $chan]==[strlwr $tgchan]} {
tggetscores
if {$tgscorestotal>0} {
if {$tgscorestotal>9} {
set _max 9
} else {
set _max [expr $tgscorestotal-1]
}
set i 0
while {$i<=$_max} {
set _item [lindex $tgscores $i]
set _nick [join [lindex [split $_item ,] 2]]
set _score [join [lindex [split $_item ,] 0]]
if {$i==0} {
append _scores "[tgcolscr1]$_nick $_score"
} elseif {$i==1} {
append _scores ", [tgcolscr2]$_nick $_score"
} elseif {$i==2} {
append _scores ", [tgcolscr3]$_nick $_score"
} else {
append _scores ", [tgcolmisc1]$_nick $_score"
}
incr i
}
tggamemsg "[tgcolmisc1]Top 10: $_scores"
} else {
tggamemsg "[tgcolmisc1]Score table is empty."
}
}
}
#checks if anyone has said the correct answer on channel.
proc tgcheckanswer {nick host hand chan text} {
global tgcurrentanswer
if {[strlwr $tgcurrentanswer] == [tgstripcodes [strlwr [string trim $text]]]} {
tgcorrectanswer $nick
}
}
#triggered when someone says the correct answer.
proc tgcorrectanswer {nick} {
global tgcurrentanswer tghinttimer tgtimenext tgchan tgnextqtimer tgstreak tgstreakmin
global tgscoresbyname tgranksbyname tgranksbynum tgcongrats tgscorestotal tgmissed
global tgtimestart tgshowallscores tgrealnames tgscoresbyrank tgtimeanswer
tggetscores
if {![info exists tgranksbyname([strlwr $nick])]} {
set _oldrank 0
} else {
set _oldrank $tgranksbyname([strlwr $nick])
}
tgincrscore $nick
tggetscores
set _newrank $tgranksbyname([strlwr $nick])
set _timetoanswer ""
if {$tgtimeanswer==1} {
set _timetoanswer [expr [expr [clock clicks -milliseconds]-$tgtimestart]/1000.00]
}
set _msg "[tgcolmisc1][lindex $tgcongrats [rand [llength $tgcongrats]]] [tgcolmisc2]$nick[tgcolmisc1]! Dogru Cevap [tgcolmisc2]$tgcurrentanswer[tgcolmisc1].[expr $tgtimeanswer==1?" Cevaplama suresi [tgcolmisc2]$_timetoanswer[tgcolmisc1] saniye.":""]"
if {$_newrank<$_oldrank} {
if {$_newrank==1} {
append _msg "Tebrikler, şu anda birinci sıradasın!"
} else {
if {$tgshowallscores==0} {
append _msg "Listede yükselişe geçtin!"
} else {
append _msg "Şuandaki sıran [tgcolmisc2][ordnumber $tgranksbyname([strlwr $nick])][tgcolmisc1] [tgcolmisc2]$tgscorestotal[tgcolmisc1] doğru cevap ile, senin önünde [tgcolmisc2]$tgrealnames($tgranksbynum([expr $_newrank-1]))[tgcolmisc1] var, [tgcolmisc2]$tgscoresbyrank([expr $_newrank-1])[tgcolmisc1] dogru cevap ile."
}
}
}
tggamemsg "$_msg"
if {$tgstreak!=0} {
if {[lindex [split $tgstreak ,] 0]==[strlwr $nick]} {
set tgstreak [strlwr $nick],[expr [lindex [split $tgstreak ,] 1]+1]
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} {
tggamemsg "[tgcolstrk][tgcolmisc2]$nick[tgcolstrk] çok hızlı biliyor! [tgcolmisc2][lindex [split $tgstreak ,] 1] [tgcolstrk]"
}
} else {
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
set tgstreak [strlwr $nick],1
}
} else {
set tgstreak [strlwr $nick],1
}
set tgmissed 0
tgshowscores $nick
catch {unbind pubm -|- "$tgchan *" tgcheckanswer}
killutimer $tghinttimer
set tgnextqtimer [utimer $tgtimenext tgnextq]
}
#read current scores from file, sort and store in variable.
proc tggetscores {} {
global tgscf tgscorestotal tgscores tgscoresbyname tgranksbyname tgranksbynum
global tgrealnames tgscoresbyrank
if {[file exists $tgscf]&&[file size $tgscf]>2} {
set _sfile [open $tgscf r]
set tgscores [lsort -dict -decreasing [split [gets $_sfile]]]
close $_sfile
set tgscorestotal [llength $tgscores]
} else {
set tgscores ""
set tgscorestotal 0
}
if {[info exists tgscoresbyname]} {unset tgscoresbyname}
if {[info exists tgranksbyname]} {unset tgranksbyname}
if {[info exists tgrealnames]} {unset tgrealnames}
if {[info exists tgranksbynum]} {unset tgranksbynum}
set i 0
while {$i<[llength $tgscores]} {
set _item [lindex $tgscores $i]
set _nick [lindex [split $_item ,] 2]
set _lwrnick [lindex [split $_item ,] 3]
set _score [lindex [split $_item ,] 0]
set tgscoresbyname($_lwrnick) $_score
set tgrealnames($_lwrnick) $_nick
set tgranksbyname($_lwrnick) [expr $i+1]
set tgranksbynum([expr $i+1]) $_lwrnick
set tgscoresbyrank([expr $i+1]) $_score
incr i
}
return
}
#increment someone's score.
proc tgincrscore {who} {
global tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname
tggetscores
if {$tgscorestotal>0} {
set i 0
if {![info exists tgscoresbyname([strlwr $who])]} {
append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
}
while {$i<[llength $tgscores]} {
set _item [lindex $tgscores $i]
set _nick [lindex [split $_item ,] 2]
set _time [lindex [split $_item ,] 1]
set _score [lindex [split $_item ,] 0]
if {[strlwr $who]==[strlwr $_nick]} {
append _newscores "[expr $_score+$tgpointsperanswer],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
} else {
append _newscores "$_score,$_time,$_nick,[strlwr $_nick][expr [expr [llength $tgscores]-$i]==1?"":"\ "]"
}
incr i
}
} else {
append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
}
set _sfile [open $tgscf w]
puts $_sfile "$_newscores"
close $_sfile
return
}
#shows the current scores on channel.
proc tgshowscores {nick} {
global tgscores tgchan tgscorestotal tgshowallscores tgranksbyname tgranksbynum
global tgscoresbyname tgrealnames tgscoresbyrank
tggetscores
set i 0
if {$tgshowallscores} {
while {$i<[llength $tgscores]} {
set _item [lindex $tgscores $i]
set _nick [lindex [split $_item ,] 2]
set _score [lindex [split $_item ,] 0]
if {$i==0} {
append _scores "[tgcolscr1]$_nick $_score"
} elseif {$i==1} {
append _scores ", [tgcolscr2]$_nick $_score"
} elseif {$i==2} {
append _scores ", [tgcolscr3]$_nick $_score"
} elseif {[onchan $_nick $tgchan]} {
append _scores ", [tgcolmisc1]$_nick $_score"
}
incr i
}
tggamemsg "[tgcolmisc1]Sonuclar: $_scores"
} else {
if {$tgranksbyname([strlwr $nick])==1} {
set _tgt "."
} else {
set _tgt ", behind [tgcolmisc2]$tgrealnames($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1]))[tgcolmisc1] with [tgcolmisc2]$tgscoresbyrank([expr $tgranksbyname([strlwr $nick])-1])[tgcolmisc1]."
}
tggamemsg "[tgcolmisc2]$nick [tgcolmisc1]now has [tgcolmisc2]$tgscoresbyname([strlwr $nick]) [tgcolmisc1][expr $tgscoresbyname([strlwr $nick])==1?"point":"points"] and is ranked [tgcolmisc2][ordnumber $tgranksbyname([strlwr $nick])] [tgcolmisc1]of [tgcolmisc2]$tgscorestotal[tgcolmisc1]$_tgt"
}
}
#reset current scores.
proc tgresetscores {nick host hand text} {
global tgscf tgscorestotal tgscores tgplaying tgresetreqpw
if {($tgresetreqpw==1 && [passwdok $hand $text]) || $tgresetreqpw==0} {
if {[file exists $tgscf]&&[file size $tgscf]>2} {
set _sfile [open $tgscf w]
puts $_sfile ""
close $_sfile
set tgscores ""
set tgscorestotal 0
}
tggamemsg "[tgcolrset]===== Score table reset by $nick! ====="
}
}
#triggered when a winning streak ends.
proc tgstreakend {} {
global tgstreak tgrealnames
tggamemsg "[tgcolstend]So much for [tgcolmisc2]$tgrealnames([lindex [split $tgstreak ,] 0])'s[tgcolstend] winning streak."
return
}
#triggered when someone joins trivia chan.
proc tgjoinmsg {nick host hand chan} {
global botnick tgplaying tgcmdhelp tgcmdstart tgflagsstart tgcmdstop tgflagsstop tgchan
if {$nick != $botnick} {
set _msg ""
append _msg "Sorucevap Oyun kanalimiza Hosgeldin, $nick Botumuz suanda"
if {$tgplaying==1} {
append _msg " \002aktif\002."
} else {
append _msg " \002kapali\002."
}
if {[matchattr $hand $tgflagsstart $tgchan]&&$tgplaying==0} {
append _msg " oyunu calistirmak icin kanalda \002$tgcmdstart\002 yaziniz.!"
}
append _msg " Yardim almak icin \002/MSG $botnick [strupr $tgcmdhelp]\002 yaziniz. Iyi Oyunlar."
[tgpriv] $nick "$_msg"
}
}
#triggered when someone /msgs the bot with the score lookup command.
proc tgscorelookup {nick host hand text} {
global tgscoresbyname tgranksbyname tgscorestotal tgrealnames
if {$text==""} { set text $nick } else { set text [lindex [split $text] 0] }
tggetscores
if {![info exists tgscoresbyname([strlwr $text])]} {
if {[strlwr $text]==[strlwr $nick]} {
set _who "[tgcolmisc1]You are"
} else {
set _who "[tgcolmisc2]$text [tgcolmisc1]is"
}
[tgpriv] $nick "[tgbold]$_who [tgcolmisc1]not on the score list."
} else {
if {[strlwr $text]==[strlwr $nick]} {
set _who "[tgcolmisc1]You have"
} else {
set _who "[tgcolmisc2]$tgrealnames([strlwr $text]) [tgcolmisc1]has"
}
[tgpriv] $nick "[tgbold]$_who [tgcolmisc2]$tgscoresbyname([strlwr $text])[tgcolmisc1] points, ranked [tgcolmisc2][ordnumber $tgranksbyname([strlwr $text])] [tgcolmisc1]of [tgcolmisc2]$tgscorestotal[tgcolmisc1]."
}
}
#triggered when someone /msgs the bot with the target lookup command.
proc tgtargetlookup {nick host hand text} {
global tgscoresbyname tgranksbyname tgscorestotal tgranksbynum tgrealnames
tggetscores
if {![info exists tgscoresbyname([strlwr $nick])]} {
[tgpriv] $nick "[tgbold][tgcolmisc1]You are not on the score list yet."
} elseif {$tgranksbyname([strlwr $nick])==1} {
[tgpriv] $nick "[tgbold][tgcolmisc1]You are in first place!"
} else {
[tgpriv] $nick "[tgbold][tgcolmisc1]You are on [tgcolmisc2]$tgscoresbyname([strlwr $nick])[tgcolmisc1]. Your next target is [tgcolmisc2]$tgrealnames($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1])) [tgcolmisc1]with [tgcolmisc2]$tgscoresbyname($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1]))[tgcolmisc1], ranked [tgcolmisc2][ordnumber [expr $tgranksbyname([strlwr $nick])-1]] [tgcolmisc1]of [tgcolmisc2]$tgscorestotal[tgcolmisc1]."
}
}
#triggered when someone /msgs the bot with the error reporting command.
proc tgerror {nick host hand text} {
global tgquestionstotal tgquestionslist tgerrmethod tgerrfil tgerremail tgerrmailtmp
if {$text==""||![string is int [lindex [split $text] 0]]} {
[tgpriv] $nick "[tgbold][tgcolmisc1]You need to specify the number of the question."
return
}
tgreadqdb
set _qnum [lindex [split $text] 0]
if {$_qnum>$tgquestionstotal} {
[tgpriv] $nick "[tgbold][tgcolmisc1]No such question."
return
}
set _qques [lindex [split [lindex $tgquestionslist [expr $_qnum-1]] |] 1]
set _qans [lindex [split [lindex $tgquestionslist [expr $_qnum-1]] |] 0]
set _desc [join [lrange [split $text] 1 end]]
if {$_desc==""} { set _desc "No further info given for this error." }
if {$tgerrmethod==1} {
set _fname $tgerrmailtmp\trivia[rand 100000].tmp
set _file [open $_fname w]
} else {
set _file [open $tgerrfil a]
}
puts $_file ""
puts $_file "Error report generated [strftime %A,\ %d\ %B\ %Y\ @\ %H:%M:%S]"
puts $_file "Reported by:\t$nick!$host"
puts $_file "Question #:\t$_qnum"
puts $_file "Question:\t$_qques"
puts $_file "Answer:\t\t$_qans"
puts $_file "Comments:\t$_desc"
puts $_file "------------------------------"
close $_file
if {$tgerrmethod==1} {
exec mail -s "trivia.tcl error report from $nick" $tgerremail < $_fname
file delete $_fname
[tgpriv] $nick "[tgbold][tgcolmisc1]Thanks! Your error report has been e-mailed to my owner."
} else {
[tgpriv] $nick "[tgbold][tgcolmisc1]Thanks! Your error report has been logged and will be looked at as soon as possible."
}
}
#triggered when someone /msgs the bot with the rules command.
proc tgrulesmsg {nick host hand text} {
global tgrules
[tgpriv] $nick "The channel's rules are as follows: $tgrules"
}
#triggered when someone /msgs the bot with the help command.
proc tggivehelp {nick host hand {text ""}} {
global botnick tgcmdlookup tgcmdhelp tgcmdstart tgcmdstop tgchan tgflagsstop
global tgcmdstop tgflagshint tgcmdhint tgflagsskip tgcmdskip tgflagsreset tgcmdreset
global tgcmdtarget tgcmderror tgcmdrules tgflagsstart
if {$text==""} {
[tgpriv] $nick "You have access to the following /MSG commands:"
[tgpriv] $nick "To use, /MSG $botnick <command>"
[tgpriv] $nick " \002[strupr $tgcmdrules]\002"
[tgpriv] $nick " -- Lists the channel rules."
[tgpriv] $nick " \002[strupr $tgcmdlookup]\002 \[nick\]"
[tgpriv] $nick " -- Shows you the rank & score of \[nick\], if specified,"
[tgpriv] $nick " otherwise, shows you your own rank & score."
[tgpriv] $nick " \002[strupr $tgcmdtarget]\002"
[tgpriv] $nick " -- Shows you the rank & score of the person ranked"
[tgpriv] $nick " one above you."
[tgpriv] $nick " \002[strupr $tgcmderror]\002 <number> \[description\]"
[tgpriv] $nick " -- Reports an error in question <number>"
[tgpriv] $nick " The description is optional, but helpful."
if {[matchattr $hand $tgflagsreset $tgchan]} {
[tgpriv] $nick " \002[strupr $tgcmdreset]\002"
[tgpriv] $nick " -- Resets the score table."
}
[tgpriv] $nick "For a list of channel commands, /MSG $botnick [strupr $tgcmdhelp] PUBCMDS"
}
if {[strlwr $text]=="pubcmds"} {
[tgpriv] $nick "You have access to the following channel commands:"
if {[matchattr $hand $tgflagsstart $tgchan]} {
[tgpriv] $nick " \002$tgcmdstart\002 -- starts the trivia game."
}
if {[matchattr $hand $tgflagsstop $tgchan]} {
[tgpriv] $nick " \002$tgcmdstop\002 -- stops the trivia game."
}
if {[matchattr $hand $tgflagshint $tgchan]} {
[tgpriv] $nick " \002$tgcmdhint\002 -- shows a hint."
}
if {[matchattr $hand $tgflagsskip $tgchan]} {
[tgpriv] $nick " \002$tgcmdskip\002 -- skips current question."
}
[tgpriv] $nick "For a list of /MSG commands, /MSG $botnick [strupr $tgcmdhelp]"
}
}
# Returns text without colour, bold, etc. control codes.
# This is a stripped down version of the proc in MC_8's mc.moretools.tcl.
proc tgstripcodes {text} {
regsub -all -- "\003(\[0-9\]\[0-9\]?(,\[0-9\]\[0-9\]?)?)?" $text "" text
set text "[string map -nocase[list \002 "" \017 "" \026 "" \037 ""] $text]"
return $text
}
proc tggamemsg {what} {
global tgchan
putquick "PRIVMSG $tgchan :[tgbold]$what"
}
proc tgbold {} {
global tgusebold
if {$tgusebold==1} { return "\002" }
}
proc tgcolstart {} {
global tgcolourstart
if {$tgcolourstart!=""} { return "\003$tgcolourstart" }
}
proc tgcolstop {} {
global tgcolourstop
if {$tgcolourstop!=""} { return "\003$tgcolourstop" }
}
proc tgcolskip {} {
global tgcolourskip
if {$tgcolourskip!=""} { return "\003$tgcolourskip" }
}
proc tgcolerr {} {
global tgcolourerr
if {$tgcolourerr!=""} { return "\003$tgcolourerr" }
}
proc tgcolmiss {} {
global tgcolourmiss
if {$tgcolourmiss!=""} { return "\003$tgcolourmiss" }
}
proc tgcolqhead {} {
global tgcolourqhead
if {$tgcolourqhead!=""} { return "\003$tgcolourqhead" }
}
proc tgcolqbody {} {
global tgcolourqbody
if {$tgcolourqbody!=""} { return "\003$tgcolourqbody" }
}
proc tgcolhint {} {
global tgcolourhint
if {$tgcolourhint!=""} { return "\003$tgcolourhint" }
}
proc tgcolstrk {} {
global tgcolourstrk
if {$tgcolourstrk!=""} { return "\003$tgcolourstrk" }
}
proc tgcolscr1 {} {
global tgcolourscr1
if {$tgcolourscr1!=""} { return "\003$tgcolourscr1" }
}
proc tgcolscr2 {} {
global tgcolourscr2
if {$tgcolourscr2!=""} { return "\003$tgcolourscr2" }
}
proc tgcolscr3 {} {
global tgcolourscr3
if {$tgcolourscr3!=""} { return "\003$tgcolourscr3" }
}
proc tgcolrset {} {
global tgcolourrset
if {$tgcolourrset!=""} { return "\003$tgcolourrset" }
}
proc tgcolstend {} {
global tgcolourstend
if {$tgcolourstend!=""} { return "\003$tgcolourstend" }
}
proc tgcolmisc1 {} {
global tgcolourmisc1
if {$tgcolourmisc1!=""} { return "\003$tgcolourmisc1" }
}
proc tgcolmisc2 {} {
global tgcolourmisc2
if {$tgcolourmisc2!=""} { return "\003$tgcolourmisc2" }
}
proc tgpriv {} {
global tgpriv2msg
if {$tgpriv2msg==1} { return "putmsg" } else { return "putnotc" }
}

#this generates an html file with all the people on the chan with
#their score, as well as a list of all scores, sorted by rank
proc tghtml {} {
global tgchan botnick tghtmlfile tghtmlrefresh server tgscoresbyname tgranksbyname
global tgscorestotal tgranksbyname tgrealnames tgscoresbyrank tgranksbynum tgplaying
global tgquestionstotal tghtmlrefreshtimer tghtmlfont
tggetscores
tgreadqdb
set _file [open $tghtmlfile~new w]
puts $_file "<!DOCTYPE HTML PUBLIC \"-/W3C/DTD HTML 4.01 Transitional/EN\">"
puts $_file "<html>"
puts $_file " <head>"
puts $_file " <title>$botnick's trivia channel: $tgchan on [lindex [split $server :] 0]</title>"
puts $_file " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"
puts $_file " <meta http-equiv=\"refresh\" content=\"$tghtmlrefresh\">"
puts $_file " <meta name=\"generator\" content=\"trivia.tcl script for eggdrop.

AsiL 16 Aralık 2007 23:08

Cevap: Tcl Arşivi
 
Shell Karşılama

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">proc join_greet 
{nick uhost handle channel} {
 
putserv "privmsg $nick :2Merhaba4 $nick "
 
putserv "privmsg $nick :4M2gt 4H2osting 4I2nternet 4H2izmetleri"
 
putserv "privmsg $nick :1"
 
putserv "privmsg $nick :2Artık sizde, 4M2gt 4H2osting 4I2nternet 4H2izmetleri 2güvencesiyle; ekonomik bir şekilde web sitesi sahibi olabilir ve kendi sitenizi yapabilirsiniz."
 
putserv "privmsg $nick :2Size neler mi sunuyoruz? 4K2aliteli, huzurlu, ekonomik ve en önemlisi güvenli bir hizmetten daha fazlasını... Bulduğunuz gibi değil, umduğunuz gibiyiz. 14(Dürüstlük simgemizdir. Önce güven!)" 
 
putserv "privmsg $nick :2"
 
putserv "privmsg $nick :2-Bütün shell/hosting paketlerimizi incelemek için aşağıdaki adreslerimizden inceleyebilirsiniz.-"
 
putserv "privmsg $nick :4
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">putserv 
"privmsg $nick :3"
 
putserv "privmsg $nick :14Mgt Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!"
 
putserv "privmsg $nick :5Copyright © 2008"
 
putserv "privmsg $nick :4"
 
putserv "privmsg $nick :6Bizi tercih ettiğiniz için teşekkür ederiz. Saygılarımızla..."
 
putserv "notice $nick :4M2gt 4H2osting 4I2nternet 4H2izmetleri 14- 4D2ürüstlük 4s2imgemizdir. 4Ö2nce 4g2üven!"
}
bind join - * join_greet
#######################################################
#Bu TCL illegal_NicCK Tarafindan Yazilmiştir.         #
#Lutfen Emege Saygı!                                  #
####################################################### 


CanCeL 16 Aralık 2007 23:08

Cevap: Tcl Arşivi
 
Ellerine sağlık kanka. Sen arşivdemi yapardın :D:D

AsiL 16 Aralık 2007 23:09

Cevap: Tcl Arşivi
 
Domain Sorgulama

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set domainwhois_setting
(flag"o|o"
#########################################################
# Set the command for performing internic lookups here. #
#########################################################
set domainwhois_setting(cmd"dwhois"
#######################################
# Set the lookup server address here. #
# Format: <server>:<port>             #
#######################################
set domainwhois_setting(server"networksolutions.com:43"
###################################
# Enable use of bold in DCC chat? #
###################################
set domainwhois_setting(bold1
###############################################
# Prefix "DOMAINWHOIS:" in DCC chat messages? #
###############################################
set domainwhois_setting(DOMAINWHOIS:) 1
####################
# Code begins here #
####################
if {![string match 1.6.* $version]} { putlog "\002DOMAINWHOIS:\002 \002WARNING:\002 This script is intended to run on eggdrop 1.6.x or later." }
if {[
info tclversion] < 8.2} { putlog "\002DOMAINWHOIS:\002 \002WARNING:\002 This script is intended to run on Tcl Version 8.2 or later." }
bind dcc $domainwhois_setting(flag$domainwhois_setting(cmddomainwhois_connect
proc domainwhois_dopre 
{} {
 global 
domainwhois_setting
 
if {!$domainwhois_setting(DOMAINWHOIS:)} { return "" }
 if {!
$domainwhois_setting(bold)} { return "DOMAINWHOIS: " }
 return 
"\002DOMAINWHOIS:\002 "
}
proc domainwhois_connect {hand idx text} {
 global 
domainwhois_setting
 
if {$text == ""} { putidx $idx "[domainwhois_dopre]Usage: .$domainwhois_setting(cmd) <domain>" ; return }
 
set server [lindex [split $domainwhois_setting(server) :] 0]
 
set port [lindex [split $domainwhois_setting(server) :] 1]
 if {[catch {
set sock [socket -async $server $port]} error]} {
  
putidx $idx "[domainwhois_dopre]Connection to $domainwhois_setting(server) failed \([string totitle $error]\)."
  
return
 }
 
putidx $idx "[domainwhois_dopre]Looking up [lindex $text 0]."
 
set timerid [utimer 15[list domainwhois_timeout $sock $idx]]
 
fileevent $sock writable[list domainwhois_connected $sock $idx [lindex [split $text0$timerid]
}
proc domainwhois_connected {sock idx domain timerid} {
 global 
domainwhois_setting
 killutimer $timerid
 
if {[set error [fconfigure $sock -error]] != ""} {
  
putidx $idx "[domainwhois_dopre]Connection to $domainwhois_setting(server) port $domainwhois_setting(port) failed. \([string totitle $error]\)"
  
close $sock
  
return
 }
 
fconfigure $sock -translation binary -buffering none -blocking 1
 fileevent $sock writable
[list domainwhois_write $sock $idx $domain]
 
fileevent $sock readable[list domainwhois_read $sock $idx]
 
putidx $idx "[domainwhois_dopre]Connection to $domainwhois_setting(server) accepted."
}
proc domainwhois_timeout {sock idx} {
 global 
domainwhois_setting
 close $sock
 putidx $idx 
"[domainwhois_dopre]Connection to $domainwhois_setting(server) timed out."
}
proc domainwhois_read {sock idx} {
 global 
domainwhois_setting
 
if {[gets $sock read] == -1} {
  
putidx $idx "[domainwhois_dopre]Connection to $domainwhois_setting(server) closed."
  
close $sock
  
return
 }
 
putidx $idx "[domainwhois_dopre]> $read"
}
proc domainwhois_write {sock idx domain} {
 
puts $sock "WHOIS $domain"
 
fileevent $sock writable {}
}
putlog "\002DOMAINWHOIS:\002 DomainWhois.tcl Version 1.2 by Wcc is loaded." 


AsiL 16 Aralık 2007 23:13

Cevap: Tcl Arşivi
 
Güzel Söz

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set kullanici 
{
" Gidiyorum uzaklara, bilinmez diyarlara seni bırakıp gitmek var ya, o koyuyor bana. Ben senle olamadım, gençliğime doyamadım. Ben senle kalamadım, günlerimi sayamadım. Ölümde var sonunda, gülümde var dağların arkasında yağar yar."
"Gecemidir insanı hüzünlendiren, yoksa insan mıdır hüzünlenmek icin geceyi bekleyen? Gecemidir seni bana düsündüren, yoksa benmiyim seni düsünmek icin geceyi bekleyen?"
"Bu gece pencereni açık bırak uzaklardan kuş uçurdum. Biraz yorgun, biraz ıslak ama yinede başucuna bir tutam sevgi bırakacak. Almayı unutma..."
"Geceleri uzaklara cıglık olur sesim, denizden cıkan yosun kokusundan keskin sana olan özlemim, bu gece senin icin kapanacak gözlerim iyi geceler herseyim."
"Sen Allah'a dilenen dilek, göklere uzanan ellerimsin. Sen gözümden süzülen yas, tek düşüncem, hasretimsin. Sen yaşadığım ömür, en güzel günlerimsin."
"Aşk, gülü dikeniyle avuçlamaya benzer. Ellerin kan içinde kalır ama dikenlerinden hesabini, gülden soramazsın."
"O kadar güzelsin ki yüzüne bakamıyorum. Titriyor ellerim, ellerini tutamıyorum. Dolanıp sarmak geliyor saramıyorum. Öylesine bağlanmışım ki sensiz duramıyorum."
"Ilık bir rüzgâr esti buradan, nerden geldiğini bilemedim. Nereye gidiyorsun dedim. Özlenen her şeye dedi, benimde aklıma sen geldin; çünkü buralarda özlendin."
"Duanla yaşamadımki, bedduanla öleyim."
"Hayat, silgisiz resim çizme sanatıdır."
"Sahilde oturup denize bakan, yakasız gömleğe kıravat takan, ağzındaki sigarayı tersten yakan, bir sevdalı görürsen beni hatırla!"
"Ne yıldızlar istiyorum gece yarılarıma, ne güneşi istiyorum karanlıklarıma,yalnız seni istiyorum yalnızlığıma..."
"Birgün hayat dedikleri şeyi merak edersen, unutma ki hayat hayatım diyebileceğin insanı bulunca baslar. Benim içinde hayat seninle başlıyor..."
"Dostluk,gereğince tanımlanamazlardandır ve ancak yasamakla anlaşılır. Bu yüzden dostluk şiir gibi aşk gibi anlatılmaz yasanır."
"Ölmekten korkmuyorum, seni milyonlarca yağmur damlasıyla paylaşmatan korkuyorum. Çiçek olup açmandan değil, seni bir gün gelip koparmalarından korkuyorum."
"Yarınlar umudumdu benim, bugünlere düşmandım. Yarınımdım sen benim, bugünüm olamazdın. Yarınlar hic gelmedi, ben hep bu gunlerde kaldım."
"Tok olan cümle, chanı tok sanır. Aç olan, alemde ekmek yok sanır."
"Kader beyaz kağıta sütle yazılmış yazı, elindeyse sıyır beyazdan beyazı. Allah'tan umuyorum ki, seni kaderime yazmış olsun."
"Sevenler, sevilmediklerini bilseler bile sevdiklerini, asla unutmazlar."
"Ben seni unutmak için sevseydim sana olan askimi kalbime degil, günes dogdugu zaman kaybolan bugulu camlara yazardim."
"Bagrimda bir ates var. Ne bileceksin? Ölsemde ne duyacak, ne göreceksin? Hep seninle yasadi, öldü deseler belki biraz üzülüp kim diyeceksin."
"50-60 yıllık dunyayi neyleyim. Versen bana sadece ilim, irfan gerisi zaten hep yalan."
"Ben yamaçtan ineyim, yol senin olsun. Ben zehir içeyim, su senin olsun. Duydum ki, bir sevgili bulmussun, Hayirli olsun. Bir tanede ben buldum, haberin olsun."
"Mademki sen yoksun yanimda, leylaklar dökülüp güller aglasın."
"Yasadiklarimdan pisman degilim. Öfkem yasayamadiklarimdandir."
"Bir gün sende seveceksin, sevene zulum etmenin cezasini cekeceksin. İste o zaman ben gelirim aklina. Ama ayni anda sende benim kalbimde öleceksin."
"Beni sensiz biraktigin gun geliyor aklima, dusunuyorumda cok aci cekmistim. Ama su anda dahada cok cekiyorum. Ama biliyorum ki sen bu aciya hic bir zaman degmedin, beni hic bir zaman sevmedin, sen sevsende sevmesende ben seni sevdim hepde öyle kalacak."
"Sen benzer diye kücük cicekleri öptügümsün, sen yoklugunu uzun yillara gömdügümsün, sen bir türlü cözemedigim kördügüm, sen sevipde koklayamadigim GÜLÜMSÜN!"
"Gün gelirse ellerin ellerimden ayrılırsa. Bir yabancı gibi söz söylerse dillerin. Beni görüpte, görmezden gelir mi gözlerin? Ecel gerekmez, ben o zaman ölürüm gülüm!"
"Biz yıkılmaz sevgilerin sarsılmaz yaşlarıyız. Yüreğimizde sevda yazar, anlımızda bela! Biz delice sevmeyi biliriz. Ama sevdiğimizi unutmayı asla."
"Aşk, köle olmayacak kadar özgür, ulaşılmayacak kadar derin, kaçamayacak kadar yakın, yaşanacak kadar güzelsin."
"Güzel insan O dur ki kaderden gelen lütfa sevinmez kahra incinmez."
"Seni sevdiğimi sana nasıl anlatayım? Ölmek gerekirse ölürüm ama beni sevdiğini bilirsem..."
"Her haksız eleştirinin altında gizli bir hayranlık yatar."
"Kavuşmak ölümse; hasretin zulüm. Elbette kavuşuruz, bekle gülüm. Tek sana aittir şu gönlüm. Ben yolumu seçtim. Ya sen ya ölüm."
"En büyük felaketler dahi içinde ümidini kaybetme. Unutmaki, en yumusak ilik, en sert kemigin içinden çıkar. Gülmek senin için bir tutku olsun. Olurda bir gün aglarsan, o da mutluluktan olsun."
"Yüregimizde ates, gözlerimizde sevgi, ellerimizde umutla, bütün kötülüklere inat, gülümseyerek yasiyoruz. Her insan bir yasam, unutma! Sen de bir yasamsin."
"Gönlüne düserse bir imkansiz ask, kacarken vurulmus ceylan gibi yüregin, aglarsin. Irmak olur gözyaslarin bosa, kendini taniyamazsin. Asiksan yarimsin, yikamam kumdan kalemi, aldatamam kendimi, acamam mühürlü kalbimi, anlatamam derdimi."
"Yillar vardir nasil geçtigini bilmezdim. Bir gün vardir, yasamin anlamini degistirdi. Bana dair hissetmedigimi, bilmedigimi yasatti. İşte o ani senle yasadim senle sevdim."
"Birgün senden ayrilacagim, bir yana yalniz kalacagim hiç aklima gelmemisti. Ve birde birgün umudum olmayinca yarina, bu günü yasiyormuyum anlayamadim."
"Hayatta yasamanin 2 yolu vardir 1. Hiçbirseyin mucize olmadigini düsünmek. 2.Herseyin bir mucize oldugunu düsünmek."
"Ask, insanin kendisine yapabilecegi en büyük iskencedir."
}
# !!! Ayarlamalar Bitti !!! #
bind pub - !soz tell_that
proc tell_that 
{nick uhost hand chan $rand} {
global 
kullanici
putserv 
"privmsg #sohbet 0,2 $nick 0,6 0,4G0,2üzel 0,4s0,2öz 0,4i0,2steğiniz:0,6 0,4 [lindex $kullanici [rand [llength $kullanici]]] "



AsiL 16 Aralık 2007 23:15

Cevap: Tcl Arşivi
 
Away whois tarama

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set awhois
(bansebep"Reklamci botlarin kanal icinde gezmeleri yasaktir.!"
## Ban Suresi ? 0= temelli
## 10 = 10 dakika
set awhois(sure"0"
# Whoisde hangi kelimeler gecerse kullaniciyi banliyacagiz ?
set kotu(list) {
"*****"
"*http://*"
"*
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">}

# Kontrol edilicek kanallar.?
set kanallar #mircsohbetim #oyun #radyo }
##

  
foreach chan [channels] {
 
set kanallar $chan
  
}

bind join - * awhois(join)
 
##Buraya dokunmayiniz. :}
 
proc awhois(join) {nick uhost hand chan} { 
  if {[
strlwr $nick] == [strlwr $::botnick] || [matchattr $hand of|fo $chan]} {
    return
  } 
  
putserv "WHOIS $nick
set awhois(banhost) *!*[string range $uhost [string first $uhoste]
set ::reklamci $nick
set 
::kanal $chan
set 
::uhost $uhost
bind RAW 
301 awhois(kontrol)
}
proc awhois(kontrol) {from key arg} {
  global 
awhois kanallar
  set chan 
$::kanal
  set nick 
$::reklamci
  set uhost 
$::uhost
  set awaymesaj 
[string range [join [lrange $arg 2 end]] 1 end]
  foreach 
bla $::kotu(list) {
    if {![
string match -nocase $bla $awaymesaj]} {
      continue
    }
 
awhois(banla$nick $uhost
    
break
  }
}
proc awhois(banla) {nick uhost} {
  global 
awhois kanallar
#  putserv "privmsg $kanallar :$nick ve *!*[string range $uhost [string first @ $uhost] e] reklam yapti.!"
  
putquick "MODE $kanallar +b *!*[string range $uhost [string first @ $uhost] e]"
  
putkick $kanallar $nick $awhois(bansebep)
  
newchanban $kanallar *!*[string range $uhost [string first $uhosteAwayWhois.Tcl $awhois(bansebep$awhois(sure)
}
 
putlog "AwayWhois.tcl v1.0 by illegal_NicCK" 


AsiL 16 Aralık 2007 23:17

Cevap: Tcl Arşivi
 
Global Mesaj


[PHP]################################################## ############################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven! #
# [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] #
################################################## ############################################
#Konusma icin zaman sureci (Dk cinsinden)
set zaman_araligi "15"

#Uygulamanin calismasi icin
#botun oper login ve nick login paslari

#oper login
set o_login "Oper"

#Oper Login sifresi
set o_pass "Sifre"

#Nick identify sifresi
set b_ipass "Sifre"


#bind
bind evnt - init-server baglanti:ayari

#mesajlar
set global_msg {
" 2 Nickinizin bir başkası tarafından kullanılmasını istemiyorsanız, güvenliğiniz için lütfen nicklerinizi, 4"/kayit sifre e-mail" 14(Örn: "/kayit 123456 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]") 2şeklinde kaydediniz."
}

if {![string match "*konusma_zamani*" [timers]]} {
timer $zaman_araligi konusma_zamani
}


proc konusma_zamani {} {
global global_msg zaman_araligi
set global_rmsg [lindex $global_msg [rand [llength $global_msg]]]
putserv "OS GLOBAL $global_rmsg"
timer $zaman_araligi konusma_zamani
return 1
}
proc baglanti:ayari {type} {
putserv "NICKSERV IDENTIFY $b_ipass
putserv "OPER $o_login $o_pass"
putserv "WALLOPS :Global mesaj sistemi aktif!"
}


putlog "Global mesaj atma sistemi yuklendi"
putlog "Bot OPER ve Global kullanma izni olmadigi surece"
putlog "Calismayacaktir!"
putlog "mail:

AsiL 16 Aralık 2007 23:18

Cevap: Tcl Arşivi
 
Ping Kontrol

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">bind pub 
"ping" pub_ping
proc pub_ping 
{nick uhost hand chan arg} {
  
putserv "PRIVMSG $nick :\001PING [unixtime]\001"
  
putlog "!ping received from $nick"
  
return 0
}

bind ctcr PING lag_reply
proc lag_reply 
{nick uhost hand dest key arg} {
  if {
$key == "PING"} {
    
set endd [unixtime]
    
set lagg [expr $endd $arg]
    if {
$lagg "30"} {
      
putserv "NOTICE $nick :4C2ok 4f2azla 4l2agdasin3 $lagg "
      
putlog "$nick is lagged by $lagg secs"
      
return 1
    
}
    if {
$lagg "15"} {
      
putserv "NOTICE $nick :4L2agdasin 4p2ingin14:3 $lagg 4s2aniyedir."
      
putlog "$nick is lagged by $lagg secs"
      
return 1
    
}
    
putserv "NOTICE $nick :Ping'in idare eder pingin $lagg"
    
putlog "$nick is lagged by $lagg secs"
  
}
}

bind ctcp PING ping_resp
proc ping_resp 
{nick uhost hand botnick key arg} {
  if {
$key == "PING"} {
    
putserv "NOTICE $nick :Ping icin Tesekkurler."
  
}



AsiL 16 Aralık 2007 23:24

Cevap: Tcl Arşivi
 
Fjoin Cr İçin

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">bind raw 
Notice gelenvar
proc kanalaal 
nick chan } {
putserv "fjoin $nick $chan"
killutimer "kanalaal $nick $chan"
}
proc gelenvar from keyword text } {
if {[
string match -nocase "*client connecting*" $text]} {
set kisi [lindex [split $text9]
putserv "WALLOPS : $kisi Bağlandı!"
utimer 1 "kanalaal $kisi #muhabbet"
utimer 1 "kanalaal $kisi #haber"
utimer 1 "kanalaal $kisi #radyo"
}



AsiL 16 Aralık 2007 23:25

Cevap: Tcl Arşivi
 
Oper Join Cr

PHP- Kodu:

##############################################################################################
# Basari Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven!                    #

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">bind raw 
Notice operjoin
proc operjoin 
from keyword text } {
  if {[
string match -nocase "*is now an operator*" $text]} {
 
set _nick [lindex [split $text4]
 
set snr [string range $_nick [expr [string first "(" $_nick]+1] [expr [string last "!" $_nick]-1]]
 
putserv "fjoin $snr #mgtops"
 
putserv "fjoin $snr #admin"
        
putserv "PRIVMSG #admin Hoş geldiniz; $snr Kolay gelsin."
        
putserv "os mode #admin -o $snr"
  
}
}
putlog "OperJoin Yüklendi. TCL BY illegal_NicCK" 


AsiL 16 Aralık 2007 23:28

Cevap: Tcl Arşivi
 
Kelime Oyunu

PHP- Kodu:

set tgqdb "scripts/kelime.txt"
set tgscf "scripts/kelimepuan.txt"
set tgerrfil "scripts/kelimehata.txt"
set tgchan "#bulmaca"
set tgpointsperanswer 15
set tgmaxhint 1
set tgstreakmin 3
set tgmaxmissed 0
set tghintchar 
"*"
set tgtimehint 20
set tgtimenext 10
set tgcongrats
[list "Harikasin" "Soruyu Bildin"]
set tgnobodygotit[list ".."]
set tgtrythenextone[list ".."]
set tgshowanswer 1
set tgpriv2msg 1
set tgcmdhelp 
"?"
set tgcmdstart "basla"
set tgflagsstart -|-
set tgcmdstop "!dur"
set tgflagsstop -|-
set tgcmdhint "ipucu"
set tgflagshint -|-
set tgcmdskip "atlkllka"
set tgflagsskip -|-
set tgcmdreset "resklklet"
set tgflagsreset -|-
set tgcmdlookup "skor"
set tgcmdtarget "hedef"
set tgcmderror "hata"
set tgcmdrules "kural"
set tgrules "Kanal Kuralımız : Size Yapılmasını İstemediğiniz Davranışı Başkasına Yapmamanız...!"
set tgerrremindtime 5
 
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                                   #
#    Burdan Sonrasini Degismeniz Riske Sebeb Olur :):):             #
#                                                                   #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#Misc checks & var initialisations
if {![file exists $tgqdb]} {
 
putlog "\002[file tail [info script]]\002 failed to load: $tgqdb does not exist."
 
return
}
if {![
info exists alltools_loaded]||$allt_version<204} {
 
putlog "\002[file tail [info script]]\002 failed to load: please load alltools.tcl v1.6 or higher before attempting to use this script."
 
return
}
if {[
llength [split $tgchan]]!=1} {
 
putlog "\002[file tail [info script]]\002 failed to load: too many channels specified."
 
return
}
if {![
info exists tgplaying]} {set tgplaying 0}
if {![
info exists tghintnum]} {set tghintnum 0}
if {![
info exists tgmissed]} {set tgmissed 0}
#Binds
bind pub $tgflagsstart $tgcmdstart tgstart
bind pub $tgflagsstop $tgcmdstop tgstop
bind pub $tgflagshint $tgcmdhint tgforcehint
bind pub $tgflagsskip $tgcmdskip tgskip
bind join 
-|- "$tgchan *" tgjoinmsg
bind msg 
$tgcmdhelp tggivehelp
bind msg 
$tgcmdlookup tgscorelookup
bind msg 
$tgcmdtarget tgtargetlookup
bind msg 
$tgcmderror tgerror
bind msg 
$tgcmdrules tgrulesmsg
bind msg $tgflagsreset 
"$tgcmdresettgresetscores
bind kick 
"$tgchan $botnicktgbotgotkicked
bind evnt 
disconnect-server tgbotgotdisconnected
#starts the game if it isn't running.
proc tgstart {nick host hand chan text} {
 global 
tgplaying tgstreak tgchan tgerrremindtime tgerrremindtimer tgmissed
 
if {[strlwr $tgchan]==[strlwr $chan]} {
  if {
$tgplaying==0} {
   
tggamemsg "4Kelime Oyun'u Baslatildi!.."
   
tgnext
   set tgplaying 1
   set tgstreak 0
   set tgmissed 0
   set tgerrremindtimer 
[timer $tgerrremindtime tgerrremind]
  }
  return 
1
 
}
}
#stops the game if it's running.
proc tgstop {nick host hand chan text} {
 global 
tghinttimer tgnexttimer tgplaying tgchan tgcurrentanswer tgstreak tgstreakmin
 
global tgerrremindtimer
 
if {[strlwr $tgchan]==[strlwr $chan]} {
  if {
$tgplaying==1} {
   
tggamemsg "Oyunu Durduran $nick!"
   
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
   
set tgstreak 0
   set tgplaying 0
   
catch {unbind pubm -|- "$tgchan $tgcurrentanswertgcorrectanswer}
   if {[
utimerexists tghint]!=""} {killutimer $tghinttimer}
   if {[
utimerexists tgnext]!=""} {killutimer $tgnexttimer}
   if {[
timerexists tgerrremind]!=""} {killtimer $tgerrremindtimer}
  }
  return 
1
 
}
}
#gives a hint if there is currently a question to answer.
proc tgforcehint {nick host hand chan text} {
 global 
tghinttimer tgnexttimer tgplaying tgchan tgcurrentanswer tgstreak tgstreakmin
 
global tgtempnohint tghintmax tghintnum
 
if {[strlwr $tgchan]==[strlwr $chan]} {
  if {
$tgplaying==1&&[utimerexists tghint]!=""} {
   
killutimer $tghinttimer
   tghint
  
}
  return 
1
 
}
}
#skips the current question if one has been asked.
proc tgskip {nick host hand chan text} {
 global 
tghinttimer tgnexttimer tgplaying tgchan tgcurrentanswer tgstreak tgstreakmin tgtimenext
 
if {[strlwr $tgchan]==[strlwr $chan]} {
  if {
$tgplaying==1&&[utimerexists tghint]!=""} {
   
tggamemsg "4Soru 2$nick Tarafından Direkt Olarak Geçildi!"
   
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
   
set tgstreak 0
   unbind pubm 
-|- "$tgchan $tgcurrentanswertgcorrectanswer
   killutimer $tghinttimer
   set tgnexttimer 
[utimer $tgtimenext tgnext]
  }
  return 
1
 
}
}
#reminds channel how to report errors in questions/answers
proc tgerrremind {} {
 global 
tgerrremindtimer tgerrremindtime botnick tgcmderror
 tggamemsg 
"Unutmayın!: Kelimelerdeki Hataları Bize Bildirmek İçin, Lütfen 4#Operhelp Kanalındaki Yetkililerle İrtibata Geçin"
 
set tgerrremindtimer [timer $tgerrremindtime tgerrremind]
}
#bot got kicked. stop the game.
proc tgbotgotkicked {nick host hand chan targ text} {
 
tgquietstop
}
#bot got disconnected. stop the game.
proc tgbotgotdisconnected {disconnect-server} {
 
tgquietstop
}
#stops the game without telling the channel.
proc tgquietstop {} {
 global 
tgplaying tgstreak tgchan tgcurrentanswer tghinttimer tgnexttimer tgerrremindtimer
 
if {$tgplaying==1} {
  
set tgstreak 0
  set tgplaying 0
  
catch {unbind pubm -|- "$tgchan $tgcurrentanswertgcorrectanswer}
  if {[
utimerexists tghint]!=""} {killutimer $tghinttimer}
  if {[
utimerexists tgnext]!=""} {killutimer $tgnexttimer}
  if {[
timerexists tgerrremind]!=""} {killtimer $tgerrremindtimer}
 }
}
#reads the question database.
proc tgreadqdb {} {
 global 
tgqdb tgquestionstotal tgquestionslist
 set tgquestionstotal 0
 set tgquestionslist 
"" 
 
set qfile [open $tgqdb r]
 while {![
eof $qfile]} {
  
lappend tgquestionslist [gets $qfile]
  
incr tgquestionstotal
 
}
 
close $qfile
}
#selects the next question.
proc tgnext {} {
 global 
tgqdb tgcurrentquestion tgcurrentanswer tgquestionnumber tgquestionstotal
 
global tghintnum tgchan tgquestionslist
 tgreadqdb
 set tgquestionnumber 
[rand [llength $tgquestionslist]]   
 
set tgquestionselected [lindex $tgquestionslist $tgquestionnumber]
 
set tgcurrentquestion [lindex [split $tgquestionselected |] 1]
 
set tgcurrentanswer [strlwr [lindex [split $tgquestionselected |] 0]]
 unset 
tghintnum
 tghint
 bind pubm 
-|- "$tgchan $tgcurrentanswertgcorrectanswer
 
return
}
#shows timed hints.
proc tghint {} {
 global 
tgmaxhint tghintnum tgcurrentanswer tghinttimer tgchan
 
global tgtimehint tghintchar tgquestionnumber tgquestionstotal
 
global tgcurrentquestion tghintcharsused tgnexttimer tgtimenext tgstreak tgstreakmin
 
global tgnobodygotit tgtrythenextone tgmissed tgmaxmissed tgcmdstart tgshowanswer
 
global tgtimestart
 
if {[catch {incr tghintnum}]!=0} {set tghintnum 0}
 if {
$tghintnum >= [expr $tgmaxhint+1]} {
  
incr tgmissed
  set _msg 
""
  
append _msg "0,6Zaman Doldu!0,7 Bir Sonraki Kelime İçin Hazırlanın"
  
if {$tgmaxmissed>0&&$tgmissed>=$tgmaxmissed} {
   
append _msg " 0,6Kelime Çözmeye Niyetiniz Yoksa Dinleniyim Biraz :)!"
   
} else {
   
append _msg " [lindex $tgtrythenextone [rand [llength $tgtrythenextone]]]"
  
}
  
tggamemsg "$_msg"
  
if {$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
  
set tgstreak 0
  
catch {unbind pubm -|- "$tgchan $tgcurrentanswertgcorrectanswer}
  if {
$tgmaxmissed==0||$tgmissed<$tgmaxmissed} {
   
set tgnexttimer [utimer $tgtimenext tgnext]
  }
  return
 } elseif {
$tghintnum == 0} {
  
set i 0
  set _hint 
{}
  
set tghintcharsused {}
  
regsub -all -- "\[A-Za-z0-9\]" $tgcurrentanswer $tghintchar _hint
  set tgtimestart 
[clock clicks -milliseconds]
 } elseif {
$tghintnum == 1} {
  
set i 0
  set _hint 
{}
  while {
$i<[llength [split $tgcurrentanswer]]} {
   
set _word [lindex [split $tgcurrentanswer$i]
   
set j 0
   set _newword 
{}
   while {
$j<[strlen $_word]} {
    if {
$j==0} {
     
append _newword [stridx $_word $j]
     
lappend tghintcharsused $i,$j
    
} else {
     if {[
string is alnum [stridx $_word $j]]} {
      
append _newword $tghintchar
     
} else {
      
append _newword [stridx $_word $j]
      
lappend tghintcharsused $i,$j
     
}
    }
    
incr j
   
}
   
lappend _hint $_newword
   incr i
  
}
  } else {
   
set i 0
   set _hint 
{}    
   while {
$i<[llength [split $tgcurrentanswer]]} {
    
set _word [lindex [split $tgcurrentanswer$i]
    
set j 0
    set _newword 
{}
    
set _selected [rand [strlen $_word]]
    
regsub -all -- "\[^A-Za-z0-9\]" $_word "" _wordalnum
    
if {[strlen $_wordalnum]>=$tghintnum} {
     while {[
lsearch $tghintcharsused $i,$_selected]!=-1||[string is alnum [stridx $_word $_selected]]==0} {
      
set _selected [rand [strlen $_word]]
     }
    }
    
lappend tghintcharsused $i,$_selected
    
while {$j<[strlen $_word]} {
     if {[
lsearch $tghintcharsused $i,$j]!=-1||[string is alnum [stridx $_word $j]]==0} {
      
append _newword [stridx $_word $j]
     } else {
      if {[
string is alnum [stridx $_word $j]]} {
       
append _newword $tghintchar
      
}
    }
    
incr j
   
}
   
lappend _hint $_newword
   incr i
  
}
 }
tggamemsg "xx-x-13x-x-x--x-x-4x-x-4-x--12x-x-x-x-7x-x-x-x-x-x->"
 
tggamemsg "2İşte Kelimeniz  Düzenleyin: 3 [strupr $tgcurrentquestion] "
 
tggamemsg "5(5Bu Harflerin Hepsinin Oldugu Bir Kelime Bulun5)"
tggamemsg "xx-x-13x-x-x--x-x-4x-x-4-x--12x-x-x-x-7x-x-x-x-x-x->"
 
set tghinttimer [utimer $tgtimehint tghint]
}
#triggered when someone says the correct answer.
proc tgcorrectanswer {nick host hand chan text} {
 global 
tgcurrentanswer tghinttimer tgtimenext tgchan tgnexttimer tgstreak tgstreakmin
 
global tgscoresbyname tgranksbyname tgranksbynum tgcongrats tgscorestotal tgmissed
 
global tgtimestart
 tggetscores
 
if {![info exists tgranksbyname([strlwr $nick])]} {
  
set _oldrank 0
 
} else {
  
set _oldrank [lindex [split $tgranksbyname([strlwr $nick]) ,] 0]
 }
 
tgincrscore $nick
 tggetscores
 set _newrank 
[lindex [split $tgranksbyname([strlwr $nick]) ,] 0]
 
set _timetoanswer [expr [expr [clock clicks -milliseconds]-$tgtimestart]/1000.00]
 
set _msg "5Tebrikler6 $nick 5Doğru Cevap 6 [strupr $tgcurrentanswer] 0415 Puan Kazandınız."
 
if {$_newrank<$_oldrank} {
  if {
$_newrank==1} {
   
append _msg " Tebrikler "
  
} else {
   
append _msg ""
  
}
 }
 
tggamemsg "$_msg"
 
if {$tgstreak!=0} {
  if {[
lindex [split $tgstreak ,] 0]==[strlwr $nick]} {
   
set tgstreak [strlwr $nick],[expr [lindex [split $tgstreak ,] 1]+1]
   if {
$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} {
    
tggamemsg "4Bravo 2$nick 4Kelimeyi Ard Arda Siz Bildiniz! Diğerleriyle Aranızda Fark Oluşmaya Başladı!"
   
}
  } else {
   if {
$tgstreakmin>0&&[lindex [split $tgstreak ,] 1]>=$tgstreakmin} { tgstreakend }
   
set tgstreak [strlwr $nick],1
  
}
 } else {
  
set tgstreak [strlwr $nick],1
 
}
 
set tgmissed 0
 tgshowscores
 unbind pubm 
-|- "$tgchan $tgcurrentanswertgcorrectanswer
 killutimer $tghinttimer
 set tgnexttimer 
[utimer $tgtimenext tgnext]
 return 
1
}
#read current scores from file, sort and store in variable.
proc tggetscores {} {
 global 
tgscf tgscorestotal tgscores tgscoresbyname tgranksbyname tgranksbynum tgrealnames
 
if {[file exists $tgscf]&&[file size $tgscf]>2} {
  
set _sfile [open $tgscf r]
  
set tgscores [lsort -dict -decreasing [split [gets $_sfile]]]
  
close $_sfile
  set tgscorestotal 
[llength $tgscores]
 } else {
  
set tgscores ""
  
set tgscorestotal 0
 
}
 if {[
info exists tgscoresbyname]} {unset tgscoresbyname}
 if {[
info exists tgranksbyname]} {unset tgranksbyname}
 if {[
info exists tgrealnames]} {unset tgrealnames}
 if {[
info exists tgranksbynum]} {unset tgranksbynum}
 
set i 0
 
while {$i<[llength $tgscores]} {
  
set _item [lindex $tgscores $i]
  
set _nick [lindex [split $_item ,] 2]
  
set _lwrnick [lindex [split $_item ,] 3]
  
set _score [lindex [split $_item ,] 0]
  
set tgscoresbyname($_lwrnick$_score
  set tgrealnames
($_lwrnick$_nick
  set tgranksbyname
($_lwrnick) [expr $i+1],$_score
  set tgranksbynum
([expr $i+1]) $_lwrnick,$_score
  incr i
 
}
 return
}
#increment someone's score.
proc tgincrscore {who} {
 global 
tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname
 tggetscores
 
if {$tgscorestotal>0} {
  
set i 0
  
if {![info exists tgscoresbyname([strlwr $who])]} {
   
append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who] "
  
}
  while {
$i<[llength $tgscores]} {
   
set _item [lindex $tgscores $i]
   
set _nick [lindex [split $_item ,] 2]
   
set _time [lindex [split $_item ,] 1]
   
set _score [lindex [split $_item ,] 0]
   if {[
strlwr $who]==[strlwr $_nick]} {
    
append _newscores "[expr $_score+$tgpointsperanswer],[expr 1000000000000.0/[unixtime]],$who,[strlwr $who][expr [expr [llength $tgscores]-$i]==1?"":""]"
   
} else {
    
append _newscores "$_score,$_time,$_nick,[strlwr $_nick][expr [expr [llength $tgscores]-$i]==1?"":""]"
   
}
   
incr i
  
}
 } else {
  
append _newscores "1,[expr 1000000000000.0/[unixtime]],$who,[strlwr $who]"
 
}
 
set _sfile [open $tgscf w]
 
puts $_sfile "$_newscores"
 
close $_sfile
 
return
}
#shows the current scores on channel.
proc tgshowscores {} {
 global 
tgscores tgchan tgscorestotal
 tggetscores
 set i 0
 
while {$i<[llength $tgscores]} {
  
set _item [lindex $tgscores $i]
  
set _nick [lindex [split $_item ,] 2]
  
set _score [lindex [split $_item ,] 0]
  if {
$i==0} {
   
append _scores "2$_nick $_score"
  
} elseif {$i==1} {
   
append _scores ", 12$_nick $_score"
  
} elseif {$i==2} {
   
append _scores ", 4$_nick $_score"
  
} elseif {[onchan $_nick $tgchan]} {
   
append _scores ",4$_nick $_score"
  
}
  
incr i
 
}
 
tggamemsg "5Sonuclar: $_scores"
}
#reset current scores.
proc tgresetscores {nick host hand text} {
 global 
tgscf tgscorestotal tgscores
 
if {[file exists $tgscf]&&[file size $tgscf]>2} {
  
set _sfile [open $tgscf w]
  
puts $_sfile ""
  
close $_sfile
  set tgscores 
""
  
set tgscorestotal 0
 
}
 
tggamemsg "4===== Skor Tablosu $nick! Tarafından Resetlendi ====="
 
return 1
}
#triggered when a winning streak ends.
proc tgstreakend {} {
  global 
tgstreak tgrealnames
  tggamemsg 
"4Bravo $tgrealnames([lindex [split $tgstreak ,] 0]) Çok Fazla Strike ye Sahipsiniz... Tebrikler!"
  
return
}
#triggered when someone joins trivia chan.
proc tgjoinmsg {nick host hand chan} {
 global 
botnick tgplaying tgcmdhelp tgcmdstart tgflagsstart tgcmdstop tgflagsstop tgchan
 
if {$nick != $botnick} {
  
set _msg ""
  
append _msg "Welcome to $botnick's Trivia Channel. Trivia Oyunu Şuanda"
  
if {$tgplaying==1} {
   
append _msg " \002on\002."
  
} else {
   
append _msg " \002off\002."
  
}
  if {[
matchattr $hand $tgflagsstart $tgchan]&&$tgplaying==0} {
   
append _msg " Oyunu Başlatmak İçin, Lütfen \002$tgcmdstart\002 Yazınız"
  
}
  
append _msg " Yardıma İhtiyacınız Olursa \002/MSG $botnick [strupr 
$tgcmdhelp]\002 Yazınız! :-) (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)"
  
[tgpriv$nick "$_msg"
 
}
}
#triggered when someone /msgs the bot with the score lookup command.
proc tgscorelookup {nick host hand text} {
 global 
tgscoresbyname tgranksbyname tgscorestotal tgrealnames
 
if {$text==""} { set text $nick } else { set text [lindex [split $text0] }
 
tggetscores
 
if {![info exists tgscoresbyname([strlwr $text])]} {
  if {[
strlwr $text]==[strlwr $nick]} {
   
set _who "4Siz"
  
} else {
   
set _who "4$text 4is"
  
}
  [
tgpriv$nick "Skor Tablosunda Yoksunuz!"
 
} else {
  if {[
strlwr $text]==[strlwr $nick]} {
   
set _who "4Siz"
  
} else {
   
set _who "4$tgrealnames([strlwr $text]) 4is"
  
}
  [
tgpriv$nick "$tgscoresbyname([strlwr $text]) Soru Bildiniz , Ranked 4[tgordnum [lindex [split $tgranksbyname([strlwr $text]) ,] 0]] of 4$tgscorestotal."
 
}
 return 
1
}
#triggered when someone /msgs the bot with the target lookup command.
proc tgtargetlookup {nick host hand text} {
 global 
tgscoresbyname tgranksbyname tgscorestotal tgranksbynum tgrealnames
 tggetscores
 
if {![info exists tgscoresbyname([strlwr $nick])]} {
  [
tgpriv$nick "Siz Skor Tablosunda Yoksunuz!"
 
} else {
  
set _myrank [lindex [split $tgranksbyname([strlwr $nick]) ,] 0]
  
set _myscore [lindex [split $tgscoresbyname([strlwr $nick]) ,] 0]
  
set _tgtrank [expr [lindex [split $tgranksbyname([strlwr $nick]) ,] 0]-1]
  
set _tgtnick [lindex [split $tgranksbynum($_tgtrank) ,] 0]
  
set _tgtscore [lindex [split $tgranksbynum($_tgtrank) ,] 1]
  [
tgpriv$nick "Şuandaki Bildiğiniz Soru Sayısı \00304$_myscore\00306. "
 
}
 return 
1
}
#triggered when someone /msgs the bot with the error reporting command.
proc tgerror {nick host hand text} {
 global 
tgquestionstotal tgquestionslist tgerrfil
 
if {$text==""||![string is int [lindex $text 0]]} {
  [
tgpriv$nick "Soru Numarasını belirtmelisiniz...!"
  
return
 }
 
tgreadqdb
 set _qnum 
[lindex $text 0]
 if {
$_qnum>$tgquestionstotal} {
  [
tgpriv$nick "Böyle Bir Soru Bulunamadı."
  
return
 }
 
set _qques [lindex [split [lindex $tgquestionslist [expr $_qnum-1]] |] 1]
 
set _qans [lindex [split [lindex $tgquestionslist [expr $_qnum-1]] |] 0]
 
set _desc [lrange $text 1 end]
 if {
$_desc==""} { set _desc "No further info given for this error." }
 
set _file [open $tgerrfil a]
 
puts $_file "Reported by:\t$nick"
 
puts $_file "Bezirgan #:\t$_qnum"
 
puts $_file "Bezirgan:\t$_qques"
 
puts $_file "Answer:\t\t$_qans"
 
puts $_file "Comments:\t$_desc"
 
puts $_file "--------------------------------------------------------------------------------"
 
close $_file
 
[tgpriv$nick "Hatayı Bildirdiğiniz İçin Teşekkür Ederiz."
 
return 1
}
#triggered when someone /msgs the bot with the rules command.
proc tgrulesmsg {nick host hand text} {
 global 
tgrules
 
[tgpriv$nick "Kanal Kuralları: $tgrules"
 
return 1
}
#triggered when someone /msgs the bot with the help command.
proc tggivehelp {nick host hand {text ""}} {
 global 
botnick tgcmdlookup tgcmdhelp tgcmdstart tgcmdstop tgchan tgflagsstop
 
global tgcmdstop tgflagshint tgcmdhint tgflagsskip tgcmdskip tgflagsreset tgcmdreset
 
global tgcmdtarget tgcmderror tgcmdrules
 
if {$text==""} {
  [
tgpriv$nick "Yardım Almak İçin Kullanacağınız Komut /MSG commands:"
  
[tgpriv$nick "Komutları command Yerine Yazınız, /MSG $botnick <command>"
  
[tgpriv$nick "  \002[strupr $tgcmdrules]\002"
  
[tgpriv$nick "   -- Kanal Kurallarını Listelemek İçin"
  
[tgpriv$nick "  \002[strupr $tgcmdlookup]\002 \[nick\]"
  
[tgpriv$nick "   -- Oyundaki Skorunuzu Öğrenmek İçin \[nick\], "
  
[tgpriv$nick "    Sadece Kendi Skorunuzu Görüntüler."
  
[tgpriv$nick "  \002[strupr $tgcmdtarget]\002"
  
[tgpriv$nick "   -- Oyun botundaki Hedefinizi Gösterir"
  
[tgpriv$nick "    Kimin Sizin Önünüzde Olduğunu Yada Arkanızdakinin Kim Olduğunu Görmek İçin"
  
[tgpriv$nick "  \002[strupr $tgcmderror]\002 <number> \[description\]"
  
[tgpriv$nick "   -- Sorulardaki Hataları bizlere Bildirmenize Yarar <number>"
  
[tgpriv$nick "    
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
"
  
if {[matchattr $hand $tgflagsreset $tgchan]} {
   [
tgpriv$nick "  \002[strupr $tgcmdreset]\002"
   
[tgpriv$nick "   -- Skor Tablosunu Resetlemek İçin."
  
}
  [
tgpriv$nick "Kanal Komutlarını Listelemek İçin, /MSG $botnick [strupr $tgcmdhelp] PUBCMDS"
 
}
 if {[
strlwr $text]=="pubcmds"} {
  [
tgpriv$nick "You have access to the following channel commands:"
  
if {[matchattr $hand $tgflagsstart $tgchan]} {
   [
tgpriv$nick "  \002$tgcmdstart\002 -- Oyunu Baslatır."
  
}
  if {[
matchattr $hand $tgflagsstop $tgchan]} {
   [
tgpriv$nick "  \002$tgcmdstop\002 -- Oyunu Durdurur."
  
}
  if {[
matchattr $hand $tgflagshint $tgchan]} {
   [
tgpriv$nick "  \002$tgcmdhint\002 -- İpucu Verir."
  
}
  if {[
matchattr $hand $tgflagsskip $tgchan]} {
   [
tgpriv$nick "  \002$tgcmdskip\002 -- Soruyu Atlar."
  
}
  [
tgpriv$nick "For a list of /MSG commands, /MSG $botnick [strupr $tgcmdhelp]"
 
}
 return 
1
}
#misc procs
proc tggamemsg {what} {
 global 
tgchan
 putquick 
"PRIVMSG $tgchan :$what"
}
#Returns ordinal version of number passed to it.
#i.e. [tgordnum 1] returns "1st", [tgordnum 33] returns "33rd"
#Surely there's an easier way to do this?
proc tgordnum {num} {
 
set _last1 [string range $num [expr [strlen $num]-1end]
 
set _last2 [string range $num [expr [strlen $num]-2end]
 if {
$_last1=="1"&&$_last2!="11"} {
  return 
"[expr $num]st"
 
} elseif {$_last1=="2"&&$_last2!="09"} {
  return 
"[expr $num]nd"
 
} elseif {$_last1=="3"&&$_last2!="13"} {
  return 
"[expr $num]rd"
 
} else {
  return 
"[expr $num]th"
 
}
}
proc tgpriv {} {
 global 
tgpriv2msg
 
if {$tgpriv2msg==1} {
  return 
"putmsg"
 
} else {
  return 
"putnotc"
 
}
}
putlog "* [file tail [info script]] by LeonidaS <
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
> Yuklendi."
tgreadqdb
putlog 
"* $tgquestionstotal Kelime basariyla yuklendi" 


AsiL 16 Aralık 2007 23:31

Cevap: Tcl Arşivi
 
kelime.txt Sorular

Kod:


kaplumbaga|aagbmulpak
cici|icic
bocuk|kuboc
deli|lide
clamentine|entineclam
notalone|lonenotal
rootmaster|mastertoor
shamariq|mariqahs
nur|rnu
manag|nagma
uyuz|zuyu
cucuq|cuqcu
cemsit|tismec
Sehadet|detahse
Akaid|adika
Mustehap|pamushet
Peygamber|magpeyreb
Cemaat|maceta
Vehhab|bahhev
Kardeslik|kilsedrak
Cebrail|railbec
Lucifer|fericlu
Kakavan|akkanav
Tevazu|uzatev
Mucahid|camudih
Bozguncu|nugzobuc
İbadet|batide
Sigorta|atsirog
kotuluk|tukulok
iyimser|sermiyi
belirti|rilebit
dagcilik|kilcigad
gelincik|egciknil
gokyuzu|zuyukog
yalanci|lanciay
kirli|iklir
silsile|lesilis
saadet|asated
gazali|azilga
medine|dineem
manevi|enamvi
prenses|pensesr
kardinal|dinalrak
ozlemek|meklezo
karmasa|raksama
halik|ahkil
rahman|namhar
muceddid|cedumdid
muctehid|hidetcum
kuddus|duksud
hafiz|ahzif
intizar|tizarni
bertaraf|tafraber
taraftar|faratrat
teblig|ligbet
muallim|almimul
bedir|rideb
uhud|hudu
hayber|beryah
ihram|ramih
muzdelife|fedezumli
arafat|taaraf
emevi|veime
lidyalilar|yadilralli
turuncu|uctunur
espri|sepri
kaos|sako
zurafa|faruza
solentera|tralesone
girdap|pardgi
fumerol|lofemru
kalburustu|uuklarbstu
mancinik|camnikin
madalyon|yoldamna
jelibon|biljone
yumiyum|miyuyum
kaleydeskop|pedoykalesk
projektor|tekjropor
akliselim|simlakile
mizansen|neszinam
iskandinavya|yanisidakvna
garibaldi|idlargiba
sistematik|iematssikt
alimunyum|maynulmui
serdar|rdsear
mustehab|sbtumeha
klimanjero|jlikromena
amortisor|sirromato
aconqagua|gauqnaoca
disavurumculuk|ukisaducmlurvu
implantasyon|tasimlanyopn
creature|atecreru
kategori|getkiaro
nacizhane|zenhacian
blootooth|otoloobth
mercidabik|kericbimda
mutemadiyen|yenitedumam
trimaran|maitnrra
murekkep|peumkrek
asimptot|tsipatom
beynelmilel|lleybmnelie
savunmasiz|zasmavisnu
pagoda|gapdoa
sadakatsiz|disztakaa
patavatsiz|vatzaptais
digergamlik|kigdemlirga
diyagram|imardagy
konsolos|oslookns
pediatri|ridpetia
turkdostu|dostukrut
cuzdan|danucz
kitap|pakit
atac|cata
koltuk|tulkok
camera|macera
silgi|gilis
dolma|ladom
odunluk|luknudo
kumanda|mandaku
proje|rojep
sehba|habes
vitrin|rinvit
teyip|pitey
feridun|dunrief
zagu|aguz
septizm|mzitsep
kafur|rufka
payedar|radpaye
makinalık|ıkalnikam
kesiy|yiske
kesiyt|tyiske
gizci|izcig
bulunan|nanubul
ciroluk|lukciro
mono|nomo
meracı|ıcarme
meraklılık|kılılmekar
metu|tmeu
yokamato|otamyoka
sandalye|dalyenas
telefon|felnote
evrak|revak
hamsi|mihas
ucuzul|luuzuc
kapak|kaakp
kapi|piak
paty|ytap
polyana|anayolp
fepe|epfe
sohbet|tehbos
zet|ezt
teze|ezet
tazece|azecte
melu|luem
malu|ulma
malup|pulma
vipu|upiv
vapu|puva
canada|adanac
hakki|ikkah
hakai|ikhaa
zagu|ugaz
zagru|urzag
zumrug|umzrug
lara|laar
lara|rala
lora|oalr
larvak|varalk
yavsi|isavy
karamel|melraka
sevgi|gisev
sembol|bolsem
para|rapa
sohbet|tebsoh
orman|omran
lamba|balam
cubbe|becubb
sevgili|sevligi
vilayet|vilayte
derman|ermand
kaza|azak
papatya|payapat
gul|ulg
kumar|makur
oyun|onuy
maske|meska
canan|caann
merdane|merdaen
kalem|kelam
sivri|ivris
lokum|lokmu
lavanta|vantala
barut|burat
silah|salih
mercan|canrem
pembe|pemeb
kocaman|namkoca
sinan|annis
kral|arlk
sitem|itmes
serseri|iresser
malibu|alimbu
metal|talem
uyumak|yukamu
test|stet
koruk|ukkor
vermek|mervek
panda|andap
yogurt|gurtoy
mefta|atefm
memleket|memketle
araba|baara
sempatik|empakits
toraman|ramanot
iskonto|konisto
papaz|zpapa
yonca|cayno
mutfak|kafmut
seramoni|seronima
terzi|zerti
mevlana|lavmena
nusret|tersun
pecete|tecepe
kalkmak|kaklkam
gitmek|gimetk
zombi|ibzom
maraba|arabam
sinem|nesim
rutkan|naktur
pirana|ranaip
kerkenez|kenezrek
hiphop|pihpoh
zebani|banize
perhiz|zihper
sinema|masine
kahve|vehak
tercume|cumeret
kiyam|iyamk
solucan|canusol
damla|ladam
zerre|erzer
cocuk|cckuo
yelpaze|pazeley
fiyasko|yaskofi
tarla|arlat
mebla|ablem
zerdali|zerlida
imam|mami
kurs|surk
damga|gamad
sincan|cannis
cumle|elcum
minder|inderm
kaynana|nanayak
fizik|kizif
tavla|altav
cariye|riyeac
ucret|retcu
mekruh|hurmek
sigara|garsia
baron|ornab
kestane|tenkesa
dilber|ilberd
kocaman|ocnamka
telefon|lenofte
simya|yasmi
internet|terinnet
kanca|ancak
misilleme|miilsemel
kasap|sapak
beyaz|zebya
kanka|akkan
meral|ralem
zodyak|zodkay
ankara|anakar
misyoner|simyoren
enter|neret
kumbara|barumka
sanal|ansal
robin|obrin
nihayet|nihyeat
cemko|okcem
pirim|irpim
koruma|urokma
etna|tena
kartal|artkal
deneme|nedeme
sevda|evdas
bozok|okboz
beter|eterb
grev|evgr
azab|baza
sigorta|gorsita
ingilizce|ingizilec
kardes|arksed
canta|antac
izci|zici
volta|volat
bardak|arkadb
saklambac|sakbacmal
kablo|olbak
kanepe|nekape
cakmak|akkcam
deli|ledi
santana|tananas
siyah|yahsi
merkez|zekrme
keriz|izrek
mekan|ankem
zulum|lumuz
kadife|efikad
laz|azl
trabzon|zonartb
cocuk|cukoc
eflatun|latfeun
karamsar|masarkar
bilgisayar|yarbilsagi
ayakkabı|kkabıaya
davul|vulad
program|gopramr
enayi|aneyi
tezkere|zeterek
elma|mela
cicibebe|becibeci
rumuz|umzur
kefen|fenek
sigara|garasi
kapak|pakka
manken|namenk
ziyankar|yankarzi
helal|elalh
kaplumbaga|aagbmulpak
feridun|dunrief
zagu|aguz
septizm|mzitsep
kafir|rifka
piyade|dipaye
makinalık|ıkalnikam
kesir|riske
kesit|tiske
gizci|izcig
bulunan|nanubul
ciroluk|lukciro
mono|nomo
meracı|ıcarme
meraklılık|kılılmekar
metu|tmeu
yokamato|otamyoka
ucuz|uzuc
kapak|kaakp
kapi|piak
patik|iktap
palyanco|anacyolp
ferit|irtfe
leonidas|sadinole
taze|ezat
tazece|azecte
melul|lueml
malup|pulma
viper|erpiv
vapur|purva
canada|adanac
hakki|ikkah
hakari|ikrhaa
zaga|agaz
garez|erzag
zumrut|umzrut
lara|laar
lara|rala
lora|oalr
larva|varal
yavsi|isavy
lavas|saavl
kaybolanyıllar|rallıynalobyak
aksam|maksa
ikiaile|eliaiki
banka|ankab
finans|sinanf
tekstil|ektislt
gelin|lineg
favori|irfavo
arcelik|likcear
fenerbahce|cehabneref
sivrisinek|iiissevrk
sükrüsaracoglu|rücogsarlusüka
reklam|kerlam
alsohbet|lahosteb
kurtlarvadisi|sidivatrukral
antalya|yalnata
keriz|rizke
sema|mase
ihlamur|murlaih
palmolive|molivepal
aptamil|talimpa
transformers|rantsrofsmer
blendax|daxlbe
realmadrid|ridemadalr
barcelona|orcbelana
dunya|udayn
sezon|zones
ıloveyou|veuoyilo
sparta|parsta
sinav|inavs
acemi|imeca
cadi|idac
star|tras
 
 


AsiL 16 Aralık 2007 23:33

Cevap: Tcl Arşivi
 
cycle tcl

PHP- Kodu:

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# SERViCES CYCLE BOT CREATOR v3.0
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##### Hostlarin gizlenmesi icin host-prefix #####
set pwhost "BasariHosting-TR"
set listfile [open scripts/cycle.txt r]
set nickflist [split [subst -nocommands [read $listfile]] \n]
##### Bota baslama komutunu verecek kisinin nickini girin #####
set authorized "illegal_NicCK"
##### Services adresini girin. #####
set servicesadr "services.alanadi.com"

##### Eggdrop - bot icin log tutumu #####
# Eger eggdropinizin olusturdugu botlarin giris cikislarini 
# bir kanala yazarak kaydetmesini istiyorsaniz, 0 isaretini 1 yapin.
#
set logit 1
##### Eggdropin log kanalini girin. #####
# Bu kanal botlarin giris cikislarinin yazilacagi kanaldir.
# Bu nedenle sadece adminlerin ve eggdropin girebilecegi bir kanal yazin.

set logchany "#cycle"
################################################
# !!!!! KODLAMA BASLIYOR !!!!! #
# BU SATIRDAN ITIBAREN YAPACAGINIZ DEGISIKLIKLER 
# TCL SCRIPTIN BOZULMASINA YOL ACABILIR.
################################################
 
proc pwjoin {what what2 what3 what4 what5 what6 what7 what8 what9} {
 global 
kanal logit logchany
 
if {$logit == 1} { 
   
puthelp "PRIVMSG $logchany :$what Kanala sokuluyor --> $what9
 
}
 
putquick "os :raw :$what join $what9 "
 
utimer $what2 "pwpart $what $what3 $what $what2 $what3 $what4 $what5 $what6 $what7 $what8 $what9"
}
proc pwpart {whad whad2 oldu1 oldu2 oldu3 oldu4 oldu5 oldu6 oldu7 oldu8 oldu9} {
 global 
kanal logit logchany
 
if { $logit == } { puthelp "PRIVMSG $logchany :$whad Kanaldan cikartiliyor --> $oldu9}
 
putquick "os :raw :$whad part $oldu9 "
 
putquick "kill $oldu4 :15Lütfen kurallara uyunuz."
 
putquick "os :raw :$whad nick $oldu4"
 
if { $logit == } { puthelp "PRIVMSG $logchany :$whad Nick degistiriliyor --> $oldu4}
 
utimer $whad2 "pwjoin2 $oldu4 $whad2 $oldu1 $oldu2 $oldu3 $oldu4 $oldu5 $oldu6 $oldu7 $oldu8 $oldu9"
}
proc pwjoin2 {whas whas2 oldud1 oldud2 oldud3 oldud4 oldud5 oldud6 oldud7 oldud8 oldud9} {
 global 
kanal logit logchany
 
if { $logit == } { puthelp "PRIVMSG $logchany :$whas Kanala tekrar sokuluyor --> $oldud9}
 
putquick "os :raw :$whas join $oldud9 "
 
utimer $oldud2 "pwbquit $whas $oldud1 $oldud2 $oldud3 $oldud4 $oldud5 $oldud6 $oldud7 $oldud8 $oldud9"
}
proc pwbquit {whaaq oldukha1 oldukha2 oldukha3 oldukha4 oldukha5 oldukha6 oldukha7 oldukha8 oldukha9} {
 global 
quitmsg kanal logit logchany listfile response botnick nickflist servicesadr pwhost kanal logit logchany authorized
 
foreach iii $nickflist {
    if {[
regexp {(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)} $iii tmppp botident3 before3 after3 botadi3 wait3 partwait3 joinwait3 yenisi3 quitmes3 cikmadan3 kanallar3]} {
        if { 
$whaaq == $after3 } { 
          if { 
$cikmadan3 != } {           
            
putquick "os :raw :$whaaq privmsg $kanallar3 :$cikmadan3"
            
if { $logit == } { puthelp "PRIVMSG $logchany :$whaaq Konusturuluyor." }  
            
utimer 10 "pwquit $whaaq $oldukha1 $oldukha2 $oldukha3 $oldukha4 $oldukha5 $oldukha6 $oldukha7 $oldukha8 $oldukha9"
            
return
          }
        }
    }
 }
 if { 
$logit == } { puthelp "PRIVMSG $logchany :$whaaq Konusturulamadi - Konusma modu kapali!" }  
 
utimer 10 "pwquit $whaaq $oldukha1 $oldukha2 $oldukha3 $oldukha4 $oldukha5 $oldukha6 $oldukha7 $oldukha8 $oldukha9"
}
proc pwquit {whaq olduk1 olduk2 olduk3 olduk4 olduk5 olduk6 olduk7 olduk8 olduk9} {
 global 
quitmsg kanal logit logchany listfile response botnick nickflist servicesadr pwhost kanal logit logchany authorized
 
foreach ii $nickflist {
    if {[
regexp {(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)} $ii tmpp botident2 before2 after2 botadi2 wait2 partwait2 joinwait2 yenisi2 quitmes2 cikmadan2 kanallar2]} {
        if { 
$whaq == $after2 } { 
          
putquick "os :raw :$whaq quit :$quitmes2"
          
if { $logit == } { puthelp "PRIVMSG $logchany :$whaq Serverdan cikartiliyor" }  
          
utimer $olduk6 "olustur $olduk1 $olduk2 $olduk3 $olduk4 $olduk5 $olduk6 $olduk7 $olduk8 $olduk9"
          
return
        }
    }
 }
 if { 
$logit == } { puthelp "PRIVMSG $logchany :$whaq SERVERDAN CIKARTILAMADI !" }  
}
proc olustur {olsun1 olsun2 olsun3 olsun4 olsun5 olsun6 olsun7 olsun8 olsun9} {
  global 
servicesadr pwhost kanal logit logchany
  
if { $logit == } { puthelp "PRIVMSG $logchany :$olsun1 Yeniden olusturuluyor." }
  
puthelp "kill $olsun1 :15Lütfen kurallara uyunuz.
  puthelp "
os :raw nick $olsun1 1 1 $olsun8 2[rand 4][rand 9].[rand 9][rand 9][rand 9].[rand 9][rand 9][rand 9].$pwhost-[rand 9][rand 9][rand 9][rand 9][rand 9$servicesadr :$olsun5"
  utimer 
$olsun7 "pwjoin $olsun1 $olsun2 $olsun3 $olsun4 $olsun5 $olsun6 $olsun7 $olsun8 $olsun9"
}

proc pwornek {nick host hand {text ""}} {
  global pwhost
}
proc pworn {ornekcik} {
   puthelp "
NOTICE PowerUseR $ornekcik snlikti"  
}
proc pwstart {nick host hand {text ""}} {
   global listfile response botnick nickflist servicesadr pwhost kanal logit logchany authorized
   if 
{$nick == "$authorized"} {
   puthelp "
NOTICE $nick :Olusum basliyor"
   foreach i 
$nickflist {
      if {[regexp {(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)} 
$i tmp botident before after botadi wait partwait joinwait yenisi quitmes cikmadan kanallar]} {
          puthelp "
kill $before :15Lütfen kurallara uyunuz."
          puthelp "
os :raw nick $before 1 1 $botident 2[rand 4][rand 9].[rand 9][rand 9][rand 9].[rand 9][rand 9][rand 9].$pwhost-[rand 9][rand 9][rand 9][rand 9][rand 9$servicesadr :$botadi"
          if { 
$logit == 1 } { puthelp "PRIVMSG $logchany :$before olusturuluyor." }
          utimer 
$wait "pwjoin $before $partwait $joinwait $after $botadi $yenisi $wait $botident $kanallar"
      }
   }
   }
}
proc pwdestroy {nick host hand {text ""}} {
   global listfile response botnick nickflist servicesadr pwhost kanal logit logchany authorized
   if 
{$nick == "$authorized"} {
   puthelp "
NOTICE $nick :Botlar yok ediliyor"
   if { 
$logit == 1 } { puthelp "PRIVMSG $logchany :YOK ETME KOMUTU VERILDI ($authorized)." }
   foreach i 
$nickflist {
      if {[regexp {(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)::(.+)} 
$i tmp botident before after botadi wait partwait joinwait yenisi quitmes cikmadan kanallar]} {
          puthelp "
kill $before :destroyed by $authorized"
          puthelp "
kill $after :destroyed by $authorized"
          if { 
$logit == 1 } { puthelp "PRIVMSG $logchany :$before $after YOK EDiLiYOR." }
      }
   }
   }
}
bind msg - baslat pwstart
bind msg - yoket pwdestroy
bind msg - ornek pwornek
putlog "
================Cycle Bot v3.0================"
putlog "
=                                            ="
putlog "
OperServ raw -autobot control 2.0        ="
putlog "
http://
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">putlog 
"=                                            ="
putlog "==============================================" 


AsiL 16 Aralık 2007 23:35

Cevap: Tcl Arşivi
 
cycle.txt

PHP- Kodu:

Turkiye::Petek_17^^::Gamzeli::mIRC::10::1080::1200::1070::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Turk::Mircci::Codeman::mIRC::20::1100::1300::1100::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
IRCCoderCom::aLi38::__Ferdi__::mIRC::30::1006::1200::1003::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet66Net::Y-a-s-e-m-i-n::RalIici::mIRC::40::1300::1020::1070::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::quLc|n::Fanatik::mIRC::50::1400::1600::1400::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::^^Kizgin`Gusel::Antika_Saatci::mIRC::60::1500::1700::1800::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`
juper::mIRC::110::2400::1700::1800::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::Guzel_ve_Guzel_D::Ben-Geldim::mIRC::120::1060::1030::1500::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::ProfesyoneI::Sebebimsinnn::mIRC::130::1700::1800::1008::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::Nicksiz_Girl::^^_-Nadid3-_^^::mIRC::140::1800::1700::1050::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::Titanik::Efsaneee::mIRC::150::1000::1200::1400::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::DeliKiz__::Masum`Koylu::mIRC::160::1070::1005::1034::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`::
Kibritci::mIRC::180::1000::1005::1000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::[C]obr[A]::iskorpitx::mIRC::190::1040::1050::6000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo,#muhabbet
Sohbet::ali`baba::iLayDa_29::mIRC::200::1020::1050::1000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`
mAn::ejhakeh::100::10107::1070::2510::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::pOliS_FUaT::erdi_20::degirmen906::210::31010::4210::580::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alanadi-User4564156::alanadi-User290900::alanadi-User::610::10030::1038::10100::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alanadi-User74888::alanadi-User1165::java::1003::502::600::101000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alanadi-User126532::alanadi-User4165165::oninee::2104::707::650::300::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::RenklamCi::bedirabi::mynet::3390::10286::10003::9090::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Fakir_ama_GururLu::mumya_firarda::alanadi-User::4720::10346::3010::1045::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Fabrikator::astraa32::java::502::104902::3108::68::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Muhendis_M26::alanadi-User90004::dream::622::633::10043::690::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alanadi-User0163104::sargon::alanadi-User::846010::100010::10002::2090::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Futbolcu::^^G^O^R^A^^::alanadi-User64645::1001010::210102::100090::460::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alanadi-User9054102::seval03::alanadi-User::10308::90102::106103::10100::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::HaLiT::Panda`04::alanadi-User456465::1020::2000::750::720::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`::
Karton_Baby::mIRC-v1::472::1346::300::1245::7Chat46«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»3 6« 14irc.alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Z`W`Y::XeNa::Gazneli_Husyn::501::1492::318::681::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Kopyaci_Girl::JavaUser25::JavaUser31::621::633::1043::692::Ping timeout::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Beckham::Muhtar_Aga::JavaUser12340::100::1000::100::11000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Bileydimmm::_Havucc_::JavaUser12341::200::900::200::1000::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::SmyRNa::KelebekUser45165::JavaUser12342::300::800::300::900::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser123::JavaUser1232::JavaUser12343::400::700::400::800::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser124::JavaUser1233::JavaUser12344::500::600::500::700::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser125::JavaUser1234::JavaUser12345::600::500::600::600::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser126::JavaUser1235::JavaUser12346::700::400::700::500::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser127::JavaUser1236::JavaUser12347::800::300::800::400::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser128::JavaUser1237::JavaUser12348::900::200::900::300::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::JavaUser129::JavaUser1238::JavaUser12349::1000::100::1000::3500::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::SeRSeRi_17::SeRSeRii::mIRC::297::3450::179::72::Ping time out::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo::zorsevgilim::Derya18f::0::300::2700::158::72::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">Sohbet
::_guzel_X_Girl::LayLayLom::301::2900::132::72::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::Hey millet kimse yok mu?::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo:0::312::3500::123::79::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">Sohbet
::ELWanss::BAY-X_IZMIR::KeNaNn::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::slm millet::#radyo
Sohbet::Erkut21::KurSun_f::Komsu_Kizi::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Aktif18::ArifErdem::Kontor_Guzeli::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::cilgin_CojuK::Love_speak::klas_m::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Aytuq::pinarcik::realboy::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::ReJePp::Damat`KraL::Prof_Doktor::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`
Dunya::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::derya16f::liseli_kiz::seni_seviyorum_m::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::corumLuu_::ozgur_kiz::jack_nicola::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
sohbet_k::Matilda::seco::hayalatimsin::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Mithat::Semanur::Bakma_Bebek_Yanarsin::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Sindirella::Simgecik::Sevgisiz_Girl::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Sacid::Kankaaa::Sohbetci::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::sevgiselii::ask_cocu::AtillaGunes::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::T-e-g-m-e-n::turkannn::tatbim::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::tanya::tanya18f::bursali::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::uyuyan_prens::ugur::asker18::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::urfaliyak::mehtapli_geceler::arkantos::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Mutlu_cocuk::Muptelayim_sana::gazoz::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::gazoz::hasancc::mirC18::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::alpacino18::tortorax::ahmets::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::TurkBoyS::anTepLi::kalpsiz::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::I_Love_You::Kamyoncu::Mercedes::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::DJ_keskin::AkmanBoy::iST_m-34::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Diablo18::TusLak::Aycacik::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Sohbet::Evli_f::erkek_m::Sakin`::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">`
ci::cezaGirL::ASKIMMM::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
CamSohbet::Antalya_F::Biyonik::zhurna::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
CamSohbet::Korsanf_25::Gel_BANA_DOGRU::HAHAHAH::178::4750::1695::1650::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»:0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
SesliChat::_onLyne_::LoveGirL::mIRC-TR::10::117::170::251::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
SesliChat::oRqun::Hidayet::Yuzuk::21::311::421::580::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
SesliChat::SeRSeRi_aDaM::KaLPTeN_KaLBe::Beyaz::60::1030::138::110::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::selamsss::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
SesliChat::_^^SenSiZ^^_::elmas21::mIRC-TR::99::502::600::1100::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
WebChat::Nedensiz::Sampiyon_Galatasaray::mIRC-TR6::213::707::650::300::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
WebChat::RizeninArfikaKoyundenim::KaraMelek::SEvda::329::1286::1003::99::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
WebChat::KraL-BeNiM::SuSaMSoKaGI::mIRC::472::1346::300::145::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
WebUser::mihriban::Zeyna_::java::501::1492::318::68::6«14 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
alanadi.com 6»::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo
Java::Kiz_yokmu::java::mIRC::621::633::1043::69::
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">.
mIRC.net::0::#sohbet,#oyun,#yarisma,#game,#kelime,#egitim,#trivia,#radyo 


AsiL 16 Aralık 2007 23:36

Cevap: Tcl Arşivi
 
Allah nasip ederse devam edeceğim bu başlık altında.

BuCaLI 17 Aralık 2007 08:23

Cevap: Tcl Arşivi
 
iyi güzel ellerine sağlıkta bunların neredeyse hepsi var zaten forumda.

AsiL 17 Aralık 2007 09:36

Cevap: Tcl Arşivi
 
olmayanlarıla olanlarla beraber vermeye calısıyorum işte ;)

eSCoBaR 21 Temmuz 2008 18:02

Cevap: Tcl Arşivi
 
emeğine sağlık kardeşş toplayıp paylaşmak en güzeli tek bi noktada arıyoruz.. en güzelini yapmışsın..


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 13:16.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk