Advertisement
Guest User

firestorm library

a guest
Oct 5th, 2015
869
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.32 KB | None | 0 0
  1. -- firestorm Variables
  2. fsJoinedCountGlobalStorage = 18900 --Player joined event count / recuento de players.
  3. fsJoinStorage = 18901 --player join storage / storage del jugador a unirse.
  4. fsMinPlayers = 2 --min players needed when time runout / minimo de players necesarios para comenzar el evento.
  5. fsMaxPlayers = 5 --max players to join / maximo de players.
  6. fsTrophy = 7369 --trophy itemid / itemid del premio(que no sea stackable).
  7. fsEventCountGlobalStorage = 18902 --firestorm Count (no move/no moverle).
  8.  
  9. fsWaitMinutes = 1 --when event has opened, how long until it starts? / cuantos minutos tarde el evento en empezar.
  10. fsWaitingRoomPos = Position(1016, 940, 7) --middle of waiting room / punto medio de el cuarto de espera.
  11. fsArena = Position(991, 930, 7) --when even start where should player be teleported in the arena? / punto donde seran transportados los players.
  12. fsArenaFromPosition = Position(984, 925, 7) --pos of top left corner / posicion de esquina superior izquierda.
  13. fsArenaToPosition = Position(998, 935, 7) --pos of bottom right corner /posicion de esquina inferior derecha.
  14. fsMiddleEventArena = Position(991, 930, 7) --Middle pos of the arena / punto medio de la arena
  15. fsWaitingRoomRadiusX = 8 --depends how big the waiting room is 20sqm to x / depende de lo grande la sala de espera en x
  16. fsWaitingRoomRadiusY = 8 --depends how big the waiting room is 20sqm to y / depende de lo grande la sala de espera en y
  17. fsEventArenaRadiusX = 15 --Depends how big the firestorm arena is 50sqm to x / depende de lo grande de la arena en x
  18. fsEventArenaRadiusY = 15 --Depends how big the firestorm arena is 50sqm to y / depende de lo grande de la arena en y
  19. fsStartedGlobalStorage = 18903 -- Value: 0 == false, 1 == true, 2 == started --State of the event
  20. fsCreateTeleportPosition = Position(1000, 1000, 7) --Where should the teleport be created? / posicion donde sera creado el teleport?
  21.  
  22. function startfirestorm()
  23.    local specs = Game.getSpectators(fsWaitingRoomPos, false, true, 0, fsWaitingRoomRadiusX, 0, fsWaitingRoomRadiusY)
  24.        if Game.getStorageValue(fsJoinedCountGlobalStorage) <= fsMinPlayers then
  25.   for i = 1, #specs do
  26.                    specs[i]:teleportTo(specs[i]:getTown():getTemplePosition(), false)
  27.                    specs[i]:setStorageValue(fsJoinStorage, 0)
  28.            end
  29.    resetfsVariables()
  30.            Game.broadcastMessage('firestorm Event failed to start, because of to little players joined the event!', MESSAGE_STATUS_WARNING)
  31.            return true
  32.        end
  33.        for i = 1, #specs do
  34. local rX, rY, rZ
  35. rX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x)
  36.        rY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y)
  37.        rZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z)
  38.            specs[i]:teleportTo(Position(rX, rY, rZ))
  39.        end
  40.        Game.broadcastMessage("firestorm Event has started, good luck to all participant.", MESSAGE_STATUS_WARNING)
  41.        Game.setStorageValue(fsStartedGlobalStorage, 2)
  42.   doStartfirestorm()
  43. end
  44.  
  45.  
  46. function doStartfirestorm()
  47.        if  Game.getStorageValue(fsJoinedCountGlobalStorage) > fsMaxPlayers then return false end
  48. if Game.getStorageValue(fsStartedGlobalStorage) == 2 then
  49. local specs = Game.getSpectators(fsArena, false, true, 0, 10, 0, 10)
  50. for i = 1, #specs do
  51.        local randX, randY, randZ
  52.        randX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x)
  53.        randY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y)
  54.        randZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z)
  55. local randfire = Position(randX, randY, randZ)
  56. local randX1, randY1, randZ1
  57.        randX1 = math.random(fsArenaFromPosition.x, fsArenaToPosition.x)
  58.        randY1 = math.random(fsArenaFromPosition.y, fsArenaToPosition.y)
  59.        randZ1 = math.random(fsArenaFromPosition.z, fsArenaToPosition.z)
  60. local randfire1 = Position(randX1, randY1, randZ1)
  61.    local creature, players = nil, Game.getPlayers()
  62. for i = 1, #players do
  63. creature = players[i]
  64. doSendDistanceShoot(fsArenaFromPosition, randfire, 4)
  65. doSendDistanceShoot(fsArenaToPosition, randfire, 4)
  66. doSendDistanceShoot(Position(998, 925, 7), randfire, 4)
  67. doSendDistanceShoot(Position(984, 935, 7), randfire, 4)
  68.    doAreaCombatHealth(creature.uid, COMBAT_HOLYDAMAGE, randfire,randfire, -9999, -1000000,7)
  69.                end
  70. end
  71.  
  72.            addEvent(doStartfirestorm, 500)
  73.        end
  74. end
  75.  
  76. function resetfsVariables()
  77.        Game.setStorageValue(fsEventCountGlobalStorage, 0)
  78.        Game.setStorageValue(fsJoinedCountGlobalStorage, 0)
  79.        Game.setStorageValue(fsStartedGlobalStorage, 0)
  80. end
  81. [/code]
  82.  
  83. [size=16]continue with Creaturescripts/scripts[/size]
  84.  
  85. [code]dofile('data/firestorm_event.lua')
  86. function onPrepareDeath(player, killer)
  87.    local winner = 0
  88. if player:getStorageValue(fsJoinStorage) >= 1 then
  89.    Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage)-1)
  90.        player:teleportTo(player:getTown():getTemplePosition())
  91.        player:setStorageValue(fsJoinStorage, 0)
  92.        player:addHealth(player:getMaxHealth())
  93.  
  94. if Game.getStorageValue(fsJoinedCountGlobalStorage) <= 1 then --Event ended, someone won!
  95.         local pla, play = nil, Game.getPlayers()
  96.         for i = 1, #play do
  97. pla = play[i]
  98.   if pla:getStorageValue(fsJoinStorage) == 1 then
  99. winner = pla:getId()
  100. break
  101. end
  102.            end
  103.            winner = Player(winner)
  104.             if winner then
  105.                winner:teleportTo(winner:getTown():getTemplePosition())
  106. winner:addHealth(winner:getMaxHealth())
  107.                local trophy = winner:addItem(fsTrophy, 1)
  108.                if trophy then
  109.                    trophy:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, '['.. winner:getName() ..'] has won the firestorm Event.')
  110.                end
  111.                 Game.broadcastMessage(string.format('%s is the winner of firestorm Event', winner:getName()), MESSAGE_STATUS_WARNING)
  112.            end
  113.            resetfsVariables()
  114.        end
  115.        return false
  116.    end
  117.    return true
  118. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement