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:
@@ -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 ||
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
@@ -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
|
@@ -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();
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user