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

Fixed Reward officer/ship bugging

Levis

Find(Rum) = false;
Staff member
Administrator
Creative Support
Programmer
Storm Modder
So, having caused all sorts of mischief, it was time to return to Jamaica, where multiple promotions awaited. I went from Lieutenant to Commodore in one visit. And when I'd finished being promoted, I found there was a new face in my list of officers. He had a male name but a female face - I can't remember the name but I guessed it was a bug and he shouldn't be there, so I reloaded an earlier saved game, went to Jamaica, got promoted and found another similar stowaway with a different name but the same face. The picture in the character list was the same as goes with the costume "Hailing from Africa she seeks freedom in the New World". I don't have that costume. Normally that's not a problem as a newly hired officer brings his costume with him. This one didn't, so when I assigned him to one of my four active slots and moved to another location, he didn't show up. I gave him one of the costumes I do have, moved again, and now he did show up. And then I fired him, partly because I don't like stowaways and partly because if he'd shown up as a bug then he may cause trouble later, so I hoped getting rid of him would avert such trouble.

I would like to have a savegame if possible. Do you have any @Grey Roger ?
 
Unfortunately no. But it did happen again more recently. During the main quest Britain turns hostile when Silehard doesn't like you any more, then you are restored to basic Letter of Marque when you visit the replacement governor. Since then I've been continuing to loot French and Spanish ships, getting promotions, and getting the same sort of officer along with one of the promotions. Again I ditched the stowaway fairly quickly and have not had any more with later promotions.
 
I'm wondering if that officer is part of the reward ship thing. The reward ship was deemed unstable and dropped, but it sounds like you are still getting the officer that comes with the ship.
 
That would be the officer you get from GivePromotionReward() in PROGRAM\NK.c .
That officer should be captaining a new ship in your fleet and generally quite a nice ship at that.

The "Affrica" portrait picture is odd and shouldn't be happening though.
But I just noticed that those officers are coded to use the "_A3" model versions, which no longer exist.
So that is easily fixed and will be included in the next update. :doff
 
Last edited:
so the officer shouldn't be added also right? Will you remove that pieter?
 
The officer IS supposed to be added, because it is the officer that gets to captain the new ship.
This is to prevent suddenly and without warning overwriting the ship the player already had; that wouldn't be very nice! :shock

Originally, I coded it so that the player gets the new ship and the new officer gets the old player ship.
But that caused trouble for some reason, so I decided to simplify it.
 
The officer IS supposed to be added, because it is the officer that gets to captain the new ship.
This is to prevent suddenly and without warning overwriting the ship the player already had; that wouldn't be very nice! :shock

Originally, I coded it so that the player gets the new ship and the new officer gets the old player ship.
But that caused trouble for some reason, so I decided to simplify it.
But the ship isn't added now right? Or did I read that wrong?
 
The last time I got a rank high enough I got neither ship nor officer, but that was 2 WIPs ago.
 
You get an officer AND a ship:
Code:
        case 6: // Captain
           if (GetCompanionIndex(pchar,1) != -1 && GetCompanionIndex(pchar,2) != -1 && GetCompanionIndex(pchar,3) != -1)
           {
             ch = CreateOfficer_Cheat(OFFIC_TYPE_FIRSTMATE, "9JdEng", 3, ENGLAND, false);
             switch(GetCurrentPeriod())
             {
               case PERIOD_EARLY_EXPLORERS:
                 GiveShip2Character(ch, "RN_RevengeW", "Revenge", -1, ENGLAND, true, false);
               break;

               case PERIOD_THE_SPANISH_MAIN:
                 GiveShip2Character(ch, "RN_Poseidon", "Poseidon", -1, ENGLAND, true, false);
               break;

               case PERIOD_GOLDEN_AGE_OF_PIRACY:
                 GiveShip2Character(ch, "HMS_Mordaunt", "HMS Mordaunt", -1, ENGLAND, true, false);
               break;

               case PERIOD_COLONIAL_POWERS:
                 GiveShip2Character(ch, "HMS_Surprise", "HMS Surprise", -1, ENGLAND, true, false);
               break;

               case PERIOD_REVOLUTIONS:
                 GiveShip2Character(ch, "HMS_Bellona", "HMS Bellona", -1, ENGLAND, true, false);
               break;

               case PERIOD_NAPOLEONIC:
                 GiveShip2Character(ch, "HMS_Victory", "HMS Victory", -1, ENGLAND, true, false);
               break;
             }
             SetCompanionIndex(pchar, -1, GetCharacterIndex(ch.id)));
           }
           else
             LogIt("You seem to have a pretty impressive squadron of your own. Looks like you won't be needing the promotion ship.");
But not if you already had a full fleet, in which case you get nothing.
 
Possibly significant, I've only got the officer after a promotion from Britain. Portugal and Holland both like me as well, I've risen to the top rank in both, and neither of them gave me an officer. On the other hand, I've a vague memory of getting the message about not needing the promotion ship. It may well have been that I had four ships at the time, if I went to the governor to get promoted before I sold the cargo from captured ships and then sold the ships. Or it may have been that what I would have been offered wasn't as impressive as my flushdeck frigate. In any case, it wasn't Britain doing the offering - most likely it was Portugal.
 
It was bugged and disabled for quite a while, yes, but was reinstated as per Beta 3:
Code:
Build 14 Beta 3:
- Bug Fixes:
  . Promotion Reward Ships fixed and reinstated by Pieter Boelen
That is when I simplified the code and fixed it so it shouldn't do weird stuff anymore.
Then the rewritten armor code messed up the portrait on the officer, but that has now been caught and fixed as per above as well. :yes

Possibly significant, I've only got the officer after a promotion from Britain. Portugal and Holland both like me as well, I've risen to the top rank in both, and neither of them gave me an officer. On the other hand, I've a vague memory of getting the message about not needing the promotion ship. It may well have been that I had four ships at the time
That would explain it, yes.
 
It seems this is fixed then :).
I see possebilities for perk unlocking in these codes too btw ;) .
 
Hey! That might be a good method of handling this differently:
Code:
  // Miscellaneous Abilities
   //==========================================================================
   ChrPerksList.list.Troopers.descr = "perkTroopers";  // GreatZen
   ChrPerksList.list.Troopers.condition.LongRangeGrappling = true; // PB: To prevent sacking fortless towns in the early game
   ChrPerksList.list.Troopers.rank = 20; // KK
   ChrPerksList.list.Troopers.cost = 4; // Levis
Because frankly that does not actually make sense and I only did it for gameplay purposes, eg. to prevent an early-game exploit.
 
yeah I was thinking about that one and trustworthy and basic land owner
and maybe also iron will

I will take a look at that soon and make a mod to test how that plays
 
Back
Top