Boeing747-8

#Bombdeliver

Aug 7th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.69 KB | None | 0 0
  1. tfm.exec.setGameTime(3,true)
  2. roles={0,1}
  3. maps={7489629}
  4. data={}
  5. text={}
  6. lang={}
  7. players={}
  8. alive=0
  9. lang.en={
  10.     menu="Menu",
  11.   profile2="Profile",
  12.   help2="Help",
  13.   help="In #bombdeliver the goal of the game is for protectors to catch the mouse with the bomb before the mouse gets to the hole. The mouse with the bomb can use attacks to shield off protectors.",
  14.   wins="Total Wins",
  15.   wins_Bomber="Wins As Bomber",
  16.   wins_Protector="Wins As Protector",
  17.   close="Close",
  18.     health=100,
  19.   bomber_Wins="Bomber Wins!",
  20.   protector_Wins="Protectors Win!",
  21.   powerups2="Powerups",
  22.   powerup1="[Normal Attack]</J> Is activated by pressing space. Only works for Protectors when they are near the bomber, but works for Bombers at any time.",
  23.   powerup2="[Mega Jump]</J> Is activated by the down arrow."
  24. }
  25. for _, s in next, {'AutoTimeLeft', 'PhysicalConsumables', 'AfkDeath', 'AutoShaman', 'AutoNewGame'} do
  26.     tfm.exec['disable' .. s]()
  27. end
  28. function particles(x,y)
  29.   tfm.exec.displayParticle(9,x,y+10,-0.4,0.1,0.2,0.3,nil)
  30.   tfm.exec.displayParticle(9,x,y+10,-0.6,0.2,0.6,0.2,nil)
  31.   tfm.exec.displayParticle(9,x,y+10,-0.8,0.3,0.8,0.1,nil)
  32.   tfm.exec.displayParticle(9,x,y+10,0.4,0.4,-0.4,0.3,nil)
  33.   tfm.exec.displayParticle(9,x,y+10,0.6,0.5,-0.6,0.2,nil)
  34.   tfm.exec.displayParticle(9,x,y+10,0.8,0.6,-0.8,0.1,nil)
  35. end
  36. function bigJump(n,x,y)
  37.   tfm.exec.movePlayer(n,0,0,false,0,-80,true)
  38.   tfm.exec.displayParticle(3,x-5,y+10,-0.8,0,0,0,n)
  39.   tfm.exec.displayParticle(3,x+5,y+10,0.8,0,0,0,n)
  40.   tfm.exec.displayParticle(3,x-10,y+10,-1.7,0,0,0,n)
  41.   tfm.exec.displayParticle(3,x+10,y+10,1.7,0,0,0,n)
  42.   particles(x,y)
  43. end
  44. function identifyBomber(n)
  45.   if data[n].role==0 then
  46.     tfm.exec.setNameColor(n,0x00FF00)
  47.         tfm.exec.movePlayer(n,1023,432,false,0,50,false)
  48.   elseif data[n].role==1 then
  49.     tfm.exec.setNameColor(n,0xFF0000)
  50.   end
  51. end
  52. function countAlive()
  53.     alive=0
  54.     for n,player in pairs(tfm.get.room.playerList) do
  55.         if tfm.get.room.playerList[n].isDead==false then
  56.             alive=alive+1
  57.         end
  58.   end
  59. end
  60. function removeWinner()
  61.     ui.removeTextArea(20,nil)
  62.   ui.removeTextArea(30,nil)
  63.   ui.removeTextArea(40,nil)
  64.   ui.removeTextArea(50,nil)
  65.   ui.removeTextArea(60,nil)
  66.   ui.removeTextArea(19,nil)
  67. end
  68.    
  69. function win(n)
  70.     for n,player in pairs(tfm.get.room.playerList) do
  71.         if tfm.get.room.playerList[n].isDead==false and data[n].role==0 then
  72.  
  73.             data[n].wins=data[n].wins+1
  74.             data[n].wins_Protector=data[n].wins_Protector+1
  75.         end
  76.     end
  77. end
  78. function insertName(n)
  79.     table.insert(players,n)
  80. end
  81. function setLang(n)
  82.     text[n]=lang[tfm.get.room.playerList[n].community] or lang.en
  83. end
  84. function setData(n)
  85.     data[n]=
  86.   {
  87.         wins=0,
  88.     role=0,
  89.     health=100,
  90.         spawn=1,
  91.     wins_Protector=0,
  92.     wins_Bomber=0
  93.   }
  94. end
  95. function chooseRole()
  96.   for n,player in pairs(tfm.get.room.playerList) do
  97.         data[n].role=0
  98.     end
  99.         player=players[math.random(#players)]
  100.         data[player].role=1
  101.         player=""..player
  102. end
  103. function bindKeyboard(n)
  104.   for i=0,100 do
  105.     tfm.exec.bindKeyboard(n,i,true,true)
  106.   end
  107. end
  108. function showMenu(n)
  109.     ui.addTextArea(0, "<p align='center'><font face='calibri'><a href='event:menu2'>"..text[n].menu, n, 10, 30, 42, 20, 0x000001, 0xFFFFFF, 1, true)
  110. end
  111. function showMenu2(n)
  112.     ui.addTextArea(0, "<p align='center'><font face='calibri'><a href='event:Menu'>"..text[n].menu.." </a>| <a href='event:Help'>"..text[n].help2.."</a> | <a href='event:Profile'>"..text[n].profile2.."</a> | <a href='event:Powerups'>"..text[n].powerups2, n, 10, 30, 190, 20, 0x000001, 0xffffff, 1, true)
  113. end
  114. function showHealth(n)
  115.   ui.addTextArea(-3, "", n, 319, 27, 100, 18, 0xffffff, 0xffffff, 1, true)
  116.     ui.addTextArea(-1, "", n, 319, 27, data[n].health, 18, 0x1aff00, 0x1aff00, 1, true)
  117.     ui.addTextArea(-2, "<p align='center'><b><font color='#000000'>"..data[n].health.."%", n, 345, 27, 54, 18, 0x324650, 0x000000, 0, true)
  118. end
  119. function displayTab(n,info,subject)
  120.     ui.addTextArea(2, "", n, 262, 72, 360, 290, 0x331f15, 0x331f15, 1, true)
  121.     ui.addTextArea(3, "", n, 262, 125, 4, 180, 0x6b4231, 0x6b4231, 1, true)
  122.     ui.addTextArea(5, "", n, 295, 72, 290, 4, 0x6b4231, 0x6b4231, 1, true)
  123.     ui.addTextArea(4, "", n, 618, 125, 4, 180, 0x6b4231, 0x6b4231, 1, true)
  124.     ui.addTextArea(6, "", n, 295, 358, 295, 4, 0x6b4231, 0x6b4231, 1, true)
  125.     ui.addTextArea(1, "<p align='center'><font face='calibri'><font size='17'><b>#BOMBDELIVER - "..subject.."</b></font></font><font size='14'>\n\n"..info, n, 271, 80, 342, 270, 0x1b262b, 0x131c21, 1, true)
  126.     ui.addTextArea(7, "<p align='center'><font size='13'><a href='event:close'>"..text[n].close.."</a></font>", n, 272, 330, 339, 20, 0x324650, 0x324650, 1, true)
  127. end
  128. function profile(n,info)
  129.     ui.addTextArea(2, "", n, 262, 72, 268, 290, 0x331f15, 0x331f15, 1, true)
  130.     ui.addTextArea(3, "", n, 262, 120, 4, 180, 0x6b4231, 0x6b4231, 1, true)
  131.     ui.addTextArea(5, "", n, 295, 72, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  132.     ui.addTextArea(4, "", n, 526, 120, 4, 180, 0x6b4231, 0x6b4231, 1, true)
  133.     ui.addTextArea(6, "", n, 295, 358, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  134.     ui.addTextArea(1, "<p align='center'><font face='calibri'><font size='17'><b>"..n.."</b></font></font></p><font size='14'>\n<font face='calibri'>\n"..info, n, 270, 82, 252, 270, 0x1b262b, 0x131c21, 1, true)
  135.     ui.addTextArea(7, "<p align='center'><font size='13'><a href='event:close'>"..text[n].close.."</a></font>", n, 272, 330, 248, 20, 0x324650, 0x324650, 1, true)
  136. end
  137. function close(n)
  138.     for i=1,7 do
  139.     ui.removeTextArea(i,n)
  140.   end
  141. end
  142. function nearBomber(n,x,y,p)
  143.     if ((tfm.get.room.playerList[n].x<tfm.get.room.playerList[p].x+130 and tfm.get.room.playerList[n].x<tfm.get.room.playerList[p].x) and tfm.get.room.playerList[n].y<tfm.get.room.playerList[p].y+30 and tfm.get.room.playerList[n].y>tfm.get.room.playerList[p].y-30) and not (n==p) and data[p].health>0 and tfm.get.room.playerList[n].isFacingRight==true then
  144.         data[p].health=data[p].health-10
  145.         tfm.exec.displayParticle(1,x,y,0.2,0,0.2,0,nil)
  146.         tfm.exec.displayParticle(1,x,y,0.4,0,0.4,0,nil)
  147.         tfm.exec.displayParticle(1,x,y,0.6,0,0.6,0,nil)
  148.         tfm.exec.displayParticle(1,x,y,0.8,0,0.8,0,nil)
  149.         tfm.exec.displayParticle(1,x,y,1,0,1,0,nil)
  150.         tfm.exec.displayParticle(1,x,y-10,0.2,0,0.2,0,nil)
  151.         tfm.exec.displayParticle(1,x,y-10,0.4,0,0.4,0,nil)
  152.         tfm.exec.displayParticle(1,x,y-10,0.6,0,0.6,0,nil)
  153.         tfm.exec.displayParticle(1,x,y-10,0.8,0,0.8,0,nil)
  154.         tfm.exec.displayParticle(1,x,y-10,1,0,1,0,nil)
  155.         tfm.exec.displayParticle(1,x,y+10,0.2,0,0.2,0,nil)
  156.         tfm.exec.displayParticle(1,x,y+10,0.4,0,0.4,0,nli)
  157.         tfm.exec.displayParticle(1,x,y+10,0.6,0,0.6,0,nil)
  158.         tfm.exec.displayParticle(1,x,y+10,0.8,0,0.8,0,nil)
  159.         tfm.exec.displayParticle(1,x,y+10,1,0,1,0,nil)
  160.     end
  161.     if ((tfm.get.room.playerList[n].x>tfm.get.room.playerList[p].x-130 and tfm.get.room.playerList[n].x>tfm.get.room.playerList[p].x) and tfm.get.room.playerList[n].y<tfm.get.room.playerList[p].y+30 and tfm.get.room.playerList[n].y>tfm.get.room.playerList[p].y-30) and not (n==p) and data[p].health>0 and tfm.get.room.playerList[n].isFacingRight==false then
  162.         data[p].health=data[p].health-10
  163.         tfm.exec.displayParticle(1,x,y,-0.2,0,-0.2,0,nil)
  164.         tfm.exec.displayParticle(1,x,y,-0.4,0,-0.4,0,nil)
  165.         tfm.exec.displayParticle(1,x,y,-0.6,0,-0.6,0,nil)
  166.         tfm.exec.displayParticle(1,x,y,-0.8,0,-0.8,0,nil)
  167.         tfm.exec.displayParticle(1,x,y,-1,0,-1,0,nil)
  168.         tfm.exec.displayParticle(1,x,y-10,-0.2,0,-0.2,0,nil)
  169.         tfm.exec.displayParticle(1,x,y-10,-0.4,0,-0.4,0,nil)
  170.         tfm.exec.displayParticle(1,x,y-10,-0.6,0,-0.6,0,nil)
  171.         tfm.exec.displayParticle(1,x,y-10,-0.8,0,-0.8,0,nil)
  172.         tfm.exec.displayParticle(1,x,y-10,-1,0,-1,0,nil)
  173.         tfm.exec.displayParticle(1,x,y+10,-0.2,0,-0.2,0,nil)
  174.         tfm.exec.displayParticle(1,x,y+10,-0.4,0,-0.4,0,nli)
  175.         tfm.exec.displayParticle(1,x,y+10,-0.6,0,-0.6,0,nil)
  176.         tfm.exec.displayParticle(1,x,y+10,-0.8,0,-0.8,0,nil)
  177.         tfm.exec.displayParticle(1,x,y+10,-1,0,-1,0,nil)
  178.     end
  179.   if data[p].health<1 then
  180.     tfm.exec.killPlayer(p)
  181.   end
  182. end
  183. operation={-110,110}
  184. function nearProtector(n,p,x,y)
  185.     if not (n==p) and data[p].health>0 and data[n].health>0 then
  186.         tfm.exec.displayParticle(13,x,y,-0.2,0.1,-0.2,0.1,nil)
  187.         tfm.exec.displayParticle(13,x,y,-0.4,0,-0.4,0,nil)
  188.         tfm.exec.displayParticle(13,x,y,-0.6,0,-0.6,0,nil)
  189.         tfm.exec.displayParticle(3,x,y,-0.8,0,-0.8,0,nil)
  190.         tfm.exec.displayParticle(3,x,y,-8,0,-1,0,nil)
  191.         tfm.exec.displayParticle(3,x,y-10,-0.2,0.1,-0.2,0.1,nil)
  192.         tfm.exec.displayParticle(13,x,y-10,-0.4,0,-0.4,0,nil)
  193.         tfm.exec.displayParticle(13,x,y-10,-0.6,0,-0.6,0,nil)
  194.         tfm.exec.displayParticle(13,x,y-10,-0.8,0,-0.8,0,nil)
  195.         tfm.exec.displayParticle(13,x,y-10,-1,0,-1,0,nil)
  196.         tfm.exec.displayParticle(13,x,y+10,-0.2,0.1,-0.2,0.1,nil)
  197.         tfm.exec.displayParticle(13,x,y+10,-0.4,0,-0.4,0,nli)
  198.         tfm.exec.displayParticle(13,x,y+10,-0.6,0,-0.6,0,nil)
  199.         tfm.exec.displayParticle(13,x,y+10,-0.8,-0.1,-0.8,-0.1,nil)
  200.         tfm.exec.displayParticle(13,x,y+10,-1,0,-1,0,nil)
  201.         tfm.exec.displayParticle(13,x,y,0.2,0,0.2,0,nil)
  202.         tfm.exec.displayParticle(13,x,y,0.4,0,0.4,0,nil)
  203.         tfm.exec.displayParticle(13,x,y,0.6,0,0.6,0,nil)
  204.         tfm.exec.displayParticle(13,x,y,0.8,0,0.8,0,nil)
  205.         tfm.exec.displayParticle(13,x,y,1,0,1,0,nil)
  206.         tfm.exec.displayParticle(13,x,y-10,0.2,0.1,0.2,0.1,nil)
  207.         tfm.exec.displayParticle(13,x,y-10,0.4,0,0.4,0,nil)
  208.         tfm.exec.displayParticle(13,x,y-10,0.6,0,0.6,0,nil)
  209.         tfm.exec.displayParticle(13,x,y-10,0.8,0,0.8,0,nil)
  210.         tfm.exec.displayParticle(13,x,y-10,1,0,1,0,nil)
  211.         tfm.exec.displayParticle(13,x,y+10,0.2,0,0.2,0,nil)
  212.         tfm.exec.displayParticle(13,x,y+10,0.4,0,0.4,0,nli)
  213.         tfm.exec.displayParticle(13,x,y+10,0.6,0,0.6,0,nil)
  214.         tfm.exec.displayParticle(3,x,y+10,0.8,0,0.8,0,nil)
  215.         tfm.exec.displayParticle(3,x,y+10,8,0,1,0,nil)
  216.     end
  217.     if (tfm.get.room.playerList[n].x<tfm.get.room.playerList[p].x+50 and tfm.get.room.playerList[n].x>tfm.get.room.playerList[p].x-50 and tfm.get.room.playerList[n].y<tfm.get.room.playerList[p].y+30 and tfm.get.room.playerList[n].y>tfm.get.room.playerList[p].y-30) and not (n==p) and data[p].health>0 and data[n].health>0 then
  218.         data[n].health=data[n].health-10
  219.         tfm.exec.movePlayer(n,0,0,false,operation[math.random(#operation)],operation[math.random(#operation)],true)
  220.     end
  221.         if data[n].health<1 then
  222.             tfm.exec.killPlayer(n)
  223.     end
  224. end
  225.  
  226. for n,player in pairs(tfm.get.room.playerList) do
  227.   bindKeyboard(n)
  228.   setLang(n)
  229.   insertName(n)
  230.   setData(n)
  231.   showMenu(n)
  232. end
  233. chooseRole()
  234. for n,player in pairs(tfm.get.room.playerList) do
  235.   identifyBomber(n)
  236. end
  237. function allInfo(n)
  238.   bindKeyboard(n)
  239.   setLang(n)
  240.   insertName(n)
  241.   setData(n)
  242.   showMenu(n)
  243.   identifyBomber(n)
  244. end
  245. function eventNewGame()
  246.     chooseRole()
  247.     countAlive()
  248.   removeWinner()
  249.     for n,player in pairs(tfm.get.room.playerList) do
  250.         identifyBomber(n)
  251.         data[n].health=100
  252.     end
  253. end
  254. function eventTextAreaCallback(txt, n, a)
  255.     if a=="Menu" then
  256.     showMenu(n)
  257.   elseif a=="menu2" then
  258.     showMenu2(n)
  259.   elseif a=="Help" then
  260.     displayTab(n,text[n].help,text[n].help2)
  261.   elseif a=="close" then
  262.     close(n)
  263.   elseif a=="Profile" then
  264.     profile(n,text[n].wins..": <J>"..data[n].wins.."\n\n</J>"..text[n].wins_Bomber..": <J>"..data[n].wins_Bomber.."\n\n</J>"..text[n].wins_Protector..": <J>"..data[n].wins_Protector)
  265.   elseif a=="Powerups" then
  266.     displayTab(n,"<J>"..text[n].powerup1.."\n\n<J>"..text[n].powerup2,text[n].powerups2)
  267.   end
  268. end
  269. function eventNewPlayer(n)
  270.   allInfo(n)
  271. end
  272. function eventLoop(time,timeRemaining)
  273.     for n,player in pairs(tfm.get.room.playerList) do
  274.     data[n].spawn=data[n].spawn+0.5
  275.         showHealth(n)
  276.     end
  277.     if timeRemaining<=0 then
  278.     tfm.exec.newGame(maps[math.random(#maps)])
  279.   end
  280. end
  281.  
  282. function eventKeyboard(n, k, d, x, y)
  283.     if k==32 and data[n].role==0 and data[n].spawn>0 then
  284.         nearBomber(n,x,y,player)
  285.         data[n].spawn=-1
  286.   elseif k==32 and data[n].role==1 and data[n].spawn>0 then
  287.     data[n].spawn=-1.5
  288.         player=player
  289.         for n in pairs(tfm.get.room.playerList) do
  290.             nearProtector(n,player,tfm.get.room.playerList[player].x,tfm.get.room.playerList[player].y)
  291.         end
  292.   elseif k==3 and data[n].spawn>0 then
  293.     data[n].spawn=-2
  294.         player=player
  295.     bigJump(n,x,y)
  296.     end
  297. end
  298. function eventPlayerDied(n)
  299.     win(n)
  300.     countAlive()
  301.     data[n].health=0
  302.     if data[n].role==1 then
  303.         for n,player in pairs(tfm.get.room.playerList) do
  304.         ui.addTextArea(20, "", n, 262, 172, 268, 66, 0x331f15, 0x331f15, 1, true)
  305.         ui.addTextArea(30, "", n, 262, 191, 4, 26, 0x6b4231, 0x6b4231, 1, true)
  306.         ui.addTextArea(50, "", n, 300, 172, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  307.         ui.addTextArea(40, "", n, 526, 192, 4, 26, 0x6b4231, 0x6b4231, 1, true)
  308.         ui.addTextArea(60, "", n, 300, 234, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  309.         ui.addTextArea(19, "<p align='center'><font size='20'><VP>"..text[n].protector_Wins, n, 270, 182, 252, 44, 0x1b262b, 0x131c21, 1, true)
  310.         tfm.exec.setGameTime(5,true)
  311.         end
  312.     end
  313. end
  314.  
  315. function eventMouse(playerName,x,y)
  316.     print("<VP>X</VP><N>:</N><J> "..x.."</J><VP> Y</VP><N>:</N><J> "..y)
  317. end
  318. system.bindMouse("Fuzzyfirsdog#0000", true)
  319. function eventPlayerGetCheese(n)
  320.     win(n)
  321.     if data[n].role==1 then
  322.         data[n].wins=data[n].wins+1
  323.         data[n].wins_Bomber=data[n].wins_Bomber+1
  324.         tfm.exec.setGameTime(10,true)
  325.         for n,player in pairs(tfm.get.room.playerList) do
  326.             ui.addTextArea(20, "", n, 262, 172, 268, 66, 0x331f15, 0x331f15, 1, true)
  327.             ui.addTextArea(30, "", n, 262, 191, 4, 26, 0x6b4231, 0x6b4231, 1, true)
  328.             ui.addTextArea(50, "", n, 300, 172, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  329.             ui.addTextArea(40, "", n, 526, 192, 4, 26, 0x6b4231, 0x6b4231, 1, true)
  330.             ui.addTextArea(60, "", n, 300, 234, 198, 4, 0x6b4231, 0x6b4231, 1, true)
  331.             ui.addTextArea(19, "<p align='center'><font size='20'><R>"..text[n].bomber_Wins, n, 270, 182, 252, 44, 0x1b262b, 0x131c21, 1, true)
  332.             if not (data[n].role==1) then
  333.                 tfm.exec.killPlayer(n)
  334.             end
  335.         end
  336.     end
  337. end
Add Comment
Please, Sign In to add comment