Skip to content

Commit

Permalink
More Fix: ferumbras Ascendant Quest - review 10
Browse files Browse the repository at this point in the history
I'm testing more possibilities.
  • Loading branch information
htc16 committed Oct 5, 2024
1 parent a1be8af commit 77eec06
Show file tree
Hide file tree
Showing 7 changed files with 308 additions and 255 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,51 +21,56 @@ local config = {
local leverMazoran = Action()

function leverMazoran.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local cooldownTime = player:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.MazoranTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage("You must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end
local players = {}
local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)

local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)
for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end

local players = {}
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end
table.insert(players, creature)
end
local cooldownTime = creature:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.MazoranTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage(creature:getName() .. " must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end
if creature:getLevel() < config.requiredLevel then
player:sendCancelMessage(creature:getName() .. " needs to be at least level " .. config.requiredLevel .. " to challenge " .. config.boss.name .. ".")
return true
end

table.insert(players, creature)
end

for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end

local boss = Game.createMonster(config.boss.name, config.boss.position)
if boss then
boss:setReward(true)
end

addEvent(clearBossRoom, config.timeToDefeat * 1000, config.specPos.from, config.specPos.to, config.exit)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,46 +21,54 @@ local config = {
local leverPlagirath = Action()

function leverPlagirath.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local cooldownTime = player:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.PlagirathTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage("You must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end
local players = {}
local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)

local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)
for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end

local players = {}
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end
table.insert(players, creature)
end
local cooldownTime = creature:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.PlagirathTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage(creature:getName() .. " must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end
if creature:getLevel() < config.requiredLevel then
player:sendCancelMessage(creature:getName() .. " needs to be at least level " .. config.requiredLevel .. " to challenge " .. config.boss.name .. ".")
return true
end

table.insert(players, creature)
end

for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end

Game.createMonster(config.boss.name, config.boss.position)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,46 +28,54 @@ local config = {
local leverRagiaz = Action()

function leverRagiaz.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local cooldownTime = player:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.RagiazTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage("You must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end
local players = {}
local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)

local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)
for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end

local players = {}
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end
table.insert(players, creature)
end
local cooldownTime = creature:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.RagiazTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage(creature:getName() .. " must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end
if creature:getLevel() < config.requiredLevel then
player:sendCancelMessage(creature:getName() .. " needs to be at least level " .. config.requiredLevel .. " to challenge " .. config.boss.name .. ".")
return true
end

table.insert(players, creature)
end

for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end

Game.createMonster(config.boss.name, config.boss.position)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,46 +21,54 @@ local config = {
local leverRazzagorn = Action()

function leverRazzagorn.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local cooldownTime = player:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.RazzagornTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage("You must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end
local players = {}
local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)

local spectators = Game.getSpectators(config.specPos.from, false, false, 0, 0, 0, 0, config.specPos.to)
for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end

local players = {}
for i = 1, #config.playerPositions do
local pos = config.playerPositions[i].pos
local creature = Tile(pos):getTopCreature()
if not creature or not creature:isPlayer() then
player:sendCancelMessage("You need " .. #config.playerPositions .. " players to challenge " .. config.boss.name .. ".")
return true
end
table.insert(players, creature)
end
local cooldownTime = creature:getStorageValue(Storage.Quest.U10_90.FerumbrasAscension.RazzagornTime)
if cooldownTime > os.time() then
local remainingTime = cooldownTime - os.time()
local hours = math.floor(remainingTime / 3600)
local minutes = math.floor((remainingTime % 3600) / 60)
player:sendCancelMessage(creature:getName() .. " must wait " .. hours .. " hours and " .. minutes .. " minutes to challenge again.")
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end
if creature:getLevel() < config.requiredLevel then
player:sendCancelMessage(creature:getName() .. " needs to be at least level " .. config.requiredLevel .. " to challenge " .. config.boss.name .. ".")
return true
end

table.insert(players, creature)
end

for _, spec in pairs(spectators) do
if spec:isPlayer() then
player:say("Someone is already inside the room.", TALKTYPE_MONSTER_SAY)
return true
end
end

if isBossInRoom(config.specPos.from, config.specPos.to, config.boss.name) then
player:say("The room is being cleared. Please wait a moment.", TALKTYPE_MONSTER_SAY)
return true
end

for i = 1, #players do
local playerToTeleport = players[i]
local teleportPos = config.playerPositions[i].teleport
local effect = config.playerPositions[i].effect
playerToTeleport:teleportTo(teleportPos)
teleportPos:sendMagicEffect(effect)
end

Game.createMonster(config.boss.name, config.boss.position)

Expand Down
Loading

0 comments on commit 77eec06

Please sign in to comment.