Roblox - 试图让InvokeClient远程功能工作

时间:2016-03-05 02:19:07

标签: roblox

在我的名为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脚本的经验。

谢谢, 安迪

1 个答案:

答案 0 :(得分:2)

它没有运行的原因是因为LocalScripts引用的RemoteFunctions应该位于其中某个地方的Player实例内。我确实是这种情况,因为我已经实施了类似的测试系统,但我在LocalScript实例中保留了Player