Advertisement
KananGamer

Parkour (desatualizado)

Jan 7th, 2018
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.58 KB | None | 0 0
  1. mapA="0"
  2. map={7171137,7172091,7196916,7197833}
  3. tfm.exec.setRoomMaxPlayers(30)
  4. maps={
  5.     map_7171137={creator="Nettoork",
  6.         {levelName=1,x=26,y=764},
  7.         {levelName=2,x=178 ,y=649},
  8.         {levelName=3,x=520 ,y=774},
  9.         {levelName=4,x=965 ,y=564},
  10.         {levelName=5,x=1575 ,y=434},
  11.         {levelName=6,x=1429 ,y=311},
  12.         {levelName=7,x=1227 ,y=129},
  13.         {levelName=8,x=901 ,y=51},
  14.         {levelName=9,x=118 ,y=189}
  15.     },
  16.     map_7172091={creator="Nettoork",
  17.         {levelName=1,x=60,y=764},
  18.         {levelName=2,x=720,y=764},
  19.         {levelName=3,x=921,y=687},
  20.         {levelName=4,x=459,y=555},
  21.         {levelName=5,x=44,y=501},
  22.         {levelName=6,x=1370,y=360}
  23.     },
  24.     map_7196916={creator="Nettoork",
  25.         {levelName=1,x=14,y=765},
  26.         {levelName=2,x=129,y=692},
  27.         {levelName=3,x=441,y=668},
  28.         {levelName=4,x=804,y=596},
  29.         {levelName=5,x=512,y=412},
  30.         {levelName=6,x=16,y=514},
  31.         {levelName=7,x=16,y=239},
  32.         {levelName=8,x=495,y=310},
  33.         {levelName=9,x=1322,y=657},
  34.         {levelName=10,x=1586,y=489},
  35.         {levelName=11,x=1476,y=383}
  36.     },
  37.     map_7197833={creator="Nettoork",
  38.         {levelName=1,x=27,y=764},
  39.         {levelName=2,x=158,y=594},
  40.         {levelName=3,x=725,y=566},
  41.         {levelName=4,x=1174,y=764},
  42.         {levelName=5,x=1587,y=712},
  43.         {levelName=6,x=1544,y=571},
  44.         {levelName=7,x=1296,y=85},
  45.         {levelName=8,x=670,y=125},
  46.         {levelName=9,x=59,y=105}
  47.     },
  48. }
  49. tfm.exec.disableAutoNewGame(true)
  50. tfm.exec.disableAutoShaman(true)
  51. tfm.exec.disableAutoTimeLeft(true)
  52. tfm.exec.disableAfkDeath(true)
  53. tfm.exec.disableAutoScore(true)
  54. tfm.exec.disablePhysicalConsumables(true)
  55. dataPlayer={}
  56. local snowball = {}
  57. local ballon = {}
  58. local objs = {}
  59. function split(t,s)
  60.     local a={}
  61.     for i,v in string.gmatch(t,string.format("[^%s]+",s or "%s")) do
  62.         table.insert(a,i)
  63.     end
  64.     return a
  65. end
  66. mapA=map[math.random(#map)]
  67. mapaantigo=mapA
  68. mapB="map_"..mapA
  69. tfm.exec.newGame(mapA)
  70. function eventNewPlayer(name)
  71.     tfm.exec.setUIMapName("<font color='#FFFFFF'>[Minigame] Parkour</font>")
  72.     for i,v in pairs(maps) do
  73.         if i == mapB then
  74.             dataPlayer[name]={
  75.                 level=1,
  76.                 x=i.x,
  77.                 y=i.y,
  78.                 fly=false,
  79.                 snowball=false,
  80.                 ballon=false,
  81.                 time=os.time(),
  82.             }
  83.             ui.addTextArea(0,"Map created by: "..(v.creator),name,5,380,0,0,1,1,0.6,true)
  84.         end
  85.     end
  86.     tfm.exec.bindKeyboard(name,32,true,true)
  87.     system.bindKeyboard(name, 69, false)
  88.     system.bindKeyboard(name, 81, false)
  89.     tfm.exec.setPlayerScore(name,1,false)
  90.     tfm.exec.respawnPlayer(name)
  91.     ui.addTextArea(1,"", name,600,26,195,18,1,1,0.8,true)
  92.     ui.addTextArea(2,"<font size='10'><p align='center'>Level", name,600,26,95,0,1,1,0,true)
  93.     ui.addTextArea(3,"<font color='#000001'>|</font>       "..dataPlayer[name].level, name,700,26,95,0,1,1,0,true)
  94.     ui.addTextArea(4,"", name,600,28,195,18,1,1,0.1,true)
  95. end
  96. for name,player in pairs(tfm.get.room.playerList) do
  97.     eventNewPlayer(name)
  98. end
  99. function eventPlayerDied(name)
  100.     tfm.exec.respawnPlayer(name)
  101. end
  102. function eventPlayerRespawn(name)
  103.     tfm.exec.movePlayer(name, dataPlayer[name].x, dataPlayer[name].y, false, 0, 1, false)
  104.     if dataPlayer[name].level == levels then
  105.         tfm.exec.setNameColor(name,0xFEFF00)
  106.     else
  107.         tfm.exec.setNameColor(name,0x148DE6)
  108.     end
  109. end
  110. function newLevel(name)
  111.     dataPlayer[name].level=dataPlayer[name].level+1
  112.     tfm.exec.setPlayerScore(name,dataPlayer[name].level,false)
  113.     ui.addTextArea(3,"<font color='#000001'>|</font>       "..dataPlayer[name].level, name,700,26,95,0,1,1,0,true)
  114.     if dataPlayer[name].level == levels then
  115.         tfm.exec.setNameColor(name,0xFEFF00)
  116.         local msg="<p align='center'><V>"..name.."</V> Reached the last level, <D>Congratulations!</D>"
  117.         dataPlayer[name].fly=true
  118.         dataPlayer[name].snowball=true
  119.         dataPlayer[name].ballon=true
  120.         ui.addTextArea(-1,msg,todos,5,28,585,0,1,1,0.6,true)
  121.     else
  122.         if dataPlayer[name].level ~= 1 then
  123.             ui.addTextArea(-1,"<p align='center'><V>"..name.."</V> is now level <R>"..dataPlayer[name].level.."!</R>",todos,5,28,585,0,1,1,0.6,true)
  124.         end
  125.     end
  126. end
  127. function newMapa()
  128.     mapA=map[math.random(#map)]
  129.     if mapA ~= mapaantigo then
  130.         mapB="map_"..mapA
  131.         mapaantigo=mapA
  132.         tfm.exec.newGame(mapA)
  133.     else
  134.         newMapa()
  135.     end
  136. end
  137. function eventLoop(currentTime,timeRemaining)
  138.     if timeRemaining <= 0 then
  139.         newMapa()
  140.     end
  141.     for i,v in ipairs(ballon) do
  142.         if v[2] < os.time() - 2000 then
  143.             tfm.exec.removeObject(v[1])
  144.             table.remove(ballon,i)
  145.         end
  146.     end
  147.     for i,v in ipairs(snowball) do
  148.         if v[2] < os.time() - 3000 then
  149.             tfm.exec.removeObject(v[1])
  150.             table.remove(snowball,i)
  151.         end
  152.     end
  153.     for name,player in pairs(tfm.get.room.playerList) do
  154.         local xC = tfm.get.room.playerList[name].x
  155.         local yC = tfm.get.room.playerList[name].y
  156.         --print("Nickname: "..name.." | X : "..xC.." | Y : "..yC)
  157.         for a,o in pairs(maps) do
  158.             if a == mapB and #o == levels then
  159.                 for v,i in pairs(o) do
  160.                     for num=1,levels do
  161.                         if i.levelName == num then
  162.                             if (xC < i.x+20 and xC > i.x-20) and (yC <= i.y+10 and yC >= i.y-25) and num == (dataPlayer[name].level+1) then
  163.                                 dataPlayer[name].x = i.x
  164.                                 dataPlayer[name].y = i.y
  165.                                 newLevel(name)
  166.                             end
  167.                         end
  168.                     end
  169.                     if i.levelName == (dataPlayer[name].level + 1) then
  170.                         tfm.exec.displayParticle(math.random(21,23),math.random((i.x-10),(i.x+10)),math.random((i.y-10),(i.y+10)),0,0,0,0,name)
  171.                     end
  172.                 end
  173.             end
  174.         end
  175.     end
  176. end
  177. admin="Nettoork"
  178. function eventChatCommand(playerName,command)
  179.         local arg = split(command, " ")
  180.         if arg[1] == "tp" and arg[2] and dataPlayer[playerName].level == levels then
  181.             for name,player in pairs(tfm.get.room.playerList) do
  182.                 if arg[2] == name then
  183.                     targetPlayer=arg[2]:sub(1,1):upper()..arg[2]:sub(2):lower()
  184.                     tfm.exec.movePlayer(playerName, tfm.get.room.playerList[targetPlayer].x, tfm.get.room.playerList[targetPlayer].y, false, 0, 1, false)
  185.                 end
  186.             end
  187.         end
  188.             if command == "powers" then
  189.             tfm.exec.chatMessage("<V>[Parkour]</V> <D> Q = Ballon | E = SnowBall | Space Bar = Fly | !tp + target</D>",playerName)
  190.         end
  191.         if arg[1] == "time_set" and arg[2] and playerName==admin then
  192.             tfm.exec.setGameTime(arg[2])
  193.         end
  194. end
  195. function eventKeyboard(name,key,down,x,y)
  196.     if key==32 and dataPlayer[name].fly == true then
  197.         tfm.exec.movePlayer(name,0,0,true,0,-50,false)
  198.     end
  199.     if key == 69 and dataPlayer[name].snowball == true then
  200.         if dataPlayer[name].time < os.time()-3000 then
  201.             local facingRight = tfm.get.room.playerList[name].isFacingRight
  202.             table.insert(snowball,{tfm.exec.addShamanObject(34, facingRight and x + 20 or x - 20, y, 0, facingRight and 10 or -10), os.time()})
  203.             dataPlayer[name].time = os.time()
  204.         end
  205.     end
  206.     if key == 81 and dataPlayer[name].ballon == true then
  207.         if dataPlayer[name].time < os.time()-10000 then
  208.             local facingRight = tfm.get.room.playerList[name].isFacingRight
  209.             table.insert(ballon,{tfm.exec.addShamanObject(28, x, y+10, 0), os.time()})
  210.             dataPlayer[name].time = os.time()
  211.         end
  212.     end
  213. end
  214. function eventNewGame()
  215.     levels=0
  216.     tfm.exec.setGameTime(1200)
  217.     for i,v in pairs(maps) do
  218.         if i == mapB then
  219.             levels=0
  220.             for num=1,#v do
  221.                 levels=levels+1
  222.             end
  223.             for a,o in pairs(v) do
  224.                 for name,player in pairs(tfm.get.room.playerList) do
  225.                     if o.levelName == 1 and dataPlayer[name].level ~= 1 then
  226.                             dataPlayer[name].x=o.X
  227.                             dataPlayer[name].y=o.Y
  228.                             dataPlayer[name].level=1
  229.                             dataPlayer[name].fly=false
  230.                             dataPlayer[name].snowball=false
  231.                             dataPlayer[name].ballon=false
  232.                             tfm.exec.setPlayerScore(name,dataPlayer[name].level,false)
  233.                     end
  234.                     ui.addTextArea(-1,"<p align='center'><V>[Map]</V><BV> New Map Started!</BV>",todos,5,28,585,0,1,1,0.6,true)
  235.                     ui.addTextArea(0,"Map created by: "..(v.creator),todos,5,380,0,0,1,1,0.6,true)
  236.                 end
  237.             end
  238.         end
  239.     end
  240. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement