Question

Je fais appel une fonction API dans le Seigneur des Anneaux Online (SdAO) Beta Lua fonction de script. La méthode API renvoie un « type » appelé ClassAttributes qui sera sur des « types » d'attributs classe donnée. Je dis « types » parce que quand j'appelle type() sur la valeur de retour, il dit sa table.

Yat-il un moyen pour moi de vérifier le type ou le type métatable? par exemple:.

local returnedTable = player:GetClassAttributes();

if (returnedTable.Name == "CaptainClassAttributes")
    print("You are playing a captain");
end

UPDATE Le code suivant est ce que j'utilise:

player = Turbine.Gameplay.LocalPlayer.GetInstance();

Turbine.Shell.WriteLine("player:GetClass():" .. player:GetClass());
Turbine.Shell.WriteLine("Turbine.Gameplay.Class.Captain:" .. Turbine.Gameplay.Class.Captain);

if (player:GetClass() == Turbine.Gameplay.Class.Captain) then
    Turbine.Shell.WriteLine("You are playing a captain");
end

et est ici la sortie:

  

joueur: GetClass (): 24
  Turbine.Gameplay.Class.Captain: 24
  Vous jouez un capitaine

Était-ce utile?

La solution

Les API docs sont un peu déroutant, même si je suppose que je trouvé ce que vous cherchez. Le code suivant devrait vous dire si le joueur est un capitaine:

local player = Turbine.Gameplay.Player
if (player:GetClass() == Turbine.Gameplay.Class.Captain) then
    print("You are playing a captain")
end

Capitaine est un membre de la table de Gameplay.Class, qui est juste un nombre entier que la lecture à partir de la documentation.

Note:. Vous n'avez pas besoin de mettre fin à une phrase Lua avec un ";"

Impossible de le tester. Espérons que cela fonctionne.

Autres conseils

Si vous avez une liste des métatables possibles pour ces valeurs, vous pouvez obtenir leurs métatables avec le fonction getmetatable (obj) et de les comparer à ceux que vous avez déjà. Sans avoir accès à l'API SdAO Je ne peux pas en dire plus sur le sujet: où puis-je lire

Cela, bien sûr, est en supposant que la table renvoyée par la fonction GetClassAttributes () a une métatable de lui-même, et qu'il est possible de faire la différence entre elle est métatable et les autres classes' tables attributs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top