2017-06-12 31 views
0

基本上我有一個SHARED lua文件,我在此定義該表。 我這樣做是因爲我認爲如果我們在共享文件中定義表,我們可以使用它在客戶端和服務器端。不在客戶端上打印的共享表

SHARED.lua:

TableA = {} 

然後我編輯在SERVER LUA文件。

SERVER.lua:

function UpdateTable() 
    // Clean Table first 
    for k in pairs(TableA) do 
     TableA[k] = nil 
    end 
    ... not worth showing the rest ... 
    // Insert New Values 
    for i=1, 10 do 
     table.insert(TableA, result[i]) 
    end 
    // Debug Print 
    print(table.ToString(TableA)) // It Prints every value correctly 
end 

現在,當我嘗試打印客戶端,它說的表存在,但它是空的。

CLIENT.lua:

print(table.ToString(TableA))// Prints "{}" and it shouldn't be empty 

注:UpdateTable()運行每隔5min

回答

1

顯然,當我們定義共享一個表,並不意味着價值將通過服務器和客戶端共享。這隻意味着代碼將在服務器/客戶端上運行。 你必須爲他們聯網才能「共享」桌面上的值。

+1

是的,你完全正確。 'net'庫是實現服務器/客戶端同步的最好方式,實際上你可以使用'net.WriteTable'通過網絡庫發送整個表,儘管我只會建議這個初始狀態,然後使用各種各樣的發送增量更新淨功能。 – MattJeanes

相關問題