Estou com um problema e faz tempo que procuro a solução em diversos Forum's e não acho.
É o seguinte:
Tenho um script de "AutoGold" que funciona plenamente, só que quando mato monstros "sem corpse" como Slime e derivados ou Rift Worm ele trava meu servidor e fica aparecendo mensagens constantes uma atrás da outra assim.
"[Error - CreatureScript Interface]
In a timer event called from:
data/creaturescripts/scripts/autoloot.lua:onKill
Description:
(LuaInterface::luaGetThing) Thing not found"
Meu Script é esse:
local configs = {
ids = {2148, 2152, 2160, 7588, 7589, 7590, 7591, 7618, 7620, 8473},
premium = true -- só premium usar o auto loot ? [true ou false]
}
function getItemsInContainerById(container, itemid)
local items = {}
if getContainerSize(container) > 0 then
for slot=0, (getContainerSize(container)-1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getItemsInContainerById(item.uid, itemid)
for i=0, #itemsbag do
table.insert(items, itemsbag[i])
end
else
if itemid == item.itemid then
table.insert(items, item.uid)
end
end
end
end
return items
end
function autoGold(cid, pos, stack)
if stack > 255 then
return true
end
local position = {x = pos.x, y = pos.y, z = pos.z, stackpos = stack}
local tile = getThingFromPos(position)
if isCorpse(tile.uid) then
corpse = tile
else
autoGold(cid, pos, stack + 1)
end
if corpse ~= nil then
for _, idmoney in pairs(configs.ids) do
tab = getItemsInContainerById(corpse.uid, idmoney)
if #tab ~= 0 then
for _, uid in pairs(tab) do
money = getPlayerMoney(cid)
doPlayerRemoveMoney(cid, money)
doPlayerAddMoney(cid, money+item.type)
doRemoveItem(item.uid, item.type)
end
end
end
end
end
function onKill(cid, target)
if not isPremium(cid) and configs.premium then
return true
end
return addEvent(autoGold, 10, cid, getCreaturePosition(target), 0)
end
Muito agradecido quem puder me ajudar...