• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Lever que convierta un item

    Compartir:

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

    1Lever que convierta un item Empty Lever que convierta un item Lun Sep 25, 2023 9:59 pm

    danigym

    danigym
    Miembro
    Miembro
    Necesito un lever que al accionarlo, primero compruebe si hay un item especifico en el piso. Si lo hay, al tirar de la palanca ese item se convierte en otro y si no lo hay que diga en un mensaje que necesito ese item.

    Ejemplo: dejo en un pedestal un crystal coin, le doy a la palanca y me elimina el crystal coin y en su lugar me añade un tibia coin o un doll, por poner un ejemplo. Que los items sean random y vayan en función del chance o rareza. A mayor rareza, menor probabilidad.


    Trabajo con TFS 1.3

    2 participantes

    2Lever que convierta un item Empty Re: Lever que convierta un item Mar Sep 26, 2023 7:27 pm

    akane

    akane
    Miembro
    Miembro
    prueba esto :

    Código:
    -- Define una tabla que contenga las probabilidades de los ítems.
    local itemProbabilities = {
        {itemId = 1234, chance = 50}, -- Probabilidad inicial
        {itemId = 5678, chance = 30}, -- Probabilidad inicial
        {itemId = 9012, chance = 20}, -- Probabilidad inicial
    }

    function getRandomItem()
        -- Elige un ítem al azar de la tabla itemProbabilities
        local randomIndex = math.random(1, #itemProbabilities)
        return itemProbabilities[randomIndex]
    end

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
        local groundItem = Tile(fromPosition):getTopDownItem()
       
        if not groundItem then
            player:sendTextMessage(MESSAGE_INFO_DESCR, "Debes dejar un ítem en el suelo antes de accionar la palanca.")
            return true
        end

        local itemId = groundItem:getId()
       
        -- Verifica si el ítem en el suelo es válido
        local validItem = false
        for _, itemData in ipairs(itemProbabilities) do
            if itemData.itemId == itemId then
                validItem = true
                break
            end
        end
       
        if not validItem then
            player:sendTextMessage(MESSAGE_INFO_DESCR, "Debes dejar un ítem válido en el suelo antes de accionar la palanca.")
            return true
        end

        -- Calcula un número aleatorio para determinar si el ítem se entrega o no.
        local randomChance = math.random(1, 100)
       
        local selectedRandomItem = getRandomItem()
       
        if randomChance <= selectedRandomItem.chance then
            player:addItem(selectedRandomItem.itemId, 1)
            groundItem:remove()
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Has obtenido un ítem al azar al accionar la palanca.")
        else
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "No has obtenido un ítem esta vez al accionar la palanca.")
        end
       
        return true
    end

    2 participantes

    3Lever que convierta un item Empty Re: Lever que convierta un item Jue Sep 28, 2023 11:23 am

    danigym

    danigym
    Miembro
    Miembro
    me funcionó, gracias amigo!

    2 participantes

    Contenido patrocinado


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