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:
Jaysyn904
2024-10-21 15:19:44 -04:00
parent 3e6f2fee03
commit 6685b7ca0d
31 changed files with 395 additions and 318 deletions

View File

@@ -466,7 +466,7 @@ if(GetLocalInt(GetModule(), "COLORS_OK")==1)
//Turn their channel to talk..
SetPCChatVolume(TALKVOLUME_TALK);
//Tell the PC the DMs are not recieving messages..
SetPCChatMessage("The DM has turned off Party Chat temporarialy.");
SetPCChatMessage("The DM has turned off Party Chat temporarily.");
}
}
@@ -480,7 +480,7 @@ if(GetLocalInt(GetModule(), "COLORS_OK")==1)
//Turn their channel to talk..
SetPCChatVolume(TALKVOLUME_TALK);
//Tell the PC the DMs are not recieving messages..
SetPCChatMessage("The DM has turned off DM tells temporarialy.");
SetPCChatMessage("The DM has turned off DM tells temporarily.");
}
}

View File

@@ -29,22 +29,41 @@ location bTarget;
//Required Include For Color Messages(Read include to learn more)
#include "gen_inc_color"
#include "inc_utility"
#include "nwnx_player"
//Required Include for SimTools
//#include "fky_chat_inc"
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");
}
}
//Main Script
void main()
{
ExecuteScript("prc_onenter", OBJECT_SELF);
//Declare Major Variables..
object oPC;
oPC = GetEnteringObject();
object oTarget;
oTarget = oPC;
object oPlayer = oPC;
object oPP = oPC;
string sCDKey = GetPCPublicCDKey(oPC, FALSE);
//Declare Major Variables
object oPC;
oPC = GetEnteringObject();
object oTarget;
oTarget = oPC;
object oPlayer = oPC;
object oPP = oPC;
string sCDKey = GetPCPublicCDKey(oPC, FALSE);
SetTlkOverrideForMaximumLevel(GetEnteringObject());
//IMPORTANT, please set the Nap Time Below!
//If changed here you must open the script "kopcwand" and adjust it there!

View File

@@ -9,10 +9,24 @@ Created On: 3/03/09
Intergrated SimTools to the OnPlayerLevelUp Event
----------------------------------------------------------*/
#include "nwnx_player"
//Required Include for SimTools
//#include "fky_chat_inc"
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");
}
}
void SendMessageToAllPC(string sMessage)
{
object oPC = GetFirstPC();
@@ -25,11 +39,14 @@ void SendMessageToAllPC(string sMessage)
void main()
{
ExecuteScript("prc_levelup", OBJECT_SELF);
object oPC = GetPCLevellingUp();
int nHD = GetHitDice(oPC);
location lSaved = GetLocation(oPC);
int MULTI_PLAYER = GetLocalInt(GetModule(), "multi");
ExecuteScript("prc_levelup", OBJECT_SELF);
object oPC = GetPCLevellingUp();
int nHD = GetHitDice(oPC);
location lSaved = GetLocation(oPC);
int MULTI_PLAYER = GetLocalInt(GetModule(), "multi");
SetTlkOverrideForMaximumLevel(GetPCLevellingUp());
///////LOCATION SAVING OPTION////////
//Delete the /* above to activate

View File

@@ -13,5 +13,4 @@ void main()
//ExecuteScript("sf_xp", OBJECT_SELF);
ExecuteScript("prc_npc_death", OBJECT_SELF);
ExecuteScript("prc_pwondeath", OBJECT_SELF);
}
}

View File

@@ -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 (){}

View File

@@ -15,6 +15,20 @@ character.
*/
////////////////////////////////////
#include "nwnx_player"
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");
}
}
void main()
{
@@ -51,6 +65,8 @@ int tXP = cXP + rXP; //rXP + pXP;
//Take all the player's XP
SetXP(oPC, 0);
SetTlkOverrideForMaximumLevel(oPC);
//Let's make sure the character is saved!!!!
DelayCommand(1.0, ExportSingleCharacter(oPC));
@@ -74,7 +90,7 @@ else
//In case of errors..
else
{
FloatingTextStringOnCreature("Please notify a DM's there is an error" +
FloatingTextStringOnCreature("Please notify a DM that there is an error" +
" with the XP Bank.", oPC);
}
}

View File

@@ -361,7 +361,7 @@ void GiveXP(object oKiller, int nXPToGive, float fKillerBonus, int nDiff, int nP
}
}
GiveXPToCreature(oParty, (nXPToGive + FloatToInt(fKillerBonus)));
//GiveXPToCreature(oParty, (nXPToGive + FloatToInt(fKillerBonus)));
}
//:: Reward other party members
else
@@ -407,7 +407,7 @@ void GiveXP(object oKiller, int nXPToGive, float fKillerBonus, int nDiff, int nP
GiveGoldToCreature(oParty, FloatToInt((IntToFloat(nXPToGive) + fKillerBonus) * GP_REWARD_MULTIPLIER));
} */
GiveXPToCreature(oParty, nXPToGive);
//GiveXPToCreature(oParty, nXPToGive);
}
}
}