• 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 Relations with nations change in Vogelstruijs

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
During "Vogelstruijs", when you board the ship and the captain spots you, you become hostile to both England and Holland. Here's why:
Code:
case "birdhunt3":
bQuestDisableMapEnter = true;
UpdateRelations();
Group_CreateGroup("Skipper1");
Group_AddCharacter("Skipper1", "Skipper1");
Group_SetGroupCommander("Skipper1", "Skipper1");
Group_SetTaskRunAway("Attack");
Group_LockTask("Skipper1");
Group_SetAddress("Skipper1", "Hispaniola", "Quest_ships", "quest_ship_6");
SetActualRMRelation("Skipper1", REL_WAR);
Sea_LoginGroupNow("Skipper1");
characters[GetCharacterIndex("Skipper")].nosurrender = 2;
SetCharacterRelationBoth(GetCharacterIndex("Skipper1"),GetMainCharacterIndex(),RELATION_ENEMY);
if(GetRMRelation(GetMainCharacter(), HOLLAND) > REL_WAR) SetRMRelation(GetMainCharacter(), HOLLAND, REL_WAR);
"Skipper1" always seems to be English by default. If he's English then he's a traitor, helping Spain to attack an English colony, so if anything England should reward you! Holland shouldn't care as he's a smuggler. And anyway, about the first thing Contre Amiral Beauregard says is that nobody must know what you're up to, which you've achieved unless you said the wrong thing to the captain's wife when you burgled his house, so neither England nor Holland should change their relations to you at all. (If you did say the wrong thing to Mrs. Skipper1 and she called the guards then Holland becomes hostile there, which is reasonable; you've been caught red-handed breaking into someone's house in a Dutch town so they now regard you as a criminal.)

So I'd be inclined to remove both "SetActualRMRelation("Skipper1", REL_WAR);" and "if(GetRMRelation(GetMainCharacter(), HOLLAND) > REL_WAR) SetRMRelation(GetMainCharacter(), HOLLAND, REL_WAR);" from this part of the quest.
 
There are some clear errors here as well:

Code:
SetActualRMRelation("Skipper1", REL_WAR);
^ That is a bug similar to one you caught before in the Hornblower storyline. The SetActualRMRelation function is NOT supposed to be applied to characters, but on NATIONS.
The character isn't a nation and therefore the game applies the code to the default England. So that part is definitely a bug.
I think this should have been:
Code:
SetCharacterRelationBoth(GetCharacterIndex("Skipper1"),GetMainCharacterIndex(),REL_WAR);
That should turn the ship hostile without turning Holland hostile too.
But that is already in there a few lines down. :facepalm

Also in PROGRAM\Characters\init\SideQuest.c this line should be added because this character didn't have a .nation attribute:
Code:
  ch.old.name = "Barend";
   ch.old.lastname = "Hesselink";
   ch.name = TranslateString("","Barend");
   ch.lastname = TranslateString("","Hesselink");
   ch.id     = "Skipper";
   ch.model   = "man8";
   ch.sex = "man";
   ch.sound_type = "sailor";
   GiveItem2Character(ch, "blade1");
   ch.equip.blade = "blade1";
   ch.location   = "none";
   ch.location.group = "";
   ch.location.locator = "";
   ch.Dialog.Filename = "Watch_dialog.c";
   ch.greeting = "Gr_Pieter Boelen";
   ch.rank    = 3;
   ch.nation = HOLLAND; // <-- THAT LINE <--
This probably doesn't make much of a difference, because this is a different character than the one used as captain.

In any case, what you propose sounds sensible to me, so go right ahead. :doff
 
There are some clear errors here as well:

Code:
SetActualRMRelation("Skipper1", REL_WAR);
^ That is a bug similar to one you caught before in the Hornblower storyline. The SetActualRMRelation function is NOT supposed to be applied to characters, but on NATIONS.
The character isn't a nation and therefore the game applies the code to the default England. So that part is definitely a bug.
I think this should have been:
Code:
SetCharacterRelationBoth(GetCharacterIndex("Skipper1"),GetMainCharacterIndex(),REL_WAR);
That should turn the ship hostile without turning Holland hostile too.
But that is already in there a few lines down. :facepalm
Yes, which is why I thought the "SetActualRMRelation" line was intended to set the skipper's nation, whatever that may be, at war with you as well. But since the whole operation is supposed to have been secret then that nation shouldn't know about it.

I already deleted that line from my own copy as a workround/cheat because I'd got as far as the town hall in La Tortue to start the "Silver Train" quest, checked my relations to see if I could get a promotion out of France while I was there, and found that England didn't like me any more. So I backtracked through some savegames to find out why, got rid of the "SetActualRMRelation" line, then replayed "Vogelstruijs". The fact that it wants to set Holland against me didn't bother me because, being Portuguese, I'm not exactly on good terms with Holland anyway, and stealing Gherard de Jongh's ship at the end of the "Statuette" quest didn't help things. :rpirate
 
There are some clear errors here as well:

Code:
SetActualRMRelation("Skipper1", REL_WAR);
^ That is a bug similar to one you caught before in the Hornblower storyline. The SetActualRMRelation function is NOT supposed to be applied to characters, but on NATIONS.
The character isn't a nation and therefore the game applies the code to the default England. So that part is definitely a bug.
I think this should have been:
Code:
SetCharacterRelationBoth(GetCharacterIndex("Skipper1"),GetMainCharacterIndex(),REL_WAR);
That should turn the ship hostile without turning Holland hostile too.
But that is already in there a few lines down. :facepalm
Okay, what and where is this file located again? :oops:
 
Here's "quests_side.c" with both the "SetActualRMRelation" line and the line which makes Holland hostile commented out - not entirely removed in case someone figures out why they were there and wants them back.
 

Attachments

  • quests_side.c
    361 KB · Views: 128
Cheers! The SetActualRMRelation line is clearly just an error and can be safely erased.
The other might have been intentional as part of the former La Croix storyline.
But that one was never finished any further and now that this is a generic sidequest, it indeed is better without that line. :onya
 
Back
Top