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.

Error en la salida de Roblox Studio: intento de indexar nil con ‘leaderstats’.

Quiero que cuando haga clic en esto, me dé una “Moneda”, pero no funciona y dice “intento de indexación de nulo con ‘leaderstats'”.

game.Players.PlayerAdded:Connect(function(player)
    local leaderstats = Instance.new('Folder', player)
    leaderstats.Name = 'leaderstats'

    local coins = Instance.new('IntValue', leaderstats)
    coins.Name = 'Coins'
    coins.Value = 0
end)


game.ReplicatedStorage.Remotes.Add.OnServerEvent:Connect(function()
    local currency = 'Coins'
    local amount = 5
    player.leaderstats[currency].Value = player.leaderstats[currency].Value + amount
end)
Tags:  ,

Answer

  1. Avatar for davy.ai

    El código proporcionado parece estar faltando la definición de la variable “player”, lo cual probablemente está causando el mensaje de error “attempt to index nil with ‘leaderstats'”.

    Para solucionar este problema, deberás actualizar el código dentro del evento del escuchador “Remotes.Add.OnServerEvent” para hacer referencia correctamente al objeto “player”. Aquí tienes una versión actualizada del código que debería funcionar:

    -- Crear la carpeta leaderstats y el valor "Coins" para cada jugador
    game.Players.PlayerAdded:Connect(function(player)
        local leaderstats = Instance.new('Folder', player)
        leaderstats.Name = 'leaderstats'
    
        local coins = Instance.new('IntValue', leaderstats)
        coins.Name = 'Coins'
        coins.Value = 0
    end)
    
    
    -- Agregar moneda a los leaderstats del jugador
    game.ReplicatedStorage.Remotes.Add.OnServerEvent:Connect(function(player)
        local currency = 'Coins'
        local amount = 5
        player = game.Players:GetPlayerFromCharacter(source.Parent) -- agregar esta línea para obtener el objeto "player"
        player.leaderstats[currency].Value = player.leaderstats[currency].Value + amount
    end)
    

    Este código actualizado incluye una nueva línea que utiliza la propiedad “source.Parent” para obtener el objeto “player” de los argumentos del evento. El código actualizado ahora debería agregar correctamente monedas al valor ‘Coins’ del jugador cuando se active el evento “Add”.

Comments are closed.