Facebook
From Danilo#2400, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 176
  1. -- Gerenciador de sorteios
  2. -- Escrito para a comun
  3.  
  4. adm = "Danilo"
  5. nome = "Nome do sorteio aqui"
  6. mapa = [[<C><P Ca=""/><Z><S><S H="40" P="0,0,0.3,0.2,0,0,0,0" L="800" X="399" N="" Y="380" T="0" /></S><D /><O /></Z></C>]]
  7.  
  8. participante = {}
  9. inicio = false
  10. fim = false
  11. qtd = 0
  12. fast = 0
  13.  
  14. function eventTextAreaCallback(id, p, cmd)
  15.         if cmd == "entrada" then
  16.                 ui.addTextArea(0, "<p align='center'>Participando", p, 200, 370, 400, 20, 1, 0x00ff00, 0.8,false)
  17.                 entrada(p, #participante + 1)
  18.         elseif cmd == "inicio" then
  19.                 ui.addPopup(0, 2, "<p align='center'>Quantidade de sorteados", p, 300, 200, 200, false)
  20.         elseif cmd == "novo" then
  21.                 novo()
  22.         end
  23. end
  24.  
  25. function eventNewPlayer(p)
  26.         if not inicio and not fim then
  27.                 ui.addTextArea(0, "<p align='center'><a href='event:entrada'>Clique para participar do sorteio!", p, 200, 370, 400, 20, 1, 0xffff00, 0.8, false)
  28.                 ui.addTextArea(-3, "<p align='center'><font size='30px'>"..nome, p, 5, 40, 795, 40, 1, 1, 0.8, false)
  29.         end
  30. end
  31.  
  32. function eventPopupAnswer(id, p, cmd)
  33.         if tonumber(cmd, 10) then
  34.                 if tonumber(cmd, 10) >= 1 and tonumber(cmd, 10) <= #participante then
  35.                         ui.removeTextArea(0, nil)
  36.                         ui.removeTextArea(-1, nil)
  37.                         qtd = tonumber(cmd, 10)
  38.                         fast = math.random(5,15)
  39.                         inicio = true
  40.                 end
  41.         end
  42. end
  43.  
  44. function participando(p)
  45.         for i, v in pairs(participante) do
  46.                 if v == p then
  47.                         return true
  48.                 end
  49.         end
  50.         return false
  51. end
  52.  
  53. function entrada(p, num)
  54.         if not participando(p) then
  55.                 participante[num] = p
  56.                 ui.addTextArea(num, "<p align='center'>" .. p, nil, ((num-1)%8)*100+5, math.floor((num-1)/8)*30+100, 90, 20, 1, 1, 0.8, false)
  57.         end
  58. end
  59.  
  60. function novo()
  61.         for i=1, #participante do
  62.                 ui.removeTextArea(i, nil)
  63.                 table.remove(participante, 1)
  64.         end
  65.         ui.addTextArea(0, "<p align='center'><a href='event:entrada'>Clique para participar do sorteio!", nil, 200, 370, 400, 20, 1, 0xffff00, 0.8, false)
  66.         ui.addTextArea(-1, "<p align='center'><a href='event:inicio'>Iniciar", adm, 650, 370, 100, 20, 1, 0x0000ff, 0.8,false)
  67.         tfm.exec.removePhysicObject(0)
  68.         fim = false
  69. end
  70.  
  71. function sorteio(tipo)
  72.         local lista = {}
  73.         local sorteado = 0
  74.         for i=1, #participante do
  75.                 lista[i] = i
  76.         end
  77.         local rand = 0
  78.         for i, v in pairs(participante) do
  79.                 ui.addTextArea(i, "<p align='center'>" .. v, nil, ((i-1)%8)*100+5, math.floor((i-1)/8)*30+100, 90, 20, 1, 1, 0.8, false)
  80.         end
  81.         for i=1, qtd do
  82.                 sorteado = math.random(#lista)
  83.                 rand = lista[sorteado]
  84.                 table.remove(lista, sorteado)
  85.                 if tipo == "quase" then
  86.                         ui.addTextArea(rand, "<p align='center'><font color='#ffff00'>" .. participante[rand], nil, ((rand-1)%8)*100+5, math.floor((rand-1)/8)*30+100, 90, 20, 1, 0xffff00, 0.8, false)
  87.                 elseif tipo == "final" then
  88.                         ui.addTextArea(rand, "<p align='center'><font color='#00ff00'><b>" .. participante[rand], nil, ((rand-1)%8)*100+5, math.floor((rand-1)/8)*30+100, 90, 20, 1, 0x00ff00, 0.8, false)
  89.                 end
  90.         end
  91. end
  92.  
  93. function eventLoop()
  94.         if inicio then
  95.                 if fast > 0 then
  96.                         sorteio("quase")
  97.                         fast = fast - 1
  98.                 else
  99.                         sorteio("final")
  100.                         inicio = false
  101.                         fim = true
  102.                         ui.addTextArea(-1, "<p align='center'><a href='event:novo'>Novo sorteio", adm, 650, 370, 100, 20, 1, 0x0000ff, 0.8,false)
  103.                 end
  104.         end
  105.         if fim then
  106.                 tfm.exec.addPhysicObject(0, 400, 200, {type=12,color=math.random(0x666666, 0x777777), miceCollision=false, width=800, height=400})
  107.                 for i=1, 50 do
  108.                         tfm.exec.displayParticle(math.random(21,24), math.random(1,800), 20, math.random(-20,20)/100, math.random(10,1000)/100, 0, 0, nil)
  109.                 end
  110.         end
  111. end
  112.  
  113. tfm.exec.disableAutoShaman(true)
  114. tfm.exec.disableAutoNewGame(true)
  115. tfm.exec.newGame(mapa)
  116. ui.addTextArea(0, "<p align='center'><a href='event:entrada'>Clique para participar do sorteio!", nil, 200, 370, 400, 20, 1, 0xffff00, 0.8, false)
  117. ui.addTextArea(-1, "<p align='center'><a href='event:inicio'>Iniciar", adm, 650, 370, 100, 20, 1, 0x0000ff, 0.8,false)
  118. ui.addTextArea(-3, "<p align='center'><font size='30px'>"..nome, nil, 5, 40, 795, 40, 1, 1, 0.8, false)
  119. tfm.exec.setUIMapName("Script de sorteios")