Added Corrected Char Sheet XP script by -=HA=-
Added Corrected Char Sheet XP script by -=HA=-. Updated a few NPC onDeath scripts to use point at the correct XP scripts. Full compile. Updated release archive.
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
#include "nwnx_player"
|
||||
|
||||
//Created By Guile 5/5/08
|
||||
|
||||
//:: NWNxEE / 60 lvl support by Jaysyn & HA
|
||||
|
||||
//IMPORTANT////////////////////////////////////////////////////////////////////
|
||||
//This is an include not an actual script (It has prototype functions in it!)
|
||||
//Function which you can use in any script!! Just.....
|
||||
@@ -37,156 +41,172 @@ Relevel(oPC);
|
||||
//you should double check this yourself to verify it.
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void SetTlkOverrideForMaximumLevel(object oPC)
|
||||
{
|
||||
int nLevel = GetHitDice(oPC);
|
||||
|
||||
if (nLevel < 40)
|
||||
{
|
||||
NWNX_Player_SetTlkOverride(oPC, 315, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
NWNX_Player_SetTlkOverride(oPC, 315, "Next Level: " + IntToString((nLevel + 1) * nLevel * 500) + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
//This function Take1Level(oTarget); will take 1 level from the Target.
|
||||
//It set's thier xp to the base required XP for the next lowest level.
|
||||
//
|
||||
void Take1Level(object oTarget)
|
||||
{
|
||||
int cLvl = GetHitDice(oTarget);
|
||||
int nXP;
|
||||
int cLvl = GetHitDice(oTarget);
|
||||
int nXP;
|
||||
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 0; break;
|
||||
case 2: nXP = 0; break;
|
||||
case 3: nXP = 1000; break;
|
||||
case 4: nXP = 3000; break;
|
||||
case 5: nXP = 6000; break;
|
||||
case 6: nXP = 10000; break;
|
||||
case 7: nXP = 15000; break;
|
||||
case 8: nXP = 21000; break;
|
||||
case 9: nXP = 28000; break;
|
||||
case 10: nXP = 36000; break;
|
||||
case 11: nXP = 45000; break;
|
||||
case 12: nXP = 55000; break;
|
||||
case 13: nXP = 66000; break;
|
||||
case 14: nXP = 78000; break;
|
||||
case 15: nXP = 91000; break;
|
||||
case 16: nXP = 105000; break;
|
||||
case 17: nXP = 120000; break;
|
||||
case 18: nXP = 136000; break;
|
||||
case 19: nXP = 153000; break;
|
||||
case 20: nXP = 171000; break;
|
||||
case 21: nXP = 190000; break;
|
||||
case 22: nXP = 210000; break;
|
||||
case 23: nXP = 231000; break;
|
||||
case 24: nXP = 263000; break;
|
||||
case 25: nXP = 276000; break;
|
||||
case 26: nXP = 300000; break;
|
||||
case 27: nXP = 325000; break;
|
||||
case 28: nXP = 351000; break;
|
||||
case 29: nXP = 378000; break;
|
||||
case 30: nXP = 406000; break;
|
||||
case 31: nXP = 435000; break;
|
||||
case 32: nXP = 465000; break;
|
||||
case 33: nXP = 496000; break;
|
||||
case 34: nXP = 528000; break;
|
||||
case 35: nXP = 561000; break;
|
||||
case 36: nXP = 595000; break;
|
||||
case 37: nXP = 630000; break;
|
||||
case 38: nXP = 666000; break;
|
||||
case 39: nXP = 703000; break;
|
||||
case 40: nXP = 741000; break;
|
||||
case 41: nXP = 780000; break;
|
||||
case 42: nXP = 820000; break;
|
||||
case 43: nXP = 861000; break;
|
||||
case 44: nXP = 903000; break;
|
||||
case 45: nXP = 946000; break;
|
||||
case 46: nXP = 990000; break;
|
||||
case 47: nXP = 1035000; break;
|
||||
case 48: nXP = 1081000; break;
|
||||
case 49: nXP = 1128000; break;
|
||||
case 50: nXP = 1176000; break;
|
||||
case 51: nXP = 1225000; break;
|
||||
case 52: nXP = 1275000; break;
|
||||
case 53: nXP = 1326000; break;
|
||||
case 54: nXP = 1378000; break;
|
||||
case 55: nXP = 1431000; break;
|
||||
case 56: nXP = 1485000; break;
|
||||
case 57: nXP = 1540000; break;
|
||||
case 58: nXP = 1596000; break;
|
||||
case 59: nXP = 1653000; break;
|
||||
case 60: nXP = 1711000; break;
|
||||
}
|
||||
SetXP(oTarget, nXP);
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 0; break;
|
||||
case 2: nXP = 0; break;
|
||||
case 3: nXP = 1000; break;
|
||||
case 4: nXP = 3000; break;
|
||||
case 5: nXP = 6000; break;
|
||||
case 6: nXP = 10000; break;
|
||||
case 7: nXP = 15000; break;
|
||||
case 8: nXP = 21000; break;
|
||||
case 9: nXP = 28000; break;
|
||||
case 10: nXP = 36000; break;
|
||||
case 11: nXP = 45000; break;
|
||||
case 12: nXP = 55000; break;
|
||||
case 13: nXP = 66000; break;
|
||||
case 14: nXP = 78000; break;
|
||||
case 15: nXP = 91000; break;
|
||||
case 16: nXP = 105000; break;
|
||||
case 17: nXP = 120000; break;
|
||||
case 18: nXP = 136000; break;
|
||||
case 19: nXP = 153000; break;
|
||||
case 20: nXP = 171000; break;
|
||||
case 21: nXP = 190000; break;
|
||||
case 22: nXP = 210000; break;
|
||||
case 23: nXP = 231000; break;
|
||||
case 24: nXP = 263000; break;
|
||||
case 25: nXP = 276000; break;
|
||||
case 26: nXP = 300000; break;
|
||||
case 27: nXP = 325000; break;
|
||||
case 28: nXP = 351000; break;
|
||||
case 29: nXP = 378000; break;
|
||||
case 30: nXP = 406000; break;
|
||||
case 31: nXP = 435000; break;
|
||||
case 32: nXP = 465000; break;
|
||||
case 33: nXP = 496000; break;
|
||||
case 34: nXP = 528000; break;
|
||||
case 35: nXP = 561000; break;
|
||||
case 36: nXP = 595000; break;
|
||||
case 37: nXP = 630000; break;
|
||||
case 38: nXP = 666000; break;
|
||||
case 39: nXP = 703000; break;
|
||||
case 40: nXP = 741000; break;
|
||||
case 41: nXP = 780000; break;
|
||||
case 42: nXP = 820000; break;
|
||||
case 43: nXP = 861000; break;
|
||||
case 44: nXP = 903000; break;
|
||||
case 45: nXP = 946000; break;
|
||||
case 46: nXP = 990000; break;
|
||||
case 47: nXP = 1035000; break;
|
||||
case 48: nXP = 1081000; break;
|
||||
case 49: nXP = 1128000; break;
|
||||
case 50: nXP = 1176000; break;
|
||||
case 51: nXP = 1225000; break;
|
||||
case 52: nXP = 1275000; break;
|
||||
case 53: nXP = 1326000; break;
|
||||
case 54: nXP = 1378000; break;
|
||||
case 55: nXP = 1431000; break;
|
||||
case 56: nXP = 1485000; break;
|
||||
case 57: nXP = 1540000; break;
|
||||
case 58: nXP = 1596000; break;
|
||||
case 59: nXP = 1653000; break;
|
||||
case 60: nXP = 1711000; break;
|
||||
}
|
||||
|
||||
SetXP(oTarget, nXP);
|
||||
|
||||
SetTlkOverrideForMaximumLevel(oTarget);
|
||||
}
|
||||
|
||||
//The Function Below Give1Level(oTarget); gives the Target one level.
|
||||
//IMPORTANT: This function cannot be used with Take1Level(oTarget);
|
||||
//or it will delevel the target!!!!
|
||||
//I created this exlusively for the purose of my DM wand
|
||||
//I created this exlusively for the purpose of my DM wand
|
||||
//and other scripts which only give the PC one level as a reward.
|
||||
void Give1Level(object oTarget)
|
||||
{
|
||||
int cLvl = GetHitDice(oTarget);
|
||||
int nXP;
|
||||
int cLvl = GetHitDice(oTarget);
|
||||
int nXP;
|
||||
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 1000; break;
|
||||
case 2: nXP = 3000; break;
|
||||
case 3: nXP = 6000; break;
|
||||
case 4: nXP = 10000; break;
|
||||
case 5: nXP = 15000; break;
|
||||
case 6: nXP = 21000; break;
|
||||
case 7: nXP = 28000; break;
|
||||
case 8: nXP = 36000; break;
|
||||
case 9: nXP = 45000; break;
|
||||
case 10: nXP = 55000; break;
|
||||
case 11: nXP = 66000; break;
|
||||
case 12: nXP = 78000; break;
|
||||
case 13: nXP = 91000; break;
|
||||
case 14: nXP = 105000; break;
|
||||
case 15: nXP = 120000; break;
|
||||
case 16: nXP = 136000; break;
|
||||
case 17: nXP = 153000; break;
|
||||
case 18: nXP = 171000; break;
|
||||
case 19: nXP = 190000; break;
|
||||
case 20: nXP = 210000; break;
|
||||
case 21: nXP = 231000; break;
|
||||
case 22: nXP = 263000; break;
|
||||
case 23: nXP = 276000; break;
|
||||
case 24: nXP = 300000; break;
|
||||
case 25: nXP = 325000; break;
|
||||
case 26: nXP = 351000; break;
|
||||
case 27: nXP = 378000; break;
|
||||
case 28: nXP = 406000; break;
|
||||
case 29: nXP = 435000; break;
|
||||
case 30: nXP = 465000; break;
|
||||
case 31: nXP = 496000; break;
|
||||
case 32: nXP = 528000; break;
|
||||
case 33: nXP = 561000; break;
|
||||
case 34: nXP = 595000; break;
|
||||
case 35: nXP = 630000; break;
|
||||
case 36: nXP = 666000; break;
|
||||
case 37: nXP = 703000; break;
|
||||
case 38: nXP = 741000; break;
|
||||
case 39: nXP = 780000; break;
|
||||
case 40: nXP = 820000; break;
|
||||
case 41: nXP = 861000; break;
|
||||
case 42: nXP = 903000; break;
|
||||
case 43: nXP = 946000; break;
|
||||
case 44: nXP = 990000; break;
|
||||
case 45: nXP = 1035000; break;
|
||||
case 46: nXP = 1081000; break;
|
||||
case 47: nXP = 1128000; break;
|
||||
case 48: nXP = 1176000; break;
|
||||
case 49: nXP = 1225000; break;
|
||||
case 50: nXP = 1275000; break;
|
||||
case 51: nXP = 1326000; break;
|
||||
case 52: nXP = 1378000; break;
|
||||
case 53: nXP = 1431000; break;
|
||||
case 54: nXP = 1485000; break;
|
||||
case 55: nXP = 1540000; break;
|
||||
case 56: nXP = 1596000; break;
|
||||
case 57: nXP = 1653000; break;
|
||||
case 58: nXP = 1711000; break;
|
||||
case 59: nXP = 1770000; break;
|
||||
case 60: nXP = 1830000; break;
|
||||
}
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 1000; break;
|
||||
case 2: nXP = 3000; break;
|
||||
case 3: nXP = 6000; break;
|
||||
case 4: nXP = 10000; break;
|
||||
case 5: nXP = 15000; break;
|
||||
case 6: nXP = 21000; break;
|
||||
case 7: nXP = 28000; break;
|
||||
case 8: nXP = 36000; break;
|
||||
case 9: nXP = 45000; break;
|
||||
case 10: nXP = 55000; break;
|
||||
case 11: nXP = 66000; break;
|
||||
case 12: nXP = 78000; break;
|
||||
case 13: nXP = 91000; break;
|
||||
case 14: nXP = 105000; break;
|
||||
case 15: nXP = 120000; break;
|
||||
case 16: nXP = 136000; break;
|
||||
case 17: nXP = 153000; break;
|
||||
case 18: nXP = 171000; break;
|
||||
case 19: nXP = 190000; break;
|
||||
case 20: nXP = 210000; break;
|
||||
case 21: nXP = 231000; break;
|
||||
case 22: nXP = 263000; break;
|
||||
case 23: nXP = 276000; break;
|
||||
case 24: nXP = 300000; break;
|
||||
case 25: nXP = 325000; break;
|
||||
case 26: nXP = 351000; break;
|
||||
case 27: nXP = 378000; break;
|
||||
case 28: nXP = 406000; break;
|
||||
case 29: nXP = 435000; break;
|
||||
case 30: nXP = 465000; break;
|
||||
case 31: nXP = 496000; break;
|
||||
case 32: nXP = 528000; break;
|
||||
case 33: nXP = 561000; break;
|
||||
case 34: nXP = 595000; break;
|
||||
case 35: nXP = 630000; break;
|
||||
case 36: nXP = 666000; break;
|
||||
case 37: nXP = 703000; break;
|
||||
case 38: nXP = 741000; break;
|
||||
case 39: nXP = 780000; break;
|
||||
case 40: nXP = 820000; break;
|
||||
case 41: nXP = 861000; break;
|
||||
case 42: nXP = 903000; break;
|
||||
case 43: nXP = 946000; break;
|
||||
case 44: nXP = 990000; break;
|
||||
case 45: nXP = 1035000; break;
|
||||
case 46: nXP = 1081000; break;
|
||||
case 47: nXP = 1128000; break;
|
||||
case 48: nXP = 1176000; break;
|
||||
case 49: nXP = 1225000; break;
|
||||
case 50: nXP = 1275000; break;
|
||||
case 51: nXP = 1326000; break;
|
||||
case 52: nXP = 1378000; break;
|
||||
case 53: nXP = 1431000; break;
|
||||
case 54: nXP = 1485000; break;
|
||||
case 55: nXP = 1540000; break;
|
||||
case 56: nXP = 1596000; break;
|
||||
case 57: nXP = 1653000; break;
|
||||
case 58: nXP = 1711000; break;
|
||||
case 59: nXP = 1770000; break;
|
||||
case 60: nXP = 1830000; break;
|
||||
}
|
||||
|
||||
SetXP(oTarget, nXP);
|
||||
SetXP(oTarget, nXP);
|
||||
|
||||
}
|
||||
|
||||
@@ -198,77 +218,83 @@ SetXP(oTarget, nXP);
|
||||
//Example: Relevel(oPC); (That's all you need to relevel the PC!)
|
||||
void Relevel(object oTarget)
|
||||
{
|
||||
int nLvl = GetHitDice(oTarget);
|
||||
int nGold = nLvl * 50;
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
int nLvl = GetHitDice(oTarget);
|
||||
int nGold = nLvl * 50;
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
|
||||
if(GetGold(oTarget)>nGold)
|
||||
{
|
||||
TakeGoldFromCreature(nGold, oTarget, TRUE);
|
||||
SetXP(oTarget, 0);
|
||||
DelayCommand(1.0, GiveXPToCreature(oTarget, gXP));
|
||||
if(GetGold(oTarget)>nGold)
|
||||
{
|
||||
TakeGoldFromCreature(nGold, oTarget, TRUE);
|
||||
SetXP(oTarget, 0);
|
||||
DelayCommand(1.0, GiveXPToCreature(oTarget, gXP));
|
||||
DelayCommand(1.3, SetTlkOverrideForMaximumLevel(oTarget));
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oTarget, "You do not have enough gold to relevel!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oTarget, "You do not have enough gold to relevel!");
|
||||
}
|
||||
}
|
||||
|
||||
//The Function Relevel1(oTarget) will take 1 level from the Target and give
|
||||
//back thier orginal XP. This script does not cause xp loss whatsoever.
|
||||
void Relevel1(object oTarget)
|
||||
{
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
Take1Level(oTarget);
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
}
|
||||
|
||||
//The Function Relevel3(oTarget) will take 3 levels from the Target and give
|
||||
//back thier orginal XP. This script does not cause xp loss whatsoever.
|
||||
void Relevel5(object oTarget)
|
||||
{
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
Take1Level(oTarget);
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
DelayCommand(1.3, SetTlkOverrideForMaximumLevel(oTarget));
|
||||
}
|
||||
|
||||
//The Function Relevel5(oTarget) will take 5 levels from the Target and give
|
||||
//back thier orginal XP. This script does not cause xp loss whatsoever.
|
||||
//back their orginal XP. This script does not cause xp loss whatsoever.
|
||||
void Relevel5(object oTarget)
|
||||
{
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
}
|
||||
|
||||
//The Function Relevel10(oTarget) will take 10 levels from the Target and give
|
||||
//back their orginal XP. This script does not cause xp loss whatsoever.
|
||||
void Relevel10(object oTarget)
|
||||
{
|
||||
int nGold = GetHitDice(oTarget) * 50;
|
||||
if(GetGold(oTarget) >= nGold)
|
||||
{
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
}
|
||||
int nGold = GetHitDice(oTarget) * 50;
|
||||
if(GetGold(oTarget) >= nGold)
|
||||
{
|
||||
int nCCXP;
|
||||
nCCXP = GetXP(oTarget);
|
||||
SetLocalInt(oTarget, "pc_exact_xp", nCCXP);
|
||||
int gXP = GetLocalInt(oTarget, "pc_exact_xp");
|
||||
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
Take1Level(oTarget);
|
||||
|
||||
DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
}
|
||||
}
|
||||
|
||||
//This function penalizes a the person repsawning it goes in the (see below)
|
||||
@@ -279,96 +305,96 @@ DelayCommand(1.0, SetXP(oTarget, gXP));
|
||||
//Note This is a good script if your using Legendary Levels :)
|
||||
void ApplyRespawnPenalty(object oPlayer)
|
||||
{
|
||||
int cLvl = GetHitDice(oPlayer);
|
||||
int nXP;
|
||||
//We need this switch to determine what xp they must keep..
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 0; break;
|
||||
case 2: nXP = 1000; break;
|
||||
case 3: nXP = 3000; break;
|
||||
case 4: nXP = 6000; break;
|
||||
case 5: nXP = 10000; break;
|
||||
case 6: nXP = 15000; break;
|
||||
case 7: nXP = 21000; break;
|
||||
case 8: nXP = 28000; break;
|
||||
case 9: nXP = 36000; break;
|
||||
case 10: nXP = 45000; break;
|
||||
case 11: nXP = 55000; break;
|
||||
case 12: nXP = 66000; break;
|
||||
case 13: nXP = 78000; break;
|
||||
case 14: nXP = 91000; break;
|
||||
case 15: nXP = 105000; break;
|
||||
case 16: nXP = 120000; break;
|
||||
case 17: nXP = 136000; break;
|
||||
case 18: nXP = 153000; break;
|
||||
case 19: nXP = 171000; break;
|
||||
case 20: nXP = 190000; break;
|
||||
case 21: nXP = 210000; break;
|
||||
case 22: nXP = 231000; break;
|
||||
case 23: nXP = 263000; break;
|
||||
case 24: nXP = 276000; break;
|
||||
case 25: nXP = 300000; break;
|
||||
case 26: nXP = 325000; break;
|
||||
case 27: nXP = 351000; break;
|
||||
case 28: nXP = 378000; break;
|
||||
case 29: nXP = 406000; break;
|
||||
case 30: nXP = 435000; break;
|
||||
case 31: nXP = 465000; break;
|
||||
case 32: nXP = 496000; break;
|
||||
case 33: nXP = 528000; break;
|
||||
case 34: nXP = 561000; break;
|
||||
case 35: nXP = 595000; break;
|
||||
case 36: nXP = 630000; break;
|
||||
case 37: nXP = 666000; break;
|
||||
case 38: nXP = 703000; break;
|
||||
case 39: nXP = 741000; break;
|
||||
case 40: nXP = 780000; break;
|
||||
case 41: nXP = 820000; break;
|
||||
case 42: nXP = 861000; break;
|
||||
case 43: nXP = 903000; break;
|
||||
case 44: nXP = 946000; break;
|
||||
case 45: nXP = 990000; break;
|
||||
case 46: nXP = 1035000; break;
|
||||
case 47: nXP = 1081000; break;
|
||||
case 48: nXP = 1128000; break;
|
||||
case 49: nXP = 1176000; break;
|
||||
case 50: nXP = 1225000; break;
|
||||
case 51: nXP = 1275000; break;
|
||||
case 52: nXP = 1326000; break;
|
||||
case 53: nXP = 1378000; break;
|
||||
case 54: nXP = 1431000; break;
|
||||
case 55: nXP = 1485000; break;
|
||||
case 56: nXP = 1540000; break;
|
||||
case 57: nXP = 1596000; break;
|
||||
case 58: nXP = 1653000; break;
|
||||
case 59: nXP = 1711000; break;
|
||||
case 60: nXP = 1770000; break;
|
||||
int cLvl = GetHitDice(oPlayer);
|
||||
int nXP;
|
||||
//We need this switch to determine what xp they must keep..
|
||||
switch (cLvl)
|
||||
{
|
||||
case 1: nXP = 0; break;
|
||||
case 2: nXP = 1000; break;
|
||||
case 3: nXP = 3000; break;
|
||||
case 4: nXP = 6000; break;
|
||||
case 5: nXP = 10000; break;
|
||||
case 6: nXP = 15000; break;
|
||||
case 7: nXP = 21000; break;
|
||||
case 8: nXP = 28000; break;
|
||||
case 9: nXP = 36000; break;
|
||||
case 10: nXP = 45000; break;
|
||||
case 11: nXP = 55000; break;
|
||||
case 12: nXP = 66000; break;
|
||||
case 13: nXP = 78000; break;
|
||||
case 14: nXP = 91000; break;
|
||||
case 15: nXP = 105000; break;
|
||||
case 16: nXP = 120000; break;
|
||||
case 17: nXP = 136000; break;
|
||||
case 18: nXP = 153000; break;
|
||||
case 19: nXP = 171000; break;
|
||||
case 20: nXP = 190000; break;
|
||||
case 21: nXP = 210000; break;
|
||||
case 22: nXP = 231000; break;
|
||||
case 23: nXP = 263000; break;
|
||||
case 24: nXP = 276000; break;
|
||||
case 25: nXP = 300000; break;
|
||||
case 26: nXP = 325000; break;
|
||||
case 27: nXP = 351000; break;
|
||||
case 28: nXP = 378000; break;
|
||||
case 29: nXP = 406000; break;
|
||||
case 30: nXP = 435000; break;
|
||||
case 31: nXP = 465000; break;
|
||||
case 32: nXP = 496000; break;
|
||||
case 33: nXP = 528000; break;
|
||||
case 34: nXP = 561000; break;
|
||||
case 35: nXP = 595000; break;
|
||||
case 36: nXP = 630000; break;
|
||||
case 37: nXP = 666000; break;
|
||||
case 38: nXP = 703000; break;
|
||||
case 39: nXP = 741000; break;
|
||||
case 40: nXP = 780000; break;
|
||||
case 41: nXP = 820000; break;
|
||||
case 42: nXP = 861000; break;
|
||||
case 43: nXP = 903000; break;
|
||||
case 44: nXP = 946000; break;
|
||||
case 45: nXP = 990000; break;
|
||||
case 46: nXP = 1035000; break;
|
||||
case 47: nXP = 1081000; break;
|
||||
case 48: nXP = 1128000; break;
|
||||
case 49: nXP = 1176000; break;
|
||||
case 50: nXP = 1225000; break;
|
||||
case 51: nXP = 1275000; break;
|
||||
case 52: nXP = 1326000; break;
|
||||
case 53: nXP = 1378000; break;
|
||||
case 54: nXP = 1431000; break;
|
||||
case 55: nXP = 1485000; break;
|
||||
case 56: nXP = 1540000; break;
|
||||
case 57: nXP = 1596000; break;
|
||||
case 58: nXP = 1653000; break;
|
||||
case 59: nXP = 1711000; break;
|
||||
case 60: nXP = 1770000; break;
|
||||
}
|
||||
|
||||
int aXP = GetXP(oPlayer);
|
||||
int bXP = aXP - nXP; //Subtract thier minimum XP needed for the level
|
||||
int dXP = bXP + 100; //Give 100 XP to Prevent the divide by 0 error
|
||||
int mXP = dXP / 100; //Break thier xp up into a percentile
|
||||
int oXP = mXP * 80; //Returns thier 80% of their XP (-20%)
|
||||
int pXP = oXP - 100; //This subtracts the 100 given earlier
|
||||
int zXP = pXP + nXP; //The 20% Loss + Min XP For Their Current Level.
|
||||
int nGold = GetGold(oPlayer);
|
||||
int oGold = nGold / 100;
|
||||
int pGold = oGold * 10; //(calculate 10%)
|
||||
|
||||
if(pXP >0)//Saftey in case they didn't have enough XP over level required
|
||||
{
|
||||
SetXP(oPlayer, zXP);
|
||||
TakeGoldFromCreature(pGold, oPlayer, TRUE); //Take 10% of their gold.
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
SetXP(oPlayer, nXP); //Set them to the minimum required for level.
|
||||
TakeGoldFromCreature(pGold, oPlayer, TRUE); //Take 10% of their gold.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int aXP = GetXP(oPlayer);
|
||||
int bXP = aXP - nXP; //Subtract thier minimum XP needed for the level
|
||||
int dXP = bXP + 100; //Give 100 XP to Prevent the divide by 0 error
|
||||
int mXP = dXP / 100; //Break thier xp up into a percentile
|
||||
int oXP = mXP * 80; //Returns thier 80% of their XP (-20%)
|
||||
int pXP = oXP - 100; //This subtracts the 100 given earlier
|
||||
int zXP = pXP + nXP; //The 20% Loss + Min XP For Their Current Level.
|
||||
int nGold = GetGold(oPlayer);
|
||||
int oGold = nGold / 100;
|
||||
int pGold = oGold * 10; //(calculate 10%)
|
||||
|
||||
if(pXP >0)//Saftey in case they didn't have enough XP over level required
|
||||
{
|
||||
SetXP(oPlayer, zXP);
|
||||
TakeGoldFromCreature(pGold, oPlayer, TRUE); //Take 10% of their gold.
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
SetXP(oPlayer, nXP); //Set them to the minimum required for level.
|
||||
TakeGoldFromCreature(pGold, oPlayer, TRUE); //Take 10% of their gold.
|
||||
}
|
||||
|
||||
}
|
||||
//:: void main (){}
|
Reference in New Issue
Block a user