• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Pedido] Item/Bag Autoloot

    Compartir:

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

    1[Pedido] Item/Bag Autoloot Empty [Pedido] Item/Bag Autoloot Mar Abr 04, 2023 2:01 pm

    Nekokan

    Nekokan
    Miembro
    Miembro
    Descripcion escribió:Hola,

    Me gustaría un script para TFS 1.4 que consista en un item container (una bolsa) que haga auto loot de las monedas una vez el player haga click derecho en el corpse.

    Condiciones:
    > El jugador siempre ha de llevar la bolsa, indpendienemtente que sea su inventario o dentro de su mochila.
    > La bolsa comprueba en todo momento si el jugador tiene cap. suficiente, al igual que slots libres en la misma.
    > Por cada loot muestre un output por consola/chat
    [ X monedas recogidas en la bolsa ]
    Imagen Explicativa escribió:Imagen Explicativa: [Pedido] Item/Bag Autoloot Tibiaf10
    Version del Scripts: TFs 1.x

    2 participantes

    2[Pedido] Item/Bag Autoloot Empty Re: [Pedido] Item/Bag Autoloot Sáb Mayo 27, 2023 11:48 am

    GalaxyDev

    GalaxyDev
    Miembro
    Miembro
    Nekokan escribió:
    Descripcion escribió:Hola,

    Me gustaría un script para TFS 1.4 que consista en un item container (una bolsa) que haga auto loot de las monedas una vez el player haga click derecho en el corpse.

    Condiciones:
    > El jugador siempre ha de llevar la bolsa, indpendienemtente que sea su inventario o dentro de su mochila.
    > La bolsa comprueba en todo momento si el jugador tiene cap. suficiente, al igual que slots libres en la misma.
    > Por cada loot muestre un output por consola/chat
    [ X monedas recogidas en la bolsa ]
    Imagen Explicativa escribió:Imagen Explicativa: [Pedido] Item/Bag Autoloot Tibiaf10
    Version del Scripts: TFs 1.x



    Código:
    local AUTO_LOOT_BAG_ID = 1234 -- Reemplaza con el ID de la bolsa que utilizarás

    function onUse(cid, item, fromPosition, itemEx, toPosition)
        local player = Player(cid)
        if not player then
            return false
        end
       
        -- Verificar si el jugador tiene la bolsa equipada o en su mochila
        local bag = player:getSlotItem(CONST_SLOT_BACKPACK)
        if not bag or bag:getId() ~= AUTO_LOOT_BAG_ID then
            return false
        end
       
        local corpse = Tile(toPosition):getTopCorpse()
        if not corpse then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No hay un cadáver aquí.")
            return true
        end
       
        local coins = corpse:getCoins()
        if coins <= 0 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "El cadáver no contiene monedas.")
            return true
        end
       
        local freeCapacity = player:getFreeCapacity()
        if coins > freeCapacity then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No tienes suficiente capacidad para recoger todas las monedas.")
            return true
        end
       
        -- Verificar si la bolsa tiene suficientes slots libres para las monedas
        local bagFreeSlots = bag:getEmptySlots()
        if bagFreeSlots <= 0 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "La bolsa está llena, no puedes recoger más monedas.")
            return true
        end
       
        local amount = math.min(coins, bagFreeSlots) -- Recoger la cantidad máxima de monedas según los espacios libres en la bolsa
        local lootContainer = Container(bag.uid)
        for i = 1, amount do
            corpse:removeCoins(1)
            lootContainer:addItem(2148, 1) -- ID de las monedas, en este caso 2148
        end
       
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("%d moneda(s) recogidas en la bolsa.", amount))
        return true
    end

    INTENTA CON ESTO REY LO HICE SUPER RAPIDO AVISAME SI FUNCIONA :*

    Asegúrate de reemplazar AUTO_LOOT_BAG_ID con el ID de la bolsa que deseas utilizar. Además, ten en cuenta que este script asume que las monedas tienen el ID 2148. Si en tu servidor las monedas tienen un ID diferente, debes modificar la línea lootContainer:addItem(2148, 1) para que coincida con el ID correcto de las monedas.

    Coloca este script en el archivo data/scripts/actions/NOMBREDETUSCRIPT.lua de tu servidor y reinicia el servidor para aplicar los cambios. Ahora, cuando los jugadores hagan clic derecho en un cadáver con la bolsa equipada o dentro de su mochila, las monedas se agregarán automáticamente a la bolsa y se mostrará un mensaje indicando la cantidad de monedas recogidas.



    [Tienes que estar registrado y conectado para ver este vínculo] Servidor 24/7 Full Animes  Smile    MI GITHUB (REVSCRIPTS TFS 1.3-1.5))
    2 participantes

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