Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function main()
- admin = "Bobolemouton#9848"
- 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\">REMEMBER IT</font></p>", admin, 168, 66, 464, 30, 0x3F2B1D, 0x3b2719, 1, true)
- ui.addTextArea(1002, "<p align=\"center\"><BV><font size=\"15\">SELECTIONNEZ LE MODE DE JEU</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>\nRécupérez plus de points que votre adversaire dans un match 1 contre 1 dans lequel vous serez à tour de rôle maître du jeu...\n\n<p align=\"center\"><a href=\"event:1versus1\"><B><J><font size=\"13\">Commencer</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>ELIMINATION</B></font></V></p>\nSelectionnez un maître du jeu. Le dernier survivant gagne le match...\n\n\n<p align=\"center\"><a href=\"event:elimination\"><B><J><font size=\"13\">Commencer</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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">SELECTIONNEZ LES 2 JOUEURS</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>VALIDER</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\">SELECTIONNEZ LE MAITRE DU JEU</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>VALIDER</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, t'es trop fort(e) !</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\">Tu es éliminé(e) !</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\">Tu es éliminé(e) !</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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">À toi de jouer "..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\">À toi de jouer "..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\">À vous de jouer !</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\">Tu es éliminé(e) !</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\">Maître du jeu : "..activePlayer.."\n\nNombre de mouvements : "..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\">À toi de jouer "..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\">Félicitations à <B><J>"..winner.."</J></B> qui remporte la partie !</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\">Wow, tout le monde a perdu :'(</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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement