• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Included in Build Ship Encounter Chances Correction

If the player wants to bring in a non-period ship, would that really be such a problem? Up to them, no? As long as they don't show up without player action. :shrug
I guess it wouldn't cause any harm, so feel free to return the repaint option to the Indy/Boussole.
Come to think of it, I did a similar thing for Battleship2, making her appear in periods 1 and 2 instead of 2 and 3 like her sisters, but I didn't remove the repaint option.

The only exceptions would be:
1. Standard storyline opening tutorial with a different starting ship: This isn't working right at the moment and will need to be fixed for Beta 3 anyway.
2. First Contact storyline encounter with Davy Jones: I wrote this to work on any ship deck. If I did a good job, swapping out deck assignments makes no difference.

I was afraid you'd say that about the Standard tutorial deck; that's one which is too big. :rolleyes:
Though to be fair, I think it was the smallest deck in the stock game, wasn't it? Now that we have a smaller one, though, it would be more ideal to use for LuggerVML.
I'll leave that one alone for now and see about changing some others in the meantime.

About the new encounter chances: I think France and Spain are enjoying their use of RN_Corvette a little too much; in my testing yesterday (Sea Hawk), I encountered one of each in the space of three or four encounters.
This would suggest RN_Corvette should have its period 3 chance reduced from 0.7 to 0.6 (the others are 0.6 anyway) but I'll do some more testing to be sure.

If anyone else has any comments from testing with any of the periods/nations, please to say so.

EDIT: OH, I forgot to mention that the old version of Fightdeck2.tga is being used for the deck locations.
Please extract this version to RESOURCE\Textures instead: fightdeck2.tga.tx.7z
 
I was afraid you'd say that about the Standard tutorial deck; that's one which is too big. :rolleyes:
Though to be fair, I think it was the smallest deck in the stock game, wasn't it? Now that we have a smaller one, though, it would be more ideal to use for LuggerVML.
I'll leave that one alone for now and see about changing some others in the meantime.
The LuggerVML already HAS "Cabin_small" set. We don't have a smaller one, do we?
The Standard storyline opening has been working fine with that cabin. But NOT with the original Tut_Cabin.
Which is strange, because I seem to remember it worked with any ship's cabin at some point. It was INTENDED to work regardless of cabin in any case.
But there's a lot that was intended to work, but turned out not to.

About the new encounter chances: I think France and Spain are enjoying their use of RN_Corvette a little too much; in my testing yesterday (Sea Hawk), I encountered one of each in the space of three or four encounters.
This would suggest RN_Corvette should have its period 3 chance reduced from 0.7 to 0.6 (the others are 0.6 anyway) but I'll do some more testing to be sure.
Will make that change for the file I'm uploading soon. :doff
 
The LuggerVML already HAS "Cabin_small" set. We don't have a smaller one, do we?

Ah, I'm not on about the cabin, I'm referring to the outside deck, which is about the size of the corvette models. Yes, the cabin is definitely small enough. :cheeky
So would changing the outside deck affect anything?
 
AH! The swordfighting practice, perhaps. But that is easily tested. Which deck would you like to use?
 
The smallest one, which is deckLow (I think it's ShipDeck4 in the code?). That's closer to the size of the lugger.
 
Hey! Who sez there arrr not any big ships in the game? That be all there arr out there anymorrr.

I recently picked up a treasure quest in the Speightstown dungeon, then later got a trade mission to Bridgetown. My light fluyt and caravel were met by a heavy east indiaman. :8q After being boarded and slaughtered 3 times I made it close enough to port to make a run for it. After a long battle in which both my ships were mostly demolished the fort finally sank that monster. :drunk I wuz kinda sorta expecting something like a brig.......
This is not an isolated incident. Witness these 2 random encounters at sea.
big ships-1.jpgbig ships-2.jpg
 
Looking at the code, I think the Heavy East Indiaman (WarGalleon) models are probably too common in period 2; same with the pinnaces.
I'll make some changes once I'm done with the decks and cabins.
 
OK, see attached file for improved deck and cabin selections for many ships, and reduced encounter chances for the WarGalleons and Pinnaces, particularly in period 2.
Also note that I've removed PO_Manowar and given Manowar2 to England and France instead of Holland and Portugal. That gives England, France and Spain two Manowars each.
 

Attachments

  • Ships_init.c
    703.7 KB · Views: 102
Hey! Who sez there arrr not any big ships in the game? That be all there arr out there anymorrr.
Wow, that's a LOT of biggies! I wonder if somehow the Level-Based ship classes are in use for you?
Check your Options>Difficulty menu and make sure the text says you will be notified of ALL sightings.

OK, see attached file for improved deck and cabin selections for many ships, and reduced encounter chances for the WarGalleons and Pinnaces, particularly in period 2.
Also note that I've removed PO_Manowar and given Manowar2 to England and France instead of Holland and Portugal. That gives England, France and Spain two Manowars each.
Cool, thanks! I merged your file with mine. See attached for the results. Just so you can incorporate my few changes as well. :wp
 

Attachments

  • Ships_init.zip
    54.8 KB · Views: 106
Cool, thanks! I merged your file with mine. See attached for the results. Just so you can incorporate my few changes as well. :wp

Done. I don't see how those pesky accented letters keep getting messed up, though. :facepalm
 
It seems we have quite a problem with pirate encounters. Recently I reduced the chances of PiratCorvette and CrimsonBlood appearing, but now I'm seeing Corvette2 WAY too often in pirate fleets.
I also saw PiratFrigateSup in the last encounter, which should be very rare, and even Frigate2 a couple of days ago, which isn't even assigned to the pirates.
I'm assuming Frigate2 is one of the default ships (period 3) the game uses when it can't find a suitable ship for an encounter?

Anyway, please see attached version of Ships_init.c for Beta 2.5. I've made the above ships very rare, and increased the chances of seeing smaller vessels such as Schooners and Brigs in pirate encounters.
Please let me know how this works in-game; I'll be testing it myself as well.
 

Attachments

  • Ships_init.c
    703.8 KB · Views: 106
Thanks! :doff

For reference, these are the "default" ships being used if no other can be found:
Code:
        // PB: If all fails, return a random period-specific ship type instead of the player ship -->
        switch((GetCurrentPeriod()))
        {
            case PERIOD_EARLY_EXPLORERS:
                switch(rand(1))
                {
                    case 0: return GetShipIndex("Carrack"); break;
                    case 1: return GetShipIndex("caravel1"); break;
                }
            break;

            case PERIOD_THE_SPANISH_MAIN:
                switch(rand(2))
                {
                    case 0: return GetShipIndex("SP_Derfflinger"); break;
                    case 1: return GetShipIndex("pinnace1"); break;
                    case 2: return GetShipIndex("FastGalleon1"); break;
                }
            break;

            case PERIOD_GOLDEN_AGE_OF_PIRACY:
                switch(rand(2))
                {
                    case 0: return GetShipIndex("Barque4_47"); break;
                    case 1: return GetShipIndex("pinnace1"); break;
                    case 2: return GetShipIndex("frigate1"); break;
                }
            break;

            case PERIOD_COLONIAL_POWERS:
                switch(rand(2))
                {
                    case 0: return GetShipIndex("PiratHannah"); break;
                    case 1: return GetShipIndex("pinnace1"); break;
                    case 2: return GetShipIndex("frigate2"); break;
                }
            break;

            case PERIOD_REVOLUTIONS:
                switch(rand(2))
                {
                    case 0: return GetShipIndex("ketch"); break;
                    case 1: return GetShipIndex("Hooker"); break;
                    case 2: return GetShipIndex("Corvette47"); break;
                }
            break;

            case PERIOD_NAPOLEONIC:
                switch(rand(2))
                {
                    case 0: return GetShipIndex("Schooner50"); break;
                    case 1: return GetShipIndex("FastMerchantman1"); break;
                    case 2: return GetShipIndex("lineship47"); break;
                }
            break;
        }
        // PB: If all fails, return a random period-specific ship type instead of the player ship <--
I wonder if this could be because there aren't that many ships with a chance of 1.0.
Basically, the way it is coded is that the game will decide on a certain ship to be generated, but then the period code disallows that one, so the game has to try again. And again.
Any value lower than 1.0 would potentially cause another loop. And possibly another. Would it be possible to just increase the overall chances?
 
Any value lower than 1.0 would potentially cause another loop. And possibly another. Would it be possible to just increase the overall chances?
I did this for several pirate ships as mentioned above. Are you saying we should increase the chances for all ships?
Generally speaking, I think the default ships only appear very rarely. The only time I can recall seeing one recently was Frigate2, as I said before.
 
Are you saying we should increase the chances for all ships?
It might help. Higher chances overall means less looping for the code trying to find an appropriate ship.
And less looping means that it'll behave closer to what we'd want it to.

On the other hand, if our default ships are well-chosen, you won't ever notice them being default.
Unless THOSE are the ones you keep seeing, which could suggest that the looping is not being successful.

If you want, we can put a TraceAndLog in the code for if that happens, so that we can see if that is the case.
Just put this above switch((GetCurrentPeriod())) :
Code:
TraceAndLog("Ship selection found no ship: default ship selected");
Or something like that. This will give an on-screen message and a note in compile.log .
Use trace for compile.log only or LogIt for on-screen only.
 
Ah, so that is why I keep seeing pirates sailing a merchant pinnace, and once a light fluyt.
 
Back
Top