Pregunta

Estoy llamando a una función de API en el Señor de la característica de scripting (LOTRO) Beta Lua Anillos Online. El método API devuelve un "tipo" llamada ClassAttributes que estará en el atributo de "tipos" clase dada. Digo "tipos", porque cuando llamo type() en el valor de retorno, se dice que es una mesa.

¿Hay una manera para mí para verificar el tipo o el tipo metatabla? por ejemplo:.

local returnedTable = player:GetClassAttributes();

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

Actualizar El código siguiente es lo que yo 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

y aquí está la salida:

jugador: getClass (): 24
Turbine.Gameplay.Class.Captain: 24
Usted está jugando un capitán

¿Fue útil?

Solución

Los documentos de la API son un poco confuso, aunque supongo que encontré lo que estás buscando. El siguiente código debe decirle si el jugador es un capitán:

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

capitán es un miembro de la mesa Gameplay.Class, que es sólo un número entero como la lectura de los docs.

Nota:. No es necesario para poner fin a una sentencia de Lua con un ";"

No se pudo probarlo. Espero que funcione.

Otros consejos

Si usted tiene una lista de los posibles metatablas para esos valores, se puede tener en sus metatablas con el getmetatable (obj) función y los comparan con las que ya tiene. Sin tener acceso a la API de LOTRO No puedo decir más sobre el tema: ¿dónde puedo leer lo

Eso, por supuesto, es suponiendo que la tabla devuelta por los GetClassAttributes () función tiene un metatabla de sí mismo, y que es posible diferenciar entre su metatabla y las otras clases atribuye tablas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top