Bugfixes & a new release.

Fixed: Paladins not getting Scythe Prof, Elves not getting Elven blade prof when they had martial group prof, Missing Practiced Spellcaster (KotW) feat, bugs in prc_inc_spells, spell targeting bugs (found more), FMM / Warmage marker feat error, JoWaW spellcasting, KotW tlk error in 1st lvl spell list.  New release.
This commit is contained in:
Jaysyn904
2023-08-27 18:50:52 -04:00
parent e40a86c0fe
commit 77ca022f02
14 changed files with 1106 additions and 1140 deletions

View File

@@ -2276,15 +2276,17 @@ const int FEAT_FOCUSED_SPELL_PENETRATION_EVOCATION = 3132;
const int FEAT_FOCUSED_SPELL_PENETRATION_ILLUSION = 3133;
const int FEAT_FOCUSED_SPELL_PENETRATION_NECROMANCY = 3134;
const int FEAT_FOCUSED_SPELL_PENETRATION_TRANSMUTATION = 3135;
const int FEAT_DISCIPLE_OF_SUN = 3127;
const int FEAT_EMPOWER_TURNING = 3126;
const int FEAT_IMPROVED_TURNING = 3055;
const int FEAT_PRACTICED_SPELLCASTER_BARD = 3121;
const int FEAT_PRACTICED_SPELLCASTER_CLERIC = 3122;
const int FEAT_PRACTICED_SPELLCASTER_DRUID = 3123;
const int FEAT_PRACTICED_SPELLCASTER_SORCERER = 3124;
const int FEAT_PRACTICED_SPELLCASTER_WIZARD = 3125;
const int FEAT_PRACTICED_SPELLCASTER_KOTW = 3312;
const int FEAT_PRACTICED_SPELLCASTER_PALADIN = 24086;
const int FEAT_PRACTICED_SPELLCASTER_RANGER = 24087;
const int FEAT_PRACTICED_SPELLCASTER_ASSASSIN = 24088;

View File

@@ -6666,6 +6666,7 @@ int PracticedSpellcasting(object oCaster, int iCastingClass, int iCastingLevels)
case CLASS_TYPE_RANGER: nFeat = FEAT_PRACTICED_SPELLCASTER_RANGER; break;
case CLASS_TYPE_ASSASSIN: nFeat = FEAT_PRACTICED_SPELLCASTER_ASSASSIN; break;
case CLASS_TYPE_BLACKGUARD: nFeat = FEAT_PRACTICED_SPELLCASTER_BLACKGUARD; break;
case CLASS_TYPE_KNIGHT_WEAVE: nFeat = FEAT_PRACTICED_SPELLCASTER_KOTW; break;
case CLASS_TYPE_OCULAR: nFeat = FEAT_PRACTICED_SPELLCASTER_OCULAR; break;
case CLASS_TYPE_HEXBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_HEXBLADE; break;
case CLASS_TYPE_DUSKBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_DUSKBLADE; break;

View File

@@ -630,8 +630,8 @@ int GetLevelByTypeDivineFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass4Lev);
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass5Lev);
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass6Lev);
iClass7Lev += PracticedSpellcasting(oCaster, iClass1, iClass7Lev);
iClass8Lev += PracticedSpellcasting(oCaster, iClass2, iClass8Lev);
iClass7Lev += PracticedSpellcasting(oCaster, iClass7, iClass7Lev);
iClass8Lev += PracticedSpellcasting(oCaster, iClass8, iClass8Lev);
if (!GetIsDivineClass(iClass1, oCaster)) iClass1Lev = 0;
if (!GetIsDivineClass(iClass2, oCaster)) iClass2Lev = 0;
@@ -640,7 +640,7 @@ int GetLevelByTypeDivineFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
if (!GetIsDivineClass(iClass5, oCaster)) iClass5Lev = 0;
if (!GetIsDivineClass(iClass6, oCaster)) iClass6Lev = 0;
if (!GetIsDivineClass(iClass7, oCaster)) iClass7Lev = 0;
if (!GetIsDivineClass(iClass8, oCaster)) iClass3Lev = 0;
if (!GetIsDivineClass(iClass8, oCaster)) iClass8Lev = 0;
if (iClass1Lev > iBest) iBest = iClass1Lev;
if (iClass2Lev > iBest) iBest = iClass2Lev;

View File

@@ -260,17 +260,20 @@ int IsProficient(object oPC, int nBaseItem)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC);
case BASE_ITEM_ELVEN_LIGHTBLADE:
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_LIGHTBLADE, oPC)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC);
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC)
|| (GetHasFeat(FEAT_WEAPON_PROFICIENCY_MARTIAL, oPC) && GetRacialType(oPC) == RACIAL_TYPE_ELF)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_LIGHTBLADE, oPC);
case BASE_ITEM_ELVEN_THINBLADE:
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_THINBLADE, oPC)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC);
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC)
|| (GetHasFeat(FEAT_WEAPON_PROFICIENCY_MARTIAL, oPC) && GetRacialType(oPC) == RACIAL_TYPE_ELF)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_THINBLADE, oPC);
case BASE_ITEM_ELVEN_COURTBLADE:
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_COURTBLADE, oPC)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC);
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC)
|| (GetHasFeat(FEAT_WEAPON_PROFICIENCY_MARTIAL, oPC) && GetRacialType(oPC) == RACIAL_TYPE_ELF)
|| GetHasFeat(FEAT_WEAPON_PROFICIENCY_ELVEN_COURTBLADE, oPC);
//special case: counts as martial for asherati
case BASE_ITEM_EAGLE_CLAW:
return GetHasFeat(FEAT_WEAPON_PROFICIENCY_EXOTIC, oPC)
@@ -571,6 +574,7 @@ int IsWeaponMartial(int nBaseItemType, object oPC)
case BASE_ITEM_RAPIER:
case BASE_ITEM_SCIMITAR:
case BASE_ITEM_THROWINGAXE:
case BASE_ITEM_SCYTHE:
case BASE_ITEM_MAUL:
case BASE_ITEM_FALCHION:
case BASE_ITEM_HEAVY_PICK: