2017-06-12 1 views
0

Fondamentalement, j'ai un fichier lua SHARED où je définis la table. Je l'ai fait parce que je pensais que si nous définissons la table dans un fichier partagé, nous pouvons l'utiliser côté client et côté serveur.La table partagée ne s'imprime pas sur le client

SHARED.lua:

TableA = {} 

Puis-je modifier un fichier sur 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 

Maintenant, lorsque je tente d'imprimer côté client, il dit le tableau existe, mais il est vide.

CLIENT.lua:

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

Note: UpdateTable() passe toutes les 5 minutes

Répondre

1

Apparemment, quand on définit une table partagée, ne signifie pas que les valeurs seront partagées via le serveur et le client. Cela signifie seulement que le code fonctionnera sur le serveur/client. Vous devez les mettre en réseau pour qu'ils "partagent" les valeurs sur la table.

+1

Oui, vous avez tout à fait raison. La bibliothèque 'net' est la meilleure façon d'obtenir une synchronisation serveur/client, en fait vous pouvez envoyer des tables entières à travers la net library en utilisant' net.WriteTable' mais je ne recommanderais cela que pour l'état initial et ensuite envoyer des mises à jour incrémentales fonctions nettes. – MattJeanes