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

Ending gold progression

NEONDEON

Landlubber
I was wondering if it is possible to cap the gold progression that leveling causes everytime you gain a level in Buld 12. I was thinking the amount given at level 20 would be enough. Right now, if you get to level 50 or so, you make soo much money sinking a ship that why even bother with the treasure you plunder. Treasure and commodities become trivial at this point in the game.
 
You mean gold on boarding a ship? (Which is given whether you take her as prize or not.)
Since you shouldn't get anything but XP on sinking something with gunfire.

Yeah, but this is something of a kludge (because it will mean all captains alike will be this rank, because any captain generated will be above the cap).
Open program\loc_ai\LAi_createOfficer.c
Find:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->Npchar.rank = makeint(nRank);<!--c2--></div><!--ec2-->
replace:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->if(nRank > XX) nRank = XX;
Npchar.rank = makeint(nRank);<!--c2--></div><!--ec2-->

where XX is, say, 20

Now, that will cap the level they are generated at, which may not be what you want. If you only want to cap the gold...
Open program\sea_ai\aifantom.c
Oh, wait.
Which build subversion do you have?
Do you have a SHIPMONEY_MULT in your BuildSettings.h file?
If so, just make it smaller. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/oops3.gif" style="vertical-align:middle" emoid=":eek:ops2" border="0" alt="oops3.gif" />

If not, open that aifantom file.
find
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int rscale = makeint(ranksc);<!--c2--></div><!--ec2-->
replace
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->int rscale = makeint(ranksc);
if(rscale > YY) rscale = YY;<!--c2--></div><!--ec2-->
and replace YY with some number, say 30 or so. Whatever works.
 
Thanks NK for the quick response. I am using build 12.1. I was referring to all actions made by a player when obtaining gold from any action. Not just a specific action. Like capturing a ship.
 
Ah. That would be rather difficult to do, there are so many places where player rank checks are used. :\
Well, we should do it anyway, so we can have a single global multiplier...
 
<!--QuoteBegin-NathanKell+Jun 21 2005, 01:52 PM--><div class='quotetop'>QUOTE(NathanKell @ Jun 21 2005, 01:52 PM)</div><div class='quotemain'><!--QuoteEBegin-->Ah. That would be rather difficult to do, there are so many places where player rank checks are used. :\
Well, we should do it anyway, so we can have a single global multiplier...
<div align="right">[snapback]115877[/snapback]</div><!--QuoteEnd--></div><!--QuoteEEnd-->

OUCH! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/modding.gif" style="vertical-align:middle" emoid=":modding" border="0" alt="modding.gif" />

I need some Ron Rico now!
 
is it possible to make captains at much higher or lower lvl. then yourself accure, so its not always regulated by your own lvl??... would make it a little more fun if you could encounter a battle fleet led by a lvl. 40 admiral or something like that.

or maybe a merchant fleet with lvl. 1-5 captains so it would be very easy pray.
 
Sounds like a good idea, Sofus! <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/yes.gif" style="vertical-align:middle" emoid=":yes" border="0" alt="yes.gif" />
 
Sofus: That's done already, actually. <img src="http://www.piratesahoy.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
It's this code in CreateOfficer:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->    if(captain)
    {
 //Log_SetStringToLog("Cap");
 //note: here caprankmult is re-assigned, to account for pchar's officers; this has been disabled, as it's now done in AI.
 //caprankmult = 1 + makefloat(GetOfficersQuantity(PChar)*5 + rand(GetOfficersQuantity(PChar)*5))/10.0;
 cShipClass = 8 - GetCharacterShipClass(Npchar);
 if(cShipClass > 8) cShipClass = 1;
 if(GetCharacterShipType(Npchar) == SHIP_FORT) cShipClass = 8;
 if(nRank < makeint(pow((cShipClass),1.25))) nRank = makeint(pow((cShipClass),1.25));
 if(GetDifficulty() < 4 && Npchar.quest.officertype != OFFIC_TYPE_CAPPIRATE && nRank > makeint(pow((cShipClass),1.5)*2.5)) nRank = makeint(pow((cShipClass),1.5)*2.5);
 //Npchar.oldrank = makeint(nRank);
 //nRank = makeint(nRank * caprankmult);
    }<!--c2--></div><!--ec2-->
Which means, if the captain is too low-ranked for his ship, he gets a rank of (8-shipclass) ^ 1.25, and, if not at swash difficulty and not a pirate, there's a maximum based on shipclass too.
 
Back
Top