Updated for epic PrC expansion

Updated for epic PrC expansion.
Hooked up events for NUI spellcast menu.
Full compile.
This commit is contained in:
Jaysyn904 2025-06-13 19:57:28 -04:00
parent 44c2ac7eab
commit 966f45c9ce
83 changed files with 47 additions and 46 deletions

View File

@ -1,4 +1,4 @@
:loop
"C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\EN6_PRC\_content\_hak\prc8_en6_top";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\EN6_PRC\_content\_hak\prc8_en6_top\*.nss"
"C:\NWN Work\nwnsc.exe" -o -w -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -i "D:\NWN Repos\EN6_PRC8\_content\_hak\prc8_en6_top";"D:\NWN Repos\PRC8\nwn\nwnprc\trunk\include" "D:\NWN Repos\EN6_PRC8\_content\_hak\prc8_en6_top\*.nss"
if %errorLevel% == -1 goto :loop
pause

View File

@ -423,7 +423,7 @@
},
"Version": {
"type": "dword",
"value": 19
"value": 20
},
"Width": {
"type": "int",

View File

@ -1306,7 +1306,7 @@
"Mod_Description": {
"type": "cexolocstring",
"value": {
"0": "Endless Nights VI [PRC8-CEP2] v1.3prc8\n\nBy: Havlen\n\nUpdated / PRC'd by: Jaysyn\n\nEndless Nights VI is a dynamic world with random monster spawns, random quests, and random magic item generation to create a very replayable game experience. The game also features various races such as shades and tieflings that come in a variety of classes and levels. The module also includes a dynamic magic item system to create variety in items."
"0": "Endless Nights VI [PRC8-CEP2]\n\nBy: Havlen\n\nUpdated / PRC'd by: Jaysyn\n\nEndless Nights VI is a dynamic world with random monster spawns, random quests, and random magic item generation to create a very replayable game experience. The game also features various races such as shades and tieflings that come in a variety of classes and levels. The module also includes a dynamic magic item system to create variety in items."
}
},
"Mod_DuskHour": {
@ -1588,7 +1588,7 @@
},
"Mod_OnNuiEvent": {
"type": "resref",
"value": ""
"value": "prc_onplayernui"
},
"Mod_OnPlrChat": {
"type": "resref",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,7 @@
#include "qst_main"
#include "prc_inc_racial"
#include "prc_class_const"
#include "utl_i_sqlocals"
void RemoveAllItems(object oPC);
void AddToDynamicMerchant(object oPC);
@ -25,23 +26,23 @@ void main()
//iDebug=1;
SetLocalInt(GetModule(),"ClientEnter",1);
DelayCommand(1.0f,SetLocalInt(GetModule(),"ClientEnter",0));
SQLocals_SetInt(GetModule(),"ClientEnter",1);
DelayCommand(1.0f,SQLocals_SetInt(GetModule(),"ClientEnter",0));
//:: Number PCs to tell distinct henchmen apart
if (GetLocalInt(oPC,"PlayerStart") == 0)
if (SQLocals_GetInt(oPC,"PlayerStart") == 0)
{
iPCs=GetLocalInt(GetModule(),"PCs");
iPCs=SQLocals_GetInt(GetModule(),"PCs");
iPCs++;
SetLocalInt(GetModule(),"PCs",iPCs);
SetLocalInt(oPC,"PCNumber",iPCs);
SQLocals_SetInt(GetModule(),"PCs",iPCs);
SQLocals_SetInt(oPC,"PCNumber",iPCs);
}
if (GetLocalInt(oPC,"PlayerStart") == 0 && iDebug==0)
if (SQLocals_GetInt(oPC,"PlayerStart") == 0 && iDebug==0)
{
SetupCharacter(oPC);
if (GetLocalInt(oPC,"PCRacePower") == 0 || GetCampaignInt("Endless Nights VI","GameMode") == 1)
if (SQLocals_GetInt(oPC,"PCRacePower") == 0 || GetCampaignInt("Endless Nights VI","GameMode") == 1)
SetLocalString(oPC,"Respawn","NH1_Spawn");
else
@ -50,17 +51,17 @@ void main()
SendMessageToPC(oPC,"PRC races with extra abilities/powers can only be used on Hack and Slash mode. Use the Endless Nights Information item to set the game mode.");
}
if (GetLocalInt(oPC,"PCRacePower") > 0)
SetLocalInt(oPC,"Deaths",1);
SetLocalInt(oPC,"PlayerStart",1);
if (SQLocals_GetInt(oPC,"PCRacePower") > 0)
SQLocals_SetInt(oPC,"Deaths",1);
SQLocals_SetInt(oPC,"PlayerStart",1);
}
else
{
if (GetLocalInt(oPC,"PlayerStart") == 0 && iDebug==1)
if (SQLocals_GetInt(oPC,"PlayerStart") == 0 && iDebug==1)
{
SetLocalInt(oPC,"Debug",1);
SQLocals_SetInt(oPC,"Debug",1);
//SetLocalString(oPC,"Respawn","NH1_Spawn");
//SetLocalInt(GetModule(),"MainQuest",2);
//SQLocals_SetInt(GetModule(),"MainQuest",2);
//SetLocalString(oPC,"Respawn",GetOverallBossTag());
SetLocalString(oPC,"Respawn","TST_START");
//SetLocalString(oPC,"Respawn","MainQuest_F");
@ -69,20 +70,20 @@ void main()
}
}
if (GetLocalInt(GetModule(),"ModuleStart") == 0)
if (SQLocals_GetInt(GetModule(),"ModuleStart") == 0)
{
DelayCommand(0.1,SetupModule());
SetLocalInt(GetModule(),"ModuleStart",1);
SQLocals_SetInt(GetModule(),"ModuleStart",1);
}
}
void SetSpecialVariables(object oPC)
{
SetLocalInt(oPC,"TM1_FOUNTAIN",Random(50));
SetLocalInt(oPC,"CC1_ALTER",Random(50));
SetLocalInt(oPC,"HC1_CHEST",Random(100));
SetLocalInt(oPC,"HC1_SPECIAL",Random(100));
SetLocalInt(oPC,"HC1_SDOOR",Random(10));
SQLocals_SetInt(oPC,"TM1_FOUNTAIN",Random(50));
SQLocals_SetInt(oPC,"CC1_ALTER",Random(50));
SQLocals_SetInt(oPC,"HC1_CHEST",Random(100));
SQLocals_SetInt(oPC,"HC1_SPECIAL",Random(100));
SQLocals_SetInt(oPC,"HC1_SDOOR",Random(10));
}
void SetupCharacter(object oPC)
@ -122,7 +123,7 @@ void SetupCharacter(object oPC)
oNPC = CreateObject(OBJECT_TYPE_CREATURE,"en6_inheret2",GetLocation(GetObjectByTag("NH1_Town")));
}
SetLocalInt(oNPC,GetName(oPC),1);
SQLocals_SetInt(oNPC,GetName(oPC),1);
}
}
@ -400,8 +401,8 @@ void CheckSpecialRace(object oPC)
if (iRacePower > 0)
{
SetLocalInt(oPC,"PCRacePower",iRacePower);
SetLocalInt(oPC,"PCLevelMod",iRacePower);
SQLocals_SetInt(oPC,"PCRacePower",iRacePower);
SQLocals_SetInt(oPC,"PCLevelMod",iRacePower);
}
}
@ -410,7 +411,7 @@ void SetupModule()
string sTag;
int iRandom;
SetLocalInt(GetModule(),"ModuleStart",1);
SQLocals_SetInt(GetModule(),"ModuleStart",1);
SetMaxHenchmen(10);
SetModuleSwitch(MODULE_SWITCH_ENABLE_UMD_SCROLLS,TRUE);
@ -418,19 +419,19 @@ void SetupModule()
SetModuleSwitch(MODULE_SWITCH_ENABLE_CROSSAREA_WALKWAYPOINTS,TRUE);
SetModuleSwitch(MODULE_SWITCH_ENABLE_BEBILITH_RUIN_ARMOR,TRUE);
/* SetLocalInt(GetModule(),"PRC_165_DEATH_IMMUNITY",TRUE); <-- All handled w/ personal_switch.2da
SetLocalInt(GetModule(),"PRC_PNP_TRUESEEING",TRUE);
SetLocalInt(GetModule(),"PRC_TIMESTOP_LOCAL",TRUE);
SetLocalInt(GetModule(),"PRC_PNP_FEAR_AURAS",TRUE);
SetLocalInt(GetModule(),"PRC_PNP_ANIMATE_DEAD",TRUE);
SetLocalInt(GetModule(),"PRC_CREATE_UNDEAD_PERMANENT",TRUE);
SetLocalInt(GetModule(),"PRC_USE_NEW_IMBUE_ARROW",TRUE);
SetLocalInt(GetModule(),"PRC_STAFF_CASTER_LEVEL",TRUE);
/* SQLocals_SetInt(GetModule(),"PRC_165_DEATH_IMMUNITY",TRUE); <-- All handled w/ personal_switch.2da
SQLocals_SetInt(GetModule(),"PRC_PNP_TRUESEEING",TRUE);
SQLocals_SetInt(GetModule(),"PRC_TIMESTOP_LOCAL",TRUE);
SQLocals_SetInt(GetModule(),"PRC_PNP_FEAR_AURAS",TRUE);
SQLocals_SetInt(GetModule(),"PRC_PNP_ANIMATE_DEAD",TRUE);
SQLocals_SetInt(GetModule(),"PRC_CREATE_UNDEAD_PERMANENT",TRUE);
SQLocals_SetInt(GetModule(),"PRC_USE_NEW_IMBUE_ARROW",TRUE);
SQLocals_SetInt(GetModule(),"PRC_STAFF_CASTER_LEVEL",TRUE);
SetLocalInt(GetModule(),"PRC_PNP_ABILITY_DAMAGE_EFFECTS",TRUE);
SetLocalInt(GetModule(),"PRC_PNP_ELEMENTAL_SWARM",TRUE);
SetLocalInt(GetModule(),"PRC_MULTISUMMON",TRUE);
SetLocalInt(GetModule(),"PRC_USE_BIOWARE_DATABASE",1500); */
SQLocals_SetInt(GetModule(),"PRC_PNP_ABILITY_DAMAGE_EFFECTS",TRUE);
SQLocals_SetInt(GetModule(),"PRC_PNP_ELEMENTAL_SWARM",TRUE);
SQLocals_SetInt(GetModule(),"PRC_MULTISUMMON",TRUE);
SQLocals_SetInt(GetModule(),"PRC_USE_BIOWARE_DATABASE",1500); */
SetLocalString(GetModule(),"EN6_QST_DB","EN6_QST");
WriteTimestampedLogEntry("*** Endless Night VI Loaded ***");
@ -438,7 +439,7 @@ void SetupModule()
string sCampaign = "Endless Nights VI";
if (GetCampaignInt(sCampaign,"GameMode") == 1)
{
SetLocalInt(GetModule(),"GameMode",1);
SQLocals_SetInt(GetModule(),"GameMode",1);
DelayCommand(2.0,SendMessageToPC(GetFirstPC(),"Game is set for Hack and Slash mode."));
}
else
@ -446,13 +447,13 @@ void SetupModule()
iRandom=Random(100);
if (iRandom<1)
SetLocalInt(GetModule(),"MagicLevel",3);
SQLocals_SetInt(GetModule(),"MagicLevel",3);
else if (iRandom<3)
SetLocalInt(GetModule(),"MagicLevel",2);
SQLocals_SetInt(GetModule(),"MagicLevel",2);
else if (iRandom<10)
SetLocalInt(GetModule(),"MagicLevel",1);
SQLocals_SetInt(GetModule(),"MagicLevel",1);
else
SetLocalInt(GetModule(),"MagicLevel",0);
SQLocals_SetInt(GetModule(),"MagicLevel",0);
}
SetupMainQuest();