Was für eine Bibliothek ist#

A library definiert eine Cue-Vorlage; eine Referenzierung cue ref erzeugt seine Verwendung. Es ist keine Lua-Funktion. Erforderliche Parameter haben keine default; die Benutzer liefert param ohne params Wraper.

Vollständiges unabhängiges Beispiel#

XML
<mdscript name="WikiLibraryDemo">
  <cues>
    <library name="DescribeAmount">
      <params>
        <param name="Amount" />
        <param name="Offset" default="1" />
      </params>
      <actions>
        <set_value name="$Result" exact="$Amount + $Offset" />
        <debug_text text="$Result" />
      </actions>
    </library>
    <cue name="Small" ref="DescribeAmount">
      <param name="Amount" value="4" />
    </cue>
    <cue name="Large" ref="DescribeAmount">
      <param name="Amount" value="10" />
      <param name="Offset" value="2" />
    </cue>
  </cues>
</mdscript>

Was geschieht#

Mit neuem Skriptzustand berechnet Small 5 und Large 12 debug_text sendet diese Werte an das Diagnoseprotokoll mit Skriptausgabe aktiviert. Ihre Nachrichtenreihenfolge ist nicht spezifiziert. Dieses Beispiel wurde im Spiel nicht ausgeführt.

Übung: ändern Sie nur Small's Amount. Sein erwartetes Ergebnis sollte sich ändern, ohne die Vorlage oder die Inputs von Large zu bearbeiten.

Geltungsbereich#

Parameter werden $Amount und $Offset wenn das Queue aktiviert ist. ref="md.ScriptName.LibraryName" für ein anderes Skript. Verhalten-Attribute auf einem Referenz-Queue überschreiben die Vorlage nicht: außer für ihren Namen kommt das Verhalten aus der Bibliothek.

Aktualisierung eines aktivierten Queues erfordert Überprüfungen der Ein-/Ausladung. Egosoft's gemeinsam genutzte Anleitung beschreibt die XR/X4 MD Struktur; verifizieren Sie die tatsächliche Aktion gegen X4. cues und Variablen.