--- title: Intercambio de eventos Lua ↔ MD summary: Una ruta completa de solicitud de la UI a Mission Director y una respuesta a Lua. section: ui kind: example status: example updated: 2026-10-22 tags: ["X4","modding","md","lua","bridge"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/"] --- ## Instrucciones de intercambio | Dirección | Función o condición | | --- | --- | | Lua → MD | `AddUITriggeredEvent(screen, control, payload)` | | Receptor MD | `event_ui_triggered`, con `event.param3` en el presente contrato | | MD → Lua | `raise_lua_event` | | Receptor Lua | `RegisterEvent(name, callback)` | Los nombres deben coincidir exactamente. Registre el receptor antes de enviar si una respuesta puede llegar inmediatamente. ## Suscripción y solicitud de Lua El ejemplo supone que el archivo de la UI ya está registrado a través del manifiesto. Ilustra la forma de llamada, no la disposición universal del mundo. En un mod real, envíe sólo en un punto establecido en los ciclos de vida de la UI y MD. ```lua local received = false RegisterEvent("Wiki.Pong", function(_, payload) received = payload == "pong" end) AddUITriggeredEvent("WikiBridge", "ping", "hello") ``` ## Manejo y respuesta de MD Insertar este fragmento en el guión `cues`. Coincide con la pantalla/control, valida la simple carga útil de hola y envía la respuesta de pong nombrado. ```xml ``` ## Cuando un intercambio se convierte en una operación Validar los tipos de entrada y la existencia de objetos antes de un efecto de juego. Manejar clics repetidos por separado para acciones que crean objetos o gastan dinero. Mostrar el éxito después de la ejecución real. Reunir respuestas multiparte completas antes de reemplazar una lista mostrada. Ver [ventanas personalizadas](wiki:create-ui) y [AddUITriggeredEvent](wiki:add-ui-triggered-event).