Bezugsbereich#
Der Katalog beschreibt bekannte öffentliche X4 Modding-Schnittstellen. Ein identifizierter Name stellt nicht seinen gesamten Vertrag fest oder beweist die Ausführung im Spiel. Mod-Dateien, interne Dokumente und komplette Quelldateien werden nicht verteilt.
Typische Nachweise#
| Nachweis | Gründung | Noch ist eine Überprüfung erforderlich |
|---|---|---|
| C Erklärung | Parameterreihenfolge, C-Typen und C-Rückgabetyp | Export, ABI, Kontext, Speicherbesitz und Lebensdauer |
| X4 XSD | Attributnamen, Ausdruckstypen und erforderliche Attribute | Bewertete Arten, Ereignis-Payloads und Spieleffekte |
| Lua 5.1 / LuaJIT | Standard-Bibliotheksverträge | Verfügbarkeit und Erweiterungen in der aktuellen X4 Umgebung |
| Dokumentation des konkreten Ereignisses | Callback-Argumente und Feldbedeutungen | Version, Registrierungszeitpunkt und Objektlebensdauer |
Der Schematyp expression beschreibt einen MD-Ausdruck, nicht den Typ seines berechneten Wertes. Filterattribute deklarieren keine event.param-Typen. Ein ignoriertes Ergebnis beweist weder none noch void noch nil.
Leseergebnisse#
Lua kann mehrere Werte zurückgeben. Kommas getrennte Ergebnispositionen; eine vertikale Leiste trennt Alternativen. unbekannt bedeutet einen nicht feststehenden Vertrag, während jeder von Kontext abhängt. keine und keine Leere zeigen keine direkte Rückkehr an, aber Effekte und Ausgabepuffer können noch existieren.
C-Typen entsprechen nicht immer ihrer Lua-Darstellung. Ein Zeiger ist cdata; ffi.string kopiert einen C-String in einen Lua-String, wenn die Speicherlebensdauer festgelegt ist. Konverter Sie keine IDs mit einem Präzisionsverlust. Siehe Arten und Methoden, Kennungen und cdata.
Ereignisse und Abonnements#
| Verfahren | Verwendung |
|---|---|
| Lua-Ereignis | RegisterEvent mit exaktem Namen und Rückruf im entsprechenden UI-Kontext |
| UI an MD | event_ui_triggered unter Verwendung von |
| MD-Engine-Ereignis | Sein Ereignis-* Zustand und genaue Filter |
Diese Routen haben unterschiedliche Verträge. Ein MD-Ereignisname kann nicht automatisch mit RegisterEvent verwendet werden. Registrieren Sie sich einmal pro Kontext; legen Sie Callback-Typen fest und zählen Sie für den genauen Absender. Lua / MD Brücke gibt ein unabhängiges Lernbeispiel.
Beispiele und Überprüfung#
Lernfragmente erfordern den angegebenen Kontext, Variablen und Lebenszyklus. Sie werden nicht behauptet, ohne ein dokumentiertes Experiment im Spiel gelaufen zu sein. Unvollständige Verträge behalten explizite Grenzen; erfinden keine Puffergrößen oder Nutzlastformen.
Beginnen Sie mit der API-Index. Zur Verbesserung eines Vertrags, bieten die Spielversion, eine primäre öffentliche Quelle und ein kleines unabhängiges Beispiel durch Beiträge.