Mousetat

Pigeons by Eshkation edited

Sep 16th, 2016
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. PLAYERS = {
  2.  
  3. }
  4.  
  5. SPRITES = {
  6. resting = {
  7. [1] = {
  8. right = "153a43d39b8.png",
  9. left = "153a43e7a32.png",
  10. x = -13,
  11. y = -7,
  12. },
  13. [2] = {
  14. right = "153a4407b5c.png",
  15. left = "153a43ff594.png",
  16. x = -13,
  17. y = -7,
  18. },
  19. [3] = {
  20. right = "153a446e153.png",
  21. left = "153a4464dae.png",
  22. x = -13,
  23. y = -7,
  24. },
  25. [4] = {
  26. right = "153a449f2e9.png",
  27. left = "153a44a4656.png",
  28. x = -13,
  29. y = -7,
  30. }
  31. },
  32. flying = {
  33. [1] = {
  34. right = "153a5a7de6d.png",
  35. left = "153a5a9fd86.png",
  36. x = -13,
  37. y = -22,
  38. },
  39. [2] = {
  40. right = "153a5ac019c.png",
  41. left = "153a5ab8eb2.png",
  42. x = -13,
  43. y = -22,
  44. },
  45. }
  46. }
  47.  
  48. function eventNewPlayer(player)
  49. print(player)
  50. PLAYERS[player] = {
  51. imageId = -1,
  52. currentSprite = "resting",
  53. currentSpriteTick = math.random(#SPRITES.resting),
  54. look = "right",
  55. isFlying = false,
  56. objId = 1,
  57. isDead=false
  58. }
  59. PLAYERS[player].imageId = tfm.exec.addImage(SPRITES.resting[1].right, "%"..player, SPRITES.resting[1].x, SPRITES.resting[1].y, nil)
  60. for key = 0, 3 do
  61. system.bindKeyboard(player, key, true, true)
  62. end
  63. system.bindKeyboard(player, 32, true, true)
  64. system.bindKeyboard(player, 32, false, true)
  65. end
  66.  
  67. function notifyLoop()
  68. local ticks = 5
  69. local s = 1000/ticks
  70. for t = 0, 1000 - s, s do
  71. system.newTimer(function ()
  72. system.newTimer(loop, 1000, true)
  73. end, 1000 + t, false)
  74. end
  75. end
  76.  
  77.  
  78. function eventKeyboard(player, key, down, x, y)
  79. if key == 0 then
  80. PLAYERS[player].look = "left"
  81. elseif key == 2 then
  82. PLAYERS[player].look = "right"
  83. elseif key == 32 then
  84. local data = PLAYERS[player]
  85. if down then
  86. data.currentSprite = "flying"
  87. data.currentSpriteTick = 1
  88. local playerSprite = SPRITES[data.currentSprite]
  89. tfm.exec.removeImage(data.imageId)
  90. playerSprite = playerSprite[math.random(#playerSprite)]
  91. data.imageId = tfm.exec.addImage(playerSprite[data.look], "%"..player, playerSprite.x, playerSprite.y, nil)
  92. else
  93. data.currentSprite = "resting"
  94. end
  95. data.isFlying = down
  96. elseif key==3 and PLAYERS[player].isFlying and PLAYERS[player].isDead==false then
  97. PLAYERS[player].objId=tfm.exec.addShamanObject(34, x, y+10, 0, 0, 10, false)
  98. end
  99. end
  100.  
  101. function eventLoop(time,remaining)
  102. if remaining<=2000 then
  103. tfm.exec.newGame('#17')
  104. end
  105. end
  106.  
  107. function loop(tick, ntick)
  108.  
  109. for player, data in pairs(PLAYERS) do
  110. local playerSprite = SPRITES[data.currentSprite]
  111. local sprite = data.currentSprite
  112. if sprite == "resting" then
  113. data.currentSpriteTick = math.random(#SPRITES.resting)
  114. end
  115. if data.isFlying then
  116. tfm.exec.movePlayer(player, 0, 0, false, 0, -20, false)
  117.  
  118. end
  119. data.currentSpriteTick = data.currentSpriteTick+1
  120. if data.currentSpriteTick > #playerSprite then
  121. data.currentSpriteTick = 1
  122. end
  123. tfm.exec.removeImage(data.imageId)
  124. playerSprite = playerSprite[data.currentSpriteTick]
  125. data.imageId = tfm.exec.addImage(playerSprite[data.look], "%"..player, playerSprite.x, playerSprite.y, nil)
  126. end
  127. end
  128.  
  129. for k, v in pairs(tfm.get.room.playerList) do
  130. eventNewPlayer(k)
  131. end
  132.  
  133. function eventNewGame()
  134. for name,player in pairs(tfm.get.room.playerList) do
  135. PLAYERS[name].isDead=false
  136. end
  137. end
  138.  
  139. function eventPlayerWon(name)
  140. PLAYERS[name].isDead=true
  141. end
  142.  
  143. function eventPlayerDied(name)
  144. PLAYERS[name].isDead=true
  145. end
  146.  
  147. notifyLoop()
Advertisement
Add Comment
Please, Sign In to add comment