jeanflamengo 24 Postado Julho 16, 2017 Share Postado Julho 16, 2017 Boa Tarde peço que se estiver na área errada que movam plz Tenho o sistema de autoloot no servidor (tu clica no corpo e o loot vem para a bag) mas qnd tem + de 1 corpo no mesmo sqm o sistema puxa somente o loot do corpo de cima e a minha duvida é se existe alguma função no servidor ou source que faça com que ao abrir um corpo que tenha 1 ou mais corpos em baixo do mesmo ele abra todos esses corpos. Link para o comentário Compartilhar em outros sites More sharing options...
gabrielbsales 174 Postado Julho 17, 2017 Share Postado Julho 17, 2017 E ai,cara \o Tu vai ter que, no action do autoloot, adicionar os "comandos" para procurar mais items na mesma posição do item clicado, mas em outras stackpos(0, 255), 0 é o tile. Uma luz pra você: local pos = fromposlocal corpse = nilfor s = 1, 255 do pos.stackpos = s corpse = getThingfromPos(pos) if corpse and corpse.uid ~= 0 then --coletar itens do corpo endend Link para o comentário Compartilhar em outros sites More sharing options...
jeanflamengo 24 Postado Julho 17, 2017 Autor Share Postado Julho 17, 2017 vlw meu popançudo de lua eu achei um topico que falava sobre a mesma coisa e consegui colocar no Huatson (base dxp) e ficou assim: function onUse(cid, item, frompos, item2, topos) if isWatchingTv(cid) then return true end local function getContainers(pos) local things = getTileInfo(pos).things local ret = {} for stack = 0, things do pos.stackpos = stack local item = getTileThingByPos(pos) if item and isContainer(item.uid) then local quemMatou = getItemAttribute(item.uid, "corpseowner") if quemMatou then local player = getCreatureByName(quemMatou) if isPlayer(player) then local isInParyWithPlayer = false if isInParty(cid) and isInParty(player) then isInParyWithPlayer = isPartyEquals(player, cid) end if getCreatureName(cid) == quemMatou or isInParyWithPlayer then table.insert(ret, item) end end end end end return ret end local corpses = getContainers(getThingPosition(item.uid)) if #corpses == 0 then doPlayerSendCancel(cid, "Você não pode abrir um loot que não é seu.") return true end local autoLootList = getAllItensInMyList(cid) local bag = getPlayerSlotItem(cid, 3).uid local itemsToRemove = {} for _, corpse in pairs(corpses) do for a = -1, getContainerSize(corpse.uid) - 1 do local it = getContainerItem(corpse.uid, a) if it.uid > 0 then --if addItemInFreeBag(bag, it.itemid, it.type) ~= false then if doPlayerAddItemStacking(cid, it.itemid, it.type) ~= false then table.insert(itemsToRemove, it.uid) end end end end if #itemsToRemove > 0 then for i = 1, #itemsToRemove do doChangeTypeItem(itemsToRemove, 0) end end end agora só falta arrumar o seguinte: 1 qnd o loot stack dentro de uma bag x e passa a quantidade de 100 o que sobrou de loot volta pra bag principal, exemplo tenho 90 seed na bag x (essa sendo uma bag qlqr que utilizo somente para loot) e qnd coleto + 20 seeds, 10 desses stackam com os 90 e 10 vão para a bag inicial não ficando dentro de mesma bag que estava os seeds. obs: a bag tinha espaço ^^ Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Novembro 29, 2017 Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Novembro 29, 2017 Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados