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

Devlin Opera for the 65742th time

@Grey Roger if you don't object against repurposing Dolphin Sands and by that basically removing it for quest and smuggling use in Devlin Opera, then that would be of course the easiest solution for me. If not, I would try to figure out something else.
 
Object? I suggested it. ;) True, depending on exactly what you do, it could break "Cartagena silver". Either put it back to normal when your quest finishes, or do something similar to what you did in Santo Domingo - reroute some reloads so that you can go where you need for "Cartagena silver" and go where you need for your story.

The outskirts of Cartagena is similar to the outskirts of Kralendijk. It has the same waterfall. But the reload behind the waterfall is currently unused. Would it be possible to use that to go to your quest locations?
 
The outskirts of Cartagena is similar to the outskirts of Kralendijk. It has the same waterfall. But the reload behind the waterfall is currently unused. Would it be possible to use that to go to your quest locations?
I would need to explore the locations in-game and in-code and do some thinking. It would of course be possible but probably requires some slight changes to in-game explanations and perhaps even an additional small quest to lead you there.

I am currently at the end of Aruba, there is only the usual wrap-up with return to the ship and option to hire an officer left. So figuring out the end more clearly is the next step anyway.
 
I like the quiz idea! In Dracula3 (a favourite game) among all the puzzles there is also a quiz. :onya
 
quiz1.png

Some work has begun...

Can somebody help we with what is the locator in Colombia_shore, you spawn on when coming from the ship? It's not "boat", it is much further inland on the beach, surrounded by the officer1_1 to officer1_3 locators, but even with visible locators I can't see where I'm supposed to stand.
 
According to "Islands_init.c", the spawn locator is "reload1". And the sea locator where you moor is "reload_3".

Odd - that's not the same as "PROGRAM\Locations\init\Colombia.c", which shows the locator where you return to your ship as "boat", and it sends you to sea locator "reload_2".
 
reload1 works just fine. Not only is it used for the jumpstart, but also in case you are answer incorrectly. Because then, you get a slap and are sent back to the beginning. :pflag

The questions also get a bit more difficult.
quiz2.png
 
Two more questions: I need a suggestion for a pirate ship that would be available in Early Explorers since I'm not familiar with ships and ships_init.c is a bit of a nightmare compared to e.g. initItems.c (which, together with the file of item description, makes always it easier to find some kind of sword I could use). Nothing too fancy, more slick and versatile than big and heavy, perhaps just some kind of sloop or medium-sized ship.

Also what would be the correct code to figure out if you have enough cargo space? Old Alan Milds from OG Oxbay for example has this line somewhere:

Code:
if (GetSquadronFreeSpace(pchar, iTradeGoods) < 100 || sNation=="")

Why "iTradeGoods" and what does "sNATION" mean in this case? Also do I understand this cwt thing correctly? For example, I think gold is described as having 2cwt. So if for example the condition above isn't fulfilled, I could move 50 gold onto my ship?

If those two things are figured out, my next post on the forum will be something special...
 
Presumably you're using preprocessed labels such as "#sSantiago#" rather than hard-coded names such as "Santiago de Cuba"? That way you're safe if any town names are changed in future updates.

Two more questions: I need a suggestion for a pirate ship that would be available in Early Explorers since I'm not familiar with ships and ships_init.c is a bit of a nightmare compared to e.g. initItems.c (which, together with the file of item description, makes always it easier to find some kind of sword I could use). Nothing too fancy, more slick and versatile than big and heavy, perhaps just some kind of sloop or medium-sized ship.
Edit "InternalSettings.h" to enable cheatmode. Start a FreePlay. Set the date to anything in the 1500's - "Early Explorers". Then click the ship icon. You should then be able to see all ships available in the period. (If you don't enable cheatmode, you'll be limited to tier 5 and smaller.) You can choose the nation, tier or general type of the ship you want - you need a pirate ship so set the nation to "Pirate".

Also what would be the correct code to figure out if you have enough cargo space? Old Alan Milds from OG Oxbay for example has this line somewhere:

Code:
if (GetSquadronFreeSpace(pchar, iTradeGoods) < 100 || sNation=="")

Why "iTradeGoods" and what does "sNATION" mean in this case? Also do I understand this cwt thing correctly? For example, I think gold is described as having 2cwt. So if for example the condition above isn't fulfilled, I could move 50 gold onto my ship?
They're generated immediately above that line:
Code:
int iTradeGoods = GenerateGoodForTrade(GetTownNation(GetTownIDFromLocID(NPChar.location)), iTradeNation, &fprice, &tprice);
string sNation = GenerateTradeQuest(pchar, iTradeNation, iTradeGoods, fprice, tprice, true);
But they're only really important for cargo quests. The part which interests you is 'GetSquadronFreeSpace', defined in "PROGRAM\Characters\CharacterUtilite.c":
Code:
int GetSquadronFreeSpace(ref _refCharacter,int _Goods)
It takes two arguments. 'refCharacter' is the character being checked. '_Goods' is the type of cargo being checked. You can find the code names of all the cargo types in "PROGRAM\STORE\goods.h", or more detail in "PROGRAM\STORE\initGoods.c". 'GetSquadronFreeSpace' tells you how many units of that type of cargo can be carried in your whole fleet.

Gold does indeed weigh 2 cwt per unit. So if you want to check that the player can carry at least 50 cwt of gold, you'd simply need:
Code:
if (GetSquadronFreeSpace(PChar, GOOD_GOLD) >= 100)
If you only want to check the player's ship specifically, use 'GetCharacterFreeSpace' instead of 'GetSquadronFreeSpace'.

'GetSquadronFreeSpace' does not include quest ships. That's because you can't transfer cargo into or out of their holds. So, if the player has taken the sidequest to escort a random merchant, and also has a companion ship of his own, the function will check the player's ship plus the companion but won't add the quest merchant's cargo capacity into the balance.
 
Presumably you're using preprocessed labels such as "#sSantiago#" rather than hard-coded names such as "Santiago de Cuba"?
Yes, that's also the reason that in one dialog at Aruba it says "You can make it to #sisland_Douwesen# in so many days", because #sisland_Curacao# doesn't give any island name in Early Explorers and hard-coding one, there would have to be an actual name first.

Edit "InternalSettings.h" to enable cheatmode. Start a FreePlay. Set the date to anything in the 1500's - "Early Explorers". Then click the ship icon. You should then be able to see all ships available in the period. (If you don't enable cheatmode, you'll be limited to tier 5 and smaller.) You can choose the nation, tier or general type of the ship you want - you need a pirate ship so set the nation to "Pirate".
Easy enough, but do I get from finding one to typing the required code into the line ch.Ship.Type = "FleutWar2"; (in the character file)? In this example, it wouldn't say "FleutWar2" in the new game interface, would it?

Gold does indeed weigh 2 cwt per unit. So if you want to check that the player can carry at least 50 cwt of gold, you'd simply need:
I see, so I presume I could check for if (GetSquadronFreeSpace(PChar, GOOD_GOLD) >= 100 && (PChar GOOD_SILVER) >= 200) if I want to give the player 50 cwt of gold and 100 cwt of silver (assuming silver also weighs 2 cwt each, I haven't checked that yet).

Also how do I change the music of a town (smuggler's lair copy) and a tavern to pirate town / pirate tavern again?
 
Yes, that's also the reason that in one dialog at Aruba it says "You can make it to #sisland_Douwesen# in so many days", because #sisland_Curacao# doesn't give any island name in Early Explorers and hard-coding one, there would have to be an actual name first.
You can't land on Curacao anyway. It wasn't colonised in the 16th century so, like several other islands, it's blocked. Saint Martin and Antigua are also off-limits, which is why, if you play the "Angelique Moulin's Father" sidequest in "Early Explorers", you'll have to go somewhere else to find the sword at the end.

Easy enough, but do I get from finding one to typing the required code into the line ch.Ship.Type = "FleutWar2"; (in the character file)? In this example, it wouldn't say "FleutWar2" in the new game interface, would it?
Look at the description. Then search for it in "RESOURCE\INI\TEXTS\ENGLISH\ShipModels_descriptions.txt". For example, maybe you found a sloop to your liking which says "Adaptable vessel with varnished wood, sails good against the wind". Searching for that in "ShipModels_descriptions.txt", you find:
Code:
Sloop4_Descr{Adaptable vessel with varnished wood,
sails good against the wind.}
So the ship you want it "Sloop4".

I see, so I presume I could check for if (GetSquadronFreeSpace(PChar, GOOD_GOLD) >= 100 && (PChar GOOD_SILVER) >= 200) if I want to give the player 50 cwt of gold and 100 cwt of silver (assuming silver also weighs 2 cwt each, I haven't checked that yet).
Yes, silver also weighs 2 cwt per unit. But that condition won't work, partly because of the typo - it should be if (GetSquadronFreeSpace(PChar, GOOD_GOLD) >= 100 && GetSquadronFreeSpace(PChar, GOOD_SILVER) >= 200). And partly because that will pass if you have enough for 200 silver only and no space for gold as well - they both weigh 2, so if you have 400 cwt available then the part checking for gold will pass and so will the part checking for silver. Fortunately, since gold and silver weigh the same, you can check for enough space if the whole lot were gold:
Code:
if (GetSquadronFreeSpace(PChar, GOOD_GOLD) >= 300)
And that will pass if you have enough space for 300 units of gold, which is 600 cwt. If you want to give the player 150 cwt total (50 cwt gold, 150 cwt silver) then check for 75, not 300.

Also how do I change the music of a town (smuggler's lair copy) and a tavern to pirate town / pirate tavern again?
Isn't Smugglers Lair a pirate town already?

The background music for a location is controlled by the locations[n].type line. For Smugglers Lair, that's:
Code:
locations[n].type = "town";
And for the tavern:
Code:
locations[n].type = "tavern";
The music for any type is in "PROGRAM\sound\sound.c", function 'SetSchemeForLocation', which check's a location's "type" attribute and sets the sounds for that. For "town", it also checks the location's nation and sets the music accordingly, which is why Sao Jorge also has locations[n].type = "town"; but has different music because it's Portuguese (or British in the last two periods) while Smugglers Lair is pirate. 'SetSchemeForLocation' also checks the nation for location type "tavern", but almost all nations use the same tavern music except Pirate and Personal. And that's why, if you play "Tales of a Sea Hawk", you'll notice all the music in Bridgetown changes when you temporarily capture it to free Clement Aurentius. Bridgetown is normally British, so it plays British music, but it becomes Personal when you capture it.
So, if you want pirate music in the town and tavern, the town needs to belong to the pirates. :aar
 
If those two things are figured out, my next post on the forum will be something special...

Good news: The Devlin Opera storyline as intended is finished. It took only five summers and this is pretty much how I feel right now:
(I thought this locator would be on the bed, but how it actually turned out is even funnier)
bed.png


Better news: There is always room for continuations and bonus quests. Although I might need a break again soon (perhaps not as long and not completely unancouned this time).

Bad news: I still need to add four examinable maps to the game. Or: add three and replace one. I was delaying this forever because I always fail when I try to do something like that (same for loading screens, character interfaces). But even that will be possible one way or another.
 
I still need to add four examinable maps to the game. Or: add three and replace one
I'm just trying to make this with gimp, but gimp is not my strength and neither is all of this converting, saving in the right format etc. So if it turned out as another fail, I'd be glad for help. There are just four standard archipelago maps with a bit of stuff added to it.
 
Standard archipelago maps as quest items.

One has Santo Domingo, Las Tortugas and Aruba marked with the names of the people you have to search there for the respective quest. That one is already in the game, but with outdated names and a weird design, the font looks a bit off, so it would need to be redone.

And then three which have five crosses each spread around them. The idea is that each cross is on two of the maps, but only is on all three and that one leads you to Dolphin Sands (Colombia_shore).

And I guess each of the four maps both normal and scaled (for different realistic modes).
 
Standard archipelago maps as quest items.

One has Santo Domingo, Las Tortugas and Aruba marked with the names of the people you have to search there for the respective quest. That one is already in the game, but with outdated names and a weird design, the font looks a bit off, so it would need to be redone.
Where do I find that one?

And then three which have five crosses each spread around them. The idea is that each cross is on two of the maps, but only is on all three and that one leads you to Dolphin Sands (Colombia_shore).
You'll need to tell me which crosses go where on each map.
 
Where do I find that one?

I have them under Pirates of the CaribbeanNH8 - Update\RESOURCE\Textures\INTERFACES\Maps, named full_map and full_map_scaled, but those are outdated.

You'll need to tell me which crosses go where on each map.
For example

Map1 (Marcel Jauri): Barbados, Havana, Bonaire, Nevis, Cartagena
Map 2 (O'Klee): Jamaica, Puerto Rico, Bonaire, Nevis, Cartagena
Map 3 (Maxaguan): Barbados, Havana, Jamaica, Puerto Rico, Cartagena
 
Back
Top