Trivia
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

Trivia

Started by Psycho_Chihuahua, 03 March, 2005, 21:21:45

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Psycho_Chihuahua

Well i tried converting this to Lua5 and failed in total...

could someone help me out here?

BotName = "Quiz"
ScriptVersion = "v2.2"
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 = "trivia.dat"
strTrivFile = strDefTrivFile
strQFile = "Questions.dat"

-- 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 = 2 -- (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 = nil -- (nil = off, 1 = on)

-- 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

-- How often should the bot autosave the scores
boolAutoSaveScores = 1 -- (nil = off, 1 = on)
countSaveTurns = 1 -- 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 = nil -- (nil = off, 1 = on)

-- Do you want users to be able to add questions ? Operators can always add questions.
boolAddQuestion = 1 -- (nil = No, 1 = Yes)

-- 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.."qmitmach"
PartTrigg = TriggStart.."qraus"
StartTrigg = TriggStart.."qstart"
StopTrigg = TriggStart.."qstop"
WordTrigg = TriggStart.."qwort"
QuizTrigg = TriggStart.."qfrage"
RestartTrigg = TriggStart.."qneustart"
PointTrigg = TriggStart.."qpunkte"
ScoreTrigg = TriggStart.."qergebnis"
PlayerTrigg = TriggStart.."qspieler"
QuestionsTrigg = TriggStart.."qfragen"
ReloadTrigg = TriggStart.."qneuladen"
HelpTrigg = TriggStart.."qhilfe"
ExtraHelpTrigg = TriggStart.."qhilfe+"
SaveTrigg = TriggStart.."qsicherergebnis"
LoadTrigg = TriggStart.."qladeergebnis"
ModeTrigg = TriggStart.."qmodus"
HintTrigg = TriggStart.."qtip"
TopTrigg = TriggStart.."qtopten"
AddTrigg = TriggStart.."qfragedazu"

bcount = 0
scount = 0
sQuestion = ""
sAnswer = ""
guessArray = {}
lngGuessmax = 0
playerArray = {}
pointArray = {}
lngWord = 0
lngPassed = 0
lngHinted = 0
strWord = ""
strQuestion = ""
strSolved = ""
strBanner = "Schreibe '"..StartTrigg.."' um den Quizzbot zu starten, '"..StopTrigg.."' um den Quizzbot anzuhalten, '"..JoinTrigg.."' um am Quizz teilzunehmen und '"..PartTrigg.."' um das Quizz zu verlassen."
strStart = "Quizzbot "..ScriptVersion.." gestartet! "..strBanner
strStopp = "Quizzbot "..ScriptVersion.." angehalten! "..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 (string.sub(data, 1, 1) == "<") then
    data = string.sub(data, 1, (string.len(data) - 1))
    if ((lngMode == 0) or (lngMode == 1)) then
      boolPlaydata = 1
    end
  elseif (string.sub(data, 1, 4) == "$To:") then
    data = string.sub(data, 1, (string.len(data) - 1))
    local _, _, whoTo = string.find(data,"$To:%s+(%S+)")
    if (whoTo == BotName) then
      data = string.sub(data, (15 + string.len(BotName) + string.len(curUser.sName)))
      if (lngMode == 2) then
        boolPlaydata = 1
	local _, _, chat = string.find(data, "%b<>%s(.+)")
	SendChatToOthers(chat, curUser)
      end
    end
  end


  local _, _, firstWord = string.find(data, "%b<>%s+(%S+)")
  
  if (firstWord ~= nil) then
    if ((string.lower(firstWord) == string.lower(HelpTrigg)) or (string.lower(firstWord) == string.lower(ExtraHelpTrigg))) then
      showHelp(curUser)
    elseif (string.lower(firstWord) == string.lower(SaveTrigg)) then
      if (curUser.bOperator) then
        SaveScores(curUser)
      end
    elseif (string.lower(firstWord) == string.lower(LoadTrigg)) then
      if (curUser.bOperator) then
        LoadScores(curUser)
      end
    elseif (string.lower(firstWord) == string.lower(TopTrigg)) then
	  TopTen(user)
    elseif (string.lower(firstWord) == string.lower(AddTrigg)) then
      if (boolAddQuestion) then
	s,e,sQuestion,sAnswer = string.find(data, "%b<>%s+%S+%s+(.+)#(.+)")	
	  AddQuestion(curUser,sQuestion,sAnswer)
      elseif (curUser.bOperator) then
      	s,e,sQuestion,sAnswer = string.find(data, "%b<>%s+%S+%s+(.+)#(.+)")	
	  AddQuestion(curUser,sQuestion,sAnswer)
      else
	  SendToPlayers("Fragen koennen jetzt nicht hinzugefuegt werden.")
      end
    elseif (string.lower(firstWord) == string.lower(ModeTrigg)) then
      if (curUser.bOperator) then
        local _, _, ModeDigit = string.find(data, "%b<>%s+%S+%s+(%d+)")
        if (ModeDigit ~= nil) then
          lngMode = tonumber(ModeDigit)
          if (lngMode == 0) then
            SendToPlayers("Quizz wird im Mainchat gespielt")
          elseif (lngMode == 1) then
            SendToPlayers("Quizz wird im Mainchat gespielt aber Fragen koennen nur Qiuzzer sehen")
          elseif (lngMode == 2) then
            SendToPlayers("Quizz wird ueber PM gespielt")
          else
            SendToPlayers("Falscher Modus gewaehlt, wurde auf Voreinstellung gesetzt")
            lngMode = lngDefMode
          end
        end
      end
    elseif (string.lower(firstWord) == string.lower(JoinTrigg)) then
      if (not (playerArray[curUser.sName])) then
        playerArray[curUser.sName] = 1
        SendToPlayers(curUser.sName.." ist nun Mitspieler!")
      else curUser:SendPM(BotName, "Du bist schon Mitspieler. Es kann sein das Du automatisch eingeloggt wurdest.")
      end
    elseif (string.lower(firstWord) == string.lower(PartTrigg)) then
      if (playerArray[curUser.sName]) then
        SendToPlayers(curUser.sName.." ist nicht l?nger Mitspieler!")
        playerArray[curUser.sName] = nil
      end
    elseif (string.lower(firstWord) == string.lower(RestartTrigg)) then
      if (curUser.bOperator) then
        SendToPlayers("Quizzbot neugestartet. Alle Punkte sind nun weg!")
        SendToPlayers("Wenn Du jetzt speicherst wird der alte Punktestand ?berschrieben!")
        pointArray = {}
        StopQuiz(1)
      end
    elseif ((string.lower(firstWord) == string.lower(PointTrigg)) and (playerArray[curUser.sName])) then
      if (pointArray[curUser.sName]) then
        SendToPlayers(curUser.sName.." Du hast "..pointArray[curUser.sName].." Punkte!")
      else
        SendToPlayers(curUser.sName.." Du hast 0 Punkte!")
      end
    elseif ((string.lower(firstWord) == string.lower(HintTrigg)) and (playerArray[curUser.sName])) then
      if ((lngWord ~= 0) and string.find(strSolved, strCMask, 1, plain)) then
        if (lngHinted < lngMaxHints) then
  	  for nn=1,bcount do
              local lngRepChar = math.random(1, string.len(strWord))
              while 1 do
                if (boolHintAlwaysHitHidden) then
                  if (string.sub(strSolved, lngRepChar, lngRepChar) == strCMask) then
                    break
                  end
                else
                  break
                end
                lngRepChar = math.random(1, string.len(strWord))
              end
              local strTurn = ""
              for x=1, string.len(strWord) do
                if (x == lngRepChar) then
                 strTurn = strTurn..string.sub(strWord, x, x)
                else
                  strTurn = strTurn..string.sub(strSolved, x, x)
                end
	      end
              strSolved = strTurn
	  end
            lngHinted = lngHinted + 1
	    lngHintTimeCount = lngHintTimeCount + lngHintTime
            SendToPlayers("Hinweis: "..strSolved)
	    acount = ""
         else
            SendToPlayers("Alle Hinweise aufgebraucht!")
       end
      else
        SendToPlayers("Kein Hinweis gebraucht!")
      end
    elseif ((string.lower(firstWord) == string.lower(ScoreTrigg)) and (playerArray[curUser.sName])) then
      curUser:SendPM(BotName, "ERGEBNISSE:")
      curUser:SendPM(BotName, "---------------------------------------------------------")
      for index, value in pointArray do
        curUser:SendPM(BotName, index.."'s Punkte: "..value)
      end
      curUser:SendPM(BotName, "---------------------------------------------------------")
    elseif ((string.lower(firstWord) == string.lower(PlayerTrigg)) and (playerArray[curUser.sName])) then
      curUser:SendPM(BotName, "SPIELER:")
      curUser:SendPM(BotName, "---------------------------------------------------------")
      for index, value in playerArray do
        curUser:SendPM(BotName, index)
      end
      curUser:SendPM(BotName, "---------------------------------------------------------")
    elseif (string.lower(firstWord) == string.lower(QuestionsTrigg)) then
      if (curUser.bOperator) then
        curUser:SendPM(BotName, "TOP "..lngMaxShowList.." FRAGEN:")
        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, "Anzahl der Fragen: "..lngGuessmax)
        curUser:SendPM(BotName, "---------------------------------------------------------")
        curUser:SendPM(BotName, " ")
      end
    elseif (string.lower(firstWord) == string.lower(StartTrigg)) then
      if (curUser.sName) then
        if (lngWord == 0) then
          playerArray[curUser.sName] = 1
          SendToAll(BotName, strStart)
          if (lngMode == 2) then
            SendToPlayers(strStart)
          end
          StopQuiz(1)
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

Psycho_Chihuahua

       else
          SendToAll(BotName, "Da ist ein Quizz im gange, schreibe  "..JoinTrigg.." um mitzuspielen!")
        end
      else
	curUser:SendPM(BotName, "Nur Op's koennen das Quizz starten.")
      end
    elseif (string.lower(firstWord) == string.lower(StopTrigg)) then
      if (curUser.user) then
        HoldQuiz()
        StopQuiz()
        SendToAll(BotName, strStopp)
        if (lngMode == 2) then
          SendToPlayers(strStopp)
        end
      end
    elseif (string.lower(firstWord) == string.lower(WordTrigg)) then
      if ((lngWord ~= 0) and (playerArray[curUser.sName] == "Player")) then
        SendToPlayers("Die derzeitige Frage ist: "..strSolved.." ("..string.len(strSolved)..")")
      end
    elseif (string.lower(firstWord) == string.lower(QuizTrigg)) then
      if ((lngWord ~= 0) and (playerArray[curUser.sName])) then
        SendToPlayers("Frage: "..strQuestion)
      end
    elseif (string.lower(firstWord) == string.lower(ReloadTrigg)) then
      if (curUser.bOperator) then
        local _, _, secondWord = string.find(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 = string.sub(data, (4 + string.len(curUser.sName)))
          if (string.len(msg) >= string.len(strWord)) then
            local boolDisc = nil
            
	local strTurn = "" 
		  if string.lower(msg) == string.lower(strWord) then 
		    strTurn = strWord
		    boolDisc = 1 
		  else 
		    strTurn = strSolved
		  end 
 
            
            if (boolDisc) then
              strSolved = strTurn
            end
            if (boolDisc) then
              if (string.lower(msg) ~= string.lower(strWord)) then
                SendToOthers(curUser, msg)
                SendToPlayers("Die Antwort ist nun: "..strSolved)
              end
            end
            if (string.lower(msg) == string.lower(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("Die Antwort war: "..strSolved)
              SendToPlayers("Die Antwort wurde erraten von: "..curUser.sName)
              SendToPlayers("Naechste Frage in "..(lngRestTime * 15).." (?15) Sekunden")
              lngPassed = lngMaxTime
              SendToPlayers(curUser.sName.."'s Punkte: "..pointArray[curUser.sName])
              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 = math.random(1, lngGuessmax)
  QWarray = tokenize(guessArray[lngWord], strGSep)
  strQuestion = QWarray[1]
  strWord = QWarray[2]
  strSolved = ""
  for x=1, string.len(strWord) do
    if (string.sub(strWord, x, x) == " ") then
      strSolved = strSolved.." "
    else
      strSolved = strSolved..strCMask
    end
  end
  lngPassed = 0
  lngHinted = 0
  lngHintTimeCount = lngHintTime
  if string.len(strWord) < 4 then
	bcount = math.random(1, 2)
  elseif string.len(strWord) >= 4 and string.len(strWord) <= 9 then
	bcount = math.random(1, 3)
  elseif string.len(strWord) >= 9 and string.len(strWord) <= 20 then
	bcount = math.random(2, 4)
  else
	bcount = math.random(3, 5)
  end
  SetTimer(15000)
  StartTimer()
  SendToPlayers("Frage: "..strQuestion)
  SendToPlayers("Antwort: "..strSolved.." ("..string.len(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("Die Antwort war '"..strWord.."' und wurde nicht erraten!")
    else
      SendToPlayers("Die Antwort wurde nicht erraten!")
    end
    SendToPlayers("Naechste Frage in "..(lngRestTime * 15).." Sekunden")
    HoldQuiz()
  elseif (lngPassed >= (lngRestTime + lngMaxTime)) then
    StopQuiz(1)
  elseif (lngPassed == lngHintTimeCount) then
    if (boolAutoHint) then
	for nn=1,bcount do
            local lngRepChar = math.random(1, string.len(strWord))
            while 1 do
              if (boolHintAlwaysHitHidden) then
                if (string.sub(strSolved, lngRepChar, lngRepChar) == strCMask) then
                  break
                end
              else
                break
              end
              lngRepChar = math.random(1, string.len(strWord))
            end
            local strTurn = ""
            for x=1, string.len(strWord) do
              if (x == lngRepChar) then
               strTurn = strTurn..string.sub(strWord, x, x)
              else
                strTurn = strTurn..string.sub(strSolved, x, x)
              end
	    end
            strSolved = strTurn
	end
            lngHinted = lngHinted + 1
	    lngHintTimeCount = lngHintTimeCount + lngHintTime
            SendToPlayers("Hinweis: "..strSolved)
	end  
  end
end

function tokenize (inString,token)
  _WORDS = {}
  local matcher = "([^"..token.."]+)"
  string.gsub(inString, matcher, function (w) table.insert(_WORDS,w) end)
  return _WORDS
end

function ReloadQuestions()
  guessArray = {}
  lngGuessmax = 0
  local boolRestart = nil
  if (lngWord ~= 0) then
    SendToPlayers("Lade Fragen neu, Quizz wird beendet!")
    StopQuiz()
    boolRestart = 1
  end
  handle = openfile(strTrivFile, "r")
  if (handle) then
    local line = read(handle)
    
    while line do
      if ((line ~= "") and (string.find(line, strGSep, 1, plain))) then
        table.insert(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("Lade Fragen neu, Quizz wird neugestartet! Derzeitige Anzahl der Fragen: "..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
  SendToAll(BotName,"Ergebnisse geladen")
  closefile(handle)
  end
end

function AddQuestion(curUser, sQuestion, sAnswer)
  local handle = openfile(strQFile, "a")
  write(handle,"Vorgeschlagen von <"..curUser.sName.."> "..sQuestion..strGSep..sAnswer.."\r\n")
  SendToPlayers(curUser.sName.." hat eine Frage hinzufefuegt "..sQuestion)
  curUser:SendPM(BotName,curUser.sName.." Du gabst als Antwort "..sAnswer)
  closefile(handle)
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 SendChatToOthers(chat, curUser)
  if (lngMode == 2) then
    for index, value in playerArray do
      if (index ~= curUser.sName) then
	SendToNick(index, "$To: "..index.." From: "..BotName.." $<"..curUser.sName.."> "..chat)
      end
    end
  end
end

function showHelp(curUser)
  curUser:SendData(" ")
  curUser:SendData(" "..BotVersion.." Befehle:")
  curUser:SendData(" ")
  if (lngMode == 0) then
    curUser:SendData("    "..BotVersion.." spielt das Quizz nun im Mainchat")
  elseif (lngMode == 1) then
    curUser:SendData("    "..BotVersion.." spielt das Quizz nun versteckt im Mainchat")
  else
    curUser:SendData("    "..BotVersion.." spielt das Quizz nun als PM")
  end
  curUser:SendData("    "..HelpTrigg.." - Zeigt diese Hilfe")
  curUser:SendData("    "..JoinTrigg.." - damit kannst Du am Quizz teilnehmen")
  curUser:SendData("    "..PartTrigg.." - damit verlaesst Du das Quizz")
  curUser:SendData("    "..WordTrigg.." - zeigt das derzeitig gesuchte Wort (Antwort)")
  curUser:SendData("    "..QuizTrigg.." - zeigt die derzeitige Frage")
  curUser:SendData("    "..PointTrigg.." - zeigt Deine Punkte")
  curUser:SendData("    "..ScoreTrigg.." - zeigt die Ergebnisse von allen")
  curUser:SendData("    "..PlayerTrigg.." - zeigt alle Spieler die am derzeitigen Quizz teilnehmen")
  curUser:SendData("    "..HintTrigg.." - enthuellt einen Buchstaben in der derzeitigen Antwort")
  curUser:SendData("    "..TopTrigg.." - zeigt die Top Ten Ergebnisse")
  curUser:SendData("    "..AddTrigg.." - fuegt ein Frage zum Fragenfile hinzu. Schreibe die Frage und trenne die Antwort von der Frage mit einer #")
  curUser:SendData("    BEISPIEL : qfrage Wie schnell fliegt ein Vogel?#keine Ahnung")
  if (curUser.bOperator) then
    curUser:SendData(" ")
    curUser:SendData("    "..BotVersion.." Operator Befehle:")
    curUser:SendData("    "..StopTrigg.." - Stoppt den Quizzbot")
    curUser:SendData("    "..RestartTrigg.." - startet den Quizzbot neu, alle Ergebnisse werden zurueckgesetzt!")
    curUser:SendData("    "..QuestionsTrigg.." - zeigt alle Fragen im derzeitigen Quizz")
    curUser:SendData("    "..ReloadTrigg.." () - laedt die Fragen von "..strDefTrivFile)
    curUser:SendData("    "..ModeTrigg.." - aendert den Spielmodus (0-2)!")
    curUser:SendData("    "..SaveTrigg.." - speichert die Ergebnisse in "..strTrivScoreFile)
    curUser:SendData("    "..LoadTrigg.." - laedt die Ergebnisse von "..strTrivScoreFile)
    curUser:SendData("    "..StartTrigg.." - startet den Quizzbot und Du nimmst automatisch daran teil")
    curUser:SendData(" ")
    curUser:SendData("    "..BotVersion.." Modis:")
    curUser:SendData("    ".."0 = gespielt wird im Mainchat!")
    curUser:SendData("    ".."1 = gespielt wird im Mainchat aber die Fragen sind nur sichtbar fuer Mitspieler")
    curUser:SendData("    ".."2 = gespielt wird komplett als PM")
  end
end

function TopTen(user)
	local index = {n=0}
	table.foreach(pointArray, function(nick, score) table.insert(%index, nick) end)
	local func = function(a, b) return %pointArray[a] > %pointArray[b] end
	table.sort(index, func)

	x = x or 40 if x > index.n then x = index.n end
	local result = "\r\nTop "..x.." Quizz Ergebnisse in diesem 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[i]].."\t\t"..index[i] end
	msg = result
	SendToPlayers(msg)
end
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

maksis

I need that script too..

jadehenry04

Why dont you just use hawks xsthetics? its allready converted to lua 5 and has other games in it aswell like - hangman / tic tac toe/ anagram. its a kool script my hub users love it!

Psycho_Chihuahua

1. because i dont need all the other stuff in there

2. and more important - My Users are German Speaking!
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

stageline

\scripts\trivia.lua:642: unexpected symbol near `%'

What  problem?  :(

Psycho_Chihuahua

QuoteOriginally posted by stageline
\scripts\trivia.lua:642: unexpected symbol near `%'

What  problem?  :(

because this trivia was for LUA 4 not Lua 5...just tried to convert and am still looking for a working version
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

lynyrd

hope it's going to be an lua 5 release of this bot soon
people in my hub nagging everyday since i upgraded the hub :)

Psycho_Chihuahua

Ok i've tried again to convert but only end up with this at the moment
Syntax ...ptx\scripts\trivia.lua5.lua:102: attempt to call global `setlocale' (a nil value)


This is Line 102
 setlocale("swe")

what would i have to change that to? ger, ch also doesn't work (being a swiss hub)
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

Madman

os.setlocale("swe")

just add os.
We suffer in silence, we lurk in the shadows, we kill in the night
Site currently down, ETA of returning online is 2099 ;p

Psycho_Chihuahua

#10
thanks - now i have no errors anymore....and the bot doesn't do anything  ;(  

Perhaps someone could have a look at this and figure out whats wrong


Triv4lua5 No Error No Function :(

Please help, my users are bitching for it  :D
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

?Tr??T_????

ca u make u r lnk work i need ths script

Psycho_Chihuahua

PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

?Tr??T_????

thnx i was looking for one like this no errors

?Tr??T_????

hello i have a prob with triva questions...
i have questions but the layout is different so plz can u change it to this?

00 Movies: Alicia Silverstone - Starred In This Movie: *love's labour's lost
00 Movies: Anthony Hopkins - Starred In This Movie: *mission: impossible 2
00 Movies: Bruce Willis - Starred In This Movie: *the whole nine yards
00 Movies: Demi Moore - Starred In This Movie: *passion of mind
00 Movies: Drew Barrymore - Starred In This Movie: *titan a.e
00 Movies: George Clooney - Starred In This Movie: *the perfect storm
00 Movies: Hugh Grant - Starred In This Movie: *small time crooks
00 Movies: Jamie Lee Curtis - Starred In This Movie: *drowning mona
00 Movies: Julia Roberts - Starred In This Movie: *erin brockovich
00 Movies: Meg Ryan - Starred In This Movie: *hanging up
00 Movies: Neve Campbell - Starred In This Movie: *scream 3
00 Movies: Sally Field - Starred In This Movie: *where the heart is
00 Movies: Sandra Bullock - Starred In This Movie: *28 days
00 Movies: Sandra Bullock - Starred In This Movie: *gun shy
00 Movies: This Movie was Released on April 14 28 ---------- *days
00 Movies: This Movie was Released on April 14 American ---------- *psycho
00 Movies: This Movie was Released on April 14 Joe Gould's ---------- *secret
00 Movies: This Movie was Released on April 14 Keeping The ---------- *faith
00 Movies: This Movie was Released on April 14 Where The ---------- *money is
00 Movies: This Movie was Released on April 21 ---------- *gossip
00 Movies: This Movie was Released on April 21 ---------- *u-571
00 Movies: This Movie was Released on April 21 East Is ---------- *east
00 Movies: This Movie was Released on April 21 Love & ---------- *basketball
00 Movies: This Movie was Released on April 28 ---------- *committed
00 Movies: This Movie was Released on April 28 ---------- *frequency
00 Movies: This Movie was Released on April 28 ---------- *time code
00 Movies: This Movie was Released on April 28 The Big ---------- *kahuna
00 Movies: This Movie was Released on April 28 The Flintstones In Viva ---------- *rock vegas
00 Movies: This Movie was Released on April 28 The Virgin ---------- *suicides
00 Movies: This Movie was Released on April 28 Where The ---------- *heart is
00 Movies: This Movie was Released on April 5 Black And ---------- *white
00 Movies: This Movie was Released on April 7 Ready To ---------- *rumble
00 Movies: This Movie was Released on April 7 Return ---------- *to me
00 Movies: This Movie was Released on April 7 Rules of ---------- *engagement
00 Movies: This Movie was Released on August 11 Autumn in ---------- *new york
00 Movies: This Movie was Released on August 11 Bless the ---------- *child
00 Movies: This Movie was Released on August 11 Sunset ---------- *strip
00 Movies: This Movie was Released on August 11 The ---------- *replacements
00 Movies: This Movie was Released on August 18 Godzilla ---------- *2000
00 Movies: This Movie was Released on August 18 Steal ---------- *this movie!
00 Movies: This Movie was Released on August 18 The ---------- *cell
00 Movies: This Movie was Released on August 18 The Original Kings of ---------- *comedy
00 Movies: This Movie was Released on August 25 Bring ---------- *it on
00 Movies: This Movie was Released on August 25 Love & ---------- *sex
00 Movies: This Movie was Released on August 25 The ---------- *crew
00 Movies: This Movie was Released on August 25 The Art of ---------- *war
00 Movies: This Movie was Released on August 4 Coyote ---------- *ugly
00 Movies: This Movie was Released on August 4 Hollow ---------- *man
00 Movies: This Movie was Released on October 27 Book of Shadows: ---------- *blair witch 2
00 Movies: This Movie was Released on October 6 ---------- *girlfight
00 Movies: This Movie was Released on October 6 ---------- *tigerland
00 Movies: This Movie was Released on October 6 Digimon: ---------- *the movie

?Tr??T_????

waiting for reply

?Tr??T_????

can someone help plz????

SMF spam blocked by CleanTalk