Fixed unproficient TWF bug.

Fixed unproficient TWF bug.
Tried giving Bloodclaw Rending an on/off switch.
This commit is contained in:
Jaysyn904 2025-05-10 22:29:31 -04:00
parent e856279b2b
commit 2792ed00fc
16 changed files with 151 additions and 33 deletions

View File

@ -1,17 +1,17 @@
2DA V2.0
FeatLabel FeatIndex List GrantedOnLevel OnMenu
0 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
1 DefArrow 8 0 -1 0
2 TwoWeap 41 0 -1 0
3 Ambidex 1 0 -1 0
4 ClawsOfTheBeast 24062 3 1 0
5 SuperiorTwoWeaponFighting 24063 3 2 0
6 TigerClawSynergy 24064 3 2 0
7 RendingClaws 24065 3 5 0
8 PouncingStrike 24066 3 3 1
9 Shifting1 24067 3 1 1
10 Shifting2 24068 3 3 1
11 Shifting3 24069 3 5 1
12 Darkvision 228 3 3 0
13 Scent 24070 3 5 0
FeatLabel FeatIndex List GrantedOnLevel OnMenu
0 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
1 DefArrow 8 0 -1 0
2 TwoWeap 41 0 -1 0
3 Ambidex 1 0 -1 0
4 ClawsOfTheBeast 24062 3 1 0
5 SuperiorTwoWeaponFighting 24063 3 2 0
6 TigerClawSynergy 24064 3 2 0
7 RendingClaws 24065 3 5 1
8 PouncingStrike 24066 3 3 1
9 Shifting1 24067 3 1 1
10 Shifting2 24068 3 3 1
11 Shifting3 24069 3 5 1
12 Darkvision 228 3 3 0
13 Scent 24070 3 5 0

View File

@ -17998,7 +17998,7 @@
17994 **** **** **** **** **** **** ****
17995 **** **** **** **** **** **** ****
17996 **** **** **** **** **** **** ****
17997 **** **** **** **** **** **** ****
17997 SPELL_BCM_RENDING_CLAWS **** **** **** **** **** ****
17998 **** **** **** **** **** **** ****
17999 ####END_OF_TOB_SPELLBOOK_RESERVE **** **** **** **** **** ****
18000 **BEGIN_INVOCATIONS** **** **** **** **** **** ****

View File

@ -17998,7 +17998,7 @@
17994 **** **** 1 1 1 **** ****
17995 **** **** 1 1 1 **** ****
17996 **** **** 1 1 1 **** ****
17997 **** **** 1 1 1 **** ****
17997 SPELL_BCM_RENDING_CLAWS **** 1 1 1 3 ****
17998 **** **** 1 1 1 **** ****
17999 ####END_OF_TOB_SPELLBOOK_RESERVE **** 1 1 1 **** ****
18000 **BEGIN_INVOCATIONS** **** 1 1 1 **** ****

View File

@ -24066,7 +24066,7 @@
24062 ClawsOfTheBeast 16827153 16827154 ife_X2GWShp3 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24063 SuperiorTwoWeaponFighting 16827155 16827156 ife_X2MightRage **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24064 TigerClawSynergy 16827157 16827158 ife_X2GWShp2 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24065 RendingClaws 16827159 16827160 ife_X2GWShp1 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24065 RendingClaws 16827159 16827160 ife_X2GWShp1 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 17997 **** 1 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_BCM_RENDING_CLAWS 4 **** **** **** **** **** 0 0
24066 PouncingStrike 16827161 16827162 ife_X2BaneEnem **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2085 **** 1 -1 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24067 Shifting1 16827163 16827164 ife_wildshape **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2100 24068 1 1 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
24068 Shifting2 16827163 16827164 ife_wildshape **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2100 24069 1 2 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0

View File

@ -17998,7 +17998,7 @@
17994 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17995 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17996 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17997 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17997 SPELL_BCM_RENDING_CLAWS 16827159 ife_X2GWShp1 T P 0 0x00 0x01 tob_bcm_rend **** **** **** **** **** **** 3 1500 hand **** vco_smhannatr01 **** sco_mehannatr01 **** **** out 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** 320 3 16827160 0 0 **** 0 24065 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17998 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17999 ####END_OF_TOB_SPELLBOOK_RESERVE **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
18000 **BEGIN_INVOCATIONS** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@ -3529,6 +3529,9 @@ const int FEAT_EPIC_ARTIFICER = 4072;
//Justice of Weald and Woe
const int FEAT_LUCKY_SHOT = 24021;
//:: Bloodclaw Master
const int FEAT_BCM_RENDING_CLAWS = 24065;
// Dread Necromancer
const int FEAT_DN_SCABROUS_TOUCH = 24145;
const int FEAT_DN_NEG_NRG_BURST = 24149;

View File

@ -607,8 +607,41 @@ int IsWeaponMartial(int nBaseItemType, object oPC)
return FALSE;
}
//checks to see if the PC can wield the weapon. If not, applies a -4 penalty.
void DoProficiencyCheck(object oPC, object oItem, int nHand)
{
int bProficient = FALSE;
int nBase = GetBaseItemType(oItem);
bProficient = IsProficient(oPC, nBase);
if (!bProficient)
{
if (nHand == ATTACK_BONUS_ONHAND)
{
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_ONHAND), -4, ATTACK_BONUS_ONHAND);
}
if (nHand == ATTACK_BONUS_OFFHAND)
{
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_OFFHAND), -4, ATTACK_BONUS_OFFHAND);
}
// Handle specific double-sided weapon logic
if (nBase == BASE_ITEM_DOUBLEAXE || nBase == BASE_ITEM_TWOBLADEDSWORD || nBase == BASE_ITEM_DIREMACE || nBase == BASE_ITEM_DOUBLE_SCIMITAR)
{ // This should only affect offhand if the main hand is these types
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_OFFHAND), -4, ATTACK_BONUS_OFFHAND);
}
}
else
{
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_ONHAND), 0, ATTACK_BONUS_ONHAND);
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_OFFHAND), 0, ATTACK_BONUS_OFFHAND);
}
}
//checks to see if the PC can wield the weapon. If not, applies a -4 penalty.
/* void DoProficiencyCheck(object oPC, object oItem, int nHand)
{
int bProficient = FALSE;
@ -631,9 +664,15 @@ void DoProficiencyCheck(object oPC, object oItem, int nHand)
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(nHand), -4, ATTACK_BONUS_ONHAND);
if(nBase == BASE_ITEM_DOUBLEAXE || nBase == BASE_ITEM_TWOBLADEDSWORD || nBase == BASE_ITEM_DIREMACE || nBase == BASE_ITEM_DOUBLE_SCIMITAR)
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_OFFHAND), -4, ATTACK_BONUS_OFFHAND);
}
}
else
{
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(nHand), 0, ATTACK_BONUS_ONHAND);
if(nBase == BASE_ITEM_DOUBLEAXE || nBase == BASE_ITEM_TWOBLADEDSWORD || nBase == BASE_ITEM_DIREMACE || nBase == BASE_ITEM_DOUBLE_SCIMITAR)
SetCompositeAttackBonus(oPC, "Unproficient" + IntToString(ATTACK_BONUS_OFFHAND), 0, ATTACK_BONUS_OFFHAND);
}
}
*/
void DoWeaponEquip(object oPC, object oItem, int nHand)
{
if(GetIsDM(oPC) || !GetIsWeapon(oItem)) return;
@ -662,7 +701,13 @@ void DoWeaponEquip(object oPC, object oItem, int nHand)
{
SetCompositeAttackBonus(oPC, "MonkeyGripL", -2, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "MonkeyGripR", -2, ATTACK_BONUS_ONHAND);
}
}
else
{
SetCompositeAttackBonus(oPC, "MonkeyGripL", 0, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "MonkeyGripR", 0, ATTACK_BONUS_ONHAND);
}
}
if(DEBUG) DoDebug("prc_inc_wpnrest - Weapon size: " + IntToString(nWeaponSize));
@ -710,7 +755,13 @@ void DoWeaponEquip(object oPC, object oItem, int nHand)
{
SetCompositeAttackBonus(oPC, "OTWFL", 2, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "OTWFR", 2, ATTACK_BONUS_ONHAND);
}
}
else
{
SetCompositeAttackBonus(oPC, "OTWFL", 0, ATTACK_BONUS_OFFHAND);
SetCompositeAttackBonus(oPC, "OTWFR", 0, ATTACK_BONUS_ONHAND);
}
}
}
@ -749,7 +800,12 @@ void DoWeaponEquip(object oPC, object oItem, int nHand)
// Assign penalty
if(DEBUG) DoDebug("prc_inc_wpnrest - OTWFPenalty: " + IntToString(-2));
SetCompositeAttackBonus(oPC, "OTWFPenalty", -2);
}
}
else
{
SetCompositeAttackBonus(oPC, "OTWFPenalty", 0);
}
//Handle feat bonuses for Lightblade, thinblade, and courtblade
//using else if so they don't overlap.

View File

@ -10,6 +10,9 @@ const int SPELL_BLACKLIGHT = 2091;
const int SPELL_BARD_SONG = 411;
const int SPELL_BARD_CURSE_SONG = 644;
//:: Bloodclaw Master
const int SPELL_BCM_RENDING_CLAWS = 17997;
//:: Complete Warrior
const int SPELL_RANGED_DISARM = 3493;

View File

@ -871,6 +871,7 @@ void LocalCleanExtraFists(object oCreature)
oClean = GetNextItemInInventory(oCreature);
}
}
object GetPsionicCreatureWeapon(object oCreature, string sResRef, int nInventorySlot, float fDuration)
{
int bCreatedWeapon = FALSE;

View File

@ -0,0 +1,28 @@
//:: tob_bcm_rend
/*
Turn Rending Claws off & on
*/
#include "prc_inc_function"
void main()
{
object oPC = OBJECT_SELF;
int bRend = GetLocalInt(oPC, "BCM_REND");
if (bRend)
{
DeleteLocalInt(oPC, "BCM_REND");
//DelayCommand(1.0, EvalPRCFeats(oPC));
FloatingTextStringOnCreature("Rending Claws Disabled", oPC, FALSE);
}
else
{
SetLocalInt(oPC, "BCM_REND", 1);
effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
//DelayCommand(1.0, EvalPRCFeats(oPC));
FloatingTextStringOnCreature("Rending Claws Enabled", oPC, FALSE);
}
}

View File

@ -34,7 +34,7 @@ void main()
// Do VFX
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, 2);
effect eLink = EffectLinkEffects(eDur, eStr);
effect eLink = EffectLinkEffects(eDur, eStr);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oInitiator, fDuration, FALSE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oInitiator);

View File

@ -41,8 +41,11 @@ void ClawsOfTheBeast(object oInitiator, object oTarget)
void RendingClaws(object oInitiator, object oTarget)
{
// Expend a maneuver to do the rend, must be shifting
if(ExpendRandomManeuver(oInitiator, GetPrimaryBladeMagicClass(oInitiator), DISCIPLINE_TIGER_CLAW)
//:: Check that Rending Claws is enabled
int bCanRend = GetLocalInt(oInitiator, "BCM_REND");
// Expend a maneuver to do the rend, must be shifting
if(bCanRend && ExpendRandomManeuver(oInitiator, GetPrimaryBladeMagicClass(oInitiator), DISCIPLINE_TIGER_CLAW)
&& GetHasSpellEffect(MOVE_BLOODCLAW_SHIFT, oTarget))
{
if(IsUsingBloodClawWeapons(oInitiator))

View File

@ -58,6 +58,16 @@ void main()
if (GetResRef(oItem) == "prc_crown_might") DestroyObject(oItem);
if (GetResRef(oItem) == "prc_crown_prot") DestroyObject(oItem);
int nClaw = GetStringLeft(GetResRef(oItem), 12) == "prc_diaclaw_" ? TRUE : FALSE;
if(nClaw)DestroyObject(oItem);
nClaw = GetStringLeft(GetResRef(oItem), 9) == "prc_claw_" ? TRUE : FALSE;
if(nClaw)DestroyObject(oItem);
int nUnarmed = GetStringLeft(GetResRef(oItem), 12) == "prc_unarmed_" ? TRUE : FALSE;
if(nUnarmed)DestroyObject(oItem);
// Delay a bit to prevent TMI due to polymorph effect being braindead and running the unequip script for each and
// bloody every item the character has equipped at the moment of effect application. Without detaching the script

View File

@ -19197,7 +19197,9 @@ Once per day, a Hexblade of 12th level or higher can create a baleful aura of mi
<entry id="48572" lang="en" sex="m">Arcane Resistance</entry>
<entry id="48573" lang="en" sex="m">Type of Feat: Class
Prerequisite: Hexblade level 2
At 2nd level a Hexblade gains a bonus equal to his Charisma bonus (minimum +1) on saving throws against spells and spell-like effects.</entry>
At 2nd level a Hexblade gains a bonus equal to his Charisma bonus (minimum +1) on saving throws against spells and spell-like effects.
*This is implemented as a penalty on all incoming hostile spells. </entry>
<entry id="48574" lang="en" sex="m">Epic Hexblade</entry>
<entry id="48575" lang="en" sex="m">Type: Class
Prerequisite: Hexblade level 21
@ -21078,11 +21080,23 @@ Armor Skin, Automatic Quicken Spell, Automatic Silent Spell, Automatic Still Spe
<entry id="49134" lang="en" sex="m">True Seeing</entry>
<entry id="49135" lang="en" sex="m">You gain Blindsight, the ability to see without vision.</entry>
<entry id="49136" lang="en" sex="m">Fast Healing I</entry>
<entry id="49137" lang="en" sex="m">You gain Regeneration +3</entry>
<entry id="49137" lang="en" sex="m">Prerequisite
Con 25.
Benefit
You gain Regeneration +3</entry>
<entry id="49138" lang="en" sex="m">Fast Healing II</entry>
<entry id="49139" lang="en" sex="m">You gain Regeneration +6</entry>
<entry id="49139" lang="en" sex="m">Prerequisite
Con 25, Fast Healing I
Benefit
You gain Regeneration +6</entry>
<entry id="49140" lang="en" sex="m">Fast Healing III</entry>
<entry id="49141" lang="en" sex="m">You gain Regeneration +9</entry>
<entry id="49141" lang="en" sex="m">Prerequisite
Con 25, Fast Healing II
Benefit
You gain Regeneration +9</entry>
<entry id="49142" lang="en" sex="m">Draconic Spell Resistance</entry>
<entry id="49143" lang="en" sex="m">Your Draconic blood grants you spell resistance equal to 20+Dragon Disciple Level.</entry>
<entry id="49144" lang="en" sex="m">Draconic Armor Increase</entry>
@ -73137,7 +73151,7 @@ Special Abilities:
<entry id="77209" lang="en" sex="m">Sorcerous Casting: Hobgoblin Warsoul's cast spells as a Sorcerer of their hit dice (10th level).</entry>
<entry id="77210" lang="en" sex="m">&lt;cÿÿÿ&gt;Pick a spellcasting feat (1st lvl)&lt;/c&gt;</entry>
<entry id="77211" lang="en" sex="m">Choose which spellcasting class to advance with the currently selected Prestige Class. If you try take a marker feat after 1st class level, your character will be releveled.</entry>
<entry id="77212" lang="en" sex="m">&lt;cÿÿÿ&gt;Chose a Discipline (1st lvl)&lt;/c&gt;</entry>
<entry id="77212" lang="en" sex="m">&lt;cÿÿÿ&gt;Chose a Discipline (1st lvl)&lt;/c&gt;</entry>
<entry id="77213" lang="en" sex="m">Every Psion must decide at first level which discipline he will specialize in. Choosing a discipline provides a psion with access to the powers that are restricted to that discipline. If you try take a more than one psionic disipline, your character will be releveled. If you do this at first character level, you will need to delete the character and start over.</entry>
<entry id="77214" lang="en" sex="m">Ability Focus</entry>
<entry id="77215" lang="en" sex="m"> Choose one of the character's special attacks.
@ -73149,7 +73163,7 @@ Benefit
Add +2 to the DC for all saving throws against the special attack on which the character focuses.
Special
A character can gain this feat multiple times. Its effects do not stack. Each time the character takes the feat it applies to a different special attack. </entry>
A character can gain this feat multiple times. Its effects do not stack. Each time the character takes the feat it applies to a different special attack. </entry>
<entry id="79999" lang="en" sex="m">## iprp_damagecost.2da expansion ##</entry>
<entry id="80000" lang="en" sex="m">21 Damage</entry>
<entry id="80001" lang="en" sex="m">+21</entry>