Domanda

che io chiamo una funzione API nel Signore degli Anelli Online funzionalità di script (LOTRO) Beta Lua. Il metodo API restituisce un "tipo" chiamato ClassAttributes che sarà dei data classe di attributo "tipi". Dico "tipi", perché quando chiamo type() sul valore di ritorno, che dice la sua un tavolo.

C'è un modo per me di verificare il tipo, o il tipo metatabella? per esempio:.

local returnedTable = player:GetClassAttributes();

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

Aggiorna Il seguente codice è quello che uso:

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

e qui è l'output:

  

Lettore: getClass (): 24
  Turbine.Gameplay.Class.Captain: 24
  Stai giocando un capitano

È stato utile?

Soluzione

La documentazione API sono un po 'di confusione, anche se suppongo che ho trovato quello che stai cercando. Il seguente codice dovrebbe dirvi se il giocatore è un capitano:

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

capitano è un membro della tavola Gameplay.Class, che è solo un numero intero come lettura dalla documentazione.

. Nota: Non è necessario terminare una frase Lua con un ";"

Impossibile testarlo. Spero che funziona.

Altri suggerimenti

Se si dispone di un elenco delle possibili metatables per quei valori, è possibile ottenere i loro metatables con il getmetatable (obj) funzione e confrontarle con quelle che hai già. Senza avere accesso alle API di LOTRO non posso dire di più su questo argomento:? Dove posso leggerlo

Questo, naturalmente, presuppone che la tabella restituita dalle GetClassAttributes () funzione ha un metatabella di sé, e che è possibile distinguere è metatabella e le altre classi attributi tabelle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top