Postado Março 2, 2015 10 anos Bom dia galera, Está e minha primeira vez que estou usando o forum e qualquer erro por gentileza me orientem rsrs Bom vamos lá, estou com um problema na script de AUTOLOOT, fica dando varios erros : [02/03/2015 08:16:57] [Error - CreatureScript Interface] [02/03/2015 08:16:57] In a timer event called from: [02/03/2015 08:16:57] data/creaturescripts/scripts/aloot.lua:onKill [02/03/2015 08:16:58] Description: [02/03/2015 08:16:58] data/lib/050-function.lua:239: attempt to index a boolean value [02/03/2015 08:16:58] stack traceback: [02/03/2015 08:16:58] data/lib/050-function.lua:239: in function 'getItemName' [02/03/2015 08:16:58] data/creaturescripts/scripts/aloot.lua:51: in function <data/creaturescripts/scripts/aloot.lua:6> e a script está em anexo, Fico no aguardo !! aloot.lua
Postado Março 2, 2015 10 anos Teste assim. 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_BLUE, '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 = getItemNameById(item.itemid):lower() --- Alterado de getItemName(item.uid) para getItemNameById(item.itemid) // OrochiElf 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 Editado Março 2, 2015 10 anos por Orochi Elf (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.