• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Mods] Auto Loot (OTX 2) Reconstruido

    Compartir:

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

    1default [Mods] Auto Loot (OTX 2) Reconstruido el Miér Oct 21, 2020 9:56 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola Usuarios de TibiaFace

    Autoloot rehecho para OTX VERSION y agregó algunas otras funciones que iré explicando a lo largo del tema


    [+] Imagen de comando:

    [Mods] Auto Loot (OTX 2) Reconstruido Autooo10


    [+] Funciones:



    [-] Puede activar o desactivar el autoloot tantas veces como lo crea necesario.

    [-] ¡ También hay un comando para habilitar o deshabilitar los mensajes de botín que recopila autoloot!

    [-] ¡ Puedes elegir el color del texto en el que aparecerá la colección de botín!

    [-] El autoloot te informará si tienes pequeños espacios en tu mochila, y el jugador podrá elegir si habilitar o no esta función en el autloot.

    [-] Versión ilimitada de artículos

    [-] El jugador puede optar por depositar los Golds que se depositan directamente en el banco.


    [+] Instalación :

    Primero CREA una CARPETA VACÍA y cámbiale el nombre a "autoloot" en DATA / LOGS, con este aspecto:

    [Mods] Auto Loot (OTX 2) Reconstruido Autloo10

    Luego instale el MODS normalmente en la carpeta MODS de su servidor.

    copiamos cualquier archivo y renombramos por new_perfect_autoloot_otx.xml y pegamos esto dentro

    Código:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Perfect Auto Loot" version="1.0" author="Vodkart" contact="none.com" enabled="yes">
    <config name="Loot_func"><![CDATA[

    info = {
        directory = "data/logs/autoloot",
        Warn_Bp_Slots = 5, -- when you have 5 or less slots in the BP will warn the player
        Talkaction_delay = 5, -- in seconds // delay from remove or add item
        BlockMonsters = {}, -- list block monsters
        BlockItemsList = {2123,2515}, -- block items id autoloot
        Money_ids = {2148, 2152, 2160}, -- id coins ot server
        Max_Slots = {free = 5, premium = 8}, -- max slots
        Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807}
    }

    Color_Loot = {
              [0] = {MESSAGE_EVENT_ORANGE, "Orange"},
              [1] = {MESSAGE_STATUS_CONSOLE_BLUE, "Blue"},
              [2] = {MESSAGE_INFO_DESCR, "Green"},
              [3] = {MESSAGE_STATUS_CONSOLE_RED, "Red"},
              [4] = {MESSAGE_STATUS_SMALL, "White"}
    }

    function getPlayerColorLootMessage(cid)
        return getPlayerStorageValue(cid, info.Storages[5]) <= 0 and 0 or getPlayerStorageValue(cid, info.Storages[5])
    end
    function isInTable(cid, item)
        for _,i in pairs(getItensFromAutoloot(cid)) do
            if tonumber(i) == tonumber(item) then
                return true
            end
        end
        return false
    end
    function doremoveItemFromAutoloot(cid, itemid)
        local file, fileContent = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'r'),{}
        for line in file:lines() do
        if line ~= "" and tonumber(line) ~= tonumber(itemid) then
                fileContent[#fileContent + 1] = line
            end
        end
        io.close(file)
        file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", 'w')
        for index, value in ipairs(fileContent) do
        file:write(value..'\n')
        end
        io.close(file)
    end
    function doAddItemFromAutoloot(cid, itemid)
            if not existsAutoloot(cid) then
                doCreateLootUserName(cid, itemid) return true
            end
            local file = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "a+")                         
            file:write('\n'..itemid)
            file:close()
    end
    function existsAutoloot(cid)
      local f = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "rb")
      if f then f:close() end
      return f ~= nil
    end
    function doCreateLootUserName(cid, itemid)
        newFile = io.open(info.directory.."/"..getCreatureName(cid)..".txt", "w+" )
        newFile:write(itemid)
        newFile:close()
    end
    function getItensFromAutoloot(cid)
      if not existsAutoloot(cid) then return {} end
      lines = {}
      for line in io.lines(info.directory.."/"..getCreatureName(cid)..".txt") do
          if line ~= "" then
                  lines[#lines + 1] = tonumber(line)
          end
      end
      return lines
    end
    function doCleanAutoloot(cid)
    return os.remove(info.directory.."/"..getCreatureName(cid)..".txt")
    end
    function ShowItemsTabble(cid)
        local auto_list = getItensFromAutoloot(cid) 
        local n,str = 0,"[+] Auto Loot Commands [+]\n\n!autoloot item name --> To add ou Remove item from list.\n!autoloot money --> To collect gold automatically.\n!autoloot clear --> To clear the list.\n!autoloot on/off --> To enable or disable the collecting of items in the system.\n!autoloot message --> To enable or disable message from Collect items.\n!autoloot color --> To change Color message in Auto Loot Collect.\n!autoloot warn --> To enable or disable message warning of "..info.Warn_Bp_Slots.." or less slots in the backpack.\n!autoloot deposit --> To enable or disable automatic money deposit at the bank.\n\n[+] Auto Loot Info [+]\n\nSystem: "..(getPlayerStorageValue(cid, info.Storages[1]) <= 0 and "Activated" or "Disabled")..".\nGold Collecting: "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "Disabled")..".\nMessage: "..(getPlayerStorageValue(cid, info.Storages[6]) <= 0 and "Activated" or "Disabled")..".\nColor Message: "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".\nWarn Backpack: "..(getPlayerStorageValue(cid, info.Storages[3]) <= 0 and "Activated" or "Disabled")..".\nAutomatic Gold Deposit: "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "Disabled")..".\nTotal Bank Balance: ["..getPlayerBalance(cid).."]\nMaximum Slots: ["..#auto_list.."/"..(isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free).."]\n\n[+] Auto Loot Slots [+]\n\n"
        if #auto_list > 0 then
            for i = 1, #auto_list do
                n = n + 1
                str = str.."Slot "..n.." - "..getItemNameById(auto_list[i]).."\n"
            end
        end
        return doPlayerPopupFYI(cid, str)
    end
    function getContainerItems(container, array, haveCap)
        array = array or {}
        haveCap = haveCap or false
        if not isContainer(container.uid) or getContainerSize(container.uid) == 0 then
            array[#array +1] = container
        else
            local size = getContainerSize(container.uid)
            haveCap = (getContainerCap(container.uid) -size) > 0
            for slot = 0, (size -1) do
                local item = getContainerItem(container.uid, slot)
                if item.itemid > 1 then
                    getContainerItems(item, array, haveCap)
                end
            end
        end
        return #array >= 1 and array, haveCap
    end
    function getContainerItemsById(container, itemid)
        local founds = {}
        local items = not container.uid and container or getContainerItems(container)
        for index, item in pairs(items) do
            if item.itemid == itemid then
                founds[#founds +1] = item
            end
        end
        return #founds >= 1 and founds
    end
    function AutomaticDeposit(cid, item, n)
        local deposit = item == tonumber(2160) and (n*10000) or tonumber(item) == 2152 and (n*100) or (n)
        return doPlayerDepositMoney(cid, deposit)
    end
    function getAllContainerFree(container) -- by vodka
        local containers,soma = {},0
        for i = 0, getContainerSize(container)-1 do
            local item = getContainerItem(container, i)
            if isContainer(item.uid) then
                table.insert(containers, item.uid)
            end
        end
        for _, check in pairs(containers) do
            soma = soma + getContainerSlotsFree(check) 
        end
        return (soma + getContainerSlotsFree(container))
    end
    function getContainerSlotsFree(container) -- by vodka
            return getContainerCap(container)-getContainerSize(container)
    end
    function doPlayerAddItemStackable(cid, itemid, count)
        local container = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
        if container.itemid > 1 then
            local items = getContainerItemsById(container, itemid)
            if not items then
                return doPlayerAddItem(cid, itemid, count)
            else
                local piles = #items
                for index, item in pairs(items) do
                    if item.type < 100 then
                        local sum = item.type + count
                        local result = doTransformItem(item.uid, itemid, sum)
                        if sum <= 100 then
                            return result
                        else
                            return doPlayerAddItem(cid, itemid, sum - 100)
                        end
                    else
                        piles = piles - 1
                        if piles == 0 then
                            return doPlayerAddItem(cid, itemid, count)
                        end
                    end
                end
            end
        end
        return false
    end
    function corpseRetireItems(cid, pos)
        local check, slots = false, 0
        for i = 0, 255 do
            pos.stackpos = i
            if getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then
                corpse = getThingFromPos(pos)
                check = true
                break
            end
        end
        if check == true then
            local str, id_list = "", getItensFromAutoloot(cid)
            for _, item in pairs(getContainerItems(corpse)) do
                local id = item.itemid
                if #id_list > 0 and isInArray(id_list, id) or getPlayerStorageValue(cid, info.Storages[2]) > 0 and isInArray(info.Money_ids, id) then
                    local amount = isItemStackable(id) and item.type or 1
                    local total_cap = getItemWeightById(id, amount)
                    if getPlayerSlotItem(cid, 3).itemid ~= 0 then
                        slots = getAllContainerFree(getPlayerSlotItem(cid, 3).uid)
                    end
                    if slots > 0 and getPlayerFreeCap(cid) >= total_cap then
                        str = str.." " .. getItemInfoLoot(id, amount)
                        if isItemStackable(id) then
                            doPlayerAddItemStackable(cid, id, amount)
                            if isInArray(info.Money_ids, id) and getPlayerStorageValue(cid, info.Storages[4]) > 0 then
                                AutomaticDeposit(cid, id, amount)
                            end
                        else
                            doPlayerAddItem(cid, id)
                        end
                        doRemoveItem(item.uid) 
                    end
                end
            end
            if str ~= "" and getPlayerStorageValue(cid, info.Storages[6]) <= 0 then
                doPlayerSendTextMessage(cid, Color_Loot[getPlayerColorLootMessage(cid)][1],"[Auto Loot Collect]:"..string.sub(str, 1, -2)..".")
            end
            if getPlayerStorageValue(cid, info.Storages[3]) <= 0 and slots > 0 and slots <= info.Warn_Bp_Slots then
                doPlayerSendTextMessage(cid,18, "[Auto Loot Warn] You only have "..slots.." slots free in your backpack!")
            end
        end
    end
    function ExistItemByName(name) -- by vodka
        local items = io.open("data/items/items.xml", "r"):read("*all")
        local get = items:lower():match('name="' .. name:lower() ..'"')
        if get == nil or get == "" then
            return false
        end
    return true
    end
    function getItemInfoLoot(id, amount)
        local info = getItemInfo(id)
        return isItemStackable(id) and amount.." "..(amount > 1 and info.plural or info.name).."," or info.article.." " .. info.name ..","
    end
    ]]></config>
    <event type="login" name="LootLogin" event="script"><![CDATA[
    domodlib('Loot_func')
    function onLogin(cid)
        registerCreatureEvent(cid, "LootEventKIll")
        if isPremium(cid) and getPlayerStorageValue(cid, 853608) <= 0 then
            setPlayerStorageValue(cid, 853608, 1)
        elseif getPlayerStorageValue(cid, 853608) > 0 and not isPremium(cid) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Auto Loot] You premium is Over, Start a new list!")
            setPlayerStorageValue(cid, 853608, -1)
            doCleanAutoloot(cid)
        end
        return true
    end]]></event>
    <event type="kill" name="LootEventKIll" event="script"><![CDATA[
    domodlib('Loot_func')
    function onKill(cid, target, lastHit)
        if isPlayer(cid) and getPlayerStorageValue(cid, info.Storages[1]) <= 0 and isMonster(target) and not isInArray(info.BlockMonsters, getCreatureName(target):lower()) then
            addEvent(corpseRetireItems, 0, cid ,getThingPos(target))
        end
        return true
    end]]></event>
    <talkaction words="!autoloot;/autoloot" event="buffer"><![CDATA[
    domodlib('Loot_func')
    local param, slots = param:lower(), isPremium(cid) and info.Max_Slots.premium or info.Max_Slots.free
    if not param or param == "" then
        ShowItemsTabble(cid) return true
    elseif tonumber(param) then
        doPlayerSendCancel(cid, "enter commands: !autoloot item name [+] !autoloot clean [+] !autoloot money [+] !autoloot on/off") return true
    elseif isInArray({"clean","limpar", "clear"}, param) then
        if existsAutoloot(cid) then doCleanAutoloot(cid) end
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Your list has been cleaned.") return true
    elseif isInArray({"start","stop","on","off"}, param) then
        setPlayerStorageValue(cid, info.Storages[1], getPlayerStorageValue(cid, info.Storages[1]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot "..(getPlayerStorageValue(cid, info.Storages[1]) > 0 and "Stopped" or "Started")..".") return true
    elseif isInArray({"warn","aviso"}, param) then
        setPlayerStorageValue(cid, info.Storages[3], getPlayerStorageValue(cid, info.Storages[3]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Backpack Warn "..(getPlayerStorageValue(cid, info.Storages[3]) > 0 and "disabled" or "Activated")..".") return true
    elseif isInArray({"mensagem","message","mensagen","msg"}, param) then
        setPlayerStorageValue(cid, info.Storages[6], getPlayerStorageValue(cid, info.Storages[6]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message "..(getPlayerStorageValue(cid, info.Storages[6]) > 0 and "disabled" or "Activated")..".") return true
    elseif isInArray({"cor","color","type"}, param) then
        setPlayerStorageValue(cid, info.Storages[5], getPlayerColorLootMessage(cid) == #Color_Loot and 0 or getPlayerColorLootMessage(cid)+1)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Message Color Changed to "..Color_Loot[getPlayerColorLootMessage(cid)][2]..".") return true
    elseif isInArray({"money","gold","gps","dinheiro"}, param) then
        setPlayerStorageValue(cid, info.Storages[2], getPlayerStorageValue(cid, info.Storages[2]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Auto Loot Gold Colleting "..(getPlayerStorageValue(cid, info.Storages[2]) > 0 and "Activated" or "disabled")..".") return true
    elseif isInArray({"deposito","bank","gbank","deposit","autodeposit"}, param) then
        setPlayerStorageValue(cid, info.Storages[4], getPlayerStorageValue(cid, info.Storages[4]) <= 0 and 1 or 0)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Auto Loot] Automatic Gold Bank "..(getPlayerStorageValue(cid, info.Storages[4]) > 0 and "Activated" or "disabled")..".") return true
    end
    local item = ExistItemByName(tostring(param))
    if not item then
        doPlayerSendCancel(cid, "This item does not exist.") return true
    end
    local item = getItemIdByName(tostring(param))
    local var = isInTable(cid, item)
    if isInArray(info.Money_ids, item) then
        doPlayerSendTextMessage(cid, MESSAGE_FIRST, "Enter !autoloot money to add money in your list!") return true 
    elseif isInArray(info.BlockItemsList, item) then
        doPlayerSendCancel(cid, "You can not add this item in the list!") return true
    elseif not var and #getItensFromAutoloot(cid) >= slots then
        doPlayerSendCancel(cid, "max "..slots.." from auto loot") return true
    elseif getPlayerStorageValue(cid, info.Storages[7]) - os.time() > 0 then
            doPlayerSendCancel(cid, "wait a second to use this command again") return true
    end
    if not var then
        doAddItemFromAutoloot(cid, item)
    else
        doremoveItemFromAutoloot(cid, item)
    end
    setPlayerStorageValue(cid, info.Storages[7], os.time()+info.Talkaction_delay)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,not var and "you added the item "..param.." in the list" or "you removed the item "..param.." from the list, please wait 5 seconds to save the directory.")
    return true]]></talkaction>
    </mod>

    creditos: Critico



    [Mods] Auto Loot (OTX 2) Reconstruido YNU5B25
    https://www.tibiaface.com

    2default Re: [Mods] Auto Loot (OTX 2) Reconstruido el Dom Oct 25, 2020 10:21 pm

    GabyOT

    GabyOT
    Nuevo Miembro
    Nuevo Miembro
    el dinero sale en el balance cuando pongo el comando !autoloot pero cuando miro en la database no esta ese dinero y no veo un comando para sacar el dinero del autoloot para ponerlo en el pj o en la database estoy usando tfs 0.4



    Última edición por GabyOT el Dom Oct 25, 2020 10:33 pm, editado 1 vez

    3default Re: [Mods] Auto Loot (OTX 2) Reconstruido el Dom Oct 25, 2020 10:24 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Si lee dice para otx 2



    [Mods] Auto Loot (OTX 2) Reconstruido YNU5B25
    https://www.tibiaface.com

    4default Re: [Mods] Auto Loot (OTX 2) Reconstruido el Lun Oct 26, 2020 1:46 am

    GabyOT

    GabyOT
    Nuevo Miembro
    Nuevo Miembro
    no sirve para tfs 0.4 XC

    5default Re: [Mods] Auto Loot (OTX 2) Reconstruido el Miér Nov 04, 2020 9:37 am

    vodkart

    vodkart
    Nuevo Miembro
    Nuevo Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:no sirve para tfs 0.4 XC

    funciona sim

    6default Re: [Mods] Auto Loot (OTX 2) Reconstruido el Miér Nov 04, 2020 9:02 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [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 sirve para tfs 0.4 XC

    funciona sim

    Grande [Tienes que estar registrado y conectado para ver este vínculo] gran aporte



    [Mods] Auto Loot (OTX 2) Reconstruido YNU5B25
    https://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).