• 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 Standard Storyline: Considered a Pirate for Playing Main Quest without LoM

Pieter Boelen

Navigation Officer
Administrator
Storm Modder
Hearts of Oak Donator
After my rewrites to Nation Relations and such, Silehard will now need to give you a LoM when you join him to prevent unintended relation drops because of you actions throughout the story.

Does anyone have any idea at what point you should LOSE that LoM again?
It has been too long since I played this.
 
:ahoy


Probably the most sensible place is when you and Danielle question Silehard in his bedroom :

Get details from the governor(top)
Sail to Jamaica – on Land Ho – Transported to Beach – Danielle walks up and talks to you

Transported to Silehard’s bedroom – Silehard talks to you – calls the guards – Fight – Quest Book Update

Leave by bedroom door – Transported to shore – Danielle talks to you - Quest Book Update

Sail to Bridgetown, Barbados

EITHER - Talk to the soldiers ask about the man accused of murder who ran away - Quest Book Update – then

OR Talk to tavernkeeper – ask about death of Giraldo Figuiera – Quest Book Update - then

Talk to Ronald Blacklock, Prison Commander – Fight – Quest Book update

Outside prison fight soldiers

Go to Port – Set sail – Fight Frigate sailing away from Bridgetown & Attacking you - Board it and get Idol from captain - or sink it and as soon as ship sinks you are given idol

Sail to Lighthouse Bay – On Shore Clement Aurentius talks to you – Quest Book Update


I think this is the code:

Code:
case "to_secret_oxbay_shore_complete":
       LAi_SetActorType(characterFromID("danielle"));
       LAi_type_actor_Reset(characterFromID("danielle"));
       LAi_LocationFightDisable(&locations[FindLocation("Quest_Residence")], true);

       PlaceCharacter(characterFromID("danielle"), "goto");
       LAi_ActorDialog(characterFromID("Danielle"), pchar, "", 5.0, 0);
     break;

     case "to_secret_oxbay_shore_complete2":
       LAi_type_actor_Reset(characterFromID("danielle"));
       LAi_ActorDialog(characterFromID("Danielle"), pchar, "", 5.0, 0);
     break;

     case "both_to_residence_complete":
       pchar.quest.main_line = "both_to_redmond_residence";
       StorePassengers(pchar.id);
       LAi_SetOfficerType(characterFromID("Danielle"));

       // LDH - 10Apr09
       LAi_SetActorType(characterFromID("robert christopher silehard"));         // prevents errors in LAi_ActorDialog()
//       LAi_SetLoginTime(characterFromID("robert christopher silehard"), 0.0, 24.0);   // makes Silehard appear in bedroom
//       LAi_RemoveLoginTime(characterFromID("robert christopher silehard"));       // suggested by SJG

       ChangeCharacterAddress(characterFromID("Robert Christopher Silehard"), "Quest_residence", "goto6");

       Locations[FindLocation("Quest_Residence")].reload.l1.disable = 1;
       DoQuestReloadToLocation("Quest_residence", "reload", "reload1", "both_to_residence_complete_2");
       characters[GetCharacterIndex("Robert Christopher Silehard")].Dialog.CurrentNode = "both_talk_with_Silehard_node";
       pchar.quest.main_line = "both_talk_with_Silehard";
       LAi_ActorDialog(CharacterFromID("Robert Christopher Silehard"), pchar, "", 5.0, 0);
       ChangeCharacterAddress(CharacterFromID("Danielle"), "Quest_residence", "goto4");
       Locations[FindLocation("Greenford_town")].reload.l9.close_for_night = 0;
     break;

     case "both_to_residence_complete_2":
       LAi_SetActorType(characterFromID("robert christopher silehard"));
       LAi_ActorDialog(characterFromID("robert christopher silehard"), pchar, "", 5.0, 1.0);
     break;

     case "both_escape_from_redmond_complete":
       PlaceCharacter(characterFromID("danielle"), "goto");
       pchar.quest.main_line = "both_escape_from_redmond";
       LAi_SetActorType(characterFromID("danielle"));
       LAi_ActorDialog(characterFromID("Danielle"), pchar, "", 5.0, 0);
       LAi_group_SetRelation("ENGLAND_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_FRIEND);
       AddQuestRecord("Revenge_for_Silehard", 4);
       if(AUTO_SKILL_SYSTEM)
       {
         AddPartyExpChar(pchar, "Leadership", 5000);
         AddPartyExpChar(pchar, "Sneak", 50);
       }
       else { AddPartyExp(pchar, 5000); }
       Locations[FindLocation("Redmond_Town_01")].reload.l13.disable = true;
       LAi_RemoveLoginTime(characterFromID("robert christopher silehard"));       // suggested by SJG
     break;

     case "to_idol_complete":
       ChangeCharacterAddress(characterFromID("Danielle"), "none", "none");
     break;

     case "return_idol_from_frigate_complete":
       pchar.quest.return_idol_from_frigate1.over = "yes";
       pchar.quest.return_idol_from_frigate.over = "yes";
       Island_SetReloadEnableGlobal("Oxbay", true);
       bQuestDisableMapEnter = false;   //CTM
       AddQuestRecord("Revenge_for_Silehard", "8");
       ChangeCharacterAddress(characterFromID("researcher"), "oxbay_lighthouse", "goto24");
       GiveItem2Character(pchar, "idol");
       if(AUTO_SKILL_SYSTEM) { AddPartyExpChar(pchar, "Leadership", 30000); }
       else { AddPartyExp(pchar, 30000); }

       iForceDetectionFalseFlag = 0; // KK

       pchar.quest.main_line = "blaze_search_danielle_again";

       pchar.quest.to_lighthouse_to_meet_danielle_before_storm.win_condition.l1 = "location";
       pchar.quest.to_lighthouse_to_meet_danielle_before_storm.win_condition.l1.location = "Oxbay_lighthouse";
       pchar.quest.to_lighthouse_to_meet_danielle_before_storm.win_condition = "to_lighthouse_to_meet_danielle_before_storm";
     break;



:cheers
 
Thanks! That sounds about right.
I was going tackle this I've today, but got sidetracked by performance stuff.
That might keep me occupied a while longer.... :facepalm
 
I'm adding the LoM here in the Standard quests_reaction.c file:
Code:
    case "silehard_Story_Oxbay_Captured_15":
       PChar.Quest.Story_1stTaskReceived = "1";
       CloseQuestHeader("Story_OxbayCaptured");
       SetQuestHeader("Story_1stTaskReceived");
       AddQuestRecord("Story_1stTaskReceived",1);
       Pchar.quest.Story_1stTaskPayment = "10000";

       PChar.quest.StartAdventure = "complete";
       PChar.quest.StartAdventure.over = "yes";

       PChar.quest.Silehard_meeting = "done"; // SJG Jan 09
       SetRank(&PChar, iNation, GetOldRank(PChar, iNation)); // PB: To prevent gameplay issues
And expanded Silehard's dialog too:
Code:
"I assure you, Captain, you'll be compensated. For now, I will provide you with a Letter of Marque to indicate if necessary that you are acting on my behalf. But don't try to fool me.

As for England turning hostile and losing your LoM, I already found a spot where that happens:
Code:
    case "prepare_escape_from_greenford":
       PChar.vcskip = true; // PB
// KK -->
       //LAi_group_SetRelation("ENGLAND_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_FRIEND);
       LAi_group_SetRelation("ENGLAND_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
// <-- KK
       LAi_group_SetRelation("ENGLAND_CITIZENS", LAI_GROUP_PLAYER, LAI_GROUP_FRIEND);
       if(GetRMRelation(PChar, ENGLAND) > REL_WAR) SetRMRelation(PChar, ENGLAND, REL_WAR); // RM - SetNationRelation2MainCharacter(ENGLAND,RELATION_ENEMY);
       LeaveService(PChar, ENGLAND, false); // RM
     break;
But as per @Talisman's suggestion, I'll move it here instead:
Code:
    case "silehard_escape_complete":
       AddQuestRecord("Revenge_for_Silehard", 3);
       LAi_LocationFightDisable(&locations[FindLocation("Quest_Residence")], false);
       ChangeCharacterAddress(characterFromID("Robert Christopher Silehard"), "Redmond_residence", "goto8");
       //Locations[FindLocation("Redmond_town_01")].reload.l6.disable = 1;
       LAi_QuestDelay("soldier_in_residence", 1.5);
       ChangeCharacterAddress(characterFromID("researcher"), "oxbay_lighthouse", "goto24");

       if (CheckCharacterItem(PChar, "Trade_Passport"))   TakeItemFromCharacter(pchar, "Trade_Passport");   // PB: Clearly no longer an honourable merchant
       if(GetRMRelation(PChar, ENGLAND) > REL_WAR) SetRMRelation(PChar, ENGLAND, REL_WAR); // RM - SetNationRelation2MainCharacter(ENGLAND,RELATION_ENEMY);
       LeaveService(PChar, ENGLAND, false); // RM
     break;
And I'm updating the questbook text to match:
Code:
text.t3=The scoundrel Silehard has slipped away. So, unfortunately, we didn't get the information we're looking for. Worse still, he will undoubtedly send out a warrant for our arrest. English ports will no longer be safe for us, so we had better escape quickly to our ships while we still can!

Does that sound about right? Any other potential related issue that need to be tackled before we can consider this on OK again?
For example, does the story not eventually turn you into a bit of a pirate? Should we perhaps make the pirates Wary to you at that point so you have somewhere to go?
 
Just curious, wouldn't fighting the guard actually make you lose the LoM already?
 
Just curious, wouldn't fighting the guard actually make you lose the LoM already?
No, why? Actions ashore generally don't affect nation relations so much.

You can kill all the town guards in a nation's town and that nation will still not turn hostile.
I'm not saying it should STAY that way though (preferably the opposite).
That's another wish of mine for Beta 5.
 
Does that sound about right? Any other potential related issue that need to be tackled before we can consider this on OK again?
For example, does the story not eventually turn you into a bit of a pirate? Should we perhaps make the pirates Wary to you at that point so you have somewhere to go?


:thumbs1

That sounds good

Do you think Pirate should be relations should be changed after you have captured Bridgetown. - To Friendly from Wary ( after you loose the LoM)

But what nation are Silehard and his fleet at Cozumel - are they Pirates ? :pflag - I can't remember:read:shrug


:cheers
 
Do you think Pirate should be relations should be changed after you have captured Bridgetown. - To Friendly from Wary ( after you loose the LoM)
We may want to avoid setting the pirates Friendly because then it is probably too easy to be branded a pirate by the game.
Are you saying the pirates already DO turn Wary? If so, I suppose no further change is required there.

But what nation are Silehard and his fleet at Cozumel - are they Pirates ? :pflag - I can't remember:read:shrug
Not entirely sure... from a story perspective, should Silehard not remain English?
Of course his companions are known pirates.... :facepalm

Maybe these things will just need to be addressed on a case-by-case basis as they occur during people's testing.
 
We may want to avoid setting the pirates Friendly because then it is probably too easy to be branded a pirate by the game.
Are you saying the pirates already DO turn Wary? If so, I suppose no further change is required there.

I can't remember - though I suppose it used to depend on what flag you were flying when you Captured Bridgetown - if you were flying a pirate flag - would that have made pirates like you more ?

:rumgone
 
if you were flying a pirate flag - would that have made pirates like you more ?
I never did quite understand how the old system worked, but I don't think that would be the case.
The flag you fly definitely didn't matter at the time. I just wonder if you automatically used to gain pirate points for something against England.

Either way, all that behaviour has been thrown out of the window by now so whatever it used to be, it isn't anymore...
 
In the original game, you switched to Pirate flag after escaping from Greenford with the idol and, since you couldn't change flags yourself, you'd still have been flying it when you captured Greenford. Pirates still hated you and could attack you when you were on the way to Khael Roa, not least because sailing from Greenford to Khael Roa took you rather close to Quebradas Costillas.

Silehard retains the British flag, both during the counter-attack on Bridgetown and on his flagship at Cozumel. The other ships at Cozumel are pirates, though. (As I recall, one of them is the pirate boss from Nevis.)

The only minor annoyance with the new system is that when I play "Tales of a Sea Hawk", I regard myself as a loyal British citizen and Silehard as the traitor, and so keep the British flag up. (Sometimes I also pay a diplomat somewhere to make it official.) But that means fighting the British ships during the Bridgetown counter-attack is now a major act of piracy. (If the command ship surrendered, Captain Tomlinson protested that I'd attacked a British ship under a British flag, despite the fact that he had attacked me. And then I hired him as an officer. xD) Oh well, since Bridgetown is captured for Personal nation regardless of what flag you were flying at the time, I suppose I'll have to use Personal flag for that battle. The Dutch flag, my other alternative at that point in the game, won't work any more either because Holland is allied to Britain. Incidentally, this is probably going to foul up my entire normal game plan, which involves getting LoM's from the whole alliance - Britain, Holland and Portugal. I suspect that the Bridgetown incident is going to cost me the whole lot. :(
 
In the original game, you switched to Pirate flag after escaping from Greenford with the idol and, since you couldn't change flags yourself, you'd still have been flying it when you captured Greenford. Pirates still hated you and could attack you when you were on the way to Khael Roa, not least because sailing from Greenford to Khael Roa took you rather close to Quebradas Costillas.
That sounds like the stock game alright. No freedom whatsoever. :facepalm

Silehard retains the British flag, both during the counter-attack on Bridgetown and on his flagship at Cozumel. The other ships at Cozumel are pirates, though. (As I recall, one of them is the pirate boss from Nevis.)
One of them indeed IS the pirate boss from Nevis, that much I remember.
What I do not know is if indeed there would be a fleet consisting of a flag ship under an English flag with a bunch of extra ships under a Pirate flag.
If so, they might end up fighting against each other now. I'm afraid we'll have to see what happens when somebody gets to that point and then address the situation as required.
I totally expect that tweaks will need to be made for quest purposes here and there. We'll need to find the examples before being able to sort them out though....

The only minor annoyance with the new system is that when I play "Tales of a Sea Hawk", I regard myself as a loyal British citizen and Silehard as the traitor, and so keep the British flag up. (Sometimes I also pay a diplomat somewhere to make it official.) But that means fighting the British ships during the Bridgetown counter-attack is now a major act of piracy.
If you pay the diplomat, it should still work. If not, then indeed continuing with an English flag will get you into a world of trouble.
After all, you may know that you're the loyal one and Silehard is the traitor, but Silehard hasn't been discredited yet so nobody else knows. Least of all England's allies.

If the command ship surrendered, Captain Tomlinson protested that I'd attacked a British ship under a British flag, despite the fact that he had attacked me. And then I hired him as an officer. xD
Does he actually have dialog related to the flag you were flying at the time?
Also LOL at you hiring him after his protests. :rofl

Oh well, since Bridgetown is captured for Personal nation regardless of what flag you were flying at the time, I suppose I'll have to use Personal flag for that battle. The Dutch flag, my other alternative at that point in the game, won't work any more either because Holland is allied to Britain.
If you follow the story without getting extra LoMs, then probably you won't be allied to anyone at that point.
So indeed a personal flag for that section of the story would probably be the most logical.
Unless you really DO want to go full-blown pirate there. :cheeky

Incidentally, this is probably going to foul up my entire normal game plan, which involves getting LoM's from the whole alliance - Britain, Holland and Portugal. I suspect that the Bridgetown incident is going to cost me the whole lot. :(
Story-wise, it does make sense for you to lose your LoMs with England's allies too.
Though if you don't capture/sink any of their allies, you may be able to keep those LoMs. Of course English quest ships make that near impossible.
One solution might be to store your relations and points prior to England turning hostile. Then when governor Brin pardons you, you get everything back.

I've got one other idea to address that one, but I'll post it here instead: Awaiting Info - Sea Relations: Animists cause bad relations to Pirates | PiratesAhoy!
 
If you pay the diplomat, it should still work. If not, then indeed continuing with an English flag will get you into a world of trouble.
After all, you may know that you're the loyal one and Silehard is the traitor, but Silehard hasn't been discredited yet so nobody else knows. Least of all England's allies.
Paying the diplomat means I'm neutral to Britain so no regular British ships will attack me and I can sail into British ports safely. Silehard's squadron at Bridgetown won't take any notice of that, though. (But your suggestion here could take care of that.)

Does he actually have dialog related to the flag you were flying at the time?
Yes, and it's not unique to him. It's part of "Cabinfight_dialog.h" and presumably applies to any ship you attack while flying a friendly flag.
If you follow the story without getting extra LoMs, then probably you won't be allied to anyone at that point.
So indeed a personal flag for that section of the story would probably be the most logical.
Unless you really DO want to go full-blown pirate there. :cheeky
I normally go full-blown privateer, collecting LoM's from Britain, Portugal, Holland, and occasionally Spain as well. But I normally keep France as an enemy because it's more lucrative than just clobbering pirates, so the new relation system means there's no point in getting a Spanish LoM any more. Which means Spanish ships become targets as well. :rpirate
 
Paying the diplomat means I'm neutral to Britain so no regular British ships will attack me and I can sail into British ports safely. Silehard's squadron at Bridgetown won't take any notice of that, though.
There is a rather large chance that after my recent rewrites, Silehard's squadron WOULD take notice of that. Which doesn't help when you're trying to have a battle with them.
We'll probably have to apply the same trick as for the coastguard ships to ensure that they're hostile regardless of your nation relations and the flag you fly.

Yes, and it's not unique to him. It's part of "Cabinfight_dialog.h" and presumably applies to any ship you attack while flying a friendly flag.
Didn't remember that! Now that doing the attack while under a false flag actually makes a difference, that becomes extra important.
What exactly is the phrasing there, do you remember? Perhaps we can use that as another spot to explain to players in advance the consequences of their actions there.
So that if you DID do this and let them go, you won't get the huge penalty. But if you proceed with capturing/sinking, then beware!

I normally go full-blown privateer, collecting LoM's from Britain, Portugal, Holland, and occasionally Spain as well. But I normally keep France as an enemy because it's more lucrative than just clobbering pirates, so the new relation system means there's no point in getting a Spanish LoM any more. Which means Spanish ships become targets as well. :rpirate
Spain is hostile to the others, right? You can still try to do it, unless they're also allies of France who you prefer to attack.
Of course multiple LoMs means you get less points per nation. That was your own doing. :cheeky

It is definitely true that only attacking pirates doesn't make for a lot of points.
If you are going to do some serious privateering, it is much better to pick one side of a conflict.
Treating to please both sides will probably go awry real quick. Again, I do remember that being your idea too... :wp
 
Hi all,

I think that when Silehard's fleet arrives at Cozumel, they should be flying the English flag as Isabrandt and the other pirates can be assumed to have been given a LoM and be Privateers as you once were. Blaze/Hawk's fleet should be pirate under his personal flag. It is a long way from Lighthouse bay to Cozumel and every nation will be after you.

I also agree that Blaze/ Hawk should loose his LoM when in Silehard's bedroom with Danielle.
This will force you to land at Grey Rock Bay and enter Greenford by land and then have to sail to the Athena to get the Idol (otherwise you would be sunk by Greenford fort). So deactivating directsail as in the Governor's ship hunt quests will be necessary.

This will slow the pace of the game and make it more challenging as you are now on the outer from all your previously friendly ports. The changes that have been made so rapidly in recent times have led me to a complete re-think of game strategy which is good.

Just some thoughts.
 
I think that when Silehard's fleet arrives at Cozumel, they should be flying the English flag as Isabrandt and the other pirates can be assumed to have been given a LoM and be Privateers as you once were. Blaze/Hawk's fleet should be pirate under his personal flag. It is a long way from Lighthouse bay to Cozumel and every nation will be after you.
Sounds about right to me. English for Silehard's entire fleet is certainly easier than trying to convince those pirates to not fire on their English leader. :cheeky

As for the player, Pirate and Personal aren't the same and both would work. Player can choose his own flag anyway.

I also agree that Blaze/ Hawk should loose his LoM when in Silehard's bedroom with Danielle.
This will force you to land at Grey Rock Bay and enter Greenford by land and then have to sail to the Athena to get the Idol (otherwise you would be sunk by Greenford fort). So deactivating directsail as in the Governor's ship hunt quests will be necessary.
Uh? What has DirectSail got to do with it? o_O

The changes that have been made so rapidly in recent times have led me to a complete re-think of game strategy which is good.
That is indeed what I've been hoping to accomplish. By making the game behave closer to real life and giving plenty of different options,
I'm hoping that the whole nations relations/false flags/alliances/acts of piracy can actually become an integral part of the game.
Until now it has been pretty much an "anything goes" situation, but I want as much as possible to actually matter.
This makes it absolutely very different from before and that was to be expected. As long as it is also better than before, we should be good. :dance
 
I have created a new "skipRM" attribute which can be added to specific quest characters to bypass the "update nations relations" function altogether.
This has now been applied to the captains of all English quest enemy ships.

Note that this means you also GAIN no points for capturing/sinking these ships.
But I think that's OK as these are all English ships that you don't even WANT to attack, so a player having joined forced with an enemy of England would be unlikey.
Unless the player feels particularly piratey. But then they can still get the points from any and all other ships. So should be OK.

As an added bonus, I'm ensuring that Silehard's "pirate" squadron will actually be English and therefore not hostile to each other:
Code:
      // PB -->
     /*   SetCharacterRelationBoth(GetCharacterIndex("Brian The Slayer"),GetCharacterIndex("Robert Christopher Silehard"),RELATION_FRIEND);
       SetCharacterRelationBoth(GetCharacterIndex("Isenbrandt Jurcksen"),GetCharacterIndex("Robert Christopher Silehard"),RELATION_FRIEND);
       SetCharacterRelationBoth(GetCharacterIndex("Brian The Slayer"),GetCharacterIndex("Thomas Norton"),RELATION_FRIEND);
       SetCharacterRelationBoth(GetCharacterIndex("Isenbrandt Jurcksen"),GetCharacterIndex("Thomas Norton"),RELATION_FRIEND);
       UpdateRelations(); */
       characters[GetCharacterIndex("Robert Christopher Silehard")].nation = ENGLAND;
       characters[GetCharacterIndex("Isenbrandt Jurcksen")].nation = ENGLAND;
       characters[GetCharacterIndex("Thomas Norton")].nation = ENGLAND;
       characters[GetCharacterIndex("Brian The Slayer")].nation = ENGLAND;
       // PB <--
 
As an added bonus, I'm ensuring that Silehard's "pirate" squadron will actually be English and therefore not hostile to each other:
Might it not be better to turn Silehard into a pirate? For one thing, the game is pretty well up - he's nicked Britain's biggest warship and gone off on a treasure-hunting expedition, and has joined up with pirates rather than taking a naval squadron. Besides, if you want to approach pirates in a friendly manner, e.g. enter Grand Turk without having to knock out the fort first, which flag do you raise? :pflag Silehard would probably do likewise. (Maybe devise a pirate flag for him...)
 
Might it not be better to turn Silehard into a pirate? For one thing, the game is pretty well up - he's nicked Britain's biggest warship and gone off on a treasure-hunting expedition, and has joined up with pirates rather than taking a naval squadron.
You've got a point there. Changed! :cheers
 
Back
Top