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

Confirmed Bug Masters at Arms: Alarmingly Frequent Officer Type

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
most of the officers I find in taverns are Master at Arms, then I put them into the position I want and they can learn on the job.
Can't surely say, because I usually asked the innkeeper for officers.
But I do have a vague memory that Masters at Arms are the most common type of officers.
I checked it out today, and masters-at-arms are alarmingly frequent.
This doesn't sound right.
Was it always like this?

I seem to remember running into all sorts.
Was quite a while ago since I played, but still...
 
Not sure if it's a bug, maybe it's like this because a landlubber can also be a good fighter.

So more people are possible to fit the Master at Arms description.

Or maybe it is a bug. :shrug
 
PROGRAM\LandEncounters\LandEnc_init.c:
Code:
    LandEncounters[n].id = "ENC_OFFICER";

   LandEncounters[n].char1.modelQuantity = 8;
   LandEncounters[n].char1.model1 = OFFIC_TYPE_BOATSWAIN;
   LandEncounters[n].char1.model2 = OFFIC_TYPE_CANNONEER;
   LandEncounters[n].char1.model3 = OFFIC_TYPE_QMASTER;
   LandEncounters[n].char1.model4 = OFFIC_TYPE_NAVIGATOR;
   LandEncounters[n].char1.model5 = OFFIC_TYPE_FIRSTMATE;
// MAXIMUS officers -->
   LandEncounters[n].char1.model6 = OFFIC_TYPE_CARPENTER;
   LandEncounters[n].char1.model7 = OFFIC_TYPE_DOCTOR;
   LandEncounters[n].char1.model8 = OFFIC_TYPE_ABORDAGE;
// MAXIMUS officers <--
   LandEncounters[n].char1.friend = true;
   LandEncounters[n].char1.isOfficer = true;
   LandEncounters[n].char1.cont = false;
   LandEncounters[n].char1.pistol = true;
   LandEncounters[n].char1.sword = true;
   LandEncounters[n].char1.type = "sit";
   LandEncounters[n].char1.Dialog = "Enc_Officer_dialog.c";
"Master At Arms" = OFFIC_TYPE_ABORDAGE = "deck fighter".

Change that top, for example, to:
Code:
   LandEncounters[n].char1.modelQuantity = 1;
   LandEncounters[n].char1.model1 = OFFIC_TYPE_NAVIGATOR;
Then start a new game.

If all works as I believe it is intended, you should then ONLY find Navigators available for hire.
If it's still plenty Master At Arms instead, that strongly suggests something isn't doing what it should.
Especially if all other officer types REALLY never show up then anymore.

I suspect "Master At Arms" might be what happens as "default" if something goes wrong.
 
Replaced OFFIC_TYPE_ABORDAGE with OFFIC_TYPE_DOCTOR. Started a new game, headed to the nearest tavern, began testing. It went like this:

Master-at-Arms
Boatswain
Navigator
Master-at-Arms
Master-at-Arms

Figured that was enough, went back to my previous playthrough.
 
Replaced OFFIC_TYPE_ABORDAGE with OFFIC_TYPE_DOCTOR.
You mean you changed it to this?
Code:
   LandEncounters[n].id = "ENC_OFFICER";

   LandEncounters[n].char1.modelQuantity = 8;
   LandEncounters[n].char1.model1 = OFFIC_TYPE_BOATSWAIN;
   LandEncounters[n].char1.model2 = OFFIC_TYPE_CANNONEER;
   LandEncounters[n].char1.model3 = OFFIC_TYPE_QMASTER;
   LandEncounters[n].char1.model4 = OFFIC_TYPE_NAVIGATOR;
   LandEncounters[n].char1.model5 = OFFIC_TYPE_FIRSTMATE;
// MAXIMUS officers -->
   LandEncounters[n].char1.model6 = OFFIC_TYPE_CARPENTER;
   LandEncounters[n].char1.model7 = OFFIC_TYPE_DOCTOR;
   LandEncounters[n].char1.model8 = OFFIC_TYPE_DOCTOR;
// MAXIMUS officers <--
   LandEncounters[n].char1.friend = true;
   LandEncounters[n].char1.isOfficer = true;
   LandEncounters[n].char1.cont = false;
   LandEncounters[n].char1.pistol = true;
   LandEncounters[n].char1.sword = true;
   LandEncounters[n].char1.type = "sit";
   LandEncounters[n].char1.Dialog = "Enc_Officer_dialog.c";
That does indeed suggest there is something happening that's making Master-at-Arms show up even when the original code isn't asking for that.

Thanks for trying. :doff
 
You mean you changed it to this?
Code:
LandEncounters[n].id = "ENC_OFFICER";

LandEncounters[n].char1.modelQuantity = 8;
LandEncounters[n].char1.model1 = OFFIC_TYPE_BOATSWAIN;
LandEncounters[n].char1.model2 = OFFIC_TYPE_CANNONEER;
LandEncounters[n].char1.model3 = OFFIC_TYPE_QMASTER;
LandEncounters[n].char1.model4 = OFFIC_TYPE_NAVIGATOR;
LandEncounters[n].char1.model5 = OFFIC_TYPE_FIRSTMATE;
// MAXIMUS officers -->
LandEncounters[n].char1.model6 = OFFIC_TYPE_CARPENTER;
LandEncounters[n].char1.model7 = OFFIC_TYPE_DOCTOR;
LandEncounters[n].char1.model8 = OFFIC_TYPE_DOCTOR;
// MAXIMUS officers <--
LandEncounters[n].char1.friend = true;
LandEncounters[n].char1.isOfficer = true;
LandEncounters[n].char1.cont = false;
LandEncounters[n].char1.pistol = true;
LandEncounters[n].char1.sword = true;
LandEncounters[n].char1.type = "sit";
LandEncounters[n].char1.Dialog = "Enc_Officer_dialog.c";

Yup, that's what it looked like.

Maybe it has to do with the master-at-arms post being the equivalent of "none," and the game failing to classify the officer, thereby falling back to "none?" Dunno what to make of any of this.
 
Maybe it has to do with the master-at-arms post being the equivalent of "none," and the game failing to classify the officer, thereby falling back to "none?" Dunno what to make of any of this.
Something like that sounds very plausible. :yes
 
Back
Top