bazz33
New Member
- Joined
- Dec 13, 2013
- Messages
- 17
- Reaction score
- 0
Hello guys! I got some problems with my anni.lua and i do wonder if you might be able to help me out!
This is the error that i do recieve:
[26/03/2014 18:33:36] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/anni.lua)
[26/03/2014 18:33:36] data/actions/scripts/quests/anni.lua:5: unexpected symbol near 'local'
do you guys have any idea how to fix it? cuz the way i see it there is no unexpected symbol near 'local' :S
This is the script i use:
local config = {
daily = "no", -- allow only one team to enter per day? (like in global Tibia)
level = 100,
storage = 30015,
local room = { -- room with demons
fromX = 1221,
fromY = 969,
fromZ = 12,
--------------
toX = 1228,
toY = 969,
toZ = 12
}
local monster_pos = {
[1] = {pos = {1224, 967, 12}, monster = "Demon"},
[2] = {pos = {1222, 967, 12}, monster = "Demon"},
[3] = {pos = {1221, 971, 12}, monster = "Demon"},
[4] = {pos = {1223, 971, 12}, monster = "Demon"},
[5] = {pos = {1225, 969, 12}, monster = "Demon"},
[6] = {pos = {1226, 969, 12}, monster = "Demon"}
}
local players_pos = {
{x = 1224, y =969, z = 11, stackpos = 253},
{x = 1223, y =969, z = 11, stackpos = 253},
{x = 1222, y =969, z = 11, stackpos = 253},
{x = 1221, y =969, z = 11, stackpos = 253}
}
local new_player_pos = {
{x = 1224, y = 969, z = 12},
{x = 1223, y = 969, z = 12},
{x = 1222, y = 969, z = 12},
{x = 1221, y = 969, z = 12}
}
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, CONST_ME_POFF)
doTeleportThing(pid, config.destination, false)
doSendMagicEffect(config.destination, CONST_ME_TELEPORT)
end
doTransformItem(item.uid, item.itemid - 1)
return true
end
Kind Regards,
Bazz33
Edit: I do not get anymore errors except that i doesn't work to use the switch. Do anyone know why i can't use the switch?
This is the error that i do recieve:
[26/03/2014 18:33:36] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/anni.lua)
[26/03/2014 18:33:36] data/actions/scripts/quests/anni.lua:5: unexpected symbol near 'local'
do you guys have any idea how to fix it? cuz the way i see it there is no unexpected symbol near 'local' :S
This is the script i use:
local config = {
daily = "no", -- allow only one team to enter per day? (like in global Tibia)
level = 100,
storage = 30015,
local room = { -- room with demons
fromX = 1221,
fromY = 969,
fromZ = 12,
--------------
toX = 1228,
toY = 969,
toZ = 12
}
local monster_pos = {
[1] = {pos = {1224, 967, 12}, monster = "Demon"},
[2] = {pos = {1222, 967, 12}, monster = "Demon"},
[3] = {pos = {1221, 971, 12}, monster = "Demon"},
[4] = {pos = {1223, 971, 12}, monster = "Demon"},
[5] = {pos = {1225, 969, 12}, monster = "Demon"},
[6] = {pos = {1226, 969, 12}, monster = "Demon"}
}
local players_pos = {
{x = 1224, y =969, z = 11, stackpos = 253},
{x = 1223, y =969, z = 11, stackpos = 253},
{x = 1222, y =969, z = 11, stackpos = 253},
{x = 1221, y =969, z = 11, stackpos = 253}
}
local new_player_pos = {
{x = 1224, y = 969, z = 12},
{x = 1223, y = 969, z = 12},
{x = 1222, y = 969, z = 12},
{x = 1221, y = 969, z = 12}
}
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, CONST_ME_POFF)
doTeleportThing(pid, config.destination, false)
doSendMagicEffect(config.destination, CONST_ME_TELEPORT)
end
doTransformItem(item.uid, item.itemid - 1)
return true
end
Kind Regards,
Bazz33
Edit: I do not get anymore errors except that i doesn't work to use the switch. Do anyone know why i can't use the switch?
Last edited: