Page 1 of 1

Where's my ship?

Posted: Sun Dec 28, 2014 11:27 am
by jh145
I've created a "Test1.oxp" containing Config/shipdata.plist and Config/shipyard.plist as follows:

Code: Select all

{
    "jh145_cobra3-player" = {
        like_ship = "cobra3-player";
        name = "jh145 Cobra Mk III";
    };
}

Code: Select all

{
    "jh145_cobra3-player" = {
        chance = 1;
        "optional_equipment" = (
            "EQ_DOCK_COMP",
            "EQ_FUEL_INJECTION"
        );
        price = 15;
        "standard_equipment" = {
            extras = "";
            "forward_weapon_type" = "EQ_WEAPON_BEAM_LASER";
            missiles = 3;
        };
        techlevel = 1;
        "weapon_facings" = 15;
    };
}
Starting Oolite with cache-flushing, the OXP loads up with no reported parsing errors. But where's my ship?

1. A new Jameson always has the same two ships for sale.
2. An experienced commander at a TL14 planet can't see the "jh145 Cobra Mk III" in the shipyard either.

What's missing?

Re: Where's my ship?

Posted: Sun Dec 28, 2014 11:33 am
by Venator Dha
Have you flown to another system? The ships for sale in the station from the save will be loaded from the save, so any new will not appear until you have changed system.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 11:39 am
by jh145
Yep, tried that to no avail, though admittedly only to the closest couple of systems.

Does "chance = 1" not really mean that?

Re: Where's my ship?

Posted: Sun Dec 28, 2014 11:44 am
by Venator Dha
jh145 wrote:
Yep, tried that to no avail, though admittedly only to the closest couple of systems.

Does "chance = 1" not really mean that?
I believe so. I'm sorry I can't help any more, you've reached the end of my knowledge on this :( I'm sure an expert will turn up soon though :)

Re: Where's my ship?

Posted: Sun Dec 28, 2014 12:06 pm
by Smivs
This can be frustrating, I know!
The 'chance = 1' does two things - it maximises the chance of a ship appearing in the shipyard (but does not guarantee it) and also maximises the chance of optional equipment to be fitted to the 'for sale' example. TL 1 will also maximise the chance of the ship appearing, but again will not ensure this. You may need to try a few shipyards before you find one of yours - try middle-rank systems like TL8,9 etc as they often seem to have more ships available.
BTW you are limiting optional equipment - this is what is made available to the ship from the ouitfitters as well as what it might already have fitted when bought. At the moment you will only be able to buy Docking Computers and Fuel Injectors. A full (I think) list of options is here.

Code: Select all

        "optional_equipment" =         
        ( 
            "EQ_ECM", 
            "EQ_PASSENGER_BERTH", 
            "EQ_ESCAPE_POD", 
            "EQ_ENERGY_UNIT", 
            "EQ_NAVAL_ENERGY_UNIT", 
            "EQ_DOCK_COMP", 
            "EQ_WEAPON_PULSE_LASER", 
            "EQ_WEAPON_BEAM_LASER", 
            "EQ_WEAPON_MINING_LASER", 
            "EQ_WEAPON_MILITARY_LASER", 
            "EQ_FUEL_INJECTION", 
            "EQ_SCANNER_SHOW_MISSILE_TARGET", 
            "EQ_MULTI_TARGET", 
            "EQ_GAL_DRIVE", 
            "EQ_ADVANCED_COMPASS", 
            "EQ_SHIELD_BOOSTER", 
            "EQ_NAVAL_SHIELD_BOOSTER"
        ); 
If you want items fitted as standard (my guess is that you want the ship to come with Docking Computers and Fuel Injectors), then these should be added to 'Extras' in the shipyard.plist, thus

Code: Select all

        "standard_equipment" =        
        { 
        extras =            
                ( 
            "EQ_DOCK_COMP",
            "EQ_FUEL_INJECTION"
                ); 
        "forward_weapon_type" = "EQ_WEAPON_BEAM_LASER"; 
        missiles = 3;
        ..etc 
Disclaimer:- any errors or inaccuracies in this post can be blamed on the holiday spirit <slurp> :wink:

Re: Where's my ship?

Posted: Sun Dec 28, 2014 12:49 pm
by cim
jh145 wrote:
Does "chance = 1" not really mean that?
Shipyard content is ... rather unpredictable. Depending on how many other ship OXPs you have installed, even chance=1 might not be sufficient to guarantee a ship appearing.

If you're wanting to test the ship out without wandering around hundreds of shipyards looking for it, then type

Code: Select all

P.replaceShip("jh145_cobra3-player");
into the debug console while docked. (If you don't have the OXP developer build of Oolite and the debug console, you'll find a lot of things get easier with them, so it's worth the time to download and install)

Re: Where's my ship?

Posted: Sun Dec 28, 2014 1:01 pm
by Lone_Wolf
some comments :

equipment should only be in optional_equipment OR in standard_equipment/extras .
If they are in both, the shipyard may offer a model with an increased price because it adds the price for an optional equipment that the ship ALREADY HAS.

some equipment has available_to_all = true; , in general these don't need to be listed as optional_equipment .

Note :
i use "in general" because a condition script can influence this.

Code: Select all

1.80 equipment with available_to_all = true . removal options left out
"EQ_FUEL"
"EQ_MISSILE"
"EQ_GAL_DRIVE",
"EQ_WEAPON_PULSE_LASER",
"EQ_WEAPON_BEAM_LASER",
"EQ_WEAPON_MINING_LASER",
"EQ_WEAPON_MILITARY_LASER",
"EQ_CLOAKING_DEVICE",
"EQ_PASSENGER_BERTH",
"EQ_HARDENED_MISSILE",
"EQ_ADVANCED_COMPASS",
"EQ_ADVANCED_NAVIGATIONAL_ARRAY",
"EQ_TARGET_MEMORY",
"EQ_INTEGRATED_TARGETING_SYSTEM",
"EQ_QC_MINE",
"EQ_HEAT_SHIELD",
"EQ_WORMHOLE_SCANNER",
[code]

( I discovered this when i tried to make it impossible for my ship to install a passenger berth)

Re: Where's my ship?

Posted: Sun Dec 28, 2014 1:27 pm
by cim
Lone_Wolf wrote:
some equipment has available_to_all = true; , in general these don't need to be listed as optional_equipment .
To add to this, one reason you might list an available_to_all as optional_equipment is that only those items in the optional equipment list can appear as optional extras on ships for purchase (which is why you never see OXP equipment offered as an "extra" on a ship despite it almost always being available_to_all)

Re: Where's my ship?

Posted: Sun Dec 28, 2014 1:33 pm
by jh145
Ah, the debug build OK, downloading as I speak/type. Thanks for the tip.

I took a quick look at the source and was surprised by the way shipyard reseeding works (or appears to). Oolite seems to generate a random days_until_sale between about -194 and +194 days, then test for it being in the range 0 to 30 days. I can't tell how that "random" value is (re)seeded, but in any case it looks like Oolite performs an all-or-nothing replacement of the shipyard. Is it impractical to push and pop ships in smaller quantities, more frequently? -- that would be more "realistic", insofar as anything is in Oolite :D (Or I may just have misunderstood the code ...)

Re: Where's my ship?

Posted: Sun Dec 28, 2014 1:38 pm
by cim
jh145 wrote:
I can't tell how that "random" value is (re)seeded
In theory that random value was itself reseeded every 90ish days, but there was an error in that code so it was in effect a constant. With changes elsewhere over the last few versions that seed value is now only used by the shipyard, so it's been replaced with the constant for clarity until someone gets round to getting rid of it entirely and rewriting the shipyard generation to be something more transparent.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 4:04 pm
by jh145
cim wrote:
... type ... into the debug console while docked
Where's the debug console hosted? There's no wiki page for either the 'C' or Python implementation, and the incidental links that I found to those were broken.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 5:42 pm
by cim
jh145 wrote:
cim wrote:
... type ... into the debug console while docked
Where's the debug console hosted? There's no wiki page for either the 'C' or Python implementation, and the incidental links that I found to those were broken.
The repo is at https://github.com/OoliteProject/oolite-debug-console - there's a "download ZIP" button on the right. Unpack it, then run DebugConsole.py before starting Oolite.

If you're on Windows, you'll need to get Python separately.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 6:20 pm
by jh145
That worked, thanks.

Incidentally, I did finally find the ship for sale, but noticed that the sort order in the shipyard was ASCII ('A' < 'Z' < 'a' < 'z') and so my ship (starting with a lowercase letter) was listed last. Trivial though it is, that's probably a bug. Is there an approved means of raising such things that won't get me dumped in witchspace with nothing more than 1t Liquors/Wines for comfort? Ta.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 6:23 pm
by another_commander
The Debug Console for Windows can be downloaded as a standalone executable (no Python needed) from here:
http://sourceforge.net/projects/oolite- ... p/download.

We really need to get this into oolite.org, though.

Re: Where's my ship?

Posted: Sun Dec 28, 2014 6:39 pm
by cim
jh145 wrote:
Incidentally, I did finally find the ship for sale, but noticed that the sort order in the shipyard was ASCII ('A' < 'Z' < 'a' < 'z') and so my ship (starting with a lowercase letter) was listed last. Trivial though it is, that's probably a bug. Is there an approved means of raising such things that won't get me dumped in witchspace with nothing more than 1t Liquors/Wines for comfort? Ta.
In general core game bugs should be reported either through the issue tracker at https://github.com/OoliteProject/oolite/ or on the "Testing and Bug Reports" forum here.

There's a fair chance they'll get spotted anywhere they're reported on the forums, though - I've fixed this one now.