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

Discussion Spanish soldiers on Isla Mona

Captain Tiems

Landlubber
I'm doing the Isla mona quest, and at the moment I changed my clothes, get out of the warehouse and then get to the outskirts, there is one English solier attacking me, and three Spanish soldiers. I think the Spanish soldiers aren't supposed to be there
 
I remember that issue as well. The problem is that by default, "smuggling_nation" is set to Spain so that if you right-click on the island, it shows up as Spanish. Random soldiers show up as Spanish; those specifically placed by the story quest code are English. So I added a line in "StartStoryline.c" to change "smuggling_nation" to England, and also put one into "quests_reaction.c" to set it back to Spain when the quest ends.

@Captain Tiems: that "compile.log" will definitely be useful as it will tell us which version of the game you're using. If it's Beta 4.0 then it won't have those corrections. If it's Beta 4.1 from 7th January then the corrections should be in place, in which case something else is going wrong and I'll need to look into this. Do you have a savegame from shortly before you went to Isla Mona? You don't need to post it, but if you have such a position, and if you're using Beta 4.0 or earlier, I can probably give you a command to go into "console.c" which will solve the problem.
 
I checked, and I don't have the save anymore. In the starting screen it does say Build 14 Beta 4.1 28 July 2016
That is a previous version of this: Mod Release - Build 14 Beta 4.1 WIP [Last Update: 7 January 2017] | PiratesAhoy!
If I recall, it did not yet include @Grey Roger's updates because he only made that fix after 28 July 2016.

The 28 July 2016 version was generally quite a stable and playable version, though the 7 January 2017 version is even better (especially with @Grey Roger's extra ZIP archive!).
The newer version does require you to start a new game, so I recommend waiting with upgrading until AFTER you are finished with your current play-through.
The version you've got is already pretty good. ;)
 
Put this into "console.c":
Code:
Islands[FindIsland("IslaMona")].smuggling_nation = ENGLAND;
It should go just after the 'int limit;' line. Then, while running your game, press F12. You might even get away with going into the tavern, pressing F12 to activate "console.c", then leaving the tavern again.
 
Update: during a recent playthrough, and with that fix in place, I was still seeing Spanish soldiers on Isla Mona. Also, there was a Spanish ship moored next to the lighthouse, and fort commander Wilfred Burman was in Spanish uniform. Perhaps their uniforms are set before "StartStoryline.c" changes "smuggling_nation" because a 'DumpAttributes' on the island showed its smuggling nation to be correctly set to 0, i.e. ENGLAND. Or perhaps their uniforms are set by something else. I had to do rather more than just change "smuggling_nation" when I set Isla Mona to belong to Pirates in "Ardent".

What did work was to change their nationality, and where necessary their models, directly at quest case "ir_mona":
Code:
           Characters[GetCharacterIndex("Randolf Blecher")].nation = ENGLAND;
           Characters[GetCharacterIndex("Wilfred Burman")].nation = ENGLAND;
           SetModelFromID(CharacterFromID("Wilfred Burman"), "Offic_Eng_16");
           for(n = 1; n <=20; n++)
           {
               sld = characterFromID("Mona_patrol_" + n);
               sld.nation = ENGLAND;
               SetModelFromID(sld, "Soldier_Eng"+(rand(4)+2)+"_16");
           }
The Spanish ship actually belongs to port commander Randolf Blecher, who uses a model that is not a soldier uniform, so he just needs his nation changed to make the ship show an English flag. Everybody else forcibly gets an English period-suitable uniform.

@Bartolomeu o Portugues: any objection to putting this into the next update, or would you prefer to fix the problem some other way?
 
Perhaps their uniforms are set before "StartStoryline.c" changes "smuggling_nation" because a 'DumpAttributes' on the island showed its smuggling nation to be correctly set to 0, i.e. ENGLAND.
I do believe that is the case. That explains why I added this line in the JackSparrow version of that file:
Code:
CaptureTownForNation("Tortuga", PIRATE);
That function takes care of swapping out all the soldier uniforms (via 'SetTownGarrisonForNation' and 'SetTownNation').
I would recommend using it in this case too, except IslaMona doesn't have a town that could have its nation changed. :facepalm
 
In "StartStoryline.c" for "Ardent", I had to do all this:
Code:
   Locations[FindLocation("IslaMona_port")].townsack = "Khael Roa";
   Locations[FindLocation("IslaMona_port_exit")].townsack = "Khael Roa";
   Locations[FindLocation("IslaMona_passage")].townsack = "Khael Roa";
   Locations[FindLocation("IslaMona_residence")].townsack = "Khael Roa";
   Locations[FindLocation("IslaMona_headport_house")].townsack = "Khael Roa";
   Locations[FindLocation("Fort_Entry")].townsack = "Khael Roa";
   Locations[FindLocation("IslaMona_fort")].townsack = "Khael Roa";

   Towns[GetTownIndex("Khael Roa")].gov = "Wilfred Burman";

   CaptureTownForNation("Khael Roa", PIRATE);
   Islands[FindIsland("IslaMona")].smuggling_nation = PIRATE;
The 'CaptureTownForNation' generates an on-screen message. For "Ardent", this says that Cozumel has been captured by pirates, which is fine. If I were to do the same for "Assassin", it would say that Cozumel has been captured by England, which is not fine because England tries to capture Cozumel during the story - and you find that France got there first.

The method I used, correcting everyone's nationality and uniform within "quests_reaction.c", did have the advantage that it took effect without me having to restart the entire story. It's also a bit less messy than linking Isla Mona to Cozumel, especially when, unlike in "Ardent", Cozumel is used in the story so we want to avoid any side-effects there.

Later on, Isla Mona's "smuggling_nation" is set to SPAIN. That won't change anyone's uniform, but by then Isla Mona is sealed off so you won't be seeing English soldiers on Spanish Isla Mona. It just means that if you right-click on Isla Mona on the archipelago map, it shows Spain's flag instead of England's.
 
In "StartStoryline.c" for "Ardent", I had to do all thi
Ahaaa; nice! I completely forgot about that one, even though I think I helped Jack Rackham with exactly that for his town. :facepalm

The method I used, correcting everyone's nationality and uniform within "quests_reaction.c", did have the advantage that it took effect without me having to restart the entire story. It's also a bit less messy than linking Isla Mona to Cozumel, especially when, unlike in "Ardent", Cozumel is used in the story so we want to avoid any side-effects there.
Your solution looks like it should work fine. :onya

Later on, Isla Mona's "smuggling_nation" is set to SPAIN. That won't change anyone's uniform, but by then Isla Mona is sealed off so you won't be seeing English soldiers on Spanish Isla Mona. It just means that if you right-click on Isla Mona on the archipelago map, it shows Spain's flag instead of England's.
That also makes it more likely for Spanish ships to be generated around the island.
 
Back
Top