2015-03-13 56 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索引。這引起了錯誤。