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

Released Corvette V.2

I'm fine with less HP as these are old naval ships sold at auction and refurbished for merchant use. For pricing, again these are old ships that could not possibly be as expensive as a new ship.
I have been playing POTC for 5 hours straight and not once have I seen a frigate or fastmerchantman in a shipyard. The listed price is $57,600 but my memory is that they cost almost twice that in a shipyard.

EDIT: Ha! All it took was a small break. The fastmerchantman is selling for $125,000 in the shipyards. I just bought an older model.
FM 125.jpg
 
I finally bought one of the new frigates! And it does look new. Is it supposed to sit this low? It has full holds.
new frigate.jpg
 
EDIT: Ha! All it took was a small break. The fastmerchantman is selling for $125,000 in the shipyards. I just bought an older model.

Well I reckon the price should be closer to 90,000 or so, considering the ship is second-hand.

I finally bought one of the new frigates! And it does look new. Is it supposed to sit this low? It has full holds.

I don't think it should be sitting quite that low. I did actually move the waterline up to 0.2 because the ship sat too high in the water with very little cargo. Maybe try setting it to 0.1?

By the way, I'm now working on the walk files for both versions of the ship. :type1
 
Ok. I'm confused. The fastmerchantman is listed at $56,700 in shipsinit.c but sells for $125,107.

The corvette is listed at $145,200 in shipsinit.c but I just bought one for $293,204.

Is this normal?
 
If you're using shipyards of an enemy nationality and have a high enough commerce level, they will trade with you anyway. BUT for double the price.

Looks like in addition, the price is being modified by:
- Commerce skill of you + your officers
- Discount based on whether you have Basic Commerce and/or Advanced Commerce
- Discount based on town "morale" if the town is yours

If you have a commerce skill of 1 in total and none of the abilities, the purchase price can be up to 1.381 * the regular price.
That could put it up to 200,521 for the Corvette. If the price is doubled on account of being an enemy location and you have higher commerce skills, you could come at 293,204 I suppose?

I'm a bit confused though on how you can sell a ship for vastly more than the listed ships_init.c price.
According to my calculations, with Commerce at 10 AND Advanced Commerce, you would sell at 0.99 times the coded price.

As for purchasing, with Commerce at 10 and only Basic Commerce, you would buy at 1.01 the coded price.
With Advanced Commerce also, you would sell at 0.91 times the coded price.

Refer to this code from PROGRAM\Characters\CharacterUtilite.c:
Code:
// NK 05-04-19 -->
// make single function for char-mod price. summ = use officers too.
float GetCharPriceMod(ref ch, int priceType, bool summ)
{
    float skillModify = 1.0;
    float skillDelta;
    if(summ) skillDelta = GetSummonSkillFromName(&ch,SKILL_COMMERCE);
    else skillDelta = GetCharacterSkill(&ch,SKILL_COMMERCE);
    if(priceType==PRICE_TYPE_BUY)
    {
        skillModify = 1.4 - skillDelta*0.019;
        if(CheckOfficersPerk(&ch,"AdvancedCommerce"))    { skillModify -= 0.2; }
        else
        {
            if(CheckOfficersPerk(&ch,"BasicCommerce"))    { skillModify -= 0.1; }
        }
    }
    else
    {
        skillModify = 0.75 + skillDelta*0.019;
        if(CheckOfficersPerk(&ch,"AdvancedCommerce"))    skillModify += 0.05;
    }
    return skillModify;
}
And this part in PROGRAM\INTERFACE\shipyard.c:
Code:
int GetBuyPrice(int scrollIdx)
{
    if (LAi_IsCapturedLocation) return 0; // KK
    int price = MakeInt(GetScrollShipPriceByType(GetScrollShipType(scrollIdx)) * GetCharPriceMod(GetMainCharacter(), PRICE_TYPE_BUY, true));
    price -= MakeInt((0.1 * GetTownCrewMorale(GetTownIDFromLocID(Locations[FindLoadedLocation()].id)) / (MORALE_MAX - MORALE_MIN)) * makefloat(GetCurrentLocationNation() == PERSONAL_NATION)); // KK
// changed by MAXIMUS [possibility to repair your ship by double price] -->
    if(tradeHigh==true) price *= 2; // NK now use central func 05-04-19
    return price;
// changed by MAXIMUS [possibility to repair your ship by double price] <--
}
 
I think I might know what is going on. The price doubling is based on a global bool called "tradeHigh". This is set to true when you make any deals with a shipyard in a non-friendly port.
However, I cannot find any evidence of it ever being set to false again. So that would mean that once you deal with a non-friendly shipyard even once,
even if you only look at what he's got without doing any deals, EVERY SINGLE transaction with ANY shipyard following that will be at double price.
Does that sound like it agrees with your observations?

Also, can you upload a savegame of yours in the shipyard? I'd like to test out my theory.
 
However, I cannot find any evidence of it ever being set to false again.
Actually I DID find evidence of that. Right here in PROGRAM\INTERFACE\shipyard.c:
Code:
void ProcessExit_yes()
{
    int cn = GetCompanionIndex(GetMainCharacter(),nCurFourNum);
    if(cn<0) return;
 
    int Qty = GetCannonCurQuantity(GetCharacter(cn));
    int curQty = sti(GetCannonQuantity(GetCharacter(cn))-Qty);
 
    if(curQty>0)
    {
        ref curChr = GetCharacter(cn);
        int ourQty = 0;
 
        ourQty = sti(curChr.ship.Cannons.Borts.cannonf.curqty);
        curChr.ship.Cannons.Borts.cannonf.qty = ourQty;
 
        ourQty = sti(curChr.ship.Cannons.Borts.cannonb.curqty);
        curChr.ship.Cannons.Borts.cannonb.qty = ourQty;
 
        ourQty = sti(curChr.ship.Cannons.Borts.cannonl.curqty);
        curChr.ship.Cannons.Borts.cannonl.qty = ourQty;
 
        ourQty = sti(curChr.ship.Cannons.Borts.cannonr.curqty);
        curChr.ship.Cannons.Borts.cannonr.qty = ourQty;
    }
    DelEventHandler("InterfaceBreak","ProcessCancelExit");
    DelEventHandler("frame","ProcessFrame");
    DelEventHandler("exitCancel","ProcessCancelExit");
    DelEventHandler("ievnt_command","ProcessCommandExecute");
    /*DelEventHandler("MaxShipClassYes", "CheckMaxShipClassYes");
    DelEventHandler("MaxShipClassNo", "CheckMaxShipClassNo");
    DelEventHandler("FleetLevelYes", "CheckFleetLevelYes");
    DelEventHandler("FleetLevelNo", "CheckFleetLevelNo");*/
    DelEventHandler("InstallPress","ProcessInstall");
    //DelEventHandler("BuyPress","ProcessBuy"); // KK
//    DelEventHandler("InstallBuyPress","ProcessInstallAndBuy"); // KK // Commented out by LDH 09Feb09
    DelEventHandler("installSelect","ProcessInstallSelect");
    DelEventHandler("InstallSUPress", "ProcessInstallSU"); // KK
    DelEventHandler("RepaintPress", "ProcessRepaint"); // KK
    DelEventHandler("ievnt_command","ProcessCommandExecute");
    DelEventHandler("CancelPress","ProcessCancel");
    //DelEventHandler("RepairNo","ProcessRepair_no");
    //DelEventHandler("RepairYes","ProcessRepair_yes");
    DelEventHandler("ExitPress","ProcessExit");
    DelEventHandler("ExitNo","ProcessExit_no");
    DelEventHandler("ExitYes","ProcessExit_yes");
 
    interfaceResultCommand = RC_INTERFACE_SHIPYARD_EXIT;
    EndCancelInterface(true);
    if(tradeHigh==true) tradeHigh = false; // added by MAXIMUS [possibility to repair your ship by double price]
}
Last line there. :facepalm
Still, please upload your savegame and I'd at least be able to double-check. :doff
(Or are you REALLY at the enem
 
If you're using shipyards of an enemy nationality and have a high enough commerce level, they will trade with you anyway. BUT for double the price.

Ah, so basically he's getting ripped off? That would explain it. xD
 
I've now uploaded the new FastMerchantman2, plus updated stats for both FastMerchantman models, and common.ini which renames them to... wait for it... "Fast Merchantman" instead of "Indiaman". See here: FM2.7z
I also have both walk files finished; the new corvettes use Aurora_walk.c (so it isn't confused with Corvette_walk) and the FM models use FastMerchantman_walk.c.
See attached for the Aurora frigates' stats entries which now use the new walk file, along with ShipWalk.c, the walk files and the Sailorspoints files.

EDIT: Oh, and could I please have some interface shots of RN_Corvette and FastMerchantman2?
 

Attachments

  • Aurora_stats.txt
    8.8 KB · Views: 161
  • shipWalk.c
    45.5 KB · Views: 151
  • Aurora_walk.c
    10 KB · Views: 157
  • FastMerchantman_walk.c
    12.1 KB · Views: 145
  • Aurora1.ini
    2.8 KB · Views: 141
  • FastMerchantman1.ini
    2.8 KB · Views: 139
I bought the fastmerchantman at Santo Domingo and the corvette at Port Royale. All nations are neutral except the pirates and French who are hostile. I have no letter of marque or rank. I did visit the French shipyard at Martinique a while back.

My commerce rank is 5-7 and I have 2 officers who are 10-10 plus I have all of the commerce skills. You want a save in a shipyard? It will be a while since I am on my way to Martinique for some skullduggery. Maybe later tonight.

Arrgghh! Where do all of those files go?
 
shipWalk.c goes in PROGRAM\SEA_AI
The two _walk.c files to PROGRAM\SEA_AI\walk
The two .ini files you don't need; they're for AoP/CoAS
Aurora_stats.txt contains ships_init.c entries

Were you in a French shipyard when you saw that price? If yes, we found the explanation.
If no, what shipyard were you checking from? If you upload a savegame, I could make my own way there if need be.

Armada, I'll get those screenshots to you soon. :yes
 
Armada, I'll get those screenshots to you soon. :yes
See attached; how are those? :doff

BTW: Is it just me, or does the regular Corvette walk file not match up with the actual old-style corvettes?
I just fixed the ships_init.c file to use the Corvette_walk.c file for all the ones you didn't replace yet.
But I think that file was never updated for the updated rigging that Hylie did.

Edit: I just noticed that both Fast Merchantman have the same figurehead as the RN_Corvette.
Do you reckon we should swap out at least one of the two for some more variety between them?
 

Attachments

  • FastMerchantman2.jpg
    FastMerchantman2.jpg
    144.2 KB · Views: 159
  • RN_Corvette.jpg
    RN_Corvette.jpg
    155.6 KB · Views: 168
shipWalk.c goes in PROGRAM\SEA_AI
The two _walk.c files to PROGRAM\SEA_AI\walk
The two .ini files you don't need; they're for AoP/CoAS
Aurora_stats.txt contains ships_init.c entries

Were you in a French shipyard when you saw that price? If yes, we found the explanation.
If no, what shipyard were you checking from? If you upload a savegame, I could make my own way there if need be.

Armada, I'll get those screenshots to you soon. :yes

"I bought the fastmerchantman at Santo Domingo and the corvette at Port Royale."

I will get a good save game to you before I start a new game with the new WIP files.
 
Cheers. I just want to make sure I use your savegame so the situation is as close as the same as it can be. :doff
 
Those screenshots are perfect, thanks! :onya

BTW: Is it just me, or does the regular Corvette walk file not match up with the actual old-style corvettes?
I just fixed the ships_init.c file to use the Corvette_walk.c file for all the ones you didn't replace yet.
But I think that file was never updated for the updated rigging that Hylie did.

Edit: I just noticed that both Fast Merchantman have the same figurehead as the RN_Corvette.
Do you reckon we should swap out at least one of the two for some more variety between them?
The old walk file looked quite messy when I imported it into the Sailor Tool, so I'm not surprised if it doesn't perfectly match the old corvettes.

On the subject of walk files, can someone let me know if the cannon reloading animations work on all guns with the new files?
For some reason, I could only seem to persuade the crew to reload the port cannons in my quick tests.
There are definitely no errors with the walk files, though, which makes things even more confusing. o_O
 
I've been working on the Crimson Blood's texture for a while now, and I think I've achieved a suitable result, but I'd like to know what you guys think:
CrimsonBlood_new1.jpg


CrimsonBlood_new2.jpg
I've settled on red, black and gold as the three main colours, which works well with the colour of the new bow and stern details.
I tried using a dark green as per Morgan Terror's original suggestion, but I couldn't really make it fit in with the design without taking away the "piratey" feel of the ship, so left it out.
The underwater hull uses Plank_black.tga, which I made slightly brighter so you can see the details more clearly.

Anyway, the main changes were the addition of a gold pattern beneath the railings, and the alternative design of the stern ornamentation.
I wanted to modify the typical "skull and crossbones" into something less generic, so I borrowed the gold decoration from FastMerchantman1 and tweaked it to fit nicely behind the skull.
I think the combination of gold and white works quite well here, and the emblem is certainly more striking than before.
Any thoughts or suggestions? :checklist
 
It looks better to me. Sharper and crisper. This is one of the more commonly seen ships so it will make a big difference.
 
The Crimson Blood is commonly seen? Indeed looks like you're right based on the code. I thought she was supposed to be a quest-only ship. :facepalm

Based on the idea of a quest-only ship literally named "Crimson Blood", I'm not sure if she appears quite red enough.
She looks wonderful for a generic pirate ship though. :onya
 
Back
Top