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

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 12 Ağustos 2010, 10:31   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Merlin Oyun Botu Client Exited Sorunu




Sa. Arkadaşlar

Oyun botunu sunucuya soktuktan 15 20 dakika sonra kendiliğinden düşüyor, tcl lerini değiştim conf dosyasını değiştim hala devam bunun sebebi hakkında bilgisi olan varmı?

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 12 Ağustos 2010, 13:43   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Merlin Oyun Botu Client Exited Sorunu




TCL ve kodları paylaşırsan dahaçabuk yanıt alabilirsin. Burada elde birşey olmadan birşey söylemek ne kadar doğru bilmiyorum.

__________________
Lucifer dediler bana, kötülüğü anlatmak için. Halbuki, ışık ve güzelliği anlatırdı Lucifer. Ben kötüyüm bu düzen için; ama değilim asla kötülük.
 
Alıntı ile Cevapla

Alt 13 Ağustos 2010, 14:55   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Merlin Oyun Botu Client Exited Sorunu




PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
## Kurulumu Yapan: KraLaz
#===================== LINE NEEDED FOR LOADCONF ====================# 
#! /path/to/eggdrop

#======================= GENERAL BOT SETTINGS ======================#
set username "xx"
set admin "x <email:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
>"
set network "xx
set timezone "
EST"
set offset "
5"
set my-hostname "
xx"
set my-ip "
xx

#==================== GENERAL BOT LOGGING OPTIONS ==================#
set max-logsize 0
set quick
-logs 0
logfile mco 
"scripts/log/bilgin.log"
logfile gs #oyun "scripts/log/bilgin.log"
set log-time 1
set keep
-all-logs 0
set 
switch-logfiles-at 300
set quiet
-save 0
set console 
"xxx"

#================ GENERAL BOT FILE/LOCATION SETTINGS ===============#
set userfile "scripts/log/bilgin.user"
set sort-users 0
set help
-path "help/"
set temp-path "/tmp"
set motd "motd"
set telnet-banner "telnet-banner"

#====================== GENERAL BOTNET OPTIONS =====================#
#set botnet-nick "Oyun"
listen 3333 all
set protect
-telnet 0
set dcc
-sanitycheck 0
set ident
-timeout 5
set 
require-p 0
set open
-telnets 0
set stealth
-telnets 0
set 
use-telnet-banner 0
set connect
-timeout 15
set dcc
-flood-thr 3
set telnet
-flood 5:60
set paranoid
-telnet-flood 1
set resolve
-timeout 15

#===================== ADVANCED SETTINGS FOR BOT ===================#
#set firewall "proxy:178"
#set nat-ip "127.0.0.1"
#set reserved-port 9076
set ignore-time 0
set hourly
-updates 00
set owner 
"Seytan"
set notify-newusers "$owner"
set default-flags "hp"
set whois-fields "url birthday"
set remote-boots 2
set share
-unlinks 1
set 
die-on-sighup 0
set 
die-on-sigterm 0
unbind dcc n tcl 
*dcc:tcl
unbind dcc n set 
*dcc:set
set must
-be-owner 0
unbind dcc n simul 
*dcc:simul
set max
-dcc 50
set dcc
-portrange 1024:65535
set enable
-simul 1
set allow
-dk-cmds 1


#==================== GENERAL BOT MODULE SETTINGS ==================#
set mod-path "modules/"

#==================== GENERAL BOT CHANNEL MODULES ==================#
loadmodule channels

set chanfile 
"scripts/log/bilgin.chan"
set ban-time 0
set exempt
-time 60
set invite
-time 60
# set force-expire 0
set share-greet 0
set 
use-info 1
set 
global-flood-chan 5:3
set 
global-flood-deop 5:10
set 
global-flood-kick 0:0
set 
global-flood-join 8:30
set 
global-flood-ctcp 8:30

set 
global-chanset {
        +
clearbans      +enforcebans
        
+dynamicbans    +userbans
        
+autoop         -bitch
        
+greet          +nodesynch
        
+statuslog      -stopnethack
        
-revenge        -secret
        
-autovoice      +cycle
        
+dontkickops    -wasoptest
        
-inactive       +protectfriends
        
+shared         -seen
    
+userexempts    +dynamicexempts
    
+userinvites    +dynamicinvites
}

channel add #Oyun {
need-op putserv "MODE #Oyun +v Oyun" }
  
chanmode "+nt"
  
idle-kick 0

}

set global-chanmode ""

#==================== GENERAL BOT SERVER MODULES ===================#

loadmodule server
set net
-type 0
set nick 
"Oyun"
set altnick "Oyunc"
set realname "14xNet Ircd Bot 4Oyun"
set init-server putserv "xxx"
putserv "oper xx *xxx"
putserv "mode oyun +H"
putserv "mode Oyun +D"
}

set servers {
x:6667
}

set keep-nick 1
set 
use-ison 1

set strict
-host 0

set quiet
-reject 1
set lowercase
-ctcp 0
set answer
-ctcp 3
set flood
-msg 0:0
# how many CTCPs in how many seconds?
set flood-ctcp 0:0

set never
-give-up 1
set strict
-servernames 0

set 
default-port 8889

set server
-cycle-wait 30

set server
-timeout 15

set servlimit 0
set check
-stoned 1
set 
use-console-r 0
set debug
-output 0
set serverror
-quit 1
set max
-queue-msg 300
set trigger
-on-ignore 0
set double
-mode 0
set double
-server 0
set double
-help 0

#set use-silence 1
#set check-mode-r 1
loadmodule ctcp
set ctcp
-mode 0
loadmodule irc
set bounce
-bans 1
set bounce
-modes 0
set kick
-bogus-bans 1
set bounce
-bogus-bans 1
set max
-bans 20
set max
-modes 30
set allow
-desync 0
set kick
-bogus 0
set ban
-bogus 0
set kick
-fun 0
set ban
-fun 0
set learn
-users 0
set wait
-split 600
set wait
-info 180
set mode
-buf-length 200
#unbind msg - hello *msg:hello
#bind msg - myword *msg:hello
#unbind msg - ident *msg:ident
#unbind msg - addhost *msg:addhost
#bind msg - myidentword *msg:ident
set no-chanrec-info 0

set revenge
-mode 1

set bounce
-exempts 0
set bounce
-invites 0
set max
-exempts 20
set max
-invites 20
set bounce
-bogus-exempts 0
set kick
-bogus-exempts 0
set bounce
-bogus-invites 0
set kick
-bogus-invites 0
# set use-exempts 0
# set use-invites 0
set prevent-mixing 1
#set kick-method 1
#set modes-per-line 3
#set use-354 0
#set rfc-compliant 1
#loadmodule transfer
set max-dloads 3
set dcc
-block 1024
set copy
-to-tmp 1
set xfer
-timeout 30

#==================== GENERAL BOT SHARE MODULES ====================#
#loadmodule share
#set allow-resync 0
#set resync-time 900
#set private-owner 0
#set private-global 0
#set private-globals "mnot"
#set private-user 0

#================== GENERAL BOT FILESYSTEM MODULES =================#
#loadmodule filesys
set files-path "/home/filesys"
set incoming-path "/home/filesys/incoming"
set upload-to-pwd 0
set filedb
-path ""
set max-file-users 20
set max
-filesize 1024

#===================== GENERAL BOT NOTES MODULES ===================#
loadmodule notes
set notefile 
"scripts/log/asda.notes"
set max-notes 50
set note
-life 60
set allow
-fwd 0
set notify
-users 1
set notify
-onjoin 1

#==================== GENERAL BOT CONSOLE MODULES ==================#
loadmodule console
set console
-autosave 1
set force
-channel 0
set info
-party 0

#==================== GENERAL BOT WOOBIE MODULES ===================#
#loadmodule woobie

#===================== GENERAL BOT SEEN MODULES ====================#
#loadmodule seen

#==================== GENERAL BOT BLOWFISH MODULES =================#
checkmodule blowfish

#===================== GENERAL BOT ASSOC MODULES ===================#
#loadmodule assoc

#===================== GENERAL BOT WRITE MODULES ===================#
#loadmodule wire

#======================== GENERAL BOT SCRIPTS ======================#
source scripts/alltools.tcl
source scripts
/action.fix.tcl
source scripts
/mer2.tcl
source scripts
/userinfo.tcl
#===================== GENERAL BOT HELP MODULES ====================#
loadhelp scripts/userinfo.help 


PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
## 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set realname 
"
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #FF8000">#soru bankanizdaki kacinci sorudan soru sormaya baslasin?

set tgquestionnumber "0"

# soru dosyalarının tutlacağı dizin. (Turkish)

set tgqdb "scripts/banka.txt"


# skorların yazılacağı dizin (Turkish)

set tgscf "scripts/trivia.scores"


# soru veya cevap hatalarının saklanacağı dizin (Turkish)

set tgerrfil "scripts/trivia.errors"

# [0/1] Hata raporu mail araciligi ile gonderilsin mi (Turkish)

set tgerrmethod 0


# hata raporu gonderilmeden once gecici dosyalar nerede saklansin (Turkish)

set tgerrmailtmp "/tmp"

# hata raporlarinin gonderilecegi mail adresi (Turkish)

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


# Oyunun oynanacagi kanal (Turkish)

set tgchan "#Oyun"

# doğru cevaba verilecek puan (Turkish)

set tgpointsperanswer[list "1" "2" "3" "4" "5" "6" "7" "10"]

# Soru cevap ayraci girin (Turkish)

set tgqdbsep "*"


# soru bankanizda sorular (Turkish)
# SORU\CEVAP seklinde ise 1 (Turkish)
# CEVAP\soru seklinde ise 0 (Turkish)

set tgqdbquestionfirst 1


# Web sayfasi olarak düzenlenen dosya nerede saklansin. (Turkish)

set tghtmlfile "scripts/mychan.html"

# web sayafsi ne zaman sürede update edilsin (Turkish)

set tghtmlrefresh 0

#  Web sayfasi kaydedilirken kullanilacak fontlar. (Turkish)

set tghtmlfont "verdana,helvetica,arial"


# En fazla verilecek ipucu sayısı (Turkish)

set tgmaxhint 3

#  ipucu gosterilsin mi (1) evet (0) hayir? (Turkish)

set tgalwaysshowq 1

#  Sorular Buyuk harfle yazilsin mi(1)evet (0) hayir?

set tgcapsquestion 0

#  Cevaplar büyük harfle yazilsin mi(1) evet (0) hayir?
#  Show answers in all CAPS (1) or not (0)?
set tgcapsanswer 0

#  ipuclari buyuk harfle yazilsinmi (1)evet (0) hayir?
#  Show hints in all CAPS (1) or not (0)?
set tgcapshint 0

# en az kaç soru üst üste bilindiğinde cevap serisi yakaladı olarak kayıt edilecek
#  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.
set tgstreakmin 5

#belirli sayıda soru bilinmezse oyun kapatılacak. !skip komutu hadil değil. 0 disable yapar.
#  The number of missed (i.e. unanswered, not skipped) questions to allow
#  before automatically stopping the game. Setting this to 0 will cause the
#  game to run until somebody uses the stop command, or the bot dies, gets
#  killed, pings out, or whatever.
set tgmaxmissed 0

# ipucu karakteri
#  The character to use as a placeholder in hints.
set tghintchar "*"

#verilen ipucları arasındaki süre. saniye cinsinden.
#  The time in seconds between hints.
set tgtimehint 8

#bir sonraki soruyu sorma süresi. saniye cinsinden.
#  The time in seconds between a correct answer, 'expired' or skipped question
#  and the next question being asked.
set tgtimenext 10

#tebrik mesajları
#  Phrases to use at random when someone answers a question correctly. This must
#  be a TCL list. If you don't know what that means, stick to the defaults.
set tgcongrats[list "Harikasin" "Bravo bildin" "Iyi hareket" "Tebrikler" "Iste oyun bu" "Guzel gidiyorsun" "Oyun nasil oynanir goster" "Bravo"]

#doğru cevap verilemediğinde gösterilecek mesajlar.
#  Phrases to use when the question has 'expired'. Must also be a TCL list.
set tgnobodygotit[list "Dogru cevabi bilen cikmadi." "Evde kimse varmi?" "Cevap yok!" "Bu sorular cokmu zor geldi?" "Acaba burda yalniz miyim?" "Boyle giderse kimse puan alamayacak!" "Canlanin biraz"]

#bir sonraki soru bildirim mesajı
#  Phrases to use when the question expired and there's another one coming up.
#  Yep, you guessed it... another TCL list.
set tgtrythenextone[list "Bakalim sonrakini bilecekmisiniz..." "Bir sonraki icin hazirlanin..." "Belki bir sonrakini bilirsiniz..." "Bakalim bunu bulabilecekmisiniz..." "Sonraki soru geliyor..."]

#  Will the bot calculate the time it took to get the correct
#  answer (1) or not (0)? (requires TCL 8.3 or higher).
set tgtimeanswer 1

#  Sorunun Cevabi gosterilsin mi? (1) evet (0) hayir?
#  Will the bot show the correct answer if nobody gets it (1) or not (0)?
set tgshowanswer 1

# Sorulan sorular her bilindiginde skor tablosu gosterilsin mi ?
#  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.
set tgshowallscores 0

#bold mesaj kullanımı açık/kapalı ayarı. 0 kapalı için
#  Use bold codes in messages (1) or not (0)?
set tgusebold 0

# Mesaj sistemi ne olarak kullanilsin /msg ise 1 /notice ise 0
#  Send private messages using /msg (1) or not (0)?
#  If set to 0, private messages will be sent using /notice
set tgpriv2msg 1

#yardım komutu
#  Word to use as /msg command to give help.
#  e.g. set tgcmdhelp "helpme" will make the bot give help when someone
#  does "/msg <botnick> helpme"
set tgcmdhelp "help"

#oyun başlatma komutu
#  Channel command used to start the game.
set tgcmdstart "!basla"

#oyunu kimlerin başlatabileceğini belirleyen bayrak(flag) ayarları. sadece bota kayıtlı oplar için o|o yazın.
#bütün kullanıcılar için -|- yazın. 

#  Flags required to be able to use the start command.
set tgflagsstart "-|-"

#oyunu durdurma komutu
#  Channel command used to stop the game.
set tgcmdstop "!dur"

#oyunu kimlerin durdurabileceğini belirleyen bayrak(flag) ayarları. sadece bota kayıtlı oplar için o|o yazın. 
#bütün kullanıcılar için -|- yazın. 
#  Flags required to be able to use the stop command.
set tgflagsstop "o|o"

# ipucu komutu
#  Channel command used to give a hint.
set tgcmdhint "ipucu"

#oyunuda kimlerin ipucu komutunu kullanabileceğini belirleyen bayrak(flag) ayarları.
# sadece bota kayıtlı oplar için o|o yazın.  bütün kullanıcılar için -|- yazın. 
#  Flags required to be able to use the hint command.
set tgflagshint "o|o"

#  Disable the !hint command x seconds after someone uses it. This
#  prevents accidental double hints if two people use the command in
#  quick succession.
set tgtempnohint 3

#soru atlatma komutu
# Channel command used to skip the question.
set tgcmdskip "!atla"

#oyunuda kimlerin !skip komutunu kullanabileceğini belirleyen bayrak(flag) ayarları.
# sadece bota kayıtlı oplar için o|o yazın.  bütün kullanıcılar için -|- yazın.
#  Flags required to be able to use the skip command.
set tgflagsskip "n|n"

#  top10 komudu.
#  Channel command for showing the top 10 scores.
#  Flags required to use the top 10 command.
set tgcmdtop10 "!top10"

#oyunuda kimlerin !top10 komutunu kullanabileceğini belirleyen bayrak(flag) ayarları.
# sadece bota kayıtlı oplar için o|o yazın.  bütün kullanıcılar için -|- yazın.
set tgflagstop10 "-|-"

# skor temizleme komutu
#  /msg command used to reset scores.
set tgcmdreset "temizle"

#oyunuda kimlerin temizle komutunu kullanabileceğini belirleyen bayrak(flag) ayarları.
# sadece bota kayıtlı oplar için o|o yazın.  bot yöneticileri için n|n yazın.
#  Flags required to be able to use the reset command.
set tgflagsreset "n|n"

#skor tablosunu sifirlamak icin bota login oldugunu sifreyi kullanin
#  Require password for resetting scores?
#  If enabled, you must use /msg bot reset <password> to reset scores.
#  The password is the one set by a user using '/msg bot pass'.
set tgresetreqpw 1

#  /msg command for looking up somebody's score.
#skor öğrenme komutu
set tgcmdlookup "skor"

#başkasının skorunu öğrenme komutu
#  /msg command for looking up your target.
#  (i.e. the person ranked one higher than you).
set tgcmdtarget "hedef"

#hata bildirme komutu
#  /msg command for reporting errors in questions and/or answers.
set tgcmderror "hata"

#  kurallar komudu.
#  /msg command to show channel's rules.
set tgcmdrules "kural"

#  Kanal kuralları.
#  Channel's rules.
set tgrules "Reklam, Tekrar, Flood, Küfür ve bezeri tutumsuz hareketlerde bulunmak yasaktir. Iyi Sanslar. :-)"

#  COLOURS
#  The colour codes used are the same as those used by mIRC:
#  00:white        01:black        02:dark blue    03:dark green
#  04:red          05:brown        06:purple       07:orange
#  08:yellow       09:light green  10:turquoise    11:cyan
#  12:light blue   13:magenta      14:dark grey    15:light grey
#
#  Always specify colour codes as two digits, i.e. use "01" for
#  black, not "1".
#  You can specify a background colour using "00,04" (white text
#  on red background).
#  To disable a colour, use "".
#  Note that disabling some colours but not others may yield
#  unexpected results.

set tgcolourstart "03"        ;#Game has started.
set tgcolourstop "04"        ;#Game has stopped.
set tgcolourskip "10"        ;#Question has been skipped.
set tgcolourerr "04"        ;#How to report errors.
set tgcolourmiss "10"        ;#Nobody answered the question.
set tgcolourqhead "04"        ;#Question heading.
set tgcolourqbody "09,01"    ;#Question text
set tgcolourhint "08,01"    ;#Hint.
set tgcolourstrk "12"        ;#Person is on a winning streak.
set tgcolourscr1 "04"        ;#Score of person in first place.
set tgcolourscr2 "12"        ;#Score of person in second place.
set tgcolourscr3 "03"        ;#Score of person in third place.
set tgcolourrset "04"        ;#Scores have been reset.
set tgcolourstend "12"        ;#Winning streak ended.
set tgcolourmisc1 "06"        ;#Miscellaneous colour #1.
set tgcolourmisc2 "04"        ;#Miscellaneous colour #2.
set tgcolantihack "01"        ;#Bosluk yerine gelecek olan harfler hangi renklerle gizlensin





# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#                                                                   #
#    Any editing done beyond this point is done at your own risk!   #
#  Number of minutes between reminders of how to report errors.
set tgerrremindtime 15
#                                                                   #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

#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} (merlin.tcl 2.0 (release) by aCoustiC 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
)"
    
set tgplaying 0
}
if {![
info exists tghintnum]} {set tghintnum 0}
if {![
info exists tgmissed]} {set tgmissed 0}

#Binds
bind pubm $tgflagsstart "$tgchan %$tgcmdstarttgstart
bind pubm $tgflagsstop 
"$tgchan %$tgcmdstoptgstop
proc tgbindhintcmd 
{} {
    global 
tgflagshint tgcmdhint
    bind pubm $tgflagshint 
"$::tgchan %$tgcmdhinttgforcehint
}
proc tgunbindhintcmd {} {
    global 
tgflagshint tgcmdhint
    unbind pubm $tgflagshint 
"$::tgchan %$tgcmdhinttgforcehint
}
tgbindhintcmd
bind pubm $tgflagsskip 
"$tgchan %$tgcmdskiptgskip
bind pubm $tgflagstop10 
"$tgchan %$tgcmdtop10tgshowtop10
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 "[tgcolstart]Soru cevap oyunu \002$nick\002 tarafından başlatıldı!"
            
tgnextq
            set tgplaying 1
            set tgstreak 0
            set tgmissed 0
            set tgerrremindtimer 
[timer 15 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]Soru Cevap oyunu \002$nick\002 tarafından durduruldu!"
            
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]Soru [tgcolmisc2]$nick'in[tgcolskip] isteği üzerine geçildi..."
            
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]Hatırlatma: Soru/Cevap hatalarını lütfen bize bildirin. Hataları bize bildirmek için \002/msg $botnick $tgcmderror <sorunumarası> \[Açıklama\]\002 şeklinde kullanınız."
    
tgerrremndersiscos
      set tgerrremindtimer 
[timer 15 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 {ğ$tgcurrentanswer "g" tgcurrentanswer
 regsub 
-all {Ğ$tgcurrentanswer "G" tgcurrentanswer
 regsub 
-all {ü$tgcurrentanswer "u" tgcurrentanswer
 regsub 
-all {Ü$tgcurrentanswer "U" tgcurrentanswer
 regsub 
-all {ş$tgcurrentanswer "s" tgcurrentanswer
 regsub 
-all {Ş$tgcurrentanswer "S" tgcurrentanswer
 regsub 
-all {ı$tgcurrentanswer "i" tgcurrentanswer
 regsub 
-all {İ$tgcurrentanswer "I" tgcurrentanswer
 regsub 
-all {ö$tgcurrentanswer "o" tgcurrentanswer
 regsub 
-all {Ö$tgcurrentanswer "O" tgcurrentanswer
 regsub 
-all {ç$tgcurrentanswer "c" tgcurrentanswer
 regsub 
-all {Ç$tgcurrentanswer "C" tgcurrentanswer
        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 " Cevap [tgcolmisc2]$tgcurrentanswer[tgcolmiss]."
        
}
        if {
$tgmaxmissed>0&&$tgmissed>=$tgmaxmissed} {
            
append _msg $tgmissed soru sordum ve cevap alamadim ve oyunu durduruyorum. Yeniden baslatmak için $tgcmdstart yazmalısınız."
            
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]
    }
      if {
$tghintnum==0} {
         if {[
regexp {\d$tgcurrentquestion]} {
             
tggamemsg "[merlin][tgcolqbody]$tgcurrentquestion"
         
} else {
           
regsub -all {\s$tgcurrentquestion [tgantihack][randstring 1 abcdefghijklmnopqrstuvwxyz][tgcolqbodytgcurrentquestion
           tggamemsg 
"[merlin][tgcolqbody]$tgcurrentquestion"
        
}
      }
      if {
$tghintnum>0} {
          
tggamemsg "[tgcolhint]Ipucu: [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]Skor tablosu boş."
        
}
    }
}
proc tgerrremndersiscos {} {
 
set string "Eğlenceye Devammmm..."
 
regsub -all {%20$string {} output
 tggamemsg 
"\2$output"
}
#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 tgscores tgpointsperanswer
    tggetscores
    
if {![info exists tgranksbyname([strlwr $nick])]} {
        
set _oldrank 0
    
} else {
        
set _oldrank $tgranksbyname([strlwr $nick])
    }
      
set puan [lindex $tgpointsperanswer [rand [llength $tgpointsperanswer]]]
    
tgincrscore $nick $puan
    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]! Doğru Cevap [tgcolmisc2]$tgcurrentanswer[tgcolmisc1].[expr $tgtimeanswer==1?" Soruyu [tgcolmisc2]$_timetoanswer[tgcolmisc1Saniyede Bildiniz.":""]"
    
set _msg2 "[tgcolmisc2]$nick [tgcolstrk]'$tgcurrentanswer'[tgcolmisc1] Size [tgcolmisc2]$puan[tgcolmisc1] puan kazandırdı!"


    
if {$_newrank<$_oldrank} {
        if {
$_newrank==1} {
            
append _msg " Şu an birincisiniz!"
        
} else {
            if {
$tgshowallscores==0} {
                
append _msg " Seviyeniz yükseldi.!"
            
} else {
                
append _msg " [tgcolmisc2]$tgscorestotal[tgcolmisc1] kişi içinde [tgcolmisc2]$_newrank. sıradasınız. [tgcolmisc2]$tgrealnames($tgranksbynum([expr $_newrank-1]))[tgcolmisc1]  [tgcolmisc2]$tgscoresbyrank([expr $_newrank-1])[tgcolmisc1] puanla hemen önünüzde."

            
}
        }
    }
    
tggamemsg "$_msg"
      
tggamemsg "$_msg2"
    
if {[isop $nick $tgchan]==&& [ishalfop $nick $tgchan]==&& [isvoice $nick $tgchan]==&& $_newrank!=1} {
        
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<=9&&$nick==$_nick&&[botisop $tgchan]} { 
                
tggamemsg "[tgcolmisc1]En çok puan toplayanlar arasına girdin, ödülün [tgcolmisc2]+v(voice)[tgcolmisc1] :)"
                
putserv "MODE $tgchan +v $nick
            

        
incr i 
        

    }

    if {[
botisop $tgchan] && [isop $nick $tgchan]==&& [ishalfop $nick $tgchan]==&& [isvoice $nick $tgchan]==&& $_newrank==1} {
        
tggamemsg "[tgcolmisc2]$nick[tgcolmisc1] Oyun 1.si konumundasınız ödülün +v(voice)"
        
putserv "MODE $tgchan +v $nick"
    
}

    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 "[tgcolmisc2]$nick[tgcolstrk] Cevap serisi yakaladı!! [tgcolmisc2][lindex [split $tgstreak ,] 1] [tgcolstrk]tane soruyu ust uste bildi! Bu size [tgcolmisc2]+100[tgcolmisc1] puan kazandırdı"
                        
tgincrscore $nick 100
                
if {[botisop $tgchan] && [isop $nick $tgchan]==&& [ishalfop $nick $tgchan]==&& [isvoice $nick $tgchan]==0} {
                    
putserv "MODE $tgchan +v $nick"
                
}


            }
        } 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 bonuspuan} {
    global 
tgscores tgscf tgpointsperanswer tgscorestotal tgscoresbyname
    tggetscores
    
if {$tgscorestotal>0} {
        
set i 0
        
if {![info exists tgscoresbyname([strlwr $who])]} {
            
append _newscores "$bonuspuan,[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+$bonuspuan],[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 "$bonuspuan,[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]Skorlar: $_scores"
    
} else {
        if {
$tgranksbyname([strlwr $nick])==1} {
            
set _tgt "."
        
} else {
            
set _tgt ", hemen onunuzdeki yarismaci [tgcolmisc2]$tgrealnames($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1])) [tgcolmisc2]$tgscoresbyrank([expr $tgranksbyname([strlwr $nick])-1])[tgcolmisc1] [tgcolmisc1]puana Sahip"
        
}
        
tggamemsg "[tgcolmisc2]$nick [tgcolmisc1]şu anda [tgcolmisc2]$tgscoresbyname([strlwr $nick])[tgcolmisc1] Puana sahipsiniz ve [tgcolmisc2]$tgscorestotal[tgcolmisc1] kişi arasında [tgcolmisc2]$tgranksbyname([strlwr $nick]).[tgcolmisc1] siniz $_tgt"
    
}
}

#reset current scores.
proc tgresetscores {nick host hand text} {
    global 
tgscf tgscorestotal tgscores tgplaying tgresetreqpw
    
if {($tgresetreqpw==&& [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]===== Skor tablosu \002$nick\002 tarafından silindi! ====="
    
}
}

#triggered when a winning streak ends.
proc tgstreakend {} {
        global 
tgstreak tgrealnames
        tggamemsg 
"[tgcolstend]İyi gidiyordun [tgcolmisc2]$tgrealnames([lindex [split $tgstreak ,] 0])[tgcolstend] iyi bir cevap serisi yakalamisti"
        
return
}

#triggered when someone joins trivia chan.
#triggered when someone joins trivia chan. 
proc tgjoinmsg {nick host hand chan} { 
     global 
botnick tgplaying tgcmdhelp tgcmdstart tgflagsstart tgcmdstop tgflagsstop tgchan 
     
global tgscorelookupjoin tgscoresbyname tgranksbyname tgscorestotal tgranksbynum tgrealnames 
     
global tgscoresbyrank tgscores 
     tggetscores 

     
if {$nick != $botnick} { 
         
set _msg "" 
         
append _msg "Soru Cevap Oyun kanalına hoş geldiniz. Oyun şu anda" 
     
if {$tgplaying==1} { 
        
append _msg " \002Açık\002." 
     
} else { 
       
append _msg " \002Kapalı\002." 
   

   if {[
matchattr $hand $tgflagsstart $tgchan]&&$tgplaying==0} { 
       
append _msg " Oyunu başlatmak için, \002$tgcmdstart\002 yazmalısınız $tgchan kanalına" 
  

  [
tgpriv$nick "$_msg"

  
if {![info exists tgscoresbyname([strlwr $nick])]} { 
       [
tgpriv$nick "[tgcolmisc2]$nick [tgcolmisc1]! Oyuncular arasında adınız yok. Aramıza katılmak için soruları cevaplamanın tam zamanı.!!! " 
   
} else {

    
set _durumu $tgranksbyname([strlwr $nick])

    if {
$_durumu==1} { 
        [
tgpriv$nick "[tgcolmisc2]$nick![tgcolmisc1]! Hos geldiniz, Su anda oyun birincisi olarak yer aliyorsunuz. Iyi Oyunlar dilerim."
 
    
} elseif {$_durumu>1} {
        [
tgpriv$nick "[tgcolmisc2]$nick![tgcolmisc1]! su anda oyun $_durumu. konumundasiniz, Iyi Eglenceler dilerim."
    

   
   
   } 
 } 

}

#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 "[tgcolmisc1]Nickinizin"
        
} else {
            
set _who "[tgcolmisc2]$text [tgcolmisc1]"
        
}
        [
tgpriv$nick "[tgbold]$_who [tgcolmisc1]skor tablosunda yok."
    
} else {
        
set _siralama $tgranksbyname([strlwr $nick])
        if {[
strlwr $text]==[strlwr $nick]} {
            
set _who "[tgcolmisc1]Nickinizin"
        
} else {
            
set _who "[tgcolmisc2]$tgrealnames([strlwr $text]) [tgcolmisc1]"
        
}
        [
tgpriv$nick "[tgbold]$_who [tgcolmisc2]$tgscoresbyname([strlwr $text])[tgcolmisc1] puanı var, [tgcolmisc2]$tgscorestotal[tgcolmisc1] [tgcolmisc1]kişi içinde [tgcolmisc2]$_siralama. sırada"
    
}
}

#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]Skor tablosunda yer almıyorsunuz."
    
} elseif {$tgranksbyname([strlwr $nick])==1} {
        [
tgpriv$nick "[tgbold][tgcolmisc1]Birinci sıradasınız!"
    
} else {
        [
tgpriv$nick "[tgbold][tgcolmisc1]Toplam puanınız [tgcolmisc2]$tgscoresbyname([strlwr $nick])[tgcolmisc1]. Hemen önünüzde [tgcolmisc2]$tgrealnames($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1])) [tgcolmisc1] puanla [tgcolmisc2]$tgscoresbyname($tgranksbynum([expr $tgranksbyname([strlwr $nick])-1]))[tgcolmisc1], sırada [tgcolmisc2][ordnumber [expr $tgranksbyname([strlwr $nick])-1]] [tgcolmisc2]$tgscorestotal[tgcolmisc1] [tgcolmisc1] kişi arasında."
    
}
}

#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 $text0]]} {
        [
tgpriv$nick "[tgbold][tgcolmisc1]Soru numarası girmediniz."
        
return
    }
    
tgreadqdb
    set _qnum 
[lindex [split $text0]
    if {
$_qnum>$tgquestionstotal} {
        [
tgpriv$nick "[tgbold][tgcolmisc1]Bu numaraya ait 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 [join [lrange [split $text1 end]]
    if {
$_desc==""} { set _desc "Bu hata ile ilgili daha fazla bilgi yok." }
    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 "raporu bildiren:\t$nick!$host"
    
puts $_file "SoruNo #:\t$_qnum"
    
puts $_file "Soru:\t$_qques"
    
puts $_file "Cevap:\t\t$_qans"
    
puts $_file "Mesaj:\t$_desc"
    
puts $_file "------------------------------"
    
close $_file
    
if {$tgerrmethod==1} {
        
exec mail -"trivia.tcl error report from $nick$tgerremail $_fname
        file delete $_fname
        
[tgpriv$nick "[tgbold][tgcolmisc1]Teşekkürler! hatalı soru e-mail yolu ile yetkililere ulastirilacaktir."
    
} else {
        [
tgpriv$nick "[tgbold][tgcolmisc1]Teşekkürler! hatalı soru kaydedildi ve en kısa zamanda yetkililere bildirilecektir."
    
}
}

#triggered when someone /msgs the bot with the rules command.
proc tgrulesmsg {nick host hand text} {
    global 
tgrules
    
[tgpriv$nick "Oyun kuraları: $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 "komutlar hakkında yardım almak için:"
        
[tgpriv$nick "/MSG $botnick <komut> yazmalısınız"
        
[tgpriv$nick "  \002[strupr $tgcmdrules]\002"
        
[tgpriv$nick "   -- Kanal kurallarını listelemek için."
        
[tgpriv$nick "  \002[strupr $tgcmdlookup]\002 \[nick\]"
        
[tgpriv$nick "   -- Belirtilen \[nick\] sirasini ve skorunu verir"
        
[tgpriv$nick "    Eger bir nick belirtilmezse sizin bilgileriniz gosterilecektir."
        
[tgpriv$nick "  \002[strupr $tgcmdtarget]\002"
        
[tgpriv$nick "   -- Belirtilen kullanici ile sizin aranizdaki"
        
[tgpriv$nick "    sira sayisini ve skor farkini gosterir."
        
[tgpriv$nick "  \002[strupr $tgcmderror]\002 <number> \[description\]"
        
[tgpriv$nick "   -- numarasi belirtilen sorunun varsa hatalarini bildirmenizi saglar"
        
[tgpriv$nick "    hata aciklamasi kismini yazmayabilirsiniz..."
        
if {[matchattr $hand $tgflagsreset $tgchan]} {
            [
tgpriv$nick "  \002[strupr $tgcmdreset]\002"
            
[tgpriv$nick "   -- Skor tablosunu siler."
        
}
        [
tgpriv$nick "Kanalda kullanabileceginiz komutlarin listesini gormek icin"
            
[tgpriv$nick "/MSG $botnick [strupr $tgcmdhelp] PUBCMDS yazin"
    
}
    if {[
strlwr $text]=="pubcmds"} {
        [
tgpriv$nick "Kullanabileceğiniz kanal komutları:"
        
if {[matchattr $hand $tgflagsstart $tgchan]} {
            [
tgpriv$nick "  \002$tgcmdstart\002 -- Oyunu başlatır."
        
}
        if {[
matchattr $hand $tgflagsstop $tgchan]} {
            [
tgpriv$nick "  \002$tgcmdstop\002 -- Oyunu durdurur."
        
}
        if {[
matchattr $hand $tgflagshint $tgchan]} {
            [
tgpriv$nick "  \002$tgcmdhint\002 -- Soru hakkında ipucu verir."
        
}
        if {[
matchattr $hand $tgflagsskip $tgchan]} {
            [
tgpriv$nick "  \002$tgcmdskip\002 -- Soruyu atlar."
        
}
        [
tgpriv$nick "komutlari listesi icin, /MSG $botnick [strupr $tgcmdhelp] yazin."
    
}
}

# 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" }
}
proc tgantihack {} {
    global 
tgcolantihack
    
if {$tgcolantihack!=""} { return "\003$tgcolantihack}
}
proc merlin {} {
    return 
"\00300,04Soru: "
}

#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. 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">puts $_file 
"  <style type=\"text/css\">"
    
puts $_file "  <!--"
    
puts $_file "  body,td{font-family:$tghtmlfont;font-size:13px;}"
    
puts $_file "  a{text-decoration:none;color:#09f;}"
    
puts $_file "  -->"
    
puts $_file "  </style>"
    
puts $_file " </head>"
    
puts $_file " <body>"
    
puts $_file "  <h1>$tgchan on [lindex [split $server :] 0]</h1>"
    
puts $_file "  <hr size=\"1\" noshade>"
    
if {![onchan $botnick $tgchan]} {
        
puts $_file "  <p>Hmmm... for some reason I'm not on $tgchan at the moment. Please try again later.</p>"
    
} else {
        
puts $_file "  <p>Trivia game is currently <b>[expr $tgplaying==1?"on":"off"]</b>. There are <b>$tgquestionstotal</b> questions in the database."
        
puts $_file "  <p>People on $tgchan right now:<br>"
        
puts $_file "  <table width=\"50%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><table width=\"100%\" cellspacing=\"3\" border=\"0\">"
        
puts $_file "   <tr>"
        
puts $_file "    <td><b>Nick</b></td>"
        
puts $_file "    <td><b>Score</b></td>"
        
puts $_file "    <td><b>Rank</b></td>"
        
puts $_file "    <td><b>Idle</b></td>"
        
puts $_file "   </tr>"
        
foreach nick [lsort [chanlist $tgchan]] {
            
puts $_file "   <tr>"
            
puts $_file "    <td>[expr [isop $nick $tgchan]?"@":""][expr [isvoice $nick $tgchan]?"+":""]$nick[expr [string match $nick $botnick]?" (that's me!)":""]</td>"
            if {[info exists tgscoresbyname([strlwr $nick])]} {
                puts $_file "    <td>$tgscoresbyname([strlwr $nick])</td>"
            } else {
                puts $_file "    <td>-</td>"
            }
            if {[info exists tgranksbyname([strlwr $nick])]} {
                puts $_file "    <td>$tgranksbyname([strlwr $nick])</td>"
            } else {
                puts $_file "    <td>-</td>"
            }
            puts $_file "   <td>[expr [getchanidle $nick $tgchan]>10?"[getchanidle $nick $tgchan]m":"-"]</td>"
            puts $_file "   </tr>"
        }
        puts $_file "  </table></td></tr></table>"
    }
    if {$tgscorestotal>0} {
        puts $_file "  <p><small>There [expr $tgscorestotal==1?"is":"are"] currently <b>$tgscorestotal</b> [expr $tgscorestotal==1?"nick":"nicks"] in the score table:<br>"
        set _rank 1
        while {$_rank<=$tgscorestotal} {
            puts $_file "  <b>$_rank</b>. $tgrealnames($tgranksbynum($_rank)) $tgscoresbyrank($_rank)<br>"
            incr _rank
        }
    } else {
        puts $_file "  <p><small>There are currently no nicks in the score table.<br>"
    }
    puts $_file "  </small></p>"
    puts $_file "  <hr size=\"1\" noshade>"
    puts $_file "  <small>Generated on [strftime %A,\ %d\ %B\ %Y\ @\ %H:%M:%S] by <a href=\"
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js">

conf ve tcl yukarıda sorun nerden kaynaklanıyor anlamış değilim

 
Alıntı ile Cevapla

Alt 19 Ağustos 2010, 18:36   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Merlin Oyun Botu Client Exited Sorunu




Aynı sorunu son birkaç gündür bende yaşamakdayım oyun botu bazen 1-2 dakikada bazende daha uzun bir sürede Client Exited şeklinde çıkış yapıyor.. Botun consoluna bağlanıp .set errorInfo komutuna aldığım cevap şu ;

Currently: can't read "tghintnum": no such variable
Currently: (reading value of variable to increment)
Currently: invoked from within
Currently: "incr tghintnum"

 
Alıntı ile Cevapla

Alt 21 Ağustos 2010, 11:20   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Merlin Oyun Botu Client Exited Sorunu




Büyük ihtimalle oyun.questions dosyası 2.5mb kadar büyük olduğundan bence çünkü aynı bota başka bir questions dosyasıyla değişince bot çalışıor conf we tcl de sorun yok yani .:tşklr:.

 
Alıntı ile Cevapla

Alt 21 Ağustos 2010, 12:44   #6
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Merlin Oyun Botu Client Exited Sorunu




evet dediğin gibi aynı conf ve tcl islam kanalında sorunsuz çalışıyor fakat 2 senedir kullanıyordum soru dosyasıda aynıydı sadece son zamanlarda böyle bir sorun oldu

 
Alıntı ile Cevapla

Cevapla

Etiketler
botu, client, exited, merlin, oyun, sorunu


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Merlin oyun botu olan.. ATAHAN Eggdrop, NeoStats, BNC 22 27 Ağustos 2008 06:31
(Client exited) Editor mIRC Scripting Sorunları 3 21 Şubat 2008 01:07
SNotice'de Client Exited sorunu Thorn mIRC Scripting Sorunları 3 05 Ağustos 2006 01:05