質問

Lord of the Rings Online(Lotro)Beta Lua Scripting機能のAPI関数を呼んでいます。 APIメソッドは、指定されたクラス属性「タイプ」にあるClassAttributesと呼ばれる「タイプ」を返します。私が電話するとき、私は「タイプ」と言います type() 返品値については、テーブルが表示されます。

私がタイプ、またはメタテイター型のタイプをチェックする方法はありますか?例えば:

local returnedTable = player:GetClassAttributes();

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

アップデート次のコードは私が使用するものです:

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

そして、これが出力です:

プレーヤー:getClass():24
Turbine.gameplay.class.captain:24
あなたはキャプテンを演じています

役に立ちましたか?

解決

APIドキュメントは少し混乱していますが、あなたが探しているものを見つけたと思います。次のコードは、プレーヤーがキャプテンであるかどうかを伝える必要があります。

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

CaptainはGamePlay.classテーブルのメンバーです。これは、ドキュメントから読んでいる整数数です。

注: ";"でlua文を終了する必要はありません。

テストできませんでした。それがうまくいくことを願っています。

他のヒント

これらの値に対して可能なメタテーブルのリストがある場合は、 GetTatuatable(OBJ)関数 そして、それらをすでに持っているものと比較してください。 Lotro APIにアクセスしなければ、このテーマについて詳しくは言えません。どこで読むことができますか?

それは、もちろん、getClassattributes()関数によって返されたテーブルがそれ自体がメタテイブルであると仮定しており、そのメタテイブルと他のクラスの属性テーブルを区別することが可能であると仮定しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top