Advertisement
Fooksie

hats

Sep 1st, 2013
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.13 KB | None | 0 0
  1. players={}
  2.  
  3. --Superman gonna super
  4. powers={
  5.     fly={
  6.         keys={
  7.             space=function(name,key,down,x,y)
  8.                 tfm.exec.movePlayer(name,nil,nil,nil,nil,-10,false)
  9.                 end
  10.             }
  11.         },
  12.     dash={
  13.         prep=function(name)
  14.             players[name].dashL=0
  15.             players[name].dashR=0
  16.             end,
  17.         keys={
  18.             left=function(name,key,down,x,y)
  19.                 local player=players[name]
  20.                 local timestamp=os.time()
  21.                 player.dashR=0
  22.                 if timestamp-player.dashL<200 then
  23.                     throwSmoke(x,y)
  24.                     tfm.exec.movePlayer(name,nil,nil,nil,-40,nil,true)
  25.                 else
  26.                     player.dashL=timestamp
  27.                     end
  28.                 end
  29.             right=function(name,key,down,x,y)
  30.                 local player=players[name]
  31.                 local timestamp=os.time()
  32.                 player.dashL=0
  33.                 if timestamp-player.dashR<200 then
  34.                     throwSmoke(x,y)
  35.                     tfm.exec.movePlayer(name,nil,nil,nil,40,nil,true)
  36.                 else
  37.                     player.dashR=timestamp
  38.                     end
  39.                 end
  40.             }
  41.         },
  42.     cannonbolt={
  43.         --dash forward
  44.         },
  45.     respawn={
  46.         die=function(name)
  47.             if not players[name].spawned then
  48.                 players[name].spawned=true
  49.                 tfm.exec.respawnPlayer(name)
  50.                 end
  51.             end
  52.         },
  53.     steal={
  54.         keys={
  55.             space=function(name,key,down,x,y)
  56.                 for name,player in pairs(tfm.get.room.playerList) do
  57.                     if math.abs(x-player.x)<30 and math.abs(y-player.y)<30 then
  58.                         tfm.exec.giveCheese(name)
  59.                         break
  60.                         end
  61.                     end
  62.                 end
  63.             }
  64.         },
  65.     party={
  66.         loop=function(name,time,remaining)
  67.             tfm.exec.setNameColor(name,math.random(0,3)*0x440000+math.random(0,3)*0x4400+math.random(0,3)*0x44)
  68.             end
  69.         }
  70.     }
  71.  
  72. --Hats gonna hat
  73. hats={
  74.     10={
  75.         name="Lenneth",
  76.         message="The souls of 4001 cheese grants you flight!",
  77.         ability=powers.fly
  78.         },
  79.     11={
  80.         name="Ninja",
  81.         message="Dashing through the map like a ninja of the night!",
  82.         ability=powers.dash
  83.         },
  84.     13={
  85.         name="Halo",
  86.         message="Elisah is watching over you...",
  87.         ability=powers.respawn
  88.         },
  89.     15={
  90.         name="Bandit",
  91.         message="Steal cheese from unsuspecting mice!",
  92.         ability=powers.steal
  93.         },
  94.     19={
  95.         name="Nurse",
  96.         message="The power of healing will save you!",
  97.         ability=powers.respawn
  98.         },
  99.     33={
  100.         name="Party Hat",
  101.         message="You're a party animal!",
  102.         ability=powers.party
  103.         },
  104.     34={
  105.         name="Asterix",
  106.         message="Winged cap dash me forward!",
  107.         ability=powers.dash
  108.         },
  109.     49={
  110.         name="Jester",
  111.         message="Oh you jest.",
  112.         ability=powers.party
  113.         },
  114.     52={
  115.         name="Megaman",
  116.         message="Dash 'n Roll!",
  117.         ability=powers.dash
  118.         },
  119.     53={
  120.         name="Viewtiful Joe",
  121.         message="Unlock Mach Speed VFX!",
  122.         ability=powers.dash
  123.         },
  124.     63={
  125.         name="Sonic",
  126.         message="Use your Spin Attack!",
  127.         ability=powers.cannonbolt
  128.         },
  129.     95={
  130.         name="Cake",
  131.         message="You're a party animal!",
  132.         ability=powers.party
  133.         },
  134.     96={
  135.         name="Shadow",
  136.         message="Unleash your Spin Dash!",
  137.         ability=powers.cannonbolt
  138.         },
  139.     110={
  140.         name="Underpants",
  141.         message="You're a party animal!",
  142.         ability=powers.party
  143.         }
  144.     }
  145.  
  146. --Smoke gonna smoke
  147. function throwSmoke(x,y)
  148.     tfm.exec.removeObject(tfm.exec.addShamanObject(32,x,y))
  149.     end
  150.  
  151. --Mice gonna hat
  152. function getLook(name)
  153.     local look=tfm.get.room.playerList[name].look
  154.     local items={look:match("%d+")}
  155.     for item in look:match(";(.+)"):gmatch("[^,]+") do
  156.         table.insert(items,tonumber(item:match("%d+")) or 0)
  157.         end
  158.     return items
  159.     end
  160.  
  161. --Games gonna new
  162. function eventNewGame()
  163.     for name,player in pairs(tfm.get.room.playerList) do
  164.         if players[name] and players[name].keys then
  165.             for key,data in pairs(players[name].keys) do
  166.                 tfm.exec.bindKeyboard(name,key,true,false)
  167.                 if data.both then
  168.                     tfm.exec.bindKeyboard(name,key,false,false)
  169.                     end
  170.                 end
  171.             end
  172.         player=players[name]={
  173.             hat=hats[getLook(name)[2]]
  174.             }
  175.         if player.hat.ability.prep then
  176.             player.hat.ability.prep(name)
  177.             end
  178.         if player.hat.ability.keys then
  179.             player.keys={}
  180.             for key,bind in pairs(player.hat.ability.keys) do
  181.                 local bindboth=false
  182.                 if key[1]=="_" then
  183.                     bindboth=true
  184.                     key=key:sub(2)
  185.                     end
  186.                 key=key=="space" and {32} or
  187.                     key=="down" and {40,83} or
  188.                     key=="left" and {37,81} or
  189.                     key=="right" and {39,68} or
  190.                     {tonumber(key:match("%d+"))} or
  191.                     {0}
  192.                 for i,key in ipairs(key) do
  193.                     player.keys[key]={
  194.                         bind=bind,
  195.                         both=bindboth
  196.                     tfm.exec.bindKeyboard(name,key,true,true)
  197.                     if bindboth then
  198.                         tfm.exec.bindKeyboard(name,key,false,true)
  199.                         end
  200.                     end
  201.                 end
  202.             end
  203.         tfm.exec.chatMessage("<N><b>"..player.hat.name.."</b><i>!</i> <J>"..player.hat.message,name)
  204.         end
  205.     end
  206.  
  207. --Events gonna loop
  208. function eventLoop(time,remaining)
  209.     for name,data in pairs(players) do
  210.         if data.hat.ability.loop then
  211.             data.hat.ability.loop(name,time,remaining)
  212.             end
  213.         end
  214.     end
  215.  
  216. --Newbs gonna new
  217. function eventNewPlayer(name)
  218.     tfm.exec.chatMessage("<N>Welcome to <VP>#hats<N><i>!</i>\nWhat does your fashion sense say about you?",name)
  219.     end
  220.  
  221. --Newbs gonna die
  222. function eventPlayerDied(name)
  223.     if players[name].hat.ability.die then
  224.         players[name].hat.ability.die(name)
  225.         end
  226.     end
  227.  
  228. --Keys gonna press
  229. function eventKeyboard(name,key,down,x,y)
  230.     players[name].keys[key](name,key,down,x,y)
  231.     end
  232.  
  233. --Chats gonna command
  234. function eventChatCommand(name,message)
  235.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement