Help with quest please
[27/01/2010 21:04:32] [Error - Action Interface]
[27/01/2010 21:04:32] data/actions/scripts/theend/quests/hermesquestsystem.luanUse
[27/01/2010 21:04:32] Description:
[27/01/2010 21:04:32] (luaGetThing) Thing not found
[27/01/2010 21:04:32] [Error - Action Interface]
[27/01/2010 21:04:32] data/actions/scripts/theend/quests/hermesquestsystem.luanUse
[27/01/2010 21:04:32] Description:
[27/01/2010 21:04:32] .../actions/scripts/theend/quests/hermesquestsystem.lua:46: attempt to compare number with table
[27/01/2010 21:04:32] stack traceback:
[27/01/2010 21:04:33] .../actions/scripts/theend/quests/hermesquestsystem.lua:46: in function <.../actions/scripts/theend/quests/hermesquestsystem.lua:9>
this is my script:
my server is 8.54 using the forgotten server
THX
[27/01/2010 21:04:32] [Error - Action Interface]
[27/01/2010 21:04:32] data/actions/scripts/theend/quests/hermesquestsystem.luanUse
[27/01/2010 21:04:32] Description:
[27/01/2010 21:04:32] (luaGetThing) Thing not found
[27/01/2010 21:04:32] [Error - Action Interface]
[27/01/2010 21:04:32] data/actions/scripts/theend/quests/hermesquestsystem.luanUse
[27/01/2010 21:04:32] Description:
[27/01/2010 21:04:32] .../actions/scripts/theend/quests/hermesquestsystem.lua:46: attempt to compare number with table
[27/01/2010 21:04:32] stack traceback:
[27/01/2010 21:04:33] .../actions/scripts/theend/quests/hermesquestsystem.lua:46: in function <.../actions/scripts/theend/quests/hermesquestsystem.lua:9>
this is my script:
local specialQuests = {
[2001] = 30015 --Annihilator
}
local questsExperience = {
[30015] = 10000
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if( getPlayerGroupId(cid) >= 2 ) then
return TRUE
end
local storage = specialQuests[item.actionid]
if(storage == nil) then
storage = item.uid
if(storage > 65535) then
return FALSE
end
end
local result = "It is empty."
if(getPlayerStorageValue(cid, storage) == -1) then
local items = {}
local reward = 0
local size = getContainerSize(item.uid)
if(size == 0) then
reward = item
else
for i = 0, size do
local tmp = getContainerItem(item.uid, i)
if(tmp.itemid > 0) then
table.insert(items, tmp)
end
end
end
size = table.maxn(items)
if(size == 1) then
reward = item
end
if(reward ~= 0) then
local ret = getItemDescriptions(reward)
if(reward > 0 and isItemRune(reward) == TRUE) then
result = reward.type .. " charges " .. ret.name .. "."
elseif(reward > 0 and isItemStackable(reward) == TRUE) then
result = reward.type .. " " .. ret.plural .. "."
else
result = ret.article .. " " .. ret.name .. "."
end
else
if(size > 20) then
reward = item
elseif(size > 8) then
reward = getThing(doCreateItemEx(1988, 1))
else
reward = getThing(doCreateItemEx(1987, 1))
end
for i = size, 1, -1 do
local tmp = items
if(doAddContainerItemEx(reward.uid, tmp.uid) ~= RETURNVALUE_NOERROR) then
print("[Warning] QuestSystem:", "Could not add quest reward")
else
result = ", "
if(i == 2) then
result = " and "
elseif(i == 1) then
result = "."
end
local ret = getItemDescriptions(tmp.uid)
if(tmp.type > 0 and isItemRune(tmp.itemid) == TRUE) then
result = tmp.type .. " charges " .. ret.name .. result
elseif(tmp.type > 0 and isItemStackable(tmp.itemid) == TRUE) then
result = tmp.type .. " " .. ret.plural .. result
else
result = ret.article .. " " .. ret.name .. result
end
end
end
end
if(doPlayerAddItemEx(cid, reward, FALSE) ~= RETURNVALUE_NOERROR) then
result = "You have found a reward weighing " .. getItemWeight(reward.uid) .. " oz. It is too heavy or you have not enough space."
else
result = "You have found " .. result
setPlayerStorageValue(cid, storage, 1)
if(questsExperience[storage] ~= nil) then
doPlayerAddExp(cid, questsExperience[storage])
doSendAnimatedText(getCreaturePosition(cid), questsExperience[storage], TEXTCOLOR_WHITE_EXP)
end
end
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result)
return TRUE
end
my server is 8.54 using the forgotten server
THX