• 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 Patric Cardone does not need you to visit Lucien Bescanceny

Grey Roger

Sea Dog
Staff member
Administrator
Storm Modder
In the side quest "Patric and the Idols", Patric Cardone tells you that he's been swindled by a Spaniard named Teodoro Fernandez. The tavern keeper recognises Teodoro's description but not the name, and says he was talking to Lucien Bescanceny. You go to Lucien Bescanceny's house, have a little chat about statuettes, then report back to Patric that you've found the statuettes and the thief.

If, after leaving the tavern, you talk to Patric first, he says Teodoro ran into a house next to the church. There you find Raoul Calmes, who denies knowing Teodoro but says someone ran out of the back door. You can then "persuade" him to let you read a letter, which ties him to smuggling. Now you can talk to Patric again and tell him you've found the statuettes and the thief without ever going near Lucien Bescanceny, meaning you have in fact not found either the statuettes or the thief.

If you visit Lucien Bescanceny first and then report to Patric, he'll still send you to Raoul Calmes' house so you can get the letter. That letter isn't for Patric's quest, it's your evidence that you know who's behind the smuggling which is a problem for portmaster Turpin Cabanel.
 
So how should it be according to you?
Can you fix it yourself?
 
I'd have thought that visiting Raoul Calmes' house shouldn't prevent you from needing to visit Lucien Bescanceny. At this point you haven't found the statutettes or the thief - Calmes is part of the smuggling ring and once you've seen him, you can report to Turpin Cabanel.

What's doing it, I think, is this section in "raoul calmes_dialog.c":
Code:
    case "node_11":
       dialog.text = DLG_TEXT[35];
       link.l1 = DLG_TEXT[36];
       link.l1.go = "exit";
       characters[GetCharacterIndex("Patric Cardone")].quest.teodoro = "5";
If the "Patric and the Idols" quest is in state 5 then next time you talk to Patric, you tell him you found the statuettes and the thief, just as if you'd already visited Lucien. I'm not sure if it would break anything else if that line is removed from "raoul calmes_dialog.c". (Visiting Lucien Bescanceny and fighting him also results in "Patric and the Idols" being put to state 5.)
 
That might just work. That dialog DOES point you towards Lucien, right?
 
No, state 5 is where you've already been to visit Lucien, so that is the line which points you away from Lucien, making Patric think you've already seen him.

And getting rid of it does indeed break the quest elsewhere. You talk to the tavern keeper, who tells you about Lucien; then you talk to Patric, who says Teodoro has just gone into Raoul's house; you visit Raoul and get the letter; then you talk to Patric again, who now asks how the mission is going and you say you haven't found anything yet; and then you visit Lucien, who is drunk and doesn't say anything. This is probably why someone added the line in Raoul's dialog to bypass the visit to Lucien.

But if you work your way through the various dialog.c files plus "quests_side.c" and trace what the program is doing, you can see why this happens.

You talk to the tavern keeper, who tells you about Lucien and sets the quest to state 4. This is Lucien's cue to wake up and talk about statuettes. But it's also Patric's cue to tell you where Teodoro has just gone, and when he does, he sets the quest to state 6. That's so that if you leave Raoul's house and talk to Patric again, he doesn't repeat the line about Teodoro going into the house. Lucien doesn't recognise state 6 so he stays in his default drunken stupor. But if you edit "lucien bescanceny_dialog.c", find this line:
Code:
if (characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "4")
and extend it like this:
Code:
if (characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "4" || characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "6")
then Lucien recognises both state 4 (straight after you've been to the tavern) and state 6 (you talked to Patric after the tavern), you get to fight him, and the fight (in "quests_side.c", case "lucient_bescanceny_fight") puts the quest to state 5 (you've fought Lucien).

I've tried it and it seems to work. But it would be useful if other people try the quest in case they find different paths through it that I didn't find, which now break. So here are "raoul calmes_dialog.c" with the change to state 5 commented out (not removed in case we want to re-activate it), "lucien_bescanceny_dialog.c" with the condition line changed, and a savegame with Bartolomeu o Portugues standing in front of Patric Cardone ready to begin the quest.
 

Attachments

  • raoul calmes_dialog.c
    5.4 KB · Views: 103
  • lucien bescanceny_dialog.c
    4 KB · Views: 119
  • -=Player=- Martinique.zip
    685.8 KB · Views: 77
No, state 5 is where you've already been to visit Lucien, so that is the line which points you away from Lucien, making Patric think you've already seen him.
I meant the text in the dialog. So that a player would get the hint of where to go next.

And getting rid of it does indeed break the quest elsewhere. You talk to the tavern keeper, who tells you about Lucien; then you talk to Patric, who says Teodoro has just gone into Raoul's house; you visit Raoul and get the letter; then you talk to Patric again, who now asks how the mission is going and you say you haven't found anything yet; and then you visit Lucien, who is drunk and doesn't say anything. This is probably why someone added the line in Raoul's dialog to bypass the visit to Lucien.

But if you work your way through the various dialog.c files plus "quests_side.c" and trace what the program is doing, you can see why this happens.

You talk to the tavern keeper, who tells you about Lucien and sets the quest to state 4. This is Lucien's cue to wake up and talk about statuettes. But it's also Patric's cue to tell you where Teodoro has just gone, and when he does, he sets the quest to state 6. That's so that if you leave Raoul's house and talk to Patric again, he doesn't repeat the line about Teodoro going into the house. Lucien doesn't recognise state 6 so he stays in his default drunken stupor. But not if you edit "lucien bescanceny_dialog.c", find this line:
Code:
if (characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "4")
and extend it like this:
Code:
if (characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "4" || characters[GetCharacterIndex("Patric Cardone")].quest.teodoro == "6")
Now Lucien recognises both state 4 (straight after you've been to the tavern) and state 6 (you talked to Patric after the tavern), you get to fight him, and the fight (in "quests_side.c", case "lucient_bescanceny_fight") puts the quest to state 5 (you've fought Lucien).

I've tried it and it seems to work. But it would be useful if other people try the quest in case they find different paths through it that I didn't find, which now break. So here are "raoul calmes_dialog.c" with the change to state 5 commented out (not removed in case we want to re-activate it), "lucien_bescanceny_dialog.c" with the condition line changed, and a savegame with Bartolomeu o Portugues standing in front of Patric Cardone ready to begin the quest.
Nicely traced! :bow
 
I meant the text in the dialog. So that a player would get the hint of where to go next.
By the time you meet Raoul Calmes, you already know about Lucien because Patric sends you to Raoul's house when the quest has been set to state 4. That happens when the tavern keeper tells you about Lucien; he also tells you the location of Lucien's house.
 
So this is fixed now?
 
Done. What's "Cannot Confirm" for?
 
Done. What's "Cannot Confirm" for?
People report stuff. We cannot replicate it when we try. Happens once in a while.
Usually I file that as Not a Bug, though technically that only applies when we KNOW it isn't a bug while in some cases we may not be sure but cannot replicate it when we try.
This would apply mainly to very inconsistent issues that might still be real.
 
OK, I'll update the pinned thread with the new prefixes and descriptions. :onya
 
Update: there was still a problem. If you go to the tavern to learn about Lucien Bescanceny, then go directly to visit Lucien without talking to Patric first, the scene with Lucien puts the quest into state 5. When you then talk to Patric, the quest goes to state 6 and since Raoul Calmes no longer puts it to state 5, and Lucien can't do so due to being dead, the quest can never get back to state 5 and therefore can't complete.

This version of "patric cardone_dialog.c" fixes that. The line which puts the quest to state 6, within 'case "Second Time"', now has a condition so the quest won't be put to state 6 if it's already in state 5:
Code:
if (npchar.quest.teodoro != "5") NPChar.quest.teodoro = "6";
I'd still like other people to test this quest in case they can find ways to break it that I haven't found...
 

Attachments

  • patric cardone_dialog.c
    11 KB · Views: 103
Back
Top