ME

[Creaturescripts] Auto Loot

Por meubk, 19 de set. de 2011 em Globalevents e Spells

script
otserv
24
11.7k
meubkM
19 de setembro de 2011 às 21:52

Auto loot

 

Script: Auto Loot

Testado nas versões: 8.54 e 9.1

Criador: xotservx

 

Bom quis trazer para vocês hoje, um script aonde pega os items, escolhidos automaticamente, dos loots de monstros que vc mata, geralmente é mais se usado para pegar o dinheiro, bom sem mais explicações vamos ao que intereça:

 

  • Abra a pasta creaturescripts/scripts do seu ot e crie um arquivo com nome de autoloot.lua e cole o seguinte código:
     
    local configs = {
    ids = {2148, 2152, 2160}, -- adicionado somente os dos dinheiros, mais pode adicionar qual id quiser.
    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
    				item = getThing(uid)
    				doPlayerAddItem(cid, idmoney, 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
    


     

  • Na mesma pasta procure pelo login.lua abra-o, e antes de return true adicione esta linha:
     
    registerCreatureEvent(cid, "AutoLoot")


     

  • Agora volte na pasta creaturescripts e procure o arquivo creaturescripts.xml e adicione a tag:
     
    <event type="kill" name="AutoLoot" event="script" value="autoloot.lua"/>


     

  • Bom para configurar os items que vão ter o loot automático é só abrir o arquivo autoloot.lua e esta logo no começo as configurações:
     
    local configs = {
    ids = {2148, 2152, 2160}, -- adicionado somente os dos dinheiros, mais pode adicionar qual id quiser.
    premium = true -- só premium usar o auto loot ? [true ou false]
    }


     

  • Tambem quero avisar que o script fica mais funcional em server 9.1 por causa do sistema de juntar o dinheiro sozim, fica muito legal, se usar em uma versão mais antiga, funcionara normal, mais ira fazer um pouco de bagunça na sua bag, hehehehe
     

 

É isso ai...

 

Fui ;*

Jeffee90J
19 de setembro de 2011 às 21:54

Muito Bom Script..

Voce Como Sempre Trazendo Otimos Scripts

 

Meu REP+ Ta Aeew !

angeldoidoA
19 de setembro de 2011 às 21:54

n sabem q is pra comsegui esse script, mais mesmo assim parabens mto bom =D

pbottrinksP
19 de setembro de 2011 às 22:06

Parabéns xotservx, como sempre inovando.

Script muito util.

#parabens.

piruuksP
19 de setembro de 2011 às 22:09

Parabéns amigo! Muito bem feito e extremamente útil. :smile_positivo:

SkyDangerousS
19 de setembro de 2011 às 22:27

Ao.

 

Se superou agora ;)

Muito util para servidor 4fun

ereveworld1E
19 de setembro de 2011 às 23:34

MUITO bom. Futuramente irei usar.

Levou meu rep+ hoje,

Abraços

meubkM
20 de setembro de 2011 às 15:28

Obrigado pessoal :)

LolkskyL
22 de setembro de 2011 às 22:24

Aew, se tiver em PARTY, o loot vai pra quem gerou mais exp? oO

E não daria pra colocar pra juntar autmaticamente na versão mais antiga (8.60) como se fosse as pot vazia? ):

Editado Setembro 22 por Lolksky

angeldoidoA
23 de setembro de 2011 às 01:21

Aew, se tiver em PARTY, o loot vai pra quem gerou mais exp? oO

E não daria pra colocar pra juntar autmaticamente na versão mais antiga (8.60) como se fosse as pot vazia? ):

 

 

Cara isso é chato pode fase com script, mais é complicadinho entaum mais facil em cpp =D

LolkskyL
23 de setembro de 2011 às 14:59

Aew, se tiver em PARTY, o loot vai pra quem gerou mais exp? oO

E não daria pra colocar pra juntar autmaticamente na versão mais antiga (8.60) como se fosse as pot vazia? ):

 

 

Cara isso é chato pode fase com script, mais é complicadinho entaum mais facil em cpp =D

 

Você sabe se tem algum TFS 8.60 que ja tenha o autostacking? :s

angeldoidoA
23 de setembro de 2011 às 20:26

puts eu tinha 1 que baixei ki no xtibia, so q deletei pq tava faltando 1 função, (n lenbro) + tibia 8.60 n é mto legal

prefiro 9.10 =D

1 mês depois...
EskyloE
06 de outubro de 2011 às 13:21

ja vi script em algum forum q o player fala /loot item_name ou /loot all , entao quando o item q o player queria vinha no monstro ia p bp do player

 

mesmo assim , acho q da p vc colocar p juntar o dinheiro sozinho nas versoes antigas, removendo todo o dinheiro do player e devolvendo + o loot, ficaadica

 

flw xot

RHCPR
08 de outubro de 2011 às 22:38

Dá pra juntar o dinheiro automaticamente caso o distro tenha autostack (acho que é assim que se escreve...)

 

@Topic

Há como você fazer isso, porém mandando o dinheiro diretamento ao banco? Porque se der e você fizer, cara, viro seu fã kk

bepokemonB
09 de outubro de 2011 às 19:10

Eu por um acaso ja tenho isso.

!autoloot add, nome do item -- adiciona items nos slots disponiveis

!autoloot list -- todos os items na lista

 

Ele junta dinheiro e transforma caso voce some 100. (Gold -> Platinum \ Platinum -> Crystal)

 

Mas tipo, falta pensar como vou fazer para dar o AutoLoot apenas para o dono do corpo :/ Alguem sabe?