Bolodefchoco_LUAXML

[Game] Quiz

Feb 28th, 2016
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.70 KB | None | 0 0
  1. --Creator: Bolodefchoco
  2. --Made in: 28/02/2016
  3. --Last update: 26/05/2016
  4. --[[ Notes:
  5.     Does:
  6.         Cria um quiz que calcula as respostas certas e erradas do jogador.
  7.     Commands:
  8.         !
  9.             start --> Iniciar um quiz
  10.                 Player --> Jogador que fará o quiz
  11.             results --> Apenas possível para aqueles que já terminaram o quiz (Aparece uma mensagem avisando)
  12.                 Player --> Ver os resultados deste Jogador
  13.     Adding new questions:
  14.         Para adicionar uma nova pergunta você precisará ir na tabela T
  15.             Tipos de perguntas:
  16.                 [Id Numérico] = {"Pergunta",tipo de pergunta,resposta(s)}
  17.                 Id Numérico --> Serve para auxiliar você. Exemplo: [1]; [2]; [3]
  18.                 Pergunta --> Aqui vai a pergunta, deve ser string
  19.                 Tipos de pergunta:
  20.                     1 --> Pergunta de Sim/Não (Yes/No)
  21.                     2 --> Pergunta para digitar
  22.                 Respostas:
  23.                     Caso o tipo seja 1
  24.                         0 --> Simboliza que a resposta é Yes
  25.                         1 --> Simboliza que a resposta é No
  26.                         2 --> Simboliza que Yes e No são corretas (Ou seja, sempre valerá como um acerto)
  27.                     Caso o tipo seja 2
  28.                         A(s) resposta(s) deverá(ão) estar dentro de uma tabela.
  29.                             {"1","2","3" ...}
  30.                         Respostas não verificam acentos ou letras maiúsculas/minúsculas.
  31. ]]--
  32.  
  33. adm = "Bolodefchoco" --< Coloque seu nome para ser admin
  34.  
  35. T = {
  36.     [1] = {"O sol é uma estrela?",1,0},
  37.     [2] = {"Qual o maior planeta?",2,{"Júpiter"}},
  38.     [3] = {"Qual a cor do cosmos?",2,{"Bege","Café com leite"}},
  39.     [4] = {"Asteróide é maior que um cometa",1,0},
  40.     [5] = {"Mercúrio é o planeta mais quente, visto que é o primeiro a contar do Sol",1,1},
  41.     [6] = {"Netuno é o planeta mais frio, visto que é o último a contar do Sol",1,1},
  42.     [7] = {"Há vida em outros lugares do universo",1,2},
  43. }
  44.  
  45. string.nick=function(player)
  46.     return player:lower():gsub('%a',string.upper,1)
  47. end
  48.  
  49. nm=function(s)
  50.     local letters = {a = {"á","à","ä","â","ã"},e = {"é","è","ë","ê"},i = {"í","ì","î","ï"},o = {"ó","ò","ö","ô","õ"},u = {"ú","ù","ü","û"}}
  51.     for k,v in next,letters do
  52.         for i = 1,#v do
  53.             s = s:gsub(v[i],tostring(k))
  54.         end
  55.     end
  56.     return s
  57. end
  58.  
  59. mice={}
  60. eventChatCommand=function(n,c)
  61.     if c:sub(1,5):lower()=="start" and adm==n then
  62.         c = string.nick(c:sub(7))
  63.         mice[c]={
  64.             points = 0,
  65.             errors = 0,
  66.             score = "<p align='center'>"
  67.         }
  68.         ui.addPopup(1,T[1][2],T[1][1],c,5,25,250)
  69.     end
  70.     if c:sub(1,7):lower() == "results" and adm==n then
  71.         c = string.nick(c:sub(9))
  72.         if mice[c] then
  73.             ui.addTextArea(0,"<p align='center'><J>"..c.."\n\n<PT>Acertos : "..mice[c].points.."\n<R>Erros : "..mice[c].errors.."\n\n<p align='left'>"..mice[c].score,nil)
  74.         end
  75.     end
  76. end
  77.  
  78. eventPopupAnswer=function(i,n,a)
  79.     local _X = "<PT><font size='16'>✓</font>"
  80.     if a == "yes" or a == "no" then
  81.         a=a:sub(1,1)
  82.         if T[i][3] == (a=='y' and 0 or a=='n' and 1) or T[i][3] == 2 then
  83.             mice[n].points = mice[n].points + 1
  84.         else
  85.             mice[n].errors = mice[n].errors + 1
  86.             _X = "<R><font size='16'>✖</font> <S>("..tostring(a)..")"
  87.         end
  88.     else
  89.         local k = 0
  90.         for i,v in next,T[i][3] do
  91.             if nm(v) == nm(a) then
  92.                 k = 1
  93.                 break
  94.             end
  95.         end
  96.         if k == 0 then
  97.             mice[n].errors = mice[n].errors + 1
  98.             _X = "<R><font size='16'>✖</font> <S>("..tostring(a)..")"
  99.         else
  100.             mice[n].points = mice[n].points + 1
  101.         end
  102.     end
  103.     if i==#T then
  104.         ui.addTextArea(0,"Digite !results "..n.." para ver os resultados.",adm)
  105.     else
  106.         ui.addPopup(i+1,T[i+1][2],T[i+1][1],n,5,25,250)
  107.     end
  108.     mice[n].score = mice[n].score .. "<J>" .. T[i][1]:sub(1,50) .. (#T[i][1]>50 and "..." or "") .. " <BL>- " .. _X .. "\n"
  109. end
Advertisement
Add Comment
Please, Sign In to add comment