• 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 Opium Smuggling: Fast Travel Remains Disabled Even After Quest Completes

gianflores13

Sailor Apprentice
After giving the opium report to the guv'ner, i keep getting these messages.

"Can't leave place"
"Something's going to happen here"

Been doing random stuff and stuff but I still get the same messages. Can't figure out what to do.
So am I supposed to do something or is it a bug?

Your help is much appreciated.

by the way. I gave him the 3 lists. the opium list. medical something and opium report. I also asked him if he have read my report.
 
Are you carrying opium around?
If I recall, you may get that effect of the soldiers try to catch you.
I think you can just walk out of the location, can't you?
 
i don't have any opium. tossed it already. still can't fast travel. that is the only issue that I have. I can't fast travel. and I am wondering if I have to do something because the quest book update was pretty open-ended, "for now"
so I'm wondering if I have to do something therefore preventing me to fast travel or it's a bug or something. Appreciate the help Pieter
 
I'm not particularly familiar with the whole opium Smuggling business.
Never played it myself and somebody else who is no longer here actually made that feature.

Maybe @Talisman, @ANSEL or @Jason are more familiar with it?
 
"Can't leave place"
"Something's going to happen here"
Which places exactly is it you cant leave, is it Governors office ore some thing else.
Is it only the fast travel that's trouble you, or can you not walk away at all?
There could be a lot of intended reason for the fast travel not to work .
 
i don't have any opium. tossed it already. still can't fast travel. that is the only issue that I have. I can't fast travel. and I am wondering if I have to do something because the quest book update was pretty open-ended, "for now"
so I'm wondering if I have to do something therefore preventing me to fast travel...
Very probably. Messages such as "You can't leave this location now" or "Something is going to happen here" result if you try to fast-travel in a location where a quest is active. Which town are you in and what quests are active in your questbook?
 
martinique, trying to fast travel to anywhere, from anywhere. tried it all. tavern to shipyard, store to office. etc etc. the only fast travel that works it back to ship deck.

I don't have any opium on me. this happened after submitting the final opium report to the governor. i can walk properly but no fast travel.

also other issue, after trying to fast travel (it fails of course) i can't speak to anyone, citizens, officers or stores owners, literally anyone unless I move somewhere else, meaning I go outside or enter a new location.
 
as for the quest, the only quest active is

1. nigel blythe, which I haven't started yet, nigel is still in nevis(?).

2. and the smuggling life for me quest, which I think is done because I already submitted the final report. Although it doesn't appear to be finished yet because the quest book update is pretty open ended.
 
Do you have any of the following quests active:
Saga of the Blacque Family
Patric and the Idols
A Girl Won in a Card Game - particularly if you've won the game and are ready to take Virginie D'Espivant to Martinique tavern
Help the Boatswain

They're the ones which involve Martinique and which could perhaps affect fast travel.

Update: while I was writing that, you were effectively answering it!

Nigel Blythe shouldn't be an issue, so it looks as though either there's something else to do for the opium quest or it didn't close properly.
 
I know the smuggling quest stuff does have some "disable fast travel" functionality in it.
But I don't know the specifics of when that gets triggered or disabled again.
 
No, I don't have any of those active.

I have not played the Opium Part of the new Smuggling system yet - so I am not sure what has happened

Which Story line are you playing - Free Play or one of the Stories?

Can you upload/ attach a Save file from before you talked to the Governor & things went strange.

Also a Save file from after things went wrong could be useful.

You have to zip/compress the files then use the Upload a File Button.

Also could you attach any error logs ( error - system - compile files ) from your game's Pirates of the Caribbean folder when the the at a point where the game breaks, as these may provide a clue.

:cheers
 
Using Arcade mode - Free play story

I have been playing the Opium Smuggling. ( have not yet worked for a Governor -getting him a report )

After I buy the opium from the Opium Den - Fast Travel is disabled ( I think this is deliberate - to stop players avoiding the soldier ambush when they are carrying Opium).

Question - Should the soldiers just ambush the player in the town with the Opium den - or should they do that in any town you visit if you are carrying the Opium you bought in the Opium Den? ( so far it seems the soldiers only do the ambush in the town with the Opium Den - not in other towns)

I go and give the Opium to the buyer ( within the 2 month time limit ) - but the Fast Travel remains disabled - in every Town & Port I go to.

Remains disabled for over 2 months then reactivates.

E.G.

1 - On 18th Sept - get order from Loanshark on Tortuga to supply him within 2 months. ( Attached SAVE - La Tortue Port - is just before this )

2 - 26th Sept - Buy Opium from Opium Den ( Fast travel disabled - icons bottom left of screen do not appear ) - sail back to Buyer.

3 - 2nd Oct - give Buyer Opium ( and toss extra I was carrying). - Fast travel still disabled. ( icons reappear bottom left of screen BUT when used get log message top left of screen - You can't leave this location - something is going to happen here. -- see image ) Fast Travel disabled only in the Town or Port - if you are somewhere else e.g. tavern Room then you can Fast Travel OK. ( Attached SAVE - Hispaniola - is in La Tortue Store right after giving Buyer his Opium and getting rid of the extras - so now not carrying any )

4 - 8th Dec - Fast travel reactivates. ( Attached SAVE PortauPrince - is here )


I also had to change the timer code for the quest - here :- in quests_common.c

Code:
case "Start Opium Smuggle Quest":
       //Keep track of how many times we did this
       if(!CheckAttribute(Pchar,"amount_smuggleruns_opium")) Pchar.amount_smuggleruns_opium = 0;
       Pchar.amount_smuggleruns_opium = sti(Pchar.amount_smuggleruns_opium) + 1;
       questbookname = "smuggle_opium&number="+Pchar.amount_smuggleruns_opium; //Set a questname
       //Add Questbook Data
       Preprocessor_AddQuestData("buyer", PChar.quest.opium_smuggling.lastbuyer.name);
       Preprocessor_AddQuestData("place", GetPrettyLocationName(pchar.location));
       Preprocessor_AddQuestData("amount", PChar.quest.opium_smuggling.lastbuyer.amount);
       SetQuestHeader(questbookname);
       AddQuestRecord(questbookname, 1);
       Preprocessor_Remove("buyer");
       Preprocessor_Remove("place");
       Preprocessor_Remove("amount");
       //Set attribute to keep track the quest is bussy
       PChar.quest.opium_smuggling.questgiven = true;
       //Set expiration timer
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1 = "Timer";
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.day = GetAddingDataDay(0,0,2);  < ---- HERE  - this closes quest after 2 days not 2 months
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.month = GetAddingDataMonth(0,0,2);  <---- HERE - this closes quest after 2 days not 2 months
      PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.year = GetAddingDataYear(0,0,2); <----HERE- this closes quest after 2 days not 2 months
       PChar.quest.Opium_Smuggling_Expire.win_condition = "Opium Smuggle Expire";
     break;


to this

Code:
case "Start Opium Smuggle Quest":
       //Keep track of how many times we did this
       if(!CheckAttribute(Pchar,"amount_smuggleruns_opium")) Pchar.amount_smuggleruns_opium = 0;
       Pchar.amount_smuggleruns_opium = sti(Pchar.amount_smuggleruns_opium) + 1;
       questbookname = "smuggle_opium&number="+Pchar.amount_smuggleruns_opium; //Set a questname
       //Add Questbook Data
       Preprocessor_AddQuestData("buyer", PChar.quest.opium_smuggling.lastbuyer.name);
       Preprocessor_AddQuestData("place", GetPrettyLocationName(pchar.location));
       Preprocessor_AddQuestData("amount", PChar.quest.opium_smuggling.lastbuyer.amount);
       SetQuestHeader(questbookname);
       AddQuestRecord(questbookname, 1);
       Preprocessor_Remove("buyer");
       Preprocessor_Remove("place");
       Preprocessor_Remove("amount");
       //Set attribute to keep track the quest is bussy
       PChar.quest.opium_smuggling.questgiven = true;
       //Set expiration timer
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1 = "Timer";
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.day = GetAddingDataDay(0,2,0);  // TALISMAN corrected - timer was 2 days?!! not 2 months - PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.day = GetAddingDataDay(0,0,2);
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.month = GetAddingDataMonth(0,2,0);  // TALISMAN corrected - timer was 2 days?!! not 2 months - PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.month = GetAddingDataMonth(0,0,2);
       PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.year = GetAddingDataYear(0,2,0);  // TALISMAN corrected - timer was 2 days?!! not 2 months - PChar.quest.Opium_Smuggling_Expire.win_condition.l1.date.year = GetAddingDataYear(0,0,2);
       PChar.quest.Opium_Smuggling_Expire.win_condition = "Opium Smuggle Expire";
     break;

So that timer would last 2 months as per the quest book. I don't know whether this timer affects the Fast Travel disabling :shrug


There is this code in Smuggling.c - I think this disables the Fast travel - but don't know where the code to restore it is.



Code:
//Interface function
//This makes sure fast traveling is disabled when opium smuggling is active so we can't skip the guards
bool AllowFastTravelForSmuggling()
{
   ref pchar = GetMainCharacter();
   if(CheckAttribute(pchar,"quest.opium_smuggling.active"))
   {
     if(CheckCharacterItem(pchar,"opium") && pchar.quest.opium_smuggling.active == "1")
     {
       if(DEBUG_SMUGGLING>0)trace("FAST TRAVEL disabled for smuggling stuff");
       return false;
     }
     if(CheckAttribute(pchar,"quest.smuggling.spotted" )) return false;
   }
   return true;
}

Is the disabled Fast Travel supposed to be on a timer or is Fast Travel supposed to be restored as soon as the player gets rid of the Opium they are carrying? :shrug


:drunk
 

Attachments

  • PotC_B14Beta4_Smug_FastTravDisabled.jpg
    PotC_B14Beta4_Smug_FastTravDisabled.jpg
    293.6 KB · Views: 188
  • -=Player=- Hispaniola. La Tortue port.7z
    604.3 KB · Views: 147
  • -=Player=- Hispaniola.7z
    603.4 KB · Views: 168
  • -=Player=- PortauPrince.7z
    610.4 KB · Views: 169
I played the quest to the end yesterday, and yes Fast Travel is disabled
until you have the last dialog whit the governor ( he says something like:
You have to see what future brings us) Quest close and fast travel is enabled
again. I ques this is how is meant to be working.
 
Levis is the only one who would know the true intentions. Of course he hasn't been around again for a while.

Maybe it is that "spotted" attribute that is the cause.
But I do not know when that is set and removed or why.
That would need to be investigated.

First suggestion: Add a Trace line there too so compile.log will have something to say.

Plus use the Windows Search Index to see if the relevant code can be traced throughout the game files.
 
If I understand that code @Talisman posted, it is basically wrong.
"Spotted" is related to REGULAR smuggling (gets set when you're caught on the beach), but here it applies exclusively for the OPIUM smuggling.

Please try this instead:
Code:
bool AllowFastTravelForSmuggling()
{
   ref pchar = GetMainCharacter();
   if(CheckAttribute(pchar,"quest.opium_smuggling.active"))
   {
     if(CheckCharacterItem(pchar,"opium") && pchar.quest.opium_smuggling.active == "1")
     {
     //   if(DEBUG_SMUGGLING>0)
         trace("FAST TRAVEL disabled for opium smuggling");
       return false;
     }
   }
   if(CheckAttribute(pchar,"quest.smuggling.spotted"))
   {
   //   if(DEBUG_SMUGGLING>0)
       trace("FAST TRAVEL disabled because you were spotted smuggling");
     return false;
   }
   return true;
}
Note the brackets being in a different spot.

I don't think that will actually solve the actual issue here though; that is why I added some extra debug logs as well.
Please try it again with this, then check what of these logs you see in compile.log .
 
I have made the changes as per @Pieter Boelen ' s post and set Debug to 3 in smuggling.c - and kept my changes to the timer in quests_common.c

I tried this time with a different customer from the buyers list ( Nevis - Pirate Blacksmith ) - the same thing happens - Fast Travel remains disabled after I have got rid of all the Opium to the Buyer. Checked this by going to Charlestown.

The only thing I can see are these entries in the Compile .log

Code:
SETTING MUSIC: music_pir_town
OPIUM SMUGGLING set new ambush
OPIUM SMUGGLING expire after 25 days and 1 month                 <<<-------
Quest name Opium_set_first_ambush FOUND in CommonQuestComplete
Quest name Opium Smuggle Got Opium FOUND in CommonQuestComplete
Quest name Smugglers Opium Discovery FOUND in SideQuestComplete
OPIUM SMUGGLING set new ambush
OPIUM SMUGGLING expire after 18 days and 2 month             <<<<<------
Quest name Opium_set_first_ambush FOUND in CommonQuestComplete
Quest name Opium Smuggle Got Opium FOUND in CommonQuestComplete
Quest name Smugglers Opium Discovery FOUND in SideQuestComplete
OPIUM SMUGGLING set new ambush
OPIUM SMUGGLING expire after 17 days and 1 month             <<<<------
Quest name Opium_set_first_ambush FOUND in CommonQuestComplete
Quest name Opium Smuggle Got Opium FOUND in CommonQuestComplete
Quest name Smugglers Opium Discovery FOUND in SideQuestComplete
OPIUM SMUGGLING set new ambush
OPIUM SMUGGLING expire after 9 days and 2 month              <<<<----------
Quest name Opium_set_first_ambush FOUND in CommonQuestComplete
Quest name Opium Smuggle Got Opium FOUND in CommonQuestComplete
Quest name Smugglers Opium Discovery FOUND in SideQuestComplete
OPIUM SMUGGLING set new ambush
OPIUM SMUGGLING expire after 19 days and 1 month            <<<<--------------------
Quest name Opium_set_first_ambush FOUND in CommonQuestComplete
Quest name Opium Smuggle Got Opium FOUND in CommonQuestComplete
Quest name Smugglers Opium Discovery FOUND in SideQuestComplete
Reload: Process started for locator_name = reload1 and lockedReloadLocator =
reload_cur_island_index = -1
reload_cur_location_index = 734

Which I do not understand :shrug

It is something to do with this case in quests_common.c -- I think - which appears to calculate how long the guards will be able to detect you if you are carrying Opium ( so I assume this means this also controls how long Fast Travel is disabled ) :read

Code:
case "Opium_set_first_ambush":
       if(DEBUG_SMUGGLING>2)trace("OPIUM SMUGGLING set new ambush");
       //After this time guards won't detect you anymore
       int expdays = 1+rand(27);
       int expmonths = 1+rand(1);
       pchar.quest.opium_smuggling.expday = GetAddingDataDay(0, expmonths, expdays);
       pchar.quest.opium_smuggling.expmonth = GetAddingDataMonth(0, expmonths, expdays);
       pchar.quest.opium_smuggling.expyear = GetAddingDataYear(0, expmonths, expdays);
       if(DEBUG_SMUGGLING>2) trace("OPIUM SMUGGLING expire after "+expdays+" days and "+expmonths+" month");
       pchar.quest.opium_smugglingset.win_condition.l1 = "ExitFromLocation";
       pchar.quest.opium_smugglingset.win_condition.l1.location = pchar.location;
       pchar.quest.opium_smugglingset.win_condition = "Opium_Ambush";
       pchar.quest.opium_smuggling.active = 1;
       Lai_QuestDelay("Opium Smuggle Got Opium",0.0);
       Lai_QuestDelay("Smugglers Opium Discovery",1.0);
     break;

I was caught by a guard in Port Royale - he took the Opium from me so I went back to Opium den & bought some more

Attached is a copy of my quests_common.c which goes in PROGRAM\Quests -- and a copy of my smuggling.c which goes in PROGRAM

Also some SAVES :-
Nevis -Pirate Settlement Port ( before getting opium order from Blacksmith )
Jamaica Port Royale Centre ( Before entering Opium Den to buy 1st Time - just outside )
Open Sea - (arriving Back At Nevis with Opium).


I think I may be playing the Quest in the wrong way:facepalm - perhaps you are supposed to play it as an agent of the Governor :shrug - so I am going to start a new game and play it that way and see what happens. :read

:drunk
 

Attachments

  • -=Player=- Nevis. Pirate Settlement port. September 22nd, 1708.7z
    608.8 KB · Views: 152
  • -=Player=- Jamaica. Port Royale. Center. October 1st, 1708.7z
    612.6 KB · Views: 162
  • -=Player=- Open Sea October 8th, 1708.7z
    591.8 KB · Views: 160
  • smuggling.c
    69.4 KB · Views: 170
  • quests_common.c
    216.7 KB · Views: 164
  • error_smug2.log
    350 bytes · Views: 175
  • compile_smug2.log
    60.1 KB · Views: 158
  • system_smug2.log
    7.8 KB · Views: 180
Last edited:
Back
Top