Advertisement
Dudugz-Contistente

Untitled

Oct 2nd, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.42 KB | None | 0 0
  1.  
  2.  
  3. _mapa = [[<C><P mgoc="-1" /><Z><S><S P="0,0,0.3,0.2,0,0,0,0" L="800" o="%s" X="400" c="4" Y="200" T="12" H="400" /><S L="800" X="400" H="50" Y="380" T="6" P="0,0,0.3,0.2,0,0,0,0" /></S><D><DC Y="338" X="696" /><DS Y="340" X="108" /><P P="1,0" C="fdfdfd" Y="85" T="90" X="692" /></D><O /></Z></C>]]
  4. _cores = {"B9B9B9", "E87676", "E8DE76", "87E876", "76B0E8", "AF76E8", "E876E3", "E8B376"}
  5. _palavras = {"CASA", "CARRO", "BANANA", "CAIXA", "VENTILADOR", "MOUSE", "DINHEIRO", "CORPO", "PAREDE", "BOTA", "MEIA", "TOMADA", "CARTA", "MESA", "CADEIRA", "RUA", "ARVORE", "QUADRADO", "CIRCULO", "ESPELHO", "CAMA", "ARMARIO", "ROUPA", "PORTA", "JANELA",
  6. "DADO", "ESCADA", "FACA" , "JANELA" , "OCULOS" , "PENTE" , "XICARA" , "TECLADO" , "TESOURA" , "ESCOVA" , "GELADEIRA", "MONITOR", "FOGAO", "SACOLA", "BALAO", "GARRAFA", "CELULAR", "COPO", "ESPADA", "COLHER", "ROSA", "PREDIO", "AVIAO", "FOGUETE", "SOL", "LUA", "BURACO", "VULCAO", "ESTRELA", "PLANETA", "GATO", "CACHORRO", "PEIXE", "JARRA", "AGUA", "PANELA", "LAPIS", "ONIBUS", "RATO", "FOGO", "LIVRO", "TELEVISAO", "FIO", "RELOGIO", "QUEIJO", "PAPEL", "FAMILIA", "BONE", "CHAPEU", "SAPATO", "CACHIMBO", "ORELHA", "BOCA", "DENTE", "NARIZ", "VESTIDO", "BOLSA", "ARANHA", "SOFA", "CANETA", "CANECA", "BULE", "CHALEIRA", "MUNDO", "PERNA", "LUVA", "CHAVE", "CARIMBO", "DIAMANTE", "RODA", "PNEU", "SAIA", "MONTANHA", "PASSARO", "MORANGO", "ABACAXI", "UVA", "MELANCIA", "BOLO", "BALA", "PISCINA", "BARCO", "NAVIO", "PRAIA", "CAPACETE", "CAFE", "ASPIRADOR", "EXTINTOR", "RIO", "TORNEIRA", "CORTINA", "SORVETE", "PIRULITO", "PICOLE", "GELO", "BATERIA", "MUSICA", "CORDA", "ESCADA", "BACIA", "ABELHA", "FLOR", "CHUVA", "RAQUETE", "DESENHO", "BANDEIRA", "BOMBA", "BICICLETA", "MOTOCICLETA", "PIRAMIDE", "ARCO", "REVOLVER", "TOCA", "ONDA", "XADREZ", "CAVALO", "CAMELO", "RINOCERONTE", "BOIA", "ANZOL", "VARA", "PORCO", "CERCA", "BUMERANGUE", "CD", "FITA", "RAIO", "IMA", "TELA", "GRADE", "CALCULADORA", "COMPUTADOR", "NOTEBOOK", "GALINHA", "MICROFONE", "PIAO", "PIPA", "FLECHA", "INTERNET", "BALEIA", "TUBARAO", "TREM", "HELICOPTERO", "MARTELO", "SERROTE", "MARRETA", "ALICATE", "BANCO", "PLACA", "ESPINHO", "FURACAO", "CARRETA", "ESPONJA", "CHOCOLATE", "OVO", "SAPO", "PINGUIM", "URSO", "PEDRA", "BARRACA", "OLHO", "CARRINHO", "CASACO", "BOTAO", "CUBO", "TRIANGULO", "ESTRADA", "MOINHO", "GUITARRA", "FLAUTA", "PIANO", "BOLHA", "OURO", "PRATA", "TROFEU", "PERFUME", "COMIDA", "REGADOR", "REMEDIO", "CASTELO", "TORRE", "ASA", "TREVO", "FERRADURA", "COELHO", "CENOURA", "MASCARA", "DINOSSAURO", "DRAGAO", "CESTA", "FOLHA", "PENA", "BONECO", "KART", "CAMINHONETE", "OLEO", "PORTO", "PONTE", "PRIVADA", "GOTA", "PILHA", "POSTE", "LUZ", "LANTERNA", "ABAJUR", "FUNIL", "CONE", "SKATE", "PRANCHA", "FAROL", "IGREJA", "BANHEIRA", "LEITE", "GAVETA", "PUDIM", "PALITO", "FOSFORO", "LABIRINTO", "QUADRO", "REGUA", "GAIOLA", "CAMERA", "FANTASMA", "MORCEGO", "VAMPIRO", "CACHECOL", "MOLA", "CIGARRO", "ENVELOPE", "COLAR", "TORTA", "FOGUEIRA", "MACACO", "ESPATULA", "CARANGUEIJO", "NAVE", "VASSOURA", "PISO", "DOMINO", "PIZZA", "PASTEL", "RAMPA", "CACHOEIRA", "MORRO", "FERRAMENTA", "REDE", "ENGRENAGEM", "MOCHILA", "CHAVEIRO", "BLOCO", "PINCEL", "COROA", "REI", "RAINHA", "HOTEL", "CEU", "MACARRAO", "PATINETE", "SABONETE", "AMPULHETA", "MONUMENTO", "ESTATUA", "GALHO", "BOI", "BUSSOLA", "NINHO", "COLA", "NEVE", "MADEIRA", "LAVA", "TRAMPOLIM", "NOTA", "FUNDO", "CARTEIRA", "SUCO", "SUBMARINO", "TORPEDO", "VELA", "CAVEIRA", "VENENO", "JAULA", "PATO", "CORRENTE", "TRONCO", "TORRADA", "CELULA", "PODIO", "MONTE", "MICROONDAS", "BOLICHE", "ESPETO", "COBRA", "MINHOCA", "CARTOLA", "BINGO", "TANQUE", "LIQUIDIFICADOR", "BATEDEIRA", "CHAMINE", "PETECA", "ILHA", "LIXEIRA", "BINOCULO", "MALA", "ANTENA", "ALMOFADA", "METEORO", "MAPA", "FURADEIRA", "CRUZ", "FOICE", "MACHADO", "PICARETA", "BIGODE", "CIDADE", "ABOBORA", "BRUXA", "ZUMBI", "LEQUE", "TERRA", "AREIA", "VENTO", "TORNADO", "FURACAO", "ANJO", "CATAPULTA", "ANCORA", "ANEL", "SORRISO", "DISCO", "COGUMELO", "COFRE", "BASQUETE", "GIRAFA", "BARBA", "LAREIRA", "GUILHOTINA", "LAPIDE", "TUMULO", "CEMITERIO", "TUNEL", "TELHADO", "ARMADILHA", "ASTERISCO"
  7. }
  8. _acertou = {}
  9. _palavraAtual = ""
  10. _score = 10
  11. _pode = false
  12. _dicas = 0
  13. _palavraDica = ""
  14. _acertaram = false
  15. _shaman = ""
  16. _mostraDica = false
  17.  
  18. function eventChatMessage(name,message)
  19. if tfm.get.room.playerList[name].isShaman then
  20. if message == '.'.._palavraAtual then
  21. newWord();
  22. else
  23. newWord();
  24. end
  25. end
  26. end
  27.  
  28. function newWord()
  29. local palavra2 = _palavraAtual:lower()
  30. if message == _palavraAtual or message == '!'.._palavraAtual or message == palavra2 or message == '!'..palavra2 or message == '!' then
  31. _palavraAtual = _palavras[math.random(#_palavras)]
  32. local palavra = _palavraAtual:lower()
  33. system.disableChatCommandDisplay(_palavraAtual, true)
  34. system.disableChatCommandDisplay(palavra, true)
  35. for i, v in pairs(tfm.get.room.playerList) do
  36. if v.isShaman then
  37. tfm.exec.chatMessage("Sua palavra é: <rose>".._palavraAtual, i)
  38. tfm.exec.setPlayerScore(i, 0, false)
  39. ui.addTextArea(0, "<p align='center'><font size='20px'><b>Sua palavra é: <rose>".._palavraAtual, i, 0, 365, 800, nil, 0, 0, 0, false)
  40. _shaman = i
  41. else
  42. ui.removeTextArea(0, i)
  43. ui.removeTextArea(1, i)
  44. tfm.exec.chatMessage("<vp>Adivinhe o que o Shaman irá construir!", i)
  45. end
  46. end
  47. end
  48. end
  49.  
  50. function exibeBotaoDica(p)
  51. if _dicas > 0 then
  52. ui.addTextArea(1, "<p align='center'><font size='15px'><a href='event:dica'>Dar dica (".._dicas..")", p, 650, 365, 140, nil, 1, 0xffff00, 0.8, false)
  53. else
  54. ui.addTextArea(1, "<p align='center'><font size='15px'>Dicas esgotadas", p, 650, 365, 140, nil, 1, 0xff0000, 0.8, false)
  55. end
  56. end
  57.  
  58. function eventNewGame()
  59. ui.setMapName("Build a Word")
  60. _pode = true
  61. _mostraDica = false
  62. _acertaram = false
  63. _palavraAtual = _palavras[math.random(#_palavras)]
  64. local palavra = _palavraAtual:lower()
  65. system.disableChatCommandDisplay(_palavraAtual, true)
  66. system.disableChatCommandDisplay(palavra, true)
  67. _dicas = math.ceil(#_palavraAtual/2)
  68. _palavraDica = string.rep("_", #_palavraAtual)
  69. _acertou = {}
  70. _score = 10
  71. for i, v in pairs(tfm.get.room.playerList) do
  72. if v.isShaman then
  73. tfm.exec.chatMessage("Sua palavra é: <rose>".._palavraAtual, i)
  74. tfm.exec.setPlayerScore(i, 0, false)
  75. ui.addTextArea(0, "<p align='center'><font size='20px'><b>Sua palavra é: <rose>".._palavraAtual, i, 0, 365, 800, nil, 0, 0, 0, false)
  76. _shaman = i
  77. else
  78. ui.removeTextArea(0, i)
  79. ui.removeTextArea(1, i)
  80. tfm.exec.chatMessage("<vp>Adivinhe o que o Shaman irá construir!", i)
  81. end
  82. end
  83. end
  84.  
  85. function preencheDica()
  86. local pool = {}
  87. for i=1, #_palavraDica do
  88. if _palavraDica:sub(i, i) == "_" then
  89. table.insert(pool, i)
  90. end
  91. end
  92. local rand = pool[math.random(#pool)]
  93. local novaPalavraDica = ""
  94. for i=1, #_palavraDica do
  95. if i == rand then
  96. novaPalavraDica = novaPalavraDica .. _palavraAtual:sub(i,i)
  97. else
  98. novaPalavraDica = novaPalavraDica .. _palavraDica:sub(i,i)
  99. end
  100. end
  101. _palavraDica = novaPalavraDica
  102. end
  103.  
  104. function divide(str, sep)
  105. local palavra = str:sub(1,1)
  106. for i=2, #str do
  107. palavra = palavra .. sep .. str:sub(i,i)
  108. end
  109. return palavra
  110. end
  111.  
  112. function eventTextAreaCallback(id, p, cmd)
  113. print(cmd)
  114. if cmd == "dica" then
  115. if _dicas ~= math.ceil(#_palavraAtual/2) and _dicas > 0 then
  116. preencheDica()
  117. end
  118. _dicas = _dicas - 1
  119. exibeBotaoDica(p)
  120. ui.addTextArea(0, "<p align='center'><font size='20px'><b>Dica: <j>"..divide(_palavraDica, " "), nil, 150, 365, 500, nil, 0, 0, 0, false)
  121. elseif cmd == "help" then
  122. local txt = "O objetivo aqui é adivinhar a palavra que o Shaman está construindo. Para dar uma resposta, basta falar a palavra no chat. Quanto mais respostas certas, mais rápido você será o Shaman.\n\nQuando você for o Shaman, você deve desenhar a palavra dada usando seus objetos de shaman, porém não poderá falar no chat público, ou perderá sua vez."
  123. ui.addPopup(0, 0, txt, p, 200, 100, 400, true)
  124. elseif cmd == "suggest" then
  125. ui.addPopup(0, 0, "Em breve", p, 200, 100, 400, true)
  126. end
  127. end
  128.  
  129. function removeAcento(str)
  130. str = str:gsub("[ÁÀÃÂáàãâ]", "A")
  131. str = str:gsub("[ÉÈÊéèê]", "E")
  132. str = str:gsub("[ÌÍÎíìî]", "I")
  133. str = str:gsub("[ÒÓÕÔóòõô]", "O")
  134. str = str:gsub("[ÚÙÛúùû]", "U")
  135. str = str:gsub("[Çç]", "C")
  136. return str
  137. end
  138.  
  139. function eventChatCommand(p, msg)
  140. msg = removeAcento(msg:upper())
  141. if _pode then
  142. if tfm.get.room.playerList[p].isShaman and not _acertaram then
  143. tfm.exec.chatMessage("<r>Round anulado. </r>Era <vp>".._palavraAtual)
  144. _pode = false
  145. system.newTimer(function()
  146. tfm.exec.newGame(string.format(_mapa, _cores[math.random(#_cores)]))
  147. end, 3000, false)
  148. elseif not _acertou[p] then
  149. if msg:upper() == _palavraAtual then
  150. _acertou[p] = true
  151. _acertaram = true
  152. _dicas = 0
  153. ui.removeTextArea(1)
  154. tfm.exec.respawnPlayer(p)
  155. tfm.exec.giveCheese(p)
  156. tfm.exec.playerVictory(p)
  157. tfm.exec.chatMessage("<vp>+".._score.." pontos", p)
  158. ui.addTextArea(0, "<p align='center'><font size='20px'><b>Você acertou <vp>".._palavraAtual, p, 0, 365, 800, nil, 0, 0, 0, false)
  159. if _score == 10 then
  160. tfm.exec.setGameTime(20)
  161. end
  162. tfm.exec.setPlayerScore(p, _score, true)
  163. _score = _score <= 1 and 1 or _score-1
  164. else
  165. local perto = false
  166. for i=1, #_palavraAtual - 3 do
  167. if msg:upper():find(_palavraAtual:sub(i,i+3)) then
  168. perto = true
  169. end
  170. end
  171. if msg:upper():find(_palavraAtual) then
  172. perto = true
  173. end
  174. if perto then
  175. tfm.exec.chatMessage("<j>Está perto!", p)
  176. end
  177. end
  178. end
  179. end
  180. end
  181.  
  182. function eventLoop(current, remaining)
  183. if remaining < 0 and _pode then
  184. tfm.exec.chatMessage("A palavra era: <vp>".._palavraAtual)
  185. tfm.exec.newGame(string.format(_mapa, _cores[math.random(#_cores)]))
  186. end
  187. if not _mostraDica and current > 30000 and not _acertaram then
  188. _mostraDica = true
  189. exibeBotaoDica(_shaman)
  190. end
  191. end
  192.  
  193. function eventNewPlayer(p)
  194. ui.addTextArea(10, "<p align='center'><a href='event:help'>Ajuda", p, 5, 20, 50, nil, nil, nil, 1, true)
  195. ui.addTextArea(11, "<p align='center'><a href='event:suggest'>Sugira uma palavra", p, 65, 20, 150, nil, nil, nil, 1, true)
  196. end
  197.  
  198. for i, v in pairs(tfm.get.room.playerList) do
  199. eventNewPlayer(i)
  200. end
  201.  
  202. tfm.exec.disableAfkDeath(true)
  203. tfm.exec.disableAutoNewGame(true)
  204. tfm.exec.disableAutoScore(true)
  205. tfm.exec.newGame(string.format(_mapa, _cores[math.random(#_cores)]))
  206. tfm.exec.chatMessage(#_palavras.." palavras na lista")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement