• 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 Smuggling: Smugglers wont talk with you after coastguard appears

So I think we can say this is fixed right?
@Kpax7 did not kill the soldiers prior to talking to the smugglers, if I understand correctly.
That would be one more required check, I think?

I'd be happy to help! Just give me a clue about what needs to be done!
In this case, As far as I know I should find better sounds and upload them for you to put them (replace) on your game for next patch. Did I miss something?
Location types are defined in the PROGRAM\Locations\init files.
The church, appropriately, uses "church":
Code:
  //Sound
   locations[n].type = "church";
The sound scheme is then linked to the location type through PROGRAM\sound\sound.c:
Code:
    case "church":
       SetSoundScheme("church");
       SetMusicAlarm("music_church");
       break;
This then corresponds to this section in RESOURCE\INI\ALIASES\sound_alias.ini:
Code:
[church]
minDistance = 3.5
maxDistance = 7.0
volume = 0.2
name = AMBIENT\CHURCH\pope_out_01.wav
I'm a bit confused now on how this works as there is also this section in RESOURCE\INI\sound_scheme.ini:
Code:
[church]
ch = snooze, 5, 15, 0.55
ch = AMBIENT\SHOP\cough.wav, 50, 150, 0.25
ch = noise, 15, 25, 0.47
ch = noise, 15, 25, 0.47
ch = noise, 15, 25, 0.47
ch = AMBIENT\silent_talks.wav, 76, 80, 0.35
ch = bell, 25, 45, 0.37
ch = bench, 15, 45, 0.50
I think the "snooze" there does correspond with the "snooze" in sound_alias.ini .
The .wav files there are in the RESOURCE\Sounds folder.
 
@Kpax7 could you also try to do a smuggling run and kill the coastguard troops first and then try to talk to the smugglers?
 
Small question about smuggling:

If you talk to the tavern Girl before talking to the soldier - you don't have to bribe the soldier.

It does not matter what you say to the tavern girl - all you have to do is talk to her. - Is this correct ? :confused:

I thought that you had to have the "lets spend some time together in a room" dialog with the tavern girl in order not to have to bribe the soldier. :shrug


:cheers
 
If you talk to the tavern Girl before talking to the soldier - you don't have to bribe the soldier.

It does not matter what you say to the tavern girl - all you have to do is talk to her. - Is this correct ? :confused:

I thought that you had to have the "lets spend some time together in a room" dialog with the tavern girl in order not to have to bribe the soldier. :shrug
Uhm... That's what I thought too. o_O

@Levis: Doing that adds an attribute to the player, right? Is that attribute ever removed again?
Otherwise you'd need to do it once and you can fool the soldiers afterwards every time. :shock
 
You need to have used the "spend night with option" yes. And it will only work in that specific tavern. So you need to spend the night with the officiant in each tavern if you want to bypass the bribe everywhere.
 
You need to have used the "spend night with option" yes. And it will only work in that specific tavern. So you need to spend the night with the officiant in each tavern if you want to bypass the bribe everywhere.

:no - All I do is talk to the tavern girl - ( does not matter about the dialog ) - then talk to the soldier & I don't have to bribe him. So far it has worked in any tavern.

Very early in the game I did get the "spend a night dialog" and used it - but that was only in one tavern - so if @Levis is correct it should not affect the other taverns in the other towns. So could that be affecting the other taverns.

@Levis: Doing that adds an attribute to the player, right? Is that attribute ever removed again?
Otherwise you'd need to do it once and you can fool the soldiers afterwards every time. :shock


I will have to check - talk to the soldier without talking to the tavern girl and see if he asks for a bribe. ;)


:drunk
 
If this function returns true you shouldn't need to bribe:
Code:
bool CheckOfficiantHadSex(string townid)
{
    ref PChar = getMainCharacter();
    if(!CheckAttribute(PChar,"Sexwith")) return false;
    if(!CheckAttribute(PChar,"Sexwith."+GetTownOfficiant(townid))) return false;
    return true;
}
 
:ahoy


Just checked in Puerto Rico - where I have just arrived for first time ( have not smuggled here )

Talked to Smugglers Agent - then talked to soldier in tavern ( without talking to Tavern Girl) - soldier told me times without asking for bribe. :D

Attached Save is before entering tavern:


PS -

In above post (#28) - in the code is this an error --- 1st sexwith -> "Sexwith" --- 2nd -->>> "Sexwith." Should the . be there ? :confused:

:rumgone
 

Attachments

  • -=Player=- Puerto Rico. San Juan. Trade Square April 30th, 1751.7z
    613.5 KB · Views: 102
  • error.log
    136 bytes · Views: 102
  • compile.log
    75.6 KB · Views: 100
  • system.log
    1 KB · Views: 103
@Talisman could you please change the function in smuggling.c to this:
Code:
bool CheckOfficiantHadSex(string townid)
{
    ref PChar = getMainCharacter();
    if(!CheckAttribute(PChar,"Sexwith")) return false;
    ref officiant = GetTownOfficiant(townid);
    if(!CheckAttribute(PChar,"Sexwith."+officiant.id)) return false;
    return true;
}

and try again?
I think I found the problem.
 
If this function returns true you shouldn't need to bribe:
Code:
bool CheckOfficiantHadSex(string townid)
{
    ref PChar = getMainCharacter();
    if(!CheckAttribute(PChar,"Sexwith")) return false;
    if(!CheckAttribute(PChar,"Sexwith."+GetTownOfficiant(townid))) return false;
    return true;
}
Replace that function with this one and it should work:
Code:
bool CheckOfficiantHadSex(string townid)
{
   ref PChar = GetMainCharacter();
   if(!CheckAttribute(PChar,"Sexwith")) return false;
   ref officiant = GetTownOfficiant(townid); // PB
   if(!CheckAttribute(PChar,"Sexwith."+officiant.id)) return false;
   return true;
}
GetTownOfficiant returns a reference, not a string.

In above post (#28) - in the code is this an error --- 1st sexwith -> "Sexwith" --- 2nd -->>> "Sexwith." Should the . be there ? :confused:
That period indicates it is part of a "structure" like in PChar.Sexwith.falaise_de_fleur_officiant = 2;
That is what I got from a DumpAttributes:
Code:
sexwith = QC_officiant
  falaise_de_fleur_officiant = 2
@Levis: What is that "QC_officiant" doing there? Looking at the code, I think that is intentional, right?
 
@Talisman could you please change the function in smuggling.c to this:
Code:
bool CheckOfficiantHadSex(string townid)
{
    ref PChar = getMainCharacter();
    if(!CheckAttribute(PChar,"Sexwith")) return false;
    ref officiant = GetTownOfficiant(townid);
    if(!CheckAttribute(PChar,"Sexwith."+officiant.id)) return false;
    return true;
}

and try again?
I think I found the problem.
LOL! I hadn't seen your post because of the telephone. Looks like you made the EXACT same fix; quite literally letter-by-letter! :rofl
Anyway, I can confirm that change does work. :onya
 
Yes - that works - Talked to soldier without talking to tavern girl & talked to soldier after general dialog with tavern girl - in both cases I had to bribe the soldier. :thumbs1


Thanks for the fix


:drunk
 
Yes - that works - Talked to soldier without talking to tavern girl & talked to soldier after general dialog with tavern girl - in both cases I had to bribe the soldier. :thumbs1
If you try on Martinique, there it should work as before.
 
Why is it different on Martinique - because of the side quests ? :checklist
It should be because:
Very early in the game I did get the "spend a night dialog" and used it - but that was only in one tavern
I think that particular tavern must have been the Martinique one, because it is marked in the DumpAttributes I did on your player character.
So if you hadn't done that on Martinique, it would be the same as everywhere else.
And when you do it in any other towns, it should become as easy there as on Martinique.
 
Ok, Thanks a lot! On it!
If you get the chance, I'd still be interested in confirmation from the following test:
Try to do a smuggling run and kill the coastguard troops first and then try to talk to the smugglers?
If that is now OK, we can finally mark this as "Fixed". :doff
 
Using Build14 Beta4

I just tried to test the smuggling, found another problem :rofl
Landed on beach, went and talked to the smugglers and traded. Nothing happened but quest entry for smuggling didn't close. I went to the other side of the beach there were some soldiers standing inside eachother :shock They don't talk at all.
weird2.png

weird1.png



I'll try one more time to get in a fight ...
 
Update!
Did smuglling on Antigua!
Seems the soldiers are always standing at the far end of the beach !!! Weird!
2 Cases happens either they come after completion of the trade or they stand still and you can get away!
But if you go near them before talking to smugglers they try to arrest you! :shock

Update2!
Did smuggling in Antigua. This time they came to arrest me after trade. I killed them.
I confirm that I can't talk to smugglers after trade!

Update3!
Just before talking and trading with smugglers went to the soldiers and killed them.
I confirm that I can't talk and trade with smugglers at all
 

Attachments

  • weird3.png
    weird3.png
    546.7 KB · Views: 103
Last edited:
Back
Top