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

Mod Release Build 14 GAMMA [Last Update: 31st December 2021]

Status
Not open for further replies.
That's what I tought and that's good. So I noticed in Santiago there where some "Carts" in the town. next to the church there is actually a big collection of them. Would it maybe be a nice idea if we made this paid services where you could take the cart from Santiago to Havana. Then we could actually make the time spend be real.
We would need to find a nice place in havana where you could also take the cars and maybe add one as a custom model? But I think that would be nice. But would it break any quest?
I do like the idea. Should be relatively simple to set up too.
 
That's what I tought and that's good. So I noticed in Santiago there where some "Carts" in the town. next to the church there is actually a big collection of them. Would it maybe be a nice idea if we made this paid services where you could take the cart from Santiago to Havana. Then we could actually make the time spend be real.
We would need to find a nice place in havana where you could also take the cars and maybe add one as a custom model? But I think that would be nice. But would it break any quest?
It could affect both "Bartolomeu" and "Ardent". And, as has been pointed out by both @Hijodeleon and myself, it would be unrealistic - indeed, it seems I underestimated the problems involved with a land journey!

I wonder if there are possibilities for the "Explorer" player character type in FreePlay, though? Maybe allow only an "Explorer" to hire a cart, then have some sort of sidequest which ends up with you either getting killed or eventually making it to the other town. (PoTC + "Oregon Trail" = "Cuba Trail". xD)
 
Thanks for that. I didn't know of the existence of "store_init". It can't be all that critical because the blacksmith certainly works and I've already used his services. Presumably the entry should be the character's ID, not necessarily his name? The reason I ask is that I gave him the rather unimaginative ID of "Santiago_blacksmith" but his name is Micael Salinas.

There are some lookup functions which look for specific types of shops. I believe they are rarely used. We might want to take a look at the whole system. but it would be best for now if it was added :) .

I wonder if there are possibilities for the "Explorer" player character type in FreePlay, though? Maybe allow only an "Explorer" to hire a cart, then have some sort of sidequest which ends up with you either getting killed or eventually making it to the other town. (PoTC + "Oregon Trail" = "Cuba Trail". xD)

Maybe :), I will keep it in mind but feel free to use it if you want.
Else I might use it at one point for a smuggling sidequest or something like that.
 
There are some lookup functions which look for specific types of shops. I believe they are rarely used. We might want to take a look at the whole system. but it would be best for now if it was added :) .
See attached. It also occurred to me to check if the loanshark in Santo Domingo was ever added. He wasn't. He is now.

Where are the definitions from "store_init.c" used? Some of them are for tailors, but the file calls them "taylor", e.g.
Code:
Stores[OXBAY_STORE].taylor = "Guy Gilroy";
A Windows search for "taylor" does not show up any hits. (At least, no hits referring to shops. Plenty of hits to characters called "Taylor".) So either the definitions are not used or they're wrong, because that should really be "tailor". ;)
 

Attachments

  • store_init.c
    12.2 KB · Views: 140
Where are the definitions from "store_init.c" used? Some of them are for tailors, but the file calls them "taylor", e.g.
Code:
Stores[OXBAY_STORE].taylor = "Guy Gilroy";
A Windows search for "taylor" does not show up any hits. (At least, no hits referring to shops. Plenty of hits to characters called "Taylor".) So either the definitions are not used or they're wrong, because that should really be "tailor". ;)

I know I use them here:
Code:
string GenerateFetchCargo(ref ctown) //temp function until economy overhaul
{
    string cargoid = "";
    if(!CheckAttribute(ctown,"island")) return "";
    if(CheckAttribute(ctown,"store"))
    {
        ref Pchar = GetMainCharacter();
        aref storetype, tisland;
        makearef(tisland, Islands[FindIsland(ctown.island)]);
        string options[3];
        int option = 0;
        int storenum = GetAttributesNum(Stores[sti(ctown.store)]);
        for(int i=0;i<storenum;i++)
        {
            storetype = GetAttributeN(Stores[ctown.store],i);
            switch(GetAttributeName(storetype))
            {
                case "dockyard":
                    options[option]="dockyard"; option++;
                    break;
                case "taylor":
                    options[option]="tailor"; option++;
                    break;
                case "blacksmith":
                    if (ENABLE_WEAPONSMOD) options[option]="blacksmith"; option++; // PB: NOT if the relevant mod is OFF!
                    break;
                case "gunsmith":
                    if (ENABLE_WEAPONSMOD) options[option]="gunsmith"; option++; // PB: NOT if the relevant mod is OFF!
                    break;
                case "apothecary":
                    options[option]="apothecary"; option++;
                    break;
            }
        }
        if (option==0) return "";
        string choose = options[rand((option-1))];
        //Check if there is a fetch quest for this store already
        cargoid = getFetchQuestCargo(choose,ctown);
        if(cargoid != "")
        {
            return "";
        }
        //Go on to check for the goods
        int goodoptions[5];
        option = 0;
        switch(choose)
        {
        case "dockyard":
            goodoptions[option] = GOOD_SANDAL; option++;
            goodoptions[option] = GOOD_LINEN; option++;
            if(sti(Pchar.rank)>15)
            {
                goodoptions[option] = GOOD_MAHOGANY; option++;
            }
            if(sti(Pchar.rank)>30)
            {
                goodoptions[option] = GOOD_EBONY; option++;
            }
        break;
        case "tailor":
            goodoptions[option]= GOOD_LEATHER; option++;
            goodoptions[option]= GOOD_COTTON; option++;
            if(sti(Pchar.rank)>12)
            {
                goodoptions[option]= GOOD_CLOTHES; option++;
            }
            if(sti(Pchar.rank)>35)
            {
                goodoptions[option]= GOOD_SILK; option++;
            }
        break;
       
        case "blacksmith":
            goodoptions[option]= GOOD_OIL; option++;
            if(sti(Pchar.rank)>20)
            {
                goodoptions[option]= GOOD_SILVER; option++;
            }
            if(sti(Pchar.rank)>40)
            {
                goodoptions[option]= GOOD_GOLD; option++;
            }
        break;
       
        case "gunsmith":
            if(ENABLE_AMMOMOD) goodoptions[option]= GOOD_GUNPOWDER; option++;
            goodoptions[option]= GOOD_SILVER; option++;
            if(sti(Pchar.rank)>25)
            {
                goodoptions[option]= GOOD_EBONY; option++;
            }
        break;
       
        case "apothecary":
            goodoptions[option]= GOOD_TREATMENT; option++;
        break;
        }
        int choosegood = goodoptions[rand((option-1))];
        int amount = makefloat( (1+rand(GetDifficulty()*sti(Pchar.rank))) * (60+rand(GetTownEconomy(ctown)*20)) ) / makefloat(Goods[choosegood].Weight); // PB: Corrected brackets and floating point operations
        if(DEBUG_FETCH_QUEST) trace("FETCH QUEST: made cargo for type: "+choose+" good: "+Goods[choosegood].name+" amount: "+amount);
        if(!CheckAttribute(tisland,"cargonum")) tisland.cargonum = 0;
        int cargonum = tisland.cargonum;
        cargoid = "cargo_"+cargonum;
        tisland.cargos.(cargoid).good = choosegood;
        tisland.cargos.(cargoid).amount = amount;
        tisland.cargos.(cargoid).town = ctown.id;
        tisland.cargos.(cargoid).requester = choose;
        tisland.cargonum = sti(tisland.cargonum)+1;
    }
    return cargoid;
}
from Quest_common.c
Not sure from the top of my head where else they are used.
Imo the fast travel menu should probably also look at this. I believe you now have to add things there manually also.
 
Small Towns founded between Santiago and Havana in the sixteenth century and possible stopping point between Santiago and Havana.
. Villa de la Santísima Trinidad (Trinidad)
. Remedios.
. Santa María del Puerto del Principe (Puerto principe).
. Villa de nuestra señora de la Asunción de Baracoa (Baracoa)
 
Last edited:
Imo the fast travel menu should probably also look at this. I believe you now have to add things there manually also.
Where do I find the fast travel menu? It won't apply to Santiago's outdoor blacksmith but may be needed for the Santo Domingo loanshark.
 
Where do I find the fast travel menu? It won't apply to Santiago's outdoor blacksmith but may be needed for the Santo Domingo loanshark.
The file fast_reload_table in the BATTLE_INTERFACE folder
 
Thanks! The file is indeed "fast_reload_table.c" and the entry for "Santo_Domingo_usurer" is already in place. :onya
 
Last edited:
new game again?:eek:

At the end of the second main mission, leaving the settlement taken by the French in Barbados, when fleeing with the frigate of the French captain (Flushdeck frigate), two frigates of different classes (kreyser and Aurora) and a centurion (4th Rate) awaited us in the bay.
At first, I thought to take only one of them, the smallest one (Aurora) and take it to Port Royal to keep it, but then I decided to take the three and sell the biggest ones in the English town of Barbados and I did it.
It was very easy because i hurt first their masts and also the three had very little powder to withstand any combat.

Then I thought it would be better if i also stayed with the frigate of French captain and better give the governor of the English colony a small tartane, why not?
then I did it leaving the two frigates stored in brigtown and sailing to Port Royal in a tartane.
I do not know, maybe my Spanish pirate blood made me think in this way. But the fact is that it works.
Why does the game allow this? Is it careless or is it just part of the game?
I got two frigates and more than a million reals at the beginning of the main story very easily.
It does not bother me. But I wonder if it should be like this or not and why they have so little powder .
Before doing this I did the secondary missions that provide me with officers and maybe this counts, but it still seems very easy and I like it, i do not deny it although it's a shame .
 
Last edited:
It would be possible to make Governor Silehard check that you have the right sort of ship, but that could break the quest - if you sold the flushdeck frigate then you would have to go and find another one to capture before you could progress the main story. (I might do it anyway. If you're stuck until you can find the right sort of ship to give to the governor, tough, it's your fault for trying to be sneaky. :p)

The storyline starts on the minimum difficulty level, "Landlubber", by default. Try playing it on a higher difficulty level if you're finding it too easy - you might not want to take the time to capture all those ships if the fort is firing at you and doing more damage, and boarding the "Centurion" might prove a bit tougher as well...
 
Silehard accepted the Tartane without problems.
I think that French Captain said nothing and Silehard never knew about his flushdeck.
I do not know what benefit he will get from a French captain. Maybe he is more worried about other things and, the flushdeck I have decided not to sell it.
A ship that is capable of doing all this is not so easily found, in fact it helped me to escape from the fort between its fingers and get away enough for the necessary maneuvers.
Rather I wonder what to do with the Aurora.
On another level i would not try it, because to board the centurion had to spend a lot of shrapnel, his crew was less than half of mine and with the worst moral while mine was excellent and even the fight was tough. I had to do it twice.
but i would also send the tartane to Silehard and I'll keep the flushdeck for me.
If there is a better boat tell me what it is because this is great.

Anyway, I think that the French ships ran out of powder very soon and that's what made the play easier. If they had three times more powder than they bring or more then I could only run away with a good wind.
 
Last edited:
At present Silehard does indeed accept whatever ship you have at the time when you return to his residence. I'm looking into making him check that you have the right one.

The flushdeck frigate is certainly a nice ship and is my favourite type in the "Colonial Powers" period. I don't try to cheat Silehard, and I normally play on "Seadog" level so I count myself lucky if I can escape from Speightstown without being crippled by a combination of the fort and the French fleet. But frigates of that type occasionally show up in random encounters at sea, and that's when I'll try to capture one for my own use. I even keep it after the story ends, in preference to any other ships which I capture!

@Pieter Boelen: if the player does switch ships in order to keep the frigate, and Silehard detects this, have you any preference about what should happen? The easy answer is to put the player character into prison and end the game - he's just attempted to defraud Britain out of a frigate and Silehard is not happy with him! More complicated, given the way the storyline is structured, would be to have Silehard tell the player to go away and not return without the frigate, and only allow the game to proceed if the player has a flushdeck frigate. ("Ardent" and "Assassin" also have points at which the player is required to hand over a certain type of ship and won't progress until the player has it, but they aren't as chaotically structured as "Tales of a Sea Hawk".)
 
@Pieter Boelen: if the player does switch ships in order to keep the frigate, and Silehard detects this, have you any preference about what should happen? The easy answer is to put the player character into prison and end the game - he's just attempted to defraud Britain out of a frigate and Silehard is not happy with him! More complicated, given the way the storyline is structured, would be to have Silehard tell the player to go away and not return without the frigate, and only allow the game to proceed if the player has a flushdeck frigate. ("Ardent" and "Assassin" also have points at which the player is required to hand over a certain type of ship and won't progress until the player has it, but they aren't as chaotically structured as "Tales of a Sea Hawk".)
What if Silehard wants payment for the ship? So you can continue the quest, but only AFTER you find the necessary money.
 
Money is easy, just find a reasonably well loaded merchant ship. Silehard is short of ships which is why you're conscripted at the start of the story. (Of course, sending his most powerful ship away to look for treasure doesn't exactly help. xD) Making the character either give up the original frigate or go and find another one is a much more suitable penalty for trying to swindle the governor.

There's also the chaotic structure of the storyline. I've found a point in "quests_reaction.c" where I can put a simple condition on whether you have the right sort of ship. If yes, do all the normal stuff. If no, divert to a new piece which sets Silehard to tell you that you owe the king's navy a frigate, so go and get it. Then it resets the trigger which activates that part of the quest when you next enter the residence. So when you return, either you have the right ship and the quest proceeds as normal, or it diverts again to the new piece. It would be easy to divert to sending you to prison instead, but not so easy to arrange that it diverts because you don't have the ship and returns to normal when you pay cash.
 
Main reason I suggested money is because I figured it'd be more convenient for the player and I expected it to be easier to code.
But you obviously checked this better than I did, so I'm fine with whatever you think is best.
 
It's not supposed to be convenient for the player! This isn't supposed to be an alternative way of playing that part of the story; the whole point of this is to seal a loophole whereby the player can get the best type of ship in this period during the second mission. That's why I suggested making it a trap which leads to the prisoner ending the game in prison, as an alternative to demanding that the player produces the correct ship. If you want a flushdeck frigate, go and get one of your own! :p

"Assassin" and "Ardent" already do something like this. In both, you're required to hand over a certain type of ship, and if you don't have it then you're told to go and get it. Both of these are better structured than "Tales of a Sea Hawk" and it's handled neatly in the dialogs of the vice admiral ("Assassin") and governor of Santiago ("Ardent").
 
It's not supposed to be convenient for the player! This isn't supposed to be an alternative way of playing that part of the story; the whole point of this is to seal a loophole whereby the player can get the best type of ship in this period during the second mission. That's why I suggested making it a trap which leads to the prisoner ending the game in prison, as an alternative to demanding that the player produces the correct ship. If you want a flushdeck frigate, go and get one of your own! :p
Hehe; fair enough. :cheeky

"Assassin" and "Ardent" already do something like this. In both, you're required to hand over a certain type of ship, and if you don't have it then you're told to go and get it. Both of these are better structured than "Tales of a Sea Hawk" and it's handled neatly in the dialogs of the vice admiral ("Assassin") and governor of Santiago ("Ardent").
Standard storyline indeed does have a LOT of possible routes.
Assassin is purely linear, so that makes things simpler.
Don't know about Ardent; you did have different branches there, didn't you?
 
I didn't know there were multiple routes through "Tales of a Sea Hawk". Some minor variants, such as exactly how you get Silehard's treasure collection from the Bonaire pirates, yes (buy them, threaten the boss, or capture the ship), and a few different ways to get from Bonaire to San Juan after you're washed overboard.

"Assassin" has a major choice near the end (kill Bartolomeu or join him). "Ardent" does indeed have several branches, some minor, some major; some of the minor ones (how to kidnap Lucia and what to do next) converge on the convoy mission, and the bit about handing over the Heavy East Indiaman is part of that.
 
Sorry to put you to think about this although I think it is a very interesting topic in terms of the main story.
I did not know that flushdeck was so good.

Normally I always made the mission content to escape and in the way expected in the mission, but it occurred to me to try to capture only the Aurora because it was the smallest and in this way I could have a better ship than the Oiseau.
Normally I escaped by turning to Port but the wind is more favorable to starboard, but at this time I preferred to sail between them, forcing them to move to show the side and be able to shoot.
The confusion caused that they did not manage to shoot until my boat gave them the stern.
I managed to reach the rocky mass that prevents the fort from hitting the shots and thus neutralizing the fort first.
Then reach the nearby solitary Rock blocking the fire of the enemy frigates until I get far enough away and attract them to my position.
Using chainshoot I managed to slow them down and the lesser fire they all hit (fort and fleet) was very effective, the flushdeck stayed with 23% Hull and 86% Sails.
In addition they neutralize enough crew, but it recovers very easily after capturing one of the fleet, enabling again the flushdeck to board the centurion .

The problem for the French fleet is that it runs out of powder very soon and they stop firing, although they keep advancing towards my position, maybe pretending to board my ship.
I did not notice that they had run out of powder until they were captured, but when I did not receive fire, it seemed appropriate to capture them all.
With the sale of them you can get more than one million Golds in Bridgetown so there are no money problems when you return to Silehard.
I think that making the fort and the French not be mocked so easily would be very complicated. First of all, we had to modify all the rockier ones that block the firing of the fort but I think that this problem can be solved if the French fleet trumps more powder.
Enough to want to run away and not face them.

To prevent the player from attempting to keep the flushdeck, a warning dialog could be created between the French captain and N. Hawk and a gratification dialogue between N. Hawk and Silehart for not trying to steal the ship with the possibility of buying it very spencive after all is finished.
 
Last edited:
Status
Not open for further replies.
Back
Top