关于事件参数的问题 / 参数。(Roblox Studio)

基本上我有一个代码,在所有玩家的本地脚本中触发。讲话者 / 玩家参数用于确保事件被正确的接收器接收,而"allow"参数是一个布尔值,用于后续的代码。(别想那部分)。

这是 :FireClient Script

1   game.ReplicatedStorage.AllowDisallow:FireClient(speaker, true)

这是接收器 / 本地脚本

1   game.ReplicatedStorage.AllowDisallow.OnClientEvent:Connect(function(player, allow)
2       if not player.Name == game.Players.LocalPlayer.Name then return end

错误:

尝试用'Name'索引布尔值

我的想法是它删除了玩家参数并将其与'allow'布尔值进行了交换。我尝试在google上搜索这个问题,但我没有找到清晰的答案。

其他信息:

  • ReplicatedStorage中有一个事件,就是我使用的那个
  • 它叫做"AllowDisallow"。别想太多关于名称的问题。
  • 'allow'参数应该是一个布尔值,而“玩家”应该是玩家。

此致,Mathe

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

点赞
stackoverflow用户2860267
stackoverflow用户2860267

错误是告诉你 LocalScript 中的 player 变量是一个布尔值,而不是 Player 对象。

当你调用 RemoteEventFireClient 函数时,第一个参数表示它将发送到哪个玩家,其余的参数作为参数提供给 OnClientEvent 回调函数。例如,

-- 服务器如下调用…
RemoteEvent:FireClient(player, a, b, c)

-- 客户端将会接收到…
RemoteEvent.OnClientEvent:Connect(function(a, b, c) end)

你只需要更新你的接收者 LocalScript ,使其参数反映出服务器所提供的内容。然后你可以删除 LocalPlayer 安全检查,因为 OnClientEvent 只为 LocalPlayer 触发。

local allowDisallow = game.ReplicatedStorage.AllowDisallow
allowDisallow.OnClientEvent:Connect(function(allow)
    -- 做一些事情
end)
2022-02-15 23:10:44
stackoverflow用户17502128
stackoverflow用户17502128

尝试在服务器事件中打印参数并检查有什么问题。

2022-04-25 16:24:31