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

Abandoned Change to sailcloth/planks discription

morgan terror

Magnificent bastard
Storm Modder
Public Relations
This is more of a discussion than a request, since i can do this myself, but i want to know if you people think this is warranted:

I got a bit confused recently as to why my stores of repair materials weren't going down while i was fixing my ship (passively, not with quick repair), until i realised it must be intentional, meaning that they're only used for quick repair, like a potion. There's nothing in the game to suggest this though. In order to avoid confusion, i think it would be a good idea to mention this in the item discriptions for sailcloth and planks. If it wasn't intentional, consider this a bug report.
 
If I recall, there is a skill that repairs without using planks and sailcloth.
Should be mentioned in those descriptions somewhere.
 
Yes, there is a perk that allows you to slowly repair your ship without using material. Check your ship right after midnight.
 
Isn't that the emergency repairs ability? I'm talking about the player's repair skill, not a perk.

Yes, there is a perk that allows you to slowly repair your ship without using material. Check your ship right after midnight.

Are you talking about sailing on the worldmap? In that case, it's irrelevant, since i came across this problem using directsail. Each hourly change counts as a midnight in that mode, which would suggest that repair materials would be consumed to repair the ship, but they don't. Nothing is used up. I haven't checked if you can still repair if you've got no materials in your hold though. Is the rate of material consumption just extremely low or something? I've repaired around 20% hull damage without using a single plank so far.
 
ohh, i see. That does come across as odd though, to the uninformed. I really thought it was a bug. I wonder how we could inform the player of this. Maybe adjust the discriptions for planks and sailcloth? I could do that.
 
I think the Daily Crew Update still only occurs at actual midnight and not every hour, even in DirectSail mode.
 
No proper ship is tier 8, of course. But there are enough starting vessels in that tier: several luggers, hoy, a couple of tartanes, dingey... canoes and pirogues would be there if we had them :) And both default Sea Horse and Leaky Bucket are tier 8, IIRC.
 
This is the function which is triggered by ligth repair and instand repair:
Code:
void procActionRepair()
{
    int chrIdx = GetEventData();
    int eRepType = GetEventData();
    if(chrIdx<0) return;
    if(!bSeaActive)    return;
    ref chref = GetCharacter(chrIdx);
    if( LAi_IsDead(chref) ) return;

    if(eRepType!=0)
    {
        float fMaterialH = GetEventData();
        float fMaterialS = GetEventData();
    }

    if(bAbordageStarted)
    {
        if(eRepType==0)
        {
            PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"ll", chrIdx, 0);
        }
        else
        {
            PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"llff", chrIdx, eRepType, fMaterialH,fMaterialS);
        }
        return;
    }

    float hpp = GetHullPercent(chref);
    float spp = GetSailPercent(chref);
    float fRepairH,fRepairS;

    if(eRepType==0)
    //=====================================================
    // Slow repair
    //=====================================================
    {
        if(hpp<10.0)
        {
            fRepairH = 10.0-hpp;
            if(fRepairH>BI_SLOW_REPAIR_PERCENT)    {fRepairH=BI_SLOW_REPAIR_PERCENT;}
            hpp += ProcessHullRepair(chref,fRepairH);
        }
        if(spp<10.0)
        {
            fRepairS = 10.0-spp;
            if(fRepairS>BI_SLOW_REPAIR_PERCENT)    {fRepairS=BI_SLOW_REPAIR_PERCENT;}
            spp += ProcessSailRepair(chref,fRepairS);
        }
        if( IsPerkIntoList("LightRepair") ) {
            PostEvent("evntActionRepair",BI_SLOW_REPAIR_PERIOD,"ll",chrIdx,0);
        }
    }
    else
    //======================================================
    // Fast repair
    //======================================================
    {
        float ftmp1,ftmp2;
        int nMaterialH = GetCargoGoods(chref,GOOD_PLANKS);
        int nMaterialS = GetCargoGoods(chref,GOOD_SAILCLOTH);
        int nMatDeltaH = 0;
        int nMatDeltaS = 0;
        string goodsName;
        if(hpp<90.0 && nMaterialH>0)
        {
            fRepairH = 90.0-hpp;
            if(fRepairH>BI_FAST_REPAIR_PERCENT)    {fRepairH=BI_FAST_REPAIR_PERCENT;}
            ftmp1 = GetHullPPP(chref);
            ftmp2 = fMaterialH + ftmp1*fRepairH;
            if(ftmp2>nMaterialH)
            {
                fRepairH = (nMaterialH-fMaterialH)/ftmp1;
                nMatDeltaH = nMaterialH;
                fMaterialH = 0.0;
            }
            else
            {
                if(ftmp2>1.0)
                {
                    nMatDeltaH = makeint(ftmp2);
                    fMaterialH = ftmp2 - nMatDeltaH;
                }
            }
            hpp += ProcessHullRepair(chref,fRepairH);
        }
        if(spp<90.0 && nMaterialS>0)
        {
            fRepairS = 90.0-spp;
            if(fRepairS>BI_FAST_REPAIR_PERCENT)    {fRepairS=BI_FAST_REPAIR_PERCENT;}
            ftmp1 = GetSailSPP(chref);
            ftmp2 = fMaterialS + ftmp1*fRepairS;
            if(ftmp2>nMaterialS)    { fRepairS = (nMaterialS-fMaterialS)/ftmp1; }
            fRepairS = ProcessSailRepair(chref,fRepairS);
            if(fRepairS<=0.0)
            {
                nMatDeltaS = 0;
                fMaterialS = 0.0;
                nMaterialS = 0;
            }
            else
            {
                ftmp2 = fMaterialS + ftmp1*fRepairS;
                if(ftmp2>1.0)
                {
                    nMatDeltaS = makeint(ftmp2);
                    fMaterialS = ftmp2 - nMatDeltaS;
                }
            }
        }
        if(nMatDeltaH>0)
        {
            nMaterialH -= nMatDeltaH;
            SetCharacterGoods(chref,GOOD_PLANKS,nMaterialH);    // LDH probably should use this 29Jan09
        }
        if(nMatDeltaS>0)
        {
            nMaterialS -= nMatDeltaS;
            SetCharacterGoods(chref,GOOD_SAILCLOTH,nMaterialS);    // LDH probably should use this 29Jan09
        }

        if(hpp<90.0 && nMaterialH>0)
        {    PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"llff",chrIdx,1, fMaterialH,fMaterialS);
        }
        else
        {    if(spp<90.0 && nMaterialS>0)
            {    PostEvent("evntActionRepair",BI_FAST_REPAIR_PERIOD,"llff",chrIdx,1, fMaterialH,fMaterialS);
            }
            else
            {    EnableUsingAbility(chref,"InstantRepair");
            }
        }
    }
}
 
I think a different topic got opened regarding rank 8 ships not using repair materials, and levis' post above yours simply got misplaced. Don't know what happened to that topic though. This topic's title is also a misnomer, since i simply didn't know the real cause of the issue i was facing.
 
I think a different topic got opened regarding rank 8 ships not using repair materials, [...]. Don't know what happened to that topic though.
That was fixed and archived here: Fixed - Tier 8 ships don't cost material to repair | PiratesAhoy!

This topic's title is also a misnomer, since i simply didn't know the real cause of the issue i was facing.
I don't get it either, so that's why I'd like to clarify on what IS still the problem here.
If we don't know, I'll archive this too as "Abandoned". :shrug
 
Back
Top