2025/06/21 Update

Update NUI spellbook notes.
Magic staves are quarterstaves.
Champion of Torm & Eldritch Knight were missing a fighter bonus feat.
Added an entry for Risen Reunited in epicspells.2da.
Fixed icon for ImpCrit Goad.
Unseen Seen & Ult. Magus's spellcasting marker feats names were swapped.
Added more sanity checking to Luminous Armor.
Updated Warforged & Warforged Chargers descriptions.
Enlightened Fist requires Arcane CL 2 not 2nd Circle spells.
No such thing as Luck AC in NWN.
Added sanity check for Blackguard's Aura.
Updated NUI spellcasting menu.
This commit is contained in:
Jaysyn904
2025-06-20 18:52:50 -04:00
parent 797442d3da
commit 6b1d73cbfb
29 changed files with 1054 additions and 991 deletions

View File

@@ -13,7 +13,7 @@ int iType = GetBaseItemType(oWeapon);
|| BASE_ITEM_DART || BASE_ITEM_THROWINGAXE || BASE_ITEM_SICKLE || BASE_ITEM_LIGHTMACE ||
BASE_ITEM_HANDAXE || BASE_ITEM_SLING || BASE_ITEM_SHORTSPEAR || BASE_ITEM_CLUB
|| BASE_ITEM_BATTLEAXE || BASE_ITEM_LIGHTFLAIL || BASE_ITEM_MORNINGSTAR ||
BASE_ITEM_QUARTERSTAFF || BASE_ITEM_SHORTBOW || BASE_ITEM_WARHAMMER || BASE_ITEM_DIREMACE
BASE_ITEM_QUARTERSTAFF || BASE_ITEM_MAGICSTAFF || BASE_ITEM_SHORTBOW || BASE_ITEM_WARHAMMER || BASE_ITEM_DIREMACE
|| BASE_ITEM_DOUBLEAXE || BASE_ITEM_GREATAXE || BASE_ITEM_HALBERD || BASE_ITEM_LONGBOW ||
BASE_ITEM_SCYTHE || BASE_ITEM_WHIP || BASE_ITEM_DWARVENWARAXE || BASE_ITEM_GOAD || BASE_ITEM_HEAVY_MACE ||
BASE_ITEM_NUNCHAKU || BASE_ITEM_SAI || BASE_ITEM_SAP || BASE_ITEM_LIGHT_LANCE || BASE_ITEM_HEAVY_PICK ||

View File

@@ -6,7 +6,7 @@ void main()
object oTarget = GetEnteringObject();
// Apply the Aura of Despair penalties to hostiles only.
if (!GetIsReactionTypeFriendly(oTarget, oPC))
if (GetIsReactionTypeHostile(oTarget, oPC))
{
int nPen = 2;
if (GetHasFeat(FEAT_IMPROVED_AURA_OF_DESPAIR, oPC)) nPen += 2;

View File

@@ -11,7 +11,7 @@ void main()
while(GetIsObjectValid(oTarget))
{
// Apply the Aura of Despair penalties to hostiles only.
if (!GetIsReactionTypeFriendly(oTarget, oPC))
if (GetIsReactionTypeHostile(oTarget, oPC))
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0);
}

View File

@@ -119,7 +119,7 @@ void PRCFeat_Equip(object oPC, object oSkin, int iEquip)
//:: Charming the Arrow - Apply bonus if Charisma > Dexterity for bows & crossbows
if (GetHasFeat(FEAT_CHARMING_THE_ARROW, oPC))
{
if (nType == BASE_ITEM_HEAVYCROSSBOW || nType == BASE_ITEM_LIGHTCROSSBOW || nType == BASE_ITEM_LONGBOW || nType == BASE_ITEM_SHORTBOW)
if (nType == BASE_ITEM_HEAVYCROSSBOW || nType == BASE_ITEM_LIGHTCROSSBOW || nType == BASE_ITEM_LONGBOW || nType == BASE_ITEM_SHORTBOW || nType == BASE_ITEM_ARROW || nType == BASE_ITEM_BOLT)
{
int nChaMod = GetAbilityModifier(ABILITY_CHARISMA, oPC);
int nDexMod = GetAbilityModifier(ABILITY_DEXTERITY, oPC);

View File

@@ -10,6 +10,7 @@ int isSimple(object oItem)
{
case BASE_ITEM_MORNINGSTAR:
case BASE_ITEM_QUARTERSTAFF:
case BASE_ITEM_MAGICSTAFF:
case BASE_ITEM_SHORTSPEAR:
//case BASE_ITEM_HEAVYCROSSBOW:
return 1;

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: PRC Spellbook NUI Events
//:: prc_nui_sb_event
//:: prc_nui_sc_event
//:://////////////////////////////////////////////
/*
This is the event script for the PRC Spellbook NUI that handles button presses
@@ -209,7 +209,7 @@ void main()
if (sRange == "P")
{
SetLocalInt(oPlayer, NUI_SPELLBOOK_ON_TARGET_IS_PERSONAL_FEAT, 1);
ExecuteScript("prc_nui_sb_trggr", oPlayer);
ExecuteScript("prc_nui_sc_trggr", oPlayer);
}
// otherwise enter targetting mode
else

View File

@@ -1,6 +1,6 @@
//::///////////////////////////////////////////////
//:: PRC Spellbook OnTrigger Script
//:: prc_nui_sb_trggr
//:: prc_nui_sc_trggr
//:://////////////////////////////////////////////
/*
This is the OnTarget action script used to make spell attacks with the

View File

@@ -139,7 +139,7 @@ void main()
// If the first word is /sb then we open the Spellbook NUI
if(firstWord == "/sb")
{
ExecuteScript("prc_nui_sb_view", oPC);
ExecuteScript("prc_nui_sc_view", oPC);
// clear message from chat
SetPCChatMessage();

View File

@@ -30,7 +30,7 @@ void main()
if(sWindowId == PRC_SPELLBOOK_NUI_WINDOW_ID
|| sWindowId == NUI_SPELL_DESCRIPTION_WINDOW_ID)
{
ExecuteScript("prc_nui_sb_event");
ExecuteScript("prc_nui_sc_event");
}
return;

View File

@@ -20,7 +20,7 @@ void DoJump(object oPC, location lTarget, int bDoKnockdown);
// DoSpellbookAction
// This is a OnTarget event action handling the use of the NUI Spellbook's spell.
// All this should do is take the manual targeting information and send it to the
// prc_nui_sb_trggr to handle the use of the spell.
// prc_nui_sc_trggr to handle the use of the spell.
//
// Arguments:
// oPC:object the player executing the action
@@ -85,7 +85,7 @@ void DoSpellbookAction(object oPC, object oTarget, location lTarget)
SetLocalLocation(oPC, "TARGETING_POSITION", lTarget);
}
ExecuteScript("prc_nui_sb_trggr", oPC);
ExecuteScript("prc_nui_sc_trggr", oPC);
ClearEventVariables(oPC);
}

View File

@@ -1273,7 +1273,7 @@ void AOTSPreReqs(object oPC)
int iArcane = 0;
int iShadow = 0;
if(GetLocalInt(oPC, "PRC_ArcSpell2") == 0)
/* if(GetLocalInt(oPC, "PRC_ArcSpell2") == 0)
{
iArcane = 1;
}
@@ -1281,13 +1281,13 @@ void AOTSPreReqs(object oPC)
if(GetLocalInt(oPC, "PRC_MystLevel2") == 0)
{
iShadow = 1;
}
} */
// Initialize the prerequisite variable to 1
SetLocalInt(oPC, "PRC_PrereqAOTS", 1);
// Check if any of the conditions are met and set "PRC_PrereqAOTS" to 0 if true
if (iArcane > 0 || GetInvokerLevel(oPC) > 2 || iShadow > 0)
if (PRCGetCasterLevel(oPC) > 4 || GetInvokerLevel(oPC) > 4 || GetShadowcasterLevel(oPC) > 4)
{
SetLocalInt(oPC, "PRC_PrereqAOTS", 0);
}
@@ -1303,11 +1303,18 @@ void AOTSPreReqs(object oPC)
void EnlF(object oPC)
{
SetLocalInt(oPC, "PRC_PrereqEnlF", 1);
SetLocalInt(oPC, "PRC_PrereqEnlF", 1);
int iArcane = PRCGetCasterLevel(oPC);
if(iArcane >= 3 || GetInvokerLevel(oPC) >= 3)
SetLocalInt(oPC, "PRC_PrereqEnlF", 0);
}
/* SetLocalInt(oPC, "PRC_PrereqEnlF", 1);
int iArcane = GetLocalInt(oPC, "PRC_ArcSpell3");
if(iArcane == 0 || GetInvokerLevel(oPC) >= 3)
SetLocalInt(oPC, "PRC_PrereqEnlF", 0);
}
} */
void LichPrereq(object oPC)
{

View File

@@ -735,7 +735,7 @@ void main()
}
}
}
if (GetBaseItemType(oWeap)==BASE_ITEM_QUARTERSTAFF)
if (GetBaseItemType(oWeap)==BASE_ITEM_QUARTERSTAFF || GetBaseItemType(oWeap)==BASE_ITEM_MAGICSTAFF)
{
if (GetItemHasItemProperty(oWeap, ITEM_PROPERTY_KEEN) == TRUE)
{