Script
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Script dos Movimentos

Ir para baixo

Script dos Movimentos Empty Script dos Movimentos

Mensagem por Admin Seg Abr 13, 2020 8:44 pm

function main()
admin = "Coloque seu nome aqui"
gameState = 0
moves = {}
arrows = {"←","↑","→","↓"}
countMove = 3
bestScore = 3
timeLeft = 3
playerList = {}
player1 = ""
player2 = ""
activePlayer = ""
tfm.exec.disableAutoNewGame(true)
tfm.exec.disableMortCommand(true)
tfm.exec.disableAfkDeath(true)
tfm.exec.disableAutoShaman(true)
tfm.exec.newGame("@7566395")
end


function eventNewPlayer(name)
playerList[name] = {}
playerList[name]["playing"] = false
playerList[name]["winning"] = false
system.bindKeyboard(name, 0, true)
system.bindKeyboard(name, 1, true)
system.bindKeyboard(name, 2, true)
system.bindKeyboard(name, 3, true)
   if name == admin and gameState == 0 then
       ui.addTextArea(1000, "", admin, 168, 66, 464, 230, 0x3F2B1D, 0x3F2B1D, 1, true)
       ui.addTextArea(1001, "<p align=\"center\"><font size=\"20\">LEMBRE SE</font></p>", admin, 168, 66, 464, 30, 0x3F2B1D, 0x3b2719, 1, true)
       ui.addTextArea(1002, "<p align=\"center\"><BV><font size=\"15\">SELECIONE O MODO DO JOGO</font></p>", admin, 168, 115, 464, 25, 0x3F2B1D, 0x3F2B1D, 1, true)
       ui.addTextArea(1003, "<p align =\"center\"><V><font size=\"15\"><B>1V1</B></font></V></p>\nColete mais pontos do que o seu oponente em uma partida de 1 contra 1, na qual você se revezará no controle do jogo...\n\n<p align=\"center\"><a href=\"event:1versus1\"><B><J><font size=\"13\">Iniciar</font></J></B></a></p>", admin, 187, 160, 200, 120, 0x3F2B1D, 0x3b2719, 1, true)
       ui.addTextArea(1004, "<p align =\"center\"><V><font size=\"15\"><B>ELIMINAÇÃO</B></font></V></p>\nSelecione um mestre do jogo.O último sobrevivente vence a partida...\n\n\n<p align=\"center\"><a href=\"event:elimination\"><B><J><font size=\"13\">Iniciar</font></J></B></a></p>", admin, 413, 160, 200, 120, 0x3F2B1D, 0x3b2719, 1, true)
   end
   if gameState == 1 then
       selectPlayers(playerList)
   elseif gameState == 2 then
       selectMDJ(playerList)
   end
end

function eventTextAreaCallback(id, name, callback)
   if callback == "1versus1" then
       gameState = 1
       closeMenu(admin, 1000,1004)
       selectPlayers(playerList)
   elseif callback == "elimination" then
       gameState = 2
       selectMDJ(playerList)
       closeMenu(admin, 1000,1004)
   elseif string.sub(callback, 0, 3) == "1v1" then
           if player1 == string.sub(callback, 4) then
               player1 = ""
           elseif player2 == string.sub(callback, 4) then
               player2 = ""
           elseif player1 == "" then
               player1 = string.sub(callback, 4)
           elseif player2 == "" then
               player2 = string.sub(callback, 4)
           end
               selectPlayers(playerList)
   elseif string.sub(callback, 0, 3) == "mdj" then
       if activePlayer == string.sub(callback, 4) then
           activePlayer = ""
       elseif activePlayer == "" then
           activePlayer = string.sub(callback, 4)
       end
       selectMDJ(playerList)
   elseif callback == "start1v1" then
           ui.removeTextArea(814, nil)
       if player1 ~= "" and player2 ~= "" then
           gameState = 3
           moves[player1] = {}
           moves[player2] = {}
           activePlayer = player1
           tfm.exec.movePlayer(activePlayer, 400, 180, false)
           for mouse in pairs(playerList) do
               if mouse ~= player1 and mouse ~= player2 then
                   tfm.exec.killPlayer(mouse)
               end
           end
           closeMenu(admin, 0, 3)
           ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmero de Movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
           ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
       else
           selectPlayers(playerList)
       end
   elseif callback == "startElimination" then
               ui.removeTextArea(814, nil)
       if activePlayer ~= "" then
           gameState = 6
           for v in pairs(playerList) do
               moves[v] = {}
               playerList[v].playing = true
           end
           tfm.exec.movePlayer(activePlayer, 400, 180, false)
           closeMenu(admin, 0, 3)
           ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmero de Movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
           ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
       end
   end
end

function closeMenu(name, i1, i2)
   for i=i1,i2 do
       ui.removeTextArea(i, name)
   end
end

function selectPlayers(players)
   if gameState == 1 then
       local player_string_list = ""
           for v in pairs(players) do
               if player1 ~= v and player2 ~= v then
                   player_string_list = player_string_list.."<a href=\"event:1v1"..v.."\">"..v.. "</a> - "
               else
                   player_string_list = player_string_list.."<J><a href=\"event:1v1"..v.."\">"..v.. "</a></J> - "
               end
           end
       ui.addTextArea(0, "", admin, 275, 56, 250, 287, 0x3F2B1D, 0x3F2B1D, 1, true)
       ui.addTextArea(1, "<p align=\"center\"><BV><font size=\"14\" face=\"Verdana\">SELECIONE OS 2 JOGADORES</font></BV></p>", admin, 276, 57, 248, 25, 0x3F2B1D, 0x382315, 1, true)
       ui.addTextArea(2, player_string_list, admin, 276, 97, 248, 207, 0x3F2B1D, 0x3F2B1D, 1, true)
       if player1 ~= "" and player2 ~= "" then
           ui.addTextArea(3, "<a href=\"event:start1v1\"><font size=\"16\" face=\"Verdana\"><p align=\"center\"><J><B>VALIDAR</B></J></p></font></a>", admin, 276, 316, 248, 27, 0x3F2B1D, 0x382315, 1, true)
       end
   end
end

function selectMDJ(players)
   if gameState == 2 then
       local player_string_list = ""
           for v in pairs(players) do
               if activePlayer ~= v then
                   player_string_list = player_string_list.."<a href=\"event:mdj"..v.."\">"..v.. "</a> - "
               else
                   player_string_list = player_string_list.."<J><a href=\"event:mdj"..v.."\">"..v.. "</a></J> - "
               end
           end
       ui.addTextArea(0, "", admin, 275, 56, 250, 287, 0x3F2B1D, 0x3F2B1D, 1, true)
       ui.addTextArea(1, "<p align=\"center\"><BV><font size=\"13\" face=\"Verdana\">SELECIONE O MESTRE DO JOGO</font></BV></p>", admin, 276, 57, 248, 25, 0x3F2B1D, 0x382315, 1, true)
       ui.addTextArea(2, player_string_list, admin, 276, 97, 248, 207, 0x3F2B1D, 0x3F2B1D, 1, true)
       if activePlayer ~= "" then
           ui.addTextArea(3, "<a href=\"event:startElimination\"><font size=\"16\" face=\"Verdana\"><p align=\"center\"><J><B>VALIDAR</B></J></p></font></a>", admin, 276, 316, 248, 27, 0x3F2B1D, 0x382315, 1, true)
       end
   end
end
 
             
function eventKeyboard(name, key, down, x, y)
   if gameState == 3 or gameState == 6 then
       if name == activePlayer then
           if #moves[activePlayer] < countMove then
               table.insert(moves[activePlayer], arrows[key+1])
               ShowArrows(nil, moves[activePlayer])
               if gameState == 3 and #moves[activePlayer] == countMove then
                   gameState = 4
               elseif gameState == 6 and #moves[activePlayer] == countMove then
                   gameState = 7
               end
           end
       end
   elseif gameState == 8 then
           for k,v in pairs(playerList) do
               if k == name and activePlayer ~= name and v.playing == true and v.winning == false then
                   if #moves[name] < #moves[activePlayer] then
                       table.insert(moves[name], arrows[key+1])
                       ShowArrows(name, moves[name])
                       if #moves[name] == #moves[activePlayer] then
                           if moves[name][#moves[name]] == moves[activePlayer][#moves[activePlayer]] then
                               ShowArrows(name, moves[name])
                               playerList[name].winning = true
                           ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#114f11\">Bravo, você é muito forte !</font></p>", name, 225, 37, 350, 30, 0, 0, 1, true)
                           closeMenu(name,800,813)
                           ui.removeTextArea(851, name)
                           else
                               playerList[name].playing = false
                               closeMenu(name,800,813)
                           ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#5f1111\">Você está eliminado !</font></p>", name, 225, 37, 350, 30, 0, 0, 1, true)
                               tfm.exec.killPlayer(name)
                           ui.removeTextArea(851, name)
                           end
                       else
                           for k,v in pairs(moves[activePlayer]) do
                               if k <= #moves[name] then
                                   if v == moves[name][k] then
                                       ShowArrows(name, moves[name])
                                   else
                                       tfm.exec.killPlayer(name)
                                       playerList[name].playing = false
                                   ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#5f1111\">Você está eliminado !</font></p>", name, 225, 37, 350, 30, 0, 0, 1, true)
                                       closeMenu(nil,800,813)
                                   ui.removeTextArea(851, name)
                                   end
                               end
                           end
                       end
                   end
               end
           end
   elseif gameState == 5 then
       if activePlayer ~= name and (name == player1 or name == player2) then
           if #moves[name] < #moves[activePlayer] then
               table.insert(moves[name], arrows[key+1])
               if #moves[name] == #moves[activePlayer] then
                   if moves[name][#moves[name]] == moves[activePlayer][#moves[activePlayer]] then
                       ShowArrows(nil, moves[name])
                       moves[player1] = {}
                       moves[player2] = {}
                       gameState = 3
                       if countMove < 13 then
                           countMove = countMove + 1
                       end
                       closeMenu(nil,800,813)
                       ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmero de movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
                       ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
                   else
                           if activePlayer == player1 then
                               activePlayer = player2
                               tfm.exec.movePlayer(player1, 400,  350, false)
                           elseif activePlayer == player2 then
                               tfm.exec.movePlayer(player2, 400, 350, false)
                               activePlayer = player1
                           end
                           gameState = 3
                           countMove = 3
                           tfm.exec.movePlayer(activePlayer, 400, 180, false)
                           moves[player1] = {}
                           moves[player2] = {}
                           ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmero de movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
                           ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
                           closeMenu(nil,800,813)
                   end
               else
                   for k,v in pairs(moves[activePlayer]) do
                       if k <= #moves[name] then
                           if v == moves[name][k] then
                               ShowArrows(nil, moves[name])
                           else
                               if activePlayer == player1 then
                                   activePlayer = player2
                                   tfm.exec.movePlayer(player1, 400,  350, false)
                               elseif activePlayer == player2 then
                                   tfm.exec.movePlayer(player2, 400, 350, false)
                                   activePlayer = player1
                               end
                               gameState = 3
                               countMove = 3
                               tfm.exec.movePlayer(activePlayer, 400, 180, false)
                               moves[player1] = {}
                               moves[player2] = {}
                               ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmeros de movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
                               ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
                               closeMenu(nil,800,813)
                           end
                       end
                   end
               end
           end
       end
   end
end

function eventLoop(currentTime, TimeRemaining)
   if gameState == 4 or gameState == 7 or gameState == 8 then
       if timeLeft > 0 then
           ui.addTextArea(850, "<p align=\"center\"><B><font color=\"#333\" size=\"30\" face=\"Verdana\">"..math.ceil(timeLeft).."</font></B></p>", nil, 600, 140, 80, 80, 0, 0, 1, true)
           timeLeft = timeLeft - 0.5
       else
           ui.removeTextArea(850, nil)
           if gameState == 4 then
               timeLeft = 3
               gameState = 5
               if activePlayer == player1 then
                   ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..player2.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
               else
                   ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..player1.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
               end
           elseif gameState == 7 then
               timeLeft = 7
               gameState = 8
               ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Refaçam os movimentos !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
           elseif gameState == 8 then
               local countMiceAlive = 0
               for k, v in pairs(playerList) do
                   moves[k] = {}
                   if v.winning == true and k ~= activePlayer then
                       playerList[k].winning = false
                       countMiceAlive = countMiceAlive + 1
                   else
                       if k ~= activePlayer then
                           playerList[k].playing = false
                           ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#5f1111\">Você está eliminado !</font></p>", nil, 154, 37, 491, 30, 0x324650, 0x000000, 1, true)
                           tfm.exec.killPlayer(k)
                       end
                   end
               end
               if countMiceAlive > 1 then
                   gameState = 6
                   timeLeft = 3
                   if countMove < 13 then
                       countMove = countMove + 1
                   end
                   ui.removeTextArea(814, nil)
                   ui.addTextArea(10, "<font color=\"#222\" size=\"14\" family=\"Verdana\"><p align=\"center\">Mestre do jogo : "..activePlayer.."\n\nNúmero de movimentos : "..countMove.."</p></font>", nil, 40, 120, 228, 91, 0, 0, 1, true)
                   ui.addTextArea(851, "<p align=\"center\"><font family=\"Verdana\" size=\"20\" color=\"#222\">Faça os movimentos "..activePlayer.." !</font></p>", nil, 8, 240, 784, 30, 0, 0, 1, true)
                 
               elseif countMiceAlive == 1 then
                   local winner = ""
                   for k,v in pairs(playerList) do
                       if v.playing == true and k ~= activePlayer then
                           winner = k
                           break
                       end
                   end
                   gameState = 0
                   timeLeft = 3
                   countMove = 3
                   eventNewPlayer(admin)
                   tfm.exec.newGame("@7566395")
                   ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#118\">Parabéns à <B><J>"..winner.."</J></B> quem ganhou a partida!</font></p>", nil, 100, 38, 600, 30, 0, 0, 1, true)
                   eventNewPlayer(admin)
               else
                   gameState = 0
                   timeLeft = 3
                   countMove = 3
                   tfm.exec.newGame("@7566395")
                   ui.addTextArea(814, "<p align=\"center\"><font family=\"Verdana\" size=\"17\" color=\"#118\">Uau, todo mundo perdido :'(</font></p>", nil, 100, 38, 600, 30, 0, 0, 1, true)
                   eventNewPlayer(admin)
               end
           end
               closeMenu(nil, 800, 813)
       end
   end
end

function ShowArrows(name, table)
   for i=1, 13 do
       ui.removeTextArea(800+i, name)
   end
   if #table % 2 == 0 then
       if #table > 2 then
           for i=1, (#table/2) do
               ui.addTextArea(800+i, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[i].."</font></p>", name, 385-((#table-i)-(i-1))*30, 45, 30, 24)
           end
           for i=(#table/2)+1, #table do
               ui.addTextArea(800+i, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[i].."</font></p>", name, 385+(((i*2)-1)-#table)*30, 45, 30, 24)
           end
       elseif #table == 2 then
           ui.addTextArea(801, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[1].."</font></p>", name, 355, 45,30,24)
           ui.addTextArea(802, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[2].."</font></p>", name, 415, 45,30,24)
       end
   elseif #table % 2 ~= 0 then
       if #table > 1 then
           for i=1, math.floor(#table/2) do
               ui.addTextArea(800+i, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[i].."</font></p>", name, 385-((#table-(2*i))+1)*30, 45, 30,24)
           end
           ui.addTextArea(800+math.ceil(#table/2), "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[math.ceil(#table/2)].."</font></p>", name, 385, 45, 30,24)
           for i=math.ceil(#table/2)+1, #table do
               ui.addTextArea(800+i, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[i].."</font></p>", name, 385+(((2*i)-#table)-1)*30, 45, 30, 24)
           end
       elseif #table == 1 then
               ui.addTextArea(801, "<p align=\"center\"><font size=\"16\" face=\"Verdana\">"..table[1].."</font></p>", name, 385, 45, 30, 24)
       end
   end
end
function eventPlayerLeft(name)
   playerList[name] = nil
   if gameState == 1 or gameState == 3 or gameState == 4 or gameState == 5 then
       if name == player1 then
           player1 = ""
           selectPlayers(playerList)
           closeMenu(nil, 800, 813)
       elseif name == player2 then
           player2 = ""
           selectPlayers(playerList)
           closeMenu(nil, 800, 813)
       elseif gameState == 1 then
           selectPlayers(playerList)
       end
   end
   if gameState == 2 then
       if name == activePlayer then
           activePlayer = ""
       end
       selectMDJ(playerList)
   end
end
main()

for all in pairs(tfm.get.room.playerList) do eventNewPlayer(all) end

Admin
Admin

Mensagens : 24
Data de inscrição : 10/07/2017

https://tfmbry.directorioforuns.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos