在我的名为MainGameScript的服务器脚本中,我有这个代码块:
local myRemoteFunction = Instance.new("RemoteFunction")
myRemoteFunction.Parent = game.Workspace
myRemoteFunction.Name = "GetBuildInfo"
game.Players.PlayerAdded:connect(function(player)
print("[MainGameScript] added player")
for i,v in pairs(Regions) do
if (v.Value == 0) then
Regions[i].Value = player.UserId
break
end
end
local success, result = pcall(function() return myRemoteFunction:InvokeClient(player) end)
if success then
print(result)
else
print("Error calling RemoteFunction GetBuildInfo")
end
端)
我在game.Workspace中有一个名为LocalBuildScript的LocalScript,其中包含:
function game.workspace.GetBuildInfo.OnClientInvoke()
print("[GetBuildInfo] will send back local build info")
return "this will be returned to the server caller script"
end
永远不会调用GetBuildInfo函数。我已经向调用函数添加了一些调试打印行,并且该过程似乎在它使用pcall的时候死...这几乎是Roblox Wiki中的Remote Function Client Invoke示例,不知道为什么它不起作用,我希望这里的人有一些使用InvokeClient脚本的经验。
谢谢, 安迪
答案 0 :(得分:2)
它没有运行的原因是因为LocalScripts
引用的RemoteFunctions
应该位于其中某个地方的Player
实例内。我确实是这种情况,因为我已经实施了类似的测试系统,但我在LocalScript
实例中保留了Player
。