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

Unconfirmed Bug The Mysterious Plants quest - where did the prison officer go?

Fluen

Freebooter
I've followed the native to the warehouse and have tried to report it to an officer in the prison as the walkthrough says (and the apothecary suggests, if I speak to him).
But neither any of the officers/soldiers inside the prison or the one, that suddenly appeared right outside the fence around the prison seem to have any dialogue concerning natives or warehouses. Did that bit vanish during one of the later updates?

Spoiler (highlight to read): Is there any way to get the compensation for the natives? Or should I expect to be attacked by natives, every time I set foot in Bridgetown harbour from now on?
 
If anything, the "Mysterious Plants" quest should be more reliable in the current update because @pedrwyth did a lot of debugging on it.

I've never played this quest myself, and anyway it seems to branch in various ways, so I can't answer from experience. But looking at some of the code, you may need to go into the warehouse before you talk to the prison commandant. (He's the one sitting at the table inside the prison.) Or, if it's another day since you were attacked, you may indeed not be able to report to the prison commandant.

You can use spoiler tags to hide spoilers:
Like this.
Put "["spoiler"]" before the lines to be hidden, and "["/spoiler"]" after them. Don't include the quote marks - they're to prevent the forum from trying to turn this hint about spoilers into a spoiler.
 
If anything, the "Mysterious Plants" quest should be more reliable in the current update because @pedrwyth did a lot of debugging on it.

More reliable but perhaps not without hiccups still.

I've followed the native to the warehouse and have tried to report it to an officer in the prison as the walkthrough says (and the apothecary suggests, if I speak to him).

Do you have a save game at the warehouse (from memory I think the game autosaves at that point since the following scene was unreliable) for me to see what is happening (you will need to zip it to upload it). If you look at the wiki and click on warehouse spoiler I think you could use option 4 to progress the quest.

To get set a compensation to remove the indians you need to fail/give up the quest at the apothecary. It sounds like you have done this. Then you have to source the opium (from the opium den) and deliver it within your given timescale. Levis (who wrote both opium smuggling and the apothecary quest) likes to link his contributions such that you can't sometimes avoid them. In this case carrying opium, however I believe much of the opium smuggling stuff is disabled due to unintentioned effects.

As I think about it I suspect that currently the indians are not removed if you fail to deliver in time (when more nasty stuff was due to befall you). Something else for me to look into!
 
Well, I have just deleted that save. But I have kept the save from right before, I accepted the apothecary's instructions to meet with Cook in the tavern. So I can easily replicate the event (I think - perhaps there was some gambling with a local beforehand).
Is it possible, that the time of day has some influence? When I searched for the officer in the prison, it was so late in the evening, that the prison was locked behind me, when I left. It wouldn't be the first time, I have entered a place (usually a shop) just as it was closing time, so the shopkeeper had left, but I still managed to get in and then looked at an empty shop.

I tried to play on and found a way to get the compensation. It was fairly difficult to figure out without any instructions in the quest book.

And another strange thing (yes, I tried various options in this quest yesterday):
I went to the hotel in Cartegena and couldn't solve the pirate problem (as informed by the walkthrough) and the native hotel worker wouldn't give me any plants. He just kept asking, if I had solved the problem. That's why I had to report to the apothecary, that I had failed. But when I later returned to deliver the compensation, I met the native hotel worker again, and now he unprompted gave me the desired plants. Isn't that a bit out of order?
 
Well, I have just deleted that save. But I have kept the save from right before, I accepted the apothecary's instructions to meet with Cook in the tavern. So I can easily replicate the event (I think - perhaps there was some gambling with a local beforehand).
Is it possible, that the time of day has some influence? When I searched for the officer in the prison, it was so late in the evening, that the prison was locked behind me, when I left. It wouldn't be the first time, I have entered a place (usually a shop) just as it was closing time, so the shopkeeper had left, but I still managed to get in and then looked at an empty shop.
Perhaps a copy of that save then (just in case there is something different in your game than one I could otherwise easily create). The time of day thought is a good one but in this case checking the character's login shows 0-24 hours so they should always be there (no rest for the wicked). However another thought is that the Jack Sparrow storyline does not have that dialogue and I don't know which you are playing.
I hadn't actually looked to see if there were replacement dialogues in individual storylines but it looks like just Jack Sparrow and two dialogues (GreenfordCommander and Father Jerald). I can't see JS running to the guards for help (he is CAPTAIN Jack Sparrow) so its probably apt that the options of doing that aren't there in that storyline, so JS will have to solve his own problems. I will work up the Father Jerald file to go with the improvements when I've done them.

I guess there should be a note in the walkthrough to that effect. Ideally a different response to the Apothecary's suggestion too (ie if character's name is Jack Sparrow a refusal to help the authorities).

If you're not completely satiated (or frustrated) with the whole thing there is this thread about the hotel puzzle which I had thought of adding the piece from my post to the wiki if it helps.
Need Help - Mysterious plants: what does the ghost in hotel need?

I will look into your spoiler experience with Dusty so as to try and ensure he is not left stranded at the hotel (let alone with largesse) under such circumstances.
 
Is it possible, that the time of day has some influence? When I searched for the officer in the prison, it was so late in the evening, that the prison was locked behind me, when I left. It wouldn't be the first time, I have entered a place (usually a shop) just as it was closing time, so the shopkeeper had left, but I still managed to get in and then looked at an empty shop.
Looking at the dialog for the prison commandant, that could prevent you from reporting to him about the Indians:
if(!CheckAttribute(PChar,"quest.mysterious_plants.reported_crime"))
{
if(!CheckAttribute(PChar,"quest.mysterious_plants.crewmember_killed.expired"))
{
if(CheckAttribute(PChar,"quest.mysterious_plants.crewmember.killed"))
{
if (GetAttribute(PChar,"quest.mysterious_plants.crewmember.killed")== true)
{
link.l3 = DLG_TEXT[53];
link.l3.go = "Report Indians";
}
else
{
//if(GetAttribute(PChar,"quest.mysterious_plants.crewmember.killed")== false)
//{
link.l3 = DLG_TEXT[56];
link.l3.go = "Report Indians";
//}
}
}
}
}
@pedrwyth: "PChar.quest.mysterious_plants.crewmember_killed.expired" is set if a day has passed since you were attacked. There's no "else" to provide an alternative dialog if that attribute is set, so if it's the next day, there seems to be no way to report about Indians.
 
Here is the save from after The Collector and before, I told the apothecary, I was ready to do the job for him.

But if the player must carry out the whole quest in one quick succession, it may be the cause for the "bug". I take my time about every quest, because I work on several quests at the same time. And I'm certain, several months passed from my first crewmember was attacked by the natives and to this save, when I had done other things in the meantime.

In that case, it's not a bug, but it will be important to inform the player (via the questbook?), that this quest must be carried out in one go.

After all, other quests may also seem urgent, but give room for long preparations (at least in the earlier builds). An example is the conquest of Bridgetown to save the Researcher from prison. So I have learned to take my time with everything.
 

Attachments

  • outside the apothecary.zip
    1.2 MB · Views: 133
So the part of the quest, where the player supplies the ghosts with their desired items actually works? If that's the case, it very, very difficult to figure out - especially if one is only able to enter a room unharmed once.

Have just checked: yes, that part of the quest works.
But the creator forgot one detail: normally trouble arises, if the player goes around poking in peoples' possesions, so I for one have too much survival instinct to do so in the presence of an undead and already displeased pirate.
If this situation had happened in the Rogers Woodes storyline, I would have known, that I should examine everything. But in the usual storylines, I keep away from chests and closets in other peoples' rooms.
 
Last edited:
I'm not certain that the whole "Mysterious Plants" quest needs to be done in a rush. It may be possible to complete the quest in other ways without reporting to the prison commandant.

Some quests, especially in "Tales of a Sea Hawk", do allow you to take as long as you like even if the questbook says they're urgent. And some do not. The "Ardent", "Assassin" and "Bartolomeu" storylines all have timed quests at or near the start. As for sidequests, "Hard Labours of an Assassin", "Help Turks Island Settlement" and "Vogelstruijs" will fail if you take too long to complete certain parts. Experience (and looking at the quest code :D) has taught me when it's safe to delay and when it's not. Like you, I often have several quests active at the same time, especially if they're going in the same direction.

It's no coincidence that "Woodes Rogers" has some similarity to this part of "Mysterious Plants" - the same person wrote both! (Not the whole "Mysterious Plants" quest, just this part.) If you liked those, you might want to try "Goldbug", also by the same author.
 
When I got the task from the hotel worker, I thought, that I would get information about the missing objects and have to travel out in the town to aquire them.

And I have played the Woodes Rogers quest and did not find it interesting. After all, I'm in this for sea battles and island-spanding missions. For puzzles I play Tomb Raider.

When it comes to timed quests, the quest book tends to say so.
 
The whole quest does not really have any time limits so that (for instance) you can trace the natives to the warehouse and then break off for months. I think the Captain will still be waiting for you and the natives will still be in the warehouse however illogical that may be. There is a limit to reporting the attack on your crewmember to a day because it doesn't make sense to me to do it later.

That is the limitation @Grey Roger referred to
Looking at the dialog for the prison commandant, that could prevent you from reporting to him about the Indians:
"PChar.quest.mysterious_plants.crewmember_killed.expired" is set if a day has passed since you were attacked. There's no "else" to provide an alternative dialog if that attribute is set, so if it's the next day, there seems to be no way to report about Indians.

Other time limited elements such as the compensation (if any) are generally flagged

There are actually 3 different opportunities to report the natives : when they attack your crewmember, if you track them to the warehouse, if you eavesdrop on their conversation.

What is blocking @Fluen 's attempt to report the natives (the second opportunity) is "Pchar.quest.mysterious_plants_reported_crime" attribute not existing so that the later conditions related to the warehouse element are not tested because it reverts to trying the crewmember killed condition in the attributes absence. I need to add the creation of that attribute (as false) into the case that is called when that earlier ability to report expires (ie no report has been made).

Retracing her steps (thank you for the save) and standing in front of the Greenford Commander there is no dialogue but creating that attribute by console allows the correct dialogue to ensue.

The point of the "Pchar.quest.mysterious_plants_reported_crime" attribute in the first place is to prevent repeated dialogues with the Commander or the Apothecary if you did report the crewmember attack, part of the price for such intertwined possible interactions.

I still need to look at the other issue(s) raised and consider how to flag up the difference for Jack Sparrow.
 
The "JackSparrow" storyline has its own version of "Greenford commander_dialog.c", so anything which Sparrow alone should say to the prison commander can go there.

In quest code, or in dialogs which are not specific to the storyline, you could use this condition:
Code:
if (FindCurrentStoryline() == FindStoryline("JackSparrow"))
{
    <What Jack Sparrow does>
}
else
{
    <What everyone else does>
}
 
The "JackSparrow" storyline has its own version of "Greenford commander_dialog.c", so anything which Sparrow alone should say to the prison commander can go there.

In quest code, or in dialogs which are not specific to the storyline, you could use this condition:
Code:
if (FindCurrentStoryline() == FindStoryline("JackSparrow"))
{
    <What Jack Sparrow does>
}
else
{
    <What everyone else does>
}

Thanks, in my thoughts it's more a matter that he wouldn't go to see him to report anything so the change in dialogue is to say something appropriate (and different from anyone else) to the Apothecary when/if he suggests it. So your code example should be fine to allow me to program that.
 
I've just read the readme on how to report a bug. And discovered that I should mention, that I have modified the internalsettings.h
The following lines are changed:
#define ENABLE_EXTRA_SOUNDS 0 // BOOL - Enable/Disable added sound effects.
#define SIDESTEP_ENABLED 1 // BOOL - 0 (default) = off, 1 = on: you can use sidestep during the game (NOTE: No collision detection!)
#define ENABLE_CHEATMODE 0 // Cheats can be triggered with numpad buttons
 
Looking at bit further into this one I note that if you give up the quest after starting the hotel puzzle it remains set. That's logical (since on-one has cleared the hotel) but unfortunately the looping chair check will be running if you haven't done that element. This gradually fills compile log and presumably has ongoing performance impact however little that may be. @Jack Rackham what would you prefer to see happen - I can give the item to the player to stop the loop and leave a partial puzzle or lock the rooms after to prevent any access, but that leaves the matter only partially resolved.

Ideally it should be cleared as you return from Cartagena (rather than on giving up at the Apothecary) otherwise it will still be set if the player just walks away and never gives up/completes the quest.

I have picked up a couple more wayward earlier dialogues that could re-emerge on giving up and then re-visiting characters (mostly because of the attribute approach to controlling the shared dialogue files).
 
I'm sorry but I don't remember it at all. Where's that chair check placed?
Maybe it can be written not as a loop but in another way?
 
Ok, I found it and changed it. The "chair_45_check" is only called from one place.

I replaced
Code:
LAi_QuestDelay("chair_45_check", 0);
with
Code:
pchar.quest.chair_45_check.win_condition.l1 = "item";
            pchar.quest.chair_45_check.win_condition.l1.character = Pchar.id;
            pchar.quest.chair_45_check.win_condition.l1.item = "chair_45";
            pchar.quest.chair_45_check.win_condition = "chair_45_check";

and the loop isn't a loop any longer:
Code:
    case "chair_45_check":
    //        if(CheckCharacterItem(Pchar,"chair_45"))
    //        {
                ChangeCharacterAddressGroup(characterFromID("Dusty_Broome"), "Cartagena Hotel", "goto", "goto2");
                TakeItemFromCharacter(pchar, "chair_45");
                PlaySound("PEOPLE\wood1.wav");
                SetLocatorRadius(locations[FindLocation(Pchar.location)], "reload", "reload2", 0.7);   
                Locations[FindLocation("Cartagena_hotel_office")].locators_radius.reload.reload2 = 0.7;    //to hotel corridor
                Locations[FindLocation("Cartagena Hotel")].reload.l5.disable = false;            //to office
                Locations[FindLocation("Cartagena Hotel")].locators_radius.reload.reload8 = 0.4;    //window
                ChangeCharacterAddressGroup(characterFromID("Dusty_Broome"), "Cartagena Hotel", "goto", "goto2");
    //        }
    //        else LAi_QuestDelay("chair_45_check", 0.5);//loop check

@pedrwyth is it possible for you to test if this works ok?
 

Attachments

  • quests_side.c
    739.7 KB · Views: 125
@pedrwyth is it possible for you to test if this works ok?

OK I will see how that works. Thanks for the quick response - Mine won't be as quick! If it works (or I hope that should be when it works) the puzzle can stay set even if the player decides to give up the quest (it can still be done as a puzzle even without the reward - since Dusty will probably have been removed to avoid him just giving the plants as per the spoiler in post #4)
 
Back
Top