Auto Loot System.

MatheusGlad
em Mods, funções e outros
  • 1
  • 2

MatheusGlad

<~~> Scripter <~~>
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/09/09Posts: 528Char no Tibia: Emekalo Makalo

Video demonstrando o que faz o script:

 

Para usar a talkaction eh simples:

!autoloot itens (itens separados por virgula)

 

Exemplo: !autoloot mastermind shield, gold coin

 

Na pasta mods, bote esse xml, e pronto estara funcionando direitinho.

 

autoLoot.xml:

<?xml version="1.0" encoding="UTF-8"?>
<mod name="autoLoot" enabled="yes" author="MatheusMkalo" forum="XTibia.com">

<config name="autoLootLib"><![CDATA[

function setPlayerStorageTable(cid, storage, tab)
   local tabstr = "&"
   for i,x in pairs(tab) do
    tabstr = tabstr .. i .. "," .. x .. ";"
   end
   setPlayerStorageValue(cid, storage, tabstr:sub(1, #tabstr-1))
end

function getPlayerStorageTable(cid, storage)
   local tabstr = getPlayerStorageValue(cid, storage)
   local tab = {}
   if type(tabstr) ~= "string" then
    return {}
   end
   if tabstr:sub(1,1) ~= "&" then
    return {}
   end
   local tabstr = tabstr:sub(2, #tabstr)
   local a = string.explode(tabstr, ";")
   for i,x in pairs(a) do
    local b = string.explode(x, ",")
    tab[tonumber(b[1]) or b[1]] = tonumber(b[2]) or b[2]
   end
   return tab
end

function getContainerItems(containeruid)
   local items = {}
   local containers = {}
   if type(getContainerSize(containeruid)) ~= "number" then
    return false
   end
   for slot = 0, getContainerSize(containeruid)-1 do
    local item = getContainerItem(containeruid, slot)
    if item.itemid == 0 then
	    break
    end
    if isContainer(item.uid) then
	    table.insert(containers, item.uid)
    end
    table.insert(items, item)
   end
   if #containers > 0 then
    for i,x in ipairs(getContainerItems(containers[1])) do
	    table.insert(items, x)
    end
    table.remove(containers, 1)
   end     
   return items
end

function getItemsInContainerById(container, itemid) -- Function By Kydrai
    local items = {}
    if isContainer(container) and 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 doPlayerAddItemStacking(cid, itemid, quant)
   local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)
   local piles = 0
   if #item > 0 then
    for i,x in pairs(item) do
	    if getThing(x).type < 100 then
		    local it = getThing(x)
		    doTransformItem(it.uid, itemid, it.type+quant)
		    if it.type+quant > 100 then
			    doPlayerAddItem(cid, itemid, it.type+quant-100)
		    end
	    else
		   piles = piles+1
	    end
    end
   else
    return doPlayerAddItem(cid, itemid, quant)
   end
   if piles == #item then
    doPlayerAddItem(cid, itemid, quant)
   end
end

function corpseRetireItems(corpsepos, killer, itemsarray)
   local corpse = nil
   for i = 1, 254 do
    corpsepos.stackpos = i
    corpse = getThingFromPos(corpsepos)
    if corpse.uid > 0 and isCorpse(corpse.uid) then
	    break
    end
   end
   local items = getContainerItems(corpse.uid)
   for i,x in pairs(items) do
    if isInArray(itemsarray, tonumber(x.itemid)) then
	    if isItemStackable(x.itemid) then
		    doPlayerAddItemStacking(killer, x.itemid, x.type)
	    else
		    doPlayerAddItem(killer, x.itemid)
	    end
	    doRemoveItem(x.uid, x.type)
    end
   end
end
]]></config>

<creaturescript type="kill" name="autoLootKill" event="script"><![CDATA[
domodlib("autoLootLib")

   local loots = getPlayerStorageTable(cid, 6616)
   if lastHit and #loots >= 1 then
    addEvent(corpseRetireItems, 100, getCreaturePosition(target), cid, loots)
   end
   return true
]]></creaturescript>

<talkaction words="!autoloot;/autoloot" event="script"><![CDATA[
domodlib("autoLootLib")

   local t = string.explode(param, ",")
   for i,x in pairs(t) do
    if not getItemIdByName(x, false) then
	    return doPlayerSendCancel(cid, "Some of these items don't exist.")
    end
    t[i] = getItemIdByName(x, false)
   end
   setPlayerStorageTable(cid, 6616, t)
   doPlayerSendTextMessage(cid, 25, "Auto Looting: " .. param)
   return true

]]></talkaction>

<creaturescript type="login" name="autoLootRegister" event="script"><![CDATA[
registerCreatureEvent(cid, "autoLootKill")
return true
]]></creaturescript>
</mod>

autoLoot.xml

Yours Mkalo :)

Beeki

Ex-Coordenador XDev
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 12/03/11Posts: 1900Gênero: MasculinoChar no Tibia: Nokte

Otimo script, facil de instalar e bem facil de utilizar, Aprovado !

Fabio Augustus - Infraestrutura

Skype: guhsvasc

upking

Phoenix, sempre ressurgindo das cinzas
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 24/10/06Posts: 1026Char no Tibia: Lord Night Rider

Muito legal, um bot ingame.

Achei até interessante, serio mesmo, mas como ficariam os players q caçam em party e depois rola aquela disputa pra pegar o loot q dropo?

Visite meu canal no youtube: http://youtube.com/gabriel_rodriguez_tech

 

MatheusGlad

<~~> Scripter <~~>
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/09/09Posts: 528Char no Tibia: Emekalo Makalo

Quem da o ultimo hit pega os loots, e em party o outro player poderia ver os itens dropados ou seja, se ele ver que dropou algo e nao esta no corpo ele pode reclamar com o amigo... como todos fariam normalmente neh '-'

Yours Mkalo :)

KingOFSkyer

Xtibia
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/11/11Posts: 23Char no Tibia: Dras ekos

poxa matheus sempre inovando :D parabens kra voce na minha parte e o melhor script que tem aki no xtibia .. e o sky tbm :D parabens voces 2 e grande script

 

quero ver mais e melhores !

FLAMENGO COM MUITO ORGULHO E

 

MUITO AMOR

 

 

 

 

 

@USUARIO BAIAKVIP AKI

Lolksky

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 29/07/10Posts: 211

Não da pra pré-definir o item que vai ser usado? tipo usar apenas pra money (sem permitir que o player escolha)?

signtodos.png ~~ HaiL ~~

SkyDangerous

Deus Kalec
avatar
Lorde
Lorde

INFOS

Grupo: LordeRegistrado: 17/01/09Posts: 2098Char no Tibia: Adra Sata

Wow.

Simplesmente perfeito ;D

Parabéns !

Me segui lá (:

 

b906.png

http://ageofwar.servegame.com/

IP: ageofwar.servegame.com

TIBIA: 10.78

GLOBAL PERFECT CUSTOM

Lukeskywalker

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 30/06/08Posts: 173Char no Tibia: Lady Stars Walker

Interesante mais na minha opniao para um otserver hard não serviria mais muito util para a maioria dos otserver ganho meu rep++

nari

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/12/07Posts: 98Char no Tibia: Drinhow

como eu faço para so players vip usar esse mod?

Snowsz

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 22/01/12Posts: 121Char no Tibia: Not...

tem como por para so jogares premium poder usar esse sistema ? e por tbm se fala so /autoloot aparecer uma msg dizendo um exemplo

 

e tbm se usar /autoloot all

 

pegar tudo q é item q dropa.?

Oi '-'

vinirevol

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/01/12Posts: 1

kra, eu tava usando ele no meu ot e eu percebi uma coisa, n sei se é só no meu mas é mais ou menos assim:

eu no meu personagem de testes usei ele pra testar se ele tava funcionando, mas depois eu percebi uma coisa, quando eu mato o monstro, é como se ele "criasse" o item na minha bp, pois, abrindo o loot do bixo, os itens ainda estão lá

eu achei esse sistema muito bom mesmo (ate pq com isso caiu o numero de bots no ot) mas eu so estou avisando, caso tenha passado despercebido por vcs =D

joaoferreirajoia

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/11Posts: 16Char no Tibia: Brasil Paladino
kra, eu tava usando ele no meu ot e eu percebi uma coisa, n sei se é só no meu mas é mais ou menos assim:

eu no meu personagem de testes usei ele pra testar se ele tava funcionando, mas depois eu percebi uma coisa, quando eu mato o monstro, é como se ele "criasse" o item na minha bp, pois, abrindo o loot do bixo, os itens ainda estão lá

eu achei esse sistema muito bom mesmo (ate pq com isso caiu o numero de bots no ot) mas eu so estou avisando, caso tenha passado despercebido por vcs =D

 

 

É verdade eu fiz isso em meu ot eu ia um demo shield para a minha bp ai ficava o demon shield no mostro ele criava na bp esta bugado esse comando a ruma ai em

admdestroyer

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/07/11Posts: 86

Absolutamente incrivel,muito bom pra qualquer tipo de servidor,estou usando no meu servidor^^ so nao dou rep pq ja usei o meu hje...

Meu Projeto

obuy.jpg

Se te ajudei da um Rep + Nun custa nada :)

.::Meus Trabalhos::.

[Talkaction] !maxlevel Funcionando!
http://www.xtibia.co...__fromsearch__1

[Tutorial] Colocando Itens a venda no Gesior

http://www.xtibia.com/forum/topic/182919-gesior-colocando-itens-a-venda-no-shop-atualizado/page__fromsearch__1

[8.6] Desert City (Meu 1° Mapa)

http://www.xtibia.co...__fromsearch__1

[Gesior] Retirar :8090 do site método 100% infalivel

http://www.xtibia.co...__fromsearch__1

lucao2011

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/08/11Posts: 7Char no Tibia: Storm Adats

Muito bom , vou tentar por no meu ot de Pokemon

  • 1
  • 2