2015-03-13 58 views
1

另一个表的问题是在客户端代码(SRC:cl_hob.lua)更新表成对使用基于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表,然后根据什么在那里更新培训相关表中的主表的新数据。

新的数据并没有包含对每一个字段的信息,但主要的表必须拥有全套数据的各项指标,否则渲染功能中断。

但是上面的代码输出错误:

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

我没有看到上面的代码中任何明显的问题,这样的错误实在是混乱...

+0

即错误意味着之一'队列[I]'或'HBeamTable [指数]''返回为nil'或I''index'的'一些值。您可以将调试添加到该循环以找出哪一个。 – 2015-03-13 11:24:20

回答

3

的错误报道是在行#16。你的代码片段根本不相关。

line #14,您有:

for I = 0 , #Changes do 

和Lua表不从0索引。这引起了错误。