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

Solved Fixing Smugglers in the Taverns

Talisman

Smuggler
Storm Modder
The attached file Usurers.c - will put smugglers in the taverns of Charlestown ( Nevis ) and Williamstad ( Curacao ) where they were previously missing.

It will also fix the bug which stopped the smuggler from appearing in the Pointe a Pitre ( Guadeloupe ) tavern.

Now all islands with towns should have a smuggler in a tavern.

EXCEPT:-

Turks - Pirate island with no contraband

Tortuga - no smuggler - no beach on island - can't remove contraband from colonies screen as part of Hispaniola - ALSO - Hispaniola island Smugglers use Tortuga prices as their base price.

Eleuthera - which has no beaches therefore no place for Smugglers - contraband has therefore been removed from colonies screen with attached Islands_init.c file - can be reinstated again if a beach is made on the island.



The Taverns.c file attached removes 4 drunk soliders from Pointe a Pitre ( Guadeloupe ) tavern - they did not appear anyway & gave error messages ( unable to load gm file ) - and I don't know how to make them work with the Period soldiers models. Also they would make the tavern very crowded.

PROBLEMS:-
I have not managed to get the Smugglers to appear on the beach at Curacao & Nevis
Curacao = Bullen Bay
Nevis = White Bay

when I talk to the smuggler in the tavern the beach name in the last line of the dialog appears as " error " (see image ) and I get the following in the error log:-

RUNTIME ERROR - file: dialogs\Smuggler Agent_dialog.c; line: 103
missed attribute: name
RUNTIME ERROR - file: dialogs\Smuggler Agent_dialog.c; line: 103
no rAP data
RUNTIME ERROR - file: dialogs\Smuggler Agent_dialog.c; line: 103
missed attribute: name
RUNTIME ERROR - file: dialogs\Smuggler Agent_dialog.c; line: 103
no rAP data


which shows that this code from Smuggler Agent_dialog.c is not working when I talk to the Curacao & Nevis smuggler in the tavern.

case "Meeting_3":
if(CheckAttribute(Pchar, "quest.Contraband.Active") && Pchar.quest.Contraband.Active == true)
{
Dialog.snd = "voice\SMAG\SMAG006";
d.Text = DLG_TEXT[17];
Link.l1 = DLG_TEXT[18];
Link.l1.go = "Exit";
}
else
{
Dialog.snd = "voice\SMAG\SMAG007";
Pchar.quest.contraband.CurrentPlace = SelectSmugglingLocation();
d.Text = DLG_TEXT[19] + locations[FindLocation(Pchar.quest.contraband.CurrentPlace)].name + DLG_TEXT[20];
Link.l1 = DLG_TEXT[21];
Link.l1.go = "Smuggling_exit";
}
break;


Any help in fixing this to get these two smugglers working appreciated. - where does this dialog pick up the beach when it works ok for the other islands.
buds.gif



The files Taverns.c and Usurers.c --- go in PROGRAM \ Characters \ init \

The file Islands_init.c ---- goes in PROGRAM \ Islands \

EDIT:- Start New Game required for changes to take effect
 

Attachments

  • Taverns.c
    97.2 KB · Views: 210
  • Usurers.c
    37.2 KB · Views: 152
  • Islands_init.c
    65.8 KB · Views: 131
  • PotC_SmugglerAgent_DialogERROR.JPG
    PotC_SmugglerAgent_DialogERROR.JPG
    90.4 KB · Views: 194
PROBLEMS:-
I have not managed to get the Smugglers to appear on the beach at Curacao & Nevis
Curacao = Bullen Bay
Nevis = White Bay

when I talk to the smuggler in the tavern the beach name in the last line of the dialog appears as " error "

Any help in fixing this to get these two smugglers working appreciated. - where does this dialog pick up the beach when it works ok for the other islands.
buds.gif


I have managed to find the file I need - dialog_func.c - in the PROGRAM folder - so I should have this fixed in the next couple of days.


:D
 
NEVIS & ARUBA - The attached file Dialog_func.c should fix the smugglers on Nevis ( Charlestown) and Aruba ( Oranjestad ). :D

The smuggler-agent in the tavern should tell you which beach to go to and the smugglers should be there to buy the goods from you. ( Remember you have 3 days to get to the beach after talking to the smuggler in the tavern ).

On Nevis the smugglers use the contraband price for the Pirate Settlement ( x1.5 ) not the price for Charlestown.

CURACAO

- Bullen Bay ("Curacao_shore_01") does not work and I don't know why - Smuggler in tavern always gives "error" for beach name in dialog - and no smugglers appear in beach.

If you change the code to randomly choose between Bullen Bay and Bocht Van Hato ("Curacao_shore_02") - Bullen Bay still won't work but Bocht Van Hato will & will appear in the smuggler in the tavern dialog. But you can't get to Bocht Van Hato as it is a quest only beach. ( see text in file ).

So I don't know how to fix Curacao. :shrug

BONAIRE

- PALM BEACH if you are sent to Palm Beach - the smugglers on the beach will say 0 ( zero ) as the price for the goods in the dialog - take the goods but give player no money.

- CRAB CLIFFS - the smugglers on this beach will say the price in the dialog & pay you the money correctly.
I don't know why this happens on Bonaire. - It might be a cunning Dutch plot to earn extra gold :)

Apart from these bugs ( Curacao & Bonaire ) the smugglers should now all be working - there should be a smuggler in the tavern in each town - not pirate & smuggler settlements - (no smugglers on Eleuthera - Turks - Tortuga ). :dance


The file goes in the PROGRAM folder.
 

Attachments

  • Dialog_func.c
    125 KB · Views: 151
Nevis: Possibly because the pirate settlement was the original town and is set up as "main town" somewhere?

Curacao: Is there anything different between the locations in the init files? Try to copy the Bocht van Hato code to Bullen Bay as a test?

Well, the Dutch ARE pretty nifty at sneaking money away from people. Right? Evil li'l blighters!
 
Curacao:
I am not sure which init files to look at - and copy the code between the 2 beaches (Bullen Bay - Bocht van Hato ) in
Is it Curacao.c in the Locations \ init folder - or - Islands_init.c in the ISLANDS folder.

Bonaire :
In Build 13 there is a Colonies\Trade screen for the Pirate Fort on Bonaire ( even though there is no store there ) as well as for the main town.

That screen is gone in Build 14 ( but the arrows each side of Kralendijk remain to show it was once there ) - I wonder if the Smugglers on Palm Beach are trying to access the non-existant Colonies screen & prices - and thus coming up with 0 ( zero ) in the dialog.

Whereas the smugglers on Crab Cliffs beach access the prices on the Kralendijk screen and everything works there.

Just a thought - I don't know how to fix it if that is the problem.
 
I have at last managed to play through all the smugglers on all the beaches.
There are now smugglers on all smuggling beaches ( Curacao - Bullen Bay is OK :onya - so I must have done something wrong when playing it through last time or forgot to start a new game after changing the file. )

The only problems still outstanding are :

(1) - BONAIRE:
Bonaire - PALM BEACH if you are sent to Palm Beach - the smugglers on the beach will say 0 ( zero ) as the price for the goods in the dialog - take the goods but give player no money.

Bonaire - CRAB CLIFFS - the smugglers on this beach will say the price in the dialog & pay you the money correctly.

I think the Palm Beach problem is because of the missing Trade/Colonies screen. The Crab cliff beach smugglers use the prices for Kralendijk, I think the Palm Beach dialog is trying to access the missing prices screen.

Also on Palm Beach the order of the goods in the dialog is Sugar - Rum - Sugar - Linen & the Linen is not removed from your ships cargo (on Crab cliffs it is Rum - Sugar - Linen ). So something strange is happening.

On Grenada where everything works OK - Sunny Haven beach Smugglers use Sao Jorge store prices & Leviathan Rock Smugglers use the Smugglers Lair store prices. I think someone must have tried to set up something similar for Bonaire, then realised there was no store in the Pirate Fort on Bonaire.

(2) - Smuggler in Tavern giving "error" as place name for beach to meet smugglers on.

This happens on CUBA in Havanna & Santiago for Bahia de San Antonio beach.
HISPANIOLA - in Port au Prince & Santo Domingue for Cape Francos beach.
CURACAO - in Willemstad for Bullen Bay beach.

(3) - And lastly - small problem - on HISPANIOLA - when you are given Wild Beach by the smuggler in the tavern - it is called Ile a Vache on the map & appears as Shore on the shortcuts in Arcade mode - which is a bit confusing.

Attached are the logs for Palm Beach, Bonaire ( no error log generated ).
 

Attachments

  • system_PB_Bonaire.log
    2.9 KB · Views: 118
  • compile_PB_Bonaire.log
    9.9 KB · Views: 124
I think the Bonaire Palm Beach is because of:
Code:
Locations[n].townsack = "Pirate Fort"; // KK
It'll try to use the Pirate Fort prices. Can change back to Douwesen, but I think this was required for Capture Colonies.
Alternatively:
1. Disable Palm Beach for smuggling
2. Temporarily change the .townsack to Douwesen prior to the smuggling and change it back afterwards

Other ideas?

For the "error" names, I think I may have found the reason. "Smuggler Agent_dialog.c" uses this to return the name:
Code:
locations[FindLocation(Pchar.quest.contraband.CurrentPlace)].name
However, for example, the "Bahia de San Antonio" location init entry doesn't HAVE a .name attribute:
Code:
    // -------------------------------------------------
    Locations[n].id = "Cuba_shore_01";
    //Locations[n].worldmap = "CubShore 1";
    Locations[n].filespath.models = "locations\Outside\Shore_6";
    Locations[n].image = "Outside_Shore_6.tga";
    locations[n].id.label = "Bahia de San Antonio";
    //Sound
    locations[n].type = "seashore";
Compare to:
Code:
    Locations[n].filespath.models = "locations\Outside\Shore_10";

    Locations[n].id = "Douwesen_shore_02";
    locations[n].id.label = "Crab Cliffs"; // KK
    Locations[n].image = "Outside_Shore_10.tga";
    Locations[n].name = "Crab Cliffs";
    Locations[n].worldmap = "DShore 2";
    //Sound
    locations[n].type = "seashore";
I can find ZERO reference to any "Ile a Vache" anywhere in my game files. Where does that come from???
 
I can find ZERO reference to any "Ile a Vache" anywhere in my game files. Where does that come from???

It is on the map of Hispaniola that you buy in Stores or from Stall Traders - I don't think it appears anywhere else in the game.

Alternatively:
1. Disable Palm Beach for smuggling
2. Temporarily change the .townsack to Douwesen prior to the smuggling and change it back afterwards
Other ideas?

Simplest - disable Palm Beach for smuggling - island will still have one smuggling beach.


:pirates
 
AH! I see what you mean. Beats me where that came from.
Since it's not easy to change the name on the map, we should probably change the actual ingame name so it's consistent all the way through.
 
Pieter: Thanks for the fix for the error in the tavern smugglers dialog.:onya

Attached files should fix this :-

(2) - Smuggler in Tavern giving "error" as place name for beach to meet smugglers on.

This happens on CUBA in Havanna & Santiago for Bahia de San Antonio beach.
HISPANIOLA - in Port au Prince & Santo Domingue for Cape Francos beach.
CURACAO - in Willemstad for Bullen Bay beach.

Beach names should now appear correctly:dance

3 files in zip folder Cuba.c - Curacao.c - Hispaniola.c

Put the files in PROGRAM \ Locations \ init


New game required
 

Attachments

  • Island_Init_files.zip
    30.6 KB · Views: 88
Brilliant! You're a hero!

Were there any other things here that I could help with?
 
Brilliant! You're a hero!

Were there any other things here that I could help with?


If you could fix Palm Beach, one way or the other ( get prices to work - or remove as smuggling beach & just have Crab Cliffs on Bonaire ) that would be great.

Also if you could rename Wild Coast on Hispaniola.

Then I think everytinng should be fixed and all the smugglers working.

:onya

PS Only thing left to do then would be the "Rum" issue on Bonaire - Curacao - Aruba as per the poll here ---> http://piratesahoy.net/threads/should-rum-be-a-smuggled-good.18813/
 
Please try attached files. I thought of a different way for the Pirate Fort, namely by setting it to use the Kralendijk store instead.
It now shows properly in the interface too. Please give it a try and see what gives. New game required.

BTW: Do you remember the "no reincarnation" on some parts of Kralendijk? I have done something about that too.
Unfortunately I can't remember the specifics and I keep being resurrected in the Kralendijk tavern instead of the Pirate Fort one as I'd expect when dying IN THE PIRATE FORT.
 

Attachments

  • b14_b2-2_wip.zip
    784.7 KB · Views: 80
New game required! :facepalm TANJ! There Ain't No Justice! I just got the next ship I'm going to work on in game. This will have to wait a bit.
 
New game required for ALL changes and fixes to take effect, because there's some changes to files that are only initialized upon starting a new game.
It won't kill your existing game if used; it just means your existing game doesn't use the new fixes.
It's mainly the changes for smuggling that requires a new game.
But anyway, there's no requirement to use it; just thought I'd let you know it's there. :doff
 
I am using your WIP now and have found an exploit. I have not been everywhere yet, but the Portagee and Dutch soldiers have VERY good swords now. They are already suffering much increased attrition. :dance
 
LOL! You're killing the soldiers on purpose now? :rofl
So their good swords aren't doing them much good then, are they?
 
Back
Top