Roblox Lua 错误值不是 Player 的有效成员,但我不尝试访问它

Posted

技术标签:

【中文标题】Roblox Lua 错误值不是 Player 的有效成员,但我不尝试访问它【英文标题】:Roblox Lua error Value is not a valid member of Player, I don't try accessing that though 【发布时间】:2020-07-23 12:05:07 【问题描述】:

我正在尝试在 Roblox 上制作游戏,不久前我遇到了一个错误,我找不到修复并放弃了,我刚刚开始尝试再次修复它。当我尝试检查玩家是否有能力购买该物品时,我收到错误 Value is not a valid member of Player,这是我的代码来自哪里的错误

game:GetService("ReplicatedStorage"):WaitForChild("Shop"):WaitForChild("UpgradeClicks").OnServerEvent:Connect(function(player, price)
    if player.leaderstats.Views.Value <= price.Value then
        print("test")
    end
end)

这是按下按钮时发生的代码

local RE = game:GetService("ReplicatedStorage").Shop.UpgradeClicks
local button = script.Parent
local price = script.Parent.Price
local player = game.Players.LocalPlayer

button.MouseButton1Click:Connect(function()
    RE:FireServer(player, price)
end)

【问题讨论】:

【参考方案1】:

尝试在不输入播放器变量的情况下调用 fireserver。

【讨论】:

我认为 player.leaderstats.Views.Value 是导致错误的原因,因此只会破坏脚本,我的意思是,如果我删除播放器部分,它可能会修复错误,因为它会破坏脚本大声笑【参考方案2】:

当您调用FireServer() 时,调用它的播放器会自动添加为服务器回调中的第一个参数。

所以到达服务器的参数列表是:player, player, intValue。这就是为什么说 Player.Value 无效。

将您的按钮代码更改为不传入 LocalPlayer。

button.MouseButton1Click:Connect(function()
    RE:FireServer(price)
end)

【讨论】:

当我这样做时,它会消除错误,但不会打印消息 MeDerp,您的问题中没有足够的信息让我弄清楚为什么 player.leaderstats.Views.Value &lt;= price.Value 是错误的。现在原始错误已修复,也许您应该尝试打印更多信息以了解发生了什么,或者使用更完整的代码示例提出另一个问题。 哦,我意识到了我的错误,我很笨,当我的意思是大于时,我做的比做的少。谢谢你帮助我

以上是关于Roblox Lua 错误值不是 Player 的有效成员,但我不尝试访问它的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 lua 检查 Roblox 中是不是存在对象?

ROBLOX Lua 脚本中的错误:“=”应在“<eof>”附近

lua 检查多个值是不是相等

roblox studio 中的 Lua 排行榜

尝试使用“已更改”索引编号 | Roblox Lua

无法在 ROBLOX Lua 中解析 JSON