• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx)

    Compartir:

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

    1default [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx) el Sáb Nov 17, 2018 6:11 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface


    Bueno aqui le traigo un sistema de auto loot para versiones menores lo encontre por ahi entre la basura y pues bueno le meti una manita y esta 100% funcional ahora solamente un detalle ya que el autoloot contenia un problema con el gold cuando lo loteaba lo duplicaba en el banco, tube que retirar la funcion que hacia aquel problema pero el problema lo detalle, bueno al quitar aquella funcion no manda el mensaje de cuanto gold recoge pero en el loot del mosutro indica asi que no es necesario agregar aquella funcion y no ocaciona ni un problema.


    nos vamos a data\talkactions\scripts

    copiamos cualquier archivo y renombramos por bloot.lua y pegamos esto dentro

    Código:

     -- Sistema de auto loot criado por Vítor Bertolucci - Killua

    function ExistItemByName(name) -- by vodka
        local items = io.open("data/items/items.xml", "r"):read("*all")
        local get = items:match('name="' .. name ..'"')
        if get == nil or get == "" then
            return false
        end
        return true
    end

    local function getPlayerList(cid)
        local tab = {}
        if getPlayerStorageValue(cid, 04420021) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420021))
        end
        if getPlayerStorageValue(cid, 04420031) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420031))
        end
        if getPlayerStorageValue(cid, 04420041) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420041))
        end
        if getPlayerStorageValue(cid, 04420051) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420051))
        end
        if #tab > 0 then
            return tab
        end
        return false
    end

    local function addToList(cid, name)
        local itemid = getItemIdByName(name)
        if getPlayerList(cid) and isInArray(getPlayerList(cid), itemid) then
            return false
        end
        if getPlayerStorageValue(cid, 04420021) == -1 then
            return doPlayerSetStorageValue(cid, 04420021, itemid)
        elseif getPlayerStorageValue(cid, 04420031) == -1 then
            return doPlayerSetStorageValue(cid, 04420031, itemid)
        elseif getPlayerStorageValue(cid, 04420041) == -1 then   
            return doPlayerSetStorageValue(cid, 04420041, itemid)
        elseif getPlayerStorageValue(cid, 04420051) == -1 then
            return doPlayerSetStorageValue(cid, 04420051, itemid)
        end
    end

    local function removeFromList(cid, name)
        local itemid = getItemIdByName(name)
        if getPlayerStorageValue(cid, 04420021) == itemid then
            return doPlayerSetStorageValue(cid, 04420021, -1)
        elseif getPlayerStorageValue(cid, 04420031) == itemid then
            return doPlayerSetStorageValue(cid, 04420031, -1)
        elseif getPlayerStorageValue(cid, 04420041) == itemid then
            return doPlayerSetStorageValue(cid, 04420041, -1)
        elseif getPlayerStorageValue(cid, 04420051) == itemid then
            return doPlayerSetStorageValue(cid, 04420051, -1)
        end
        return false
    end

    function onSay(cid, words, param)
        if param == "" then
            local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420021)) or ""
            local se = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420031) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420031)) or ""
            local th = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420041) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420041)) or ""
            local fo = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420051) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420051)) or ""
            local stt = getPlayerStorageValue(cid, 04421011) == 1 and "si" or "no"
            local str = getPlayerStorageValue(cid, 04421001) == 1 and "si" or "no"
            doPlayerPopupFYI(cid, "                                                          <--- Informaciones De Auto Loot --->\n{Auto-Loot} ---recolectar dinero,  encendido? ("..stt.."). Para encender o apagar, digite: !l gold \n{Auto-Loot} ---recolectar itens, encendido? ("..str.."). Para encender o apagar, digite: !l power\n\n{Auto-Loot} --Configuraciones De Slots:\n{Auto-Loot} ---Slot 1: "..fi.."\n{Auto-Loot} ---Slot 2: "..se.."\n{Auto-Loot} ---Slot 3: "..th.."\n{Auto-Loot} ---Slot 4: "..fo.."\n\n{Auto-Loot} ---Para adicionar un nuevo item en el autoloot, digite: !l add, <nome do item>\n{Auto-Loot} ---Para retirar un item del autoloot, digite: !l remove, <nome do item>\n{Auto-Loot} ---Para limpar todos los slots, digite: !l clear\n{Auto-Loot} ---Para informaciones de cuanto usted ya a utilizando a recolecta de dinero, use: !l goldinfo\n\nSe si su autoloot bugea use !l desbug.")
            return true
        end
       
        local t = string.explode(param, ",")
       
        if t[1] == "power" then
            local check = getPlayerStorageValue(cid, 04421001) == -1 and "encendio" or "apago"
            doPlayerSetStorageValue(cid, 04421001, getPlayerStorageValue(cid, 04421001) == -1 and 1 or -1)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Usted "..check.." o auto loot.")
        elseif t[1] == "gold" then
            local check = getPlayerStorageValue(cid, 04421011) == -1 and "encendio" or "apago"
            doPlayerSetStorageValue(cid, 04421011, getPlayerStorageValue(cid, 04421011) == -1 and 1 or -1)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Usted "..check.." a recolectado.")
            doPlayerSetStorageValue(cid, 04421021, 0)
        elseif t[1] == "goldinfo" then
            local str = getPlayerStorageValue(cid, 04421011) == -1 and "El sistema de recolecta de dinero está apagado" or "El sistema ya recolecto "..getPlayerStorageZero(cid, 04421021).." gold coins"
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str)
        elseif t[1] == "add" then
            if ExistItemByName(t[2]) then
                local item = getItemIdByName(t[2])
                if isInArray({2160, 2148, 2152, 2157, 9971}, item) then
                    return doPlayerSendCancel(cid, "usted no puede adicionar monedas en el autoloot. Para recolectar dinero use !l gold")
                end
                if isPremium(cid) then
                    if getPlayerStorageValue(cid, 04420011) < 3 then
                        if addToList(cid, t[2]) then
                            doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado a su lista de auto loot! Para ver su lista diga !l list")
                        else
                            doPlayerSendCancel(cid, t[2].." ya esta en su lista!")
                        end
                    else
                        doPlayerSendCancel(cid, "Su lista ya tiene 4 itens! usted debe remover alguno antes de adicionar otro.")
                    end
                else
                    if getPlayerStorageValue(cid, 04420011) == -1 then
                        if addToList(cid, t[2]) then
                            doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." agregado a su lista de auto loot! Para ver su lista diga !l")
                        else
                            doPlayerSendCancel(cid, t[2].." já está em sua lista!")
                        end
                    else
                        doPlayerSendCancel(cid, "Usted ya tiene un item agregado en el auto loot! Para adicionar otro, usted debe remover el item actual.")
                    end
                end
            else
                doPlayerSendCancel(cid, "Este item no existe!")
            end
        elseif t[1] == "remove" then
            if ExistItemByName(t[2]) then
                if removeFromList(cid, t[2]) then
                    doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) - 1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." removido de su lista de auto loot!")
                else
                    doPlayerSendCancel(cid, "Este item no está en su lista!")
                end
            else
                doPlayerSendCancel(cid, "Este item no existe!")
            end
        elseif t[1] == "clear" then
            if getPlayerStorageValue(cid, 04420011) > -1 then
                doPlayerSetStorageValue(cid, 04420011, -1)
                doPlayerSetStorageValue(cid, 04420021, -1)
                doPlayerSetStorageValue(cid, 04420031, -1)
                doPlayerSetStorageValue(cid, 04420041, -1)
                doPlayerSetStorageValue(cid, 04420051, -1)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Lista limpa!")
            else
                doPlayerSendCancel(cid, "Su lista ya esta limpa!")
            end
        elseif t[1] == "desbug" or t[1] == "desbugar" then
            doPlayerSetStorageValue(cid, 04420011, -1)
            doPlayerSetStorageValue(cid, 04420021, -1)
            doPlayerSetStorageValue(cid, 04420031, -1)
            doPlayerSetStorageValue(cid, 04420041, -1)
            doPlayerSetStorageValue(cid, 04420051, -1)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Desbugear!")
        elseif t[1] == "list" then
            local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420021)).."\n" or ""
            local se = getPlayerStorageValue(cid, 04420031) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420031)).."\n" or ""
            local th = getPlayerStorageValue(cid, 04420041) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420041)).."\n" or ""
            local fo = getPlayerStorageValue(cid, 04420051) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420051)).."\n" or ""
            doPlayerPopupFYI(cid, "el sistema auto loot está recolectando:\n "..fi..""..se..""..th..""..fo)
        end
        return true
    end   

    ahora nos vamos a data\talkactions\talkaction.xml

    y agregamos esta tag:

    Código:
    <talkaction words="!l" event="script" value="bloot.lua"/>

    Nos vamos a data\creaturescripts\scripts

    copiamos cualquier archivo y renombramos por bloot.lua y pegamos esto dentro

    Código:

    -- Sistema de auto loot criado por Vitor Bertolucci - Killua
     
    local aloot_boost = {[2406] = 36, [2537] = 4800, [2377] = 480, [2663] = 600, [2472] = 195000, [2398] = 36, [2475] = 7200, [2519] = 6500, [2497] = 10700, [2523] = 180000, [2494] = 325000, [2400] = 144000, [2491] = 6000, [2421] = 325000, [2646] = 260000, [2477] = 7200, [2413] = 84, [2656] = 18000, [2498] = 52000, [2647] = 600, [2534] = 32500, [7402] = 19500, [2466] = 26000, [2465] = 240, [2408] = 120000, [2518] = 1800, [2500] = 3000, [2376] = 30, [2470] = 91000, [2388] = 24, [2645] = 26000, [2434] = 2400, [2463] = 480, [2536] = 11700, [2387] = 240, [2396] = 4800, [2381] = 240, [2528] = 4800, [2409] = 1800, [2414] = 12000, [2427] = 9000, [2407] = 7200, [2458] = 42, [2383] = 960, [2392] = 3600, [2488] = 18000, [2525] = 120, [2423] = 240, [7382] = 13000, [2462] = 1300, [2520] = 39000, [2390] = 180000, [2417] = 72, [2436] = 1200, [5741] = 52000, [2378] = 120, [2487] = 24000, [2476] = 6500, [8891] = 36000, [2459] = 36, [2195] = 52000, [2391] = 7200, [2464] = 120, [8889] = 72000, [2432] = 13000, [2431] = 108000, [2492] = 52000, [2515] = 240, [2430] = 2400, [2393] = 13000, [7419] = 36000, [2522] = 130000, [2514] = 65000}
     
    local function getPlayerStorageZero(cid, storage) -- By Killua
        local sto = getPlayerStorageValue(cid, storage)
        if tonumber(sto) then
            return tonumber(sto) > tonumber(0) and tonumber(sto) or tonumber(0)
        end
        return tonumber(0)
    end
     
    local tabela = {}
     
    local function getPlayerList(cid)
        local tab = {}
        if getPlayerStorageValue(cid, 04420021) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420021))
        end
        if getPlayerStorageValue(cid, 04420031) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420031))
        end
        if getPlayerStorageValue(cid, 04420041) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420041))
        end
        if getPlayerStorageValue(cid, 04420051) ~= -1 then
            table.insert(tab, getPlayerStorageValue(cid, 04420051))
        end
        if #tab > 0 then
            return tab
        end
        return {}
    end
     
    local function boost(cid)
        return tonumber(getPlayerStorageValue(cid,722381)) >= os.time()
    end
     
    local function autoLoot(cid, pos)
        if not isPlayer(cid) then return end
        local check = false
        local str = ""
        local position = {}
        for i = 1, 255 do
            pos.stackpos = i
            if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then
                position = pos
                check = true
                break
            end
        end
        if check then
            local corpse = getContainerItemsInfo(getThingFromPos(position).uid)     
            if corpse then
                for index, info in pairs(corpse) do
                    if index < countTable(corpse) then
                        if info.uid and info.itemid then
                            if isContainer(info.uid) then
                                local bag = getContainerItemsInfo(info.uid)
                                for i = 1, countTable(bag) do
                                    if isInArray(getPlayerList(cid), bag[i].itemid) then
                                        if bag[i].quant > 1 then
                                            doRemoveItem(bag[i].uid, bag[i].quant)
                                            doPlayerAddItem(cid, bag[i].itemid, bag[i].quant)
                                            str = str.." "..bag[i].quant.." "..getItemNameById(bag[i].itemid).." +"
                                        else
                                            doRemoveItem(bag[i].uid)
                                            if boost(cid) then
                                                if aloot_boost[bag[i].itemid] then
                                                    doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[bag[i].itemid])
                                                    str = str.." 1 "..getItemNameById(bag[i].itemid).." ("..aloot_boost[bag[i].itemid].."gp no banco) +"
                                                else
                                                    doPlayerAddItem(cid, bag[i].itemid, 1)
                                                    str = str.." 1 "..getItemNameById(bag[i].itemid).." +"
                                                end
                                            else
                                                doPlayerAddItem(cid, bag[i].itemid, 1)
                                                str = str.." 1 "..getItemNameById(bag[i].itemid).." +"
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                    if isInArray(getPlayerList(cid), info.itemid) then
                        if info.quant > 1 then
                            doRemoveItem(info.uid, info.quant)
                            doPlayerAddItem(cid, info.itemid, info.quant)
                            str = str.." "..info.quant.." "..getItemNameById(info.itemid).." +"
                        else
                            doRemoveItem(info.uid)
                            if boost(cid) then
                                if aloot_boost[info.itemid] then
                                    doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[info.itemid])
                                    str = str.." 1 "..getItemNameById(info.itemid).." ("..aloot_boost[info.itemid].."gps no banco) +"
                                else
                                    doPlayerAddItem(cid, info.itemid, 1)
                                    str = str.." 1 "..getItemNameById(info.itemid).." +"
                                end
                            else
                                doPlayerAddItem(cid, info.itemid, 1)
                                str = str.." 1 "..getItemNameById(info.itemid).." +"
                            end
                        end
                    end
                end
            end
        end
        setPlayerTableStorage(cid,822564,{[1] = str, [2] = 0})
    end
     
    local function autoGold(cid, pos)
        if not isPlayer(cid) then return end
        local check = false
        local total = 0
        local position = {}
        for i = 1, 255 do
            pos.stackpos = i
            if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then
                position = pos
                check = true
                break
            end
        end
        if check then
            local corpse = getContainerItemsInfo(getThingFromPos(position).uid)
            if corpse then
                for index, info in pairs(corpse) do
                    if info.uid and info.itemid then
                        if index < countTable(corpse) then
                            if isContainer(info.uid) then
                                local bag = getContainerItemsInfo(info.uid)
                                for i = 1, countTable(bag) do
                                    if isInArray({2148, 2152, 2160}, bag[i].itemid) then
                                        local multiplie = 1
                                        if bag[i].itemid == 2148 then
                                            multiplie = 1
                                        elseif bag[i].itemid == 2152 then
                                            multiplie = 100
                                        elseif bag[i].itemid == 2160 then
                                            multiplie = 10000
                                        end
                                        doRemoveItem(bag[i].uid, bag[i].quant)
                                        doPlayerSetBalance(cid, getPlayerBalance(cid) + tonumber(bag[i].quant) * multiplie)
                                        total = total -------------> + bag[i].quant * multiplie
                                        doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie))
                                    end
                                end
                            end
                        end
                        if isInArray({2148, 2152, 2160}, info.itemid) then
                            local multiplie = 1
                            if info.itemid == 2148 then
                                multiplie = 1
                            elseif info.itemid == 2152 then
                                multiplie = 100
                            elseif info.itemid == 2160 then
                                multiplie = 10000
                            end
                            doRemoveItem(info.uid, info.quant)
                            doPlayerSetBalance(cid, getPlayerBalance(cid) + info.quant * multiplie)
                            doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie))
                            total = total  ----------> + info.quant * multiplie linea que modifique para que no duplique
                        end
                    end
                end
            end
        end
       
        if total > 0 then
            total = total - (total * 0.2)
            total = math.ceil(total)
            doPlayerSetBalance(cid,getPlayerBalance(cid) + total)
            local tab = getPlayerTableStorage(cid,822564)
            tab[2] = total
            setPlayerTableStorage(cid,822564,tab)
        end
    end
     
    local function sendMsg(cid)
        if not isPlayer(cid) then return end
        local tab = getPlayerTableStorage(cid,822564)
        if countTable(tab) >= 1 then
            if tab[1] then
                if tab[2] and tab[2] > 0 then
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Recolectado: ".. tab[1] .." ".. tab[2] .." gold coins.")
                else
                    if type(tab[1]) == "string" and string.len(tab[1]) > 1 then
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Recolectado: "..tab[1])
                    end
                end
            elseif not tab[1] then
                if tab[2] then
                    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] RecolectadoF: "..tab[2].." gold coins.")
                end
            end
        end
        doPlayerSetStorageValue(cid,822564,-1)
    end
     
    function onKill(cid, target, lastHit)
        if isPlayer(cid) and isMonster(target) then
            if getPlayerStorageValue(cid, 04421001) == 1 and #getPlayerList(cid) > 0 then
                local pos = getCreaturePosition(target)
                addEvent(autoLoot, 500, cid, pos)
            end
            if getPlayerStorageValue(cid, 04421011) == 1 then
                local pos = getCreaturePosition(target)
                addEvent(autoGold, 540, cid, pos)
            end
            if getPlayerStorageValue(cid, 04421001) == 1 or getPlayerStorageValue(cid, 04421011) == 1 then
                addEvent(sendMsg, 560, cid)
            end
        end
        return true
    end

    Ahora nos vamos a data\creaturescripts\creaturescripts.xml

    y agregamos esta tag

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

    luego nos vamosdata\creaturescripts\scripts/ login.lua y agregamos esta linea

    Código:
    registerCreatureEvent(cid, "bloot")

    Ahora el ultimo paso es agregar la funciones con que va trabajar este sistema

    Nos vamos a data\lib buscamos 050-function.lua lo abrimos y pegamos al final de ese archivo esto

    Código:

    -- Functions library created by Vitor Bertolucci (Killua)
    -- Functions used to store tables in storages
     
    killua_functions = {
     
        filtrateString = function(str) -- By Killua
            local tb, x, old, last = {}, 0, 0, 0
            local first, second, final = 0, 0, 0
            if type(str) ~= "string" then
                return tb
            end
            for i = 2, #str-1 do
                if string.byte(str:sub(i,i)) == string.byte(':') then
                    x, second, last = x+1, i-1, i+2
                    for t = last,#str-1 do
                        if string.byte(str:sub(t,t)) == string.byte(',') then
                            first = x == 1 and 2 or old
                            old, final = t+2, t-1
                            local index, var = str:sub(first,second), str:sub(last,final)
                            tb[tonumber(index) or tostring(index)] = tonumber(var) or tostring(var)
                            break
                        end
                    end
                end
            end
            return tb
        end,
     
        translateIntoString = function(tb) -- By Killua
            local str = ""
            if type(tb) ~= "table" then
                return str
            end
            for i, t in pairs(tb) do
                str = str..i..": "..t..", "
            end
            str = "a"..str.."a"
            return tostring(str)
        end
    }


    function getContainerItemsInfo(containerUid) -- By Killua
        local table = {}
        if containerUid and containerUid > 0 then
            local a = 0
            for i = 0, getContainerSize(containerUid) do
                local item = getContainerItem(containerUid,i)
                a = a + 1
                table[a] = {uid = item.uid, itemid = item.itemid, quant = item.type}
            end
            return table
        end
        return false
    end

    function countTable(table) -- By Killua
        local y = 0
        if type(table) == "table" then
            for _ in pairs(table) do
                y = y + 1
            end
            return y
        end
        return false
    end
     
    function setPlayerTableStorage(cid, key, value)
        return doPlayerSetStorageValue(cid, key, killua_functions.translateIntoString(value))
    end
     
    function getPlayerTableStorage(cid, key)
        return killua_functions.filtrateString(getPlayerStorageValue(cid, key))
    end
     
    function setGlobalTableStorage(key, value)
        return setGlobalStorageValue(key, killua_functions.translateIntoString(value))
    end
     
    function getGlobalTableStorage(key)
        return killua_functions.filtrateString(getGlobalStorageValue(key))
    end
     
     
     function getPlayerStorageZero(cid, storage)
        local sto = getPlayerStorageValue(cid, storage)
        return sto > 0 and sto or 0
    end


    y listo esto seria todo todos los creditos en el scripts


    para saber como funciona !l ejecute ese comando le saldra un ventana de informacion





    [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx) YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    2default Buenas el Jue Feb 14, 2019 2:56 pm

    Buenas tardes Maya ... como hago para colocarlo a que solo tenga 2 SLOT.

    Ver perfil de usuario

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Buenas tardes Maya ... como hago para colocarlo a que solo tenga 2 SLOT.

    aqui tienes


    Código:



            -- Sistema de auto loot criado por Vítor Bertolucci - Killua

            function ExistItemByName(name) -- by vodka
                local items = io.open("data/items/items.xml", "r"):read("*all")
                local get = items:match('name="' .. name ..'"')
                if get == nil or get == "" then
                    return false
                end
                return true
            end

            local function getPlayerList(cid)
                local tab = {}
                if getPlayerStorageValue(cid, 04420021) ~= -1 then
                    table.insert(tab, getPlayerStorageValue(cid, 04420021))
                end
                if getPlayerStorageValue(cid, 04420031) ~= -1 then
                    table.insert(tab, getPlayerStorageValue(cid, 04420031))
                end
                if getPlayerStorageValue(cid, 04420041) ~= -1 then
                    table.insert(tab, getPlayerStorageValue(cid, 04420041))
                end
                if getPlayerStorageValue(cid, 04420051) ~= -1 then
                    table.insert(tab, getPlayerStorageValue(cid, 04420051))
                end
                if #tab > 0 then
                    return tab
                end
                return false
            end

            local function addToList(cid, name)
                local itemid = getItemIdByName(name)
                if getPlayerList(cid) and isInArray(getPlayerList(cid), itemid) then
                    return false
                end
                if getPlayerStorageValue(cid, 04420021) == -1 then
                    return doPlayerSetStorageValue(cid, 04420021, itemid)
                elseif getPlayerStorageValue(cid, 04420031) == -1 then
                    return doPlayerSetStorageValue(cid, 04420031, itemid)
                elseif getPlayerStorageValue(cid, 04420041) == -1 then   
                    return doPlayerSetStorageValue(cid, 04420041, itemid)
                elseif getPlayerStorageValue(cid, 04420051) == -1 then
                    return doPlayerSetStorageValue(cid, 04420051, itemid)
                end
            end

            local function removeFromList(cid, name)
                local itemid = getItemIdByName(name)
                if getPlayerStorageValue(cid, 04420021) == itemid then
                    return doPlayerSetStorageValue(cid, 04420021, -1)
                elseif getPlayerStorageValue(cid, 04420031) == itemid then
                    return doPlayerSetStorageValue(cid, 04420031, -1)
                elseif getPlayerStorageValue(cid, 04420041) == itemid then
                    return doPlayerSetStorageValue(cid, 04420041, -1)
                elseif getPlayerStorageValue(cid, 04420051) == itemid then
                    return doPlayerSetStorageValue(cid, 04420051, -1)
                end
                return false
            end

    local slot = 3    -------> slots para brir en el sistema

            function onSay(cid, words, param)
                if param == "" then
                    local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420021)) or ""
                    local se = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420031) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420031)) or ""
                    local th = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420041) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420041)) or ""
                    local fo = not isPremium(cid) and "No disponible para free account" or getPlayerStorageValue(cid, 04420051) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420051)) or ""
                    local stt = getPlayerStorageValue(cid, 04421011) == 1 and "si" or "no"
                    local str = getPlayerStorageValue(cid, 04421001) == 1 and "si" or "no"
                    doPlayerPopupFYI(cid, "                                                          <--- Informaciones De Auto Loot --->\n{Auto-Loot} ---recolectar dinero,  encendido? ("..stt.."). Para encender o apagar, digite: !l gold \n{Auto-Loot} ---recolectar itens, encendido? ("..str.."). Para encender o apagar, digite: !l power\n\n{Auto-Loot} --Configuraciones De Slots:\n{Auto-Loot} ---Slot 1: "..fi.."\n{Auto-Loot} ---Slot 2: "..se.."\n{Auto-Loot} ---Slot 3: "..th.."\n{Auto-Loot} ---Slot 4: "..fo.."\n\n{Auto-Loot} ---Para adicionar un nuevo item en el autoloot, digite: !l add, <nome do item>\n{Auto-Loot} ---Para retirar un item del autoloot, digite: !l remove, <nome do item>\n{Auto-Loot} ---Para limpar todos los slots, digite: !l clear\n{Auto-Loot} ---Para informaciones de cuanto usted ya a utilizando a recolecta de dinero, use: !l goldinfo\n\nSe si su autoloot bugea use !l desbug.")
                    return true
                end
               
                local t = string.explode(param, ",")
               
                if t[1] == "power" then
                    local check = getPlayerStorageValue(cid, 04421001) == -1 and "encendio" or "apago"
                    doPlayerSetStorageValue(cid, 04421001, getPlayerStorageValue(cid, 04421001) == -1 and 1 or -1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Usted "..check.." o auto loot.")
                elseif t[1] == "gold" then
                    local check = getPlayerStorageValue(cid, 04421011) == -1 and "encendio" or "apago"
                    doPlayerSetStorageValue(cid, 04421011, getPlayerStorageValue(cid, 04421011) == -1 and 1 or -1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Usted "..check.." a recolectado.")
                    doPlayerSetStorageValue(cid, 04421021, 0)
                elseif t[1] == "goldinfo" then
                    local str = getPlayerStorageValue(cid, 04421011) == -1 and "El sistema de recolecta de dinero está apagado" or "El sistema ya recolecto "..getPlayerStorageZero(cid, 04421021).." gold coins"
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str)
                elseif t[1] == "add" then
                    if ExistItemByName(t[2]) then
                        local item = getItemIdByName(t[2])
                        if isInArray({2160, 2148, 2152, 2157, 9971}, item) then
                            return doPlayerSendCancel(cid, "usted no puede adicionar monedas en el autoloot. Para recolectar dinero use !l gold")
                        end
                        if isPremium(cid) then
                            if getPlayerStorageValue(cid, 04420011) < slot then
                                if addToList(cid, t[2]) then
                                    doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1)
                                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado a su lista de auto loot! Para ver su lista diga !l list")
                                else
                                    doPlayerSendCancel(cid, t[2].." ya esta en su lista!")
                                end
                            else
                                doPlayerSendCancel(cid, "Su lista ya tiene 4 itens! usted debe remover alguno antes de adicionar otro.")
                            end
                        else
                            if getPlayerStorageValue(cid, 04420011) == -1 then
                                if addToList(cid, t[2]) then
                                    doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1)
                                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." agregado a su lista de auto loot! Para ver su lista diga !l")
                                else
                                    doPlayerSendCancel(cid, t[2].." já está em sua lista!")
                                end
                            else
                                doPlayerSendCancel(cid, "Usted ya tiene un item agregado en el auto loot! Para adicionar otro, usted debe remover el item actual.")
                            end
                        end
                    else
                        doPlayerSendCancel(cid, "Este item no existe!")
                    end
                elseif t[1] == "remove" then
                    if ExistItemByName(t[2]) then
                        if removeFromList(cid, t[2]) then
                            doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) - 1)
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." removido de su lista de auto loot!")
                        else
                            doPlayerSendCancel(cid, "Este item no está en su lista!")
                        end
                    else
                        doPlayerSendCancel(cid, "Este item no existe!")
                    end
                elseif t[1] == "clear" then
                    if getPlayerStorageValue(cid, 04420011) > -1 then
                        doPlayerSetStorageValue(cid, 04420011, -1)
                        doPlayerSetStorageValue(cid, 04420021, -1)
                        doPlayerSetStorageValue(cid, 04420031, -1)
                        doPlayerSetStorageValue(cid, 04420041, -1)
                        doPlayerSetStorageValue(cid, 04420051, -1)
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Lista limpa!")
                    else
                        doPlayerSendCancel(cid, "Su lista ya esta limpa!")
                    end
                elseif t[1] == "desbug" or t[1] == "desbugar" then
                    doPlayerSetStorageValue(cid, 04420011, -1)
                    doPlayerSetStorageValue(cid, 04420021, -1)
                    doPlayerSetStorageValue(cid, 04420031, -1)
                    doPlayerSetStorageValue(cid, 04420041, -1)
                    doPlayerSetStorageValue(cid, 04420051, -1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Desbugear!")
                elseif t[1] == "list" then
                    local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420021)).."\n" or ""
                    local se = getPlayerStorageValue(cid, 04420031) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420031)).."\n" or ""
                    local th = getPlayerStorageValue(cid, 04420041) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420041)).."\n" or ""
                    local fo = getPlayerStorageValue(cid, 04420051) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420051)).."\n" or ""
                    doPlayerPopupFYI(cid, "el sistema auto loot está recolectando:\n "..fi..""..se..""..th..""..fo)
                end
                return true
            end   




    [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx) YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    Felipe93

    Felipe93
    Miembro
    Miembro
    buen aporte alguien me podria dar la funcion o agregarla ? para que solo funcione para players premiums? porfavor

    Ver perfil de usuario

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:buen aporte alguien me podria dar la funcion o agregarla ? para que solo funcione para players premiums? porfavor


    ya tiene para player premium 4 slots y free 1 slot



    [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx) YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    Jemrelias5

    Jemrelias5
    Miembro
    Miembro
    Ice todos los pasos y no se suben los items que coloque dice que esta agregado a la lista de autoloot pero no se los monta



    Ah!! Ya listo jejeje me faltaba activarlo xd

    Ver perfil de usuario

    takachi

    takachi
    Nuevo Miembro
    Nuevo Miembro
    maya no se sube los items como hago?

    Ver perfil de usuario

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:maya no se sube los items como hago?

    pues nada revisar no te queda de otra por que el el scripts esta funcionando 100%

    mira lo comentarios



    [Sistema] Auto Loot (tfs 0.3.7/0.4.0 and OTx) YNU5B25
    Ver perfil de usuario 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.

    Temas Recomendados×+

       

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