Tony Araujo 282 Postado Fevereiro 9, 2019 Share Postado Fevereiro 9, 2019 Eai galera do Eks, tudo bão? Quanto tempo que eu não venho por esses lados, saudades xD Bom, sem muita enrolação, eu vim postar pra vocês o sistema de auto loot que eu fiz aqui rapidinho (literalmente, 10 mins), porém que ficou bem bacana. É aquele esquema, você coleta o loot quando abre o corpo do bicho morto. Está bem simples, porém funcional. Eu pesquisei a respeito, pra ter uma ideia e não encontrei nenhum que tivesse com um código legal, todos estavam bem antigos. Eu não tive muito tempo testando, então caso encontrem qualquer bug, me avise pfv. function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end return false end FlamesAdmin, Taiger, jeanflamengo e 2 outros reagiu a isso 4 1 Link para o comentário Compartilhar em outros sites More sharing options...
JulianoZN 61 Postado Fevereiro 16, 2019 Share Postado Fevereiro 16, 2019 Em 09/02/2019 em 01:11, Tony Araujo disse: Eai galera do Eks, tudo bão? Quanto tempo que eu não venho por esses lados, saudades xD Bom, sem muita enrolação, eu vim postar pra vocês o sistema de auto loot que eu fiz aqui rapidinho (literalmente, 10 mins), porém que ficou bem bacana. É aquele esquema, você coleta o loot quando abre o corpo do bicho morto. Está bem simples, porém funcional. Eu pesquisei a respeito, pra ter uma ideia e não encontrei nenhum que tivesse com um código legal, todos estavam bem antigos. Eu não tive muito tempo testando, então caso encontrem qualquer bug, me avise pfv. function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end return false end e onde coloca isso jovem Link para o comentário Compartilhar em outros sites More sharing options...
lSainty 81 Postado Fevereiro 16, 2019 Share Postado Fevereiro 16, 2019 53 minutos atrás, JulianoZN disse: e onde coloca isso jovem Aparentemente vc coloca em actions e seta o action ID no corpo do monstro quando ele morre, ai quando o player clicar os itens vem pra bag. Link para o comentário Compartilhar em outros sites More sharing options...
JulianoZN 61 Postado Fevereiro 16, 2019 Share Postado Fevereiro 16, 2019 1 hora atrás, SirDubstep disse: Aparentemente vc coloca em actions e seta o action ID no corpo do monstro quando ele morre, ai quando o player clicar os itens vem pra bag. Obg Link para o comentário Compartilhar em outros sites More sharing options...
jeanflamengo 24 Postado Março 27, 2019 Share Postado Março 27, 2019 mano tu poderia colocar também para pegar o loot de todos os corpos que estiverem naquele SQM tipo PxG mesmo, os Otadmin iam pirar kkkk Reputado Link para o comentário Compartilhar em outros sites More sharing options...
darkmubr 0 Postado Março 27, 2019 Share Postado Março 27, 2019 Poderia fazer de outro modo, talvez fosse interessante também: - Ao invés de pegar todo o loot automático... poderia fazer com que o loot fosse aberto e com o botão direito (como se fosse converter dinheiro) o mesmo fosse para a backpack. Link para o comentário Compartilhar em outros sites More sharing options...
Walox 46 Postado Março 31, 2019 Share Postado Março 31, 2019 Assim, eu não estou usando este, mas fiquem atento quando derem auto loot pois tem possibilidades de dar bugs como vc jogar item dentro do corpo do pokemon morto e duplicar o item! Link para o comentário Compartilhar em outros sites More sharing options...
JulianoZN 61 Postado Março 31, 2019 Share Postado Março 31, 2019 47 minutos atrás, Walox disse: Assim, eu não estou usando este, mas fiquem atento quando derem auto loot pois tem possibilidades de dar bugs como vc jogar item dentro do corpo do pokemon morto e duplicar o item! Verdade, eu tive que refazer, e coloquei um modulo no otclient para quando coletar mostrar a imagem Link para o comentário Compartilhar em outros sites More sharing options...
Walox 46 Postado Março 31, 2019 Share Postado Março 31, 2019 1 minuto atrás, JulianoZN disse: Verdade, eu tive que refazer, e coloquei um modulo no otclient para quando coletar mostrar a imagem Fiz Basicamente o mesmo que você Link para o comentário Compartilhar em outros sites More sharing options...
gabrielzika 29 Postado Abril 30, 2019 Share Postado Abril 30, 2019 @Walox neste caso, no script do Tony basta coloca isso depois do penultimo end: doSetItemActionId(item.uid, 0) Ficando assim: function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end doSetItemActionId(item.uid, 0) return false end Depois que o player coletar uma vez o corpse deixa de ter a ActionID, assim impossibilitando de o player tentar trollar o sistema. El Rusher e LeoTK reagiu a isso 2 Link para o comentário Compartilhar em outros sites More sharing options...
darkalvaro 18 Postado Maio 31, 2019 Share Postado Maio 31, 2019 Em 30/04/2019 em 14:10, gabrielzika disse: @Walox neste caso, no script do Tony basta coloca isso depois do penultimo end: doSetItemActionId(item.uid, 0) Ficando assim: function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end doSetItemActionId(item.uid, 0) return false end Depois que o player coletar uma vez o corpse deixa de ter a ActionID, assim impossibilitando de o player tentar trollar o sistema. Quando vou tentar abrir o corpo aparece que não sou o dono (You're not the owner), sabe resolver? Link para o comentário Compartilhar em outros sites More sharing options...
Walox 46 Postado Junho 2, 2019 Share Postado Junho 2, 2019 Em 30/04/2019 em 14:10, gabrielzika disse: @Walox neste caso, no script do Tony basta coloca isso depois do penultimo end: doSetItemActionId(item.uid, 0) Ficando assim: function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end doSetItemActionId(item.uid, 0) return false end Depois que o player coletar uma vez o corpse deixa de ter a ActionID, assim impossibilitando de o player tentar trollar o sistema. Não vejo necessidade em fazer uma gambiarra dessas, para resolver isso é coisa de 2 linhas... Link para o comentário Compartilhar em outros sites More sharing options...
Taiger 286 Postado Junho 22, 2019 Share Postado Junho 22, 2019 Como faz para coletar o loot de todos os corpos que estejam no mesmo sqm como o amigo disse ali em cima? Link para o comentário Compartilhar em outros sites More sharing options...
gabrielzika 29 Postado Setembro 27, 2019 Share Postado Setembro 27, 2019 Em 02/06/2019 em 12:15, Walox disse: Não vejo necessidade em fazer uma gambiarra dessas, para resolver isso é coisa de 2 linhas... Então faz melhor ao invés de cagar pela boca Nildson, Duhisback, lSainty e 1 outro reagiu a isso 2 2 Link para o comentário Compartilhar em outros sites More sharing options...
KaboFlow 54 Postado Fevereiro 21, 2021 Share Postado Fevereiro 21, 2021 Em 30/04/2019 em 12:10, gabrielzika disse: @Walox neste caso, no script do Tony basta coloca isso depois do penultimo end: doSetItemActionId(item.uid, 0) Ficando assim: function onUse(cid, item, fromPosition, itemEx, toPosition) if getItemAttribute(item.uid, "corpseowner") ~= cid then return doPlayerSendCancel(cid, "You're not the owner.") end local items = {} for i = 0, getContainerSize(item.uid) do local it = getContainerItem(item.uid, i) if it.uid > 0 then table.insert(items, {it.itemid, it.type}) doRemoveItem(it.uid) end end if #items > 0 then for k = 1, #items do local playerItem = getPlayerItemById(cid, true, items[k][1]) if playerItem.uid > 0 then if (playerItem.type + items[k][2]) > 100 then doPlayerAddItem(cid, items[k][1], (playerItem.type + items[k][2]) - 100) doTransformItem(playerItem.uid, items[k][1], 100) else doTransformItem(playerItem.uid, items[k][1], playerItem.type + items[k][2]) end else doPlayerAddItem(cid, items[k][1], items[k][2]) end end return true end doSetItemActionId(item.uid, 0) return false end Depois que o player coletar uma vez o corpse deixa de ter a ActionID, assim impossibilitando de o player tentar trollar o sistema. [21/02/2021 07:02:25] [Error - Action Interface] [21/02/2021 07:02:25] data/actions/scripts/AutoLoot.lua:onUse [21/02/2021 07:02:25] Description: [21/02/2021 07:02:25] data/actions/scripts/AutoLoot.lua:29: attempt to call global 'doSetItemActionId' (a nil value) [21/02/2021 07:02:25] stack traceback: [21/02/2021 07:02:25] data/actions/scripts/AutoLoot.lua:29: in function <data/actions/scripts/AutoLoot.lua:1> Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados