Okay,
so I've been trying to put in both Anni and Arena in my server but non of them seem to work.
Annihilator doesnt spawn any demon tho I get teleported, does anyone know what the problem with my script is?
I've removed three "stand positions" just to be able to test it with my GM.
[/i][/i][/i]
so I've been trying to put in both Anni and Arena in my server but non of them seem to work.
Annihilator doesnt spawn any demon tho I get teleported, does anyone know what the problem with my script is?
I've removed three "stand positions" just to be able to test it with my GM.
Lua:
local config = {
daily = "no", -- allow only one team to enter per day? (like in global Tibia)
level = 1,
storage = 30015,
room = {
{x = 218, y = 656, z = 8},
{x = 225, y = 662, z = 8}
},
stand = {
{x = 1064, y = 836, z = 8}
},
destination = {
{x = 222, y = 659, z = 8},
{x = 221, y = 659, z = 8},
{x = 220, y = 671, z = 8},
{x = 219, y = 671, z = 8}
},
wall = {
{x = 225, y = 659, z = 8}
},
rocks = {
{x = 219, y = 657, z = 8},
{x = 221, y = 657, z = 8},
{x = 219, y = 659, z = 8},
{x = 220, y = 659, z = 8},
{x = 221, y = 659, z = 8},
{x = 222, y = 659, z = 8},
{x = 223, y = 659, z = 8},
{x = 224, y = 659, z = 8},
{x = 220, y = 661, z = 8},
{x = 222, y = 661, z = 8}
},
demons = {
{x = 219, y = 657, z = 8},
{x = 221, y = 657, z = 8},
{x = 223, y = 659, z = 8},
{x = 224, y = 659, z = 8},
{x = 220, y = 661, z = 8},
{x = 222, y = 661, z = 8}
}
}
local function areaCheck(area)
local monsters, players = {}, {}
for x = config.room[1].x, config.room[2].x do
for y = config.room[1].y, config.room[2].y do
local t = getThingFromPos({x=x, y=y, z=config.room[1].z, stackpos=253})
if t.uid > 0 then
if isPlayer(t.uid) then
table.insert(players, t.uid)
elseif isMonster(t.uid) then
table.insert(monsters, t.uid)
end
end
end
end
return monsters, players
end
config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(item.itemid == 1945) then
if(config.daily) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
local monsters, players = areaCheck(config.room)
if #players > 0 then
return doPlayerSendCancel(cid, "There are players inside, please be patient.")
elseif #monsters > 0 then
for _, k in pairs(monsters) do
doRemoveThing(k)
end
end
for _, v in ipairs(config.rocks) do
doCreateItem(1285, 1, v)
end
local closed, open = getTileItemById(config.wall[1], 5108), getTileItemById(config.wall[1], 5109)
if(closed.uid > 0) then
doTransformItem(closed.uid, 1025)
elseif(open.uid > 0) then
doTransformItem(open.uid, 1025)
end
doTransformItem(item.uid, item.itemid + 1)
end
return true
end
if(item.itemid ~= 1946) then
return true
end
local players = {}
for _, position in ipairs(config.stand) do
local pid = getTopCreature(position).uid
if(pid == 0 or not isPlayer(pid)) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
elseif(getCreatureStorage(pid, config.storage) > 0) then
return doPlayerSendCancel(cid, "Someone has already completed this quest.")
elseif(getPlayerLevel(pid) < config.level) then
return doPlayerSendCancel(cid, "Someone is below level 100.")
end
table.insert(players, pid)
end
local stones = {}
for _, v in ipairs(config.rocks) do
local st = getTileItemById(v, 1285)
table.insert(stones, st)
end
for _, st in ipairs(stones) do
doRemoveItem(st.uid, 1)
end
local wall = getTileItemById(config.wall[1], 1025)
if(wall.uid > 0) then
doTransformItem(wall.uid, 5108)
end
for _, pos in ipairs(config.demons) do
doCreateMonster("Demon", pos, false, false)
doSendMagicEffect(pos, CONST_ME_ENERGYAREA)
end
for i, pid in ipairs(players) do
doSendMagicEffect(config.stand[i], CONST_ME_POFF)
doTeleportThing(pid, config.destination[i], false)
doSendMagicEffect(config.destination[i], CONST_ME_TELEPORT)
end
doTransformItem(item.uid, item.itemid - 1)
return true
end