Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- players={}
- --Superman gonna super
- powers={
- fly={
- keys={
- space=function(name,key,down,x,y)
- tfm.exec.movePlayer(name,nil,nil,nil,nil,-10,false)
- end
- }
- },
- dash={
- prep=function(name)
- players[name].dashL=0
- players[name].dashR=0
- end,
- keys={
- left=function(name,key,down,x,y)
- local player=players[name]
- local timestamp=os.time()
- player.dashR=0
- if timestamp-player.dashL<200 then
- throwSmoke(x,y)
- tfm.exec.movePlayer(name,nil,nil,nil,-40,nil,true)
- else
- player.dashL=timestamp
- end
- end
- right=function(name,key,down,x,y)
- local player=players[name]
- local timestamp=os.time()
- player.dashL=0
- if timestamp-player.dashR<200 then
- throwSmoke(x,y)
- tfm.exec.movePlayer(name,nil,nil,nil,40,nil,true)
- else
- player.dashR=timestamp
- end
- end
- }
- },
- cannonbolt={
- --dash forward
- },
- respawn={
- die=function(name)
- if not players[name].spawned then
- players[name].spawned=true
- tfm.exec.respawnPlayer(name)
- end
- end
- },
- steal={
- keys={
- space=function(name,key,down,x,y)
- for name,player in pairs(tfm.get.room.playerList) do
- if math.abs(x-player.x)<30 and math.abs(y-player.y)<30 then
- tfm.exec.giveCheese(name)
- break
- end
- end
- end
- }
- },
- party={
- loop=function(name,time,remaining)
- tfm.exec.setNameColor(name,math.random(0,3)*0x440000+math.random(0,3)*0x4400+math.random(0,3)*0x44)
- end
- }
- }
- --Hats gonna hat
- hats={
- 10={
- name="Lenneth",
- message="The souls of 4001 cheese grants you flight!",
- ability=powers.fly
- },
- 11={
- name="Ninja",
- message="Dashing through the map like a ninja of the night!",
- ability=powers.dash
- },
- 13={
- name="Halo",
- message="Elisah is watching over you...",
- ability=powers.respawn
- },
- 15={
- name="Bandit",
- message="Steal cheese from unsuspecting mice!",
- ability=powers.steal
- },
- 19={
- name="Nurse",
- message="The power of healing will save you!",
- ability=powers.respawn
- },
- 33={
- name="Party Hat",
- message="You're a party animal!",
- ability=powers.party
- },
- 34={
- name="Asterix",
- message="Winged cap dash me forward!",
- ability=powers.dash
- },
- 49={
- name="Jester",
- message="Oh you jest.",
- ability=powers.party
- },
- 52={
- name="Megaman",
- message="Dash 'n Roll!",
- ability=powers.dash
- },
- 53={
- name="Viewtiful Joe",
- message="Unlock Mach Speed VFX!",
- ability=powers.dash
- },
- 63={
- name="Sonic",
- message="Use your Spin Attack!",
- ability=powers.cannonbolt
- },
- 95={
- name="Cake",
- message="You're a party animal!",
- ability=powers.party
- },
- 96={
- name="Shadow",
- message="Unleash your Spin Dash!",
- ability=powers.cannonbolt
- },
- 110={
- name="Underpants",
- message="You're a party animal!",
- ability=powers.party
- }
- }
- --Smoke gonna smoke
- function throwSmoke(x,y)
- tfm.exec.removeObject(tfm.exec.addShamanObject(32,x,y))
- end
- --Mice gonna hat
- function getLook(name)
- local look=tfm.get.room.playerList[name].look
- local items={look:match("%d+")}
- for item in look:match(";(.+)"):gmatch("[^,]+") do
- table.insert(items,tonumber(item:match("%d+")) or 0)
- end
- return items
- end
- --Games gonna new
- function eventNewGame()
- for name,player in pairs(tfm.get.room.playerList) do
- if players[name] and players[name].keys then
- for key,data in pairs(players[name].keys) do
- tfm.exec.bindKeyboard(name,key,true,false)
- if data.both then
- tfm.exec.bindKeyboard(name,key,false,false)
- end
- end
- end
- player=players[name]={
- hat=hats[getLook(name)[2]]
- }
- if player.hat.ability.prep then
- player.hat.ability.prep(name)
- end
- if player.hat.ability.keys then
- player.keys={}
- for key,bind in pairs(player.hat.ability.keys) do
- local bindboth=false
- if key[1]=="_" then
- bindboth=true
- key=key:sub(2)
- end
- key=key=="space" and {32} or
- key=="down" and {40,83} or
- key=="left" and {37,81} or
- key=="right" and {39,68} or
- {tonumber(key:match("%d+"))} or
- {0}
- for i,key in ipairs(key) do
- player.keys[key]={
- bind=bind,
- both=bindboth
- tfm.exec.bindKeyboard(name,key,true,true)
- if bindboth then
- tfm.exec.bindKeyboard(name,key,false,true)
- end
- end
- end
- end
- tfm.exec.chatMessage("<N><b>"..player.hat.name.."</b><i>!</i> <J>"..player.hat.message,name)
- end
- end
- --Events gonna loop
- function eventLoop(time,remaining)
- for name,data in pairs(players) do
- if data.hat.ability.loop then
- data.hat.ability.loop(name,time,remaining)
- end
- end
- end
- --Newbs gonna new
- function eventNewPlayer(name)
- tfm.exec.chatMessage("<N>Welcome to <VP>#hats<N><i>!</i>\nWhat does your fashion sense say about you?",name)
- end
- --Newbs gonna die
- function eventPlayerDied(name)
- if players[name].hat.ability.die then
- players[name].hat.ability.die(name)
- end
- end
- --Keys gonna press
- function eventKeyboard(name,key,down,x,y)
- players[name].keys[key](name,key,down,x,y)
- end
- --Chats gonna command
- function eventChatCommand(name,message)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement