• 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!

Need Help Points, Perks and Leveling UP

Note that you cannot take prisoners/hire captains if there is "no space" for them.
This can only happen if you have a lot of passengers already though.

Unless.... Could this possibly be related to captains NOT being copied anymore upon surrendering?
They used to be copied on which their ID changes and their old spot is freed up.
If so, @Levis might need to think about this.

To find out, check the values of the variables at the top of that dialog file using Trace.
Those control whether the options are enabled or not.
 
Well if I have too many that is change from before. I am carrying 8 and I thought the limit in earlier versions was 12. The work around is too hire them, proof positive I don't have too many then fire them later, or kill them on the spot.
 
@Grey Roger, could you confirm the value of the passenger limit?
I thought it was something like 32 or so.

In any case, if @Jason has only 8, then that does not explain it and the culprit must be found somewhere else.
 
I think the captain generation function is the likely suspect if my second file did not fix it--it reverts everything basically. But even the first fix only keeps changes to the initial dualing code, which shouldn't need to be commented out.

However, I did indeed take a captain prisoner with the second file, so whatever is going wrong can't go wrong all the time, and one would think if it were the missing twin captain it would just never work. But who knows....
 
I imagine it might be OK at game start but then as the game has to start cycling through the same Captain IDs, it could start going wrong depending on what happened to the previous Captain with the same ID.
Or something like that. That could very well be the actual explanation.
 
I imagine it might be OK at game start but then as the game has to start cycling through the same Captain IDs, it could start going wrong depending on what happened to the previous Captain with the same ID.
Or something like that. That could very well be the actual explanation.
The captain array is cleared every time you enter sea. So if the captains don't dissapair (which as far as I know they don't) it means they are already copied to (I guess) the permanent fantoms array.
 
What Captain array is cleared?
I am thinking of the Find Free Cabin Captain function (or something like that).
 
I am happy to report that both I and at least one of my officers have leveled up appropriately. I am playing with Levis' October 7, fix. So, Yay!
So can we call this fixed?
 
@Levis @Pieter Boelen

The other half of the captains not being taken prisoner discussion is in this thread above. Maybe it should also be reloacated to a new bugtracker entry for that bug.

This is the part of the discussion that brings up the possibility of it being a captain generation problem, instead of cabinfight. Not sure, but not something I understand how to check.
 
This is the part of the discussion that brings up the possibility of it being a captain generation problem, instead of cabinfight. Not sure, but not something I understand how to check.
The checking is not too difficult; it could just be a bit time-consuming.
All that would need to be done for starters is to use Trace/TraceAndLog to check the values of the variables used here:
Code:
  bool bAllowHireJoin = FindFreeRandomOfficer()!=-1;
   bool bAllowRelease  = true;
   bool bAllowCapture  = HasSubStr(NPChar.id,"Enc_CabinCaptain") || strcut(NPChar.id,0,1) == "Cr"; // PB: Allow Coast Raiders also
   if(!bAllowCapture)
   {
     bAllowCapture = HasSubStr(NPChar.id,"fantom")&&FindFreeCabinCaptain()!=-1;
   }
   if(CheckAttribute(NPChar,"cabinfight") && NPChar.cabinfight==true) { bAllowCapture = FindFreeCabinCaptain()!=-1; } /* fantoms allow anything */ //MAXIMUS 10.10.2007

   if(CheckAttribute(boarding_enemy,"location.norebirth") && boarding_enemy.location.norebirth==1) { bAllowHireJoin = true; bAllowRelease = false; bAllowCapture = true; } /* special captains must die */
   if(CheckAttribute(boarding_enemy,"questchar") && boarding_enemy.questchar==true) { bAllowHireJoin = false; bAllowRelease = false; bAllowCapture = true; } /* quest allows capture */ //MAXIMUS: special identifier added into tempquest- and storycharacters init

   if(GetPassengersQuantity(PChar) >= PASSENGERS_MAX) { bAllowHireJoin = false; bAllowCapture = false; } // no room for them!
   if(sti(GetStorylineVar(FindCurrentStoryline(), "NO_CREW_OR_OFFICERS")) == 1 || CheckAttribute(PChar, "isnotcaptain")) { bAllowHireJoin = false; }
   // TIH <-- // <-- KK

   bool bDeathFight, bAllowCompanion;//MAXIMUS
//MAXIMUS: [if your crew and enemy's crew will be enough for two minimum crews, you will be able to take him as companion] -->
   if(GetCrewQuantity(boarding_enemy)<GetMinCrewQuantity(boarding_enemy))
   {
     if(sti(GetCrewQuantity(PChar)) - (sti(GetMinCrewQuantity(boarding_enemy)) - sti(GetCrewQuantity(boarding_enemy)))>GetMinCrewQuantity(PChar)) { bAllowCompanion = bAllowHireJoin; }
     else { bAllowCompanion = false; }
   }
   else
   {
     if(GetCrewQuantity(PChar)<GetMinCrewQuantity(PChar))
     {
       if(sti(GetCrewQuantity(boarding_enemy)) - (sti(GetMinCrewQuantity(PChar)) - sti(GetCrewQuantity(PChar)))>GetMinCrewQuantity(boarding_enemy)) { bAllowCompanion = bAllowHireJoin; }
       else { bAllowCompanion = false; }
     }
     else { bAllowCompanion = bAllowHireJoin; }
   }
My assumption is that the various 'bools' are false by the end that section completes, but that should of course not happen.
Next step is figuring out at which point it gets set to false and why.
 
Makes sense, but it may be many weeks or even months before the work project completes and I have the sparetime to do any modding or bugfixing again. I tried to help as much as I could while I was at a low-point in work.

So will have to be someone else to fix this one.
 
Cheers Gentlemen,

hope this is the right post for this. I just realized that one of my perks have vanished. I am smuggling a lot and so I picked the high stakes perk as soon as possible. I used it a long time. Now, out of a sudden, I no longer get the gamble option when talking to the officer in the tavern. I wondered why and found high stakes gone.
When looking to an older savegame, I also found the perks completely in diosorder. Look at the screenshot, where high stakes looks like fast reload, while fast reload looks like defence.


This is with Levis-Fixes_7_10.

I add screenshots and savegames.
 

Attachments

  • High Stakes.jpg
    High Stakes.jpg
    396.7 KB · Views: 157
  • In disorder.jpg
    In disorder.jpg
    402.5 KB · Views: 164
  • Perks in Disorder.7z
    832.8 KB · Views: 159
Last edited:
@Skyworm did you do an F11 after you updated with my fixes?
 
Um, no I don't think so. Ill try that, thanks. But the problems did not immediately happen after your fix, it did very recently.

Just did. It does not change the current situation.
 
This sounds remarkably similar to what @ANSEL reported before.

Do you have any clue when the perk disappeared?
Any chance of a savegame before and after?
 
Back
Top