Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PLAYERS = {
- }
- SPRITES = {
- resting = {
- [1] = {
- right = "153a43d39b8.png",
- left = "153a43e7a32.png",
- x = -13,
- y = -7,
- },
- [2] = {
- right = "153a4407b5c.png",
- left = "153a43ff594.png",
- x = -13,
- y = -7,
- },
- [3] = {
- right = "153a446e153.png",
- left = "153a4464dae.png",
- x = -13,
- y = -7,
- },
- [4] = {
- right = "153a449f2e9.png",
- left = "153a44a4656.png",
- x = -13,
- y = -7,
- }
- },
- flying = {
- [1] = {
- right = "153a5a7de6d.png",
- left = "153a5a9fd86.png",
- x = -13,
- y = -22,
- },
- [2] = {
- right = "153a5ac019c.png",
- left = "153a5ab8eb2.png",
- x = -13,
- y = -22,
- },
- }
- }
- function eventNewPlayer(player)
- PLAYERS[player] = {
- imageId = -1,
- currentSprite = "resting",
- currentSpriteTick = math.random(#SPRITES.resting),
- look = "right",
- isFlying = false,
- objId = 1
- }
- PLAYERS[player].imageId = tfm.exec.addImage(SPRITES.resting[1].right, "%"..player, SPRITES.resting[1].x, SPRITES.resting[1].y, nil)
- for key = 0, 3 do
- system.bindKeyboard(player, key, true, true)
- end
- system.bindKeyboard(player, 32, true, true)
- system.bindKeyboard(player, 32, false, true)
- end
- function notifyLoop()
- local ticks = 5
- local s = 1000/ticks
- for t = 0, 1000 - s, s do
- system.newTimer(function ()
- system.newTimer(loop, 1000, true)
- end, 1000 + t, false)
- end
- end
- function eventKeyboard(player, key, down, x, y)
- if key == 0 then
- PLAYERS[player].look = "left"
- elseif key == 2 then
- PLAYERS[player].look = "right"
- elseif key == 32 then
- local data = PLAYERS[player]
- if down then
- data.currentSprite = "flying"
- data.currentSpriteTick = 1
- local playerSprite = SPRITES[data.currentSprite]
- tfm.exec.removeImage(data.imageId)
- playerSprite = playerSprite[math.random(#playerSprite)]
- data.imageId = tfm.exec.addImage(playerSprite[data.look], "%"..player, playerSprite.x, playerSprite.y, nil)
- else
- data.currentSprite = "resting"
- end
- data.isFlying = down
- end
- end
- function loop(tick, ntick)
- for player, data in pairs(PLAYERS) do
- local playerSprite = SPRITES[data.currentSprite]
- local sprite = data.currentSprite
- if sprite == "resting" then
- data.currentSpriteTick = math.random(#SPRITES.resting)
- end
- if data.isFlying then
- tfm.exec.movePlayer(player, 0, 0, false, 0, -20, false)
- if math.random(0, 100) > 95 then
- local pdata = tfm.get.room.playerList[player]
- local x, y = pdata.x, pdata.y
- tfm.exec.removeObject(data.objId)
- data.objId = tfm.exec.addShamanObject(34, x, y, 0, 0, 10, false)
- end
- end
- data.currentSpriteTick = data.currentSpriteTick+1
- if data.currentSpriteTick > #playerSprite then
- data.currentSpriteTick = 1
- end
- tfm.exec.removeImage(data.imageId)
- playerSprite = playerSprite[data.currentSpriteTick]
- data.imageId = tfm.exec.addImage(playerSprite[data.look], "%"..player, playerSprite.x, playerSprite.y, nil)
- end
- end
- for k, v in pairs(tfm.get.room.playerList) do
- eventNewPlayer(k)
- end
- notifyLoop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement