无法在 lua 中获取播放器内部的值

Can't get to a value inside a player in lua

我试过的代码

game.Workspace.burgerclick.OnServerEvent:Connect(function()
    local playername = game.Workspace.ClickPlayer.Value
    local player = game.Players:FindFirstChild(playername)
    local playaname = player.Name
    local fpval = game.Players[playaname].FP.Value
    fpval = fpval + 1
end)

我正在制作一个游戏,我想要一个按钮来更新一个叫做 FP 的东西的值,在工作区中我有一个名为 ClickPLayer 的字符串值,它会更新到玩家点击按钮。这样可行。我创建了一个变量,它的值是字符串值,但是当我更新 FP 值时将变量放在行内时,它说变量不是玩家的有效成员。我不知道该怎么做。

我认为正确的代码应该是这样的:

game.Players[playaname].FP.Value = game.Players[playaname].FP.Value + 1 

因为,当你这样做时:

 local fpval = game.Players[playaname].FP.Value
 fpval = fpval + 1

您正在将 game.Players[playaname].FP.Value 的值复制到 fpval 并递增副本 (fpval = fpval + 1),而不是 game.Players[playaname].FP 持有的值。

最正确、最有效的代码是

local Players = game:GetService("Players")
local fpval
local plr
workspace.burgerclick.Activated:Connect(function()
    plr = workspace.ClickPlayer.Value
    fpval = Players[plr].FP
    fpval.Value = fpval.Value + 1
end)

TextButtons and ImageButtons 的文档中,有一个 Activated 事件可用于此目的,而不是从 LocalScript 触发服务器,这正是您的脚本的目标现在做。但是,如果按钮在 PlayerGui 中并且您有一个激活 LocalScript,您可能想改用此代码:

local fpval
workspace.burgerclick.OnServerEvent:Connect(function(plr)
    fpval = plr.FP
    fpval.Value = fpval.Value + 1
end)