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:
local wareName, volume = GetWareData("energycells", "name", "volume")
if type(wareName) == "string" and type(volume) == "number" then
DebugError("[WIKI] ware=" .. wareName .. "; volume=" .. tostring(volume))
endEfecto: 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:
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.