![]() |
![]() |
![]() | #1 | |
Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Bulmaca Oyunu TCL # # Marky's KAOS v0.91 # Copyright (C) 2004 Mark A. Day ( Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. ) # # 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 # # Default Settings set KAOSChannel "#eglence" set KAOSPointsName "Eklediklerin" set KAOSPointsPerAnswer 1 set KAOSQuestionTime 80 set KAOSMarker "*" set KAOSScoreFile "game.scores" set KAOSAskedFile "game.asked" set KAOSQuestionFile "scripts/game.db" set KAOSCFGFile "scripts/game.cfg" # Channel Triggers bind pub - !top10 KAOSTop10 bind pub - !eskitop3 KAOSLastMonthTop3 bind pub - !skor KAOSPlayerScore bind pub - !tekrarla KAOS_Repeat bind pub - !komutlar KAOSCmds bind pub - !soru KAOS_ShowAsked bind pub - !varol KAOS_Start bind pub - !yokol KAOS_Stop # DCC Commands bind dcc - kaosrehash dcc_kaosrehash bind dcc - kaosanswer dcc_kaosanswer bind dcc - kaosreset dcc_kaosresetasked bind dcc - kaosasked dcc_kaosshowasked bind dcc - kaosforce dcc_kaosforce # Cron Bind For Monthly Score Reset bind time - "00 00 01 * *" KAOS_NewMonth # Global Variables set KAOSRunning 0 set KAOSAllAnswered 0 set KAOSRoundOver 0 set KAOSQNumber 0 set KAOSQuestion "" set KAOSQuestions(0) "" set KAOSAsked "" set KAOSMonthFileName "" set KAOSQCount 0 set KAOSAnswerCount 0 set KAOSDisplayNum 0 set KAOSNumAnswered 0 set KAOSForced 0 set KAOSForcedQuestion "" set KAOSAutoStart 0 # Scores And Ads set KAOSAdNumber 0 set KAOSAd(0) "$botnick" set KAOSAd(1) "$botnick" set KAOSAd(2) "$botnick" set KAOSLastMonthScores(0) "Oyuncu 0" set KAOSLastMonthScores(1) "Oyuncu 0" set KAOSLastMonthScores(2) "Oyuncu 0" # Timers set KAOSAdTimer "5" set KAOSQuestionTimer "40" # Version set KDebug 0 set KAOSVersion "1.0" # # Start KAOS # proc KAOS_Start {nick uhost hand chan args} { global KAOSChannel KAOSRunning KAOSQCount KAOSQNumber KAOSQuestionFile KAOSAdNumber KAOSVersion KDebug if {($chan != $KAOSChannel)||($KAOSRunning != 0)} {return} set KAOSQCount 0 set KAOSAdNumber 0 KAOS_ReadCFG if {![file exist $KAOSQuestionFile]} { putcmdlog "\[KAOS\] Question File: $KAOSQuestionFile Unreadable Or Does Not Exist" return 0 } set KAOSQCount [KAOS_ReadQuestionFile] if {$KAOSQCount < 2} { putcmdlog "\[KAOS\] Not Enough Questions in Question File $KAOSQuestionFile" return 0 } set KAOSAskedFileLen [KAOS_ReadAskedFile] if {$KAOSAskedFileLen >= $KAOSQCount} { kaosmsg "[kaos] \00312Sorulmuş Bütün Sorular\00314: \00304Sıfırlandı \00314. \003" KAOS_ResetAsked return 0 } set KAOSRunning 1 kaosmsg "[kaos] \00314v\00304$KAOSVersion \00312By \00304CroAtoN Oyun \00314\[ \00303Toplam\00314: \00312$KAOSQCount \00303Soru\00314 \] \003" bind pubm - "*" KAOSCheckGuess KAOSAskQuestion return 1 } # # Stop KAOS # proc KAOS_Stop {nick uhost hand chan args} { global KAOSChannel KAOSRunning KAOSQuestionTimer KAOSAdTimer if {($chan != $KAOSChannel)||($KAOSRunning != 1)} {return} set KAOSRunning 0 catch {killutimer $KAOSQuestionTimer} catch {killutimer $KAOSAdTimer} catch {unbind pubm - "*" KAOSCheckGuess} kaosmsg "[kaos] \00304DURDU! \00314Durduran \00303By \00304\[\00312$nick!$uhost\00304\]" return 1 } # # Pick Question # proc KAOSPickQuestion {} { global KAOSAsked KAOSQCount KDebug set KAOSUnasked [expr ($KAOSQCount - [llength $KAOSAsked])] if {$KAOSUnasked < 1} { kaosmsg "[kaos] \00312Sorulmuş Bütün Sorular\00314: \00304Sıfırlandı \00314. \003" KAOS_ResetAsked } set pickdone 0 while {$pickdone == 0} { set kidx 0 set foundinasked 0 set pick [rand $KAOSQCount] while {[lindex $KAOSAsked $kidx] != ""} { if {[lindex $KAOSAsked $kidx] == $pick} { set foundinasked 1 # kaoslog "KAOS" "Found Pick:$pick in Asked" break } incr kidx } if {$foundinasked == 0} {incr pickdone} } # kaoslog "KAOS" "Picked Question:$pick" KAOS_AddAsked $pick return $pick } # # Parse Question # proc KAOSParseQuestion {QNum} { global KAOSMarker KAOSQuestions KAOSQuestion KAOSAnswers KAOSAnswerCount KAOSForcedQuestion KDebug set KAnswersLeft "" if {$QNum < 0} { set KAOSFileQuestion $KAOSForcedQuestion } { set KAOSFileQuestion $KAOSQuestions($QNum) } if {$KDebug > 1} {kaoslog "kaos" "Picked:$QNum Question:$KAOSFileQuestion"} if [info exists KAOSAnswers] {unset KAOSAnswers} # Position of first "*" set KAOSMarkerIDX [string first $KAOSMarker $KAOSFileQuestion] if {$KAOSMarkerIDX < 1} { kaoslog "KAOS" "Malformed Question #$QNum" } set KAOSQuestionEndIDX [expr $KAOSMarkerIDX - 1] set KAOSQuestion [string range $KAOSFileQuestion 0 $KAOSQuestionEndIDX] # Move to first character in answers incr KAOSMarkerIDX set KAnswersLeft [string range $KAOSFileQuestion $KAOSMarkerIDX end] set KDoneParsing 0 set KAOSAnswerCount 0 # Parse all answers while {$KDoneParsing != 1 } { set KAnswerEnd [string first $KAOSMarker $KAnswersLeft] if {$KAnswerEnd < 1} { set KDoneParsing 1 set KAnswerEnd [string length $KAnswersLeft] } set KAnswer [string range $KAnswersLeft 0 [expr $KAnswerEnd -1]] set KAOSAnswers($KAOSAnswerCount) "# $KAnswer" set KAOSMarkerIDX [expr $KAnswerEnd +1] set KAnswersLeft [string range $KAnswersLeft $KAOSMarkerIDX end] incr KAOSAnswerCount } } # # Ask Question # proc KAOSAskQuestion {} { global KAOSRunning KAOSQNumber KAOSAllAnswered KAOSRoundOver KAOSQuestion global KAOSPointsPerAnswer KAOSPointsName KAOSNumAnswered KAOSAnswerCount global KAOSQuestionTimer KAOSQuestionTime KAOSDisplayNum KAOSForced KAOSLastGuesser if {$KAOSRunning != 1} {return} # Get The Current Scores read_KAOSScore # Pick Next Question if {$KAOSForced == 1} { KAOSParseQuestion -1 set KAOSQNumber 0 set KAOSForced 0 set KAOSForcedQuestion "" } { set KAOSQNumber [KAOSPickQuestion] KAOSParseQuestion $KAOSQNumber } set KAOSAllAnswered 0 set KAOSLastGuesser "" set KAOSDisplayNum 0 set KAOSNumAnswered 0 set KAOSRoundOver 0 # Choose Points Value For This Round set KAOSPointsPerAnswer [rand 1] if {$KAOSPointsPerAnswer < 1} {set KAOSPointsPerAnswer 10} set KAOSPointsPerAnswer [expr $KAOSPointsPerAnswer * 1] set KAOSPointTotal [expr $KAOSPointsPerAnswer *$KAOSAnswerCount] kaosmsg "\00303SORU-No:[format "%04d" $KAOSQNumber] \00314:\00302 $KAOSQuestion \003 \00314\[ \00303Cevap Sayısı\00314: \00310$KAOSAnswerCount\00314 \]\003" kaosmsg "\00310Bilinen Her Doğru Cevap \00304Ek $KAOSPointsPerAnswer \00310$KAOSPointsName\00314. \00310Toplam\00314: \00304Ek $KAOSPointTotal \00310$KAOSPointsName\00314.\003" set KRemain [expr int([expr $KAOSQuestionTime /2])] set KAOSQuestionTimer [utimer $KRemain "KAOSDisplayRemainingTime $KRemain"] } # # Get Player Guess # proc KAOSCheckGuess {nick uhost hand chan args} { global KAOSChannel KAOSRunning KAOSScore KAOSAnswerCount KAOSAnswers KAOSRoundOver global KAOSPointsName KAOSPointsPerAnswer KAOSNumAnswered KAOSAllAnswered KAOSLastGuesser KDebug if {($chan != $KAOSChannel)||($KAOSRunning != 1)||($KAOSRoundOver == 1)} {return} regsub -all \[{',.!}] $args "" args if {[string length args] == 0} {return} set KAOSGuessOld $args set KAOSGuess [string tolower $KAOSGuessOld] if {$KDebug > 1} {kaoslog "KAOS" "Guess: $nick $KAOSGuess"} foreach z [array names KAOSAnswers] { set KAOSTry [lrange $KAOSAnswers($z) 1 end] set KAOSTryOld $KAOSTry regsub -all \[{',.!}] $KAOSTry "" KAOSTry set KAOSTry [string tolower $KAOSTry] if {$KDebug > 1} {kaoslog "KAOS" "Try: $KAOSTry"} if {$KAOSTry == $KAOSGuess} { if {[lindex $KAOSAnswers($z) 0] == "#"} { set KAOSAnswers($z) "$nick $KAOSGuessOld" kaosmsg "[knikclr $nick] \00312$KAOSTryOld \00310Cevabı ile \00307Ek $KAOSPointsPerAnswer \00310$KAOSPointsName \00310Aldın\00314. " incr KAOSNumAnswered if {$KAOSNumAnswered == $KAOSAnswerCount} { set KAOSAllAnswered 1 set KAOSRoundOver 1 set KAOSLastGuesser $nick kaosmsg "[kaos] \00304Süpersin\00314. \00312Hepsini Bildin\00314! \00303Başarılarının Devamını Dilerim\00314(\00303:P\00314) \003" KAOS_ShowResults KAOS_Recycle } return } } } } # # Display Remaining Time And Answer Stats # proc KAOSDisplayRemainingTime {remaining} { global KAOSRunning KAOSAllAnswered KAOSNumAnswered KAOSQuestion KAOSAnswerCount KAOSQuestionTimer KAOSQuestionTime KAOSDisplayNum if {($KAOSRunning != 1)||($KAOSAllAnswered == 1)} {return} kaosmsg "\00303SORU \00314:\00302 $KAOSQuestion \003" kaosmsg "\00310Bilinen Cevaplar\00314:\00303 $KAOSAnswerCount \00310Cevap'tan \00303Sadece $KAOSNumAnswered \00310Adet Bilindi\00314.\003 \00312$remaining \00310Saniye Kaldı\00314.\003" incr KAOSDisplayNum set KRemain [expr int([expr $KAOSQuestionTime /4])] if {$KAOSDisplayNum < 2} { set KAOSQuestionTimer [utimer $KRemain "KAOSDisplayRemainingTime $KRemain"] } { set KAOSQuestionTimer [utimer $KRemain KAOSTimesUp] } } # # Show Results Of Round # proc KAOSTimesUp {} { global KAOSAnswers KAOSAllAnswered KAOSRoundOver KAOSNumAnswered KAOSAnswerCount KAOSQuestionTimer KAOSAdTimer if {$KAOSAllAnswered == 1} { return 1} set KAOSRoundOver 1 set kaosmissed "[kcg] Time's Up! \003 " append KMissed "\00304Bilemediğiniz Cevaplar\00314: \00312" set KAnswersRemaining [expr ($KAOSAnswerCount - $KAOSNumAnswered)] set kcount 0 foreach z [array names KAOSAnswers] { if {[lindex $KAOSAnswers($z) 0] == "#"} { append KMissed "\00312[lrange $KAOSAnswers($z) 1 end]" incr kcount if {$kcount < $KAnswersRemaining} {append KMissed " \00314| "} } } kaosmsg "$KMissed\003" KAOS_ShowResults if {$KAOSNumAnswered > 0} { kaosmsg "\00303 Bilinen Cevap Sayısı\00314: \00304 Oyunda $KAOSNumAnswered \00310Toplam Cevap Sayısı\00314: \00304 Oyunda $KAOSAnswerCount\00314 ! \003" } { kaosmsg "[kaos] \00304Biraz Parmaklarınızı Çalıştırın! \00310Bir Sonraki Soru İçin Hazır Olun\00314. \003" } set KAOSAdTimer [utimer 10 KAOS_ShowAd] set KAOSQuestionTimer [utimer 20 KAOSAskQuestion] } # # All Answers Gotten, Next Question # proc KAOS_Recycle {} { global KAOSAnswers KAOSNumAnswered KAOSQuestionTimer KAOSAdTimer catch {killutimer $KAOSQuestionTimer} if [info exists KAOSAnswers] {unset KAOSAnswers} set KAOSAdTimer [utimer 10 KAOS_ShowAd] set KAOSQuestion "" set KAOSNumAnswered 0 set KAOSQuestionTimer [utimer 20 KAOSAskQuestion] } # # Total Answers and Points # proc KAOS_ShowResults {} { global KAOSAnswers KAOSPointsPerAnswer KAOSPointsName KAOSScore KAOSAllAnswered KAOSLastGuesser set NickCounter 0 set KAOSCounter 0 if {$KAOSAllAnswered == 1} { set KAOSBonus [expr $KAOSPointsPerAnswer *10] kaosmsg "[knikclr $KAOSLastGuesser]\00303 Bütün Cevapları Bildiği İçin \00304$KAOSBonus \00312Bonus Puan'ı \00303Kazandı\00314!!!" set KNickTotals($KAOSLastGuesser) $KAOSBonus set KNickList($NickCounter) $KAOSLastGuesser incr NickCounter } foreach z [array names KAOSAnswers] { if {[lindex $KAOSAnswers($z) 0] != "#"} { set cnick [lindex $KAOSAnswers($z) 0] if {[info exists KNickTotals($cnick)]} { incr KNickTotals($cnick) $KAOSPointsPerAnswer } { set KNickTotals($cnick) $KAOSPointsPerAnswer set KNickList($NickCounter) $cnick incr NickCounter } incr KAOSCounter } } if {$KAOSCounter > 0} { set ncount 0 set nicktotal "\00310Bu Raund'da " while {$ncount < $NickCounter} { set cnick $KNickList($ncount) if {[info exists KAOSScore($cnick)]} { incr KAOSScore($cnick) $KNickTotals($cnick) } { set KAOSScore($cnick) $KNickTotals($cnick) } append nicktotal "\00312$cnick \00304 Ek $KNickTotals($cnick) \00310$KAOSPointsName Aldı\00314." incr ncount } kaosmsg $nicktotal write_KAOSScore } } # # Read Scores # proc read_KAOSScore { } { global KAOSScore KAOSScoreFile if [info exists KAOSScore] { unset KAOSScore } if {[file exists $KAOSScoreFile]} { set f [open $KAOSScoreFile r] while {[gets $f s] != -1} { set KAOSScore([lindex $s 0]) [lindex $s 1] } close $f } { set f [open $KAOSScoreFile w] puts $f "Nobody 0" close $f } } # # Write Scores # proc write_KAOSScore {} { global KAOSScore KAOSScoreFile set f [open $KAOSScoreFile w] foreach s [lsort -decreasing -command sort_KAOSScore [array names KAOSScore]] { puts $f "$s $KAOSScore($s)" } close $f } # # Score Sorting # proc sort_KAOSScore {s1 s2} { global KAOSScore if {$KAOSScore($s1) > $KAOSScore($s2)} {return 1} if {$KAOSScore($s1) < $KAOSScore($s2)} {return -1} if {$KAOSScore($s1) == $KAOSScore($s2)} {return 0} } # # Add Question Number To Asked File # proc KAOS_AddAsked {KQnum} { global KAOSAsked KAOSAskedFile set f [open $KAOSAskedFile a] puts $f $KQnum close $f lappend KAOSAsked $KQnum } # # Parse Asked Questions # proc KAOS_ReadAskedFile {} { global KAOSAsked KAOSAskedFile set KAsked 0 set KAOSAsked "" if {![file exists $KAOSAskedFile]} { set f [open $KAOSAskedFile w] } { set f [open $KAOSAskedFile r] while {[gets $f KQnum] != -1} { lappend KAOSAsked "$KQnum" incr KAsked } } close $f return $KAsked } # # Reset Asked File # proc KAOS_ResetAsked {} { global KAOSAskedFile KAOSAsked set f [open $KAOSAskedFile w] puts $f "0" close $f set KAOSAsked "" } # # Read Question File # proc KAOS_ReadQuestionFile {} { global KAOSQuestionFile KAOSQuestions set KQuestions 0 set f [open $KAOSQuestionFile r] while {[gets $f q] != -1} { set KAOSQuestions($KQuestions) $q incr KQuestions } close $f return $KQuestions } # # Show Asked # proc KAOS_ShowAsked {nick uhost hand chan args} { global KAOSQCount KAOSAsked KAOSQuestions set KAOSStatsAsked [llength $KAOSAsked] set KAOSStatsUnasked [expr ($KAOSQCount - $KAOSStatsAsked)] kaosmsg "[kaos] \00312Toplam Soru\00314: \00304$KAOSQCount \00312Sorulan Soru\00314: \00304$KAOSStatsAsked \00312Kalan Soru\00314: \00304$KAOSStatsUnasked \003" } # # Repeat Question # proc KAOS_Repeat {nick uhost hand chan args} { global KAOSChannel KAOSQuestion KAOSRunning KAOSQNumber KAOSAllAnswered global KAOSPointsName if {($chan != $KAOSChannel)||($KAOSRunning != 1)} {return} if {$KAOSAllAnswered == 1} {return } kaosmsg "\00303No:[format "%04d" $KAOSQNumber] \00302 $KAOSQuestion \003" } # # Display User's Score # proc KAOSPlayerScore {nick uhost hand chan args} { global KAOSChannel KAOSScoreFile KAOSPointsName if {$chan != $KAOSChannel} {return} regsub -all \[`,.!{}] $args "" args if {[string length $args] == 0} {set args $nick} set scorer [string tolower $args] set kflag 0 set f [open $KAOSScoreFile r] while {[gets $f sc] != -1} { set cnick [string tolower [lindex $sc 0]] if {$cnick == $scorer} { kaosmsg "\00312[lindex $sc 0]\00314: \00304[lindex $sc 1] \00312Puan'ın Var\00314. \003" set kflag 1 } } if {$kflag == 0} {kaosmsg "\00312$scorer \00314: \00304Hiç Puan'ın Yok\00314. \003"} close $f } # # Display Top 10 Scores To A Player # proc KAOSTop10 {nick uhost hand chan args} { global KAOSChannel KAOSScoreFile KAOSPointsName if {$chan != $KAOSChannel} {return} set KWinners "CroAtoN Oyun \00304Top10 \00312Puanları\00314: " set f [open $KAOSScoreFile r] for { set s 0 } { $s < 10 } { incr s } { gets $f KAOSTotals if {[lindex $KAOSTotals 1] > 0} { append KWinners "\00304 #[expr $s +1] \00312 [lindex $KAOSTotals 0] [lindex $KAOSTotals 1] " } { append KWinners "\00304 #[expr $s +1] \00312 Oyuncu 0 " } } kaosmsg "$KWinners" close $f } # # Last Month's Top 3 # proc KAOSLastMonthTop3 {nick uhost hand chan args} { global KAOSChannel KAOSLastMonthScores if {$chan != $KAOSChannel} {return} if [info exists KAOSLastMonthScores] { set KWinners "CroAtoN Oyun \00312Geçen Ay'ın \00304Top 3'ü " for { set s 0} { $s < 3 } { incr s} { append KWinners "\00304 #[expr $s +1] \00312 $KAOSLastMonthScores($s) " } kaosmsg "$KWinners" } } # # Read Config File # proc KAOS_ReadCFG {} { global KAOSCFGFile KAOSChannel KAOSAutoStart KAOSScoreFile KAOSAskedFile KAOSQuestionFile KAOSLastMonthScores KAOSPointsName KAOSAd if {[file exist $KAOSCFGFile]} { set f [open $KAOSCFGFile r] while {[gets $f s] != -1} { set kkey [string tolower [lindex [split $s "="] 0]] set kval [lindex [split $s "="] 1] switch $kkey { points { set KAOSPointsName $kval } channel { set KAOSChannel $kval } autostart { set KAOSAutoStart $kval } scorefile { set KAOSScoreFile $kval } askedfile { set KAOSAskedFile $kval } kaosfile { set KAOSQuestionFile $kval } ad1 { set KAOSAd(0) $kval } ad2 { set KAOSAd(1) $kval } ad3 { set KAOSAd(2) $kval } lastmonth1 { set KAOSLastMonthScores(0) $kval } lastmonth2 { set KAOSLastMonthScores(1) $kval } lastmonth3 { set KAOSLastMonthScores(2) $kval } } } close $f if {($KAOSAutoStart < 0)||($KAOSAutoStart > 1)} {set KAOSAutoStart 1} return } kaoslog "KAOS" "Config file $KAOSCFGFile not found... using defaults" } # # Write Config File # proc KAOS_WriteCFG {} { global KAOSCFGFile KAOSChannel KAOSAutoStart KAOSScoreFile KAOSAskedFile KAOSQuestionFile KAOSLastMonthScores KAOSPointsName KAOSAd set f [open $KAOSCFGFile w] puts $f "# This file is automatically overwritten" puts $f "Points=$KAOSPointsName" puts $f "Channel=$KAOSChannel" puts $f "AutoStart=$KAOSAutoStart" puts $f "ScoreFile=$KAOSScoreFile" puts $f "AskedFile=$KAOSAskedFile" puts $f "KAOSFile=$KAOSQuestionFile" puts $f "LastMonth1=$KAOSLastMonthScores(0)" puts $f "LastMonth2=$KAOSLastMonthScores(1)" puts $f "LastMonth3=$KAOSLastMonthScores(2)" puts $f "Ad1=$KAOSAd(0)" puts $f "Ad2=$KAOSAd(1)" puts $f "Ad3=$KAOSAd(2)" close $f } # # Clear Month's Top 10 # proc KAOS_NewMonth {min hour day month year} { global KAOSScoreFile KAOSScore KAOSLastMonthScores set cmonth [expr $month +1] set lmonth [KAOSLastMonthName $cmonth] kaosmsg "[kaos] \00305Ay'lık Skorlar Sıfırlandı\00314. \003" set KAOSMonthFileName "$KAOSScoreFile.$lmonth" set f [open $KAOSMonthFileName w] set s 0 foreach n [lsort -decreasing -command sort_KAOSScore [array names KAOSScore]] { puts $f "$n $KAOSScore($n)" if {$s < 3} { if {$KAOSScore($n) > 0} { set KAOSLastMonthScores($s) "$n $KAOSScore($n)" } { set KAOSLastMonthScores($s) "Nobody 0" } } incr s } close $f KAOS_WriteCFG if [info exists KAOSScore] {unset KAOSScore} set f [open $KAOSScoreFile w] puts $f "Nobody 0" close $f putcmdlog "\[KAOS\] Cleared Monthly Top10 Scores: $KAOSMonthFileName" } # # Command Help # proc KAOSCmds {nick uhost hand chan args} { global KAOSChannel if {$chan != $KAOSChannel} {return} kaosntc $nick "Oyun'un Komutları: !eskitop3 |!top10 | !skor \[nick\] | !tekrarla | !soru" } # # Color Routines # proc kcb {} { return "\0038,2" } proc kcg {} { return "\0030,3" } proc kcr {} { return "\0030,4" } proc kcm {} { return "\0030,6" } proc kcc {} { return "\0030,10" } proc kcs {} { return "" } proc kaos {} { return "CroAtoN Oyun" } # return "\0030,12" # Channel Message proc kaosmsg {what} { global KAOSChannel putquick "PRIVMSG $KAOSChannel :$what" } # Notice Message proc kaosntc {who what} { putquick "NOTICE $who :$what" } # Command Log proc kaoslog {who what} { putcmdlog "\[$who\] $what" } # Name Of Last Month proc KAOSLastMonthName {month} { switch $month { 1 {return "Aralık"} 2 {return "Ocak"} 3 {return "Şubat"} 4 {return "Mart"} 5 {return "Nisan"} 6 {return "Mayıs"} 7 {return "Haziran"} 8 {return "Temmuz"} 9 {return "Ağustos"} 10 {return "Eylül"} 11 {return "Ekim"} 12 {return "Kasım"} default {return "???"} } } # Assign Nickname Color proc knikclr {nick} { set nicklen [strlen $nick] set nicktot 0 set c 0 while {$c < $nicklen} { binary scan [string range $nick $c $c] c nv incr nicktot [expr $nv -32] incr c } set nickclr [expr $nicktot %13] switch $nickclr { 0 {set nickclr 10} 1 {set nickclr 11} 2 {set nickclr 12} 5 {set nickclr 13} } set nik [format "%02d" $nickclr] return "\003$nik$nick" } # # Show Ad # proc KAOS_ShowAd {} { global KAOSAdNumber KAOSAd botnick KAOSChannel switch $KAOSAdNumber { 0 { kaosmsg "$KAOSAd(0) \003" } 1 { KAOSTop10 $botnick none none $KAOSChannel none } 2 { kaosmsg "$KAOSAd(1) \003" } 3 { KAOSLastMonthTop3 $botnick none none $KAOSChannel none } 4 { kaosmsg "$KAOSAd(2) \003" } } incr KAOSAdNumber if {$KAOSAdNumber > 4} {set KAOSAdNumber 0} } # # Rehash KAOS Config # proc dcc_kaosrehash {hand idx arg} { global KAOSQCount putcmdlog "#$hand# Rehashing KAOS config" KAOS_ReadCFG set KAOSQCount [KAOS_ReadQuestionFile] if {$KAOSQCount < 2} { kaoslog "KAOS" "Not Enough Questions in Question File $KAOSQuestionFile" return 0 } set KAOSAskedFileLen [KAOS_ReadAskedFile] if {$KAOSAskedFileLen >= $KAOSQCount} { kaoslog "KAOS" "Asked file out of sync with question database: resetting" KAOS_ResetAsked return 0 } kaoslog "KAOS" "Questions:$KAOSQCount Asked:$KAOSAskedFileLen Remaining:[expr ($KAOSQCount - $KAOSAskedFileLen)]" } # # Show Current Answers # proc dcc_kaosanswer {hand idx arg} { global KAOSAnswers set ans "" foreach z [array names KAOSAnswers] { if {[lindex $KAOSAnswers($z) 0] == "#"} { append ans "[lrange $KAOSAnswers($z) 1 end] | " } } kaoslog "KAOS" $ans } # # Reset Asked File # proc dcc_kaosresetasked {hand idx arg} { KAOS_ResetAsked kaoslog "KAOS" "#$hand# Reset Asked File" } # # Show Asked # proc dcc_kaosshowasked {hand idx arg} { global KAOSQCount KAOSAsked KAOSQuestions set KAOSStatsAsked [llength $KAOSAsked] set KAOSStatsUnasked [expr ($KAOSQCount - $KAOSStatsAsked)] kaoslog "KAOS" "Total:$KAOSQCount Asked:$KAOSStatsAsked Remaining:$KAOSStatsUnasked" } # # Force A Question # proc dcc_kaosforce {hand idx arg} { global KAOSRunning KAOSMarker KAOSForced KAOSForcedQuestion if {$KAOSRunning != 1} {return} regsub -all \[`,.!{}] $arg "" arg if {$arg == ""} {return} set KAOSMarkerIDX [string first $KAOSMarker $arg] if {$KAOSMarkerIDX < 2} { kaoslog "KAOS" "Malformed question: Format: Question*Answer1*Answer2..." return } set KAOSForcedQuestion $arg set KAOSForced 1 kaoslog "KAOS" "Forcing A Question Next Round" } KAOS_ReadCFG putcmdlog "Oyun Yüklendi $KAOSVersion by CroAtoN" | |
| ![]() |
Etiketler |
tcl, oyunu, bulmaca |
![]() LinkBack to this Thread: https://www.ircforumlari.net/eggdrop-neostats-bnc/45369-bulmaca-oyunu-tcl.html | ||||
Konuyu Başlatan | For | Type | Tarih | |
Live Mobile Search | This thread | Refback | 06 Ocak 2012 11:54 |
Konuyu Toplam 8 Üye okuyor. (0 Kayıtlı üye ve 8 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
C'yi bulmaca | Violent | Zeka Küpü | 3 | 08 Mayıs 2014 12:29 |
Kare BULMACA | Difuzyon | mIRC Scripting Hazır Kodlar | 5 | 07 Şubat 2011 23:02 |
bulmaca tcl | TaaRuZ | TCL Scriptler | 1 | 05 Mart 2007 13:21 |