• 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 Animist passenger on-board after completing quest

pedrwyth

Privateer
Storm Modder
Method to replicate found here:
http://www.piratesahoy.net/threads/...ard-after-completing-quest.24932/#post-505341

----------------------------------------------------------------

Been playing the Nathaniel Hawk storyline in build 14 beta 3.4 19th Jan. Finished the main story and apart from the apparently "known" bugs of doubled character name, having a cursed coin even though I didn't touch it ( 2 actually) when I found them, don't board the third English ship, and contraband not taken by smugglers after paying me all of which the wiki/forum sorted or at least showed they were in hand it was all good Great work by all concerned.

Slight "flaw?" in that I was left with Silehard on my ship as a carpenter (by default - serving a penance not earning salary) despite the dialogue with the replacement governor but that could be me missing something in the dialogues to get rid of him?

Actually he jumped ship later (could be a whole new plot?) when I went on to undertake the Animists "strange things" - yes after the main quest (I stumbled across Viper's patch to Simon Hanpool which gave me the hint in how to proceed - but maybe I'm not supposed to?).

Again I was left with extra passengers, after returning the children etc, - the mystery man despite the incident in San Juan tavern and the Templar Knight from Spain. I don't know if this is normal or an effect of the workaround (although that just seems to get round the prison problem) since I have never done that side quest before in the original unmodded game to know how it ends.

So long story short I was left with a dead character as a passenger but via an "unpublished" patch?

Of course the side quest opponents were no challenge playing it so late - I can see why people would do it early but it struck me that perhaps generally there could be a way of setting some key opponents abilities related to you or your parties ability levels at the time of encounter. This would keep side quests "fresh" for whatever time, storyline or free play they fir and you chose to attempt them (assuming the work to make them widely available works out). I did the rest of the sidequests as I went so the difference in abilities wasn't as glaring.

I'm sorry if this raises too many issues in one post or if the last is already in a wish list somewhere, being new to the modd I've read some but by no means all of the forum threads.

PS I also have too many coins in that chest (883) - are they still being minted somewhere or is this something else I should report?
 
Last edited by a moderator:
:ahoymatey!

The end game might not work correctly because so few actually get that far, so it not well tested. I either kill Silehard or he jumps ship before I can make it to Jamaica.

You are supposed to keep the Knight. He is a decent fighter. Viper's patch? Strange things starts on Bonaire and it is kind of hard to miss all those women.

Those coins will keep showing up as long as you play, but you should be able to sell them now.
 
OK fine Silehard wasn't a problem just an observation which arose because I did make it to Jamaica and beyond before he jumped ship so the dialogue with the new governor about him was off key.

Yep no problem with Bonaire etc - the patch I found can be used when (eventually) to get at Teacher you need to talk to Roland Blacklock in the prison but he can't be there because you v'e dealt with him previously. (noted as a confirmed bug in tracker but archived with no fix noted as far as I could see). I 'm a bit oblique in trying to avoid a spoiler but a quick look in Simon Hanpool dialogue files will show all. I looked there (after looking at Roland Blacklock, fort commander dialogues and what happens on storming the fort and town) because the tavern dialogue seemed the last thing that worked before I reached the impasse and was surprised to find some relevant code and dialogue in place. Anyway it allows you to access the Teacher by ensuring he is where he should be and thus progress. What I don't know is if that had any connection with why I later still had an Animist after killing him in the tavern.

I guess I could have added the mystery man to my party and moved on-ship location (I did but couldn't talk to him) but then attacked him to clear him away from the list, I just wanted to flag up he was still there.

I've moved on to Woodes Rogers now but I could hunt up old saved game positions if it helps?
 
Towards the end of "Tales of a Sea Hawk", when you take the Sovereign of the Seas, Silehard does indeed occasionally surrender. He's a regular prisoner. You can ransom him or execute him, and if you don't do something to him then, like any other prisoner, he has a chance to escape. The dialog with the new governor doesn't change that - it seems to assume that you killed him, so if I have Silehard as a prisoner then I generally take that to be the governor's discreet way of telling me to give him the chop.

Has the "Strange Things Going On" quest changed? I don't remember killing an animist in a tavern. There was one in Bridgetown prison who didn't survive my interrogation and never became a passenger. If I remember correctly, the original version in the stock game had you release the prisoner, he then became a passenger until you reached Isla Muelle, then you killed him before proceeding to the shore. But that would have been on your own ship, not in a tavern.

Once you've taken a cursed coin to the chest to end the curse, more coins can appear but they're no longer cursed and you can sell them. Of course, if you help yourself to one or more of the coins from the chest, the curse may resume...
 
At some point, once I'm done messing around with storyline concept coding, I am hoping to be able to spend some time actually playing.
If I run into any obvious issues then, of course I'll see if I can fix those. But I'm not sure when I'll get to that.
 
I never met or killed an Animist in any tavern, so that part is a mystery to me.
 
Hmm.... Well what happened to me was

1. Stuck because the prison commandent is non-talkative (no animist in prison) because I have already dealt with Blacklock sometime before.
2. Killed him anyway and the few soldies in line of sight but left the rest. (No animist in prison as of yet).
3 Talk to landlord for advice (patch puts animist in prison)
4 Talk to animist in prison and tell him to come with me (forced dialogue)
5 Sail to Puerto Rico on nearing shore get cut scene on board with forced dialogue
6 Cut scene to tavern upstairs room, forced dialogue and kill animist
7 Off to shore and cave as normal (I suspect)

I would enclose a save game at point 1 above but don't know how - do I just zip it or what?

It works Ok but I still have a dead animist haunting the ship as it were.
Actually would be better with a tweak to the dialogue when Hanpool tells you the teacher is in prison to hint to the effect you might have to be rough (I don't think that would spoil the standard earlier completion).
 
OIC. You already killed Blacklock in the main quest so that kills this quest. Then you found a patch that allows you to continue anyway.
 
I would enclose a save game at point 1 above but don't know how - do I just zip it or what?
That is indeed how to do it, but I don't have time to do anything with the savegame.
Best thing to do is to make a post on the Bug Tracker detailing how to replicate the issue so that I can trigger it myself once I finally get to playing through the Standard storyline myself.
But also for that I can make no guarantees whatsoever on when I might be able to do that.
I've been wanting to play the mod-added storylines for years now and still haven't gotten around to it.

I'm surprised the patch you found on the forum worked as well for at as it did.
Mostly I would say that any patches found are likely to be wildly out of date and therefore incompatible with recent modpack versions.
What patch is it exactly? If it is indeed an attempted fix that isn't included in the modpack,
then it should be added or at the very least might serve as a basis for making a proper fix later.
 
Best thing to do is to make a post on the Bug Tracker detailing how to replicate the issue so that I can trigger it myself once I finally get to playing through the Standard storyline myself.

That is basically the post above giving steps 1 through 7

But also for that I can make no guarantees whatsoever on when I might be able to do that.
I've been wanting to play the mod-added storylines for years now and still haven't gotten around to it.

No worries about that I didn't expect a quick fix. I just wanted to note how the current code patch behaves


I'm surprised the patch you found on the forum worked as well as it did.

Yep you're right there. Except I didn't find it on the forum - that only told me the sidequest was bust if attempted after the main quest had reached the bit about recovering the idols.
I was poking round in the code trying to see if I could workout how to force a continuation when I saw I had been beaten to it.

I have since played through the scenario again without being led by the nose through the scenes as above 1-7 but instead following Grey Roger in killing the Animist in jail after the dialogue (despite saying "come with me"").
Once again he appears in the passenger list (see quests_animist_dialogue.c patch below) although this time dead on the floor in the jail.
However now at the scene near Puerto Rico shore there is no animist (alive) to show up so stuck again.
Well not quite since he is on the passenger list I added him to my group and tried to change location so he could appear.
Everywhere on the ship is locked but the other ships' decks are there so off to one of them - no joy however the shore 'door' icon is there for ?Bridgetown!??.
Teleport to Bridgetown shore and animist appears. Try to kill him but here he is invincible and my blade goes through with no effect.
So back to my ship deck (also now in Bridgetown!!) and here he is vulnerable and his death ensues (and he disappears from passengers (hoorah!)).
Sail back to Puerto Rico and since he is not a passenger there is no near shore cut scene but now the computer doesn't believe I know where the animist den is so only gives me sail to San Juan or Oyster Bay and I am stuck.
[I only give the detail in case it helps tracking the requisite changes to fix it in the future.]

It is fairly clear my undead Animist is just part of a confusion in parameters actioned or set by the workaround code as it stands.
As such I would suggest this thread is just tagged onto the earlier archived one about the side quest not working later on (i.e. Roland Blacklock not spawning etc) for future reference.



What patch is it exactly? If it is indeed an attempted fix that isn't included in the modpack,
then it should be added or at the very least might serve as a basis for making a proper fix later.

Definitely in the modpack - two patches of code in Simon Hanpool_dialogue.c

// Viper - fix for Missing Children Quest begin
if (CheckQuestAttribute("ANIMISTS", "to_prison_for_teacher") && Ai_IsDead(characterFromID("Greenford Prison Commendant")))
{
link.l1 = DLG_TEXT[121];
link.l1.go = "dopros";
}
// Viper - fix for Missing Children Quest end

and also later in same hanpool file

// Viper - fix for Missing Children Quest begin
case "to_greenford_for_teacher_2":
if (LAi_IsDead(characterFromID("Greenford Prison Commendant")))
{
dialog.text = DLG_TEXT[124]
link.l1 = DLG_TEXT[123];
link.l1.go = "exit";
pchar.quest.ANIMISTS = "wardendead";
AddDialogExitQuest("mystery_man_to_prison");
AddQuestRecord("ANIMISTS", 38);
}
else
{
Dialog.snd = "voice\SIHA\SIHA004";
dialog.text = DLG_TEXT[46];
link.l1 = DLG_TEXT[47];
link.l1.go = "exit";
pchar.quest.ANIMISTS = "to_prison_for_teacher";
AddQuestRecord("ANIMISTS", 27);
}
break;

case "dopros":
dialog.text = DLG_TEXT[122];
link.l1 = DLG_TEXT[123];
link.l1.go = "exit";
pchar.quest.ANIMISTS = "wardendead";
AddDialogExitQuest("mystery_man_to_prison");
AddQuestRecord("ANIMISTS", 38);
break;
// Viper - fix for Missing Children Quest end

Relevant dialogue lins from simon harpool english dialogue are as below

33 "I need information about a certain man. He's always wearing a red robe and calls himself 'Teacher.'",

46 "Ah! You'll have to go to the warden of the prison! This lad got arrested a few days ago -- he was inciting people to rebel.",
47 "Oh, good, you've helped me a lot.",

121 "Remember when you told me to speak to the warden about a prisoner? Well, now I've went and killed the grimey bastard, so what should I do now?",
122 "Well, since the warden's dead, I say just go and talk to the prisoner. It's not like anyone's gonna stop you.",
123 "I'll do that. Thank you.",
124 "Ah! This lad got arrested a few days ago -- he was inciting people to rebel. Since the warden's been killed, I suggest you just go to the prison and have a chat with the bugger.",


Quest book entries 27=I know that the man I am searching for is in #sGreenford#'s prison.
38=The bartender at the #sGreenford# Tavern told me that since the warden is dead, I should just go into the prison and speak with the 'teacher.'
(in RESOURCE/INI/TEXTS/ENGLISH/storyline/standard/questbook/animists textfile)



In a normal sequence the warden dialogue is called from the greenford commander dialogue files
(suprisingly not a greenford prison commandant dialogue which doesn't currently exist as a dialogue file) .
This means it might be possible to force whatever character is created to occupy the prison commandant location to have the requisite attributes to call the greenford commander code rather than skip the encounter?
I guess logically this should be in the Simon Hanpool file as vipers existing patch (since Simon Hanpool's dialogue saying Teacher is in Jail is the first moment it actually "needs" to be set up (whenever that is in relation to other quests) - Logically Roland Blacklock when there already has them - so what are they I wonder??) -or is that too simplistic?



I have since found a relevant patch in Quest_ANIMISTS_dialog.c (in the storyline dialogues).

// Viper - Missing Children Quest Fix Begin
if (pchar.quest.ANIMISTS == "wardendead")
{
dialog.text = DLG_TEXT[8];
link.l1 = DLG_TEXT[50];
link.l1.go = "wardendead";
}
break;

case "wardendead":
dialog.text = DLG_TEXT[51];
link.l1 = DLG_TEXT[52];
link.l1.go = "exit";
pchar.quest.ANIMISTS = "with_teacher_to_muelle";
AddPassenger(Pchar, characterFromID("Mystery_man_01"), 0);
pchar.quest.with_teacher_to_muelle.win_condition.l1 = "location";
pchar.quest.with_teacher_to_muelle.win_condition.l1.location = "IslaMuelle";
pchar.quest.with_teacher_to_muelle.win_condition = "with_teacher_to_muelle";
AddQuestRecord("ANIMISTS", 32);
break;

// Viper - Missing Children Quest Fix End
 
In a normal sequence the warden dialogue is called from the greenford commander dialogue files
(suprisingly not a greenford prison commandant dialogue which doesn't currently exist as a dialogue file) .
This means it might be possible to force whatever character is created to occupy the prison commandant location to have the requisite attributes to call the greenford commander code rather than skip the encounter?
Logically Roland Blacklock when there already has them - so what are they I wonder??) -or is that too simplistic?

I've gone back to looking at the break in the Strange Things in the Archipelago quest if you have previously killed Ronald Blacklock.
I have dumped the character attributes of Ronald Blacklock and his "replacement" (in my saved verson Brian Harlock). They are pretty similar (and generally seem to make sense) except for a couple of lines in Brian Harlock.

Index =
dialog = 0

I suspect it will be the dialog = 0 that is stopping a dialog with the character and thus preventing progressing the quest. I can't find where this is set or how to construct a line in console to change the value (to test if this is indeed a way to unstick the quest).

Any ideas or pointers?
 

Attachments

  • blacklock attributes.7z
    1.1 KB · Views: 125
  • brian harlock.7z
    1.5 KB · Views: 127
Maybe this?
Code:
ch = characterFromID("Greenford Prison Commendant");
ch.Dialog.Filename = "Greenford Commander_dialog.c";
ch.Dialog.Currentnode= "First time";
 
Actually no. the character already has these attributes

dialog =
filename = Greenford Commander_dialog.c
currentnode = first time
tempnode = first time

However found what was needed

LAi_warrior_DialogEnable(CharacterFromID("Greenford Prison Commendant"), true);

Executed at console allows the conversation and quest to continue as it would have with Roland Blacklock.

So putting that into Simon Hanpool dialogue in

case "to_greenford_for_teacher_2":
and whoever is prison commendant should give up the dialogue -

quest break fixed?

I'll check the various action options from there to see it holds up but it should and hopefully avoiding the jumps that Viper put in the code should remove my dead animist haunting problem (if not a simple remove character line ala Grey Roger's Hornblower tweaks should see all sorted.

I'll let you know when I've cleaned up the animists nest by all routes and perhaps you can then consider incorporating this into the game?
 
OK played through the three scenarios available to me from my saved game given my character attribute levels at that point.

The patch in Simon Hanpool works fine to enable dialog with the prison commendant (sic).

Option 1) Get permission to see the prisoner. Interrogate him and he dies (revealing San Juan is near their lair). Questbook updated OK.



Option 2) threaten the commendant (your relations with the English deteriorate). You free the animist and he goes to your ship. The sequence on sailing to Puerto Rico runs via the onboard ship dialog to San Juan tavern where you kill the animist BUT he remains as a passenger.

Option 3 (via Viper's patches) Kill the commendant, speak to the tavern owner, go back to the prison and talk to the animist, proceed as 2 above

The animist is left on the passenger list in 2, 3 so I prepared passenger removal lines when ironically I happened to spot in Quest_ANIMIST_dialog that actually "Mystery_man_01" is put on the ship not "Teacher" :no so that is why his death has no impact. (and why I would have been tearing my hair trying to resolve why the removal lines would n't work). Tweaking that to "Teacher" resolved the problem!

So the answer was hidden in my original post - not a dead "Teacher" left on board but a dead animist!!:yes


However there is a 3a) kill the animist in prison since there is a pause after the dialog in the Viper patch which lets you do this, so it could benefit from an "if dead" check to remove him if appropriate because otherwise this breaks the quest on reaching Isla Muella. So I have put one in in "with_teacher_to_muella" which seems to do the job.


There is also a case "Teacher_died" where remove character lines are commented out for some reason? This seems to be an "early game" option if you go and get a release letter from Jamaica. I can't check that out with my current saved game. I might look in the next storyline I try.


Incidentally Blacklock is type huber while his "replacement"is type warrior so I executed the LaI_warrior DialogEnable call from the console in front of Blacklock just to check it had no unwanted side effects (since it will be there during the normal early completion of save the children) and his dialog continued as normal

so in summary replacement quest_ANIMIST_dialog.c, simon_hanpool_dialog.c and quest_reaction.c. Job done. What next I wonder?
 

Attachments

  • Quest_ANIMISTS_dialog.7z
    1.6 KB · Views: 121
  • quests_reaction.7z
    73.2 KB · Views: 112
  • Simon Hanpool_dialog.7z
    3.2 KB · Views: 134
Last edited:
So you managed to sort out all issues you found? That's awesome!

@Hylie Pistof, would you care to add this gentleman to the PotC Modders group?
I'd normally do it myself, but the Internet this week is not very reliable.
 
Marked as Fix in Progress so I'll remember to put it on the next update when i get to that.
 
Back
Top