--- title: Lua ↔ MD 事件通信 summary: 完全从UI到Mission Director的请求路线,并回复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/"] --- ## 交换方向 | 方向 | 函数或条件 | | --- | --- | | Lua 士 | `AddUITriggeredEvent(screen, control, payload)` | | 接收器 | `event_ui_triggered`, 其他 `event.param3` 在本合同中 | | MD → Lua | `raise_lua_event` | | 接收器Lua | `RegisterEvent(name, callback)` | 它们的名称一定是完全一致的. 如果可以立即收到回复,请在发送前注册收件人. ## Lua订阅和请求 设例中UI文件已经通过表格注册. 它说明了召唤形式,而不是世界准备. 在真正的调整中,只发送在UI和MD生命周期中的确定的点. ```lua local received = false RegisterEvent("Wiki.Pong", function(_, payload) received = payload == "pong" end) AddUITriggeredEvent("WikiBridge", "ping", "hello") ``` ## 处理和回复 插入这个片段在你的脚本中 `cues`. 其他它与屏幕/控制匹配,验证简单的"你好"有效载荷, ```xml ``` ## 当交换变成一个操作时 在游戏效果之前验证输入类型和对象存在. 处理重复点击的单独操作,以创建物体或花钱. 在实际执行后,表现出成功. 在取代显示列表之前,组装完整的多部分答案. 看到 [定制窗户](wiki:create-ui) 和 [AddUITriggeredEvent](wiki:add-ui-triggered-event).