hi, here i copy a part of the script of Trivia,( he has 22000 char and is allowed 12345) and i don't know where i can change it because the time beetween the questions is high (30 sec), and i need only (1 or 2 sec), PLS help me!!!
-- TriviaBot Version 2.1
-- TriviaBot written by Leon a.k.a. Don Leon
-- Changes by Spud (Dream~Masters)
--
-- Version 2.0 Changes
--
-- Fixed TBPart message
-- Enabled confirmation message for save/load scores
-- Fixed character reveal function to reveal more that one character if word is long enough
-- Enabled auto reveal of answer feature
-- Removed "cheat" auto character hitting feature
-- Top Ten feature by aMutex and tr0f
-- Changed scoring
--
-- Version 2.1 Changes
-- Top Ten feature designed by Tezlo (Many many thanks for that)
-- Optional AutoLogin of all users
-- Fixed 100% CPU bug
-- Timed saving of scores
-- Moved various text from main to PM to save bandwidth
-- Users can't start Trivia
BotName = "evil-Z-Q"
ScriptVersion = "v2.1"
BotVersion = BotName.." "..ScriptVersion
-- This file is not needed it will be created if it not exists
strTrivScoreFile = "TriviaScores.dat"
-- This file is needed unless you want to run a Trivia with only two questions ;)
strDefTrivFile = "intrebari2.dat"
strTrivFile = strDefTrivFile
-- This char will be the global separator? (Make it one that is not used in nicknames nor questions ;)
strGSep = "*"
-- This char is used to mask the unrevealed chars
strCMask = "*"
-- Default startup mode of Trivia!
lngDefMode = 0 -- (0 = game is played in chat!, 1 = game is played in chat but questions only show for players, 2 = game is played in pm with players)
lngMode = lngDefMode
-- Max number of questions to show when a Operator ask to see list Questions 0 = 0, -1 = Disabled
lngMaxShowList = 5
-- Max no of Hints per word, and always hit on a hidden char
lngMaxHints = 4
boolHintAlwaysHitHidden = 1 -- (nil = off, 1 = on)
-- How much time before a question end. Time in Trivia is measured in 15 seconds, 1 = 15 seconds, 2 = 15 seconds etc!
-- Rest is how long to rest after a question is solved depening on when the word is solved in the Timer loop it is ?15 secs to the setting!
lngMaxTime = 8 -- (Needs to be a multiple of 4 i.e. 4 / 8 / 12 / 16)
lngRestTime = 2
lngHintTime = lngMaxTime / 4
-- How often should the bot autosave the scores
boolAutoSaveScores = 1 -- (nil = off, 1 = on)
countSaveTurns = 10 -- After how many questions should the scores be saved
-- Should bot reveal the correct answer once time is up?
boolRevealAnswer = 1 -- (nil = off, 1 = on)
-- Should the bot display what guess made the word become a little clearer if played in PM!
boolShowGuessesInPM = 1 -- (nil = off, 1 = on)
-- Should the bot Auto Reveal Hints?
boolAutoHint = 1 -- (nil = off, 1 = on)
-- Should the bot auto login every user on connect ?
boolAutoLogin = 1 -- (nil = off, 1 = on)
-- TriggStart is what char the commands should begin with I use ! but you can use # or whatever
TriggStart = "!"
-- Theese are the different triggers I've tried to name them so that one easily understand what they do!
-- I include TriggStart and then the word within "" this word is not casesensitive!
JoinTrigg = TriggStart.."tjoin"
PartTrigg = TriggStart.."tpart"
StartTrigg = TriggStart.."tstart"
StopTrigg = TriggStart.."tstop"
WordTrigg = TriggStart.."tword"
QuizTrigg = TriggStart.."tquestion"
RestartTrigg = TriggStart.."trestart"
PointTrigg = TriggStart.."tpoints"
ScoreTrigg = TriggStart.."tscores"
PlayerTrigg = TriggStart.."tplayers"
QuestionsTrigg = TriggStart.."tquestions"
ReloadTrigg = TriggStart.."treload"
HelpTrigg = TriggStart.."thelp"
ExtraHelpTrigg = TriggStart.."thelp+"
SaveTrigg = TriggStart.."tsavescores"
LoadTrigg = TriggStart.."tloadscores"
ModeTrigg = TriggStart.."tmode"
HintTrigg = TriggStart.."thintme"
LoadTop = TriggStart.."ttopten"
acount = 0
bcount = 0
scount = 0
guessArray = {}
lngGuessmax = 0
playerArray = {}
pointArray = {}
lngWord = 0
lngPassed = 0
lngHinted = 0
strWord = ""
strQuestion = ""
strSolved = ""
strBanner = "Type '"..StartTrigg.."' to start evil-Z-Bot, '"..StopTrigg.."' to stop evil-Z-Bot, type '"..JoinTrigg.."' to Join and '"..PartTrigg.."' to Part!"
strStart = "evil-Z-Bot "..ScriptVersion.." started! "..strBanner
strStopp = "evil-Z-Bot "..ScriptVersion.." stopped! "..strBanner
function Main()
frmHub:RegBot(BotName)
ReloadQuestions()
setlocale("swe")
LoadScores()
end
function NewUserConnected(curUser)
if (boolAutoLogin) then
if (not (playerArray[curUser.sName])) then
playerArray[curUser.sName] = 1
else
playerArray[curUser.sName] = nil
end
end
end
function OpConnected(curUser)
if (boolAutoLogin) then
if (not (playerArray[curUser.sName])) then
playerArray[curUser.sName] = 1
else
playerArray[curUser.sName] = nil
end
end
end
function UserDisconnected(curUser)
playerArray[curUser.sName] = nil
end
function OpDisconnected(curUser)
playerArray[curUser.sName] = nil
end
function DataArrival(curUser, data)
local boolPlaydata = nil
if (strsub(data, 1, 1) == "<") then
data = strsub(data, 1, (strlen(data) - 1))
if ((lngMode == 0) or (lngMode == 1)) then
boolPlaydata = 1
end
elseif (strsub(data, 1, 4) == "$To:") then
data = strsub(data, 1, (strlen(data) - 1))
local _, _, whoTo = strfind(data,"$To:%s+(%S+)")
if (whoTo == BotName) then
data = strsub(data, (15 + strlen(BotName) + strlen(curUser.sName)))
if (lngMode == 2) then
boolPlaydata = 1
end
end
end
local _, _, firstWord = strfind(data, "%b<>%s+(%S+)")
if (firstWord ~= nil) then
if ((strlower(firstWord) == strlower(HelpTrigg)) or (strlower(firstWord) == strlower(ExtraHelpTrigg))) then
showHelp(curUser)
elseif (strlower(firstWord) == strlower(SaveTrigg)) then
if (curUser.bOperator) then
SaveScores(curUser)
end
elseif (strlower(firstWord) == strlower(LoadTrigg)) then
if (curUser.bOperator) then
LoadScores(curUser)
end
elseif (strlower(firstWord) == strlower(LoadTop)) then
TopTen(user)
elseif (strlower(firstWord) == strlower(ModeTrigg)) then
if (curUser.bOperator) then
local _, _, ModeDigit = strfind(data, "%b<>%s+%S+%s+(%d+)")
if (ModeDigit ~= nil) then
lngMode = tonumber(ModeDigit)
if (lngMode == 0) then
SendToPlayers("Game is played in chat")
elseif (lngMode == 1) then
SendToPlayers("Game is played in chat but Questions only show for players")
elseif (lngMode == 2) then
SendToPlayers("Game is played in PM with Players")
else
SendToPlayers("Errorous mode, mode set to default")
lngMode = lngDefMode
end
end
end
elseif (strlower(firstWord) == strlower(JoinTrigg)) then
if (not (playerArray[curUser.sName])) then
playerArray[curUser.sName] = 1
SendToPlayers(curUser.sName.." is now a player! DO NOT type more than 3 answers in 10 seconds or the hub will ban you for spamming. You have been warned.")
else curUser:SendPM(BotName, "You are already a player and you didn't know. Possibly because you were autologged in")
end
elseif (strlower(firstWord) == strlower(PartTrigg)) then
if (playerArray[curUser.sName]) then
SendToPlayers(curUser.sName.." is no longer a player!")
playerArray[curUser.sName] = nil
end
elseif (strlower(firstWord) == strlower(RestartTrigg)) then
if (curUser.bOperator) then
SendToPlayers("TriviaBot restarted. All points etc are lost!")
SendToPlayers("If Save is used now it will overwrite the old save!")
pointArray = {}
StopQuiz(1)
end
elseif ((strlower(firstWord) == strlower(PointTrigg)) and (playerArray[curUser.sName])) then
if (pointArray[curUser.sName]) then
SendToPlayers(curUser.sName.." you have "..pointArray[curUser.sName].." points!")
else
SendToPlayers(curUser.sName.." you have 0 points!")
end
elseif ((strlower(firstWord) == strlower(HintTrigg)) and (playerArray[curUser.sName])) then
if ((lngWord ~= 0) and strfind(strSolved, strCMask, 1, plain)) then
if (lngHinted < lngMaxHints) then
acount = strlen(strWord) / 4
for nn=1,acount do
local lngRepChar = random(1, strlen(strWord))
while 1 do
if (boolHintAlwaysHitHidden) then
if (strsub(strSolved, lngRepChar, lngRepChar) == strCMask) then
break
end
else
break
end
lngRepChar = random(1, strlen(strWord))
end
local strTurn = ""
for x=1, strlen(strWord) do
if (x == lngRepChar) then
strTurn = strTurn..strsub(strWord, x, x)
else
strTurn = strTurn..strsub(strSolved, x, x)
end
end
strSolved = strTurn
end
lngHinted = lngHinted + 1
lngHintTimeCount = lngHintTimeCount + lngHintTime
SendToPlayers("Hint: "..strSolved)
acount = ""
else
SendToPlayers("All hints used for this word!")
end
else
SendToPlayers("No hint needed!")
end
elseif ((strlower(firstWord) == strlower(ScoreTrigg)) and (playerArray[curUser.sName])) then
curUser:SendPM(BotName, "SCORES:")
curUser:SendPM(BotName, "---------------------------------------------------------")
for index, value in pointArray do
curUser:SendPM(BotName, index.."'s points: "..value)
end
curUser:SendPM(BotName, "---------------------------------------------------------")
elseif ((strlower(firstWord) == strlower(PlayerTrigg)) and (playerArray[curUser.sName])) then
curUser:SendPM(BotName, "PLAYERS:")
curUser:SendPM(BotName, "---------------------------------------------------------")
for index, value in playerArray do
curUser:SendPM(BotName, index)
end
curUser:SendPM(BotName, "---------------------------------------------------------")
elseif (strlower(firstWord) == strlower(QuestionsTrigg)) then
if (curUser.bOperator) then
curUser:SendPM(BotName, "TOP "..lngMaxShowList.." QUESTIONS:")
curUser:SendPM(BotName, "---------------------------------------------------------")
local lngShowMax = lngMaxShowList
for index, value in guessArray do
if (lngShowMax == 0) then
break
end
arrTmp = tokenize(guessArray[index], strGSep)
strTmp = arrTmp[1]
curUser:SendPM(BotName, "["..index.."] "..strTmp)
lngShowMax = lngShowMax - 1
end
curUser:SendPM(BotName, "Total # of questions: "..lngGuessmax)
curUser:SendPM(BotName, "---------------------------------------------------------")
And the rest of script:
******************************************** curUser:SendPM(BotName, " ")
end
elseif (strlower(firstWord) == strlower(StartTrigg)) then
if (curUser.bOperator) then
if (lngWord == 0) then
playerArray[curUser.sName] = 1
SendToAll(BotName, strStart)
if (lngMode == 2) then
SendToPlayers(strStart)
end
StopQuiz(1)
else
SendToAll(BotName, "There is already a game going on type "..JoinTrigg.." to join!")
end
else
curUser:SendPM(BotName, "Only Operators can start the Trivia because it might be off for a reason.")
end
elseif (strlower(firstWord) == strlower(StopTrigg)) then
if (curUser.bOperator) then
HoldQuiz()
StopQuiz()
SendToAll(BotName, strStopp)
if (lngMode == 2) then
SendToPlayers(strStopp)
end
end
elseif (strlower(firstWord) == strlower(WordTrigg)) then
if ((lngWord ~= 0) and (playerArray[curUser.sName] == "Player")) then
SendToPlayers("Current question is: "..strSolved.." ("..strlen(strSolved)..")")
end
elseif (strlower(firstWord) == strlower(QuizTrigg)) then
if ((lngWord ~= 0) and (playerArray[curUser.sName])) then
SendToPlayers("Question is: "..strQuestion)
end
elseif (strlower(firstWord) == strlower(ReloadTrigg)) then
if (curUser.bOperator) then
local _, _, secondWord = strfind(data, "%b<>%s+%S+%s+(%S+)")
if (secondWord) then
handle = openfile(secondWord, "r")
if (handle) then
closefile(handle)
strTrivFile = secondWord
end
end
HoldQuiz()
ReloadQuestions()
end
else
if ((lngWord ~= 0) and (boolPlaydata)) then
if (playerArray[curUser.sName]) then
local msg = strsub(data, (4 + strlen(curUser.sName)))
if (strlen(msg) >= strlen(strWord)) then
local boolDisc = nil
local strTurn = ""
if strlower(msg) == strlower(strWord) then
strTurn = strWord
boolDisc = 1
else
strTurn = strSolved
end
if (boolDisc) then
strSolved = strTurn
end
if (boolDisc) then
if (strlower(msg) ~= strlower(strWord)) then
SendToOthers(curUser, msg)
SendToPlayers("Answer is now: "..strSolved)
end
end
if (strlower(msg) == strlower(strWord)) then
if (not (pointArray[curUser.sName])) then
pointArray[curUser.sName] = 0
end
if lngHinted == 3 then pointArray[curUser.sName] = pointArray[curUser.sName] + 1
elseif lngHinted == 2 then pointArray[curUser.sName] = pointArray[curUser.sName] + 2
elseif lngHinted == 1 then pointArray[curUser.sName] = pointArray[curUser.sName] + 3
else pointArray[curUser.sName] = pointArray[curUser.sName] + 4
end
SendToPlayers("Raspunsul a fost: "..strSolved)
SendToPlayers("Raspunsul a fost dat de: "..curUser.sName)
SendToPlayers("Urmatoarea inntrebare in: "..(lngRestTime * 15).." (?15) Secs")
lngPassed = lngMaxTime
SendToPlayers(curUser.sName.."'s are deja stranje in cos: "..pointArray[curUser.sName].." points!")
HoldQuiz()
end
end
end
end
end
end
end
function HoldQuiz()
strWord = ""
strQuestion = ""
strSolved = ""
end
function StopQuiz(restart)
lngWord = 0
lngPassed = 0
strWord = ""
strQuestion = ""
strSolved = ""
StopTimer()
if (restart) then
StartQuiz()
end
end
function StartQuiz()
lngWord = random(1, lngGuessmax)
QWarray = tokenize(guessArray[lngWord], strGSep)
strQuestion = QWarray[1]
strWord = QWarray[2]
strSolved = ""
for x=1, strlen(strWord) do
if (strsub(strWord, x, x) == " ") then
strSolved = strSolved.." "
else
strSolved = strSolved..strCMask
end
end
lngPassed = 0
lngHinted = 0
lngHintTimeCount = lngHintTime
bcount = strlen(strWord) / 4
SetTimer(15000)
StartTimer()
SendToPlayers("Intrebarea: "..strQuestion)
SendToPlayers("Raspuns: "..strSolved.." ("..strlen(strSolved)..")")
end
function OnTimer()
lngPassed = lngPassed + 1
if (lngPassed == lngMaxTime) then
scount = scount + 1
if scount == countSaveTurns then
local handle = openfile(strTrivScoreFile, "w")
for index, value in pointArray do
write(handle,index..strGSep..value.."\r\n")
end
closefile(handle)
scount = 0
end
if (boolRevealAnswer) then
SendToPlayers("raspunsul este '"..strWord.."' noroc la intrebarea urmatoare!")
else
SendToPlayers("Raspuns ne stiut de nimeni!")
end
SendToPlayers("Next question in "..(lngRestTime * 15).." Secs")
HoldQuiz()
elseif (lngPassed >= (lngRestTime + lngMaxTime)) then
StopQuiz(1)
elseif (lngPassed == lngHintTimeCount) then
if (boolAutoHint) then
for nn=1,bcount do
local lngRepChar = random(1, strlen(strWord))
while 1 do
if (boolHintAlwaysHitHidden) then
if (strsub(strSolved, lngRepChar, lngRepChar) == strCMask) then
break
end
else
break
end
lngRepChar = random(1, strlen(strWord))
end
local strTurn = ""
for x=1, strlen(strWord) do
if (x == lngRepChar) then
strTurn = strTurn..strsub(strWord, x, x)
else
strTurn = strTurn..strsub(strSolved, x, x)
end
end
strSolved = strTurn
end
lngHinted = lngHinted + 1
lngHintTimeCount = lngHintTimeCount + lngHintTime
SendToPlayers("Hint: "..strSolved)
end
end
end
function tokenize (inString,token)
_WORDS = {}
local matcher = "([^"..token.."]+)"
gsub(inString, matcher, function (w) tinsert(_WORDS,w) end)
return _WORDS
end
function ReloadQuestions()
guessArray = {}
lngGuessmax = 0
local boolRestart = nil
if (lngWord ~= 0) then
SendToPlayers("Reincarcam intrebari noi, pe astea le oprim, sunt vechi!!!!!")
StopQuiz()
boolRestart = 1
end
handle = openfile(strTrivFile, "r")
if (handle) then
local line = read(handle)
while line do
if ((line ~= "") and (strfind(line, strGSep, 1, plain))) then
tinsert(guessArray, line)
lngGuessmax = lngGuessmax + 1
end
line = read(handle)
end
closefile(handle)
end
if (lngGuessmax < 1) then
guessArray = {
"The finest car there is?"..strGSep.."Honda CRX del Sol",
"Who brought you this TriviaBot"..strGSep.."Leon a.k.a. Don Leon"
}
lngGuessmax = 2
end
if (boolRestart) then
SendToPlayers("Reloaded questions, game will be restarted! Current # of questions: "..lngGuessmax)
StartQuiz()
end
strTrivFile = strDefTrivFile
end
function SaveScores(curUser)
local handle = openfile(strTrivScoreFile, "w")
for index, value in pointArray do
write(handle,index..strGSep..value.."\r\n")
end
curUser:SendData(BotName,"Scores saved")
closefile(handle)
end
function LoadScores(curUser)
local handle = openfile(strTrivScoreFile, "r")
if (handle) then
local line = read(handle)
while line do
local arrTmp = tokenize(line, strGSep)
if ((arrTmp[1] ~= nil) and (arrTmp[2] ~= nil)) then
pointArray[arrTmp[1]] = tonumber(arrTmp[2])
end
line = read(handle)
end
curUser:SendData(BotName,"Scores Loaded")
closefile(handle)
end
end
function SendToPlayers(msg)
if ((lngMode > 2) or (lngMode < 0)) then
lngMode = lngDefMode
end
if (lngMode == 0) then
SendToAll(BotName, msg)
elseif (lngMode == 1) then
for index, value in playerArray do
SendToNick(index, "<"..BotName.."> "..msg)
end
elseif (lngMode == 2) then
for index, value in playerArray do
SendPmToNick(index, BotName, msg)
end
end
end
function SendToOthers(msg, curUser)
if ((lngMode == 2) and (boolShowGuessesInPM)) then
for index, value in playerArray do
if (index ~= curUser.sName) then
SendPmToNick(index, BotName, "<"..curUser.sName.."> "..msg)
end
end
end
end
function showHelp(curUser)
curUser:SendData(" ")
curUser:SendData(" "..BotVersion.." commands:")
curUser:SendData(" ")
if (lngMode == 0) then
curUser:SendData(" "..BotVersion.." is set to be played in chat")
elseif (lngMode == 1) then
curUser:SendData(" "..BotVersion.." is set to be played in chat (hidden)")
else
curUser:SendData(" "..BotVersion.." is set to be played in PM")
end
curUser:SendData(" "..HelpTrigg.." - Displays this help")
curUser:SendData(" "..JoinTrigg.." - Joins you to Trivia")
curUser:SendData(" "..PartTrigg.." - Parts you from Trivia")
curUser:SendData(" "..WordTrigg.." - Shows current word (answer)")
curUser:SendData(" "..QuizTrigg.." - Shows current question")
curUser:SendData(" "..PointTrigg.." - Shows your points only")
curUser:SendData(" "..ScoreTrigg.." - Shows everyones score")
curUser:SendData(" "..PlayerTrigg.." - Shows all players in current game")
curUser:SendData(" "..HintTrigg.." - Reveals a char in current word")
curUser:SendData(" "..LoadTop.." - Shows top ten scores")
if (curUser.bOperator) then
curUser:SendData(" ")
curUser:SendData(" "..BotVersion.." Operator commands:")
curUser:SendData(" "..StopTrigg.." - Stops the TriviaBot")
curUser:SendData(" "..RestartTrigg.." - Restarts the bot, reseting all scores!")
curUser:SendData(" "..QuestionsTrigg.." - Shows all questions in current game")
curUser:SendData(" "..ReloadTrigg.." () - Reloads questions from "..strDefTrivFile)
curUser:SendData(" "..ModeTrigg.." - To change mode of the game (0-2)!")
curUser:SendData(" "..SaveTrigg.." - Saves scores into "..strTrivScoreFile)
curUser:SendData(" "..LoadTrigg.." - Loads scores from "..strTrivScoreFile)
curUser:SendData(" "..StartTrigg.." - Starts the TriviaBot and automatically adds you as a player")
curUser:SendData(" ")
curUser:SendData(" "..BotVersion.." Modes:")
curUser:SendData(" ".."0 = Game is played in chat!")
curUser:SendData(" ".."1 = Game is played in chat but Questions only show for players")
curUser:SendData(" ".."2 = Game is played in PM with Players")
end
end
function TopTen(user)
local index = {n=0}
foreach(pointArray, function(nick, score) tinsert(%index, nick) end)
local func = function(a, b) return %pointArray[a] > %pointArray end
sort(index, func)
x = x or 10 if x > index.n then x = index.n end
local result = "\r\nTop "..x.." Trivia scores in this hub..\r\n Pos\t Score\t\t Nick\t\r\n"
for i = 1, x do result = result.."\r\n "..i..".\t"..pointArray[index].."\t\t"..index end
SendToAll("Trivia", result)
end
on these lines you can change the time for the questions.
multiply the number by 15.
-- How much time before a question end. Time in Trivia is measured in 15 seconds, 1 = 15 seconds, 2 = 30 seconds etc!
-- Rest is how long to rest after a question is solved depening on when the word is solved in the Timer loop it is ?15 secs to the setting!
lngMaxTime = 8 -- (Needs to be a multiple of 4 i.e. 4 / 8 / 12 / 16)
lngRestTime = 2
lngHintTime = lngMaxTime / 4
plop
thanks a lot:)) :D :] 8) , my hub rullz now
yw.
plop