在 Roblox Studio 上调用表值错误的尝试

我在编写 Roblox 游戏时遇到了一些问题。实际上,当角色重新出生时,游戏会崩溃。

我在服务器端脚本中编写了某些平台“得分”,然后保存到一个表中。在该服务器端脚本中,我编写了一个函数,当玩家得分时,向所有客户端触发事件更新该表。在本地脚本中,我将收到的表保存到本地表中,本地脚本针对该表检查平台是否可用。一切都很顺利,直到重新生成。重新出生时,本地表为空。我正在尝试通过远程函数来修复这个问题,该函数在重新生成时检查服务器端脚本中的表是否有东西。

我遇到的问题是,现在,当游戏开始时,还没有人得分时,本地脚本会检查表是否有东西,因为表为空,我会得到一个错误。我的行为:

local platsScored = FetchTableOfPlatsScored:InvokeServer()

错误:

尝试调用表值

相反,我尝试做以下事情:

if FetchTableOfPlatsScored:InvokeServer() then
    platsScored = FetchTableOfPlatsScored:InvokeServer()
else platsScored = {}
end

在我的逻辑中,这检查表中是否有内容,如果有,它将其加载到本地表中,如果没有,则设置该表。这仍在给我同样的错误。所以我的问题是,我必须将我的调用服务器远程函数包装在什么中,以免在表为空时出错。

我尝试过的另一种解决方案是在我的服务器端脚本中修改函数:

local function passTable()
    return platsScored

end

FetchTableOfPlatsScored.OnServerInvoke = passTable()

改为类似以下的内容:

local function passTable()
    if platsScored ~= nil then
       return platsScored
    else
    ** 我应该在这里写什么,以免破坏代码*
end
点赞