• 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 Kralendijk women cowering

Hylie Pistof

Curmudgeon
QA Tester
Storm Modder
Pirate Legend
When I first visited Kralendijk in a new game the three women were in front of the Governors mansion but two of them were cowering and I could only talk to the one that was standing. Later a second woman stood up to talk but the third one never stood up until it was time to walk away.

This is an old problem from 2016 that has never been addressed.
 
Strange; I've never seen any of the women cowering, except possibly if there had been a fight and a citizen was hit.

If you're seeing this routinely, is it always the same one who stands and talks? If so, which one?
 
Hey! You are supposed to be on vacation. I first encountered this in 2016 and reported it 1 1/2 years ago so it can wait a little longer.

Yes it is always the blond one who stands and talks first. Later the one with the hat stands and talks but the one on the other side of the walkway never stands until she leaves.
 
And this was on your FIRST visit to Kralendijk? That sounds quite weird...
Maybe those women should be moved into a quest NPC group and be made immortal?
Maybe even give them some fists so they'll DEFINITELY have no need to cower?
 
I have a suspicion that their behavior it somehow tied to the Dutch and French soldiers going nuts after I entice them to fight on Marigot. They are especially bad in taverns where they kill patrons sitting at tables.
 
I have a suspicion that their behavior it somehow tied to the Dutch and French soldiers going nuts after I entice them to fight on Marigot. They are especially bad in taverns where they kill patrons sitting at tables.
That'd be surprising; there should be no French characters on Bonaire...?
 
They are on their respective islands. In the game I'm currently playing the French are relatively well behaved as they only wave their swords around, but the Dutch are quite aggressive and will kill people who are attacking me but still far away. This has caused some mayhem when one of my officers accidentally strikes a soldier who should not be there anyway.
 
I have a suspicion that their behavior it somehow tied to the Dutch and French soldiers going nuts after I entice them to fight on Marigot. They are especially bad in taverns where they kill patrons sitting at tables.
That's certainly what is doing it. I don't know enough about the AI system to fix the whole problem, but the cowering Kralendijk women can be fixed by assigning them to their own AI group. Put the attached file into "PROGRAM\Characters\init". Pressing F11 to do a reinitialisation might fix the problem in an ongoing game, otherwise the ladies should be fine when you start a new game.

I tested this by loading up a savegame in which I was at Philipsburg, going to Marigot and talking to a soldier to trigger a Dutch raid, then sailing to Kralendijk, where the women were indeed cowering - the first time I'de ever seen this. I put the 'LAi_group_MoveCharacter' lines into the console, reloaded the same savegame, triggered the console and followed the same procedure, and this time the Kralendijk women were standing properly. Then I added the lines to "SideQuest.c", started a new game, went to Marigot to trigger the raid, went to Kralendijk to visit the women, and again they were standing.

The next thought was, would triggering a French raid on Philipsburg similarly foul up the Blacque family? I haven't had time to try it yet, but I did have a quick look at their definitions, and they should be alright because they're already assigned to group "FRANCE_CITIZENS". By contrast, the Kralendijk women weren't assigned to any AI group, and there didn't seem to be a problem with those citizens of Kralendijk already assigned to "DOUWESEN_CITIZENS", so the Blacque family should be alright.

I've no idea why Rian Dekkers (the blonde in the blue dress) was already standing. But I do know why Lisebet Schefold (the one with the smaller bonnet) was standing after you'd been to see the governor - when you leave the townhall, she's programmed to initiate a dialog, which puts her into "Actor" mode, which brought her out of the cowering position. The other one has no programmed moves so she never recovered.
 

Attachments

  • SideQuest.c
    185.4 KB · Views: 258
Wow, that's some really weird stuff!

I wonder how difficult it would be to give each town its own LAi group, instead of having one per nation.
That probably wouldn't fix quite everything, but should at least would make the system less prone to messing itself up... :facepalm
 
There are a lot of towns! They would each need two AI groups, one for citizens and one for soldiers. Function 'InitGroups()' would become huge as it contains all the reaction codes for each group, e.g.:
Code:
   LAi_group_SetAlarmReaction("DOUWESEN_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY, LAI_GROUP_FRIEND);
   LAi_group_SetRelation("DOUWESEN_CITIZENS", "DOUWESEN_SOLDIERS", LAI_GROUP_FRIEND);
   LAi_group_SetRelation("DOUWESEN_SOLDIERS", "DOUWESEN_SOLDIERS", LAI_GROUP_FRIEND);
   LAi_group_SetRelation("DOUWESEN_SOLDIERS", LAI_DEFAULT_GROUP, LAI_GROUP_FRIEND);
   LAi_group_SetLookRadius("DOUWESEN_SOLDIERS", LAI_GROUP_GRD_LOOK);
   LAi_group_SetHearRadius("DOUWESEN_SOLDIERS", LAI_GROUP_GRD_HEAR);
   LAi_group_SetSayRadius("DOUWESEN_SOLDIERS", LAI_GROUP_GRD_SAY);
   LAi_group_SetAlarmReaction("DOUWESEN_SOLDIERS", "DOUWESEN_CITIZENS", LAI_GROUP_FRIEND, LAI_GROUP_FRIEND);
   LAi_group_SetPriority("DOUWESEN_CITIZENS", LAI_GROUP_PCITIZENS);
   LAi_group_SetPriority("DOUWESEN_SOLDIERS", LAI_GROUP_PGUARDS);

   LAi_group_SetLookRadius("DOUWESEN_SOLDIERS", LAI_GROUP_DEF_LOOK);
   LAi_group_SetHearRadius("DOUWESEN_SOLDIERS", LAI_GROUP_DEF_HEAR);
   LAi_group_SetSayRadius("DOUWESEN_SOLDIERS", LAI_GROUP_DEF_SAY);
There are already a few definitions for different towns, e.g. "DOUWESEN_PIRATE_SOLDIERS" and "DOUWESEN_PIRATE_CITIZENS", presumably to distinguish the Bonaire pirate settlement from Kralendijk. Incidentally, those last three lines look suspicious because every other group has the settings for the citizens there; the settings for soldiers are already coded a few lines up.
 
There are a lot of towns! They would each need two AI groups, one for citizens and one for soldiers. Function 'InitGroups()' would become huge as it contains all the reaction codes for each group
True; it would indeed become substantially larger. But is that an issue?
It's a fair bit of work though and there would need to be someone willing to do it. Finding someone for that is often a challenge... :unsure

Incidentally, those last three lines look suspicious because every other group has the settings for the citizens there; the settings for soldiers are already coded a few lines up.
Do citizens usually have those lines? If they do, do the "Douwesen" citizens have them?
If not, changing those to be for the citizens instead sounds like a simple first step to make.

I wouldn't be surprised if this has been wrong ever since the original game.
It wouldn't be the first time we find stock game code that is very nearly correct, but actually badly wrong due to some slight mistake of the original programmers.
 
True; it would indeed become substantially larger. But is that an issue?
It's a fair bit of work though and there would need to be someone willing to do it. Finding someone for that is often a challenge... :unsure
It also probably wouldn't solve the problem. Remember, the Kralendijk women currently aren't assigned to any group. The rest of the population of Kralendijk aren't cowering or trying to attack you, and they're all assigned to "DOUWESEN_CITIZENS". The reason for giving them their own group is that, if you happen to get into a fight with the general population (e.g. a random thug attacks you, one of your officers takes a shot at him and hits someone else) then the women won't get involved.

If the Blacque family misbehave after I've triggered a French raid in Philipsburg then I'll give them their own group as well, but pending an actual test, I reckon they should be alright.

Do citizens usually have those lines? If they do, do the "Douwesen" citizens have them?
If not, changing those to be for the citizens instead sounds like a simple first step to make.
Yes, other citizens usually have those three lines. "DOUWESEN_CITIZENS" doesn't have them because the lines refer to "DOUWESEN_SOLDIERS" instead.
 
It also probably wouldn't solve the problem. Remember, the Kralendijk women currently aren't assigned to any group. The rest of the population of Kralendijk aren't cowering or trying to attack you, and they're all assigned to "DOUWESEN_CITIZENS". The reason for giving them their own group is that, if you happen to get into a fight with the general population (e.g. a random thug attacks you, one of your officers takes a shot at him and hits someone else) then the women won't get involved.

If the Blacque family misbehave after I've triggered a French raid in Philipsburg then I'll give them their own group as well, but pending an actual test, I reckon they should be alright.
Fair enough.
I also remember there is some code in place to reset all those relations, either whenever you are at sea or when you enter another location.
Never mind on this one then...

Yes, other citizens usually have those three lines. "DOUWESEN_CITIZENS" doesn't have them because the lines refer to "DOUWESEN_SOLDIERS" instead.
Sounds like a good idea to fix that then. Cannot hurt, right? :cheeky
 
That sounds like the fix! I have never noticed any odd behavior from the Blacque family either.
 
Now confirmed: I started up another FreePlay test, went to Philipsburg and triggered a raid (and probably need to modify the dialog files which do it so that raids don't happen if France and Holland aren't at war). Then I went to Martinique, where all of the players in the Blacque family quest remained standing as normal and did not cower.

I also remember there is some code in place to reset all those relations, either whenever you are at sea or when you enter another location.
But it presumably doesn't work for characters who haven't been assigned to AI groups, such as the Kralendijk women. That does explain why the rest of the population of Kralendijk, along with the people of St. Pierre, don't care what happens on St. Martin - they are all in proper AI groups and are therefore correctly reset.
 
But it presumably doesn't work for characters who haven't been assigned to AI groups, such as the Kralendijk women. That does explain why the rest of the population of Kralendijk, along with the people of St. Pierre, don't care what happens on St. Martin - they are all in proper AI groups and are therefore correctly reset.
That makes sense. :yes
 
Back
Top