... damit hab ich auch oft soo meine probleme, etwas verwirrend die md-geschichte, am besten immer debuggen (d.h. werte via ingame-message ausgeben lassen)
zuerst mal: md-variablen sind datei-unabhängig, d.h. wenn cue 1 aus datei 1 einen wert setzt (egal ob lokal "cue_1.variablenname" oder global), dann kann cue 2 aus datei 2 sofort darauf zugreifen
-------------------------------------------------
<set_value name="FIUS_Start2.Zufallsrasse" exact="{lookup.race@argon}"/>
... setzt auf cue "FIUS_Start2" nen lokalen wert 1
... warum 1 ?? weil die engine die rasse "argon" als wert/zahl interpretiert, drum muss man auch lookup.race@... vorne dran stellen, um eben diesen internen wert zu erhalten
<param name="FIUSRassenvorgabe" value="{value@FIUS_Start2.Zufallsrasse}"/>
... ok, du übergibst der lib also den wert 1 bei der adresse "FIUSRassenvorgabe"
<param name="OBSFleetPilotsRace" value="{param@FIUSRassenvorgabe}" comment="The race ID of the pilots"/>
... hier versuchst du, 1 an die OBS asdresse "OBSFleetPilotsRace" zu übergeben:
falsch
... siehe assasination mission z.B.: da steht:
<param name="OBSFleetPilotsRace" value="{value@{param@Cue}.{param@ID} L0EnemyRace}"/>
... hier wird nämlich der wert übergeben, d.h. man muss wieder {value@...} vorne dran stellen
=> später, wenn du diese 1 in der aufgerufenen library wieder als rasse interpretieren willst: (siehe OBS wo das schiff erstellt wird ...)
Code: Select all
<create_ship name="{param@OBS Cue}.Temp Ship" ...etc... race="{value@OBS.ShipRace}" warp="1">
<position object="OBS.PositionBeacon"/>
<sector sector="{object.sector@OBS.PositionBeacon}"/>
<equipment loadout="default"/>
<pilot race="{value@OBS.Pilot Race}"/>
</create_ship>
... hier reichts, dem create_ship befehl bei race einfach den wert (also z.B. "1") zu übergeben
-----------------------------------------
<param name="OBSFleetPilotsRace" value="{lookup.race@argon}" comment="The race ID of the pilots"/>
... hier wiederum fragst du die engine ja nach der argon race id via {lookup.race@...}, diese gibt 1 zurück bzw an das OBS weiter
-------------------------------------------
anderes beispiel, selbe geschichte: SRST library (select random ship type)
ganz unten, wo das resultat festgelegt wird, steht:
Code: Select all
<set_value name="{param@Shiptype Address}" exact="0"/>
<do_if value="{value@{param@Cue}.SRST {param@Race ID} {value@SRST.Subrace} {param@Class ID} Count}" min="1">
<set_value name="SRST.ShipType Number" min="1" max="{value@{param@Cue}.SRST {param@...etc...}"/>
<set_value name="{param@Shiptype Address}" exact="{value@{param@Cue}.SRST {param@Race ID} {value@SRST.Subrace} {param@Class ID} {value@SRST.ShipType Number}}"/>
</do_if>
du siehst, wenn {param@...} direkt verwendet wird, dann nur als variablenname, wenn man alerdinge diesen variablen werte zuordnen will, dann muss man {value@...} vorne dran stellen, um tatsächlich werte aus den ausdrücken zu "extrahieren" (sag ich mal)
------------------------------------------
kleiner tipp nur soo am rande:
Code: Select all
<cue name="OBS ref SRST" ref="SRST" comment="Selects a Typename based on the class and maker race supplied.">
<params>
<param name="Race ID" value="{param@OBSFleetRace}" comment="The maker race ID or the strings 'default' or 'pirategroup'"/>
<param name="Class ID" value="{value@OBS.ShipClass}" comment="The shipclass ID or the strings 'bigship', 'fighter' or 'freighter'"/>
<param name="Cue" value="OBS" comment="The Cue that the shiptype is saved too"/>
<param name="CancelCue" value="SRST"/>
<param name="Shiptype Address" value="OBS.ShipType"/>
<!--... enable advanced ship types ...-->
<param name="Include M3P" value="1" comment="Include the M3Plus ships in the M3 search"/>
<param name="Include M4P" value="1" comment="Include the M4Plus ships in the M4 search"/>
<param name="Include M5P" value="1" comment="Include the M5Plus ships in the M5 search"/>
<param name="Include M6M" value="1" comment="Include the M6M ships in the M6 search"/>
<param name="Include M7M" value="1" comment="Include the M7M ships in the M7 search"/>
</params>
</cue>
... so siehts bei mir in der OBS aus, d.h. als enemies tauchen auch erweiterte schiffstypen auf wie z.B. todesklaue/schwerer zentaur/cobras (vorausgesetzt, man erweitert mit der copy&paste methode auch noch die SRST)