

set LETTERChannel       "#Lombok"
set LETTERPointsName    "Points"
set LETTERPointsPerAnswer 10
set LETTERQuestionTime  60
set LETTERMarker        "*"
set LETTERAskedFile     "eggdrop/scripts/letter.asked"
set LETTERQuestionFile  "eggdrop/scripts/letter.db"
set LETTERCFGFile       "eggdrop/scripts/letter.cfg"
set LETTERRunning 0
set LETTERAllAnswered 0
set LETTERRoundOver 0
set LETTERQNumber 0
set LETTERQuestion ""
set LETTERQuestions(0) ""
set LETTERAsked ""
set LETTERQCount 0
set LETTERAnswerCount 0
set LETTERDisplayNum 0
set LETTERNumAnswered 0
set LETTERForced 0
set LETTERForcedQuestion ""
set LETTERAutoStart 0
set LETTERtimeanswer 1
set LETTERAdNumber 0
set LETTERAd(0) "$botnick"
set LETTERAd(1) "$botnick"
set LETTERAd(2) "$botnick"
set LETTERAdTimer ""
set LETTERQuestionTimer ""
set KDebug 0
set LETTERVersion "PANTAT-LOE"
set LETTERcongrats [list "Congratulations" "How Did You Get it" "Nice going" "Way to go" "You got it" "That's the way" "Good Guess" "Bravo"]
proc LETTER_Start {nick uhost hand chan args} {
global LETTERChannel LETTERRunning LETTERQCount LETTERQNumber LETTERQuestionFile LETTERAdNumber LETTERVersion KDebug CountAnswer CountNoAnswer
if {($chan != $LETTERChannel)||($LETTERRunning != 0)} {return}
set LETTERQCount 0
set LETTERAdNumber 0
LETTER_ReadCFG
if {![file exist $LETTERQuestionFile]} {
putcmdlog "\[LETTER\] Question File: $LETTERQuestionFile Unreadable Or Does Not Exist"
return 0
}
set LETTERQCount [LETTER_ReadQuestionFile]
if {$LETTERQCount < 2} {
putcmdlog "\[LETTER\] Not Enough Questions in Question File $LETTERQuestionFile"
return 0
}
set LETTERAskedFileLen [LETTER_ReadAskedFile]
if {$LETTERAskedFileLen >= $LETTERQCount} {
LETTER_ResetAsked
return 0
}
set LETTERRunning 1
bind pubm - "*" LETTERCheckGuess
LETTERAskQuestion
return 1
}
proc LETTER_nostop {nick uhost hand chan args} {
global LETTERChannel LETTERRunning LETTERQuestionTimer LETTERAdTimer
if {($chan != $LETTERChannel)||($LETTERRunning != 1)} {return}
set LETTERRunning 0
catch {killutimer $LETTERQuestionTimer}
catch {killutimer $LETTERAdTimer}
catch {unbind pubm - "*" LETTERCheckGuess}
LETTERmsg "\00306Game is nostopped by \00304\[\00312$nick!$uhost\00304\]"
return 1
}
proc LETTERPickQuestion {} {
global LETTERAsked LETTERQCount KDebug
set LETTERUnasked [expr ($LETTERQCount - [llength $LETTERAsked])]
if {$LETTERUnasked < 1} {
LETTER_ResetAsked
}
set pickdone 0
while {$pickdone == 0} {
set kidx 0
set foundinasked 0
set pick [rand $LETTERQCount]
while {[lindex $LETTERAsked $kidx] != ""} {
if {[lindex $LETTERAsked $kidx] == $pick} {
set foundinasked 1
break
}
incr kidx
}
if {$foundinasked == 0} {incr pickdone}
}
LETTER_AddAsked $pick
return $pick
}
proc LETTERParseQuestion {QNum} {
global LETTERMarker LETTERQuestions LETTERQuestion LETTERAnswers LETTERAnswerCount LETTERForcedQuestion KDebug
set KAnswersLeft ""
if {$QNum < 0} {
set LETTERFileQuestion $LETTERForcedQuestion
} {
set LETTERFileQuestion $LETTERQuestions($QNum)
}
if {$KDebug > 1} {LETTERlog "LETTER" "Picked:$QNum Question:$LETTERFileQuestion"}
if [info exists LETTERAnswers] {unset LETTERAnswers}
# Position of first "*"
set LETTERMarkerIDX [string first $LETTERMarker $LETTERFileQuestion]
if {$LETTERMarkerIDX < 1} {
LETTERlog "LETTER" "Malformed Question #$QNum"
}
set LETTERQuestionEndIDX [expr $LETTERMarkerIDX - 1]
set LETTERQuestion [string range $LETTERFileQuestion 0 $LETTERQuestionEndIDX]
incr LETTERMarkerIDX
set KAnswersLeft [string range $LETTERFileQuestion $LETTERMarkerIDX end]
set KDoneParsing 0
set LETTERAnswerCount 0
while {$KDoneParsing != 1 } {
set KAnswerEnd [string first $LETTERMarker $KAnswersLeft]
if {$KAnswerEnd < 1} {
set KDoneParsing 1
set KAnswerEnd [string length $KAnswersLeft]
}
set KAnswer [string range $KAnswersLeft 0 [expr $KAnswerEnd -1]]
set LETTERAnswers($LETTERAnswerCount) "# $KAnswer"
set LETTERMarkerIDX [expr $KAnswerEnd +1]
set KAnswersLeft [string range $KAnswersLeft $LETTERMarkerIDX end]
incr LETTERAnswerCount
}
}
proc LETTERAskQuestion {} {
global LETTERRunning LETTERQNumber LETTERAllAnswered LETTERRoundOver LETTERQuestion LETTERQCount
global LETTERPointsPerAnswer LETTERPointsName LETTERNumAnswered LETTERAnswerCount
global LETTERQuestionTimer LETTERQuestionTime LETTERDisplayNum LETTERForced LETTERLastGuesser
global tipno tiplist TipsToUse InfoItem LETTERtimestart LETTERtimeanswer
if {$LETTERRunning != 1} {return}
if {$LETTERForced == 1} {
LETTERParseQuestion -1
set LETTERQNumber 0
set LETTERForced 0
set LETTERForcedQuestion ""
} {
set LETTERQNumber [LETTERPickQuestion]
LETTERParseQuestion $LETTERQNumber
}
set LETTERAllAnswered 0
set LETTERLastGuesser ""
set LETTERDisplayNum 0
set LETTERNumAnswered 0
set LETTERRoundOver 0
set LETTERPointsPerAnswer [rand 3]
if {$LETTERPointsPerAnswer < 1} {set LETTERPointsPerAnswer 3}
set LETTERPointsPerAnswer [expr $LETTERPointsPerAnswer *10]
set LETTERBonus [expr $LETTERPointsPerAnswer *5]
set LETTERPointTotal [expr $LETTERPointsPerAnswer *$LETTERAnswerCount]
if {$LETTERtimeanswer==1} {
set LETTERtimestart [clock clicks -milliseconds]
}
if {$LETTERAnswerCount == 1} {
LETTERmsg "\0030,2 :: Question No. $LETTERQNumber\/$LETTERQCount \00308\[\00311 ®Build Words® \00308\] \0030maluku@DALnet :: \003"
LETTERmsg "\002\037\0032Letters\002\037: $LETTERQuestion \003"
LETTERmsg "\0030,2 ::\00311 +$LETTERPointsPerAnswer\0030 $LETTERPointsName Bila Anda Menjawab Benar :: \037-= GudLuck =-\037 :: "
}
set KRemain [expr int([expr $LETTERQuestionTime /2])]
set LETTERQuestionTimer [utimer $KRemain "LETTERDisplayRemainingTime $KRemain"]
}
proc LETTERCheckGuess {nick uhost hand chan args} {
global LETTERChannel LETTERRunning LETTERAnswerCount LETTERAnswers LETTERRoundOver LETTERtimeanswer LETTERcongrats
global LETTERPointsName LETTERPointsPerAnswer LETTERNumAnswered LETTERAllAnswered LETTERLastGuesser KDebug LETTERcongrats
global lastwinner lastwinnercount botnick userlist quizconf rankfile LETTERtimestart LETTERtimetoanswer
variable bestscore 0 lastbestscore 0 lastbest ""
variable userarray
variable authorsolved 0 waitforrank 0 gameend 0
if {($chan != $LETTERChannel)||($LETTERRunning != 1)||($LETTERRoundOver == 1)} {return}
mx_getcreate_userentry $nick $nick
array set userarray $userlist($nick)
set lastbest [lindex [lsort -command mx_sortrank [array names userlist]] 0]
if {$lastbest == ""} {
set lastbestscore 0
} else {
array set aa $userlist($lastbest)
set lastbestscore $aa(score)
}
regsub -all \[{',.!}] $args "" args
if {[string length args] == 0} {return}
set LETTERGuessOld $args
set LETTERGuess [string tolower $LETTERGuessOld]
if {$KDebug > 1} {LETTERlog "LETTER" "Guess: $nick $LETTERGuess"}
foreach z [array names LETTERAnswers] {
set LETTERTry [lrange $LETTERAnswers($z) 1 end]
set LETTERTryOld $LETTERTry
regsub -all \[{',.!}] $LETTERTry "" LETTERTry
set LETTERTry [string tolower $LETTERTry]
if {$KDebug > 1} {LETTERlog "LETTER" "Try: $LETTERTry"}
if {$LETTERTry == $LETTERGuess} {
if {[lindex $LETTERAnswers($z) 0] == "#"} {
set LETTERAnswers($z) "$nick $LETTERGuessOld"
set LETTERtimetoanswer ""
if {$LETTERtimeanswer==1} {
set LETTERtimetoanswer [expr [expr [clock clicks -milliseconds]-$LETTERtimestart]/1000.00]
}
incr userarray(score) $LETTERPointsPerAnswer
if {$userarray(score) == 1} {
set userarray(started) [unixtime]
}
set userlist($nick) [array get userarray]
LETTERmsg "\00306[lindex $LETTERcongrats [rand [llength $LETTERcongrats]]] : \00302Answer Was \00306$LETTERTryOld \00302by \00306$nick \00302score:\00306 +$LETTERPointsPerAnswer \00302- less then \00306$LETTERtimetoanswer \00302seconds - Total Score: \00306$userarray(score) \00302Points and Ranked: \00306[mx_get_rank_pos $nick]"
pushmode $LETTERChannel +v $nick
tmcquiz_rank_save {} {} {}
incr LETTERNumAnswered
if {$LETTERNumAnswered == $LETTERAnswerCount} {
set LETTERAllAnswered 1
set LETTERRoundOver 1
if {$LETTERAnswerCount == 1} {
set LETTERLastGuesser ""
LETTERmsg ""
LETTER_TriviaResults
} elseif {$LETTERAnswerCount >= 2} {
set LETTERLastGuesser $nick
LETTERmsg ""
LETTER_ShowResults
}
LETTER_Recycle
}
return
}
}
}
}
proc LETTERDisplayRemainingTime {remaining} {
global LETTERRunning LETTERAllAnswered LETTERNumAnswered LETTERAnswerCount LETTERQuestionTimer LETTERQuestionTime LETTERDisplayNum
global LETTERQuestion
if {($LETTERRunning != 1)||($LETTERAllAnswered == 1)} {return}
if {$LETTERAnswerCount == 1} {
LETTERmsg "\00306$remaining \00302secs remaining"
} elseif {$LETTERAnswerCount >= 2} {
LETTERmsg "\00306$remaining \00302secs remaining"
}
incr LETTERDisplayNum
set KRemain [expr int([expr $LETTERQuestionTime /4])]
if {$LETTERDisplayNum < 2} {
set LETTERQuestionTimer [utimer $KRemain "LETTERDisplayRemainingTime $KRemain"]
} {
set LETTERQuestionTimer [utimer $KRemain LETTERTimesUp]
}
}
proc LETTERTimesUp {} {
global LETTERAnswers LETTERAllAnswered LETTERRoundOver LETTERNumAnswered LETTERAnswerCount LETTERQuestionTimer LETTERAdTimer
global TRANSChannel TRANSRunning TRANSQCount TRANSQNumber TRANSQuestionFile TRANSAdNumber TRANSVersion KDebug CountAnswer CountNoAnswer
global tccurrentanswer tchinttimer tctimenext tcchan tcnextqtimer tcstreak tcstreakmin
global tcscoresbyname tcranksbyname tcranksbynum tccongrats tcscorestotal tcmissed
global tcimestart tcshowallscores tcrealnames tcscoresbyrank tctimeanswer
if {$LETTERAllAnswered == 1} { return 1}
set LETTERRoundOver 1
set LETTERmissed "Time's Up! \003 "
append KMissed "\00302Times Up. Answer Was: "
set KAnswersRemaining [expr ($LETTERAnswerCount - $LETTERNumAnswered)]
set kcount 0
foreach z [array names LETTERAnswers] {
if {[lindex $LETTERAnswers($z) 0] == "#"} {
append KMissed "\00306[lrange $LETTERAnswers($z) 1 end]"
incr kcount
if {$kcount < $KAnswersRemaining} {append KMissed " - "}
}
}
LETTERmsg "$KMissed"
LETTER_ShowResults
if {$LETTERNumAnswered > 0} {
LETTERmsg ""
} {
LETTERmsg "\00302Sekarang ke soal Family Feud"
}
set tcnextqtimer [utimer $tctimenext tcnextq]
set tcplaying 2
set tcstreak 0
set tcmissed 0
}
proc LETTER_Recycle {} {
global tccurrentanswer tchinttimer tctimenext tcchan tcnextqtimer tcstreak tcstreakmin
global tcscoresbyname tcranksbyname tcranksbynum tccongrats tcscorestotal tcmissed
global tcimestart tcshowallscores tcrealnames tcscoresbyrank tctimeanswer
global LETTERAnswers LETTERNumAnswered LETTERQuestionTimer LETTERAdTimer
catch {killutimer $LETTERQuestionTimer}
if [info exists LETTERAnswers] {unset LETTERAnswers}
set LETTERQuestion ""
set LETTERNumAnswered 0
set tcnextqtimer [utimer $tctimenext tcnextq]
set tcplaying 1
set tcstreak 0
set tcmissed 0
}
proc LETTER_ShowResults {} {
global LETTERAnswers LETTERPointsPerAnswer LETTERPointsName LETTERAllAnswered LETTERLastGuesser
global botnick quizconf rankfile userlist lastwinner lastwinnercount
if {$LETTERAllAnswered == 1} {
set LETTERBonus [expr $LETTERPointsPerAnswer *5]
set nick $LETTERLastGuesser
mx_getcreate_userentry $nick $nick
array set userarray $userlist($nick)
set lastbest [lindex [lsort -command mx_sortrank [array names userlist]] 0]
if {$lastbest == ""} {
set lastbestscore 0
} else {
array set aa $userlist($lastbest)
set lastbestscore $aa(score)
}
incr userarray(score) $LETTERBonus
if {$userarray(score) == 1} {
set userarray(started) [unixtime]
}
set userlist($nick) [array get userarray]
LETTERmsg ""
tmcquiz_rank_save {} {} {}
}
}
proc LETTER_TriviaResults {} {
global LETTERAnswers LETTERPointsPerAnswer LETTERPointsName LETTERAllAnswered LETTERLastGuesser
}
proc LETTER_AddAsked {KQnum} {
global LETTERAsked LETTERAskedFile
set f [open $LETTERAskedFile a]
puts $f $KQnum
close $f
lappend LETTERAsked $KQnum
}
proc LETTER_ReadAskedFile {} {
global LETTERAsked LETTERAskedFile
set KAsked 0
set LETTERAsked ""
if {![file exists $LETTERAskedFile]} {
set f [open $LETTERAskedFile w]
} {
set f [open $LETTERAskedFile r]
while {[gets $f KQnum] != -1} {
lappend LETTERAsked "$KQnum"
incr KAsked
}
}
close $f
return $KAsked
}
proc LETTER_ResetAsked {} {
global LETTERAskedFile LETTERAsked
set f [open $LETTERAskedFile w]
puts $f "0"
close $f
set LETTERAsked ""
}
proc LETTER_ReadQuestionFile {} {
global LETTERQuestionFile LETTERQuestions
set KQuestions 0
set f [open $LETTERQuestionFile r]
while {[gets $f q] != -1} {
set LETTERQuestions($KQuestions) $q
incr KQuestions
}
close $f
return $KQuestions
}
proc LETTER_ShowAsked {nick uhost hand chan args} {
global LETTERQCount LETTERAsked LETTERQuestions
set LETTERStatsAsked [llength $LETTERAsked]
set LETTERStatsUnasked [expr ($LETTERQCount - $LETTERStatsAsked)]
LETTERmsg "Total: $LETTERQCount Asked: $LETTERStatsAsked Remaining: $LETTERStatsUnasked \003"
}
proc LETTER_ReadCFG {} {
global LETTERCFGFile LETTERChannel LETTERAutoStart LETTERAskedFile LETTERQuestionFile LETTERPointsName LETTERAd
if {[file exist $LETTERCFGFile]} {
set f [open $LETTERCFGFile r]
while {[gets $f s] != -1} {
set kkey [string tolower [lindex [split $s "="] 0]]
set kval [lindex [split $s "="] 1]
switch $kkey {
points { set LETTERPointsName $kval }
channel { set LETTERChannel $kval }
autostart { set LETTERAutoStart $kval }
askedfile { set LETTERAskedFile $kval }
LETTERfile { set LETTERQuestionFile $kval }
ad1 { set LETTERAd(0) $kval }
ad2 { set LETTERAd(1) $kval }
ad3 { set LETTERAd(2) $kval }
}
}
close $f
if {($LETTERAutoStart < 0)||($LETTERAutoStart > 1)} {set LETTERAutoStart 1}
return
}
LETTERlog "LETTER" "Config file $LETTERCFGFile not found... using defaults"
}
proc LETTER_WriteCFG {} {
global LETTERCFGFile LETTERChannel LETTERAutoStart LETTERAskedFile LETTERQuestionFile LETTERPointsName LETTERAd
set f [open $LETTERCFGFile w]
puts $f "# This file is automatically overwritten"
puts $f "Points=$LETTERPointsName"
puts $f "Channel=$LETTERChannel"
puts $f "AutoStart=$LETTERAutoStart"
puts $f "AskedFile=$LETTERAskedFile"
puts $f "LETTERFile=$LETTERQuestionFile"
puts $f "Ad1=$LETTERAd(0)"
puts $f "Ad2=$LETTERAd(1)"
puts $f "Ad3=$LETTERAd(2)"
close $f
}
proc LETTERmsg {what} {
global LETTERChannel
putquick "PRIVMSG $LETTERChannel :$what"
}
proc LETTERlog {who what} {
putcmdlog "\[$who\] $what"
}
proc dcc_LETTERrehash {hand idx arg} {
global LETTERQCount
putcmdlog "#$hand# Rehashing LETTER config"
LETTER_ReadCFG
set LETTERQCount [LETTER_ReadQuestionFile]
if {$LETTERQCount < 2} {
LETTERlog "LETTER" "Not Enough Questions in Question File $LETTERQuestionFile"
return 0
}
set LETTERAskedFileLen [LETTER_ReadAskedFile]
if {$LETTERAskedFileLen >= $LETTERQCount} {
LETTERlog "LETTER" "Asked file out of sync with question database: resetting"
LETTER_ResetAsked
return 0
}
LETTERlog "LETTER" "Questions:$LETTERQCount Asked:$LETTERAskedFileLen Remaining:[expr ($LETTERQCount - $LETTERAskedFileLen)]"
}
LETTER_ReadCFG

putlog "Build Word maluku DALnet Succesfully LoaDeD..."
