問題はクライアント側のコードにあります (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)
このコードは、クライアント側テーブル HBeamTable に対して行うすべての更新のテーブルを含むサーバー側コードhob.luaからネット メッセージを取得することになって います。上記のコードがすべきことは、受け取ったテーブルを見て、そこにあるものに基づいて、メイン テーブルの関連テーブルを新しいデータで更新することです。
新しいデータにはすべての単一フィールドの情報が含まれている必要はありませんが、メイン テーブルにはインデックスごとに完全なデータ セットが含まれている必要があります。そうしないと、render 関数が壊れます。
ただし、上記のコードはエラーを出力します。
/cl_hob.lua:16: attempt to index a nil value
上記のコードには明らかな問題は見られないため、エラーは本当に混乱します...