• 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

    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
    Humox 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
    [Admin] God Maya escribió:
    Humox 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

    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).