Austauschanweisungen#

Richtung Funktion oder Bedingung
Lua → MD AddUITriggeredEvent(screen, control, payload)
MD-Empfänger event_ui_triggered, mit event.param3 in diesem Vertrag
MD → Lua raise_lua_event
Lua Empfänger RegisterEvent(name, callback)

Namen müssen exakt übereinstimmen. Registrieren Sie den Empfänger vor dem Senden, wenn eine Antwort sofort eintreffen kann.

Lua Abonnement und Antrag#

Das Beispiel geht davon aus, dass die UI-Datei bereits über das Manifest registriert ist. Sie veranschaulicht die Rufform, nicht die universelle Weltbereitschaft. In einem echten Mod senden Sie nur an einem festen Punkt sowohl in UI als auch MD-Lebenszyklen.

LUA
local received = false

RegisterEvent("Wiki.Pong", function(_, payload)
    received = payload == "pong"
end)

AddUITriggeredEvent("WikiBridge", "ping", "hello")

Handhabung und Antwort von MD#

Fügen Sie dieses Fragment in das Skript ein cues. Es passt zu Bildschirm/Steuerung, validiert die einfache hallo Payload und sendet die benannte Pong-Antwort.

XML
<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>

Wenn ein Austausch zu einer Operation wird#

Validieren Sie Eingabetypen und Objektexistenz vor einem Spieleffekt. Behandeln Sie wiederholte Klicks separat für Aktionen, die Objekte erstellen oder Geld ausgeben. Zeigen Sie Erfolg nach der tatsächlichen Ausführung. benutzerdefinierte Fenster und AddUITriggeredEvent.