Lo que es una biblioteca#
A library define una plantilla de referencia; una referencia cue ref crea su uso. No es una función Lua. Los parámetros requeridos no tienen default; el usuario suministra param sin una params Envoltorio.
Ejemplo completo independiente#
<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>Qué ocurre#
Con un estado de escritura fresco, Small calcula 5 y Large calcula 12. debug_text envía estos valores al registro de diagnóstico con salida de script activada. Su orden de mensajes no está especificada. Este ejemplo no ha sido ejecutado en juego.
Ejercicio: cambiar sólo Small's Monto. Su resultado esperado debe cambiar sin editar la plantilla o las entradas de Large.
Ámbito de aplicación#
Parámetros $Amount y $Offset cuando la señal está activada. Usar calificado ref="md.ScriptName.LibraryName" Los atributos de comportamiento en una referencia no anulan la plantilla: excepto por su nombre, el comportamiento viene de la biblioteca.
Actualizar una señal habilitada requiere guardar/cargar comprobaciones. La guía compartida de Egosoft describe la estructura MD de XR/X4; verifique la acción real establecida contra X4. cues y variables.