That was a bug, but wasn't the ships showing up in the wrong period fixed a little while ago?
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!
Quick links for Beyond New Horizons
- Download latest version
- Wiki
- FAQ
- Report bugs here
- Bug Tracker on Github
Quick links for Maelstrom
- Download the latest version of Maelstrom
- Download the latest version of ERAS II
- Download the latest version of New Horizons on Maelstrom
Quick links for PotC: New Horizons
- Download latest version
- Wiki
- FAQ
- Report bugs here
Thanks to YOUR votes, GOG.com now sells:
- Sea Dogs
- Sea Dogs: Caribbean Tales
- Sea Dogs: City of Abandoned Ships
Vote now to add Pirates of the Caribbean to the list!
Quick links for AoP2: Gentlemen of Fortune 2
- Downloads and info
- ModDB Profile
- Forums Archive
A Pirate Podcast with Interviews
Music, Comedy and all things Pirate!
- Episode Guide - About - Subscribe -
- Twitter - Facebook - iTunes - Android -
- Youtube - Fill the Coffers -
You have to distinguish between something not working the way you'd like and something being a bug.I got them as Johan Elting 1666 in 2.3. I tried today a pure Beta 1 game. Perfect all kinds of encounters. Point is, above 2.3 all encounters are bugged.
As far as I can tell, the period code is working pretty well. The game will rather NOT return a valid ship than to show a wrong-period one.That was a bug, but wasn't the ships showing up in the wrong period fixed a little while ago?
Period and nation encounter chances are defines in PROGRAM\Ships\ships_init.c .I didn't try the fix pack. But it would be usefull to tell me which are all files that deal with encounters. Is it all those folders &files in yours period_encounters_2. Btw I sent you a pm.
BTW: I haven't seen your PM.Long story short:
1. Worldmap and DirectSail encounters have their minclass, maxclass, number of ships and trade/war based on PROGRAM\Encounters\Encounters_init.c
2. Other encounters, such as Coast Raiders around islands, have those values fixed
3. Whenever the game searches for a ship, it first establishes a list of all valid ships based on class, trade/war (NOT nation and period yet)
4. The game then randomly selects a ship from that list and checks that against the nation and period chance values
5. If this check FAILS, it'll try again. Up to a maximum of 100 tries per ship. If it does NOT fail, that ship is selected
How to read your compile.log file:
Fantom_GenerateEncounter refers to Encounters_init and tells you the type of encounter that is being requested.Code:Fantom_GenerateEncounter: type = L - Fleet: Regional Patrol, a small fleet, # Mer = 0, Mer MAX = 0, Mer MIN = 0, # War = 7, War MAX = 1, War MIN = 3 Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 15, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 4, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 13, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 2, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 19, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 11, Ship ID = NL_FWzP Force_GetShipType: Maxclass = 1, Minclass = 3, Per = The Spanish Main, Nat = Holland, Type = War, Loop = 12, Ship ID = NL_FWzP
The # values are the number of ships and the MAX/MIN values are the limits on the ship classes.
Force_GetShipType is the function that selects the actual ship, showing again the class limits, time period, nation and ship type (war/trade).
The "loop" values indicates the number of tries before the game found a ship. Ship ID is what the game eventually generates.
If "loop" reaches 100, the game writes an error message to compile.log and chooses between two period-appropriate generic ships.
Ideally, we do not want this to EVER happen, because it bypasses all other code that is there to make the encounters appropriate.
I want to see the compile.log for EVERY time that happens. Of course I removed the on-screen message in the latest update, but it is still being logged.I was still getting the "can't find ship, reverting to default" kinda message on my last working install but it was rare and the chosen ship was ok for the battle.
#define PERIOD_ACCURACY_LEVEL 2 // PB: 1 = Simplified 0% or 100% Period+Nation chance, 0 = Period chance ignored
Well, I took the liberty of giving the Spanish Treasure Fleet encounter a 75% chance at having its trade ships loaded with gold and silver.Hey, I didn't know the game did such a thing! Apparently it DOES. Niiice!Code:CARGO: Fantom_SetGoods rare chance silver shipment!
Treasure Fleet!
Fantom_GenerateEncounter: type = L - Merchant 2: -->SPAIN ONLY<--, Trans-Atlantic Treasure Fleet, a convoy, # Mer = 3, Mer MAX = 3, Mer MIN = 3, # War = 5, War MAX = 1, War MIN = 4
Force_GetShipType: Maxclass = 3, Minclass = 3, Per = Early Explorers, Nat = Spain, Type = Trade, Loop = 1, Ship ID = Galeon50
Force_GetShipType: Maxclass = 3, Minclass = 3, Per = Early Explorers, Nat = Spain, Type = Trade, Loop = 0, Ship ID = GaleonWar
Force_GetShipType: Maxclass = 3, Minclass = 3, Per = Early Explorers, Nat = Spain, Type = Trade, Loop = 2, Ship ID = Galeon50
Force_GetShipType: Maxclass = 1, Minclass = 4, Per = Early Explorers, Nat = Spain, Type = War, Loop = 0, Ship ID = FastGalleon2
Force_GetShipType: Maxclass = 1, Minclass = 4, Per = Early Explorers, Nat = Spain, Type = War, Loop = 0, Ship ID = SP_ApostolFelipe
Force_GetShipType: Maxclass = 1, Minclass = 4, Per = Early Explorers, Nat = Spain, Type = War, Loop = 0, Ship ID = GaleonWar
Force_GetShipType: Maxclass = 1, Minclass = 4, Per = Early Explorers, Nat = Spain, Type = War, Loop = 0, Ship ID = SP_ApostolFelipe
Force_GetShipType: Maxclass = 1, Minclass = 4, Per = Early Explorers, Nat = Spain, Type = War, Loop = 0, Ship ID = FastGalleon2
CARGO: Fantom_SetGoods rare chance gold shipment!
CARGO: Fantom_SetGoods rare chance silver shipment!
CARGO: Fantom_SetGoods rare chance silver shipment!
Fantom_GenerateEncounter: type = Merchant 2: a single merchant with heavy escort, # Mer = 1, Mer MAX = 0, Mer MIN = 0, # War = 3, War MAX = 3, War MIN = 5
ERROR - Force_GetShipType: unable to find ship, returning a default ship instead
ERROR - Force_GetShipType: Maxclass = 3, Minclass = 3, Per = Early Explorers, Nat = Holland, Type = Trade
ERROR - Force_GetShipType: unable to find ship, returning a default ship instead
ERROR - Force_GetShipType: Maxclass = 3, Minclass = 5, Per = Early Explorers, Nat = Holland, Type = War
ERROR - Force_GetShipType: unable to find ship, returning a default ship instead
ERROR - Force_GetShipType: Maxclass = 3, Minclass = 5, Per = Early Explorers, Nat = Holland, Type = War
Force_GetShipType: Maxclass = 3, Minclass = 5, Per = Early Explorers, Nat = Holland, Type = War, Loop = 11, Ship ID = NL_FleutWar
I do believe I've got it! For some reason, the code was including the ENCOUNTER_TYPE_PATROL code in the ENCOUNTER_TYPE_MERCHANT2 version.The error problem remains on the "Merchant 2" encounter: