rafezetter wrote:W.evans - does your engineer.ai.xml merge with the vanilla when put in extentions or replace it?
Merge, sort of. It patches the vanilla file, adding several lines to very specific places.
Example. This:
Code: Select all
<add sel="//do_if[@value='not $CurrentElement.exists and this.defensible.hullpercentage ge $hulldamagelimit']" pos="before">
<do_if value="not $Defensible? or not @$Defensible.isoperational or @$Defensible.iswreck or (@$Defensible != this.defensible and @$Defensible.hullpercentage ge $hulldamagelimit and not @$CurrentElement.exists)">
<do_if value="$networkid? and @$Defensible != this.defensible">
<end_mass_traffic network="$networkid"/>
<remove_value name="$networkid"/>
</do_if>
<set_value name="$Defensible" exact="this.defensible"/>
<set_command command="command.repair"/>
</do_if>
</add>
inserts this:
Code: Select all
<do_if value="not $Defensible? or not @$Defensible.isoperational or @$Defensible.iswreck or (@$Defensible != this.defensible and @$Defensible.hullpercentage ge $hulldamagelimit and not @$CurrentElement.exists)">
<do_if value="$networkid? and @$Defensible != this.defensible">
<end_mass_traffic network="$networkid"/>
<remove_value name="$networkid"/>
</do_if>
<set_value name="$Defensible" exact="this.defensible"/>
<set_command command="command.repair"/>
</do_if>
here:
Code: Select all
sel="//do_if[@value='not $CurrentElement.exists and this.defensible.hullpercentage ge $hulldamagelimit']" pos="before"
theqmann's old but still excellent guide is available here:
http://forum.egosoft.com/viewtopic.php?t=354310
You could manually patch it into your other engineer mod, but that could quickly turn into a real PitA if one or the other of us updates.
rafezetter wrote:so would I have to merge them manually?
Would depend on what the two mods do, how they do them, and if they conflict. Sorry, i know that "it depends" can be very frustrating, but there really is no easy answer to that.
rafezetter wrote:Why was the file move.generic.carrier.xml in supplemental 2 in another "extensions" sub folder inside the main folder?
Because it mods another mod, namely, Marvin Martian's Carriers mod. Should only affect ships running that mod which, unless Marvin changed things, should only be player-owned Arawns and, possibly, Suls if you have the submod to make Suls carriers as well. So, no, the plot ships should be untouched by that.
rafezetter wrote:Edit: I've just told my fleet to refuel and only the primary of each sub group did so instead of all escorts also refuelling.
Will have to look into this and the other issues that Yonder mentioned. Problem is my laptop's getting old and now refuses to run some games, X Rebirth among them, for longer than a few minutes, and that extremely slowly. i am saving up for a new machine, though. Should be able to check then.
rafezetter wrote:Is there also a way to make the ships fly FORWARD after refuelling, instead of backing into the next queued ship behind? I mean the fueling station is open ended, why are they backing up???
Can't remember for sure, but i don't think so. If i remember correctly, the asset, can't remember if it's the station or the dock attached to the station, has a position which defines where ships should move to when undocking. Problem is, again if i remember correctly, it is the same point ships should go to if docking. If they're defined as two different points which just happen to be at the same position, should be possible to just switch the other point to a different position. If both docking and undocking actions use the same point, however, not possible without touching the exe in addition to modding the asset.
Hmm. Unless you replace this line:
Code: Select all
<move_undocking object="this.ship" dock="$olddockslot" finishonapproach="true" forceposition="false" commandaction="false" />
in move.undock with a simple move_to if this.ship is a bigship and we're docked at a station. No idea what that would do though since it doesn't actually undock until after doing that. Plus collision detection for normal manoeuvering might go haywire since the ship'll find potential collisions everywhere. Would be simple enough to test if you could find someone who's handy with a text editor and has a computer that actually works. Just replace the above line with something like:
Code: Select all
<move_to object="this.ship" destination="this.zone" >
<position z="this.ship.length * 1.5" object="this.ship"/>
</move_to>
Yonder wrote:Sure enough I scan the ship and while it's Defense Officer is set to "Defend", the Captain's task is "Attack Albion Skunk", which is what you'd expect with it following me around.
Hm. If the captain is attacking, the defence officer should fire, shouldn't matter that they're set to defend, regardless of whether the ship is running MICT or not.
Could be related to this, though.
Yonder wrote:[=ERROR=] 90501.14 Error on AI director import: Script context move.escort on entity 0xdec3 'Aron Slamer' is blocked in run_script but no called script is running
which could be bad. It means that, when the game was saved, Captain Slamer was in a run_script from move.escort running another script but, upon loading the game, that script could either not be found, was invalid, or could not be parsed. It should just go back to running move.escort, but whatever caused that problem could lead to other anomalies.
This is weird:
Yonder wrote:[=ERROR=] 90503.20 Error in AI script move.patrol.route on entity 0x10eb5: Property lookup failed: $pos
* Expression: $pos
Looking at the vanilla script, that
can't happen because this failsafe
Code: Select all
<do_if value="not $pos?">
<create_random_position_in_boundingbox name="$pos" component="$destination" />
<set_value name="$y" min="-5km" max="5km"/>
<get_safe_pos result="$pos" radius="this.ship.size * 2" value="position.[$pos.x, $y, $pos.z]" zone="$destination" />
<remove_value name="$y" />
</do_if>
initializes the variable if it doesn't exist, and the error says that the variable doesn't exist.
Anyway, it's unrelated to the MICT errors. Different entity. However, the MICT errors are also anomalous.
Yonder wrote:[=ERROR=] 90506.05 Error in AI script MICT.move.escort.capital on entity 0x3adc: Property lookup failed: $target.pilot.$escortgroup
* $target.pilot == component.{0x3a8eL} (name='Thalia Braks', class=npc)
* Expression: $target.pilot.$escortgroup
says that the variable $escortgroup does not exist in their commander's (Thalia Braks') blackboard. That variable is initialized in the escort script, and not removed, so it's extremely odd that the script checks for it and finds that it doesn't exist further down in the same script that created it. A different mod removed the variable, savegame edit, bad memory, your guess is as good as mine. Will check to see if the problem lies in MICT when i can.
EDIT: just spotted this:
Yonder wrote: I am pretty sure that what is happening is something in your mod is calling into this method right at the "patrol" label, without ensuring that the earlier code has run.
Can't. Can't call a script and have it start at a particular label without also modding the called script.