Elija el identificador correcto#

Función Primer argumento Resultado
GetComponentData(component, ...) Manija de componentes existente en la UI Un valor por clave solicitada
GetMacroData(macro, ...) string: nombre de la plantilla macro Un valor por clave solicitada
GetWareData(wareID, ...) string: ID del programa Un valor por clave solicitada

Estos pertenecen a X4 UI Lua, no estándar Lua o MD. Un puntero C, nombre de macro y ID de software no son intercambiables. Las claves aceptadas dependen de la función y la versión del juego. groupName, no groupname. Las tarjetas de origen listan los conjuntos de claves completos.

Tarjetas de referencia de llamadas: GetComponentData, GetMacroData, GetWareData.

Un ejemplo de consulta de software#

En un contexto de addon X4 en ejecución:

LUA
local wareName, volume = GetWareData("energycells", "name", "volume")
if type(wareName) == "string" and type(volume) == "number" then
    DebugError("[WIKI] ware=" .. wareName .. "; volume=" .. tostring(volume))
end

Efecto: el primer resultado entra en wareName, el segundo en volume. Con los tipos esperados, una línea de diagnóstico contiene el nombre localizado y el volumen recuperado. Los valores exactos dependen de los datos y mods del juego; no se promete ningún nombre o número fijo.

El contrato general es any, ... porque la clave determina el tipo. Esta consulta espera string y number; otras claves no necesitan tener esos tipos. Una clave desconocida puede dar nil en su posición y un diagnóstico del motor.

Los múltiples valores no son una tabla#

Ejemplo Lua independiente sin el juego:

LUA
local function sample()
    return "Demo", nil, 4
end
local title, missing, amount = sample()
local first = sample()

Valores: title == "Demo", missing == nil, amount == 4, first == "Demo". Múltiples variables conservan posiciones. Una variable recibe el primer resultado. No trate un {...} lista que contiene un nil como una matriz densa para ipairs.

Continuar en la práctica#

Para los componentes, establezca una fuente de manejo de UI válida y la vida útil primero. Las macros no necesitan instancia en vivo, pero sí necesitan un nombre de plantilla válido. Compruebe las claves y versiones, luego los tipos antes de la aritmética o el formato. Estos ejemplos no se ejecutaron en el juego; la investigación del autor de la fuente no se presenta como nuestra prueba.

Asistencia al editor: X4-LuaLSAddon. Estas son las definiciones de Lua Language Server, no archivos mod ejecutables. tipos, Identificadores Lua y C y UI/MD.