2025/05/27 Early Update
Fixed errant domains showing up as epic bonus feats in several class lists. Allow Lasher's Improved Trip to allow FEATOR entry Vae School. Updated filends. Add ProcessPreparedSpellLevel() by TiredByFirelight. Endure Exposure should allow multiple castings. Updated Bloodclaw Master's Scent ability. Avalanche of Blades should stop after the first miss now.
This commit is contained in:
parent
8a034b0da0
commit
7f50d2f498
@ -82,7 +82,7 @@
|
||||
78 FEAT_EPIC_TOUGHNESS_8 761 1 11 0
|
||||
79 FEAT_EPIC_TOUGHNESS_9 762 1 11 0
|
||||
80 FEAT_EPIC_TOUGHNESS_10 763 1 11 0
|
||||
81 FEAT_EPIC_REFLEXES 4058 1 11 0
|
||||
81 FEAT_EPIC_REFLEXES 585 1 11 0
|
||||
82 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 11 0
|
||||
83 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 11 0
|
||||
84 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 11 0
|
||||
|
@ -173,7 +173,7 @@
|
||||
169 FocusedSpellPenetrAbj 3135 1 2 0
|
||||
170 FEAT_EPIC_LEADERSHIP 4366 1 2 0
|
||||
171 FEAT_LEGENDARY_COMMANDER 4367 1 2 0
|
||||
172 FEAT_EPIC_PROWESS 4056 1 2 0
|
||||
172 FEAT_EPIC_PROWESS 584 1 2 0
|
||||
173 FEAT_EPIC_REPUTATION 586 1 2 0
|
||||
174 FAST_HEALING_1 4145 1 2 0
|
||||
175 FAST_HEALING_2 4146 1 2 0
|
||||
|
@ -45,7 +45,7 @@
|
||||
41 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
|
||||
42 FEAT_EPIC_PERFECT_HEALTH 747 1 -1 0
|
||||
43 FEAT_Improved_ManyShot 3350 1 -1 0
|
||||
44 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
44 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
45 FAST_HEALING_1 4145 1 -1 0
|
||||
46 FAST_HEALING_2 4146 1 -1 0
|
||||
47 FAST_HEALING_3 4147 1 -1 0
|
||||
|
@ -126,7 +126,7 @@
|
||||
122 FEAT_EPIC_MONK 971 3 21 0
|
||||
123 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
|
||||
124 LegendaryWrestler 5173 1 -1 0
|
||||
125 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
125 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
126 FAST_HEALING_1 4145 1 -1 0
|
||||
127 FAST_HEALING_2 4146 1 -1 0
|
||||
128 FAST_HEALING_3 4147 1 -1 0
|
||||
|
@ -74,8 +74,8 @@
|
||||
70 FEAT_MANYSHOT 3306 1 -1 1
|
||||
71 FEAT_IMP_MANYSHOT 3350 1 -1 1
|
||||
72 FEAT_LINGERING_DAMAGE 3099 1 -1 0
|
||||
73 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
74 FEAT_EPIC_REFLEXES 4058 1 -1 0
|
||||
73 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
74 FEAT_EPIC_REFLEXES 585 1 -1 0
|
||||
75 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
76 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
77 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
|
@ -250,8 +250,8 @@
|
||||
246 Epic_RebindSoulmeld_Heart 9011 1 -1 1
|
||||
247 Epic_RebindSoulmeld_Soul 9012 1 -1 1
|
||||
248 Epic_RebindSoulmeld_Totem 9013 1 -1 1
|
||||
249 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
250 FEAT_EPIC_REFLEXES 4058 1 -1 0
|
||||
249 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
250 FEAT_EPIC_REFLEXES 585 1 -1 0
|
||||
251 FEAT_EPIC_ENERGY_RESISTANCE_COLD_1 533 1 -1 0
|
||||
252 FEAT_EPIC_ENERGY_RESISTANCE_COLD_2 534 1 -1 0
|
||||
253 FEAT_EPIC_ENERGY_RESISTANCE_COLD_3 535 1 -1 0
|
||||
|
@ -110,7 +110,7 @@
|
||||
106 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
|
||||
107 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
|
||||
108 FEAT_EPIC_DODGE 856 1 -1 0
|
||||
109 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
109 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
110 FAST_HEALING_1 4145 1 -1 0
|
||||
111 FAST_HEALING_2 4146 1 -1 0
|
||||
112 FAST_HEALING_3 4147 1 -1 0
|
||||
|
@ -91,8 +91,8 @@
|
||||
87 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 -1 0
|
||||
88 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 -1 0
|
||||
89 FEAT_LINGERING_DAMAGE 3099 1 -1 0
|
||||
90 FEAT_EPIC_PROWESS 4056 1 -1 0
|
||||
91 FEAT_EPIC_REFLEXES 4058 1 -1 0
|
||||
90 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
91 FEAT_EPIC_REFLEXES 585 1 -1 0
|
||||
92 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 -1 0
|
||||
93 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 -1 0
|
||||
94 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 -1 0
|
||||
|
@ -1,49 +1,65 @@
|
||||
2DA V2.0
|
||||
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 AttackBonus BAB 23 ****
|
||||
1 Intimidate SKILL 24 15
|
||||
2 ImprovedBullrush FEAT 2806 ****
|
||||
3 GreatCleave FEAT 391 ****
|
||||
4 LightngRef FEAT 24 ****
|
||||
5 ImpCritDagger FEATOR 52 ****
|
||||
6 ImpCritDart FEATOR 53 ****
|
||||
7 ImpCritHXBow FEATOR 54 ****
|
||||
8 ImpCritLgXBow FEATOR 55 ****
|
||||
9 ImpCritLgMace FEATOR 56 ****
|
||||
10 ImpCritMorn FEATOR 57 ****
|
||||
11 ImpCritStaff FEATOR 58 ****
|
||||
12 ImpCritSpear FEATOR 59 ****
|
||||
13 ImpCritSickle FEATOR 60 ****
|
||||
14 ImpCritSling FEATOR 61 ****
|
||||
15 ImpCritUnArm FEATOR 62 ****
|
||||
16 ImpCritLongBow FEATOR 63 ****
|
||||
17 ImpCritShortBow FEATOR 64 ****
|
||||
18 ImpCritShortSword FEATOR 65 ****
|
||||
19 ImpCritRapier FEATOR 66 ****
|
||||
20 ImpCritScim FEATOR 67 ****
|
||||
21 ImpCritLSw FEATOR 68 ****
|
||||
22 ImpCritGSw FEATOR 69 ****
|
||||
23 ImpCritHAxe FEATOR 70 ****
|
||||
24 ImpCritTAxe FEATOR 71 ****
|
||||
25 ImpCritBAxe FEATOR 72 ****
|
||||
26 ImpCritGAxe FEATOR 73 ****
|
||||
27 ImpCritHalb FEATOR 74 ****
|
||||
28 ImpCritLgHam FEATOR 75 ****
|
||||
29 ImpCritLgFlail FEATOR 76 ****
|
||||
30 ImpCritWHam FEATOR 77 ****
|
||||
31 ImpCritHFlail FEATOR 78 ****
|
||||
32 ImpCritKama FEATOR 79 ****
|
||||
33 ImpCritKukri FEATOR 80 ****
|
||||
34 ImpCritShur FEATOR 82 ****
|
||||
35 ImpCritScy FEATOR 83 ****
|
||||
36 ImpCritKatana FEATOR 84 ****
|
||||
37 ImpCritBSw FEATOR 85 ****
|
||||
38 ImpCritDMace FEATOR 87 ****
|
||||
39 ImpCritDAxe FEATOR 88 ****
|
||||
40 ImpCrit2Sw FEATOR 89 ****
|
||||
41 ImpCrit_DwAxe FEATOR 954 ****
|
||||
42 ImpCrit_Whip FEATOR 995 ****
|
||||
43 ImpCrit_Mindblade FEATOR 3614 ****
|
||||
44 ImpCrit_Trident FEATOR 1074 ****
|
||||
45 ScriptVar VAR PRC_AllowLgDr 0
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 AttackBonus BAB 23 ****
|
||||
1 Intimidate SKILL 24 15
|
||||
2 ImprovedBullrush FEAT 2806 ****
|
||||
3 GreatCleave FEAT 391 ****
|
||||
4 LightngRef FEAT 24 ****
|
||||
5 ImpCritDagger FEATOR 52 ****
|
||||
6 ImpCritDart FEATOR 53 ****
|
||||
7 ImpCritHXBow FEATOR 54 ****
|
||||
8 ImpCritLgXBow FEATOR 55 ****
|
||||
9 ImpCritLgMace FEATOR 56 ****
|
||||
10 ImpCritMorn FEATOR 57 ****
|
||||
11 ImpCritStaff FEATOR 58 ****
|
||||
12 ImpCritSpear FEATOR 59 ****
|
||||
13 ImpCritSickle FEATOR 60 ****
|
||||
14 ImpCritSling FEATOR 61 ****
|
||||
15 ImpCritUnArm FEATOR 62 ****
|
||||
16 ImpCritLongBow FEATOR 63 ****
|
||||
17 ImpCritShortBow FEATOR 64 ****
|
||||
18 ImpCritShortSword FEATOR 65 ****
|
||||
19 ImpCritRapier FEATOR 66 ****
|
||||
20 ImpCritScim FEATOR 67 ****
|
||||
21 ImpCritLSw FEATOR 68 ****
|
||||
22 ImpCritGSw FEATOR 69 ****
|
||||
23 ImpCritHAxe FEATOR 70 ****
|
||||
24 ImpCritTAxe FEATOR 71 ****
|
||||
25 ImpCritBAxe FEATOR 72 ****
|
||||
26 ImpCritGAxe FEATOR 73 ****
|
||||
27 ImpCritHalb FEATOR 74 ****
|
||||
28 ImpCritLgHam FEATOR 75 ****
|
||||
29 ImpCritLgFlail FEATOR 76 ****
|
||||
30 ImpCritWHam FEATOR 77 ****
|
||||
31 ImpCritHFlail FEATOR 78 ****
|
||||
32 ImpCritKama FEATOR 79 ****
|
||||
33 ImpCritKukri FEATOR 80 ****
|
||||
34 ImpCritShur FEATOR 82 ****
|
||||
35 ImpCritScy FEATOR 83 ****
|
||||
36 ImpCritKatana FEATOR 84 ****
|
||||
37 ImpCritBSw FEATOR 85 ****
|
||||
38 ImpCritDMace FEATOR 87 ****
|
||||
39 ImpCritDAxe FEATOR 88 ****
|
||||
40 ImpCrit2Sw FEATOR 89 ****
|
||||
41 ImpCrit_DwAxe FEATOR 954 ****
|
||||
42 ImpCrit_Whip FEATOR 995 ****
|
||||
43 ImpCrit_Mindblade FEATOR 3614 ****
|
||||
44 ImpCrit_Trident FEATOR 1074 ****
|
||||
45 IMP_CRIT_LIGHT_LANCE FEATOR 24649 0
|
||||
46 IMP_CRIT_HEAVY_PICK FEATOR 24650 0
|
||||
47 IMP_CRIT_LIGHT_PICK FEATOR 24651 0
|
||||
48 IMP_CRIT_SAI FEATOR 24652 0
|
||||
49 IMP_CRIT_NUNCHAKU FEATOR 24653 0
|
||||
50 IMP_CRIT_FALCHION FEATOR 24654 0
|
||||
51 IMP_CRIT_SAP FEATOR 24655 0
|
||||
52 IMP_CRIT_KATAR FEATOR 24656 0
|
||||
53 IMP_CRIT_HEAVY_MACE FEATOR 24657 0
|
||||
54 IMP_CRIT_MAUL FEATOR 24658 0
|
||||
55 IMP_CRIT_DBL_SCIMITAR FEATOR 24659 0
|
||||
56 IMP_CRIT_GOAD FEATOR 24660 0
|
||||
57 IMP_CRIT_ELVEN_LIGHTBLADE FEATOR 24701 0
|
||||
58 IMP_CRIT_ELVEN_COURTBLADE FEATOR 24717 0
|
||||
59 IMP_CRIT_EAGLE_CLAW FEATOR 24725 0
|
||||
60 IMP_CRIT_ELVEN_THINBLADE FEATOR 24709 0
|
||||
61 ScriptVar VAR PRC_AllowLgDr 0
|
||||
|
@ -5286,7 +5286,7 @@
|
||||
5282 ProfaneAgony 16834997 16834998 ife_prfnlflch **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** 3792 **** 0.5 -1 **** **** 310 313 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5283 DivineIntercession 16834995 16834996 ife_telep_manag **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** 3791 **** 0.5 -1 **** **** 324 323 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5284 InlindlSchool 16834993 16834994 ife_X2DCrtWhip **** **** **** 13 **** **** **** **** 389 42 **** **** 1 **** **** 2723 **** **** -1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_INLINDL_SCHOOL 2 **** **** **** **** **** 0 0
|
||||
5285 VaeSchool 16834991 16834992 ife_X2WpCh 7 **** **** **** **** **** **** **** 2807 993 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SNAP_KICK **** **** **** **** **** **** **** 0
|
||||
5285 VaeSchool 16834991 16834992 ife_X2WpCh 7 **** **** **** **** **** **** **** 993 **** **** **** 1 **** **** **** **** **** **** **** **** 2807 4079 **** **** **** **** **** **** **** FEAT_SNAP_KICK **** **** **** **** **** **** **** 0
|
||||
5286 ThreeMountains 16834989 16834990 ife_X2DiviWrth **** 13 **** **** **** **** **** **** 2806 6 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SNAP_KICK **** **** **** **** **** **** **** 0
|
||||
5287 SpinningHalberd 16834987 16834988 ife_X2CritDHalb **** **** **** **** **** **** **** **** 112 **** 0 0 1 **** **** 2724 **** 0.5 -1 **** **** 41 374 **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
5288 HighSwordLowAxe 16834985 16834986 ife_wepspec_Dax **** **** **** **** **** **** **** **** 2807 41 0 0 1 **** **** 2793 **** 0.5 -1 **** **** **** **** **** **** **** **** **** **** **** FEAT_SMITE_UNDEAD 6 1 **** **** **** **** 0 1
|
||||
|
@ -6,19 +6,19 @@
|
||||
2 gender 2
|
||||
3 portraits 1100
|
||||
4 skills 50
|
||||
5 cls_feat_* 600
|
||||
5 cls_feat_* 3090
|
||||
6 cls_skill_* 50
|
||||
7 cls_psipw_* 180
|
||||
8 feat 26001
|
||||
9 cls_pres_* 25
|
||||
8 feat 26500
|
||||
9 cls_pres_* 70
|
||||
10 hen_familiar 20
|
||||
11 hen_companion 30
|
||||
12 domains 70
|
||||
13 soundset 450
|
||||
14 spells 19400
|
||||
14 spells 20000
|
||||
15 appearance 500
|
||||
16 wingmodel 10
|
||||
17 tailmodel 10
|
||||
18 race_feat_* 30
|
||||
18 race_feat_* 70
|
||||
19 ireq_* 50
|
||||
20 item_to_ireq 700
|
||||
|
@ -86,6 +86,7 @@ void CheckNewSpellbooks(object oPC);
|
||||
void NewSpellbookSpell(int nClass, int nSpellbookType, int nMetamagic = METAMAGIC_NONE, int bInstantSpell = FALSE);
|
||||
void CastSpontaneousSpell(int nClass, int bInstantSpell = FALSE);
|
||||
void CastPreparedSpell(int nClass, int nMetamagic = METAMAGIC_NONE, int bInstantSpell = FALSE);
|
||||
void ProcessPreparedSpellLevel(object oPC, int nClass, int nSpellLevel, int nLevel, int nAbility, string sClass, string sFile, string sArrayName, int nSpellbookType, object oSkin);
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
@ -859,8 +860,41 @@ void SetupSpells(object oPC, int nClass)
|
||||
|
||||
// For spontaneous spellbooks, set up an array that tells how many spells of each level they can cast
|
||||
// And add casting feats for each spell known to the caster's hide
|
||||
if(nSpellbookType == SPELLBOOK_TYPE_SPONTANEOUS) //:: Fixed by TiredByFirelight
|
||||
{
|
||||
// Spell slots
|
||||
int nSpellLevel, nSlots;
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
persistant_array_set_int(oPC, sArrayName, nSpellLevel, nSlots);
|
||||
}
|
||||
|
||||
if(nSpellbookType == SPELLBOOK_TYPE_SPONTANEOUS)
|
||||
int i;
|
||||
for(i = 0; i < persistant_array_get_size(oPC, "Spellbook" + sClass); i++)
|
||||
{ //adding feats
|
||||
SpontaneousSpellSetupLoop(oPC, nClass, sFile, oSkin, i);
|
||||
}
|
||||
}// end if - Spontaneous spellbook
|
||||
|
||||
// For prepared spellbooks, add spell uses and use feats according to spells memorised list
|
||||
else if(nSpellbookType == SPELLBOOK_TYPE_PREPARED && !GetIsBioSpellCastClass(nClass))
|
||||
{
|
||||
int nSpellLevel, nSlot, nSlots, nSpellbookID;
|
||||
string sArrayName2, sIDX;
|
||||
|
||||
// clearing existing spells
|
||||
persistant_array_delete(oPC, sArrayName);
|
||||
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
//Delay of 0.01, to ensure it runs after persistant_array_delete() which is a lot of 0.0 delay commands, but before other spellbook stuff
|
||||
DelayCommand(0.01, ProcessPreparedSpellLevel(oPC, nClass, nSpellLevel, nLevel, nAbility, sClass, sFile, sArrayName, nSpellbookType, oSkin));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* if(nSpellbookType == SPELLBOOK_TYPE_SPONTANEOUS)
|
||||
{
|
||||
// Spell slots
|
||||
int nSpellLevel, nSlots;
|
||||
@ -910,8 +944,28 @@ void SetupSpells(object oPC, int nClass)
|
||||
}
|
||||
}
|
||||
}
|
||||
} */
|
||||
|
||||
void ProcessPreparedSpellLevel(object oPC, int nClass, int nSpellLevel, int nLevel, int nAbility, string sClass, string sFile, string sArrayName, int nSpellbookType, object oSkin)
|
||||
{
|
||||
string sArrayName2 = "Spellbook" + IntToString(nSpellLevel) + "_" + sClass;
|
||||
string sIDX = "SpellbookIDX" + IntToString(nSpellLevel) + "_" + sClass;
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
int nSlot;
|
||||
for(nSlot = 0; nSlot < nSlots; nSlot++)
|
||||
{
|
||||
int nSpellbookID = persistant_array_get_int(oPC, sArrayName2, nSlot);
|
||||
if(nSpellbookID != 0)
|
||||
{
|
||||
AddSpellUse(oPC, nSpellbookID, nClass, sFile, sArrayName, nSpellbookType, oSkin,
|
||||
StringToInt(Get2DACache(sFile, "FeatID", nSpellbookID)),
|
||||
StringToInt(Get2DACache(sFile, "IPFeatID", nSpellbookID)),
|
||||
sIDX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CheckAndRemoveFeat(object oHide, itemproperty ipFeat)
|
||||
{
|
||||
int nSubType = GetItemPropertySubType(ipFeat);
|
||||
|
@ -26,6 +26,63 @@ void main()
|
||||
{
|
||||
if (!PreInvocationCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
int bValid = FALSE;
|
||||
int nBPIndex = 0;
|
||||
int nBPTIndex = 0;
|
||||
|
||||
int bValidTarget = FALSE;
|
||||
int bValidCaster = FALSE;
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_ELEMENTAL_PROTECTION);
|
||||
|
||||
//Add to array on target of breaths they're protected from
|
||||
|
||||
if(!array_exists(oTarget, "BreathProtected"))
|
||||
array_create(oTarget, "BreathProtected");
|
||||
|
||||
while(!bValidTarget)
|
||||
{
|
||||
if(array_get_object(oTarget, "BreathProtected", nBPIndex) == OBJECT_INVALID)
|
||||
{
|
||||
array_set_object(oTarget, "BreathProtected", nBPIndex, oCaster);
|
||||
bValidTarget = TRUE;
|
||||
}
|
||||
else
|
||||
nBPIndex++;
|
||||
}
|
||||
|
||||
if(!array_exists(oCaster, "BreathProtectTargets"))
|
||||
array_create(oCaster, "BreathProtectTargets");
|
||||
|
||||
while(!bValidCaster)
|
||||
{
|
||||
if(array_get_object(oCaster, "BreathProtectTargets", nBPTIndex) == OBJECT_INVALID)
|
||||
{
|
||||
array_set_object(oCaster, "BreathProtectTargets", nBPTIndex, oTarget);
|
||||
if(DEBUG) DoDebug("Storing target: " + GetName(oTarget));
|
||||
bValidCaster = TRUE;
|
||||
}
|
||||
else
|
||||
nBPTIndex++;
|
||||
}
|
||||
|
||||
//add to array on caster of targets protected by their spell for resting cleanup
|
||||
|
||||
if(!array_exists(oCaster, "BreathProtectTargets"))
|
||||
array_create(oCaster, "BreathProtectTargets");
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
DispelMonitor(oCaster, oTarget, INVOKE_ENDURE_EXPOSURE);
|
||||
}
|
||||
|
||||
|
||||
/* void main()
|
||||
{
|
||||
if (!PreInvocationCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = GetInvokerLevel(oCaster, GetInvokingClass());
|
||||
@ -73,6 +130,7 @@ void main()
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
DispelMonitor(oCaster, oTarget, INVOKE_ENDURE_EXPOSURE);
|
||||
}
|
||||
*/
|
||||
|
||||
void DispelMonitor(object oCaster, object oTarget, int nSpellID)
|
||||
{
|
||||
|
@ -56,6 +56,28 @@ void RendingClaws(object oInitiator, object oTarget)
|
||||
}
|
||||
|
||||
void Scent(object oInitiator)
|
||||
{
|
||||
effect eTest = GetFirstEffect(oInitiator);
|
||||
while (GetIsEffectValid(eTest))
|
||||
{
|
||||
if (GetEffectTag(eTest) == "BCM_SCENT_ACTIVE")
|
||||
return;
|
||||
eTest = GetNextEffect(oInitiator);
|
||||
}
|
||||
|
||||
effect eLink;
|
||||
effect eScent;
|
||||
|
||||
eScent = EffectLinkEffects(EffectSkillIncrease(SKILL_SPOT, 4), EffectSkillIncrease(SKILL_LISTEN, 4));
|
||||
eLink = EffectLinkEffects(eScent, EffectSkillIncrease(SKILL_SEARCH, 4));
|
||||
eLink = EffectLinkEffects(eLink, EffectBonusFeat(FEAT_KEEN_SENSE));
|
||||
eLink = TagEffect(eLink, "BCM_SCENT_ACTIVE");
|
||||
eLink = UnyieldingEffect(eLink);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oInitiator);
|
||||
}
|
||||
|
||||
/* void Scent(object oInitiator)
|
||||
{
|
||||
object oSkin = GetPCSkin(oInitiator);
|
||||
|
||||
@ -65,7 +87,7 @@ void Scent(object oInitiator)
|
||||
IPSafeAddItemProperty(oSkin, ItemPropertyBonusFeat(IP_CONST_FEAT_KEEN_SENSES), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eScent, oInitiator);
|
||||
}
|
||||
} */
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -52,11 +52,37 @@ void main()
|
||||
{
|
||||
int nHit = 1;
|
||||
int nPenalty = 0;
|
||||
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, nHit, nPenalty));
|
||||
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, nHit, nPenalty));
|
||||
}
|
||||
}
|
||||
|
||||
void Owieowieowowow(object oInitiator, object oTarget, int nHit, int nPenalty)
|
||||
{
|
||||
if (GetLocalInt(oInitiator, "SupernalAttack")) nPenalty += 1;
|
||||
|
||||
if (nHit == 1)
|
||||
{
|
||||
effect eNone;
|
||||
PerformAttack(oTarget, oInitiator, eNone, 0.0, nPenalty, 0, 0, "Avalanche of Blades Hit", "Avalanche of Blades Miss");
|
||||
|
||||
// Check result of attack
|
||||
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack"))
|
||||
{
|
||||
nPenalty -= 4;
|
||||
if (GetLocalInt(oInitiator, "SupernalAttack")) nPenalty -= 1;
|
||||
|
||||
// Continue the loop only on hit
|
||||
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, 1, nPenalty));
|
||||
|
||||
DelayCommand(3.0, DeleteLocalInt(oTarget, "PRCCombat_StruckByAttack"));
|
||||
}
|
||||
// No else block: if the attack missed, don't queue another call
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* void Owieowieowowow(object oInitiator, object oTarget, int nHit, int nPenalty)
|
||||
{
|
||||
if (GetLocalInt(oInitiator, "SupernalAttack")) nPenalty += 1;
|
||||
if(nHit == 1)
|
||||
@ -74,4 +100,4 @@ void Owieowieowowow(object oInitiator, object oTarget, int nHit, int nPenalty)
|
||||
//Again! Again!
|
||||
DelayCommand(0.1, Owieowieowowow(oInitiator, oTarget, nHit, nPenalty));
|
||||
}
|
||||
}
|
||||
} */
|
Binary file not shown.
@ -25418,7 +25418,7 @@ Use: Automatic.</entry>
|
||||
<entry id="50432" lang="en" sex="m">Aura of Menace</entry>
|
||||
<entry id="50433" lang="en" sex="m">Type of Feat: Racial
|
||||
Prerequisite: Race-Specific.
|
||||
Specifics: The creature has a righteous aura around it. Any creature that fails its will save(DC:16+Cha) is shaken.
|
||||
Specifics: The creature has a righteous aura around it. Any creature that fails its will save is shaken. THe DC of the will save is calculated as follows: 10 (Base) + 2 (Racial Bonus) + 3 (1/2 Outsider HD) + Charisma bonus.
|
||||
Use: Selected.</entry>
|
||||
<entry id="50434" lang="en" sex="m">Hound Archon Aid</entry>
|
||||
<entry id="50435" lang="en" sex="m">Hound Archon Detect Evil</entry>
|
||||
@ -71356,7 +71356,7 @@ When within your own black labyrinth, you are immune to the last two effects (mo
|
||||
<entry id="74810" lang="en" sex="m">Some prestige classes can advance invoking or shadowcasting instead of spellcasting.</entry>
|
||||
<entry id="74811" lang="en" sex="m">Spellcraft doesn't provide a bonus to your save vs. spells in 3e Dungeons & Dragons. This is reflected in the PRC8.</entry>
|
||||
<entry id="74812" lang="en" sex="m">Tumble doesn't provide a bonus to your Armor Class in 3e Dungeons & Dragons. This is reflected in the PRC8.</entry>
|
||||
<entry id="74813" lang="en" sex="m">Feats for Alternate Magic Systems (Psionics, Incarnum, etc) are all organized under a Masterfeat. Psionic Feats, ToB Feats, etc...</entry>
|
||||
<entry id="74813" lang="en" sex="m">Feats for Alternate Magic Systems (Psionics, Incarnum, etc) are all organized under a Masterfeat. Psionic Feats, ToB Feats, etc...</entry>
|
||||
<entry id="75001" lang="en" sex="m">Favored Mystery - Black Labyrinth</entry>
|
||||
<entry id="75002" lang="en" sex="m">Holy Warrior</entry>
|
||||
<entry id="75003" lang="en" sex="m">Type of Feat: Reserve
|
||||
@ -71537,8 +71537,8 @@ Special Abilities:
|
||||
- Level Adjustment: +1</entry>
|
||||
<entry id="75260" lang="en" sex="m">FcL</entry>
|
||||
<entry id="75283" lang="en" sex="m">Plt</entry>
|
||||
<entry id="75297" lang="en" sex="m">### BEGIN INVOKER MARKER FEATS#</entry>
|
||||
<entry id="75298" lang="en" sex="m">Sorcerous Spellcasting (Hobgoblin Warsoul)</entry>
|
||||
<entry id="75297" lang="en" sex="m">### BEGIN INVOKER MARKER FEATS#</entry>
|
||||
<entry id="75298" lang="en" sex="m">Sorcerous Spellcasting (Hobgoblin Warsoul)</entry>
|
||||
<entry id="75299" lang="en" sex="m">Sorcerous Casting: Hobgoblin Warsouls cast spells as a Sorcerer of their hit dice (9th level).</entry>
|
||||
<entry id="75300" lang="en" sex="m">Abjurant Champion Invoking (Warlock)</entry>
|
||||
<entry id="75301" lang="en" sex="m">Acolye of the Skin Invoking (Warlock)</entry>
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user