What? Another XP script? Well, yes. I've had several requests for configurable options that don't really apply to XP systems that use static tables. (Party Member weights, separate min/max HD/cr & cr/HD difference, max HD difference between members, +/- scale params for HD != CR) Both the DMG XP and DMG 2DA XP systems' configurability are limited by their use of tables. Secondly, the DMG tables are specifically setup so that 13.33 encounters are required to level, but the Bioware tables yield increasing encounters per HD (sort of). This system lets you specify encounters per HD and whether or not to increase with each HD as well as by how much. Most of these are 'slider' type controls for ease of use. Also included is an excel file that allows you to tweak the various sliders and see the resultant table, along with bioware and dmg tables for comparison. Update **removed xp message bypass (with 1.64 there is no message when xp slider is set to 0) and updates recommended by Endlefas
Updated erf posted with all Endlefas' recommendations as well as the bypass bioware code removed (with 1.64, if you set the module's xp slider to 0, no additional message appears).
Updated erf posted with all Endlefas' recommendations as well as the bypass bioware code removed (with 1.64, if you set the module's xp slider to 0, no additional message appears).
wow, not sure what happened to that last post. hmm, try again
Hey Endlefas,
Thanks for your analysis, though it took me a minute to remember what I was doing there and to "get it". That's a pretty good interim solution, but it's actually a bit of a weird problem. There should be no "extra" case for cr less than 1, and the
nAward = FloatToInt(fBaseXP * pow((0.8f - fAdjust), (fHD - fCR)));
should work fine for that case. I'm not sure what I was thinking when I added the extra case...
However, the way bioware handles it is a bit odd - all creatures with cr less than 1 return .5 from GetChallengeRating (whether it's a cow or a hobgoblin or whatever.) So, what I will do is change
Thanks for your analysis, though it took me a minute to remember what I was doing there and to "get it". That's a pretty good interim solution, but it's actually a bit of a weird problem. There should be no "extra" case for cr less than 1, and the
nAward = FloatToInt(fBaseXP * pow((0.8f - fAdjust), (fHD - fCR)));
should work fine for that case. I'm not sure what I was thinking when I added the extra case...
However, the way bioware handles it is a bit odd - all creatures with cr = 1.0f) // fHD > fCR
nAward = FloatToInt(fBaseXP * pow((0.8f - fAdjust), (fHD - fCR)));
else // fCR fCR
nAward = FloatToInt(fBaseXP * fCR);
to
else // fHD > fCR
nAward = FloatToInt(fBaseXP * pow((0.8f - fAdjust), (fHD - fCR)));
Point well taken, Endlefas. I'll add that and update the excel spread as well (I found another counting error in the spread and I added a couple of new columns for comparison -- the silly excel spread has taken far more time than the script itself :)
Posted by Endlefas ( 80.229.xxx.xxx ) at 2004-09-21 14:23:00
It matters not a jot to the level 40 player, but I was more concerned about how it could affect other members of his party if using the N_MAX_PARTY_HD_DIFFERENCE and B_NO_AWARD_FOR_PARTY options.
Tested the script a fair bit last night - seems to work just right. Thanks for your effort :)
Thanks Endlefas, nice catch. I was not aware you would continue to accumulate xp after 780000. :) You are right, that's a good way to limit that. Although, since the system is not table based, it will award the player as if he was level 41 or 42 etc. But it should continue to award them as if they were 40. (Not sure it really matters much at that point though :) )
Posted by Endlefas ( 80.229.xxx.xxx ) at 2004-09-20 13:08:00
Errr.... with a semi-colon on the end of
return nLevel;
or course :p
Posted by Endlefas ( 80.229.xxx.xxx ) at 2004-09-20 13:05:00
Looks like an interesting and useful XP script. Putting it through its paces now, but noticed a issue that you might like to correct...
This bit:
// GetHitDiceByXP
// Solve for hd from xp = hd * (hd - 1) * 500
// hd = 1/50 * (sqrt(5) * sqrt(xp + 125) + 25)
int GetHitDiceByXP(float fXP)
{
return FloatToInt(0.02 * (sqrt(5.0f) * sqrt(fXP + 125.0f) + 25.0f));
}
will effectively return PC levels in excess of level 40 if the PC has XP over 820000. Changing to this (or similar) fixes it:
// GetHitDiceByXP
// Solve for hd from xp = hd * (hd - 1) * 500
// hd = 1/50 * (sqrt(5) * sqrt(xp + 125) + 25)
int GetHitDiceByXP(float fXP)
{
int nLevel = FloatToInt(0.02 * (sqrt(5.0f) * sqrt(fXP + 125.0f) + 25.0f));
if (nLevel > 40) nLevel =40;
return nLevel
}
Good work, though. Almost exactly the XP script I was looking for :)
Hey, I just checked and the zip was 1.05, not sure what happened there, but I reuploaded 1.06 just in case. I also then downloaded it again to make sure and the dl was 1.06, sorry for any confusion.
I updated the eligibility checks, especially if you are using B_AWARD_DEAD_PLAYERS. Now, you only receive awards if you are within normal clipping distance (dead or alive) to keep dead players from sitting there and collecting awards. Big thanks to Belial Prime for his help in smashing the gremlins :)
I also updated the excel spread, I had one calculation that was using too many columns so it would throw off the charts depending on what values you had set.
I'm considering a "suggested settings" guide, since this really turned out to be 'not so simple' heh. Having said that, the excel spread is your friend. Use it to see exactly what the awards will be in game. Let me know if the suggested settings would be helpful (DMG, Bioware, PW, etc).
Hmm, there were no downloads when I started the update :) For the 5 or so who downloaded before I finished, the script is exactly the same, I just updated the excel spreadsheet to included more of the options.
My bad, I made the post with only text intending to get the erf up before the post became public, but I haven't gotten around to it yet. I have a couple of PL params I haven't gotten into the excel spread, but I'll go ahead and post it sometime this eve (9/3/04) and update the excel file later this weekend.
~ScrewTape
Posted by Anonymous ( 65.13.xxx.xxx ) at 2004-09-03 05:48:00
There isn't anything to download.
You must be Logged In to post comments in this section.