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.
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.
<cue name="Ping" instantiate="true" namespace="this">
<conditions>
<event_ui_triggered screen="'WikiBridge'" control="'ping'" />
</conditions>
<actions>
<do_if value="event.param3 == 'hello'">
<raise_lua_event name="'Wiki.Pong'" param="'pong'" />
</do_if>
</actions>
</cue>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 y AddUITriggeredEvent.