PWE_PRC8/_module/nss/levelup.nss
Jaysyn904 ee1dc35889 Initial Commit
Initial Commit
2025-04-03 10:29:41 -04:00

53 lines
1.3 KiB
Plaintext

//Script: cal_level_up
//Author: Albert Shih (Calidarien)
//Version: v1.0, 2002-06-21
//Usage: Calling this script from a conversation will set the speaker's
// experience and gold to the next level
//Notes: I used DMG values for the gold appropriate for each level.
//
//Convert experience to effective level
int XPtoLevel(int nXP) {
return FloatToInt((1+sqrt(1+4.*nXP/500))/2);
}
//
//Retrieve the DMG values of starting gold appropriate for a certain level
int Gold(int nLevel) {
switch (nLevel) {
case 1: return 100;
case 2: return 900;
case 3: return 2700;
case 4: return 5400;
case 5: return 9000;
case 6: return 13000;
case 7: return 19000;
case 8: return 27000;
case 9: return 36000;
case 10: return 49000;
case 11: return 66000;
case 12: return 49000;
case 13: return 110000;
case 14: return 150000;
case 15: return 200000;
case 16: return 260000;
case 17: return 340000;
case 18: return 440000;
case 19: return 580000;
case 20: return 760000;
}
return 0;
}
//
void main()
{
object player = GetPCSpeaker();
int nLevel = XPtoLevel(GetXP(player));
if (nLevel != 20) {
SetXP(player, nLevel*(nLevel+1)*500);
GiveGoldToCreature(player, Gold(nLevel+1)-Gold(nLevel));
} else {
GiveXPToCreature(player, 1);
GiveGoldToCreature(player, 1);
}
}