--local eventCheckPlayers = {}
local block = {x = 683, y = 617, z = 11, stackpos = 2}
local block2 = {x = 691, y = 611, z = 11, stackpos = 2}
local heart = {x = 688, y = 621, z = 11, stackpos = 2}
local monsterpos = {x = 690, y = 625, z = 11} --teleport position
local monsterpos1 = {x = 693, y = 616, z = 11} --teleport position
local monsterpos2 = {x = 698, y = 617, z = 11} --teleport position
local monsterpos3 = {x = 686, y = 616, z = 11} --teleport position
local monsterpos4 = {x = 693, y = 621, z = 11} --teleport position
local exhausted_seconds = 1 *8*1000
local exhausted_storagevalue = 1259
-- THIS IS WHERE PLAYERS WILL TELEPORT IF THE TIME RUNS OUT
local fail_position = {x = 11111111111, y = 11111111111111, z = 11111111111}
-- THIS IS WHERE PLAYERS WILL TELEPORT IF THE TIME RUNS OUT
--local area = {
-- fromPos = {x = 683, y = 605, z = 11},
-- toPos = {x = 706, y = 628, z = 11}
--}
local function spawnMonsters()
addEvent(function()
doCreateMonster("Diabolic Imp", monsterpos)
doSendMagicEffect(monsterpos, 36)
end, exhausted_seconds*.01)
addEvent(function()
doCreateMonster("Diabolic Imp", monsterpos1)
doSendMagicEffect(monsterpos1, 36)
end, exhausted_seconds*.02)
addEvent(function()
doCreateMonster("Diabolic Imp", monsterpos2)
doSendMagicEffect(monsterpos2, 36)
end, exhausted_seconds*.03)
addEvent(function()
doCreateMonster("Minishabaal", monsterpos3)
doSendMagicEffect(monsterpos3, 36)
doCreateMonster("Diabolic Imp", monsterpos2)
doSendMagicEffect(monsterpos2, 36)
doCreateMonster("Diabolic Imp", monsterpos1)
doSendMagicEffect(monsterpos1, 36)
end, exhausted_seconds*.08)
addEvent(function()
doSendMagicEffect(monsterpos4, 36)
-- doRemoveItem(getTileItemById(monsterpos4,8635).uid,1)
doTransformItem(getTileItemById(monsterpos4,8635).uid,3655)
--doTransformItem(getThingFromPos(monsterpos4).uid, 3614)
end, exhausted_seconds*.049)
addEvent(function()
doSendMagicEffect(monsterpos4, 6)
doCreateMonster("Orshabaal", monsterpos4)
end, exhausted_seconds*.05)
end
local function removeCreatures()
local spec = getSpectators(heart, 50, 50)
if spec ~= nil then
for _, s in pairs(spec) do
if isMonster(s) then
doRemoveCreature(s)
--stopEvent(doThatShit)
print(2)
end
if isPlayer(s) then
doTeleportThing(s, fail_position)
end
end
end
end
local function resetRoom()
removeCreatures()
doRemoveItem(getTileItemById(block,1355).uid,1)
doTransformItem(getTileItemById(heart,3699).uid,3700)
doRemoveItem(getTileItemById(block2,1355).uid,1)
doTransformItem(getTileItemById(monsterpos4,3655).uid,8635)
addEvent(function()
doItemSetAttribute(getTileItemById(heart,3700).uid, "uid", 9050)
doItemSetAttribute(getTileItemById(heart,3700).uid, "aid", 9050)
end, 100)
end
--local function checkPlayers(cid)
-- if not isPlayer(cid) then
-- return true
-- end
-- for i = 1, 1 do
-- for _, pid in ipairs(getPlayersOnline()) do
-- local xpos = getPlayerPosition(pid)
-- if isInRange(heart, area.fromPos, area.toPos) then
-- print(1)
-- -- return 1
-- else
-- resetRoom()
-- stopEvent(timeOver)
-- stopEvent(countDown, 1000, heart)
-- local eventCheckPlayers = addEvent(checkPlayers, 1000, cid)
-- stopEvent(eventCheckPlayers, 1000, cid)
-- print(2)
-- end
-- end
-- -- continue(1000, 5, cid)
-- return true
-- end
--end
--local function doThatShit(cid, n)
-- if(n > 1) then
-- addEvent(checkPlayers, 1000, cid, n - 1)
-- end
-- return 0
--end
--local function timeOver()
-- local spec = getSpectators(heart, 50, 50)
-- if spec ~= nil then
-- for _, s in pairs(spec) do
-- if isMonster(s) then
-- doRemoveCreature(s)
-- end
-- end
-- doBroadcastMessage("Orshabaal has succesfully defended the Abyss.", 22)
-- resetRoom()
-- stopEvent(doThatShit)
-- end
--end
--local function countDown(number, pos, effect, msgonend, effectonend)
-- local n = number
-- for i = 1, number do
-- addEvent(doSendAnimatedText,i*1000, pos, n > 1 and n.."" or msgonend .."", n < 10 and TEXTCOLOR_RED or TEXTCOLOR_TEAL)
-- --addEvent(doSendMagicEffect,i* 1000, pos, n > 1 and effect or effectonend )
-- n = n -1
-- end
-- n = number
-- return true
--end
-- THIS FUNCTION CHECKS IF THE TIME HAS RUN OUT & IF THERE ARE PLAYERS STILL IN THE ARENA
-- IF NO PLAYERS IN AREA, OR TIME RUNS OUT, resetRoom() will happen.
local function countDown(number, pos, effect, msgonend, effectonend)
local count = 0
local spec = getSpectators(heart, 50, 50)
if spec ~= nil then
for _, pid in pairs(spec) do
if isPlayer(pid) then
count = 1
break
end
end
end
if count > 0 then
doSendAnimatedText(pos, number > 1 and "" .. number .. "" or msgonend, number < 10 and TEXTCOLOR_RED or TEXTCOLOR_TEAL)
doSendMagicEffect(pos, number > 1 and effect or effectonend )
if number > 0 then
addEvent(countDown, 1000, number - 1, pos, effect, msgonend, effectonend)
end
end
if number == 0 or count == 0 then
if number == 0 then
doBroadcastMessage("Orshabaal has successfully defended the Abyss.", 22)
end
resetRoom()
end
end
function onUse(cid, item, frompos, item2, topos)
countDown(exhausted_seconds/1000, heart, 5, "Time over...", 2)
doTeleportPlayersFromArea({x = 609, y = 510, z = 11}, {x = 684, y = 626, z = 11}, {x = 685, y = 618, z = 11}, true)
doTeleportPlayersFromArea({x = 667, y = 564, z = 11}, {x = 707, y = 606, z = 11}, {x = 685, y = 618, z = 11}, true)
if item.itemid == 3700 then
if isPlayer(cid) then
doRemoveItem(item.uid)
addEvent(doCreateItem,100,3699, 1, heart)
doCreateItem(1355, 1, block)
doCreateItem(1355, 1, block2)
doSendMagicEffect(heart, 36) --start
spawnMonsters()
--addEvent(timeOver, exhausted_seconds)
setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
doCreatureSay(cid, 'You just challenged Orshabaal!', TALKTYPE_ORANGE_1)
else
doCreatureSay(cid, 'You have succesfully completed this challenge, please wait the dwarf repair the engine!', TALKTYPE_ORANGE_1)
end
end
--addEvent(checkPlayers, 1000, cid)
return true
end