local waves = {
[1] = Wave({
["demon skeleton"] = 3,
}),
[2] = Wave({
["Dragon"] = 1,
}),
[3] = Wave({
["Dragon lord"] = 1,
}),
}
local config = {
levers = {1945, 1946},
}
function rewardPlayers(player, arena)
player:addItem(2160, 1)
player:setStorageValue(2000, 1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations, you finished the arena " .. arena.name .. ".")
return true
end
function checkPlayer(player)
if player:getStorageValue(2000) <= 0 then
return true
else
return true
end
end
function spawnBroadcast(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Spawning wave " .. waveid .. ".")
return true
end
function waveClear(player, waveid, arena)
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cleared wave " .. waveid .. ".")
if player:getMaxHealth()-player:getHealth() > 0 then
player:addHealth(player:getMaxHealth()-player:getHealth())
end
return true
end
function jokerDeath(player, waveid, arena)
player:say("MUAHAHAHA", TALKTYPE_MONSTER_SAY, false, player, arena.position)
end
function arenaStart(player, arena)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have entered the arena " .. arena.name .. ".")
end
function arenaThink(arena, interval)
local players = arena:getPlayersInside()
if #players == 0 then
arena:reset()
else
for i, player in ipairs(players) do
player:addHealth(-50)
end
end
end
local arena = Arena("Hell", Position(32395, 32194, 7), Position(32400, 32203, 7), 6, Position(32400, 32203, 7))
arena:addPlayerPosition(Position(32399, 32202, 7), 50)
arena:addWaves(unpack(waves))
--arena:setJokerCreature("bug")
arena:setDelayWaves(5000)
arena:setDelayEnd(5000)
arena:setRewardCallback(rewardPlayers)
arena:setCheckCallback(checkPlayer)
arena:setSpawnCallback(spawnBroadcast)
arena:setWaveclearCallback(waveClear)
--arena:setJokerdeathCallback(jokerDeath)
--Arena:setCheckCallback(player)
arena:setStartCallback(arenaStart)
arena:setThinkCallback(arenaThink)
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item:getId() == config.levers[1] then
local ret = arena:useLever(player)
if ret then
item:transform(config.levers[2])
else
item:getPosition():sendMagicEffect(CONST_ME_POFF)
end
elseif item:getId() == config.levers[2] then
item:transform(config.levers[1])
end
return true
end