Статистика лидеров Roblox обновляется только один раз - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь вознаградить игрока опытом каждый раз, когда он наносит удар по поврежденному объекту (боксерская груша, манекены и т.д. я делаю не так?

Мой сценарий:

local ReplicatedStorage = game:GetService("ReplicatedStorage")

script.Parent.Touched:Connect(function(hit)
    local Char = hit.parent
    local Hum = Char:FindFirstChild("Humanoid")
    if Hum and Char.Name ~= script.Parent.Parent.Name then
        local Indicator = require(game.ReplicatedStorage.DamageIndicator)
        local Player = script.Parent.Parent
        local LocalPlayer = game.Players:GetPlayerFromCharacter(Player)
        local Exp = LocalPlayer.leaderstats.Experience.Value
        Hum:TakeDamage(script.Dmg.Value)
        Indicator.DamageActivate(script.Dmg.Value, hit)
        Exp = Exp + 15
        LocalPlayer.PlayerGui.UI.Experience.ExpBar.Size = UDim2.new((Exp / 100) * 0, 0, 0.02, 0)
        LocalPlayer.PlayerGui.UI.Experience.ExpBackground.ExpAmt.Text = Exp.."/100"
        script.Disabled = true
    end
end)

1 Ответ

0 голосов
/ 10 июля 2020

У вас та же проблема, что и этот парень .

Когда вы создаете переменную на основе значения NumberValue, вы сохраняете копию значения, а не ссылку на Это. Если вы хотите обновить значение, вам нужно назначить его вручную.

local Exp = LocalPlayer.leaderstats.Experience
Exp.Value = Exp.Value + 15

local ExpGui = LocalPlayer.PlayerGui.UI.Experience
ExpGui.ExpBar.Size = UDim2.new((Exp.Value / 100) * 0, 0, 0.02, 0)
ExpGui.ExpBackground.ExpAmt.Text = tostring(Exp.Value) .. "/100"
...