成对使用,根据Lua中的另一个表更新表

时间:2015-03-13 08:37:10

标签: lua garrys-mod

问题出在客户端代码(src:cl_hob.lua

net.Receive("HobNetMsg", function(len) 
    local Queue = {}
    Queue = net.ReadTable()
    for I = 1 , #Queue do 
        local index = Queue[I]["index"]
        for Key , Value in pairs(Queue[I]) do
            HBeamTable[index][Key] = Value
        end
    end
end)

代码应该从我的服务器端代码hob.lua获取网络消息,其中包含我想要对客户端表HBeamTable进行的所有更新的表。上面的代码应该做的是查看recived表,然后根据其中的whats更新主表中的新数据的相关表。

新数据不必包含每个字段的信息,但主表必须为每个索引都有一整套数据,否则渲染函数会中断。

但上面的代码输出错误:

/cl_hob.lua:16: attempt to index a nil value

我没有看到上述代码有任何明显问题,因此错误确实令人困惑......

1 个答案:

答案 0 :(得分:3)

报告的错误在第16行。您的代码段根本不相关。

line #14,你有:

for I = 0 , #Changes do

和lua表未从0编入索引。这会引发错误。