PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
 
set tgqdb "scripts/kelime.txt"
set tgscf "scripts/kelimepuan.txt"
set tgerrfil "scripts/kelimehata.txt"
set tgchan "#kelime"
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 "$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 "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 $tgcurrentanswer" tgcorrectanswer}
   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 $tgcurrentanswer" tgcorrectanswer
   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 $tgcurrentanswer" tgcorrectanswer}
  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 $tgcurrentanswer" tgcorrectanswer
 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 $tgcurrentanswer" tgcorrectanswer}
  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 $tgcurrentanswer" tgcorrectanswer
 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! :-) (info[MENTION=78666]EglenceKeyfi[/MENTION].com)"
  [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 "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 "    info[MENTION=78666]EglenceKeyfi[/MENTION].com"
  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]-1] end]
 set _last2 [string range $num [expr [strlen $num]-2] end]
 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"
 }
}
tgreadqdb 
      
Bu TCL kullanabilirsiniz, sorunsuzdur.