• 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 Thomas O Reilly quest cannot be completed due to nation relations

Hylie Pistof

Curmudgeon
QA Tester
Storm Modder
Pirate Legend
I wuz double crossed! :rumgone

I started at Port Royal and decided to take the trade mission carrying cargo from Port Royal to Martinique for a fee, payable upon completion. So I did it and a while later I made it back to Port Royal to pick up my fee. But that Reilly character refuses to talk to me! Bloody merchants. :pflag

Sure England and France are at war but I came in under a Portagee flag whom are friendly with the English. I really do NOT like dealing with honest people. :nerbz
 
He's telling to get out our he'll call the guards, is he?

False Flags work for merchant dialogs, but of course there is a detection chance involved there too.
And once you're detected, the Merchant remembers for next time.
You should be able to continue if you make peace with England first.

There is code in place to always allow you to complete a regular trade quest.
But of course that doesn't apply for the side quest.
I wonder if a similar case needs to be added to allow you to finish what you started.
 
Yes I could wait until I get enough money and then bribe the governor and then collect from OReily, or I can try to bankrupt him.
 
Yes I could wait until I get enough money and then bribe the governor
If you're OK with that, then no fixing is needed.
If you do want to see something done, please upload a savegame, ideally for the 5 Nov 2015 version.

....or I can try to bankrupt him.
I doubt that will convince him. And he wouldn't be able to pay you for your services then.
Also, that would mean bankrupting the WHOLE TOWN! :shock
 
Moved this here. I think it would be good to have an exception for this too because its now tied to the smugglers liking you, so independency of the nation relations would be nice.
 
The reason for this is that the TradeCheck function in PROGRAM\Characters\CharacterUtilite.c function can return false if you're hostile.
When that happens, the merchants or shipyard owners will not wish to do business with you.

At the bottom of that function there are a few lines to allow you to finish any regular cargo quests at that trader regardless of your relations:
Code:
//MAXIMUS -[we are here already, why we can't complete our mission?]->
   if(first && CheckQuestAttribute("generate_trade_quest_progress", "begin") || CheckQuestAttribute("generate_trade_quest_progress",  "failed"))
   {
     if(char.quest.generate_trade_quest_progress.iTradeColony == GetCurrentTownID()) return true;
   }
//MAXIMUS <-[we are here already, why we can't complete our mission?]-
   return false;
}

That is supported through this section in the various traders' dialogs:
Code:
        if(TradeCheck(PChar, NPChar, false)) {
           Link.l1 = DLG_TEXT[14];
           Link.l1.go = "Trade"; }
           Link.l2 = DLG_TEXT[15];
           Link.l2.go = "quest lines";
           Link.l3 = DLG_TEXT[16];
           Link.l3.go = "exit";
         }

For Thomas O'Reilly, an extra exception would need to be added for this one:
Code:
      if (NPChar.quest.first_job == "complete" && iTest < QUEST_COUNTER)
       {
         Link.l1 = characters[GetCharacterIndex(DLG_TEXT[30])].lastname + DLG_TEXT[31] + GetMyName(NPChar) + DLG_TEXT[32];
         Link.l1.go = "first_job_complete";
         iTest = iTest + 1;
       }
Then you could at least finish the quest, but probably still not start the "part 2" because he'll refuse to talk to you again afterwards.
Would that one need to be enabled as well?

I'm not entirely sold on adding a very quest-specific check into a very general game function though, so I wonder if something else could be thought of....
 
Code:
if(TradeCheck(PChar, NPChar, true)) { // NK
            if(NPChar.quest.meeting == "0")
            {
                d.Text = DLG_TEXT[4] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[5];
                Link.l1 = DLG_TEXT[6] + GetMyFullName(PChar) + DLG_TEXT[7];
                Link.l1.go = "meeting";
                NPC_Meeting = "1";
            }
            else
            {
                dialog.snd1 = "";
                dialog.snd2 = "";
                dialog.snd3 = "";
                d.Text = RandPhrase(TimeGreeting() + DLG_TEXT[8] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + " " + DLG_TEXT[9] + GetMyName(Pchar) + DLG_TEXT[10], DLG_TEXT[11] + GetMyName(Pchar) + DLG_TEXT[12], DLG_TEXT[13], &dialog, dialog.snd1, dialog.snd2, dialog.snd3);
                if(TradeCheck(PChar, NPChar, false)) {
                Link.l1 = DLG_TEXT[14];
                Link.l1.go = "Trade"; }
                Link.l2 = DLG_TEXT[15];
                Link.l2.go = "quest lines";
                Link.l3 = DLG_TEXT[16];
                Link.l3.go = "exit";
            }
            // NK -->
            }
            else
            {
                dialog.text = DLG_TEXT[197] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[198];
                Link.l1 = DLG_TEXT[199];
                Link.l1.go = "exit";
                if(sti(PChar.Skill.Commerce)>=5)
                {
                    Link.l2 = LanguageConvertString(tmpLangFileID,"low_trade_1");
                    Link.l2.go = "low_price";
                }
                if (Characters[GetCharacterIndex("Milon Blacque")].quest.son == "2") // NK - && iTest < QUEST_COUNTER)
                {
                    Characters[GetCharacterIndex("Milon Blacque")].quest.son = "money";
                    link.l3 = DLG_TEXT[37];
                    link.l3.go = "marc";
                }
                Diag.TempNode = "First time";
            }
Just moving the quest lines option to the else statement should do it right?
 
You could do as an exception for Thomas O'Reilly only.
I suppose with him offering a smuggling quest, it does fit with his personality.
 
You could do as an exception for Thomas O'Reilly only.
I suppose with him offering a smuggling quest, it does fit with his personality.
 
this is from thomas o reilly dialog file
 
The solution I found was to talk to Marc Blaque. Then when I went into the store to pay his money OReily did talk to me. He paid me the money he owed me plus I bought and sold some things.

Then later still France and England became friendly and I could sail right into the harbor without getting sunk by the fort.
 
Moved this here. I think it would be good to have an exception for this too because its now tied to the smugglers liking you, so independency of the nation relations would be nice.
Is the "Cargo for Thomas O'Reily" side quest also dependent on your relations with smugglers? I knew that "Smuggling for Thomas O'Reily" now requires smugglers to like you, which is annoying enough, but if I'm losing the cargo side quest as well due to not doing any routine smuggling then it will be even worse...
 
Only the smuggling one ;).
 
Is the "Cargo for Thomas O'Reily" side quest also dependent on your relations with smugglers? I knew that "Smuggling for Thomas O'Reily" now requires smugglers to like you, which is annoying enough...
Looks like they don't actually need to like you; you just need to have smuggled a bit before:
Code:
CheckSmugglingAmount(pchar) > 1500
 
Looks like they don't actually need to like you; you just need to have smuggled a bit before:
Code:
CheckSmugglingAmount(pchar) > 1500
Still enough to put that quest out of my reach since about the only time I do smuggling is right at the beginning of the Standard storyline with a stormy start. Oh well, I never got round to playing it earlier since normally I go to Martinique early and help Turpin Cabanel instead. 5000 gold up front when it will do me some real good is preferable to whatever Thomas O'Reily will offer for the smuggling quest at some later time when I'm probably rich by other methods. It would have been nice to keep the quest available for later when I'm going round collecting all the side quests, but no great loss.
 
Back
Top