Advertisement
Guest User

Conjuration Snake - Transformice Lua

a guest
Sep 6th, 2014
3,179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.76 KB | None | 0 0
  1. ---------------------------------
  2. -- SNAKE - escrito por Ninguem --
  3. ---------------------------------
  4. -- Data: 11/06/2014 -------------
  5.  
  6. -- Identificaçao de TextAreas
  7. idStatus = 1
  8. idConj = 2
  9.  
  10. -- Variáveis de Teclado
  11. kUp = 38
  12. kDown = 40
  13. kLeft = 37
  14. kRight = 39
  15. kW = 87
  16. kA = 65
  17. kS = 83
  18. kD = 68
  19. kSpace = 32
  20. k0 = 48
  21. k9 = 57
  22.  
  23. -- Variáveis Globais de configuração
  24. lado = "direita" -- para onde a conjuração irá
  25. modo = "deslizar" -- como a conjuração irá
  26. passo = 1 -- quantos espaços por vez a conjuração se moverá
  27. x = 38 -- posição x da conjuração
  28. xh = 10 * x -- posição x do ponteiro
  29. y = 38 -- posição y da conjuração
  30. yh = 10 * x -- posição y do ponteiro
  31. ratos = 1 -- quantos ratos no mapa
  32. shaman = "" -- quem controla
  33.  
  34. -- Procedimentos ao start do script
  35. tfm.exec.disableAutoTimeLeft(true)
  36. tfm.exec.disableAutoShaman(true)
  37. tfm.exec.disableAutoNewGame(true)
  38. ui.addTextArea(idStatus, "Direção : " .. lado .. " | Passo: " .. tostring(passo) .. " | Modo: " .. modo, nil, 5, 25, 300, 20, 0x0, 0x0, 0.0, true)
  39. tfm.exec.newGame("<C></C>")
  40.  
  41. -- Procedimentos ao início de mapa
  42. function eventNewGame()
  43.     lado = "direita"
  44.     modo = "deslizar"
  45.     x = 38
  46.     y = 38
  47.     passo = 1
  48.     ratos = 0
  49.     maior = -1
  50.    
  51.     -- Laço para ver quem tem mais pontos
  52.     for _, v in pairs(tfm.get.room.playerList) do
  53.         if(v.score > maior) then
  54.             maior = v.score
  55.             shaman = v.playerName
  56.         end
  57.         ratos = ratos + 1
  58.     end
  59.    
  60.     bindPlayer(shaman, true)
  61.     tfm.exec.setUIShamanName(shaman)
  62.     tfm.exec.setUIMapName("Snake")
  63.     tfm.exec.killPlayer(shaman)
  64.     tfm.exec.setPlayerScore(shaman, 0, false)
  65. end
  66.  
  67. -- Procedimentos de teclado
  68. function eventKeyboard(player, key, down, x, y)
  69.     if(key == kUp or key == kW) then
  70.         lado = "cima"
  71.     elseif(key == kDown or key == kS) then
  72.         lado = "baixo"
  73.     elseif(key == kLeft or key == kA) then
  74.         lado = "esquerda"
  75.     elseif(key == kRight or key == kD) then
  76.         lado = "direita"
  77.     elseif(key == kSpace) then
  78.         if(modo == "saltar") then
  79.             modo = "deslizar"
  80.         elseif(modo == "deslizar") then
  81.             modo = "saltar"
  82.         end
  83.     else
  84.         passo = key - 48
  85.     end
  86. end
  87.  
  88. -- Procedimentos de mouse
  89. function eventMouse(player, xpos, ypos)
  90.     x = math.floor(xpos/10)
  91.     y = math.floor(ypos/10)
  92. end
  93.  
  94. -- Procedimentos que ocorrem a cada instante
  95. function eventLoop(tempoAtual, tempoRestante)
  96.     todosMortos = false
  97.     if(ratos > 1) then
  98.         todosMortos = true
  99.         for _, v in pairs(tfm.get.room.playerList) do
  100.             if(not v.isDead and v.playerName ~= shaman) then
  101.                 tfm.exec.setPlayerScore(v.playerName, 1, true) -- incrementa 1 ponto para todos vivos
  102.                 todosMortos = false
  103.             end
  104.         end
  105.     end
  106.     if(tempoRestante < 0 or todosMortos) then
  107.         bindPlayer(shaman, false)
  108.         tfm.exec.newGame("<C></C>")
  109.     end
  110.     if(modo == "saltar") then
  111.         if(lado == "cima") then
  112.             y = y - passo
  113.         elseif(lado == "baixo") then
  114.             y = y + passo
  115.         elseif(lado == "esquerda") then
  116.             x = x - passo
  117.         elseif(lado == "direita") then
  118.             x = x + passo
  119.         end
  120.         y = arrumaY(y)
  121.         x = arrumaX(x)
  122.         tfm.exec.addConjuration(x, y, 10000)
  123.     elseif(modo == "deslizar") then
  124.         if(lado == "cima") then
  125.             for i = 1, passo do
  126.                 y = y - 1
  127.                 y = arrumaY(y)
  128.                 tfm.exec.addConjuration(x, y, 10000)
  129.             end
  130.         elseif(lado == "baixo") then
  131.             for i = 1, passo do
  132.                 y = y + 1
  133.                 y = arrumaY(y)
  134.                 tfm.exec.addConjuration(x, y, 10000)
  135.             end
  136.         elseif(lado == "esquerda") then
  137.             for i = 1, passo do
  138.                 x = x - 1
  139.                 x = arrumaX(x)
  140.                 tfm.exec.addConjuration(x, y, 10000)
  141.             end
  142.         elseif(lado == "direita") then
  143.             for i = 1, passo do
  144.                 x = x + 1
  145.                 x = arrumaX(x)
  146.                 tfm.exec.addConjuration(x, y, 10000)
  147.             end
  148.         end
  149.     end
  150.     xh = 10 * x - 4
  151.     yh = 10 * y - 3
  152.     ui.addTextArea(idConj, "<p align='center'>x</p>", nil, xh, yh, 20, 20, 0x0, 0x0, 0.0, true)
  153.     ui.updateTextArea(idStatus, "Direção : " .. lado .. " | Passo: " .. tostring(passo) .. " | Modo: " .. modo, nil)
  154. end
  155.  
  156. -- Corrige a posição do x para dentro do mapa
  157. function arrumaX(v)
  158.     if(v < 0) then
  159.         v = 0
  160.     elseif(v > 79) then
  161.         v = 79
  162.     end
  163.     return(v)
  164. end
  165.  
  166. -- Corrige a posição do y para dentro do mapa
  167. function arrumaY(v)
  168.     if(v < 5) then
  169.         v = 5
  170.     elseif(v > 39) then
  171.         v = 39
  172.     end
  173.     return(v)
  174. end
  175.  
  176. -- Define se o jogador vai ou não ter permissão dos comandos
  177. function bindPlayer(player, on)
  178.     tfm.exec.bindKeyboard(player, kUp, true, on)
  179.     tfm.exec.bindKeyboard(player, kDown, true, on)
  180.     tfm.exec.bindKeyboard(player, kLeft, true, on)
  181.     tfm.exec.bindKeyboard(player, kRight, true, on)
  182.     tfm.exec.bindKeyboard(player, kW, true, on)
  183.     tfm.exec.bindKeyboard(player, kA, true, on)
  184.     tfm.exec.bindKeyboard(player, kS, true, on)
  185.     tfm.exec.bindKeyboard(player, kD, true, on)
  186.     tfm.exec.bindKeyboard(player, kSpace, true, on)
  187.     for i = k0, k9 do
  188.         tfm.exec.bindKeyboard(player, i, true, on)
  189.     end
  190.     system.bindMouse(player, on)
  191. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement