Zu Upgradeplan Abfangen
Wenn er diesen Teil selbst macht und die Upgradeplanentrys ändert, dürfte es möglich sein etwas unterzujubeln.
<create_build_plan macro="$selected_macro" buildplan="$build_plan">
<buildplan>
<buildsequence sequence="''" stage="0"/>
</buildplan>
<upgradeplan>
<upgradeentry upgrade="'turret_small_sg'" level="1" />
<upgradeentry upgrade="'turret_small_mg'" level="1" />
<upgradeentry upgrade="'turret_small_hga'" level="1" />
<upgradeentry upgrade="'turret_small_hgb'" level="1" />
<upgradeentry upgrade="'turret_medium_pe'" level="1" />
<upgradeentry upgrade="'turret_medium_lb'" level="1" />
<upgradeentry upgrade="'turret_missile_df'" level="1" />
<upgradeentry upgrade="'turret_missile_sm'" level="1" />
<upgradeentry upgrade="'shieldgenerator'" level="1" />
</upgradeplan>
</create_build_plan>
Oder aber er ändert die Variable $Build_plan, wo diese Entries nach dem das obige durchlaufen wurde ja vorhanden sind.
Er muss es jedoch abfangen bevor es bei
<construct_ship object="this.station" buildmodule="$Baumodul" macro="$selected_macro" faction="this.$Shipowner" buildplan="$build_plan" updatebuild="true" />
ankommt.
Aber wiederum dürfen in Buildplan nur die Dinge drin sein, wo auch in der Default.xml zu finden sind.
Alles was dort nicht drin steht wird glaube ich ignoriert, weil die Engine es nicht matchen kann.
In der Default.xml sind die Tags der Waffen mit den Entries in der obigen Liste verknüpft, welche die Engine wiederum zum Macro führen.
Er müsste es also schaffen der Engine zur laufzeit auch dort das gewünschte unterzujubeln, bevor der Construktionsbefehl gegeben wird.
Ich glaube aber nicht das dies geht.
Die Defaults können glaube nur beim Spielstart durch Diffen oder ersetzen geändert werden.
Auf diese Art habe ich meine HG-Geschütze in die Werft gebracht, damit auch Sie beim Randombau korrekt benutzt werden, aber vom Spieler auch ausgerüstet werden können.
Ich kann mich natürlich auch irren so ist es nicht, aber $Build_plan ist eine Variable, und dürfte somit änderbar sein.
EDIT:
Achtung es gibt eine Stolperfalle bei der Sache.
Du kannst die durch <create_build_plan macro="$selected_macro" buildplan="$build_plan"> erstellte Variable "$build_plan" nicht direkt verändern.
Die Variable wird von der Engine dazu falsch erstellt, das selbe Problem gibt es bei einigen anderen Dingen auch.
Du Musst die Variable "$build_plan" zuerst mit <set_value> in eine andere verschieben, dann kannst Du mit <remove> "$build_plan" löschen und mit <set_value> neu erstellen.
z.B. funktioniert dies hier nicht:
Code: Select all
<transform_position name="$ShipSavePos" refposition="$ShipPos" refrotation="$Werft.rotation" >
<position x="1.5km" y="0m" z="0m"/>
</transform_position>
<warp object="$Ship" zone="$Ship.zone">
<position value="$ShipSavePos" />
<rotation value="$Werft.rotation"/>
</warp>
Du musst es so wie unten machen, frag mich aber nicht warum, ich kann es Dir nicht beantworten.
Code: Select all
<transform_position name="$ShipSavePos" refposition="$ShipPos" refrotation="$Werft.rotation" >
<position x="1.5km" y="0m" z="0m"/>
</transform_position>
<set_value name="$ShipSave" exact="$ShipSavePos" />
<warp object="$Ship" zone="$Ship.zone">
<position value="$ShipSave" />
<rotation value="$Werft.rotation"/>
</warp>
Wenn man es nicht so macht, wird das Schiff in die mitte der Zone gesetzt und im Log steht der Fehler, dass die variable $ShipSavePos nicht nummerisch ist.
Gruß Cappy1401
Jedes Kriegsschiff, das unsere Werften verlässt, jedes abgefeuerte Geschütz bedeutet letztlich einen Diebstahl an denen, die sich nicht wehren können, nämlich an unseren Kindern. Eine Welt bewaffnet bis an die Zähne feuert nicht nur gebündelte Energie allein. Sie feuert auch oft genug die Hoffnung ihrer Kinder nutzlos in den Weltraum hinaus. Doch hin und wieder lässt man uns keine Wahl, dann jedoch besteht jede Salve aus der geballten Hoffnung das endlich wieder Frieden herrscht.
Der Amazone