06 Mart 2010, 14:31 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Oyun Botu Skorları Sıfırlıyor Oyun Botu Kafasına Göre Skorları Sıfırlıyor. Bazen Host Gittiğinde Bazen Düşüp Geldiğinde... Kısacası Bot Neden Skorları Sıfırlayabilir ? ve Ne yapabilirim ? | |
|
11 Mart 2010, 01:37 | #3 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: Oyun Botu Skorları Sıfırlıyor Millet Alışmış TCL ye nasıl değiştiririm ? Aynı TCL yi nasıl bulurum bilmiyorum Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
|
22 Mart 2010, 16:02 | #4 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: Oyun Botu Skorları Sıfırlıyor ################################################## ############################################ # Depocenter Hosting Internet Hizmetleri - Dürüstlük simgemizdir. Önce güven! # # [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] - Depocenter [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] # ################################################## ############################################ # # Marky's Oyuncu 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 OyuncuChannel "#Oyun" set OyuncuPointsName "Puan" set OyuncuPointsPerAnswer 10 set OyuncuQuestionTime 60 set OyuncuMarker "*" set OyuncuScoreFile "Oyuncu.scores" set OyuncuAskedFile "Oyuncu.asked" set OyuncuQuestionFile "scripts/Oyuncu.db" set OyuncuCFGFile "scripts/Oyuncu.cfg" # Channel Triggers bind pub - !top10 OyuncuTop10 bind pub - !toplast OyuncuLastMonthTop3 bind pub - !puan OyuncuPlayerScore bind pub - !Oyuncurepeat Oyuncu_Repeat bind pub - !Oyuncucmds OyuncuCmds bind pub - !asked Oyuncu_ShowAsked bind pub - !basla Oyuncu_Start bind pub - !!!dur!!! Oyuncu_Stop # DCC Commands bind dcc - Oyuncurehash dcc_Oyuncurehash bind dcc - Oyuncuanswer dcc_Oyuncuanswer bind dcc - Oyuncureset dcc_Oyuncuresetasked bind dcc - Oyuncuasked dcc_Oyuncushowasked bind dcc - Oyuncuforce dcc_Oyuncuforce # Cron Bind For Monthly Score Reset bind time - "00 00 01 * *" Oyuncu_NewMonth # Global Variables set OyuncuRunning 0 set OyuncuAllAnswered 0 set OyuncuRoundOver 0 set OyuncuQNumber 0 set OyuncuQuestion "" set OyuncuQuestions(0) "" set OyuncuAsked "" set OyuncuMonthFileName "" set OyuncuQCount 0 set OyuncuAnswerCount 0 set OyuncuDisplayNum 0 set OyuncuNumAnswered 0 set OyuncuForced 0 set OyuncuForcedQuestion "" set OyuncuAutoStart 0 # Scores And Ads set OyuncuAdNumber 0 set OyuncuAd(0) "$botnick" set OyuncuAd(1) "$botnick" set OyuncuAd(2) "$botnick" set OyuncuLastMonthScores(0) "Nobody 0" set OyuncuLastMonthScores(1) "Nobody 0" set OyuncuLastMonthScores(2) "Nobody 0" # Timers set OyuncuAdTimer "" set OyuncuQuestionTimer "" # Version set KDebug 0 set OyuncuVersion "0.91.0" # # Start Oyuncu # proc Oyuncu_Start {nick uhost hand chan args} { global OyuncuChannel OyuncuRunning OyuncuQCount OyuncuQNumber OyuncuQuestionFile OyuncuAdNumber OyuncuVersion KDebug if {($chan != $OyuncuChannel)||($OyuncuRunning != 0)} {return} set OyuncuQCount 0 set OyuncuAdNumber 0 Oyuncu_ReadCFG if {![file exist $OyuncuQuestionFile]} { putcmdlog "\[Oyuncu\] Question File: $OyuncuQuestionFile Unreadable Or Does Not Exist" return 0 } set OyuncuQCount [Oyuncu_ReadQuestionFile] if {$OyuncuQCount < 2} { putcmdlog "\[Oyuncu\] Not Enough Questions in Question File $OyuncuQuestionFile" return 0 } set OyuncuAskedFileLen [Oyuncu_ReadAskedFile] if {$OyuncuAskedFileLen >= $OyuncuQCount} { Oyuncumsg "[Oyuncu] [kcr] All Questions Asked: Resetting \003" Oyuncu_ResetAsked return 0 } set OyuncuRunning 1 Oyuncumsg "[Oyuncu] [kcm] v$OyuncuVersion \[$OyuncuQCount Questions\] \003" bind pubm - "*" OyuncuCheckGuess OyuncuAskQuestion return 1 } # # Stop Oyuncu # proc Oyuncu_Stop {nick uhost hand chan args} { global OyuncuChannel OyuncuRunning OyuncuQuestionTimer OyuncuAdTimer if {($chan != $OyuncuChannel)||($OyuncuRunning != 1)} {return} set OyuncuRunning 0 catch {killutimer $OyuncuQuestionTimer} catch {killutimer $OyuncuAdTimer} catch {unbind pubm - "*" OyuncuCheckGuess} Oyuncumsg "[Oyuncu] \00306stopped by \00304\[\00312$nick!$uhost\00304\]" return 1 } # # Pick Question # proc OyuncuPickQuestion {} { global OyuncuAsked OyuncuQCount KDebug set OyuncuUnasked [expr ($OyuncuQCount - [llength $OyuncuAsked])] if {$OyuncuUnasked < 1} { Oyuncumsg "[Oyuncu] [kcr] All Questions Asked: Resetting \003" Oyuncu_ResetAsked } set pickdone 0 while {$pickdone == 0} { set kidx 0 set foundinasked 0 set pick [rand $OyuncuQCount] while {[lindex $OyuncuAsked $kidx] != ""} { if {[lindex $OyuncuAsked $kidx] == $pick} { set foundinasked 1 # Oyunculog "Oyuncu" "Found Pick:$pick in Asked" break } incr kidx } if {$foundinasked == 0} {incr pickdone} } # Oyunculog "Oyuncu" "Picked Question:$pick" Oyuncu_AddAsked $pick return $pick } # # Parse Question # proc OyuncuParseQuestion {QNum} { global OyuncuMarker OyuncuQuestions OyuncuQuestion OyuncuAnswers OyuncuAnswerCount OyuncuForcedQuestion KDebug set KAnswersLeft "" if {$QNum < 0} { set OyuncuFileQuestion $OyuncuForcedQuestion } { set OyuncuFileQuestion $OyuncuQuestions($QNum) } if {$KDebug > 1} {Oyunculog "Oyuncu" "Picked:$QNum Question:$OyuncuFileQuestion"} if [info exists OyuncuAnswers] {unset OyuncuAnswers} # Position of first "*" set OyuncuMarkerIDX [string first $OyuncuMarker $OyuncuFileQuestion] if {$OyuncuMarkerIDX < 1} { Oyunculog "Oyuncu" "Malformed Question #$QNum" } set OyuncuQuestionEndIDX [expr $OyuncuMarkerIDX - 1] set OyuncuQuestion [string range $OyuncuFileQuestion 0 $OyuncuQuestionEndIDX] # Move to first character in answers incr OyuncuMarkerIDX set KAnswersLeft [string range $OyuncuFileQuestion $OyuncuMarkerIDX end] set KDoneParsing 0 set OyuncuAnswerCount 0 # Parse all answers while {$KDoneParsing != 1 } { set KAnswerEnd [string first $OyuncuMarker $KAnswersLeft] if {$KAnswerEnd < 1} { set KDoneParsing 1 set KAnswerEnd [string length $KAnswersLeft] } set KAnswer [string range $KAnswersLeft 0 [expr $KAnswerEnd -1]] set OyuncuAnswers($OyuncuAnswerCount) "# $KAnswer" set OyuncuMarkerIDX [expr $KAnswerEnd +1] set KAnswersLeft [string range $KAnswersLeft $OyuncuMarkerIDX end] incr OyuncuAnswerCount } } # # Ask Question # proc OyuncuAskQuestion {} { global OyuncuRunning OyuncuQNumber OyuncuAllAnswered OyuncuRoundOver OyuncuQuestion global OyuncuPointsPerAnswer OyuncuPointsName OyuncuNumAnswered OyuncuAnswerCount global OyuncuQuestionTimer OyuncuQuestionTime OyuncuDisplayNum OyuncuForced OyuncuLastGuesser if {$OyuncuRunning != 1} {return} # Get The Current Scores read_OyuncuScore # Pick Next Question if {$OyuncuForced == 1} { OyuncuParseQuestion -1 set OyuncuQNumber 0 set OyuncuForced 0 set OyuncuForcedQuestion "" } { set OyuncuQNumber [OyuncuPickQuestion] OyuncuParseQuestion $OyuncuQNumber } set OyuncuAllAnswered 0 set OyuncuLastGuesser "" set OyuncuDisplayNum 0 set OyuncuNumAnswered 0 set OyuncuRoundOver 0 # Choose Points Value For This Round set OyuncuPointsPerAnswer [rand 10] if {$OyuncuPointsPerAnswer < 1} {set OyuncuPointsPerAnswer 10} set OyuncuPointsPerAnswer [expr $OyuncuPointsPerAnswer * 10] set OyuncuPointTotal [expr $OyuncuPointsPerAnswer *$OyuncuAnswerCount] Oyuncumsg "[kcg] K[format "%04d" $OyuncuQNumber] [kcb] $OyuncuQuestion \003 \00306\[\00310$OyuncuAnswerCount \00306Cevap\]\003" Oyuncumsg "\00304Her Doğru Cevap: \00313$OyuncuPointsPerAnswer \00312$OyuncuPointsName \00310Toplam: \00313$OyuncuPointTotal \00312$OyuncuPointsName\003" set KRemain [expr int([expr $OyuncuQuestionTime /2])] set OyuncuQuestionTimer [utimer $KRemain "OyuncuDisplayRemainingTime $KRemain"] } # # Get Player Guess # proc OyuncuCheckGuess {nick uhost hand chan args} { global OyuncuChannel OyuncuRunning OyuncuScore OyuncuAnswerCount OyuncuAnswers OyuncuRoundOver global OyuncuPointsName OyuncuPointsPerAnswer OyuncuNumAnswered OyuncuAllAnswered OyuncuLastGuesser KDebug if {($chan != $OyuncuChannel)||($OyuncuRunning != 1)||($OyuncuRoundOver == 1)} {return} regsub -all \[{',.!}] $args "" args if {[string length args] == 0} {return} set OyuncuGuessOld $args set OyuncuGuess [string tolower $OyuncuGuessOld] if {$KDebug > 1} {Oyunculog "Oyuncu" "Guess: $nick $OyuncuGuess"} foreach z [array names OyuncuAnswers] { set OyuncuTry [lrange $OyuncuAnswers($z) 1 end] set OyuncuTryOld $OyuncuTry regsub -all \[{',.!}] $OyuncuTry "" OyuncuTry set OyuncuTry [string tolower $OyuncuTry] if {$KDebug > 1} {Oyunculog "Oyuncu" "Try: $OyuncuTry"} if {$OyuncuTry == $OyuncuGuess} { if {[lindex $OyuncuAnswers($z) 0] == "#"} { set OyuncuAnswers($z) "$nick $OyuncuGuessOld" Oyuncumsg "[knikclr $nick]\00313$OyuncuPointsPerAnswer \00312$OyuncuPointsName \00306kazandı. \00310$OyuncuTryOld" incr OyuncuNumAnswered if {$OyuncuNumAnswered == $OyuncuAnswerCount} { set OyuncuAllAnswered 1 set OyuncuRoundOver 1 set OyuncuLastGuesser $nick Oyuncumsg "[Oyuncu] [kcr] Tüm sorular başarı ile bilindi..! \003" Oyuncu_ShowResults Oyuncu_Recycle } return } } } } # # Display Remaining Time And Answer Stats # proc OyuncuDisplayRemainingTime {remaining} { global OyuncuRunning OyuncuAllAnswered OyuncuNumAnswered OyuncuAnswerCount OyuncuQuestionTimer OyuncuQuestionTime OyuncuDisplayNum if {($OyuncuRunning != 1)||($OyuncuAllAnswered == 1)} {return} Oyuncumsg "\00306Durum: \00308,02Cevaplanan: $OyuncuNumAnswered \00308,02Toplam: $OyuncuAnswerCount \003 \00312$remaining \00306sn kaldı." incr OyuncuDisplayNum set KRemain [expr int([expr $OyuncuQuestionTime /4])] if {$OyuncuDisplayNum < 2} { set OyuncuQuestionTimer [utimer $KRemain "OyuncuDisplayRemainingTime $KRemain"] } { set OyuncuQuestionTimer [utimer $KRemain OyuncuTimesUp] } } # # Show Results Of Round # proc OyuncuTimesUp {} { global OyuncuAnswers OyuncuAllAnswered OyuncuRoundOver OyuncuNumAnswered OyuncuAnswerCount OyuncuQuestionTimer OyuncuAdTimer if {$OyuncuAllAnswered == 1} { return 1} set OyuncuRoundOver 1 set Oyuncumissed "[kcg] Time's Up! \003 " append KMissed "\00304Bilinemeyen cevaplar: \00312" set KAnswersRemaining [expr ($OyuncuAnswerCount - $OyuncuNumAnswered)] set kcount 0 foreach z [array names OyuncuAnswers] { if {[lindex $OyuncuAnswers($z) 0] == "#"} { append KMissed "\00312[lrange $OyuncuAnswers($z) 1 end]" incr kcount if {$kcount < $KAnswersRemaining} {append KMissed " \00311| "} } } Oyuncumsg "$KMissed\003" Oyuncu_ShowResults if {$OyuncuNumAnswered > 0} { Oyuncumsg "[kcs] Doğru Bilinen Cevap Sayısı: $OyuncuNumAnswered Adet $OyuncuAnswerCount! \003" } { Oyuncumsg "[Oyuncu] \003\003\003" } set OyuncuAdTimer [utimer 10 Oyuncu_ShowAd] set OyuncuQuestionTimer [utimer 20 OyuncuAskQuestion] } # # All Answers Gotten, Next Question # proc Oyuncu_Recycle {} { global OyuncuAnswers OyuncuNumAnswered OyuncuQuestionTimer OyuncuAdTimer catch {killutimer $OyuncuQuestionTimer} if [info exists OyuncuAnswers] {unset OyuncuAnswers} set OyuncuAdTimer [utimer 10 Oyuncu_ShowAd] set OyuncuQuestion "" set OyuncuNumAnswered 0 set OyuncuQuestionTimer [utimer 20 OyuncuAskQuestion] } # # Total Answers and Points # proc Oyuncu_ShowResults {} { global OyuncuAnswers OyuncuPointsPerAnswer OyuncuPointsName OyuncuScore OyuncuAllAnswered OyuncuLastGuesser set NickCounter 0 set OyuncuCounter 0 if {$OyuncuAllAnswered == 1} { set OyuncuBonus [expr $OyuncuPointsPerAnswer *10] Oyuncumsg "[knikclr $OyuncuLastGuesser]\00306 \00313$OyuncuBonus \00312Bonus $OyuncuPointsName \00306kazandın..!" set KNickTotals($OyuncuLastGuesser) $OyuncuBonus set KNickList($NickCounter) $OyuncuLastGuesser incr NickCounter } foreach z [array names OyuncuAnswers] { if {[lindex $OyuncuAnswers($z) 0] != "#"} { set cnick [lindex $OyuncuAnswers($z) 0] if {[info exists KNickTotals($cnick)]} { incr KNickTotals($cnick) $OyuncuPointsPerAnswer } { set KNickTotals($cnick) $OyuncuPointsPerAnswer set KNickList($NickCounter) $cnick incr NickCounter } incr OyuncuCounter } } if {$OyuncuCounter > 0} { set ncount 0 set nicktotal "[kcm] $OyuncuPointsName " while {$ncount < $NickCounter} { set cnick $KNickList($ncount) if {[info exists OyuncuScore($cnick)]} { incr OyuncuScore($cnick) $KNickTotals($cnick) } { set OyuncuScore($cnick) $KNickTotals($cnick) } append nicktotal "[kcc] $cnick [kcm] $KNickTotals($cnick) " incr ncount } Oyuncumsg $nicktotal write_OyuncuScore } } # # Read Scores # proc read_OyuncuScore { } { global OyuncuScore OyuncuScoreFile if [info exists OyuncuScore] { unset OyuncuScore } if {[file exists $OyuncuScoreFile]} { set f [open $OyuncuScoreFile r] while {[gets $f s] != -1} { set OyuncuScore([lindex $s 0]) [lindex $s 1] } close $f } { set f [open $OyuncuScoreFile w] puts $f "Nobody 0" close $f } } # # Write Scores # proc write_OyuncuScore {} { global OyuncuScore OyuncuScoreFile set f [open $OyuncuScoreFile w] foreach s [lsort -decreasing -command sort_OyuncuScore [array names OyuncuScore]] { puts $f "$s $OyuncuScore($s)" } close $f } # # Score Sorting # proc sort_OyuncuScore {s1 s2} { global OyuncuScore if {$OyuncuScore($s1) > $OyuncuScore($s2)} {return 1} if {$OyuncuScore($s1) < $OyuncuScore($s2)} {return -1} if {$OyuncuScore($s1) == $OyuncuScore($s2)} {return 0} } # # Add Question Number To Asked File # proc Oyuncu_AddAsked {KQnum} { global OyuncuAsked OyuncuAskedFile set f [open $OyuncuAskedFile a] puts $f $KQnum close $f lappend OyuncuAsked $KQnum } # # Parse Asked Questions # proc Oyuncu_ReadAskedFile {} { global OyuncuAsked OyuncuAskedFile set KAsked 0 set OyuncuAsked "" if {![file exists $OyuncuAskedFile]} { set f [open $OyuncuAskedFile w] } { set f [open $OyuncuAskedFile r] while {[gets $f KQnum] != -1} { lappend OyuncuAsked "$KQnum" incr KAsked } } close $f return $KAsked } # # Reset Asked File # proc Oyuncu_ResetAsked {} { global OyuncuAskedFile OyuncuAsked set f [open $OyuncuAskedFile w] puts $f "0" close $f set OyuncuAsked "" } # # Read Question File # proc Oyuncu_ReadQuestionFile {} { global OyuncuQuestionFile OyuncuQuestions set KQuestions 0 set f [open $OyuncuQuestionFile r] while {[gets $f q] != -1} { set OyuncuQuestions($KQuestions) $q incr KQuestions } close $f return $KQuestions } # # Show Asked # proc Oyuncu_ShowAsked {nick uhost hand chan args} { global OyuncuQCount OyuncuAsked OyuncuQuestions set OyuncuStatsAsked [llength $OyuncuAsked] set OyuncuStatsUnasked [expr ($OyuncuQCount - $OyuncuStatsAsked)] Oyuncumsg "[Oyuncu] [kcm] Total: [kcc] $OyuncuQCount [kcm] Asked: [kcc] $OyuncuStatsAsked [kcm] Remaining: [kcc] $OyuncuStatsUnasked \003" } # # Repeat Question # proc Oyuncu_Repeat {nick uhost hand chan args} { global OyuncuChannel OyuncuQuestion OyuncuRunning OyuncuQNumber OyuncuAllAnswered global OyuncuPointsName if {($chan != $OyuncuChannel)||($OyuncuRunning != 1)} {return} if {$OyuncuAllAnswered == 1} {return } Oyuncumsg "\00300,03 K[format "%04d" $OyuncuQNumber] \00308,02 $OyuncuQuestion \003" } # # Display User's Score # proc OyuncuPlayerScore {nick uhost hand chan args} { global OyuncuChannel OyuncuScoreFile OyuncuPointsName if {$chan != $OyuncuChannel} {return} regsub -all \[`,.!{}] $args "" args if {[string length $args] == 0} {set args $nick} set scorer [string tolower $args] set kflag 0 set f [open $OyuncuScoreFile r] while {[gets $f sc] != -1} { set cnick [string tolower [lindex $sc 0]] if {$cnick == $scorer} { Oyuncumsg "[kcm] [lindex $sc 0] [kcc] [lindex $sc 1] $OyuncuPointsName \003" set kflag 1 } } if {$kflag == 0} {Oyuncumsg "[kcm] $scorer [kcc] No Score \003"} close $f } # # Display Top 10 Scores To A Player # proc OyuncuTop10 {nick uhost hand chan args} { global OyuncuChannel OyuncuScoreFile OyuncuPointsName if {$chan != $OyuncuChannel} {return} set KWinners "[kcm] Top10 $OyuncuPointsName " set f [open $OyuncuScoreFile r] for { set s 0 } { $s < 10 } { incr s } { gets $f OyuncuTotals if {[lindex $OyuncuTotals 1] > 0} { append KWinners "[kcm] #[expr $s +1] [kcc] [lindex $OyuncuTotals 0] [lindex $OyuncuTotals 1] " } { append KWinners "[kcm] #[expr $s +1] [kcc] Nobody 0 " } } Oyuncumsg "$KWinners" close $f } # # Last Month's Top 3 # proc OyuncuLastMonthTop3 {nick uhost hand chan args} { global OyuncuChannel OyuncuLastMonthScores if {$chan != $OyuncuChannel} {return} if [info exists OyuncuLastMonthScores] { set KWinners "[kcm]Geçen Ayın Top 3'ü " for { set s 0} { $s < 3 } { incr s} { append KWinners "[kcm] #[expr $s +1] [kcc] $OyuncuLastMonthScores($s) " } Oyuncumsg "$KWinners" } } # # Read Config File # proc Oyuncu_ReadCFG {} { global OyuncuCFGFile OyuncuChannel OyuncuAutoStart OyuncuScoreFile OyuncuAskedFile OyuncuQuestionFile OyuncuLastMonthScores OyuncuPointsName OyuncuAd if {[file exist $OyuncuCFGFile]} { set f [open $OyuncuCFGFile r] while {[gets $f s] != -1} { set kkey [string tolower [lindex [split $s "="] 0]] set kval [lindex [split $s "="] 1] switch $kkey { points { set OyuncuPointsName $kval } channel { set OyuncuChannel $kval } autostart { set OyuncuAutoStart $kval } scorefile { set OyuncuScoreFile $kval } askedfile { set OyuncuAskedFile $kval } Oyuncufile { set OyuncuQuestionFile $kval } ad1 { set OyuncuAd(0) $kval } ad2 { set OyuncuAd(1) $kval } ad3 { set OyuncuAd(2) $kval } lastmonth1 { set OyuncuLastMonthScores(0) $kval } lastmonth2 { set OyuncuLastMonthScores(1) $kval } lastmonth3 { set OyuncuLastMonthScores(2) $kval } } } close $f if {($OyuncuAutoStart < 0)||($OyuncuAutoStart > 1)} {set OyuncuAutoStart 1} return } Oyunculog "Oyuncu" "Config file $OyuncuCFGFile not found... using defaults" } # # Write Config File # proc Oyuncu_WriteCFG {} { global OyuncuCFGFile OyuncuChannel OyuncuAutoStart OyuncuScoreFile OyuncuAskedFile OyuncuQuestionFile OyuncuLastMonthScores OyuncuPointsName OyuncuAd set f [open $OyuncuCFGFile w] puts $f "# This file is automatically overwritten" puts $f "Points=$OyuncuPointsName" puts $f "Channel=$OyuncuChannel" puts $f "AutoStart=$OyuncuAutoStart" puts $f "ScoreFile=$OyuncuScoreFile" puts $f "AskedFile=$OyuncuAskedFile" puts $f "OyuncuFile=$OyuncuQuestionFile" puts $f "LastMonth1=$OyuncuLastMonthScores(0)" puts $f "LastMonth2=$OyuncuLastMonthScores(1)" puts $f "LastMonth3=$OyuncuLastMonthScores(2)" puts $f "Ad1=$OyuncuAd(0)" puts $f "Ad2=$OyuncuAd(1)" puts $f "Ad3=$OyuncuAd(2)" close $f } # # Clear Month's Top 10 # proc Oyuncu_NewMonth {min hour day month year} { global OyuncuScoreFile OyuncuScore OyuncuLastMonthScores set cmonth [expr $month +1] set lmonth [OyuncuLastMonthName $cmonth] Oyuncumsg "[Oyuncu] [kcr] Clearing Monthly Scores \003" set OyuncuMonthFileName "$OyuncuScoreFile.$lmonth" set f [open $OyuncuMonthFileName w] set s 0 foreach n [lsort -decreasing -command sort_OyuncuScore [array names OyuncuScore]] { puts $f "$n $OyuncuScore($n)" if {$s < 3} { if {$OyuncuScore($n) > 0} { set OyuncuLastMonthScores($s) "$n $OyuncuScore($n)" } { set OyuncuLastMonthScores($s) "Nobody 0" } } incr s } close $f Oyuncu_WriteCFG if [info exists OyuncuScore] {unset OyuncuScore} set f [open $OyuncuScoreFile w] puts $f "Nobody 0" close $f putcmdlog "\[Oyuncu\] Cleared Monthly Top10 Scores: $OyuncuMonthFileName" } # # Command Help # proc OyuncuCmds {nick uhost hand chan args} { global OyuncuChannel if {$chan != $OyuncuChannel} {return} Oyuncuntc $nick "Oyuncu Commands: !Oyuncutop10 !Oyuncuwon \[nick\] !Oyuncurepeat !asked" } # # Color Routines # proc kcb {} { return "\0032" } proc kcg {} { return "\0033Soru:" } proc kcr {} { return "\0030,4" } proc kcm {} { return "\0030,6" } proc kcc {} { return "\0030,10" } proc kcs {} { return "\0030,12" } proc Oyuncu {} { return "\00302K\00303A\0034O\00305S\003" } # Channel Message proc Oyuncumsg {what} { global OyuncuChannel putquick "PRIVMSG $OyuncuChannel :$what" } # Notice Message proc Oyuncuntc {who what} { putquick "NOTICE $who :$what" } # Command Log proc Oyunculog {who what} { putcmdlog "\[$who\] $what" } # Name Of Last Month proc OyuncuLastMonthName {month} { switch $month { 1 {return "Dec"} 2 {return "Jan"} 3 {return "Feb"} 4 {return "Mar"} 5 {return "Apr"} 6 {return "May"} 7 {return "Jun"} 8 {return "Jul"} 9 {return "Aug"} 10 {return "Sep"} 11 {return "Oct"} 12 {return "Nov"} 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 Oyuncu_ShowAd {} { global OyuncuAdNumber OyuncuAd botnick OyuncuChannel switch $OyuncuAdNumber { 0 { Oyuncumsg "[kcs] $OyuncuAd(0) \003" } 1 { OyuncuTop10 $botnick none none $OyuncuChannel none } 2 { Oyuncumsg "[kcs] $OyuncuAd(1) \003" } 3 { OyuncuLastMonthTop3 $botnick none none $OyuncuChannel none } 4 { Oyuncumsg "[kcs] $OyuncuAd(2) \003" } } incr OyuncuAdNumber if {$OyuncuAdNumber > 4} {set OyuncuAdNumber 0} } # # Rehash Oyuncu Config # proc dcc_Oyuncurehash {hand idx arg} { global OyuncuQCount putcmdlog "#$hand# Rehashing Oyuncu config" Oyuncu_ReadCFG set OyuncuQCount [Oyuncu_ReadQuestionFile] if {$OyuncuQCount < 2} { Oyunculog "Oyuncu" "Not Enough Questions in Question File $OyuncuQuestionFile" return 0 } set OyuncuAskedFileLen [Oyuncu_ReadAskedFile] if {$OyuncuAskedFileLen >= $OyuncuQCount} { Oyunculog "Oyuncu" "Asked file out of sync with question database: resetting" Oyuncu_ResetAsked return 0 } Oyunculog "Oyuncu" "Questions:$OyuncuQCount Asked:$OyuncuAskedFileLen Remaining:[expr ($OyuncuQCount - $OyuncuAskedFileLen)]" } # # Show Current Answers # proc dcc_Oyuncuanswer {hand idx arg} { global OyuncuAnswers set ans "" foreach z [array names OyuncuAnswers] { if {[lindex $OyuncuAnswers($z) 0] == "#"} { append ans "[lrange $OyuncuAnswers($z) 1 end] | " } } Oyunculog "Oyuncu" $ans } # # Reset Asked File # proc dcc_Oyuncuresetasked {hand idx arg} { Oyuncu_ResetAsked Oyunculog "Oyuncu" "#$hand# Reset Asked File" } # # Show Asked # proc dcc_Oyuncushowasked {hand idx arg} { global OyuncuQCount OyuncuAsked OyuncuQuestions set OyuncuStatsAsked [llength $OyuncuAsked] set OyuncuStatsUnasked [expr ($OyuncuQCount - $OyuncuStatsAsked)] Oyunculog "Oyuncu" "Total:$OyuncuQCount Asked:$OyuncuStatsAsked Remaining:$OyuncuStatsUnasked" } # # Force A Question # proc dcc_Oyuncuforce {hand idx arg} { global OyuncuRunning OyuncuMarker OyuncuForced OyuncuForcedQuestion if {$OyuncuRunning != 1} {return} regsub -all \[`,.!{}] $arg "" arg if {$arg == ""} {return} set OyuncuMarkerIDX [string first $OyuncuMarker $arg] if {$OyuncuMarkerIDX < 2} { Oyunculog "Oyuncu" "Malformed question: Format: Question*Answer1*Answer2..." return } set OyuncuForcedQuestion $arg set OyuncuForced 1 Oyunculog "Oyuncu" "Forcing A Question Next Round" } Oyuncu_ReadCFG putcmdlog "Loaded Oyuncu $OyuncuVersion" ---------- aL Sana TcL Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
|
Etiketler |
botu, oyun, sifirliyor, skorlari, skorları, sıfırlıyor |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Kelime botu veya Oyun botu | xxmertx | Servisler | 7 | 24 Aralık 2012 13:34 |
Socket Botu Puanları Günluk Sıfırlıyor | Rizespor | mIRC Scripting Sorunları | 2 | 11 Kasım 2012 09:34 |
Oyun Botumu Sildim.. Ama Başka Oyun Botu Kurucağım Yapamıyorum :s | BlueFan | Eggdrop, NeoStats, BNC | 1 | 29 Eylül 2006 23:03 |
Oyun botu tcl!!! | aslanli | Eggdrop, NeoStats, BNC | 5 | 20 Mayıs 2006 16:10 |