Script dos Movimentos
Página 1 de 1
Script dos Movimentos
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 = "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
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos