Ir para conteúdo

(Bug) Aloot


BrunooMaciell

Posts Recomendados

Estou com um bug no auto loot !!

 

BUG

 

[09/04/2014 15:01:25] [Error - CreatureScript Interface]
[09/04/2014 15:01:25] In a timer event called from:
[09/04/2014 15:01:26] data/creaturescripts/scripts/aloot.lua:onKill
[09/04/2014 15:01:26] Description:
[09/04/2014 15:01:26] data/lib/050-function.lua:239: attempt to index a boolean value
[09/04/2014 15:01:27] stack traceback:
[09/04/2014 15:01:27] data/lib/050-function.lua:239: in function 'getItemName'
[09/04/2014 15:01:27] data/creaturescripts/scripts/aloot.lua:57: in function

 

 

SCRIPT

 

function onLogin(cid)
registerCreatureEvent(cid, "aloot_kill")
return true
end

local stor = 7575

function autoloot(cid, target, pos)
local function doStack(cid, itemid, new)
local count = getPlayerItemCount(cid, itemid)
if (count > 100) then
count = count - math.floor(count / 100) * 100
end
local newCount = count + new
if (count ~= 0) then
local find = getPlayerItemById(cid, true, itemid, count).uid
if (find > 0) then
doRemoveItem(find)
else
newCount = new
end
end
local item = doCreateItemEx(itemid, newCount)
doPlayerAddItemEx(cid, item, true)
end

local function scanContainer(cid, uid, list)
for k = (getContainerSize(uid) - 1), 0, -1 do
local tmp = getContainerItem(uid, k)
if (isInArray(list, tmp.itemid)) then
if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then
doStack(cid, tmp.itemid, tmp.type)
else
local item = doCreateItemEx(tmp.itemid, tmp.type)
doPlayerAddItemEx(cid, item, true)
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.')
doRemoveItem(tmp.uid)
elseif isContainer(tmp.uid) then
scanContainer(cid, tmp.uid, list)
end
end
end

local items = {}
for i = getTileInfo(pos).items, 1, -1 do
pos.stackpos = i
table.insert(items, getThingFromPos(pos))
end

if (#items == 0) then
return
end

local corpse = -1
for _, item in ipairs(items) do
local name = getItemName(item.uid):lower()
if name:find(target:lower()) then
corpse = item.uid
break
end
end

if (corpse ~= -1) and isContainer(corpse) then
scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(','))
end
end

function onKill(cid, target, lastHit)
if not isPlayer(target) then
local infos = getPlayerStorageValue(cid, stor)
if (infos == -1) then
return true
end
local list = tostring(infos):explode(',')
if (#list == 0) then
return true
end
addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target))
end
return true
end

 

 

Curti++

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...