include('TBQuestions.lua') local TB = {} TB.QTimeLimit = 25 function TB.Init(ply, txt, toall) if string.lower(txt) == "/tb start" then if !ply:IsAdmin() then return end TB.QuestCount = 1 TB.CurQuest = "" TB.CurAns = "" TB.PrevQuests = {} for k,v in pairs(player.GetAll()) do v:ChatPrint("[TriviaBot]: Trivia Bot initialized! First question coming up in 10 seconds!") v:ChatPrint("[TriviaBot]: Get ready!") end timer.Create("TriviaTimer", 10, 1, TB.Generate) end end hook.Add("PlayerSay", "StartTriviaBot", TB.Init) function TB.Generate() local rand = math.random(1, #TB_QUESTIONS) if table.HasValue(TB.PrevQuests, rand) then rand = math.random(1, #TB_QUESTIONS) end TB.CurQuest = TB_QUESTIONS[rand] TB.CurAns = TB_ANSWER1[rand] for k,v in pairs(player.GetAll()) do v:ChatPrint("[TriviaBot]: Question " .. TB.QuestCount) v:ChatPrint("[TriviaBot]: " .. TB.CurQuest) end timer.Create("TBQuestionTimer", TB.QTimeLimit, 1, TB.NextQuestion) end function TB.NextQuestion() TB.QuestCount = TB.QuestCount + 1 for k,v in pairs(player.GetAll()) do v:ChatPrint("[TriviaBot]: No correct answer was given.") v:ChatPrint("[TriviaBot]: The correct answer is: " .. TB.CurAns) end timer.Simple(5, function() for k,v in pairs(player.GetAll()) do v:ChatPrint("[TriviaBot]: Next question coming up in " .. TB.QTimeLimit .. " seconds.") end timer.Create("TBQuestionTimer", TB.QTimeLimit, 1, TB.Generate) end ) end