[MOD] Miscellaneous IZ Combat Tweaks

The place to discuss scripting and game modifications for X Rebirth.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Gimme a sec to update the MCT!
Sparky Sparkycorp
Moderator (English)
Moderator (English)
Posts: 8074
Joined: Tue, 30. Mar 04, 12:28
x4

Post by Sparky Sparkycorp »

Ok, thanks :)
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

MCT updated.

Decided to not include MICT_supp5 (increased station drone capacity) for now, though. Uploading that was something of an impulse decision. Let me know if anyone on the steam version wants it.
Sparky Sparkycorp
Moderator (English)
Moderator (English)
Posts: 8074
Joined: Tue, 30. Mar 04, 12:28
x4

Post by Sparky Sparkycorp »

Test concluded with latest MCT and Rebirth 3.60 RC2 TO (no other mods).

IIRC, the plot hard-codes player standing towards PMC at -20 such that PMC combat ships and stations attack player combat ships, which includes the Skunk. This was also my observation in this modded game during the 'Hack PMC Metalworks' mission (Distress Reek zone).

Shortly after arriving at said station, the station began to shoot at the Skunk. A while later, I began to get warnings on the detail monitor about station drone launch and Interceptors entered space and attacked me (yay!).

I would say that this doesn't change the plot substantially since it is still possible to sit in parts of the station where guns can't hit and then the drones find it hard too. I guess the player hacking drones could get chased down at some point but the player could kill the drones from the Skunk before hacking so I don't see that as insurmountable.

Two related saves from Distress Reek zone follow. Please note that shortly after loading save number 3, a PMC carrier's drones are going to being attacking too so not all drones then are station drones.

Save 2. At range from station, before approaching (station not scanned):
https://drive.google.com/file/d/0B5_1Wi ... sp=sharing

Save 3. After scanning station to 100% to show it's available drones:
https://drive.google.com/file/d/0ByP1Gu ... sp=sharing


Edit: Additionally, when I attacked the drones, it triggered the convo between the PMC (station manager, I guess, didn't check i realise in retrospect) and 'local law enforcement'. As much as those convos can be anoying I would say that indicates things are 'working as intended'. Although could not check for rep changes given the plot conditions.
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Sparky Sparkycorp wrote:Test concluded with latest MCT and Rebirth 3.60 RC2 TO (no other mods).

IIRC, the plot hard-codes player standing towards PMC at -20 such that PMC combat ships and stations attack player combat ships, which includes the Skunk. This was also my observation in this modded game during the 'Hack PMC Metalworks' mission (Distress Reek zone).

Shortly after arriving at said station, the station began to shoot at the Skunk. A while later, I began to get warnings on the detail monitor about station drone launch and Interceptors entered space and attacked me (yay!).

I would say that this doesn't change the plot substantially since it is still possible to sit in parts of the station where guns can't hit and then the drones find it hard too. I guess the player hacking drones could get chased down at some point but the player could kill the drones from the Skunk before hacking so I don't see that as insurmountable.

Two related saves from Distress Reek zone follow. Please note that shortly after loading save number 3, a PMC carrier's drones are going to being attacking too so not all drones then are station drones.

Save 2. At range from station, before approaching (station not scanned):
https://drive.google.com/file/d/0B5_1Wi ... sp=sharing

Save 3. After scanning station to 100% to show it's available drones:
https://drive.google.com/file/d/0ByP1Gu ... sp=sharing


Edit: Additionally, when I attacked the drones, it triggered the convo between the PMC (station manager, I guess, didn't check i realise in retrospect) and 'local law enforcement'. As much as those convos can be anoying I would say that indicates things are 'working as intended'. Although could not check for rep changes given the plot conditions.
Thanks, Sparky! More-exciting-but-not-insurmountable sounds good I would say. I'll take a look at the saves, thanks.

Something to note, though. The PMC Carrier's drones are vanilla. Still haven't touched firing logic, nor ship-based drone launching, although I'm thinking about it; but am leaning towards keeping the new drone launching station-based only.

Also just ended a test.
Spoiler
Show
Remember that part in the plot where you attack a station in Buried Treasure and a big PMC fleet with multiple (I think five?) Taranis with lots of fighters and a Sul jumps in?
Wanted to see if two stations chock-full of combat drones could lick 'em. (Also wanted to do a load test with lots of drones (55 in a single launch against a Taranis was the largest group I recorded) being launched in short order, but that part's boring.) Got the whole fleet but lost 203 drones:

One station had 320 combat drones, and lost 38,
The other station had 210 drones, and lost 165.

Second station was rushed by a couple of fighter wings, and was closer to the fight, so lost several more than the first one.
Sparky Sparkycorp
Moderator (English)
Moderator (English)
Posts: 8074
Joined: Tue, 30. Mar 04, 12:28
x4

Post by Sparky Sparkycorp »

Nice tests :)

No worries about the PMC carrier - I was only mentioning it to avoid potential confusion when being attacked by intrepids and overruns (I initially assumed they were from the station but it only had interceptors).
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Hehe. PMC Station launched 14 drones. Scanned the station and found that it had only 30, which made me scratch my head a bit until I remembered that bad DOs send more drones per target! Must've given her a scare.

Those things are nasty in numbers!

But, yeah, I would say doable. And fun. Although I'll brace myself for any newcomers to the game complaining that it's too hard. I don't think NPC stations stock combat drones in the hundreds. That might make it impossible.

Although, hmm.

.......
edit: just noticed that some called scripts didn't start correctly. Probably saved with a different called script from the one that MICT's telling it to call. Recovered ok, but might be a good idea to save, then load that save after the mod is first installed just to be sure.

Probably unnecessary, though.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Post by BlackRain »

Errors I am seeing. move.generic errors look like OOZ stuff

Some drone stuff, etc.

move.generic.carrier is maybe carrier mod but other stuff I think is MICT?

Code: Select all

[=ERROR=] Error in AI script move.generic on entity 0x2400a: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2400a: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x23ffc: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x23ffc: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2404a: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2404a: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2403c: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2403c: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x24057: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x24057: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2402f: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic on entity 0x2402f: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.drone.leader on entity 0x84c354: Property lookup failed: this.ship.distanceto.{null}
* this.ship == component.{0x84bad3L} (name='PMC Interceptor URV Mk1', class=drone)
* Expression: this.ship.distanceto.{$target}
[General] ======================================
[=ERROR=] Error in AI script move.generic.carrier on entity 0x819fd8: Evaluated component 0x8654a3 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic.carrier on entity 0x819fd8: Evaluated component 0x8654a3 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic.carrier on entity 0x819fd8: Evaluated component 0x8654a3 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script move.generic.carrier on entity 0x819fd8: Evaluated component 0x8654a3 does not exist any more
* Expression: $targetzone
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x12fe: Property lookup failed: $MICT_Drone.{2}.pilot
* $MICT_Drone.{2} == null
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x12fe: Evaluated value 'null' is not of type component
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Thanks.
BlackRain wrote:

Code: Select all

[=ERROR=] Error in AI script move.generic on entity 0x2400a: Evaluated component 0x807209 does not exist any more
* Expression: $targetzone
[General] ======================================

...

[General] ======================================
[=ERROR=] Error in AI script move.generic.carrier on entity 0x819fd8: Evaluated component 0x8654a3 does not exist any more
* Expression: $targetzone
[General] ======================================
The same error. Looks like move.generic was called without a valid destination field. Possible that it's from MICT.move.escort.capital defining destination as $target, and the ship they were escorting was destroyed before $targetzone could be defined in move.generic. Will change it to $target.zone. I haven't seen these errors, though, although it's a sensible precaution.

$target is how it's defined in vanilla, though, although ships probably don't get blown up as fast nor as frequently in vanilla as they do in CWIR and WWX.
BlackRain wrote:

Code: Select all

[=ERROR=] Error in AI script fight.attack.object.drone.leader on entity 0x84c354: Property lookup failed: this.ship.distanceto.{null}
* this.ship == component.{0x84bad3L} (name='PMC Interceptor URV Mk1', class=drone)
* Expression: this.ship.distanceto.{$target}
[General] ======================================
This one I haven't seen yet, although it looks like the drone doesn't have a target. I have precautions set up for this instance, and the drone should head home, but it doesn't always work. In those cases, drone should be caught by the garbage collection, and auto-docked when you move OOZ.
BlackRain wrote:

Code: Select all

[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x12fe: Property lookup failed: $MICT_Drone.{2}.pilot
* $MICT_Drone.{2} == null
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x12fe: Evaluated value 'null' is not of type component
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
This is mine. Expected. Allowed the error messages because still trying to track cause, although this could be when the vanilla <launch_drone function glitches and doesn't assign the drones properly. They're caught by the garbage collection, so should be fine.
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

2.Aug.2015 - MICT_supp2 updated to v0.22

Precautionary bugfix.
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

2.Aug.2015 - MICT_supp4 updated to v0.07

Code optimized.*
Timings tightened.*

Small structural change to fight.attack.object.drone.leader to check that a target is still flying before checking distance.

* Mostly structural changes and timing tweaks:
  • Moved garbage collection outside the drone launching routine so that it only runs once per entire launch cycle rather than every time drones are launched.
  • Timings for drone launch in large numbers are tricky. Wait too short, and the drones wouldn't be all deployed yet when orders are issued. Wait too long, and the drones appear to get stuck in the station's architecture. (Orders are issued, but they don't move.) Found what seems to be a sweet-spot at 173 milliseconds per drone.
  • When ripple-launching, no wait between launches until all launchers are used.
  • Since drones are launched much faster, reduced time between launch cycles from 60 seconds (vanilla) to 10 seconds.
Note: This is tuned to deliver the maximum number of drones to the target in the minimum amount of time while retaining the ability to engage multiple targets. If there are very many drones in the air, it will make your game run slower.

Since number of drones launched is relative to how many drones a station has, please exercise common sense and don't load too many drones in your stations if you notice your game slowing down to intolerable levels when stations are launching drones IZ.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Post by BlackRain »

Code: Select all

[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x1514: Property lookup failed: $target.container
* $target == component.{0x5503eL} (invalid)
* Expression: $target.container.exists
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x1514: Property lookup failed: $target.maxcombatrange
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) * (1f + (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x1514: Property lookup failed: $target.size
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) * (1f + (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x1514: Property lookup failed: $target.maxcombatrange
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) / (1.9f - (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x1514: Property lookup failed: $target.size
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) / (1.9f - (this.combinedskill)f / 100f)

Code: Select all

[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Property lookup failed: $i
* Expression: @$MICT_Drone and @$enemies.{$i}.exists and @$enemies.{$i}.isoperational
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Property lookup failed: $MICT_Drone.{1}.pilot
* $MICT_Drone.{1} == component.{0x8190c9L} (invalid)
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Evaluated value 'null' is not of type component
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Property lookup failed: $MICT_Drone.{2}.pilot
* $MICT_Drone.{2} == component.{0x8190eeL} (invalid)
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Evaluated value 'null' is not of type component
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16be: Property lookup failed: $i
* Expression: @$enemies.{$i}.exists and @$enemies.{$i}.isoperational and $MICT_NumDronesPre gt 0 and $MICT_StDronePads.count gt 0 and this.station.distanceto.{$enemies.{$i}} le this.station.maxradarrange
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x26f8: Property lookup failed: $target.container
* $target == component.{0x5503eL} (invalid)
* Expression: $target.container.exists
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x26f8: Property lookup failed: $target.maxcombatrange
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) * (1f + (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x26f8: Property lookup failed: $target.size
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) * (1f + (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x26f8: Property lookup failed: $target.maxcombatrange
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) / (1.9f - (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script MICT.move.attack.object.capital on entity 0x26f8: Property lookup failed: $target.size
* $target == component.{0x5503eL} (invalid)
* Expression: ($target.maxcombatrange.all + $target.size) / (1.9f - (this.combinedskill)f / 100f)
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16f1: Property lookup failed: $MICT_Drone.{3}.pilot
* $MICT_Drone.{3} == null
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.station on entity 0x16f1: Evaluated value 'null' is not of type component
* Expression: $MICT_Drone.{$j}.pilot
[General] ======================================
[General] ======================================
[=ERROR=] Error in AI script fight.attack.object.drone.leader on entity 0x824c69: Property lookup failed: this.ship.distanceto.{null}
* this.ship == component.{0x824c90L} (name='HOA Interceptor URV Mk1', class=drone)
* Expression: this.ship.distanceto.{$target}
[General] ======================================
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Thanks, BR. Distracted by this little thing at the moment. Will come back to this when that's done.
kelmenwong
Posts: 197
Joined: Sat, 17. Mar 12, 17:40
x3tc

Post by kelmenwong »

w.evans shown me 2 code changes to disabled the in-zone jumping

but i need to manually apply this everytime mod is updated, and need to keep mod not-auto-update

is it possible that i wrote another mod, which will replace/apply the manual-code-changes to disable the in-zone jump?

i thought maybe there is a way to control my custom small mod to run after this mod is loaded

i will use xml to seek this node:

1)
<set_value name="$MICT_JumpActive" exact="true"/>

and replace to this:

<set_value name="$MICT_JumpActive" exact="false"/>

2)
seek this node

<!-- MICT: If separated from commander, but in the same zone, jump to within 5km of the commander. -->
<do_if value="this.ship.distanceto.{$target} gt this.ship.size + $target.size + 10km">

and change to
<do_if value="false">

is this doable? if do, so i just use and apply standard xml-diff?
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

kelmenwong wrote:w.evans shown me 2 code changes to disabled the in-zone jumping

but i need to manually apply this everytime mod is updated, and need to keep mod not-auto-update

is it possible that i wrote another mod, which will replace/apply the manual-code-changes to disable the in-zone jump?

i thought maybe there is a way to control my custom small mod to run after this mod is loaded

i will use xml to seek this node:

1)
<set_value name="$MICT_JumpActive" exact="true"/>

and replace to this:

<set_value name="$MICT_JumpActive" exact="false"/>

2)
seek this node

<!-- MICT: If separated from commander, but in the same zone, jump to within 5km of the commander. -->
<do_if value="this.ship.distanceto.{$target} gt this.ship.size + $target.size + 10km">

and change to
<do_if value="false">

is this doable? if do, so i just use and apply standard xml-diff?
Essentially, yeah. And set it to be dependent to MICT or MCT (whichever package you use) so that your tweak loads after the mod that it mods.

The following should work, but haven't tested:

First would be:

Code: Select all

<replace sel="//set_value[@name='$MICT_JumpActive']/@exact">false</replace>
in aiscripts\MICT.move.attack.object.capital

Second:

Code: Select all

<replace sel="//do_if[@value='this.ship.distanceto.{$target} gt this.ship.size + $target.size + 10km']/@value">false</replace>
in aiscripts\MICT.move.escort.capital

Sorry didn't mention this possibility. Forgot that you could diff the mod.
Saquavin
Posts: 486
Joined: Thu, 22. Aug 13, 17:12
xr

Post by Saquavin »

Hello w.evans, please find as asked a save where you can see my "taranis prime" boosting to attack a "sul arbiter frigate" he is already in range of.
When you load, 4 times on 5 it will gets out of range.
You could also see he shuts off and fly back to sul, or he keep boosters ON and pin around the sul, or he stops and start a jump !
Depend on loading, but 4 times on 5 he has very weird and annoying behaviour.

Bonus : my arawn has the same target (target acquired after a patrol order) and has troubles with movements too.

This save put you in a big battle with more than 10 capitals, so I think you can use it to make more tests/observations.

https://mega.co.nz/#!kgU01LJT!PBbJJnweA ... YEtiJMZ6-I


{Link fixed, any editing of this post will break it again. - Terre}
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Thanks, I'll take a look.
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

Hey Saquavin,

Thanks for the save.

The Taranis Prime is not flying MICT. Her DO needs another star in Combat.

The only player-owned MICT ship in that battle is your Arawn (DO needs a star in Leadership, but her 5-star rating in combat makes up for it), and her crew's doing what they're supposed to:

Was fighting PMC Subjugation Fleet Taranis, optimal range for the Arawn is from 3,520 meters to 7,040 meters
  • Started out at 10,500 meters, which is beyond optimal range so
  • Jumped to 7,357 meters which is still slightly beyond optimal range. (Error is built in for crew error if crew is less than 5-star rated.) with its left side facing the target since it determined that that's how it could do the most damage.
  • Since it determined that it should close in some more, and couldn't jump, decided to move closer. However the Taranis was also maneouvering, so it ended up farther than it wanted to go.

    === This is probably what you observed. Yes, there is a problem with boosting when the target's maneovering: boost works like jump - it plots a target point, activates boost, then goes there regardless of what else happens during the battle. Can't change that short of removing boost during battles entirely and having them rely on jump and maneouver. Problem there is that maneouver is extremely slow without boost, and jumping all the time eats up fuel really fast, and is prone to errors. Another option would be warp, which is an instantaneous jump, but that would be a bit too cheaty and ugly, I think. (Ships just disappear and reappear somewhere else. Can cause them to warp into each other too.)
  • Stopped boost at 10,284 meters and decided to jump closer.
  • Jump was still a bit too wide, and landed it at 7,205 meters, and decided to boost in.
  • Stopped boosting at 6,250 meters, which finally is at optimal range. After which, the Taranis was destroyed, and it moved on to engage a Sul Eclipse Frigate.
Basically, this was the error at work. For crews with less than a 5-star rating, there is a chance that the crews' calculations will be off, and that they won't maneouver as optimally as they should. Not going to change that, because I think that it works, and that there should be some benefit to having better crews.

And about your Taranis Prime, no idea why it's boosting. Best that I could tell, it was on patrol before it started fighting, so it was running move.patrol which is not changed in MICT before it started engaging, and after the battle started, it started running the vanilla combat script. (Which could be unpredictable when boost is active simply because it does not expect it.) That script (move.patrol) is, however, changed in CWIR, and I believe that script is currently undergoing an overhaul, so should improve in the coming days.

@BR, if you read this, looks like the attack handler in move.patrol could cause ships who have activated boost to do something else, to start engaging with boost on. Would suggest adjusting the handler to check for boost, and stop boost if it's active before running fight.attack.object.
w.evans
Posts: 2963
Joined: Tue, 18. Nov 14, 16:23
x4

Post by w.evans »

BlackRain wrote:

Code: Select all

 *** lots of stuff from the debug log *** 
The target stuff is likely boost related. The target is destroyed while a ship is boosting, crew looks around after boost, and the target's gone, and they go :gruebel:

Decided that this is preferable to putting interrupts within boost nodes because that causes them to start and stop boost intermittently and makes ships less responsive.

Should be harmless. Next script iteration, the crew should realize that the target's gone, and they'll go about their business. If you find MICT ships stuck in space, though, give me a holler.

The drone stuff is from stations launching so many drones, and the launch_drone command freaking out and failing to assign them proper names. Vanilla problem, I think, but more pronounced here since there are so many drones in the air. They're caught by the garbage collection, so shouldn't be a problem.
BlackRain
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 7465
Joined: Mon, 15. Dec 03, 18:53
x4

Post by BlackRain »

w.evans wrote:Hey Saquavin,

Thanks for the save.

The Taranis Prime is not flying MICT. Her DO needs another star in Combat.

The only player-owned MICT ship in that battle is your Arawn (DO needs a star in Leadership, but her 5-star rating in combat makes up for it), and her crew's doing what they're supposed to:

Was fighting PMC Subjugation Fleet Taranis, optimal range for the Arawn is from 3,520 meters to 7,040 meters
  • Started out at 10,500 meters, which is beyond optimal range so
  • Jumped to 7,357 meters which is still slightly beyond optimal range. (Error is built in for crew error if crew is less than 5-star rated.) with its left side facing the target since it determined that that's how it could do the most damage.
  • Since it determined that it should close in some more, and couldn't jump, decided to move closer. However the Taranis was also maneouvering, so it ended up farther than it wanted to go.

    === This is probably what you observed. Yes, there is a problem with boosting when the target's maneovering: boost works like jump - it plots a target point, activates boost, then goes there regardless of what else happens during the battle. Can't change that short of removing boost during battles entirely and having them rely on jump and maneouver. Problem there is that maneouver is extremely slow without boost, and jumping all the time eats up fuel really fast, and is prone to errors. Another option would be warp, which is an instantaneous jump, but that would be a bit too cheaty and ugly, I think. (Ships just disappear and reappear somewhere else. Can cause them to warp into each other too.)
  • Stopped boost at 10,284 meters and decided to jump closer.
  • Jump was still a bit too wide, and landed it at 7,205 meters, and decided to boost in.
  • Stopped boosting at 6,250 meters, which finally is at optimal range. After which, the Taranis was destroyed, and it moved on to engage a Sul Eclipse Frigate.
Basically, this was the error at work. For crews with less than a 5-star rating, there is a chance that the crews' calculations will be off, and that they won't maneouver as optimally as they should. Not going to change that, because I think that it works, and that there should be some benefit to having better crews.

And about your Taranis Prime, no idea why it's boosting. Best that I could tell, it was on patrol before it started fighting, so it was running move.patrol which is not changed in MICT before it started engaging, and after the battle started, it started running the vanilla combat script. (Which could be unpredictable when boost is active simply because it does not expect it.) That script (move.patrol) is, however, changed in CWIR, and I believe that script is currently undergoing an overhaul, so should improve in the coming days.

@BR, if you read this, looks like the attack handler in move.patrol could cause ships who have activated boost to do something else, to start engaging with boost on. Would suggest adjusting the handler to check for boost, and stop boost if it's active before running fight.attack.object.
Player ships do not run br.move.patrol, they run the vanilla move.patrol. Only NPC ships run br.move.patrol, also, I am removing the attack handler from the patrol script anyway as it is exactly like vanilla, I never actually was able to figure out what I wanted with it (how to get escorts to fight back when the leader is out of zone)

Return to “X Rebirth - Scripts and Modding”