diff --git a/_module/are/labyrinth_undead.are.json b/_module/are/labyrinth_undead.are.json index a7a4dd90..47d47b83 100644 --- a/_module/are/labyrinth_undead.are.json +++ b/_module/are/labyrinth_undead.are.json @@ -861,7 +861,7 @@ }, "Tile_ID": { "type": "int", - "value": 166 + "value": 5 }, "Tile_MainLight1": { "type": "byte", @@ -873,15 +873,15 @@ }, "Tile_Orientation": { "type": "int", - "value": 3 + "value": 2 }, "Tile_SrcLight1": { "type": "byte", - "value": 3 + "value": 2 }, "Tile_SrcLight2": { "type": "byte", - "value": 3 + "value": 2 } }, { @@ -2194,7 +2194,7 @@ }, "Tile_ID": { "type": "int", - "value": 38 + "value": 118 }, "Tile_MainLight1": { "type": "byte", @@ -2237,7 +2237,7 @@ }, "Tile_ID": { "type": "int", - "value": 154 + "value": 39 }, "Tile_MainLight1": { "type": "byte", @@ -2245,7 +2245,7 @@ }, "Tile_MainLight2": { "type": "byte", - "value": 0 + "value": 1 }, "Tile_Orientation": { "type": "int", @@ -2296,11 +2296,11 @@ }, "Tile_SrcLight1": { "type": "byte", - "value": 2 + "value": 3 }, "Tile_SrcLight2": { "type": "byte", - "value": 2 + "value": 3 } }, { @@ -3629,11 +3629,11 @@ }, "Tile_SrcLight1": { "type": "byte", - "value": 3 + "value": 2 }, "Tile_SrcLight2": { "type": "byte", - "value": 3 + "value": 2 } }, { @@ -44197,7 +44197,7 @@ }, "Version": { "type": "dword", - "value": 32 + "value": 34 }, "Width": { "type": "int", diff --git a/_module/git/labyrinth_undead.git.json b/_module/git/labyrinth_undead.git.json index 1d758042..288c3e22 100644 --- a/_module/git/labyrinth_undead.git.json +++ b/_module/git/labyrinth_undead.git.json @@ -31592,7 +31592,7 @@ }, "XPosition": { "type": "float", - "value": 165.8017883300781 + "value": 165.0381317138672 }, "YOrientation": { "type": "float", @@ -31600,7 +31600,7 @@ }, "YPosition": { "type": "float", - "value": 13.92373180389404 + "value": 14.20234966278076 }, "ZPosition": { "type": "float", @@ -34406,7 +34406,7 @@ }, "XPosition": { "type": "float", - "value": 164.9021759033203 + "value": 164.8339538574219 }, "YOrientation": { "type": "float", @@ -34414,11 +34414,11 @@ }, "YPosition": { "type": "float", - "value": 19.68864059448242 + "value": 20.38010215759277 }, "ZPosition": { "type": "float", - "value": 0.2000000029802322 + "value": 0.199998140335083 } }, { diff --git a/_module/ncs/ac_dmreward.ncs b/_module/ncs/ac_dmreward.ncs index 0f47b4a9..6de56f13 100644 Binary files a/_module/ncs/ac_dmreward.ncs and b/_module/ncs/ac_dmreward.ncs differ diff --git a/_module/ncs/cheatercheck1.ncs b/_module/ncs/cheatercheck1.ncs index b42a0e85..99da22cd 100644 Binary files a/_module/ncs/cheatercheck1.ncs and b/_module/ncs/cheatercheck1.ncs differ diff --git a/_module/ncs/cheatercheck2.ncs b/_module/ncs/cheatercheck2.ncs index 3778277f..75e4d57e 100644 Binary files a/_module/ncs/cheatercheck2.ncs and b/_module/ncs/cheatercheck2.ncs differ diff --git a/_module/ncs/cheatercheck3.ncs b/_module/ncs/cheatercheck3.ncs index 54739619..104ad1ca 100644 Binary files a/_module/ncs/cheatercheck3.ncs and b/_module/ncs/cheatercheck3.ncs differ diff --git a/_module/ncs/cheatercheck4.ncs b/_module/ncs/cheatercheck4.ncs index 9e2438ff..199fc653 100644 Binary files a/_module/ncs/cheatercheck4.ncs and b/_module/ncs/cheatercheck4.ncs differ diff --git a/_module/ncs/cheatercheck5.ncs b/_module/ncs/cheatercheck5.ncs index c42a0cea..3a523657 100644 Binary files a/_module/ncs/cheatercheck5.ncs and b/_module/ncs/cheatercheck5.ncs differ diff --git a/_module/ncs/horsecrettrig1.ncs b/_module/ncs/horsecrettrig1.ncs index 55dd910b..94310027 100644 Binary files a/_module/ncs/horsecrettrig1.ncs and b/_module/ncs/horsecrettrig1.ncs differ diff --git a/_module/ncs/horsecrettrig2.ncs b/_module/ncs/horsecrettrig2.ncs index a248b309..46ff5170 100644 Binary files a/_module/ncs/horsecrettrig2.ncs and b/_module/ncs/horsecrettrig2.ncs differ diff --git a/_module/ncs/imp_grab.ncs b/_module/ncs/imp_grab.ncs index 6f3f5fe9..a103ebe4 100644 Binary files a/_module/ncs/imp_grab.ncs and b/_module/ncs/imp_grab.ncs differ diff --git a/_module/ncs/on_player_chat.ncs b/_module/ncs/on_player_chat.ncs index 8b87c8c6..11d8d477 100644 Binary files a/_module/ncs/on_player_chat.ncs and b/_module/ncs/on_player_chat.ncs differ diff --git a/_module/ncs/oncliententer.ncs b/_module/ncs/oncliententer.ncs index 83542e44..aff7ebb8 100644 Binary files a/_module/ncs/oncliententer.ncs and b/_module/ncs/oncliententer.ncs differ diff --git a/_module/ncs/onplayerdeath.ncs b/_module/ncs/onplayerdeath.ncs index b5da1e5c..3cae7fa2 100644 Binary files a/_module/ncs/onplayerdeath.ncs and b/_module/ncs/onplayerdeath.ncs differ diff --git a/_module/ncs/onplayerlevelup.ncs b/_module/ncs/onplayerlevelup.ncs index 6c0c76d0..e010384e 100644 Binary files a/_module/ncs/onplayerlevelup.ncs and b/_module/ncs/onplayerlevelup.ncs differ diff --git a/_module/ncs/relevel10.ncs b/_module/ncs/relevel10.ncs index 7e9df837..b848a2c5 100644 Binary files a/_module/ncs/relevel10.ncs and b/_module/ncs/relevel10.ncs differ diff --git a/_module/ncs/relevel5.ncs b/_module/ncs/relevel5.ncs index efc21cb5..4c32e514 100644 Binary files a/_module/ncs/relevel5.ncs and b/_module/ncs/relevel5.ncs differ diff --git a/_module/ncs/relevelpc1lvl.ncs b/_module/ncs/relevelpc1lvl.ncs index 6e97e1a1..9df186e1 100644 Binary files a/_module/ncs/relevelpc1lvl.ncs and b/_module/ncs/relevelpc1lvl.ncs differ diff --git a/_module/ncs/setxpbank.ncs b/_module/ncs/setxpbank.ncs index 7de45284..9fd5a56a 100644 Binary files a/_module/ncs/setxpbank.ncs and b/_module/ncs/setxpbank.ncs differ diff --git a/_module/ncs/sf_xp.ncs b/_module/ncs/sf_xp.ncs index bc6c45cf..70e43cc8 100644 Binary files a/_module/ncs/sf_xp.ncs and b/_module/ncs/sf_xp.ncs differ diff --git a/_module/ncs/silenttrigger.ncs b/_module/ncs/silenttrigger.ncs index 9e22b5b0..728e58e1 100644 Binary files a/_module/ncs/silenttrigger.ncs and b/_module/ncs/silenttrigger.ncs differ diff --git a/_module/ncs/silenttrigger2.ncs b/_module/ncs/silenttrigger2.ncs index 90e8f4e5..2274260f 100644 Binary files a/_module/ncs/silenttrigger2.ncs and b/_module/ncs/silenttrigger2.ncs differ diff --git a/_module/ncs/spawnb_cc_activ.ncs b/_module/ncs/spawnb_cc_activ.ncs index b571555b..de4d1662 100644 Binary files a/_module/ncs/spawnb_cc_activ.ncs and b/_module/ncs/spawnb_cc_activ.ncs differ diff --git a/_module/nss/on_player_chat.nss b/_module/nss/on_player_chat.nss index a1c50be2..572e3cad 100644 --- a/_module/nss/on_player_chat.nss +++ b/_module/nss/on_player_chat.nss @@ -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."); } } diff --git a/_module/nss/oncliententer.nss b/_module/nss/oncliententer.nss index d8777b90..a9d7da65 100644 --- a/_module/nss/oncliententer.nss +++ b/_module/nss/oncliententer.nss @@ -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! diff --git a/_module/nss/onplayerlevelup.nss b/_module/nss/onplayerlevelup.nss index b0cf0d56..525534c4 100644 --- a/_module/nss/onplayerlevelup.nss +++ b/_module/nss/onplayerlevelup.nss @@ -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 diff --git a/_module/nss/quicklingdeath.nss b/_module/nss/quicklingdeath.nss index 01de5d46..b5bbe496 100644 --- a/_module/nss/quicklingdeath.nss +++ b/_module/nss/quicklingdeath.nss @@ -13,5 +13,4 @@ void main() //ExecuteScript("sf_xp", OBJECT_SELF); ExecuteScript("prc_npc_death", OBJECT_SELF); ExecuteScript("prc_pwondeath", OBJECT_SELF); -} - +} \ No newline at end of file diff --git a/_module/nss/setxp_inc.nss b/_module/nss/setxp_inc.nss index 121ecd5c..688acd3c 100644 --- a/_module/nss/setxp_inc.nss +++ b/_module/nss/setxp_inc.nss @@ -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 (){} \ No newline at end of file diff --git a/_module/nss/setxpbank.nss b/_module/nss/setxpbank.nss index 304b6286..badbf013 100644 --- a/_module/nss/setxpbank.nss +++ b/_module/nss/setxpbank.nss @@ -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); } } diff --git a/_module/nss/sf_xp.nss b/_module/nss/sf_xp.nss index 949d4487..993da942 100644 --- a/_module/nss/sf_xp.nss +++ b/_module/nss/sf_xp.nss @@ -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); } } } diff --git a/_release/Path of Ascension [PRC8-CEP3].7z b/_release/Path of Ascension [PRC8-CEP3].7z index f2f5cda0..a0db8311 100644 Binary files a/_release/Path of Ascension [PRC8-CEP3].7z and b/_release/Path of Ascension [PRC8-CEP3].7z differ