es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sistema de Nivelación Rápida en Juegos RPG de Roblox

Hola queridos compañeros, esta es casi mi primera vez creando un script y estoy buscando la forma de corregir un sistema de nivelación ya predefinido. Es un sistema de nivelación bastante rápido y el problema es que si el jugador tiene mucha más experiencia de la requerida para subir de nivel una vez, ¿cómo puedo hacer que eso suceda instantáneamente como en este ejemplo?

Tengo 10 millones de experiencia y solo necesito 10 mil para subir de nivel. ¿Cómo puedo hacer que eso suceda instantáneamente y alcanzar el nivel 100 mil?

Dado que no quiero que los jugadores tengan problemas de experiencia en mi juego, por favor ayúdenme.

local LevelUp = function(plr, Level, XP)
    if XP.Value >= Level.Value * 25 then
        -- Subir de nivel
        XP.Value = XP.Value - Level.Value * 25 
        Level.Value = Level.Value + 1
        -- Salud
        if (not plr.Character) then return end
        local hum = plr.Character:WaitForChild("Humanoid")
        hum.MaxHealth = hum.MaxHealth + 10
    end
end


game.Players.PlayerAdded:Connect(function(plr)

    plr.CharacterAdded:Connect(function(chr)
        local hum = chr:WaitForChild("Humanoid",10)
        local leaderstats = plr:WaitForChild("leaderstats")
        local Level = leaderstats:WaitForChild("Level")
        repeat wait() until plr:FindFirstChild("DataLoaded")~=nil
        hum.MaxHealth = Level.Value * 10 + 100
        hum.Health = hum.MaxHealth
    end)

    local leaderstats = plr:WaitForChild("leaderstats")
    local Level = leaderstats:WaitForChild("Level")
    local XP = leaderstats:WaitForChild("XP")

    Level.Changed:Connect(function() wait() LevelUp(plr, Level, XP) end)
    XP.Changed:Connect(function() wait() LevelUp(plr, Level, XP) end)
end)

Esto es lo que parece el script. ¿Qué debo agregar para poder “saltar” la experiencia adicional, haciendo que los jugadores suban de nivel más lentamente?

Esto es lo que parece el nivel en este momento. Llevo sin avanzar durante la última hora (Td = 1+e42) imagen

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para permitir a los jugadores saltarse la experiencia excedente, podrías modificar la función LevelUp para agregar un bucle que continúe subiendo de nivel al jugador hasta que tengan exactamente la experiencia suficiente para subir de nivel una vez. Aquí está la función actualizada:

    local LevelUp = function(plr, Level, XP)
        while XP.Value >= Level.Value * 25 do
            -- Subir de nivel
            XP.Value = XP.Value - Level.Value * 25
            Level.Value = Level.Value + 1
            -- Salud
            if (not plr.Character) then return end
            local hum = plr.Character:WaitForChild("Humanoid")
            hum.MaxHealth = hum.MaxHealth + 10
        end
    end
    

    Con esta modificación, si un jugador tiene suficiente experiencia para subir de nivel varias veces, la función seguirá subiendo de nivel hasta que solo tengan la experiencia suficiente para subir de nivel una vez. Esto permitirá a los jugadores subir de nivel rápidamente sin causar problemas con la experiencia excedente.

Comments are closed.