UIX es una dependencia separada#
Las extensiones UI de kurtee y HUD añaden puntos de despacho a los menús estándar. menu.registerCallback y Helper.registerCallback mecanismo no debe ser asumido en vainilla. UIX tiene su propia historia de la versión: un gancho en la línea 9.x no tiene que existir en 8.x.
Un ejemplo de suscripción#
Ejecutar este fragmento después de UIX y MapMenu están listos:
local menu = Helper.getMenu("MapMenu")
if menu and type(menu.registerCallback) == "function" then
menu.registerCallback("createPropertyOwned_on_start", function(config)
DebugError("[WIKI] owned-property list is being built")
end, "wiki_ui_demo")
endCuándo y qué imprime: llegar a este punto de despacho mientras se construye la lista de propiedad del mapa produce [WIKI] owned-property list is being built. El ejemplo no añade ningún botón y no cambia ninguna propiedad. No afirma una estructura para config, que el encargado no lee.
Eliminar sólo su suscripción durante la fase de limpieza apropiada:
menu.deregisterCallback("createPropertyOwned_on_start", nil, "wiki_ui_demo")Este es un paso de limpieza separado, no código para ejecutar inmediatamente después de la inscripción. menu tabla con ese método.
Argumentos y valores de retorno#
Lea los argumentos de una callback por separado de cómo se utiliza su retorno. Los eventos pueden descartar las devoluciones; las anulaciones pueden elegir la última respuesta, pasarla a través de una cadena o detener el envío. registerCallback el nombre no establece un contrato para todos los ganchos. La fuente proporciona tarjetas de registro, titular, agregación y disponibilidad por liberación.
La fila de iconos compartida#
Varios menús de pantalla completa utilizan Helper.topLevelMenus. La fuente explica que Helper.maxTableCols == 13 permite 11 entradas visibles porque dos columnas están reservadas. Helper.checkTopLevelConditions, no sólo la longitud de la lista.
Las versiones 8.00/9.00 tienen Helper.topLevelConfig.scrolling. Un icono personalizado necesita manejo de desbordamiento, contando cuando las condiciones cambian y la limpieza con conocimiento de propiedad. No deshabilitar el desplazamiento de otro mod solicitado. La fuente detalla el algoritmo de coordinación.
Comprobaciones de compatibilidad#
Compruebe las versiones exactas de X4/UIX, el tiempo de inicialización, la apertura de mapas repetidos, la desregistración y varios mods de la UI juntos. Una comprobación de sintaxis local no establece una devolución de llamada en el juego. Estos fragmentos no se ejecutaron en X4. API de UI compartidas, ventanas personalizadas y Lua/MD.