• 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 [WIP] Officers do not join in boarding

Ahoy, I am playing the 9/23 with Levis' 10/3 fixes. I have done multiple boarding with tavern hired officers in Free Play, an none of the officers board with me.
 
@Grey Roger the command I gave should show some info on the screen. It didn't show the officers in there?
No. I modified the command slightly, adding quote marks before and after the "ch.id" just in case a blank is reported (shouldn't happen for an ID but I'm in the habit of doing that for any such reports), and changing the command to 'traceandlog' so that the results go into "compile.log". Which means you get to see the evidence. Plenty of "fantom character" reports, but no officers.
 

Attachments

  • compile.log
    9.4 KB · Views: 191
That should indeed be proof enough that the officers are not loaded into the scene at all. :(
 
@Levis Could changing the captain crew assignments in officer types did this? Players used to have abordage crew, but it was changed to sailors.

Just really curious where this strange bug could have come from, to stop officers from joining in boarding.
 
Last edited:
I just need a few hours with my game to figure this out. I haven't had that in a while. and this weekend it's going to be hard also. But hopefully we'll fix it soon.

This function seems to place the officers:
Code:
void PlaceOfficers(string locationID, string chLocType, bool noOfficers, bool noFight)
{
    if(noOfficers) return;
    ref mchr = GetMainCharacter();

    int mlimit;// restrict officers to PBC limits 22AUG06
    int i, idx;
    if(CheckAttribute(mchr,"mlimit")) mlimit = sti(mchr.mlimit);// mlimit will be gone if we've already run SetEndingStats()
    else mlimit = 1;

    for (i = 1; i <= OFFICER_MAX; i++)
    {
        idx = GetOfficersIndex(mchr, i);
        if(idx<0) continue;
        // boal 05.09.03 offecer need to go to abordage -->
        if(makeint(Characters[idx].AbordageMode) == 0) continue;

// added by MAXIMUS [abordage MOD] -->
        if(noOfficers==true) continue;
        if(IsCompanion(&Characters[idx])) continue;
        if(IsOfficerCompanion(&Characters[idx])) continue;
        if(IsOnShoreLeave(&Characters[idx])) continue;
        if(IsOfficerOnShoreLeave(&Characters[idx])) continue;
// added by MAXIMUS [abordage MOD] <--

        mlimit = mlimit - 1;// first boarder will be the player character - Note this shouldn't be saved
        if(mlimit<1) continue;

        // boal 05.09.03 officer need to go to abordage <--
        DeleteAttribute(&Characters[idx], "location");
        Characters[idx].location = locationID;
        Characters[idx].location.group = "rld";

        int startlocnum = 1;
        int locnum = startlocnum;
        Characters[idx].location.locator = chLocType + locnum;
        ChangeCharacterAddressGroup(&Characters[idx], locationID, "rld", Characters[idx].location.locator);
        locnum++;
        if(locnum>=GetBoardingLimit(FindLocation(locationID))/2) locnum = startlocnum;
        if(noFight) SendMessage(&Characters[idx], "lsl", MSG_CHARACTER_EX_MSG, "ChangeFightMode", 0);
    }
}

If someone wants to help me please download this file and place it in: ..\PROGRAM\Loc_ai
Find an encounter and board it. Once the boarding has started and you are missing your officers please post the compile log (preferbly do nothing after it) so I can check what is going wrong. That could help me.
This file contains a lot of debugging code so I don't suggest using it normally.... it's compatible with my latests fixes zip.
 

Attachments

  • LAi_boarding.c
    94.1 KB · Views: 221
I won't have time to do any boarding for a while, but I uploaded a savegame in the first post of this thread:
Fix in Progress - Surrendering Captains have wrong or no dialog | PiratesAhoy!
Disable "Realistic Abilities" so that "Instant Board" is available, then load that savegame, which puts you on the worldmap. Refuse combat with the French group that wants to attack you, then go to 3D sailing, where you'll be ready to attack a convoy as part of the "Ardent" storyline. You can then instant-board the ship of your choice and observe the lack of officers.

Or you can accept combat with the French group, which would probably not do the story any good but which will allow you to instant-board a non-quest ship for comparison.
 
I wont be able to do the testing untill probably sunday evening or so. so thats why I hope someone like @Skyworm or @Cassadar or @Joer could test this for me
 
@Cassadar the officers weren't in the boarding scene?
from what I see here I suspect there would be 1 officer.
 
Yes, they weren't there; three officers though, my party was full.
Question, does your file also work if I attack a fort? Last time I did this with the September WIP they actually did show up at a specific location (only that single one location though, nowhere else; even not in town). I could try this and see what happens if you want; if not, then not.
 
Last edited:
Question, does your file also work if I attack a fort? Last time I did this with the September WIP they actually did show up at a specific location (only that single one location though, nowhere else; even not in town).

Officers not fighting with the player in all locations when you are Capturing a Colony has been a problem for a long time -

see this post:- Solved - Making Town Capture Boarding Locators | Page 17 | PiratesAhoy!

No one has been able to work out why they appear in some locations and not in others. :whipa


:cheers
 
@Talisman
Didn't know that. I mentioned it because everytime I captured Point a Pitre in the July version my officers showed up in every screen during the fort fights. My boarding party was completely missing though. The crew finally showed up in the town and plantage screen, but in return my officers were missing.

Now in the September WIP my boarding party is everywhere in the fort, except for the "stairwell" section. This is the only location where my officers show up now.
Thought it was related; just forget my comment then. :doff
 
Last edited:
Yes, they weren't there; three officers though, my party was full.
Question, does your file also work if I attack a fort? Last time I did this with the September WIP they actually did show up at a specific location (only that single one location though, nowhere else; even not in town). I could try this and see what happens if you want; if not, then not.
The problem as I suspected is locators. For some reason the game decides to place them on wrong locators. I will try to look into it asap
 
Any update on this?

I've still been playing with 28th July + 23rd September ZIP + 7th October ZIP (second version). And a few recent boarding actions did something strange. It turns out that if you get the same boarding deck twice on the same ship, the officers do join in, on the second one. The first example was where an enemy ship boarded me, I won the first deck fight, then it went to me boarding him using the same deck again, and this time my officers were there. The second example was where I boarded a ship large enough to have two cargo hold decks and the officers joined me in the second hold. In both cases, the officers disappeared again when I went to the next, non-duplicate deck.
 
Interesting observation, @Grey Roger! Then perhaps the officers ARE being logged in, but too late.
So the second time, they do appear because they were still logged in from the previous time.
 
like I said before they are logged in but their locator isn't right. as soon as I have time i want to look at this, unless @LarryHookins or someone else wants to look at it.
 
If it's the locators, why do they successfully log in on the same deck with the same locators on the second attempt? For that matter, why do they successfully appear on the same deck on the same locators in the 28th July and previous versions?
 
Back
Top