• 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 Hornblower Storyline - Failed Quest Case when setting sail from Antigua the first time

Mirsaneli

Privateer
Storm Modder
Ok, so I just started this storyline and I think I came up on a bug. After receiving the order to sail to Guadeloupe (after replacing the cannons in the shipyard), I sailed to the Anse Casse Bois. When I moored there, nothing happened. According to the Walkthrough, an event should occur on the shore. But in my game, nothing happens on shore. I'm all alone with my 2 other companions.

Go to the Shipyard talk to the Dockyard Commissioner and get larger guns fitted.
You may now go to sea. (This is an auto load function which will start as you reach the end of the dock).
Dialog with Simpson on deck as you board.
You will be told by an officer to take station as the captains boat is coming along side (auto)
The captain will give orders to prepare for sea.
You will take charge of the helmsman.
Go see him and talk to him – auto go-to-sea on completion.
Sail to Guadeloupe – (Anse Casse Bois)

Land on beach with Simpson and Clayton where you will meet Lt. Buckland.
He tells you, you are late. An argument with Simpson ensues. Clayton is killed. (auto)
 

Attachments

  • savegame.rar
    510.9 KB · Views: 87
Can you describe EXACTLY what happened leading up to that savegame you posted?
There are ZERO quest cases mentioned in the compile.log, so I cannot trace anything.

Using DumpAttributes indicates that some quest code never got to execute.
Which makes me wonder: Did you get the scene on the ship deck first?
And did the game auto-reload to sea after talking to the Helmsman?

That is when the "next part" of the story is prepared. And it seems to me that never happened.
Which suggests that you somehow managed to break the quest.
 
Just tried this myself and I did get the correct quest cases running, so it should work.

But I DID almost manage to break the storyline around that point.
After the captain ordered me to give the course to the Helmsman, I was able to "fast travel to my ship deck".
Thankfully I could return to the "quest deck" afterwards and still trigger the correct case.
No idea what would happen if you DON'T do that though.

So indeed we'll need an exact step-by-step description of what you did after getting new cannons installed on the ship.
 
Can you describe EXACTLY what happened leading up to that savegame you posted?
There are ZERO quest cases mentioned in the compile.log, so I cannot trace anything.

Using DumpAttributes indicates that some quest code never got to execute.
Which makes me wonder: Did you get the scene on the ship deck first?
And did the game auto-reload to sea after talking to the Helmsman?

That is when the "next part" of the story is prepared. And it seems to me that never happened.
Which suggests that you somehow managed to break the quest.

It happened that I didn't go straight to the helm and accessed the sea through it. Instead, I went to sea via the sea icon (which many players will do if someone doesn't disable it) and if you go to the sea via sea icon, you will encounter no one when you arrive at the beach on Antigua. I restarted the same storyline and wen to the sea by going straigh to the helm. After that, everything worked fine. So, like my previous warning for the Jack Sparrow storyline, where you can access the Black Pearl after Barbossa leaves you on shore (even though he stole your ship), if we don't correct those little details, it can fuck up the storyline completely. In this case, many players might go to the sea by simply pressing Enter and accessing the Sea icon. And, in the case of Jack Sparrow storyline, someone might return to the Black Pearl (which he lost) and continue playing the game like that without ending the storyline. So, either you make a proper storyline, either you remove it. If there is no way to fix those things, I'm afraid there will be a lot of questions about this and that on this forum after the public release.
 
It happened that I didn't go straight to the helm and accessed the sea through it. Instead, I went to sea via the sea icon (which many players will do if someone doesn't disable it)
Curious that I didn't even have that option at all when testing this.

Anyway, I think this change in the Hornblower quests_reaction.c file will prevent all weirdness there:
Code:
    case "Sail_for_Guadeloupe":
     //   DisableFastTravel(false); // PB: This could allow players to break their game
       LAi_ActorRunToLocator(characterFromID("Jack Simpson"), "goto", "goto5", "",5.0);
       LAi_ActorRunToLocator(characterFromID("Archie Kennedy"), "goto", "goto4", "",5.0);
       LAi_ActorRunToLocator(characterFromID("Clayton"), "goto", "goto3", "",5.0);
       LAi_QuestDelay("Sail_for_Guadeloupe2", 0.0);
     break;

     case "Sail_for_Guadeloupe2":
       LAi_SetGuardianType(characterFromID("Helmsman"));
       characters[GetCharacterIndex("Helmsman")].Dialog.Filename = "Helmsman_dialog.c";
       Characters[GetCharacterIndex("Helmsman")].dialog.CurrentNode = "First_sailing_orders";
       LAi_ActorDialog(characterFromID("Helmsman"), pchar, "", 10.0, 10.0);
     break;

     case "Sail_for_Guadeloupe3":
       LAi_QuestDelay("Sail_for_Guadeloupe4", 3.0);
     break;

     case "Sail_for_Guadeloupe4":
       DisableFastTravel(false); //PB: Moved here instead
       QuestToSeaLogin_PrepareLoc("Antigua", "reload", "Sea_2_back", false);
       QuestToSeaLogin_Launch();
 
Curious that I didn't even have that option at all when testing this.

Anyway, I think this change in the Hornblower quests_reaction.c file will prevent all weirdness there:
Code:
    case "Sail_for_Guadeloupe":
     //   DisableFastTravel(false); // PB: This could allow players to break their game
       LAi_ActorRunToLocator(characterFromID("Jack Simpson"), "goto", "goto5", "",5.0);
       LAi_ActorRunToLocator(characterFromID("Archie Kennedy"), "goto", "goto4", "",5.0);
       LAi_ActorRunToLocator(characterFromID("Clayton"), "goto", "goto3", "",5.0);
       LAi_QuestDelay("Sail_for_Guadeloupe2", 0.0);
     break;

     case "Sail_for_Guadeloupe2":
       LAi_SetGuardianType(characterFromID("Helmsman"));
       characters[GetCharacterIndex("Helmsman")].Dialog.Filename = "Helmsman_dialog.c";
       Characters[GetCharacterIndex("Helmsman")].dialog.CurrentNode = "First_sailing_orders";
       LAi_ActorDialog(characterFromID("Helmsman"), pchar, "", 10.0, 10.0);
     break;

     case "Sail_for_Guadeloupe3":
       LAi_QuestDelay("Sail_for_Guadeloupe4", 3.0);
     break;

     case "Sail_for_Guadeloupe4":
       DisableFastTravel(false); //PB: Moved here instead
       QuestToSeaLogin_PrepareLoc("Antigua", "reload", "Sea_2_back", false);
       QuestToSeaLogin_Launch();

DisableFastTravel(false) = should be true?
 
DisableFastTravel(false) = should be true?
No, it's correct like that. Thing is that Fast Travel already WAS disabled. It is just being re-enabled too soon, allowing players to potentially break the quest.
So I moved the line that sets everything back to normal at a point AFTER the quest has already completed.
 
Thanks for that!

Meanwhile, I've found a far more serious problem. I'd fixed the "Broken_Quest" trap which gets you kicked out of the navy if, after collecting Bracegirdle and Quelp from Bridgetown Naval HQ, you get Quelp killed before you get back to Charlestown.

And it's never cancelled. Which means when you kill Quelp during the extension, you get a tartane which is now at Bridgetown while you're on Hispaniola.

This ought to fix that, and also make Styles and Wilks unremovable when they're finally assigned to your crew at case "After_the_fort_and_Hammond". They can contribute their skillx as crew but they're not officers so you shouldn't be taking them as companions, let alone putting them in charge of prize ships!

Also, this version of "characters\init\Story.c" tones down the skills of the seamen, some of which were too awesome for mere crew members.
 

Attachments

  • quests_reaction.c
    841.2 KB · Views: 85
  • Story.c
    74.1 KB · Views: 79
Thanks for that!

Meanwhile, I've found a far more serious problem. I'd fixed the "Broken_Quest" trap which gets you kicked out of the navy if, after collecting Bracegirdle and Quelp from Bridgetown Naval HQ, you get Quelp killed before you get back to Charlestown.

And it's never cancelled. Which means when you kill Quelp during the extension, you get a tartane which is now at Bridgetown while you're on Hispaniola.

This ought to fix that, and also make Styles and Wilks unremovable when they're finally assigned to your crew at case "After_the_fort_and_Hammond". They can contribute their skillx as crew but they're not officers so you shouldn't be taking them as companions, let alone putting them in charge of prize ships!

Also, this version of "characters\init\Story.c" tones down the skills of the seamen, some of which were too awesome for mere crew members.

Well done! It's good to clear every possible bug before the public release :)
Too bad I cannot help with coding...
 
Back
Top