local config = {
requiredLevel = 100,
daily = false,
centerPosition = Position(32799, 32829, 14),
rangeX = 20,
rangeY = 20,
timeopen = 1200,
timekill = 15,
playerPositions = {
Position(32759, 32868, 14),
},
newPositions = {
Position(32795, 32816, 14),
},
demonPositions = {
Position(32799, 32829, 14)
}
}
local function checkPlayers(centerPosition, rangeX, rangeY)
local spectators = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY)
for _, spec in ipairs(spectators) do
if spec:isPlayer() then
return true
end
end
return false
end
local function cleanBossRoom(centerPosition, rangeX, rangeY)
local spectators = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY)
for _, spec in ipairs(spectators) do
if spec:isMonster() then
spec:remove()
end
end
end
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item.itemid == 9826 then
local storePlayers, playerTile = {}
local tmpConfig = config
if not tmpConfig then
return true
end
for i = 1, #config.playerPositions do
playerTile = Tile(config.playerPositions[i]):getTopCreature()
if playerTile and playerTile:getLevel() < config.requiredLevel then
player:sendTextMessage(MESSAGE_STATUS_SMALL, "All the players need to be level ".. config.requiredLevel .." or higher.")
return true
end
storePlayers[#storePlayers + 1] = playerTile
end
if roomIsOccupied(tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY) then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'There is someone in the room.')
return true
end
cleanBossRoom(tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY)
for i = 1, #config.demonPositions do
Game.createMonster("demon", config.demonPositions[i])
end
local players
for i = 1, #storePlayers do
players = storePlayers[i]
config.playerPositions[i]:sendMagicEffect(CONST_ME_POFF)
players:teleportTo(config.newPositions[i])
player:sendTextMessage(MESSAGE_STATUS_WARNING, 'You have ' .. config.timekill .. ' minute(s) to kill lloyd.')
config.newPositions[i]:sendMagicEffect(CONST_ME_ENERGYAREA)
players:setDirection(DIRECTION_EAST)
end
elseif item.itemid == 9825 then
if config.daily then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_NOTPOSSIBLE))
return true
end
end
item:transform(item.itemid == 9826 and 9825 or 9826)
return true
end