Page 2 of 3

Posted: Wed Feb 03, 2010 2:39 pm
by Cmdr Wyvern
@Zbond-Zbond:
What McLane said. Those same instructions work for any ship bearing flak batteries. Also, look for the target autolock.oxp. :)

@Allonnissos
Only one thing I can think of ATM. When you updated the oxp, did you restart Oolite with a shift key held down?
Restarting the game with the shift key flushes the cashe, and tends to fix compatibility errors. It's usually the recommended procedure when updating oxps.

Posted: Wed Feb 03, 2010 11:17 pm
by Allonnissos
Curiouser and Curiouser.........

I am not happy with editing the Save file (it just seems too much like cheating) :( - but now I have noticed a couple of other "features":

1. No planet has any ships for sale - None at all - been to TL 15 down to TL 1 - no-one has a single ship for sale - not even a bog-standard Adder!

2. My Cash is now going backwards! - The need to perform Maintenance is now occurring after just 20 flights (average over last 60 flights). 54 of the flights were 1.7LY or less! - Given the small Cargo allowance for the caddy I had "earned" an average of 16,420 CR each time the Maintenance (which costs 17,000) "fell due".

Luckily i have over 600,000 Cr - so the losses will take a LONG while before I go bankrupt. I am just puzzled - what actually triggers the need for the maintenance?

Posted: Wed Feb 03, 2010 11:19 pm
by Allonnissos
Thanks Cmdr Wyvern - I will give that a try.

Posted: Thu Feb 04, 2010 11:24 am
by ClymAngus
Allonnissos wrote:
Curiouser and Curiouser.........

1. No planet has any ships for sale - None at all - been to TL 15 down to TL 1 - no-one has a single ship for sale - not even a bog-standard Adder!

2. My Cash is now going backwards! - The need to perform Maintenance is now occurring after just 20 flights (average over last 60 flights). 54 of the flights were 1.7LY or less! - Given the small Cargo allowance for the caddy I had "earned" an average of 16,420 CR each time the Maintenance (which costs 17,000) "fell due".
I'm not taking responsibility for those..... :D
That sounds like a deeper level of screw, rather than just my oxp.
Allonnissos wrote:
Luckily i have over 600,000 Cr - so the losses will take a LONG while before I go bankrupt. I am just puzzled - what actually triggers the need for the maintenance?
too many witchjumps. Leave it results in an increase drisk of a misjump = Tharg-orama

Posted: Thu Feb 04, 2010 11:26 am
by Commander McLane
Just a thought: Does the DCN self-repair script use a mission variable to store its repair status? If not, the self-repair could get derailed when quitting Oolite and reloading later. Because all information not in the save-game would be lost...

Posted: Thu Feb 04, 2010 4:23 pm
by Cmdr Wyvern
No mission variable(s) used. It uses a list of repairable kit, and timers and percentage checks to do the fixing.

I'm agreeing with Clym, that Allonnissos' game somehow got borked. It happens sometimes you know.
Hopefully it'll straighten itself out when Allonnissos tries the shift key reset.

Posted: Thu Feb 04, 2010 10:17 pm
by Allonnissos
Nah - Shift-Key "fix" didn't solve issue.

It isn't anything to worry about. So it costs me a bit more cash to manually fix broken items - but hey - if I was still piloting a BCC or Cobra I would have to pay that anyway......

The advantages of a Caddy (even with a broken DCN) outweigh the alternatives soooooo much I will just live with it - maybe one day i will find a planet selling another Caddy - and hopefully I will have enough cash left to be able to buy it. Until then I will just concentrate on getting the 3852 kills I still need for "Elite" status.

Thanks for all the help/suggestions.

Posted: Thu Feb 04, 2010 10:55 pm
by Cmdr Wyvern
@Allonnissos,
I'm at a loss. I tried to reproduce this issue on my own Linux machine, but no joy. A glitch that isn't easily reproducible isn't easy to nail down.

But, all is not lost. Head on over to the Oolite-linux section. Getafix hangs out there, and he's a sharp cookie where it comes to Oolite on Linux. If Getafix can't help you out, then it's probably panic button time.

Posted: Fri Feb 05, 2010 1:31 am
by Alex
Hi again,
I updated my neocaddy and reloaded with 'shift', checked the ship.plist before to make sure DCN was there before reload. No worries there.
Still no DCN on my caddy though.
Was wondering, do I have to go looking to buy a new ship?
Would have thought it would have updated on reload as it is standard gear on the ship??

Edit..
Ah.. Just noticed, is it not standard equipment and has to be bought??

Posted: Fri Feb 05, 2010 2:44 am
by Cmdr Wyvern
Alex wrote:
Hi again,
...
Was wondering, do I have to go looking to buy a new ship?
Would have thought it would have updated on reload as it is standard gear on the ship??

Edit..
Ah.. Just noticed, is it not standard equipment and has to be bought??
<fiction mode>
The DCN is highly exotic biotech, very highly advanced. As a result, the DCN can't be bought anywhere, nor can it be removed from the ship, being a part of the ship. This happened after the Tibecia Invasion*, when a mass evolution swept through the Caduceus fleet, beginning with the heavily wounded Hammer of Sorrow.
The ships stripped down and sold beforehand didn't get a chance to grow a DCN at that time, but the Shulth family speculate this will happen eventually.

</fiction mode>

*see the novella "Rise of the Kirin"

So yeah, buy a new Caddy and you should be good to go. :) If you do an overhaul before "upgrading", your credit loss should be minimal. Then comes the PITA of kitting up again...sorry about that.

I just had to write a little sci-fi to explain some things. :)

Posted: Fri Feb 05, 2010 8:39 am
by Commander McLane
Cmdr Wyvern wrote:
No mission variable(s) used. It uses a list of repairable kit, and timers and percentage checks to do the fixing.
Then the critical question is (and this is what I wanted to say in my post): All timers are cleared and deleted when you quit Oolite. Is the one responsible for repairing the DCN itself automatically restarted by the script when you re-open your save-game later?

If not, then the DCN will never be repaired.

EDIT: Yes, that's exactly what I see in the script. damageNodeTimer is started when the DCN gets damaged, and will repair it after some time. However, if you quit your current game and reload it again later, the DCN is already damaged while you're loading the game, therefore damageNodeTimer is not started again, and therefore no repairs are done every again from that point onwards. So it's a bug in the script.

The fix is simple: just add the following code to the script:

Code: Select all

this.startUp = this.reset = function()
	{
	if(player.ship.hasEquipment("EQ_DCN_DAMAGED"))
		{
		this.damageControlTimer.stop(); delete this.damageControlTimer;
		this.damageNodeTimer.start()
		this.damageNodeTimer = new Timer(this, this.restoreNode, 0, 60)	
		}
	}
This checks whether you loaded a commander with a broken DCN. If yes, the self-healing starts.

The alternative would be (and that's why I asked for a mission_variable) to set a mission_variable to true while the DCN is still out of work. Then you would have to check for this mission_variable on every restart of the game, and only delete it after the repair is finished. But of course you can just as well check for the presence of the broken DCN right away, like in my code.

Posted: Fri Feb 05, 2010 10:27 am
by ClymAngus
Ooo yes righty ho I didn't think about that :oops: ok I'll push out a fix late Saturday sometime.
Commander McLane wrote:
Cmdr Wyvern wrote:
No mission variable(s) used. It uses a list of repairable kit, and timers and percentage checks to do the fixing.
Then the critical question is (and this is what I wanted to say in my post): All timers are cleared and deleted when you quit Oolite. Is the one responsible for repairing the DCN itself automatically restarted by the script when you re-open your save-game later?

If not, then the DCN will never be repaired.

EDIT: Yes, that's exactly what I see in the script. damageNodeTimer is started when the DCN gets damaged, and will repair it after some time. However, if you quit your current game and reload it again later, the DCN is already damaged while you're loading the game, therefore damageNodeTimer is not started again, and therefore no repairs are done every again from that point onwards. So it's a bug in the script.

The fix is simple: just add the following code to the script:

Code: Select all

this.startUp = this.reset = function()
	{
	if(player.ship.hasEquipment("EQ_DCN_DAMAGED"))
		{
		this.damageControlTimer.stop(); delete this.damageControlTimer;
		this.damageNodeTimer.start()
		this.damageNodeTimer = new Timer(this, this.restoreNode, 0, 60)	
		}
	}
This checks whether you loaded a commander with a broken DCN. If yes, the self-healing starts.

The alternative would be (and that's why I asked for a mission_variable) to set a mission_variable to true while the DCN is still out of work. Then you would have to check for this mission_variable on every restart of the game, and only delete it after the repair is finished. But of course you can just as well check for the presence of the broken DCN right away, like in my code.
:oops:

Posted: Fri Feb 05, 2010 1:09 pm
by Allonnissos
Great news guys! I was hoping it wasn't that I was doing something stupid (I already do FAR too many stupid things in other areas of my life!)

I will check for updates after Monday (off hiking in the Highlands this weekend).

Posted: Sat Feb 06, 2010 5:54 am
by Cmdr Wyvern
The news gets better! :D

I had me a saved game with a damaged DCN and some other shot-up kit. So I loaded it from a fresh start of the game, launched the ship, and waited in orbit. Sure enough, the DCN script was as McLane said.

So, I hacked on the script for awhile, and finally got the bug defeated. I beat that particular trumble to death with a sledgehammer, hacking and testing till the problem was no more.

Sorry to say McLane, your patch code didn't work. Though you accurately spotted the bug, well done, Commander. :mrgreen:

Till Clym can wrap up a fixed oxp, I've put together a patch package. Consider your DCN vaccinated, Allonnissos. ;)

EDIT: Delete the script.js file in the neocaduceus.oxp/Config directory before using these patch files, or there could be conflict between the old, buggy script and the new fixed one.

Posted: Sat Feb 06, 2010 11:00 am
by Commander McLane
Downloading the patch I see that the variable names have completely changed from the script I was working with. That may have been the reason for my snippet not working.

Anyway, glad to be of service. :)