Frage

Ich rufe eine API-Funktion in der Herr der Ringe Online (HdRO) Beta Lua Scripting-Funktion. Die API-Methode gibt einen „Typen“ genannt ClassAttributes, die auf den gegebenen Klasse Attribut „Typen“ sein werden. Ich sage „Typ“, denn wenn ich type() auf dem Rückgabewert nennen, es sagt es ist ein Tisch.

Gibt es eine Möglichkeit für mich, die Art oder Metatabelle Typen zu überprüfen? z.

local returnedTable = player:GetClassAttributes();

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

UPDATE Der folgende Code ist, was ich benutze:

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

und hier ist die Ausgabe:

Spieler: GetClass (): 24
Turbine.Gameplay.Class.Captain: 24
Du spielst einen Kapitän

War es hilfreich?

Lösung

Die API-Dokumentation ist etwas verwirrend, obwohl ich glaube, fand ich, was Sie suchen. Der folgende Code sollte Ihnen sagen, wenn der Spieler ein Kapitän:

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

Kapitän ist ein Mitglied der Gameplay.Class Tabelle, die nur eine ganzzahlige Zahl ist, wie in der Dokumentenlese.

. Hinweis: Sie brauchen nicht einen Lua Satz mit einem beenden „“

konnte nicht testen. Hoffe, dass es funktioniert.

Andere Tipps

Wenn Sie eine Liste der möglichen Metatables für diese Werte haben, können Sie ihre Metatables mit der getmetatable (obj) Funktion und vergleichen sie Sie bereits auf diejenigen. Ohne Zugriff auf die HdRO-API kann ich nicht sagen, mehr über das Thema: wo kann ich es lesen

Das ist natürlich, wird unter der Annahme, dass die Tabelle durch das GetClassAttributes () zurück Funktion hat eine Metatabelle von selbst, und dass es möglich ist zu unterscheiden zwischen ihm Metatabelle ist und die anderen Klassen Attribute Tabellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top