• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] AutoLoot System for tfs 1.x

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Sistema] AutoLoot System for tfs 1.x el Vie Dic 09, 2016 12:28 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usarios de tibiaface

    bueno aqui le traigo el auto loot para lo que usan tfs 1.x en adelante como saben es como bot rege cualquier iten agregado a su lista.


    comandos:

    Código:
    !autoloot add, itemId or name -- Adding a item to the list
    !autoloot remove, itemId or name -- Removing a item from the list
    !autoloot show -- Show the autoLoot list
    !autoloot clear -- Clears the autoLoot list


    nos vamos a :

    data/global.lua abrimos el archivo y añadimos al final

    Código:
    -- AutoLoot config
        AUTO_LOOT_MAX_ITEMS = 5

        -- Reserved storage
        AUTOLOOT_STORAGE_START = 10000
        AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS
    -- AutoLoot config end

    AUTO_LOOT_MAX_ITEMS = 5 es el maximo de items a recoger


    en Data/talkactions/talkactions.xml agregamos

    Código:
    <talkaction words="!autoloot" separator=" " script="autoloot.lua"/>

    en Data/talkactions/scripts agregamos un nuevo archivo y renombramos por autoloot.lua y pegamos esto dentro

    Código:
    function onSay(player, words, param)
        local split = param:split(",")

        local action = split[1]
        if action == "add" then
            local item = split[2]:gsub("%s+", "", 1)
            local itemType = ItemType(item)
            if itemType:getId() == 0 then
                itemType = ItemType(tonumber(item))
                if itemType:getId() == 0 then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                    return false
                end
            end

            local itemName = tonumber(split[2]) and itemType:getName() or item
            local size = 0
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                local storage = player:getStorageValue(i)
                if size == AUTO_LOOT_MAX_ITEMS then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.")
                    break
                end

                if storage == itemType:getId() then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.")
                    break
                end

                if storage <= 0 then
                    player:setStorageValue(i, itemType:getId())
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.")
                    break
                end

                size = size + 1
            end
        elseif action == "remove" then
            local item = split[2]:gsub("%s+", "", 1)
            local itemType = ItemType(item)
            if itemType:getId() == 0 then
                itemType = ItemType(tonumber(item))
                if itemType:getId() == 0 then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                    return false
                end
            end

            local itemName = tonumber(split[2]) and itemType:getName() or item
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                if player:getStorageValue(i) == itemType:getId() then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.")
                    player:setStorageValue(i, 0)
                    return false
                end
            end

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.")
        elseif action == "show" then
            local text = "-- Auto Loot List --\n"
            local count = 1
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                local storage = player:getStorageValue(i)
                if storage > 0 then
                    text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName())
                    count = count + 1
                end
            end

            if text == "" then
                text = "Empty"
            end
     
            player:showTextDialog(1950, text, false)
        elseif action == "clear" then
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                player:setStorageValue(i, 0)
            end

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.")
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}")
        end

        return false
    end


    ahora no vamosa :

    Data/creaturescripts/creaturescripts.xml

    Código:
    <event type="kill" name="AutoLoot" script="autoloot.lua" />


    en Data/creaturescripts/scripts copiamos cualquier archivo y renombramos por autoloot.lua y pegamos esto dentro

    Código:
    local function scanContainer(cid, position)
        local player = Player(cid)
        if not player then
            return
        end

        local corpse = Tile(position):getTopDownItem()
        if not corpse or not corpse:isContainer() then
            return
        end

        if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then
            for a = corpse:getSize() - 1, 0, -1 do
                local containerItem = corpse:getItem(a)
                if containerItem then
                    for b = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                        if player:getStorageValue(b) == containerItem:getId() then
                            containerItem:moveTo(player)
                        end
                    end
                end
            end
        end
    end

    function onKill(player, target)
        if not target:isMonster() then
            return true
        end

        addEvent(scanContainer, 100, player:getId(), target:getPosition())
        return true
    end

    y en login.lua registramos


    Código:
    player:registerEvent("AutoLoot")


    y listo



    Ver perfil de usuario http://www.tibiaface.com

    2default *_* el Vie Dic 09, 2016 1:09 am

    Andrés Montero

    avatar
    Nuevo Miembro
    Nuevo Miembro
    MUCHAS GRACIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIAS TIO

    Ver perfil de usuario

    3default Re: [Sistema] AutoLoot System for tfs 1.x el Sáb Jun 17, 2017 9:58 pm

    Fosfik

    avatar
    Miembro
    Miembro
    Esta buenisimo bro gracias! (y)

    Ver perfil de usuario

    4default Re: [Sistema] AutoLoot System for tfs 1.x el Vie Ago 04, 2017 6:51 am

    Humox

    avatar
    Miembro
    Miembro
    no funciona tfs 1.2 :c

    Ver perfil de usuario

    5default Re: [Sistema] AutoLoot System for tfs 1.x el Vie Ago 04, 2017 12:52 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no funciona tfs 1.2 :c

    por que lo dices muestrame que error te sale



    Ver perfil de usuario http://www.tibiaface.com

    6default Re: [Sistema] AutoLoot System for tfs 1.x el Vie Ago 11, 2017 7:36 am

    Humox

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no funciona tfs 1.2 :c

    por que lo dices muestrame que error te sale

    No sale el error no me agrega el loot a la lista solamente eso

    Ver perfil de usuario

    7default Re: [Sistema] AutoLoot System for tfs 1.x el Miér Feb 28, 2018 12:38 am

    thefrancis

    avatar
    Miembro
    Miembro
    Me funciona genial en la consola tfs 1.3
    solo sale esto aveces debe ser pq algun player no ejecuta bien el comando pero quisiera saber si se puede solucionar.

    Ver perfil de usuario

    8default Re: [Sistema] AutoLoot System for tfs 1.x el Miér Feb 28, 2018 7:14 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Me funciona genial en la consola tfs 1.3
    solo sale esto aveces debe ser pq algun player no ejecuta bien el comando pero quisiera saber si se puede solucionar.

    el problema es que en item.xml haya no tiene añadido un atribute en corpse del monster

    <item id="22497" article="a" name="dead terrorsleep">
    <attribute key="containerSize" value="20" />
    <attribute key="decayTo" value="22494" />
    <attribute key="duration" value="10" />
    <attribute key="corpseType" value="blood" />
    <attribute key="fluidSource" value="blood" />
    </item>

    si ves en negrilla ese es el atributo que cuando le dan al al corpse causa aquel error en tu pantalla de tu consola bueno esa seria la solucion de tu problema agregar ese atributo



    Ver perfil de usuario http://www.tibiaface.com

    9default [Ayuda] Error con Autoloot el Sáb Mar 31, 2018 3:24 am

    carataki

    avatar
    Miembro
    Miembro
    Reciba un cordial saludo Maya. Estoy implementando este sistema a
    The OTX Server Version: (3.7 . DEV) - Codename: ( SAILOR ) (Tfs 1.3) pero no me jala. Al ejecutar los comandos todo va perfecto. el unico error es que no recoge los items por ejemplo: Gold Coin que esta agregado a la List (!autoloot add, gold coins) sale reflejado "gold coins" en (!autoloot show") pero cuando mato creaturas no recoge los gold coins y me lanza este error por consola.

    Ver perfil de usuario

    10default Re: [Sistema] AutoLoot System for tfs 1.x el Sáb Mar 31, 2018 10:50 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    Reciba un cordial saludo Maya. Estoy implementando este sistema a
    The OTX Server Version: (3.7 . DEV) - Codename: ( SAILOR ) (Tfs 1.3) pero no me jala. Al ejecutar los comandos todo va perfecto. el unico error es que no recoge los items por ejemplo: Gold Coin que esta agregado a la List (!autoloot add, gold coins) sale reflejado "gold coins" en (!autoloot show") pero cuando mato creaturas no recoge los gold coins y me lanza este error por consola.


    ese error no lo veo en el scripts tema equivocado



    Ver perfil de usuario http://www.tibiaface.com

    11default Re: [Sistema] AutoLoot System for tfs 1.x el Sáb Mar 31, 2018 11:52 am

    carataki

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    Reciba un cordial saludo Maya. Estoy implementando este sistema a
    The OTX Server Version: (3.7 . DEV) - Codename: ( SAILOR ) (Tfs 1.3) pero no me jala. Al ejecutar los comandos todo va perfecto. el unico error es que no recoge los items por ejemplo: Gold Coin que esta agregado a la List (!autoloot add, gold coins) sale reflejado "gold coins" en (!autoloot show") pero cuando mato creaturas no recoge los gold coins y me lanza este error por consola.


    ese error no lo veo en el scripts tema equivocado

    Lol tema equivocado? entonces estoy implementando el sistema de autoloot de un extraterrestre?



    Este es el Autoloot de Printer?



    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola usarios de tibiaface

    bueno aqui le traigo el auto loot para lo que usan tfs 1.x en adelante como saben es como bot rege cualquier iten agregado a su lista.


    comandos:

    Código:
    !autoloot add, itemId or name -- Adding a item to the list
    !autoloot remove, itemId or name -- Removing a item from the list
    !autoloot show -- Show the autoLoot list
    !autoloot clear -- Clears the autoLoot list


    nos vamos a :

    data/global.lua abrimos el archivo y añadimos al final

    Código:
    -- AutoLoot config
        AUTO_LOOT_MAX_ITEMS = 5

        -- Reserved storage
        AUTOLOOT_STORAGE_START = 10000
        AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS
    -- AutoLoot config end

    AUTO_LOOT_MAX_ITEMS = 5 es el maximo de items a recoger


    en Data/talkactions/talkactions.xml agregamos

    Código:
    <talkaction words="!autoloot" separator=" " script="autoloot.lua"/>

    en Data/talkactions/scripts agregamos un nuevo archivo y renombramos por autoloot.lua y pegamos esto dentro

    Código:
    function onSay(player, words, param)
        local split = param:split(",")

        local action = split[1]
        if action == "add" then
            local item = split[2]:gsub("%s+", "", 1)
            local itemType = ItemType(item)
            if itemType:getId() == 0 then
                itemType = ItemType(tonumber(item))
                if itemType:getId() == 0 then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                    return false
                end
            end

            local itemName = tonumber(split[2]) and itemType:getName() or item
            local size = 0
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                local storage = player:getStorageValue(i)
                if size == AUTO_LOOT_MAX_ITEMS then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.")
                    break
                end

                if storage == itemType:getId() then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.")
                    break
                end

                if storage <= 0 then
                    player:setStorageValue(i, itemType:getId())
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.")
                    break
                end

                size = size + 1
            end
        elseif action == "remove" then
            local item = split[2]:gsub("%s+", "", 1)
            local itemType = ItemType(item)
            if itemType:getId() == 0 then
                itemType = ItemType(tonumber(item))
                if itemType:getId() == 0 then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.")
                    return false
                end
            end

            local itemName = tonumber(split[2]) and itemType:getName() or item
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                if player:getStorageValue(i) == itemType:getId() then
                    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.")
                    player:setStorageValue(i, 0)
                    return false
                end
            end

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.")
        elseif action == "show" then
            local text = "-- Auto Loot List --\n"
            local count = 1
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                local storage = player:getStorageValue(i)
                if storage > 0 then
                    text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName())
                    count = count + 1
                end
            end

            if text == "" then
                text = "Empty"
            end
     
            player:showTextDialog(1950, text, false)
        elseif action == "clear" then
            for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                player:setStorageValue(i, 0)
            end

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.")
        else
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}")
        end

        return false
    end


    ahora no vamosa :

    Data/creaturescripts/creaturescripts.xml

    Código:
    <event type="kill" name="AutoLoot" script="autoloot.lua" />


    en Data/creaturescripts/scripts copiamos cualquier archivo y renombramos por autoloot.lua y pegamos esto dentro

    Código:
    local function scanContainer(cid, position)
        local player = Player(cid)
        if not player then
            return
        end

        local corpse = Tile(position):getTopDownItem()
        if not corpse or not corpse:isContainer() then
            return
        end

        if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then
            for a = corpse:getSize() - 1, 0, -1 do
                local containerItem = corpse:getItem(a)
                if containerItem then
                    for b = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do
                        if player:getStorageValue(b) == containerItem:getId() then
                            containerItem:moveTo(player)
                        end
                    end
                end
            end
        end
    end

    function onKill(player, target)
        if not target:isMonster() then
            return true
        end

        addEvent(scanContainer, 100, player:getId(), target:getPosition())
        return true
    end

    y en login.lua registramos


    Código:
    player:registerEvent("AutoLoot")


    y listo

    Creditos: Printer

    Ver perfil de usuario

    12default Re: [Sistema] AutoLoot System for tfs 1.x el Mar Sep 18, 2018 8:17 pm

    Erickguzma

    avatar
    Miembro
    Miembro
    se le puede subir al limite de items del autoloot?

    Ver perfil de usuario

    13default Re: [Sistema] AutoLoot System for tfs 1.x el Mar Sep 18, 2018 8:37 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:se le puede subir al limite de items del autoloot?

    aqui esta AUTO_LOOT_MAX_ITEMS = 5



    Ver perfil de usuario http://www.tibiaface.com

    14default Re: [Sistema] AutoLoot System for tfs 1.x el Jue Sep 20, 2018 7:12 pm

    Erickguzma

    avatar
    Miembro
    Miembro
    mi pregunta seria no afecta que le ponga 20 supongamos?

    Ver perfil de usuario

    15default Re: [Sistema] AutoLoot System for tfs 1.x el Vie Sep 21, 2018 12:20 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:mi pregunta seria no afecta que le ponga 20 supongamos?

    me imagino que si, supongamos qeu eso se esta ejecutando y escaneado entre 20 posibles item que le pondras suponiendo que tu le colocas para 20 me imagino que tomara un poco de lg el servidor



    Ver perfil de usuario http://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).