无法在 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)
我试过的代码
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)