[AP] Extend jump time or make combat break it? Add JD to traders?

The place to discuss scripting and game modifications for X³: Terran Conflict and X³: Albion Prelude.

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

Post Reply
User avatar
soulmata
Posts: 154
Joined: Thu, 15. Nov 12, 10:34
x4

[AP] Extend jump time or make combat break it? Add JD to traders?

Post by soulmata » Wed, 21. Jun 17, 06:50

I have been considering starting a new game of X3 after 1500+ hours, since my accumulation of mods over time has become cluttered and I'd like to try some new things. One thing is to alter the universal gamechanger that the jumpdrive is. Some things I already do:

* Make the JD much more expensive. I have it set to 2M credits.

* Make it equippable only on L cargo class (was XL, but I found only a few corvettes have XL )

I'd like to do more.

Is it possible to do any of the following? If so, some tips on how?

* Make jumpdrives take much longer to charge. Say 60 seconds instead of 10-15, so that standing still in combat to try and charge your JD is suicide.

* Make them use much more energy than they do, perhaps scaling with distance?

* Make them riskier in general, such as depleting shield energy or damaging the hull with every jump, thus discouraging it for nonstop use? Perhaps even distinguishing a combat jump (dangerous, unpredictable, might damage your ship) vs a planned jump (safer, takes a long time to charge, drains your shields completely)

* Give AI traders a chance to spawn with JD, and use it if they have it?

* Have a cooldown after the JD has been used, so that it can't be immediately re-used?

* Have one massive ship that serves as a fleet jump ship that can jump undocked but nearby ships around it? Like, if any allied jumps are within X meters, also jump them when you jump.

* Slightly unrelated... allow M6 and M8s to dock to M7Cs, or in general just make M7Cs better so there's a long term use for M8s (I found once I could afford M7M, M8 is just pointless anymore, which felt so sad to have all my Claymores in dock forever...)


One thing that I always found in the game is that ultimately I always had the AI at a tremendous disadvantage trade-wise once I got easy access to jumpdrives, since AI traders basically never jump. The only one that did was Litcube's PhanonCorp which unfortunately doesn't work completely right anymore.

I also dislike how the JD is a universal ticket out of combat. Some mods like Pirate's Guild are cool in that pirate caps will sometimes jump away if they are threatened, but generally speaking, every fight is to death, except for the player, who can jump out anytime in just a few seconds. AI ships told to jump will sit perfectly still while preparing to jump but still often make it.

I think with a little push I could probably figure out how to do much of these myself, but I figured I would first ask if anyone else has obvious answers they can point me to.

Cycrow
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 22201
Joined: Sun, 14. Nov 04, 23:26
x4

Re: [AP] Extend jump time or make combat break it? Add JD to traders?

Post by Cycrow » Wed, 21. Jun 17, 20:24

soulmata wrote:Is it possible to do any of the following? If so, some tips on how?
most of those are fairly easy and can be all done in a similar way
soulmata wrote: * Make jumpdrives take much longer to charge. Say 60 seconds instead of 10-15, so that standing still in combat to try and charge your JD is suicide.

* Make them use much more energy than they do, perhaps scaling with distance?
For these, instead of using the built in jump commands, which are hardcoded, you do it via a script instead.

most ships that jump will call the main scripts, ie !move.jump. So modifying this and changing it to use your custom jump script instead would work.

you can simply use the command, put in environment, to do the jumping. Thats basically how my Advanced jumpdrive works, but it does the opposite (reducing energy and time)
you then just put a delay for how long you want it to take, and remove the amount of energy cells
soulmata wrote: * Make them riskier in general, such as depleting shield energy or damaging the hull with every jump, thus discouraging it for nonstop use? Perhaps even distinguishing a combat jump (dangerous, unpredictable, might damage your ship) vs a planned jump (safer, takes a long time to charge, drains your shields completely)
pretty simple, if you do the above, then you just set the shield energy to 0 as part of the jump routine
soulmata wrote: * Give AI traders a chance to spawn with JD, and use it if they have it?
there are a few ways you could do this, most (non mission) ships are created via jobs, so editing job to add the jumpdrive is fairly easy. You could also do it in your custom jump script, the first time its called, give it a random chance to add a jumpdrive if its a non player ship.

Then just modify the auto jump to work on all AI ships
soulmata wrote: * Have a cooldown after the JD has been used, so that it can't be immediately re-used?
easy enough for your ship, again in the custom jump script you can add any delay, how ever, this could effect how the ai moves if they are expecting to jump and it doesn't work.
soulmata wrote: * Have one massive ship that serves as a fleet jump ship that can jump undocked but nearby ships around it? Like, if any allied jumps are within X meters, also jump them when you jump.
Not to difficult either, i actually made something similar to this in an old Firelance mod. THe only difficult is figuring out what ships should actually jump with you, if you just take take everything thats close by.
soulmata wrote: * Slightly unrelated... allow M6 and M8s to dock to M7Cs, or in general just make M7Cs better so there's a long term use for M8s (I found once I could afford M7M, M8 is just pointless anymore, which felt so sad to have all my Claymores in dock forever...)
you need to edit the docking ports on the ship model to be able to take certain types of ships, not overly difficult to do

User avatar
soulmata
Posts: 154
Joined: Thu, 15. Nov 12, 10:34
x4

Post by soulmata » Sun, 25. Jun 17, 22:51

I settled on merely increasing jump time.

It looked like the overwhelming use case for jump (minus some scripted jumps, like Kha'ak invasions) use !move.jump

Inside !move.jump, there are 2 chunks, one for bigships, one for small ships. Then there is a final check to make sure the ship can jump, before returning either an error or telling the ship to stay while it jumps.

So all I did was insert a wait into the ship type check

if [THIS]-> is of class [Big Ship]
= wait 20000 ms
$r = [THIS]-> use jump drive: target=$target
gosub Check.Jump.Capable:
end

... and it appears to work - EXCEPT for shift+J jumps. Is there any particular reason having every call to !move.jump delay 20s is going to be a problem? And, suggestions on where to look for making SHIFT+J also obey that?

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts and Modding”