Advertisement
KananGamer

Mod Menu

Feb 8th, 2018
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.44 KB | None | 0 0
  1. db={}
  2. owner="Nettoork"
  3. admins={owner,"Sufp","Detonachu#0000"}
  4. menuPrincipal={"Jogadores", "Sala", "Configurações", "Ajuda"}
  5. function pageMenu(name)
  6.     db[name].menuOpened="menu"
  7.     local localMenu="<p align='center'>"
  8.     for i=1,#menuPrincipal do
  9.         localMenu=localMenu.."\n<a href='event:"..menuPrincipal[i].."'>"..menuPrincipal[i].."</a>\n"
  10.     end
  11.    
  12.     ui.addTextArea(2,localMenu,name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  13.     ui.addTextArea(1,"<p align='center'><font size='17'><D>Mod Menu</D></font></p>",name,5,26,200,25,0x1E4658,0x1E4658,1,true)
  14. end
  15. function pagePlayers(name)
  16.     local localPlayers="<p align='center'>"
  17.     local playerCont=0
  18.     local haveAPlayer=false
  19.     db[name].menuOpened="players"
  20.     for i,v in pairs (tfm.get.room.playerList) do
  21.         if db[name].isOnline == true then
  22.             playerCont=playerCont+1
  23.             local cont = 5
  24.             if db[name].page > 1 then
  25.                 cont=6
  26.             end
  27.             if playerCont <= db[name].page*cont and playerCont >= (db[name].page-1)*cont then
  28.                 haveAPlayer=true
  29.                 localPlayers=localPlayers.."\n<a href='event:player_"..i.."'>"..i.."</a>\n"
  30.             end
  31.         end
  32.     end
  33.     if haveAPlayer then
  34.         if db[name].page == 1 then
  35.             ui.addTextArea(2,"\n<p align='center'><a href='event:player_ALL'>Selecionar Todos</a></p>"..localPlayers.."\n<D><a href='event:back'>←</a></D> <a href='event:backMenu'><R>Voltar</R></a> <D><a href='event:next'>→</a></D></p>",name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  36.         else
  37.             ui.addTextArea(2,localPlayers.."\n<D><a href='event:back'>←</a></D> <a href='event:backMenu'><R>Voltar</R></a> <D><a href='event:next'>→</a></D></p>",name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  38.         end
  39.         ui.addTextArea(1,"<p align='center'><font size='17'><D>Mod Menu</D></font></p>",name,5,26,200,25,0x1E4658,0x1E4658,1,true)
  40.     else
  41.         db[name].page=db[name].page-1
  42.         pagePlayers(name)
  43.     end
  44. end
  45.  
  46. function loadPlayer(player, name)
  47.     db[name].menuOpened="SelectedPlayer"
  48.     ui.addTextArea(2,"<p align='center'>\nUsuario: "..(tfm.get.room.playerList[player].playerName).."\nComunidade: "..(tfm.get.room.playerList[player].community).."\nAdministrador: <a href='event:isAdmin_"..player.."'>"..tostring(db[player].isAdmin).."</a>\nCor do Nick: <a href='event:nickColor_"..player.."'>Alterar</a>\n<a href='event:toca_"..player.."'>Toca</a>\nScore: <a href='event:score_"..player.."'>"..tfm.get.room.playerList[player].score.."</a>\nQueijo: <a href='event:hasCheese_"..player.."'>"..tostring(tfm.get.room.playerList[player].hasCheese).."</a>\nVampiro: <a href='event:isVampire_"..player.."'>"..tostring(tfm.get.room.playerList[player].isVampire).."</a>\nMorto: <a href='event:isDead_"..player.."'>"..tostring(tfm.get.room.playerList[player].isDead).."</a>\nShaman: <a href='event:isShaman_"..player.."'>"..tostring(tfm.get.room.playerList[player].isShaman).."</a>\nCoordenada X: <a href='event:x_"..player.."'>"..tfm.get.room.playerList[player].x.."</a>\nCoordenada Y: <a href='event:y_"..player.."'>"..tfm.get.room.playerList[player].y.."</a>\n<a href='event:player_"..player.."'><BV>Atualizar</BV></a> | <a href='event:Jogadores'><R>Voltar</R></a></p>",name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  49.     ui.addTextArea(1,"<p align='center'><font size='17'><D>Mod Menu</D></font></p>",name,5,26,200,25,0x1E4658,0x1E4658,1,true)
  50. end
  51. function loadRoom(name)
  52.     db[name].menuOpened="SelectedPlayer"
  53.     ui.addTextArea(2,"<p align='center'>\nSala: "..tfm.get.room.name.."\nComunidade: "..tfm.get.room.community.."\nMáximo de Jogadores: <a href='event:maxPlayers'>"..tfm.get.room.maxPlayers.."</a>\nMapa Code: <a href='event:mapCode'>"..tfm.get.room.currentMap.."</a>\n<a href='event:activeSnow'>Ativar neve</a>\n\n<a href='event:roomLoad_"..name.."'><BV>Atualizar</BV></a> | <a href='event:backMenu'><R>Voltar</R></a></p>",name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  54.     ui.addTextArea(1,"<p align='center'><font size='17'><D>Mod Menu</D></font></p>",name,5,26,200,25,0x1E4658,0x1E4658,1,true)
  55. end
  56. function loadALLPlayer(name)
  57.     db[name].menuOpened="SelectedPlayer"
  58.     ui.addTextArea(2,"<p align='center'>\nUsuario: Todos\nCor do Nick: <a href='event:nickColor_ALL'>Alterar</a>\n<a href='event:toca_ALL'>Toca</a>\nScore: <a href='event:score_ALL'>Alterar</a>\n<a href='event:hasCheese_ALL'>Dar queijo</a>\n<a href='event:isVampire_ALL'>Vampiro</a>\n<a href='event:isDead_ALL'>Matar</a>\n<a href='event:isShaman_ALL'>Transformar em Shaman</a>\nCoordenada X: <a href='event:x_ALL'>Alterar</a>\nCoordenada Y: <a href='event:y_ALL'>Alterar</a>\n<a href='event:Jogadores'><R>Voltar</R></a></p>",name,5,52,200,200,0x224D60,0x224D60,0.8,true)
  59.     ui.addTextArea(1,"<p align='center'><font size='17'><D>Mod Menu</D></font></p>",name,5,26,200,25,0x1E4658,0x1E4658,1,true)
  60. end
  61.  
  62. function eventPlayerLeft(name)
  63.     db[name].isOnline=false
  64.     for i,v in pairs(admins) do
  65.         if db[v].menuOpened == "players" then
  66.             pagePlayers(v)
  67.         end
  68.     end
  69. end
  70.  
  71. function eventTextAreaCallback(id, name, ref)
  72.     if db[name].isAdmin then
  73.         if ref == "back" then
  74.             if db[name].page > 1 then
  75.                 db[name].page=db[name].page-1
  76.                 pagePlayers(name)
  77.             end
  78.         elseif ref == "next" then
  79.             db[name].page=db[name].page+1
  80.             pagePlayers(name)
  81.         end
  82.         if string.find(ref, 'player_', 1, true) then
  83.             ref = ref:gsub("player_","")
  84.             if ref == "ALL" then
  85.                 loadALLPlayer(name)
  86.             else
  87.                 loadPlayer(ref, name)
  88.             end
  89.         end
  90.         if string.find(ref, 'roomLoad_', 1, true) then
  91.             ref = ref:gsub("roomLoad_","")
  92.             loadRoom(ref)
  93.         end
  94.         if ref == "Jogadores" then
  95.             pagePlayers(name)
  96.         end
  97.         if ref == "Sala" then
  98.             loadRoom(name)
  99.         end
  100.         if ref == "backMenu" then
  101.             pageMenu(name)
  102.         end
  103.         if string.find(ref, 'isDead_', 1, true) then
  104.             ref = ref:gsub("isDead_","")
  105.             if ref ~= "ALL" then
  106.                 if tfm.get.room.playerList[ref].isDead then
  107.                     tfm.exec.respawnPlayer(ref)
  108.                     tfm.get.room.playerList[ref].isDead=false
  109.                 else
  110.                     tfm.exec.killPlayer(ref)
  111.                     tfm.exec.setPlayerScore(ref, -1, true)
  112.                     tfm.get.room.playerList[ref].isDead=true
  113.                 end
  114.                 loadPlayer(ref, name)
  115.             else
  116.                 for all in pairs(tfm.get.room.playerList) do
  117.                     tfm.exec.killPlayer(all)
  118.                 end
  119.             end
  120.         end
  121.         if string.find(ref, 'hasCheese_', 1, true) then
  122.             ref = ref:gsub("hasCheese_","")
  123.             if ref ~= "ALL" then
  124.                 if tfm.get.room.playerList[ref].hasCheese then
  125.                     tfm.exec.killPlayer(ref)
  126.                     tfm.exec.respawnPlayer(ref)
  127.                     tfm.exec.movePlayer(ref, tfm.get.room.playerList[ref].x, tfm.get.room.playerList[ref].y, false, 0, 1, false)
  128.                     tfm.exec.setPlayerScore(ref, -1, true)
  129.                     tfm.get.room.playerList[ref].hasCheese=false
  130.                 else
  131.                     tfm.exec.giveCheese(ref)
  132.                     tfm.get.room.playerList[ref].hasCheese=true
  133.                 end
  134.                 loadPlayer(ref, name)
  135.             else
  136.                 for all in pairs(tfm.get.room.playerList) do
  137.                     tfm.exec.giveCheese(all)
  138.                 end
  139.             end
  140.         end
  141.         if string.find(ref, 'isVampire_', 1, true) then
  142.             ref = ref:gsub("isVampire_","")
  143.             if ref ~= "ALL" then
  144.                 if tfm.get.room.playerList[ref].isVampire then
  145.                     tfm.exec.killPlayer(ref)
  146.                     tfm.exec.respawnPlayer(ref)
  147.                     tfm.exec.movePlayer(ref, tfm.get.room.playerList[ref].x, tfm.get.room.playerList[ref].y, false, 0, 1, false)
  148.                     tfm.exec.setPlayerScore(ref, -1, true)
  149.                     tfm.get.room.playerList[ref].isVampire=false
  150.                 else
  151.                     tfm.exec.setVampirePlayer(ref)
  152.                     tfm.get.room.playerList[ref].isVampire=true
  153.                 end
  154.                 loadPlayer(ref, name)
  155.             else
  156.                 for all in pairs(tfm.get.room.playerList) do
  157.                     tfm.exec.setVampirePlayer(all)
  158.                 end
  159.             end
  160.         end
  161.         if string.find(ref, 'isAdmin_', 1, true) then
  162.             ref = ref:gsub("isAdmin_","")
  163.             if db[ref].isAdmin and ref ~= owner then
  164.                 for i,v in pairs(admins) do
  165.                     print(v.." "..ref)
  166.                     if v == ref then
  167.                         for i=1,5 do
  168.                             ui.removeTextArea(i, ref)
  169.                             db[ref]={isAdmin=false, isOnline=true}
  170.                         end
  171.                         table.remove(admins, i)
  172.                         break;
  173.                     end
  174.                 end
  175.             else
  176.                 table.insert(admins, ref)
  177.                 db[ref]={
  178.                     isAdmin=true,
  179.                     isOnline=true,
  180.                     page=1,
  181.                     pageP=1,
  182.                     popupID=0,
  183.                     playerSelected="",
  184.                     menuOpened="menu"
  185.                 }
  186.                 db[ref].isAdmin=true
  187.                 pageMenu(ref)
  188.             end
  189.             if db[name].isAdmin then
  190.                 loadPlayer(ref, name)
  191.             end
  192.         end
  193.         if string.find(ref, 'score_', 1, true) then
  194.             ref = ref:gsub("score_","")
  195.             db[name].playerSelected=ref
  196.             db[name].popupID=1
  197.             ui.addPopup(1, 2, "Digite o valor para Score:", name, 220, 30, nil, true)
  198.         end
  199.         if string.find(ref, 'nickColor_', 1, true) then
  200.             ref = ref:gsub("nickColor_","")
  201.             db[name].playerSelected=ref
  202.             ui.showColorPicker(1, name,"0xFFFFFF","Cor do Nick:")
  203.         end
  204.         if string.find(ref, 'x_', 1, true) then
  205.             ref = ref:gsub("x_","")
  206.             db[name].playerSelected=ref
  207.             db[name].popupID=2
  208.             ui.addPopup(2, 2, "Digite o valor para X:", name, 220, 30, nil, true)
  209.         end
  210.         if string.find(ref, 'toca_', 1, true) then
  211.             ref = ref:gsub("toca_","")
  212.             if ref ~= "ALL" then
  213.                 if tfm.get.room.playerList[ref].hasCheese then
  214.                     tfm.exec.playerVictory(ref)
  215.                 end
  216.                 loadPlayer(ref, name)
  217.             else
  218.                 for all in pairs(tfm.get.room.playerList) do
  219.                     if tfm.get.room.playerList[all].hasCheese then
  220.                         tfm.exec.playerVictory(all)
  221.                     end
  222.                 end
  223.             end
  224.         end
  225.         if string.find(ref, 'y_', 1, true) then
  226.             ref = ref:gsub("y_","")
  227.             db[name].playerSelected=ref
  228.             db[name].popupID=3
  229.             ui.addPopup(3, 2, "Digite o valor para Y:", name, 220, 30, nil, true)
  230.         end
  231.         if ref == "maxPlayers" then
  232.             db[name].popupID=4
  233.             ui.addPopup(4, 2, "Altere o Máximo de Jogadores:", name, 220, 30, nil, true)
  234.         end
  235.         if ref == "mapCode" then
  236.             db[name].popupID=5
  237.             ui.addPopup(5, 2, "Altere o Mapa:", name, 220, 30, nil, true)
  238.         end
  239.         if ref == "activeSnow" then
  240.             db[name].popupID=6
  241.             ui.addPopup(6, 2, "Tempo:", name, 220, 30, nil, true)
  242.         end
  243.         if string.find(ref, 'isShaman_', 1, true) then
  244.             ref = ref:gsub("isShaman_","")
  245.             if ref == "ALL" then
  246.                 for all in pairs(tfm.get.room.playerList) do
  247.                     tfm.exec.setShaman(all)
  248.                 end
  249.             else
  250.                 if tfm.get.room.playerList[ref].isShaman == false then
  251.                     tfm.exec.setShaman(ref)
  252.                     tfm.get.room.playerList[ref].isShaman=true
  253.                     loadPlayer(ref, name)
  254.                 end
  255.             end
  256.         end
  257.     end
  258. end
  259.  
  260. function eventColorPicked(id, name, color)
  261.     if id == 1 then
  262.         if db[name].playerSelected=="ALL" then
  263.             for all in pairs(tfm.get.room.playerList) do
  264.                 tfm.exec.setNameColor(all, "0x"..string.format("%x", color))
  265.             end
  266.         else
  267.             tfm.exec.setNameColor(db[name].playerSelected, "0x"..string.format("%x", color))
  268.         end
  269.         db[name].playerSelected=""
  270.     end
  271. end
  272.  
  273. function comandosBasicos(id, name, resp, player)
  274.     if id == 1 and tonumber(resp) then
  275.         if db[name].playerSelected == "ALL" then
  276.             tfm.exec.setPlayerScore(player, resp, false)
  277.         else
  278.             tfm.exec.setPlayerScore(db[name].playerSelected, resp, false)
  279.             tfm.get.room.playerList[db[name].playerSelected].score=resp
  280.             loadPlayer(db[name].playerSelected, name)
  281.         end
  282.     end
  283.     if id == 2 and tonumber(resp) then
  284.         if db[name].playerSelected == "ALL" then
  285.             tfm.exec.movePlayer(player, resp, 0, false, 0, 1, false)
  286.         else
  287.             tfm.exec.movePlayer(db[name].playerSelected, resp, 0, false, 0, 1, false)
  288.             loadPlayer(db[name].playerSelected, name)
  289.         end
  290.     end
  291.     if id == 3 and tonumber(resp) then
  292.         if db[name].playerSelected == "ALL" then
  293.             tfm.exec.movePlayer(player, 0, resp, false, 0, 1, false)
  294.         else
  295.             tfm.exec.movePlayer(db[name].playerSelected, 0, resp, false, 0, 1, false)
  296.             loadPlayer(db[name].playerSelected, name)
  297.         end
  298.     end
  299.     if id == 4 and tonumber(resp) then
  300.         tfm.exec.setRoomMaxPlayers(resp)
  301.         loadRoom(name)
  302.     end
  303.     if id == 5 then
  304.         tfm.exec.newGame(resp)
  305.         loadRoom(name)
  306.     end
  307.     if id == 6 and tonumber(resp) then
  308.         tfm.exec.snow(resp)
  309.     end
  310.     db[name].playerSelected=""
  311.     db[name].popupID=0
  312. end
  313.  
  314. function eventPopupAnswer(id, name, resp)
  315.     if db[name].popupID == id and db[name].isAdmin then
  316.         if db[name].playerSelected == "ALL" then
  317.             for all in pairs(tfm.get.room.playerList) do
  318.                 if db[all].isOnline then
  319.                     db[name].playerSelected="ALL"
  320.                     comandosBasicos(id, name, resp, all)
  321.                 end
  322.             end
  323.         else
  324.             comandosBasicos(id, name, resp)
  325.         end
  326.     end
  327. end
  328.  
  329. function eventNewPlayer(name)
  330.     if db[name] == nil then
  331.         db[name]={isAdmin=false, isOnline=true}
  332.         for i,v in pairs(admins) do
  333.             if db[v] and db[v].menuOpened == "players" then
  334.                 pagePlayers(v)
  335.             end
  336.             if v == name then
  337.                 db[v]={
  338.                     isAdmin=true,
  339.                     isOnline=true,
  340.                     page=1,
  341.                     pageP=1,
  342.                     popupID=0,
  343.                     playerSelected="",
  344.                     menuOpened="menu"
  345.                 }
  346.                 pageMenu(v)
  347.             end
  348.         end
  349.     end
  350. end
  351.  
  352. for all in pairs(tfm.get.room.playerList) do
  353.     eventNewPlayer(all)
  354. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement