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="

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.