Olá gostaria de uma ajudinha com o script da yalahari quest !
ele funciona perfeitamente
mas na hora que ele cria os monstros fica spamando erro na distro!
e só para quando todas as waves sao sumonadas!
ERRO
[3/11/2018 10:8:17] [Error - Action Interface]
[3/11/2018 10:8:17] data/actions/scripts/quests/azerus_quest.lua:onUse
[3/11/2018 10:8:17] Description:
[3/11/2018 10:8:17] (LuaInterface::luaGetThingFromPosition) Tile not found
ACTIONS.XML
-- Config #1 --
local BlindField = {x=1162, y=737, z=10, stackpos=1}
-- end --
function mapArea(fromPos, toPos, stack)
-- Area iterator by Colandus.
local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z}
return function()
if (pos.y < toPos.y) then
pos.y = pos.y+1
elseif (pos.x <= toPos.x) then
pos.y = fromPos.y
pos.x = pos.x+1
else
pos.x = fromPos.x
pos.y = fromPos.y
pos.z = pos.z+1
end
if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then
if (stack == nil) then
return pos
else
pos.stackpos = stack
--return pos, getTileThingByPos(pos)
return pos, getThingfromPos(pos)
end
end
end
end
function getMonstersfromArea(fromPos, toPos)
local monsters = {}
for _, thing in mapArea(fromPos, toPos, 253) do
if isMonster(thing.uid) == TRUE then
table.insert(monsters, thing.uid)
end
end
local bfm = getThingfromPos(BlindField)
if isMonster(bfm.uid) == TRUE then
table.insert(monsters, bfm.uid)
end
return monsters
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local topLeft = {x=1155, y=736, z=10}
local buttomRight = {x=1175, y=756, z=10}
local monsters = getMonstersfromArea(topLeft, buttomRight)
local monsters1 = getMonstersfromArea(topLeft, buttomRight)
local tp = {x=1164, y=755, z=10}
local glo = {x=1164, y=746, z=10}
local function FirstWave()
doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z})
doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z})
end
local function FifthWave()
doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z})
end
local function SecondWave()
local monsters1 = getMonstersfromArea(topLeft, buttomRight)
for _, monster in pairs(monsters1) do
if getCreatureName(monster) == "Azerus" then
doRemoveCreature(monster)
end
end
doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z})
doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z})
end
local function SixthWave()
doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z})
end
local function ThirdWave()
local monsters1 = getMonstersfromArea(topLeft, buttomRight)
for _, monster in pairs(monsters1) do
if getCreatureName(monster) == "Azerus" then
doRemoveCreature(monster)
end
end
doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z})
doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z})
end
local function ThirdWave1() -- with 2s delay
doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z})
doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z})
end
local function FourthWave()
doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z})
end
local function SevenWave()
local monsters1 = getMonstersfromArea(topLeft, buttomRight)
for _, monster in pairs(monsters1) do
if getCreatureName(monster) == "Azerus" then
doRemoveCreature(monster)
end
end
doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z})
doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z})
doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z})
doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z})
doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z})
end
local function Glllobe()
local monst = getMonstersfromArea(topLeft, buttomRight)
for i = 1, #monst do
doRemoveCreature(monst)
end
local item1 = getTileItemById(glo, 9767)
doItemSetAttribute(item1.uid, "aid", 58261)
end
local function createWall(p)
local janek = doCreateItem(1387,1,{x=1165, y=757, z=9})
doItemSetAttribute(janek, "aid", 9105)
end
local function createWalll(i)
local ela = doCreateItem(1387,1,{x=1164, y=755, z=10})
doItemSetAttribute(ela, "aid", 9106)
end
local wall0 = {x=1165, y=757, z=9, stackpos=1}
local getwall0 = getThingfromPos(wall0)
local wall1 = {x=1164, y=755, z=10, stackpos=1}
local getwall1 = getThingfromPos(wall1)
local monsters = getMonstersfromArea(topLeft, buttomRight)
local monsters1 = getMonstersfromArea(topLeft, buttomRight)
local tele_chk = getTileItemById(tp, 1387)
if item.actionid == 58261 then
doItemSetAttribute(item.uid, "aid", 58263)
end
if tele_chk.uid > 0 then
doRemoveItem(getTileItemById(tp,1387).uid)
doRemoveItem(getwall0.uid,1)
addEvent(FirstWave, 0)
addEvent(FifthWave, 30000)
addEvent(SecondWave, 60000)
addEvent(SixthWave, 90000)
addEvent(ThirdWave, 120000)
addEvent(ThirdWave1, 150000)
addEvent(FourthWave, 180000)
addEvent(SevenWave, 210000)
addEvent(Glllobe, 400000)
p = {wallid = getwall0.itemid}
addEvent(createWall, 300*1000, p)
i = {wallid = getwall1.itemid}
addEvent(createWalll, 300*1000, i)
end
if item.actionid == 58263 then
doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1)
end
return TRUE
end
QUEM PUDER AJUDAR MUITO OBRIGADO!