Advertisement
Bloonshack

[Tfm] para pierre

Nov 28th, 2022
670
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.40 KB | None | 0 0
  1. --feito para a tribo ASSASSINATION OF THE SURVIVOR
  2. --autoria de Preuclides#3383 rs
  3.  
  4. --optimização
  5. local tfm_exec_addImage = tfm.exec.addImage
  6. local tfm_exec_addShamanObject = tfm.exec.addShamanObject
  7. local math_random = math.random
  8. local table_unpack = table.unpack
  9. local coroutine_resume = coroutine.resume
  10. local coroutine_yield = coroutine.yield
  11.  
  12. --desativando ações automáticas do jogo
  13. do local disable = {'AutoShaman', 'AutoNewGame', 'AutoScore'}
  14.   for i=1, #disable do
  15.     tfm.exec['disable'..disable[i]]()
  16.   end
  17. end
  18.  
  19. --variáveis locais
  20. local jogadoresEmJogo = 0
  21.  
  22. for k in next, tfm.get.room.playerList do
  23.   jogadoresEmJogo = jogadoresEmJogo+1
  24. end
  25.  
  26. tfm.exec.setGameTime(360)
  27.  
  28. --funções importantes
  29. local gradient = function(targetPlayer, force, imagem, camada, opacity) --por sklag#2552, adiciona as imagens em modo degradê
  30.   local y = 0
  31.   local opacity = opacity or 1.16
  32.   local numeroDeImagens = 0
  33.   local imagem = imagem or '17948da3319.png'
  34.   local camada = camada or '!'
  35.   while opacity > force do
  36.     y = y +1
  37.     opacity = opacity-force
  38.     numeroDeImagens = numeroDeImagens+1
  39.     tfm_exec_addImage(imagem, camada..'1', 0, y, targetPlayer, 800, 1, nil, opacity)
  40.     tfm_exec_addImage(imagem, camada..'1', 0, 400-y, targetPlayer, 800, 1, nil, opacity)
  41.   end
  42.   return numeroDeImagens
  43. end
  44.  
  45. local ladoDaCN = function()
  46.     local aleatorio = math_random(2)
  47.     local x = ({20, 800-20})[aleatorio]
  48.     local y = math_random(80, 280)
  49.     local angulo
  50.     if y < 220 then
  51.         angulo = ({math_random(70, 110), math_random(70, 110)-180})[aleatorio]
  52.     else
  53.         angulo = ({math_random(100, 140), math_random(100, 140)-180})[aleatorio]
  54.     end
  55.     local velocidade = ({math_random(10, 20), math_random(10, 20)-30})[aleatorio]
  56.     return {x, y, angulo, velocidade}
  57. end
  58.  
  59. --coroutine do "loop" que gera as CNs
  60. local scriptDoGato = coroutine.create(function() -- ( objectType, xPosition, yPosition, angle, xSpeed, ySpeed, ghost, options )
  61.     while true do
  62.         if jogadoresEmJogo == 0 then
  63.             tfm.exec.newGame('<C><P /><Z><S><S X="401" H="40" Y="380" T="0" P="0,0,0.3,0.2,0,0,0,0" L="800" /></S><D><P X="24" P="0,0" Y="34" T="41" /></D><O /></Z></C>')
  64.             for k in next, tfm.get.room.playerList do
  65.                 jogadoresEmJogo = jogadoresEmJogo+1
  66.             end
  67.         end
  68.         for i=1, math_random(3) do
  69.             tfm_exec_addShamanObject(17, table_unpack(ladoDaCN()))
  70.         end
  71.         coroutine_yield()
  72.     end
  73. end)
  74.  
  75. eventNewPlayer = function()
  76.     jogadoresEmJogo = jogadoresEmJogo+1
  77. end
  78.  
  79. eventPlayerDied  = function()
  80.     jogadoresEmJogo = jogadoresEmJogo-1
  81. end
  82.  
  83. eventPlayerLeft  = function()
  84.     jogadoresEmJogo = jogadoresEmJogo-1
  85. end
  86.  
  87. --loop principal
  88. do
  89.   local aCada1Segundo
  90.   local tempoDeInicio = 0
  91.   eventLoop = function()
  92.      if tempoDeInicio < 10 then
  93.       tempoDeInicio = tempoDeInicio+1
  94.       return
  95.     end
  96.     if aCada1Segundo then
  97.       aCada1Segundo = false
  98.       return
  99.     end
  100.     if coroutine_resume(scriptDoGato) == false then
  101.       gradient(nil, 0.008, '17948d9ecc2.png', ':', 0.98)
  102.       coroutine_resume = function() return true end
  103.     end
  104.     aCada1Segundo = true
  105.   end
  106. end
  107.  
  108.  
  109. --inicio do mapa
  110. do
  111.     tfm.exec.newGame('<C><P /><Z><S><S X="401" H="40" Y="380" T="0" P="0,0,0.3,0.2,0,0,0,0" L="800" /></S><D><P X="24" P="0,0" Y="34" T="41" /></D><O /></Z></C>')
  112.     --tfm.exec.newGame('<C><P /><Z><S><S X="401" H="40" Y="280" T="0" P="0,0,0.3,0.2,0,0,0,0" L="400" /></S><D><P X="24" P="0,0" Y="34" T="41" /></D><O /></Z></C>')
  113. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement