Teladi HQ verschieben
Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators
Teladi HQ verschieben
Hallo Moin
Habe den mdscript FactionLogic ersetzt um das Teladi HQ zu verschieben
<diff>
<replace sel="/mdscript[@name='FactionLogic']">
<mdscript name="FactionLogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
<Original Skript>
<Textzeile die verändert wurde>
<find_cluster name="$PreferredSpace" macro="macro.cluster_19_macro" comment="anderer Sektor"/>
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
<Textzeile die verändert wurde>
<Original Skript>
</mdscript>
</replace>
</diff>
aus cluster_15 wurde cluster_19 und schon ist das Teladi HQ in Sektor19
das Dumme ist nur ich habe den ganzen Skript ersetzt dafür. Wie sollte der Replace Befehl ausehen wenn ich nur die beiden zeilen ersetzen will?
Gruß STB2199
Habe den mdscript FactionLogic ersetzt um das Teladi HQ zu verschieben
<diff>
<replace sel="/mdscript[@name='FactionLogic']">
<mdscript name="FactionLogic" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="md.xsd">
<Original Skript>
<Textzeile die verändert wurde>
<find_cluster name="$PreferredSpace" macro="macro.cluster_19_macro" comment="anderer Sektor"/>
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
<Textzeile die verändert wurde>
<Original Skript>
</mdscript>
</replace>
</diff>
aus cluster_15 wurde cluster_19 und schon ist das Teladi HQ in Sektor19
das Dumme ist nur ich habe den ganzen Skript ersetzt dafür. Wie sollte der Replace Befehl ausehen wenn ich nur die beiden zeilen ersetzen will?
Gruß STB2199
Re: Das HQ der Teladi muss verschoben werden
Kann man das so zum Beispiel in einer Mod verwenden
<diff>
<replace sel="/mdscript[@name='FactionLogic']/cues/library[@name='Manager']/cues/cue[@name='Find_Faction_Headquarters'/actions/">
<actions>
<set_value name="$HQNecessary" exact="true"/>
<!--Even wrecked HQs are valid-->
<set_value name="$HQ" exact="$Faction.headquarters"/>
<do_if value="$HQ.exists">
<debug_text text="$Faction + ' already has headquarters ' + $HQ"/>
</do_if>
<do_else>
<!-- Preferred Faction HQ location and type depends on the faction -->
<debug_text text="'Finding Faction HQ for ' + $Faction" chance="$DebugChance" />
<set_value name="$PreferredSpace" exact="null"/>
<!--List of types by priority. Can be a station macro or strings 'shipbuilding', 'equipmentdock', 'tradestation', 'defencestation' or 'piratebase'-->
<set_value name="$PreferredHQTypes" exact="[]"/>
<do_if value="$Faction == faction.argon">
<find_cluster name="$PreferredSpace" macro="macro.cluster_14_macro" comment="Argon Prime"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_if>
<do_elseif value="$Faction == faction.antigone">
<find_cluster name="$PreferredSpace" macro="macro.cluster_28_macro" comment="Antigone Memorial"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'shipbuilding', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.hatikvah">
<find_sector name="$PreferredSpace" macro="macro.cluster_29_sector001_macro" comment="Hatikvah's Choice"/>
<set_value name="$PreferredHQTypes" exact="['tradestation', 'piratebase', 'equipmentdock']"/>
</do_elseif>
<do_elseif value="$Faction == faction.paranid">
<find_cluster name="$PreferredSpace" macro="macro.cluster_18_macro" comment="Trinity Sanctum"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.holyorder">
<find_cluster name="$PreferredSpace" macro="macro.cluster_24_macro" comment="Holy Vision"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.alliance">
<find_cluster name="$PreferredSpace" macro="macro.cluster_23_macro" comment="Sacred Relic"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock']"/>
</do_elseif>
<do_elseif value="$Faction == faction.teladi">
<find_cluster name="$PreferredSpace" macro="macro.cluster_19_macro" comment="anderer Sektor"/>
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
</do_elseif>
<do_elseif value="$Faction == faction.ministry">
<find_cluster name="$PreferredSpace" macro="macro.cluster_34_macro" comment="Profit Centre Alpha"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'shipbuilding']"/>
</do_elseif>
<do_elseif value="$Faction == faction.scaleplate">
<find_cluster name="$PreferredSpace" macro="macro.cluster_42_macro" comment="Nopileos' Legacy"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'piratebase']"/>
</do_elseif>
<do_else>
<set_value name="$HQNecessary" exact="false" />
<debug_text text="'Faction is ' + $Faction.name + ' - no Faction HQ is required'" chance="$DebugChance" />
</do_else>
<do_if value="$PreferredSpace and $PreferredHQTypes.count">
<!--2 passes. First with $PreferredSpace, second for the whole galaxy-->
<set_value name="$SearchSpace" exact="$PreferredSpace"/>
<do_all exact="2">
<do_all exact="$PreferredHQTypes.count" counter="$i">
<debug_text text="'Attempting to find a suitable HQ in space ' + $SearchSpace.knownname + ' of type ' + $PreferredHQTypes.{$i}" chance="$DebugChance"/>
<do_if value="typeof $PreferredHQTypes.{$i} == datatype.macro">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" macro="$PreferredHQTypes.{$i}" />
</do_if>
<do_elseif value="$PreferredHQTypes.{$i} == 'shipbuilding'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" canbuildships="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'equipmentdock'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" equipmentdock="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'tradestation'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" tradestation="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'defencestation'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" defencestation="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'piratebase'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" piratebase="true" />
</do_elseif>
<do_if value="$HQ">
<break/>
</do_if>
</do_all>
<do_if value="$HQ">
<break/>
</do_if>
<do_else>
<set_value name="$SearchSpace" exact="player.galaxy"/>
</do_else>
</do_all>
<do_if value="$HQ">
<debug_text text="$Faction + ' HQ set to ' + $HQ.knownname + ' ' + $HQ + ' in ' + $HQ.sector.knownname + ', ' + $HQ.cluster.knownname" chance="$DebugChance" />
<set_value name="md.$FactionData.{$Faction}.$Headquarters" exact="$HQ" />
<set_faction_headquarters faction="$Faction" station="$HQ"/>
<signal_cue cue="CreateNewFactionRepresentative" />
</do_if>
</do_if>
<remove_value name="$PreferredSpace"/>
<remove_value name="$PreferredHQType"/>
</do_else>
</actions>
</replace>
</diff>
ist die Replacezeile Korrekt? könnte man das so in einer Mod anwenden?
Freue mich auf eure Antworten
Mit vielen lieben Grüßen STB2199
<diff>
<replace sel="/mdscript[@name='FactionLogic']/cues/library[@name='Manager']/cues/cue[@name='Find_Faction_Headquarters'/actions/">
<actions>
<set_value name="$HQNecessary" exact="true"/>
<!--Even wrecked HQs are valid-->
<set_value name="$HQ" exact="$Faction.headquarters"/>
<do_if value="$HQ.exists">
<debug_text text="$Faction + ' already has headquarters ' + $HQ"/>
</do_if>
<do_else>
<!-- Preferred Faction HQ location and type depends on the faction -->
<debug_text text="'Finding Faction HQ for ' + $Faction" chance="$DebugChance" />
<set_value name="$PreferredSpace" exact="null"/>
<!--List of types by priority. Can be a station macro or strings 'shipbuilding', 'equipmentdock', 'tradestation', 'defencestation' or 'piratebase'-->
<set_value name="$PreferredHQTypes" exact="[]"/>
<do_if value="$Faction == faction.argon">
<find_cluster name="$PreferredSpace" macro="macro.cluster_14_macro" comment="Argon Prime"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_if>
<do_elseif value="$Faction == faction.antigone">
<find_cluster name="$PreferredSpace" macro="macro.cluster_28_macro" comment="Antigone Memorial"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'shipbuilding', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.hatikvah">
<find_sector name="$PreferredSpace" macro="macro.cluster_29_sector001_macro" comment="Hatikvah's Choice"/>
<set_value name="$PreferredHQTypes" exact="['tradestation', 'piratebase', 'equipmentdock']"/>
</do_elseif>
<do_elseif value="$Faction == faction.paranid">
<find_cluster name="$PreferredSpace" macro="macro.cluster_18_macro" comment="Trinity Sanctum"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.holyorder">
<find_cluster name="$PreferredSpace" macro="macro.cluster_24_macro" comment="Holy Vision"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock', 'tradestation']"/>
</do_elseif>
<do_elseif value="$Faction == faction.alliance">
<find_cluster name="$PreferredSpace" macro="macro.cluster_23_macro" comment="Sacred Relic"/>
<set_value name="$PreferredHQTypes" exact="['shipbuilding', 'equipmentdock']"/>
</do_elseif>
<do_elseif value="$Faction == faction.teladi">
<find_cluster name="$PreferredSpace" macro="macro.cluster_19_macro" comment="anderer Sektor"/>
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
</do_elseif>
<do_elseif value="$Faction == faction.ministry">
<find_cluster name="$PreferredSpace" macro="macro.cluster_34_macro" comment="Profit Centre Alpha"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'shipbuilding']"/>
</do_elseif>
<do_elseif value="$Faction == faction.scaleplate">
<find_cluster name="$PreferredSpace" macro="macro.cluster_42_macro" comment="Nopileos' Legacy"/>
<set_value name="$PreferredHQTypes" exact="['equipmentdock', 'piratebase']"/>
</do_elseif>
<do_else>
<set_value name="$HQNecessary" exact="false" />
<debug_text text="'Faction is ' + $Faction.name + ' - no Faction HQ is required'" chance="$DebugChance" />
</do_else>
<do_if value="$PreferredSpace and $PreferredHQTypes.count">
<!--2 passes. First with $PreferredSpace, second for the whole galaxy-->
<set_value name="$SearchSpace" exact="$PreferredSpace"/>
<do_all exact="2">
<do_all exact="$PreferredHQTypes.count" counter="$i">
<debug_text text="'Attempting to find a suitable HQ in space ' + $SearchSpace.knownname + ' of type ' + $PreferredHQTypes.{$i}" chance="$DebugChance"/>
<do_if value="typeof $PreferredHQTypes.{$i} == datatype.macro">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" macro="$PreferredHQTypes.{$i}" />
</do_if>
<do_elseif value="$PreferredHQTypes.{$i} == 'shipbuilding'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" canbuildships="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'equipmentdock'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" equipmentdock="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'tradestation'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" tradestation="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'defencestation'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" defencestation="true" />
</do_elseif>
<do_elseif value="$PreferredHQTypes.{$i} == 'piratebase'">
<find_station_by_true_owner name="$HQ" space="$SearchSpace" faction="$Faction" piratebase="true" />
</do_elseif>
<do_if value="$HQ">
<break/>
</do_if>
</do_all>
<do_if value="$HQ">
<break/>
</do_if>
<do_else>
<set_value name="$SearchSpace" exact="player.galaxy"/>
</do_else>
</do_all>
<do_if value="$HQ">
<debug_text text="$Faction + ' HQ set to ' + $HQ.knownname + ' ' + $HQ + ' in ' + $HQ.sector.knownname + ', ' + $HQ.cluster.knownname" chance="$DebugChance" />
<set_value name="md.$FactionData.{$Faction}.$Headquarters" exact="$HQ" />
<set_faction_headquarters faction="$Faction" station="$HQ"/>
<signal_cue cue="CreateNewFactionRepresentative" />
</do_if>
</do_if>
<remove_value name="$PreferredSpace"/>
<remove_value name="$PreferredHQType"/>
</do_else>
</actions>
</replace>
</diff>
ist die Replacezeile Korrekt? könnte man das so in einer Mod anwenden?
Freue mich auf eure Antworten
Mit vielen lieben Grüßen STB2199
Re: Das HQ der Teladi muss verschoben werden
Das Problem liegt aber in der Zeile:
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
es gibt im cluster_15 kein 'equipmentdock', 'shipbuilding' der Teladi darum wechselt die Fraktion auch nicht das HQ nachdem die Station zerstört wurde.
Da ist was nicht Korrekt!?
das macro.landmarks_tel_tradestation_01_macro steht nicht in den anderen zeilen der HQ Findung das wird wohl das Problem sein.
mit vielen lieben Grüßen STB2199
<set_value name="$PreferredHQTypes" exact="[macro.landmarks_tel_tradestation_01_macro, 'tradestation', 'equipmentdock', 'shipbuilding']"/>
es gibt im cluster_15 kein 'equipmentdock', 'shipbuilding' der Teladi darum wechselt die Fraktion auch nicht das HQ nachdem die Station zerstört wurde.
Da ist was nicht Korrekt!?
das macro.landmarks_tel_tradestation_01_macro steht nicht in den anderen zeilen der HQ Findung das wird wohl das Problem sein.
mit vielen lieben Grüßen STB2199
Re: Teladi HQ verschieben
Monolog aus diesem Thread abgetrennt.
Fragen zum Scripten gehören in dieses Forum.
Eigene Beiträge kann man auch selbst um Inhalte ergänzen, über die "Edit"-Funktion. Man braucht deshalb nicht mehrere Posts hintereinander verfassen.
Fragen zum Scripten gehören in dieses Forum.
Eigene Beiträge kann man auch selbst um Inhalte ergänzen, über die "Edit"-Funktion. Man braucht deshalb nicht mehrere Posts hintereinander verfassen.
Menschen. Das Böse daran ist das Dumme darin!
Re: Teladi HQ verschieben
vllt hilfts dir weiter
HQ Move Mod
https://www.nexusmods.com/x4foundations ... ?tab=posts
mod funktioniert unter 2.5 , die neue Position wird aber als Illegaler Bauplatz klassifiziert und es gibt mecker von den örtlichen Behörden
HQ Move Mod
https://www.nexusmods.com/x4foundations ... ?tab=posts
mod funktioniert unter 2.5 , die neue Position wird aber als Illegaler Bauplatz klassifiziert und es gibt mecker von den örtlichen Behörden
modded since BtF
- Marvin Martian
- Posts: 3547
- Joined: Sun, 8. Apr 12, 09:40
Re: Teladi HQ verschieben
glaub sich jetzt noch mit verschobenen HQ abzustrampeln ist etwas sinnlos, soll ja mit 3.0 eh verschiebbar werden - vielleicht gibts dann auch etwas weniger hardcodet Stuff in der FactionLogic
wäre zudem schön wenn @STB2199 den Code-Tag im Editor verwendet
außerdem würde ich diese Patches so kurz wie möglich halten, statt deines ersetzen des kompletten <action /> Abschnitts - da hier die Fraktionen einzeln gehandhabt werden, ist bei einem Mod/DLC davon auszugehen, dass jemand hier ebenso einige Add -Patches hinzufügt! Mit deinem Vorgehen machst du deine Mod nur unnötig inkompatibel
wäre zudem schön wenn @STB2199 den Code-Tag im Editor verwendet
außerdem würde ich diese Patches so kurz wie möglich halten, statt deines ersetzen des kompletten <action /> Abschnitts - da hier die Fraktionen einzeln gehandhabt werden, ist bei einem Mod/DLC davon auszugehen, dass jemand hier ebenso einige Add -Patches hinzufügt! Mit deinem Vorgehen machst du deine Mod nur unnötig inkompatibel