为什么这个整数值在设置后会重新出现?[Roblox Studio]

非常抱歉如果这是一个非常简单或容易的问题,但是我正在尝试将玩家的leaderstat “Money”设置为0,但它仍然会以旧值出现。我能想到的可能导致这个问题的唯一原因是moneyGain脚本正在重复运行。

这是我的moneyGain脚本:

local playerMoney

while wait(0.24) do
    local buttons = script.Parent.Parent.info.savedItems.Value.buttons:GetChildren()
    for button = 1, #buttons, 1 do
        if buttons[button].Parent.Parent.tycoon.Value ~= nil then
            if buttons[button].Parent.Parent.tycoon.Value.info.owner ~= nil then
                if buttons[button].jobDone.Value == true then
                    script.Parent.moneyEnforcer.enforce:Invoke(buttons[button].gainVal.Value)
                end
            end
        end
    end

    --OWNERDOOR:
    if script.Parent.Parent.info.owner.Value ~= nil then
        script.Parent.moneyEnforcer.enforce:Invoke(1)
    end
end

这是我的moneyEnforcer脚本:

local rs = game:GetService("ReplicatedStorage")
local dictionary = require(rs.dictionary)
local vipPlayers = dictionary.vipPlayers

script.enforce.OnInvoke = function(amount)
    print(amount)
    if script.Parent.Parent.info.player.Value ~= nil then
        if game:GetService("GamePassService"):PlayerHasPass(script.Parent.Parent.info.player.Value, 25494219) then
            amount = amount * 2
        else
            for i = 1, #vipPlayers, 1 do
                if script.Parent.Parent.info.player.Value.Name == vipPlayers[i] then
                    amount = amount * 2
                end
            end
        end
        local playerMoney = script.Parent.Parent.info.player.Value.leaderstats.Money
        script.Parent.Parent.info.player.Value.leaderstats.Money.Value = script.Parent.Parent.info.player.Value.leaderstats.Money.Value + amount
    end
end

这是tycoon重置器:

local player = script.Parent.Parent.Parent.Parent.Parent.Parent
script.Parent.Parent.Parent.Visible = false

script.Parent.MouseButton1Click:Connect(function()
    player.leaderstats.Money.Value = 0
    script.Parent.Parent.Parent.Visible = false
    local savedItems = player.claimedTycoon.Value.info.savedItems.Value
    local builds = player.claimedTycoon.Value.activeBuilds:GetChildren()
    local buttons = player.claimedTycoon.Value.activeButtons:GetChildren()
    for i = 1, #builds, 1 do
        builds[i].Parent = savedItems.builds
    end
    for j = 1, #buttons, 1 do
        buttons[j].Parent = savedItems.buttons
    end
    savedItems.builds.dirtStarterBase.Parent = player.claimedTycoon.Value
    player.claimedTycoon.Value.info:WaitForChild("activeWave").Value = 1
end)

我尝试将“script.Parent.Parent.info.player.Value.leaderstats.Money.Value = script.Parent.Parent.info.player.Value.leaderstats.Money.Value + amount”放在moneyGain脚本中,但是没有任何区别。

感谢任何帮助!

原文链接 https://stackoverflow.com/questions/70148396

点赞
stackoverflow用户17060604
stackoverflow用户17060604

我相信你的问题是你正在 从客户端 设置 money 的值。当你从本地脚本更改值时,它不会在服务器上更新。要解决此问题,请从服务器更新值

tycoon reseter 中,尝试使用 RemoteEvent 从服务器重置该值。

2021-11-29 02:43:35