2025/11/25

Added Spell Cancelation tool to end spells early.
Made several Exalted feats available generally.
Fixed prereqs for several Exalted feats.
Fixed typo in Chasing Perfection related itemprops.
Grouped Exalted feats under a masterfeat.
Moved PRC8 Packages far down the packages.2da so as to not conflict with modules.
Updated PRC8 Tester module.
Epic Spell: Summon Aberration no longer sucks.  Creatures were updated to match PnP and now level with caster.
Twinfiend summon now receives the correct number of skill points for their bonus HD.
Added LevelUpSummon() function for handling creatures w/ class levels.
Further tweaking for the prc_2da_cache creature to prevent NPCs from attacking it.
Add paragon & psuedonatural template related json functions.
Gated errant debug message in prc_amagsys_gain.nss.
Add DM Tool for viewing PC's current character sheet, templates & spell effects.
Arrow of Bone shouldn't provide free mundane arrows anymore.  Needs testing.
Fixed a bunch of minor TLK typos.
This commit is contained in:
Jaysyn904
2025-11-25 09:00:22 -05:00
parent 80070703b4
commit 257cb23488
41 changed files with 3440 additions and 621 deletions

23
Notes/Exalted Feats.txt Normal file
View File

@@ -0,0 +1,23 @@
Exalted Feats
Exalted Companion
Sacred Vow
Vow of Abstinence
Vow of Obedience
Vow of Poverty
Vow of Purity
Vow of Chastity
Servant of The Heavens
Touch of Golden Ice
Stigmata
Holy Radiance
Nimbus of Light
Intuitive Attack
Hand of a Healer
Exalted Turning
Favored of the Companions
Sanctify Ki Strike
Sanctify Martial Strike
Holy Ki Strike
Fist of the Heavens
Gift of Faith

View File

@@ -0,0 +1,22 @@
Beholder
12.) Point-blank Shot (27)
15.) Weapon Focus: Ray (4819)
18.) Blind Fight (408)
21.) Fast Heaing I (4145)
24.) Armor Skin (490)
27.) Fast Heaing II (4146)
30.) Epic Reflexes (585)
33.) Fast Heaing III (4147)
Umber Hulk
9.) Blind-fight (408)
12.) Improved Critical: Creature (292)
15.) Weapon Focus: Creature (291)
18.) Lightining Reflexes (24)
21.) Epic Prowess (584)
24.) Armor Skin (490)
Battle Devourer
9.) Blind-fight (408)
12.) Improved Critical: Creature (292)
15.) Improved Trip (2807)

View File

@@ -68,7 +68,7 @@ void main()
float fRange = 30.0 + (nMaster * 10);
// Target location
location lTarget = GetSpellTargetLocation();
location lTarget = PRCGetSpellTargetLocation();
// Distance check
if (GetDistanceBetweenLocations(GetLocation(oPC), lTarget) > FeetToMeters(fRange))
@@ -135,6 +135,13 @@ void main()
return;
}
}
//:: One skill point per HD
jShadow = json_AdjustCreatureSkillByID(jShadow, SKILL_SPOT, nHDToAdd);
if (jShadow == JSON_NULL)
{
DoDebug("mdshdw_shadserv >> json_AdjustCreatureSkillByID failed — JSON became invalid.");
return;
}
object oShadow = JsonToObject(jShadow, lTarget);
effect eSummon = ExtraordinaryEffect(EffectSummonCreature("", VFX_FNF_SUMMON_UNDEAD, 0.0, 0, VFX_IMP_UNSUMMON, oShadow));

View File

@@ -97,10 +97,10 @@
93 SublimeChord 16790580 16829452 16829453 16829454 16829455 IR_X1_HARPER 6 CLS_ATK_3 CLS_FEAT_SCHORD CLS_SAVTHR_WIZ CLS_SKILL_SCHORD CLS_BFEAT_SCHORD 4 CLS_SPGN_SCHORD CLS_SPKN_SCHORD 1 1 10 14 12 10 14 16 CHA 0X00 0X0 0 CLASS_TYPE_SUBLIME_CHORD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SCHORD 40 0 0 0 10 46 131 **** **** **** **** **** **** **** **** **** SublimeCh **** **** **** **** ****
94 Artificer 16790581 16827101 16827102 16827103 16827104 **** 6 CLS_ATK_2 CLS_FEAT_ARTI CLS_SAVTHR_WIZ CLS_SKILL_ARTI CLS_BFEAT_ARTI 4 **** **** 0 0 10 14 12 10 16 14 CHA 0X00 0X0 0 CLASS_TYPE_ARTIFICER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ARTI 0 1 0 0 -1 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
95 Arcane_Duelist 16790582 16823520 16823521 16823522 16823523 IR_SPARCDLST 8 CLS_ATK_3 CLS_FEAT_ADST CLS_SAVTHR_BARD CLS_SKILL_ADST CLS_BFEAT_ADST 4 **** **** 1 0 12 16 14 8 14 12 CHA 0X00 0X0 0 CLASS_TYPE_ARCANE_DUELIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ADST 40 0 0 0 10 **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
96 ForceMissileMage 16790583 16836426 16836427 16836428 16836429 IR_HAVOCMAGE 4 CLS_ATK_3 CLS_FEAT_FMM CLS_SAVTHR_ROG CLS_SKILL_FMM CLS_BFEAT_FMM 2 **** **** 1 0 12 14 14 10 12 15 CHA 0X00 0X0 0 CLASS_TYPE_FMM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_FMM 5 0 1 0 10 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
96 ForceMissileMage 16790583 16836426 16836427 16836428 16836429 IR_HAVOCMAGE 4 CLS_ATK_3 CLS_FEAT_FMM CLS_SAVTHR_ROG CLS_SKILL_FMM CLS_BFEAT_FMM 2 **** **** 1 0 12 14 14 10 12 15 INT 0X00 0X0 0 CLASS_TYPE_FMM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_FMM 5 0 1 0 5 31 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
97 WildMage 16790584 16836416 16836417 16836418 16836419 IR_WILDER 4 CLS_ATK_3 CLS_FEAT_WILDMG CLS_SAVTHR_ROG CLS_SKILL_WILDMG CLS_BFEAT_WILDMG 2 **** **** 1 0 12 14 14 10 12 15 CHA 0X04 0X0 0 CLASS_TYPE_WILD_MAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WILDMG 40 0 1 0 10 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
98 Shadowsmith 16790585 16847414 16847415 16847416 16847417 IR_TEMPUS 8 CLS_ATK_1 CLS_FEAT_SHDSMT CLS_SAVTHR_ROG CLS_SKILL_SHDSMT CLS_BFEAT_SHDSMT 6 **** **** 1 0 14 13 14 10 14 13 INT 0x00 0x0 0 CLASS_TYPE_SHADOWSMITH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SHDSMT 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
99 Abjurant_Champion 16790586 16847652 16847653 16847654 16847655 IR_ELDKNI 10 CLS_ATK_1 CLS_FEAT_ABCHAM CLS_SAVTHR_WIZ CLS_SKILL_ABCHAM CLS_BFEAT_ABCHAM 2 **** **** 1 0 14 13 14 10 14 13 INT 0X00 0X0 0 CLASS_TYPE_ABJURANT_CHAMPION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ABCHAM 5 0 1 0 5 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
99 Abjurant_Champion 16790586 16847652 16847653 16847654 16847655 IR_ELDKNI 10 CLS_ATK_1 CLS_FEAT_ABCHAM CLS_SAVTHR_WIZ CLS_SKILL_ABCHAM CLS_BFEAT_ABCHAM 2 **** **** 1 0 14 13 14 10 14 13 INT 0X00 0X0 0 CLASS_TYPE_ABJURANT_CHAMPION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ABCHAM 5 0 1 0 5 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
100 Archmage 16790587 16825000 16825001 16825002 16825003 IR_EPICSPELL 4 CLS_ATK_3 CLS_FEAT_ARCH CLS_SAVTHR_WIZ CLS_SKILL_ARCH CLS_BFEAT_ARCH 2 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_ARCHMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ARCH 5 0 2 0 5 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
101 Oozemaster 16790588 16825036 16825037 16825038 16825039 IR_GENSUMMON 8 CLS_ATK_2 CLS_FEAT_OOZE CLS_SAVTHR_FIGHT CLS_SKILL_OOZE CLS_BFEAT_OOZE 4 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_OOZEMASTER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_OOZEM 40 0 2 2 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
102 Psychic_Rogue 16790589 16835172 16835173 16835174 16835175 IR_PSYWARRIOR 6 CLS_ATK_2 CLS_FEAT_PSYROG CLS_SAVTHR_ROG CLS_SKILL_PSYROG CLS_BFEAT_PSYROG 6 **** **** 1 0 14 12 14 16 10 10 WIS 0X00 0X0 0 CLASS_TYPE_PSYROG 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PSYROG 20 1 0 0 -1 7 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@@ -113,7 +113,7 @@
109 Umbral_Disciple 16790596 16837827 16837828 16837829 16837830 IR_ASASIN 6 CLS_ATK_2 CLS_FEAT_UMBRAL CLS_SAVTHR_BARD CLS_SKILL_UMBRAL CLS_BFEAT_UMBRAL 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_UMBRAL_DISCIPLE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_UMBRAL 40 0 0 0 10 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
110 Alienist 16790597 16789710 16789711 16789712 16789713 IR_ALIEN 4 CLS_ATK_3 CLS_FEAT_ALIEN CLS_SAVTHR_WIZ CLS_SKILL_ALIEN CLS_BFEAT_ALIEN 2 **** **** 1 0 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_ALIENIST 1 1 1 2 2 4 6 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ALIEN 40 0 1 0 10 10 0 cls_stat_alien **** **** **** **** **** **** **** **** **** **** **** **** **** ****
111 BlackBloodCultist 16790598 16823068 16823077 16823078 16823079 IR_WILDWOLF 12 CLS_ATK_2 CLS_FEAT_BBC CLS_SAVTHR_BARB CLS_SKILL_BBC CLS_BFEAT_BBC 4 **** **** 1 0 16 14 14 14 10 8 STR 0X0A 0X3 0 CLASS_TYPE_BLACK_BLOOD_CULTIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BBC 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
112 Warlock 16790599 16827934 16827935 16827936 16827937 IR_WARLOCK 6 CLS_ATK_2 CLS_FEAT_WARLOK CLS_SAVTHR_WIZ CLS_SKILL_WARLOK CLS_BFEAT_WARLOK 2 **** **** 1 1 12 14 14 10 12 15 CHA 0X14 0X3 1 CLASS_TYPE_WARLOCK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARLOK 0 1 0 0 -1 132 0 **** **** **** **** **** **** **** **** **** Warlock **** **** **** **** ****
112 Warlock 16790599 16827934 16827935 16827936 16827937 IR_WARLOCK 6 CLS_ATK_2 CLS_FEAT_WARLOK CLS_SAVTHR_WIZ CLS_SKILL_WARLOK CLS_BFEAT_WARLOK 2 **** **** 1 1 12 14 14 10 12 15 CHA 0X14 0X3 1 CLASS_TYPE_WARLOCK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARLOK 0 1 0 0 -1 900 0 **** **** **** **** **** **** **** **** **** Warlock **** **** **** **** ****
113 Fochlucan_Lyrist 16852476 16825142 16825143 16825144 16825145 IR_DRUID 6 CLS_ATK_1 CLS_FEAT_FOCLYR CLS_SAVTHR_BARD CLS_SKILL_FOCLYR CLS_BFEAT_FOCLYR 6 **** **** 1 0 10 12 12 14 12 16 CHA 0X02 0X0 0 CLASS_TYPE_FOCHLUCAN_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_FOCLYR 40 0 1 1 10 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
114 Dragonsong_Lyrist 16790600 16825459 16825460 16825461 16825462 IR_DRSLYR 6 CLS_ATK_2 CLS_FEAT_DRSLYR CLS_SAVTHR_BARD CLS_SKILL_DRSLYR CLS_BFEAT_DRSLYR 4 **** **** 1 0 12 14 14 10 12 15 CHA 0X10 0X2 0 CLASS_TYPE_DRAGONSONG_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 CLS_PRES_DSLYR 5 0 2 0 5 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
115 SpinemeldWarrior 16790601 16836998 16836999 16837000 16837001 IR_TEMPEST 10 CLS_ATK_1 CLS_FEAT_SPNMLD CLS_SAVTHR_FIGHT CLS_SKILL_SPNMLD CLS_BFEAT_SPNMLD 4 **** **** 1 0 16 14 14 14 10 8 STR 0X02 0X1 1 CLASS_TYPE_SPINEMELD_WARRIOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SPNMLD 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@@ -2690,8 +2690,8 @@
2686 **** **** **** **** **** **** ****
2687 **** **** **** **** **** **** ****
2688 **** **** **** **** **** **** ****
2689 **** **** **** **** **** **** ****
2690 **EndDomainReserver** **** **** **** **** **** ****
2689 **EndDomainReserver** **** **** **** **** **** ****
2690 CancelSpell **** **** **** **** **** ****
2691 end_psionics **** **** **** **** **** ****
2692 BATTLE_RAGE **** **** **** **** **** ****
2693 Teleport_Management_Radial_Master **** **** **** **** **** ****

View File

@@ -2690,8 +2690,8 @@
2686 **** **** 1 1 1 **** 0
2687 **** **** 1 1 1 **** 0
2688 **** **** 1 1 1 **** 0
2689 **** **** 1 1 1 **** 0
2690 **EndDomainReserver** **** 1 1 1 **** 0
2689 **EndDomainReserver** **** 1 1 1 **** 0
2690 CancelSpell **** 1 1 1 9 0
2691 end_psionics **** 1 1 1 **** 0
2692 BATTLE_RAGE **** 1 1 1 1 0
2693 Teleport_Management_Radial_Master **** 1 1 1 **** 0

View File

@@ -3163,13 +3163,13 @@
3159 FEAT_VERMINMASTERY 16825898 16825899 ife_animal **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 0.5 **** **** 0 **** **** **** **** **** **** **** **** **** FEAT_VERMINMASTERY 6 **** **** **** **** **** 0 1
3160 FEAT_MAGICALBEASTMASTERY 16825896 16825897 ife_animal **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 0.5 **** **** 0 **** **** **** **** **** **** **** **** **** FEAT_MAGICALBEASTMASTERY 6 **** **** **** **** **** 0 1
3161 Familiar 16825363 16825364 ife_familiar **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2189 **** 0.5 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_SUMMON_FAMILIAR 6 **** **** **** **** **** 0 1
3162 FEAT_RAVAGEGOLDENICE 16825902 16825903 ife_MagWeap **** **** **** **** **** 13 **** **** **** **** 0 0 0 **** **** 2190 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_RAVAGEGOLDENICE 6 **** **** **** **** **** 0 1
3163 FEAT_STIGMATA 16825908 16825909 ife_layon **** **** **** **** **** **** **** **** 3165 **** 0 0 0 **** **** 2191 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_STIGMATA 6 **** **** **** **** **** 0 0
3164 FEAT_HOLYRADIANCE 16825910 16825911 ife_holyrad **** **** **** **** **** **** 15 **** 3165 **** 0 0 1 **** **** 2196 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_HOLYRADIANCE 2 **** **** **** **** **** 0 1
3165 FEAT_NIMBUSLIGHT 16825912 16825913 ife_nimlight **** **** **** **** **** **** **** **** **** **** 0 1 1 **** **** 2032 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_NIMBUSLIGHT 2 **** **** **** **** **** 0 1
3166 FEAT_INTUITIVE_ATTACK 16825914 16825915 ife_weppro_sim 1 **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_INTUITIVE_ATTACK 5 **** **** **** **** **** 0 1
3167 FEAT_HAND_HEALER 16825916 16825917 ife_handheal **** **** **** **** **** **** 13 **** 299 **** 0 1 0 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HAND_HEALER 5 **** **** **** **** **** 0 1
3168 FEAT_EXALTED_TURNING 16825918 16825919 ife_exaturn **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EXALTED_TURNING 1 **** **** **** **** **** 0 1
3162 FEAT_RAVAGEGOLDENICE 16825902 16825903 ife_MagWeap **** **** **** **** **** 13 **** **** **** **** 0 0 1 **** **** 2190 **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_RAVAGEGOLDENICE 6 **** **** **** **** **** 0 1
3163 FEAT_STIGMATA 16825908 16825909 ife_layon **** **** **** **** **** **** **** **** 3165 **** 0 0 1 **** **** 2191 **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_STIGMATA 6 **** **** **** **** **** 0 0
3164 FEAT_HOLYRADIANCE 16825910 16825911 ife_holyrad **** **** **** **** **** **** 15 **** 3165 **** 0 0 1 **** **** 2196 **** 0.5 **** 97 1 **** **** **** **** **** **** **** **** **** FEAT_HOLYRADIANCE 2 **** **** **** **** **** 0 1
3165 FEAT_NIMBUSLIGHT 16825912 16825913 ife_nimlight **** **** **** **** **** **** **** **** **** **** 0 1 1 **** **** 2032 **** 0.5 **** 97 1 **** **** **** **** **** **** **** **** **** FEAT_NIMBUSLIGHT 2 **** **** **** **** **** 0 1
3166 FEAT_INTUITIVE_ATTACK 16825914 16825915 ife_weppro_sim 1 **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_INTUITIVE_ATTACK 5 **** **** **** **** **** 0 1
3167 FEAT_HAND_HEALER 16825916 16825917 ife_handheal **** **** **** **** **** **** 13 **** 299 **** 0 1 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_HAND_HEALER 5 **** **** **** **** **** 0 1
3168 FEAT_EXALTED_TURNING 16825918 16825919 ife_exaturn **** **** **** **** **** **** **** **** 294 **** 0 0 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_EXALTED_TURNING 1 **** **** **** **** **** 0 1
3169 FEAT_SANCTIFY_MARTIAL_SICKLE 16825920 16823245 ife_X2WSDWAx **** **** **** **** **** **** 15 **** 98 **** 0 0 1 **** **** **** **** 0.5 **** 93 **** **** **** **** **** **** **** **** **** **** FEAT_SANCTIFY_MARTIAL_SICKLE 1 **** **** **** **** **** 0 1
3170 FEAT_SANCTIFY_MARTIAL_DWARVENAXE 16825921 16823245 ife_X2WSDagg **** **** **** **** **** **** 15 **** 952 **** 0 0 1 **** **** **** **** 0.5 **** 93 **** **** **** **** **** **** **** **** **** **** FEAT_SANCTIFY_MARTIAL_DWARVENAXE 1 **** **** **** **** **** 0 1
3171 FEAT_WEAPON_TEMPUS_SICKLE 16825923 16822945 ife_X2WpCh **** **** **** **** **** **** **** **** 98 **** 0 0 0 **** **** **** **** 0.5 **** 94 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_TEMPUS_SICKLE 1 **** **** **** **** **** 0 1
@@ -3356,7 +3356,7 @@
3352 FEAT_KillingShot 16826000 16826001 ife_wepspec_Lbw 19 **** **** **** **** **** **** **** 3353 **** 0 0 1 **** **** 2207 **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_KillingShot 6 0 **** **** **** **** 0 1
3353 FEAT_PerfectShot 16825998 16825999 ife_wepspec_Lbw 6 **** **** **** **** **** **** **** 3351 **** 0 0 1 **** **** 2207 **** 0.5 **** **** **** 92 93 101 102 99 **** **** **** **** FEAT_PerfectShot 6 0 **** **** **** **** 0 1
3354 FEAT_PerfectShot2 16825940 16825941 ife_wepspec_Lbw 6 **** **** **** **** **** **** **** 3353 **** 0 0 1 **** **** 2207 **** 0.5 **** **** **** 92 93 101 102 99 **** **** **** **** FEAT_PerfectShot2 6 0 **** **** **** **** 0 1
3355 FEAT_SERVHEAVEN 16823344 16823345 ife_servheaven **** **** **** **** **** **** **** **** **** **** 0 1 1 **** **** 2033 **** **** 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_SERVHEAVEN 2 **** **** **** **** **** 0 1
3355 FEAT_SERVHEAVEN 16823344 16823345 ife_servheaven **** **** **** **** **** **** **** **** **** **** 0 1 1 **** **** 2033 **** **** 1 97 1 **** **** **** **** **** **** **** **** **** FEAT_SERVHEAVEN 2 **** **** **** **** **** 0 1
3356 FEAT_RANGED_SMITE 16823346 16823347 ife_rangedsmite **** **** **** **** **** **** **** **** **** **** 0 1 0 **** **** 2034 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_RANGED_SMITE 5 1 **** **** **** **** 0 1
3357 FEAT_VILE_MARTIAL_CLUB 16825481 16825480 ife_X2WSClub **** **** **** **** **** **** 15 **** 43 **** 0 0 1 **** **** **** **** 0.5 **** 89 **** **** **** **** **** **** **** **** **** **** FEAT_VILE_MARTIAL_CLUB 1 **** **** **** **** **** 0 1
3358 FEAT_VILE_MARTIAL_DAGGER 16825482 16825480 ife_X2WSDagg **** **** **** **** **** **** 15 **** 90 **** 0 0 1 **** **** **** **** 0.5 **** 89 **** **** **** **** **** **** **** **** **** **** FEAT_VILE_MARTIAL_DAGGER 1 **** **** **** **** **** 0 1
@@ -3389,8 +3389,8 @@
3385 FEAT_VILE_MARTIAL_LIGHTCROSSBOW 16825509 16825480 ife_X2WSLXB **** **** **** **** **** **** 15 **** 93 **** 0 0 1 **** **** **** **** 0.5 **** 89 **** **** **** **** **** **** **** **** **** **** FEAT_VILE_MARTIAL_LIGHTCROSSBOW 1 **** **** **** **** **** 0 1
3386 FEAT_VILE_MARTIAL_SLING 16825510 16825480 ife_X2WSSlng **** **** **** **** **** **** 15 **** 99 **** 0 0 1 **** **** **** **** 0.5 **** 89 **** **** **** **** **** **** **** **** **** **** FEAT_VILE_MARTIAL_SLING 1 **** **** **** **** **** 0 1
3387 FEAT_VILE_MARTIAL_LONGBOW 16825511 16825480 ife_X2WSLBow **** **** **** **** **** **** 15 **** 101 **** 0 0 1 **** **** **** **** 0.5 **** 89 **** **** **** **** **** **** **** **** **** **** FEAT_VILE_MARTIAL_LONGBOW 1 **** **** **** **** **** 0 1
3388 FEAT_SAC_VOW 16822845 16822846 ife_sacredvow **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SAC_VOW 6 **** **** **** **** **** 0 1
3389 FEAT_VOW_OBED 16822847 16822848 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOW_OBED 6 **** **** **** **** **** 0 1
3388 FEAT_SAC_VOW 16822845 16822846 ife_sacredvow **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_SAC_VOW 6 **** **** **** **** **** 0 1
3389 FEAT_VOW_OBED 16822847 16822848 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_VOW_OBED 6 **** **** **** **** **** 0 1
3390 FEAT_EB_HAND 16822851 16822852 ife_X2BoneSk1 **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 95 **** **** **** **** **** **** **** **** **** **** FEAT_EB_HAND 6 **** **** **** **** **** 0 1
3391 FEAT_EB_HEAD 16822853 16822854 ife_X2BoneSk1 **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 95 **** **** **** **** **** **** **** **** **** **** FEAT_EB_HEAD 6 **** **** **** **** **** 0 1
3392 FEAT_EB_CHEST 16822855 16822856 ife_X2BoneSk1 **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 1 **** 95 **** **** **** **** **** **** **** **** **** **** FEAT_EB_CHEST 6 **** **** **** **** **** 0 1
@@ -4200,7 +4200,7 @@
4196 SB_Brill_25 16823454 16823455 ife_X2WSLSwd **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1566 4197 0.5 14 **** 1 **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LONGSWORD 1 **** **** **** **** **** 0 1
4197 SB_Brill_27 16823454 16823455 ife_X2WSLSwd **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1566 4198 0.5 15 **** 1 **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LONGSWORD 1 **** **** **** **** **** 0 1
4198 SB_Brill_29 16823454 16823455 ife_X2WSLSwd **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 1566 **** 0.5 16 **** 1 **** **** **** **** **** **** **** **** **** FEAT_EPIC_WEAPON_SPECIALIZATION_LONGSWORD 1 **** **** **** **** **** 0 1
4199 EXALTED_COMPANION 16822440 16822441 ife_animal **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLARCH_REGEN_1 4 **** **** **** **** **** 0 1
4199 EXALTED_COMPANION 16822440 16822441 ife_animal **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_BLARCH_REGEN_1 4 **** **** **** **** **** 0 1
4200 FEAT_BLARCH_POISON_BLOOD 16822397 16822398 ife_X2UsePoison **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2998 **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLARCH_POISON_BLOOD 4 **** **** **** **** **** 0 1
4201 FEAT_BLARCH_ACID_BLOOD 16822399 16822400 ife_X2UsePoison **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ACID_BLOOD 4 **** **** **** **** **** 0 1
4202 FEAT_BLARCH_REGEN_1 16822401 16822402 ife_X1ResDis **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 4203 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLARCH_REGEN_1 4 **** **** **** **** **** 0 1
@@ -5361,7 +5361,7 @@
5357 Factotum_Cunning_Knowledge 16824532 16826316 fot_oracle **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3903 **** 1 -1 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 0
5358 Factotum_Opportunistic_Piety_Heal 16826317 16826318 fot_regenerate **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3904 **** 1 10 **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
5359 Factotum_Opportunistic_Piety_Turn 16826319 16826320 fot_contundead **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3905 **** 1 10 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
5360 FEAT_VOW_PURITY 16826325 16826326 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOW_PURITY 6 **** **** **** **** **** 0 1
5360 FEAT_VOW_PURITY 16826325 16826326 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_VOW_PURITY 6 **** **** **** **** **** 0 1
5361 Sharess_Fascinate 16826327 16826934 ife_X1SDaze **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3907 **** 1 10 **** 1 **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
5362 Sharess_Confuse 16826935 16826936 ife_X1HTym **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3908 **** 1 10 **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
5363 Sharess_Dominate 16826937 16826938 ife_X1HLHrt **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 3909 **** 1 10 **** **** **** **** **** **** **** **** **** **** **** **** 4 **** **** **** **** **** 0 1
@@ -25995,7 +25995,7 @@
25991 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
25992 FEAT_PLANT_DEFIANCE 16990318 16990319 id_plant **** **** **** **** **** **** **** **** **** **** 0 0 1 **** 1 17991 **** 0.5 -1 **** 1 198 374 23580 **** **** **** **** **** **** FEAT_PLANT_DEFIANCE 6 **** **** **** **** **** 0 1
25993 FEAT_PLANT_CONTROL 16990320 16990321 id_plant **** **** **** **** **** **** **** **** 25992 **** 0 0 1 **** 1 17992 **** 0.5 -1 **** 1 198 374 23580 **** **** **** **** **** **** FEAT_PLANT_CONTROL 6 **** **** **** **** **** 0 1
25994 FEAT_FAV_COMPANIONS 16990316 16990317 ife_servheaven **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** 17995 **** **** 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_FAV_COMPANIONS 2 **** **** **** **** **** 0 1
25994 FEAT_FAV_COMPANIONS 16990316 16990317 ife_servheaven **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** 17995 **** **** 1 97 1 **** **** **** **** **** **** **** **** **** FEAT_FAV_COMPANIONS 2 **** **** **** **** **** 0 1
25995 FEAT_EPIC_SWARM_OF_ARROWS 16990308 16990309 ife_X1HailArr **** **** 23 **** **** **** **** **** 27 30 0 0 1 2 **** 17996 **** 1 **** **** 1 101 102 **** **** **** **** **** **** **** FEAT_EPIC_SWARM_OF_ARROWS 5 0 **** **** **** **** 1 1
25996 FEAT_EPIC_UP_PRIEST 16835620 16835621 ife_X2EpicChar **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_UR_PRIEST 6 **** **** **** **** **** 1 0
25997 FEAT_INVESTIGATOR 16990414 16990415 ife_alertness **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_INVESTIGATOR 5 **** **** **** **** **** 0 1
@@ -26003,13 +26003,13 @@
25999 FEAT_MARTIAL_STALKER 16990314 16990315 IR_NINJA **** **** **** **** **** **** **** **** 2488 45 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MARTIAL_STALKER 5 0 **** **** **** **** 0 0
26000 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
26001 Bullybasher_GiantBearing 16977316 16977317 is_giantbearing **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 16553 **** 0.5 **** **** 1 **** **** **** **** **** **** **** **** **** WOL_BULLY_GIANT 6 0 **** **** **** **** 0 0
26002 FEAT_VOWOFPOVERTY 16977318 16977319 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOWOFPOVERTY 6 **** **** **** **** **** 0 0
26003 FEAT_SANCTIFYKISTRIKE 16990535 16990536 ife_kistrike **** **** **** **** **** **** 15 **** 21 213 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_SANCTIFYKISTRIKE 6 **** **** **** **** **** 0 0
26004 FEAT_HOLYKISTRIKE 16990537 16990538 ife_kistrike **** **** **** **** **** **** 15 **** 21 26002 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_HOLYKISTRIKE 6 **** **** **** **** **** 0 0
26005 FEAT_FISTOFHEAVENS 16990539 16990540 ife_kistrike **** **** **** **** 15 **** **** **** 21 26002 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_FISTOFHEAVENS 6 **** **** **** **** **** 0 0
26006 FEAT_VOWABSTINENCE 16990541 16990542 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOWABSTINENCE 6 **** **** **** **** **** 0 0
26007 FEAT_VOWCHASTITY 16990543 16990544 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_VOWCHASTITY 6 **** **** **** **** **** 0 0
26008 FEAT_GIFTOFFAITH 16990545 16990546 ife_sacredvow **** **** **** **** 13 **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_GIFTOFFAITH 6 **** **** **** **** **** 0 0
26002 FEAT_VOWOFPOVERTY 16977318 16977319 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_VOWOFPOVERTY 6 **** **** **** **** **** 0 0
26003 FEAT_SANCTIFYKISTRIKE 16990535 16990536 ife_kistrike **** **** **** **** **** **** 15 **** 21 213 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_SANCTIFYKISTRIKE 6 **** **** **** **** **** 0 0
26004 FEAT_HOLYKISTRIKE 16990537 16990538 ife_kistrike **** **** **** **** **** **** 15 **** 21 26003 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_HOLYKISTRIKE 6 **** **** **** **** **** 0 0
26005 FEAT_FISTOFHEAVENS 16990539 16990540 ife_kistrike **** **** **** **** 15 **** **** **** 39 26003 0 0 1 **** **** **** **** 1 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_FISTOFHEAVENS 6 **** **** **** **** **** 0 0
26006 FEAT_VOWABSTINENCE 16990541 16990542 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_VOWABSTINENCE 6 **** **** **** **** **** 0 0
26007 FEAT_VOWCHASTITY 16990543 16990544 ife_sacredvow **** **** **** **** **** **** **** **** 3388 **** 0 0 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_VOWCHASTITY 6 **** **** **** **** **** 0 0
26008 FEAT_GIFTOFFAITH 16990545 16990546 ife_sacredvow **** **** **** **** 13 **** **** **** **** **** 0 0 1 **** **** **** **** 0.5 **** 97 **** **** **** **** **** **** **** **** **** **** FEAT_GIFTOFFAITH 6 **** **** **** **** **** 0 0
26009 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
26010 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
26011 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@@ -998,8 +998,8 @@
994 Faerie_Fire 16793699 1 1 750 2924 0 1 1 iss_faerie_fire
995 SPELL_FORCE_MISSILES_8 16790491 8 4 24000 2480 0 1 1 iss_X1LesMis
996 SPELL_FORCE_MISSILES_12 16790488 12 4 36000 2480 0 1 1 iss_X1LesMis
997 SPELL_CHASING_PERFECTION_12 16790495 12 6 54000 2479 0 0 1 fot_strengthone
998 SPELL_CHASING_PERFECTION_16 16790496 16 6 72000 2479 0 0 1 fot_strengthone
997 SPELL_CHASING_PERFECTION_12 16990495 12 6 54000 2479 0 0 1 fot_strengthone
998 SPELL_CHASING_PERFECTION_16 16990496 16 6 72000 2479 0 0 1 fot_strengthone
999 **** **** **** **** **** **** **** **** **** ****
1000 Acid_Orb 16830292 7 4 21000 3100 0 1 1 iss_acidorb
1001 Acid_Orb 16830293 15 4 45000 3100 0 1 1 iss_acidorb

View File

@@ -98,7 +98,7 @@
94 WeaponChoiceTempus 16822944 16822945 ife_X2WpCh
95 Evilbrand 16822849 16822850 ife_X2BoneSk1
96 Aberrant 16790214 16790215 ife_dfrm_gaunt
97 **** **** **** ****
97 ExaltedFeats 16854436 16854437 ife_holyrad
98 **** **** **** ****
99 **** **** **** ****
100 **** **** **** ****

View File

@@ -133,4 +133,870 @@
129 NPC_Aribeth_Paladin 84522 84106 6 CHA 50 **** **** **** **** PackSPPala1 PackFTPalaH PackSKPalaH PackEQPala1 0 0
130 NPC_Aribeth_Blackguard 84523 84106 31 STR 50 **** **** **** **** PackSPPala1 PackFTPalaH PackSKPalaH PackEQPala1 0 0
131 Purple_Dragon_Knight 111933 111934 41 STR 50 **** **** **** **** **** PackFTFight1 PackSKFight1 PackEQFight1 0 1
132 Warlock_Blaster_Default 16988717 16988718 112 CHA 50 **** **** **** **** **** packftwr1 packftwr1 packeqwr1 0 1
132 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
133 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
134 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
135 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
136 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
137 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
138 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
139 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
140 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
141 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
142 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
143 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
144 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
145 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
146 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
147 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
148 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
149 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
150 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
151 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
152 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
153 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
154 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
155 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
156 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
157 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
158 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
159 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
160 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
161 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
162 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
163 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
164 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
165 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
166 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
167 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
168 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
169 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
170 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
171 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
172 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
173 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
174 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
175 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
176 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
177 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
178 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
179 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
180 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
181 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
182 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
183 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
184 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
185 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
186 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
187 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
188 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
189 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
190 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
191 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
192 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
193 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
194 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
195 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
196 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
197 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
198 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
199 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
200 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
201 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
202 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
203 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
204 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
205 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
206 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
207 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
208 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
209 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
210 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
211 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
212 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
213 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
214 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
215 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
216 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
217 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
218 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
219 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
220 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
221 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
222 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
223 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
224 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
225 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
226 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
227 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
228 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
229 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
230 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
231 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
232 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
233 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
234 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
235 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
236 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
237 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
238 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
239 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
240 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
241 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
242 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
243 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
244 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
245 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
246 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
247 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
248 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
249 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
250 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
251 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
252 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
253 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
254 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
255 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
256 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
257 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
258 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
259 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
260 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
261 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
262 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
263 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
264 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
265 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
266 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
267 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
268 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
269 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
270 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
271 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
272 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
273 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
274 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
275 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
276 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
277 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
278 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
279 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
280 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
281 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
282 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
283 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
284 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
285 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
286 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
287 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
288 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
289 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
290 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
291 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
292 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
293 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
294 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
295 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
296 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
297 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
298 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
299 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
300 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
301 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
302 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
303 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
304 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
305 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
306 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
307 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
308 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
309 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
310 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
311 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
312 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
313 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
314 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
315 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
316 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
317 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
318 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
319 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
320 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
321 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
322 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
323 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
324 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
325 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
326 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
327 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
328 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
329 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
330 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
331 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
332 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
333 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
334 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
335 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
336 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
337 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
338 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
339 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
340 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
341 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
342 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
343 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
344 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
345 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
346 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
347 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
348 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
349 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
350 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
351 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
352 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
353 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
354 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
355 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
356 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
357 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
358 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
359 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
360 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
361 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
362 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
363 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
364 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
365 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
366 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
367 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
368 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
369 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
370 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
371 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
372 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
373 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
374 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
375 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
376 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
377 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
378 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
379 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
380 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
381 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
382 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
383 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
384 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
385 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
386 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
387 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
388 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
389 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
390 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
391 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
392 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
393 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
394 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
395 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
396 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
397 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
398 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
399 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
400 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
401 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
402 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
403 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
404 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
405 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
406 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
407 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
408 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
409 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
410 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
411 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
412 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
413 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
414 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
415 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
416 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
417 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
418 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
419 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
420 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
421 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
422 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
423 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
424 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
425 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
426 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
427 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
428 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
429 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
430 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
431 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
432 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
433 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
434 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
435 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
436 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
437 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
438 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
439 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
440 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
441 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
442 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
443 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
444 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
445 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
446 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
447 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
448 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
449 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
450 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
451 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
452 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
453 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
454 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
455 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
456 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
457 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
458 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
459 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
460 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
461 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
462 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
463 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
464 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
465 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
466 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
467 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
468 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
469 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
470 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
471 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
472 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
473 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
474 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
475 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
476 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
477 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
478 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
479 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
480 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
481 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
482 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
483 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
484 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
485 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
486 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
487 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
488 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
489 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
490 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
491 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
492 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
493 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
494 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
495 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
496 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
497 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
498 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
499 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
500 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
501 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
502 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
503 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
504 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
505 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
506 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
507 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
508 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
509 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
510 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
511 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
512 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
513 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
514 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
515 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
516 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
517 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
518 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
519 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
520 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
521 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
522 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
523 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
524 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
525 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
526 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
527 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
528 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
529 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
530 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
531 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
532 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
533 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
534 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
535 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
536 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
537 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
538 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
539 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
540 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
541 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
542 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
543 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
544 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
545 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
546 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
547 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
548 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
549 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
550 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
551 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
552 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
553 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
554 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
555 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
556 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
557 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
558 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
559 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
560 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
561 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
562 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
563 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
564 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
565 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
566 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
567 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
568 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
569 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
570 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
571 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
572 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
573 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
574 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
575 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
576 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
577 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
578 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
579 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
580 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
581 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
582 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
583 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
584 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
585 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
586 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
587 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
588 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
589 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
590 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
591 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
592 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
593 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
594 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
595 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
596 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
597 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
598 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
599 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
600 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
601 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
602 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
603 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
604 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
605 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
606 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
607 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
608 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
609 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
610 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
611 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
612 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
613 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
614 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
615 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
616 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
617 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
618 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
619 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
620 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
621 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
622 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
623 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
624 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
625 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
626 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
627 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
628 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
629 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
630 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
631 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
632 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
633 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
634 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
635 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
636 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
637 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
638 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
639 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
640 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
641 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
642 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
643 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
644 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
645 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
646 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
647 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
648 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
649 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
650 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
651 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
652 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
653 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
654 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
655 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
656 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
657 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
658 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
659 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
660 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
661 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
662 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
663 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
664 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
665 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
666 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
667 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
668 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
669 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
670 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
671 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
672 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
673 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
674 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
675 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
676 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
677 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
678 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
679 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
680 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
681 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
682 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
683 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
684 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
685 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
686 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
687 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
688 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
689 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
690 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
691 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
692 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
693 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
694 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
695 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
696 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
697 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
698 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
699 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
700 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
701 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
702 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
703 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
704 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
705 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
706 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
707 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
708 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
709 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
710 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
711 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
712 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
713 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
714 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
715 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
716 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
717 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
718 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
719 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
720 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
721 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
722 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
723 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
724 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
725 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
726 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
727 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
728 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
729 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
730 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
731 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
732 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
733 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
734 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
735 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
736 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
737 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
738 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
739 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
740 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
741 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
742 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
743 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
744 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
745 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
746 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
747 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
748 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
749 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
750 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
751 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
752 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
753 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
754 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
755 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
756 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
757 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
758 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
759 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
760 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
761 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
762 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
763 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
764 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
765 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
766 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
767 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
768 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
769 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
770 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
771 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
772 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
773 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
774 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
775 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
776 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
777 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
778 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
779 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
780 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
781 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
782 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
783 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
784 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
785 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
786 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
787 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
788 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
789 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
790 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
791 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
792 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
793 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
794 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
795 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
796 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
797 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
798 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
799 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
800 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
801 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
802 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
803 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
804 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
805 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
806 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
807 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
808 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
809 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
810 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
811 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
812 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
813 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
814 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
815 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
816 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
817 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
818 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
819 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
820 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
821 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
822 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
823 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
824 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
825 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
826 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
827 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
828 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
829 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
830 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
831 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
832 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
833 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
834 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
835 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
836 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
837 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
838 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
839 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
840 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
841 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
842 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
843 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
844 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
845 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
846 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
847 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
848 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
849 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
850 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
851 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
852 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
853 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
854 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
855 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
856 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
857 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
858 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
859 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
860 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
861 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
862 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
863 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
864 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
865 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
866 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
867 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
868 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
869 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
870 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
871 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
872 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
873 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
874 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
875 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
876 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
877 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
878 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
879 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
880 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
881 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
882 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
883 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
884 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
885 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
886 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
887 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
888 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
889 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
890 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
891 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
892 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
893 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
894 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
895 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
896 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
897 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
898 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
899 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
900 Warlock_Blaster_Default 16988717 16988718 112 CHA 50 **** **** **** **** **** packftwr1 packftwr1 packeqwr1 0 1
901 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
902 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
903 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
904 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
905 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
906 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
907 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
908 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
909 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
910 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
911 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
912 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
913 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
914 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
915 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
916 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
917 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
918 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
919 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
920 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
921 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
922 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
923 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
924 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
925 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
926 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
927 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
928 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
929 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
930 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
931 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
932 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
933 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
934 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
935 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
936 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
937 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
938 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
939 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
940 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
941 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
942 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
943 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
944 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
945 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
946 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
947 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
948 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
949 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
950 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
951 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
952 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
953 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
954 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
955 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
956 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
957 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
958 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
959 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
960 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
961 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
962 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
963 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
964 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
965 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
966 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
967 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
968 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
969 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
970 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
971 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
972 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
973 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
974 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
975 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
976 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
977 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
978 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
979 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
980 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
981 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
982 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
983 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
984 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
985 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
986 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
987 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
988 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
989 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
990 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
991 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
992 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
993 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
994 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
995 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
996 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
997 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
998 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@@ -2025,7 +2025,7 @@
2021 OozyGlob(Ochre) 16825064 ife_x1precise C S 0 **** 0x32 spl_ooze_glob **** **** **** **** **** **** 9 1500 hand **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf out 1000 **** **** **** **** 1 vpr_aroacid bounce hand spr_aroacid path **** 0 **** **** **** **** **** 10 2018 3 16825047 0 0 **** 1 198052820 **** **** 1 sphere 1.67 **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2022 OozyGlob(Fungus) 16825065 ife_x1precise C S 0 **** 0x32 spl_ooze_glob **** **** **** **** **** **** 9 1500 hand **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf out 1000 **** **** **** **** 1 vpr_aroacid bounce hand spr_aroacid path **** 0 **** **** **** **** **** 10 2018 3 16825049 0 0 **** 1 198118356 **** **** 1 sphere 1.67 **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2023 SlimeWave 16825072 is_BurnHands T S 0 **** 0x3E spl_slime_wave **** **** **** **** **** **** 9 1500 hand **** vco_smhanacid01 **** sco_mehanacid01 vs_chant_ench_lm vs_chant_ench_lf out 1700 **** var_coneacid **** sar_coneacid 0 **** **** **** **** **** Acid 1 **** **** **** **** **** 11 **** 1 16825073 1 0 **** 1 3036 **** **** 1 cone 10 **** 19 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2024 Feat_End_Spell_Effects 16827975 ife_mastelem T P s 0x00 0x01 prc_end_trees **** **** **** **** **** **** 1 4528 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 1798 1952 2026 **** **** **** **** 3 16827976 0 0 **** 0 2468 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2024 Feat_End_Spell_Effects 16827975 ife_mastelem T P s 0x00 0x01 prc_end_trees **** **** **** **** **** **** 1 4528 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 1798 1952 2026 2690 **** **** **** 3 16827976 0 0 **** 0 2468 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2025 HavocMage_BattleCast 16826713 ife_mastelem T P 0 **** 0x01 prc_hvcm_btlcst **** **** **** **** **** **** 9 0 head **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf self 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 3 **** 0 0 **** 0 3000 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2026 EndPRCTreeshape 16847292 ife_mastelem T P 0 **** 0x01 prc_end_trees **** **** **** **** **** **** 9 0 head **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf self 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 2024 3 16847293 0 0 **** 0 350620068 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2027 BAELNORN_EYES 16829230 is_eyes G P 0 0x00 0x01 prc_bn_eyes **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@@ -2690,9 +2690,9 @@
2686 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2687 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2688 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2689 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2690 **EndDomainReserver** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2691 end_psionics **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2689 **EndDomainReserver** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2690 CancelSpell 16855213 ife_mastelem T P S 0x00 0x01 prc_remo_spell **** **** **** **** **** **** 9 0 head **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf self 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 2024 3 16855214 0 0 **** 0 467863972 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2691 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2692 BATTLE_RAGE 16789530 ife_rage V P s 0x00 0x09 PRC_BatlRage **** **** **** **** **** **** 1 500 head **** **** **** **** **** **** out 500 **** **** **** **** 0 **** **** **** **** **** **** 1 **** **** **** **** **** 16 **** 3 **** 0 0 53207 0 293 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2693 Teleport_Management_Radial_Master 16825258 ife_telep_manag G P 0 0x00 0x01 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 2694 2695 2696 2697 2698 **** **** **** **** **** **** **** **** 4235 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2694 Teleport_Mark_Location 16825260 ife_telep_mrkloc G P 0 0x00 0x01 prc_telep_mrkloc **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** 2693 3 16825261 0 0 **** 0 369954955 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@@ -1,13 +1,90 @@
//:://////////////////////////////////////////////
//::////////////////////////////////////////////////////////
//:: ;-. ,-. ,-. ,-.
//:: | ) | ) / ( )
//:: |-' |-< | ;-:
//:: | | \ \ ( )
//:: ' ' ' `-' `-'
//::////////////////////////////////////////////////////////
//:: FileName: "ss_ep_summonaber"
/* Purpose: Summon Aberration - summons a semi-random aberration for 20 hours.
*/
//:://////////////////////////////////////////////
//:: Created By: Boneshank
//:: Epic Spell: Summon Aberration
//:: Created By: Boneshank (Don Armstrong)
//:: Last Updated On: March 12, 2004
//:://////////////////////////////////////////////
//:: Updated By: Jaysyn
//:: Updated on: 2025-11-21 19:40:26
//::
//::////////////////////////////////////////////////////////
/*
School: Conjuration (Summoning)
Components: V,S
Range: Short
Effect: Summons advanced aberration(s)
Duration: 1 Turn / Caster level
Saving Throw: None
Spell Resistance: No
You summon one or more advanced psuedonatural aberrations
from the Far Realms to do your bidding. The aberration
receives one bonus hit die for every 2 caster levels of
the summoner, up to the maximum hit dice for the creature,
and maximum hit points per die. The aberration follows
your orders to the best of its ability, for the duration
of the spell.
*/
//::////////////////////////////////////////////////////////
#include "prc_inc_json"
#include "prc_alterations"
#include "inc_epicspells"
#include "nw_i0_generic"
#include "inc_ecl"
void SpawnIntDevourer(object oCaster, json jAberration, location lTarget, float fDuration, string sNewName = "")
{
MultisummonPreSummon();
object oAberration = JsonToObject(jAberration, lTarget);
int nHD = GetHitDice(oAberration);
SetLocalInt(oAberration, "PRC_CASTERLEVEL_OVERRIDE", nHD);
int nCasterLvl = GetTotalCastingLevel(oCaster);
if (!GetIsObjectValid(oAberration))
{
DoDebug("ss_ep_summonaber | SpawnIntDevourer() >> oAberration not passed to function.");
return;
}
string sSummon = "ep_sum_aberrat05";
//:: effect eSummon;
effect eSummon = EffectSummonCreature("", VFX_FNF_SUMMON_EPIC_UNDEAD, 0.0, 0, VFX_IMP_UNSUMMON, oAberration);
//:: Set faction to caster<65>s
ChangeFaction(oAberration, oCaster);
SetLocalObject(oAberration, "SUMMONER", oCaster);
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
if (!GetIsObjectValid(oAberration))
{
DoDebug("ss_ep_summonaber | SpawnIntDevourer() >> JsonToObject failed - could not create creature from edited template.");
return;
}
AugmentSummonedCreature(sSummon);
ApplyPseudonaturalEffects(oAberration);
SetObjectVisualTransform(oAberration, OBJECT_VISUAL_TRANSFORM_SCALE, 3.5f);
SetName(oAberration, sNewName);
}
void main()
{
if (!X2PreSpellCastCode()) return;
@@ -15,6 +92,22 @@ void main()
PRCSetSchool(SPELL_SCHOOL_CONJURATION);
object oCaster = OBJECT_SELF;
int nCasterLvl = GetTotalCastingLevel(oCaster);
int nBonusHD = nCasterLvl/2;
int iMinHD;
int iMaxHD;
string sNewName;
float fDuration = TurnsToSeconds(nCasterLvl);
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD);
effect eVis2 = EffectVisualEffect(VFX_IMP_UNSUMMON);
//:: Target location
location lTarget = PRCGetSpellTargetLocation();
if(GetCanCastSpell(oCaster, SPELL_EPIC_SUMABER))
{
string sSummon;
@@ -22,22 +115,308 @@ void main()
{
case 1:
case 2:
case 3: sSummon = "ep_summonaberat1"; break; //:: Summoned Drider Chief
case 3:
{ //:: Summoned Illithid
sSummon = "ep_sum_aberrat01";
sNewName = "Summoned Psuedonatural Illithid";
break;
}
case 4:
case 5:
case 6: sSummon = "ep_summonaberat2"; break; //:: Summoned Beholder
case 6:
{ //:: Summoned Drider
sSummon = "ep_sum_aberrat02";
sNewName = "Summoned Psuedonatural Drider";
break;
}
case 7:
case 8: sSummon = "ep_summonaberat3"; break; //:: Summoned Mind Flayer Darkener
case 9: sSummon = "ep_summonaberat4"; break; //:: Summoned Umber Hulk
case 10: sSummon = "ep_summonaberat5"; break; //:: Summoned Battle Devourer
case 8:
{ //:: Summoned Beholder
sSummon = "ep_sum_aberrat03";
sNewName = "Summoned Psuedonatural Beholder";
break;
}
case 9:
{ //:: Summoned Umber Hulk
sSummon = "ep_sum_aberrat04";
sNewName = "Summoned Psuedonatural Umberhulk";
break;
}
case 10:
{ //:: Summoned Battle Devourer
sSummon = "ep_sum_aberrat05";
sNewName = "Summoned Psuedonatural Battle Devourer";
break;
}
}
effect eSummon = ExtraordinaryEffect(EffectSummonCreature(sSummon, VFX_FNF_SUMMON_EPIC_UNDEAD, 1.0f));
//:: Summoned Illithid and Drider have class levels & only get a partial json treatment.
if(sSummon == "ep_sum_aberrat01" || sSummon == "ep_sum_aberrat02")
{
//:: Create the creature
object oAberration = MakePsuedonaturalCreatureFromTemplate(sSummon, lTarget);
effect eSummon = ExtraordinaryEffect(EffectSummonCreature("", VFX_FNF_SUMMON_EPIC_UNDEAD, 0.0, 0, VFX_IMP_UNSUMMON, oAberration));
//Apply the summon visual and summon the aberration.
MultisummonPreSummon();
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, PRCGetSpellTargetLocation(), HoursToSeconds(20));
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
int nOriginalHD = GetLocalInt(oAberration, "nOriginalHD");
int iTargetLvl = (nCasterLvl/2) + nOriginalHD;
int iMinHD = GetLocalInt(oAberration, "iMinHD");
int iMaxHD = GetLocalInt(oAberration, "iMaxHD");
int iClass2 = GetLocalInt(oAberration, "Class2");
int iClass2Package = GetLocalInt(oAberration, "Class2Package");
int iClass2Start = GetLocalInt(oAberration, "Class2Start");
int iMagicUse = GetLocalInt(oAberration, "X2_L_BEH_MAGIC");
string sAI = GetLocalString(oAberration, "X2_SPECIAL_COMBAT_AI_SCRIPT");
if (DEBUG) DoDebug("ss_ep_summonaber >> iMinHD = " +IntToString(iMinHD)+".");
if (DEBUG) DoDebug("ss_ep_summonaber >> iMaxHD = " +IntToString(iMaxHD)+".");
//check the ranges so we dont go above max, or below min.
if(iTargetLvl < iMinHD) iTargetLvl = iMinHD;
if(iTargetLvl > iMaxHD) iTargetLvl = iMaxHD;
if (DEBUG) DoDebug("ss_ep_summonaber >> iTargetLvl = " +IntToString(iTargetLvl)+".");
//:: Set faction to caster<65>s
ChangeFaction(oAberration, oCaster);
SetLocalObject(oAberration, "SUMMONER", oCaster);
SetLocalInt(oAberration, "PRC_CASTERLEVEL_OVERRIDE", iTargetLvl);
//:: Fires LevelUpSummon for scaling summons using LevelUpHenchman
LevelUpSummon(oAberration, iTargetLvl);
DelayCommand(0.5, AugmentSummonedCreature(sSummon));
//:: Apply effects
ApplyPseudonaturalEffects(oAberration);
return;
}
//:: Other Summons are advanced via direct json editing
//:: Load template
json jAberration = TemplateToJson(sSummon, RESTYPE_UTC);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> TemplateToJson failed <20> bad resref or resource missing.");
return;
}
//:: Read HD range from JSON template
int iMinHD = json_GetLocalIntFromVarTable(jAberration, "iMinHD");
int iMaxHD = json_GetLocalIntFromVarTable(jAberration, "iMaxHD");
//:: Original HD
int nOriginalHD = json_GetLocalIntFromVarTable(jAberration, "nOriginalHD");
int nOffsetHD = json_GetLocalIntFromVarTable(jAberration, "nOffsetHD");
if (DEBUG) DoDebug("ss_ep_summonaber >> nOffsetHD = " +IntToString(nOffsetHD)+".");
if (nOriginalHD < 1)
{
nOriginalHD = json_GetCreatureHD(jAberration);
}
if (DEBUG) DoDebug("ss_ep_summonaber >> nOriginalHD = " +IntToString(nOriginalHD)+".");
if (nOriginalHD <= 0)
{
DoDebug("ss_ep_summonaber >> json_GetCreatureHD failed <20> template missing HD data.");
return;
}
float fOriginalCR = json_GetChallengeRating(jAberration);
if (fOriginalCR <= 0.0)
{
DoDebug("ss_ep_summonaber >> json_GetChallengeRating failed <20> template missing CR data.");
return;
}
if (DEBUG) DoDebug("ss_ep_summonaber >> iMinHD = " +IntToString(iMinHD)+".");
if (DEBUG) DoDebug("ss_ep_summonaber >> iMaxHD = " +IntToString(iMaxHD)+".");
//:: Determine target total HD based on caster level bonuses and offset
int nTargetHD = nOriginalHD + nOffsetHD + (nCasterLvl / 2);
//:: Clamp to the template's defined range
if (nTargetHD < iMinHD) nTargetHD = iMinHD;
if (nTargetHD > iMaxHD) nTargetHD = iMaxHD;
//:: Calculate how many HD need to be added to reach that target
nBonusHD = nTargetHD - (nOriginalHD + nOffsetHD);
if (DEBUG)
{
DoDebug("ss_ep_summonaber >> nOffsetHD = " + IntToString(nOffsetHD));
DoDebug("ss_ep_summonaber >> nTargetHD = " + IntToString(nTargetHD));
DoDebug("ss_ep_summonaber >> nBonusHD (to add) = " + IntToString(nBonusHD));
}
if (DEBUG) DoDebug("ss_ep_summonaber >> nBonusHD = " +IntToString(nBonusHD)+".");
//:: Stat boost calc
int nStatBoost = GetStatBoostsFromHD(nOriginalHD, nBonusHD);
//:: Add Hit Dice
jAberration = json_AddHitDice(jAberration, nBonusHD);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_AddHitDice failed - JSON became invalid.");
return;
}
//:: Update feats
jAberration = json_AddFeatsFromCreatureVars(jAberration, nOriginalHD+nOffsetHD);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_AddFeatsFromCreatureVars failed <20> JSON became invalid.");
return;
}
//:: Update stats
jAberration = json_ApplyAbilityBoostFromHD(jAberration, nOriginalHD+nOffsetHD);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_ApplyAbilityBoostFromHD failed <20> JSON became invalid.");
return;
}
//:: Modify racial type for Psuedonatural template
jAberration = json_ModifyRacialType(jAberration, RACIAL_TYPE_OUTSIDER);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_ModifyRacialType failed <20> JSON became invalid.");
return;
}
//:: Add True Strike 1x / day for Psuedonatural template
jAberration = json_AddPsuedonaturalPowers(jAberration);
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_AddPsuedonaturalPowers failed <20> JSON became invalid.");
return;
}
//:: Update CR for Psuedonatural template
jAberration = json_UpdatePsuedonaturalCR(jAberration, FloatToInt(fOriginalCR), json_GetCreatureHD(jAberration));
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_UpdatePsuedonaturalCR failed <20> JSON became invalid.");
return;
}
//:: Beholder get 5 skills per HD
if(sSummon == "ep_sum_aberrat03")
{
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_SPOT, nTargetHD);
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_LORE, nTargetHD);
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_LISTEN, nTargetHD);
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_SEARCH, nTargetHD);
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_HIDE, nTargetHD);
}
else //:: Umber Hulk & Battle Devourer get 2 skills per HD
{
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_SPOT, nTargetHD);
jAberration = json_AdjustCreatureSkillByID(jAberration, SKILL_LISTEN, nTargetHD);
}
if (jAberration == JSON_NULL)
{
DoDebug("ss_ep_summonaber >> json_AdjustCreatureSkillByID failed <20> JSON became invalid.");
return;
}
//:: Beholder and Umber Hulk spawn singlely
if(sSummon == "ep_sum_aberrat03" || sSummon == "ep_sum_aberrat04")
{
MultisummonPreSummon();
object oAberration = JsonToObject(jAberration, lTarget);
effect eSummon = ExtraordinaryEffect(EffectSummonCreature("", VFX_FNF_SUMMON_EPIC_UNDEAD, 0.0, 0, VFX_IMP_UNSUMMON, oAberration));
//:: Apply the summon visual and summon the aberration.
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, fDuration);
if (!GetIsObjectValid(oAberration))
{
DoDebug("ss_ep_summonaber >> JsonToObject failed - could not create creature from edited template.");
return;
}
ApplyPseudonaturalEffects(oAberration);
}
//:: Summoned Battle Devourer spawns multiple creatures
else
{
if(GetPRCSwitch(PRC_MULTISUMMON))
{
//:: number of summons: 1d2+1
int nCount = d2() + 1;
int i = 0;
while(i < nCount)
{
SpawnIntDevourer(oCaster, jAberration, lTarget, fDuration, sNewName);
i = i + 1;
}
return;
}
else
{
//:: number of summons: 1d2+1
int nCount = d2() + 1;
int i = 0;
while(i < nCount)
{
object oAberration = JsonToObject(jAberration, lTarget);
//:: Visual
DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lTarget));
//:: Augment Summoning
DelayCommand(0.5, AugmentSummonedCreature(sSummon));
//:: Set HP
//SetCurrentHitPoints(oAberration, GetMaxPossibleHP(oAberration));
//:: Associate with caster
SetLocalNPC(oCaster, oAberration, ASSOCIATE_TYPE_SUMMONED);
SetAssociateState(NW_ASC_HAVE_MASTER, TRUE, oAberration);
SetAssociateState(NW_ASC_DISTANCE_2_METERS);
SetAssociateState(NW_ASC_DISTANCE_4_METERS, FALSE);
SetAssociateState(NW_ASC_DISTANCE_6_METERS, FALSE);
//:: Temporarily bump henchman limit so AddHenchman works
SetMaxHenchmen(GetMaxHenchmen() + nCount);
AddHenchman(oCaster, oAberration);
SetMaxHenchmen(GetMaxHenchmen() - nCount);
//:: Start combat AI
AssignCommand(oAberration, DetermineCombatRound());
//:: Schedule destruction + end-visual
DestroyObject(oAberration, fDuration);
DelayCommand(fDuration, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, lTarget));
SetObjectVisualTransform(oAberration, OBJECT_VISUAL_TRANSFORM_SCALE, 3.5f);
//:: Set faction to caster<65>s
ChangeFaction(oAberration, oCaster);
SetLocalObject(oAberration, "SUMMONER", oCaster);
SetLocalInt(oAberration, "PRC_CASTERLEVEL_OVERRIDE", nOriginalHD + nBonusHD);
SetLocalInt(oAberration, "MySummonerCL", nBonusHD);
ApplyPseudonaturalEffects(oAberration);
SetName(oAberration, sNewName);
i = i + 1;
}
}
}
PRCSetSchool();
}
}

View File

@@ -42,6 +42,10 @@ void SpawnTwinFiend(object oPC, json jDevil, location lTarget, float fDuration)
object oFiend = JsonToObject(jDevil, lTarget);
int nHD = GetHitDice(oFiend);
SetLocalInt(oFiend, "PRC_CASTERLEVEL_OVERRIDE", nHD);
int nCasterLvl = GetTotalCastingLevel(oPC);
if (!GetIsObjectValid(oFiend))
@@ -103,15 +107,14 @@ void main()
{
object oPC = OBJECT_SELF;
DeleteLocalInt(oPC, "X2_L_LAST_SPELLSCHOOL_VAR");
SetLocalInt(oPC, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
if (!X2PreSpellCastCode())
{
DeleteLocalInt(oPC, "X2_L_LAST_SPELLSCHOOL_VAR");
return;
}
SetLocalInt(oPC, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
// Target location
location lTarget = PRCGetSpellTargetLocation();
@@ -176,7 +179,26 @@ void main()
return;
}
// Size increase
//:: Pit Fiend w 20 INT gets 13 (8+5) skill points per HD
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_SPOT, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_LORE, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_LISTEN, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_SEARCH, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_HIDE, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_MOVE_SILENTLY, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_CONCENTRATION, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_BLUFF, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_CLIMB, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_SPELLCRAFT, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_JUMP, nCasterLvl/2);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_TUMBLE, nCasterLvl/4);
jDevil = json_AdjustCreatureSkillByID(jDevil, SKILL_USE_MAGIC_DEVICE, nCasterLvl/4);
{
SendMessageToPC(oPC, "ss_ep_twinfiend >> json_AdjustCreatureSkillByID failed <20> JSON became invalid.");
return;
}
//:: Size increase
if (nCasterLvl > 14)
{
jDevil = json_AdjustCreatureSize(jDevil, 1);
@@ -310,6 +332,7 @@ void main()
DelayCommand(fDuration, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, GetLocation(oFiend)));
DestroyObject(oFiend2, fDuration);
DelayCommand(fDuration, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis2, GetLocation(oFiend2)));
}
}

View File

@@ -7,8 +7,11 @@
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Levels up an NPC according to variables set on NPC.
void LevelUpSummon(object oSummon, int iTargetLvl);
// Get the master of oAssociate.
object GetMasterNPC(object oAssociate=OBJECT_SELF);
object GetMasterNPC(object oAssociate0 = OBJECT_SELF);
// Returns the associate type of the specified creature.
// - Returns ASSOCIATE_TYPE_NONE if the creature is not the associate of anyone.
@@ -75,7 +78,6 @@ void DestroySummon(object oSummon)
DestroyObject(oSummon);
}
object CreateLocalNPC(object oMaster,int nAssociateType,string sTemplate,location loc,int Nth=1,string sTag="")
{
object oSummon=CreateObject(OBJECT_TYPE_CREATURE,sTemplate,loc,FALSE,sTag);
@@ -122,6 +124,7 @@ object CreateLocalNextNPC(object oMaster,int nAssociateType,string sTemplate,loc
return oSummon;
}
object GetMasterNPC(object oAssociate=OBJECT_SELF)
{
object oMaster = GetLocalObject(oAssociate, "oMaster");
@@ -220,4 +223,173 @@ int GetAssociateHealMasterNPC()
return FALSE;
}
/**
* @brief Levels up a summoned creature based on its master's total casting level,
* while respecting configured HD limits and multiclass transition rules.
* Should only be called on the NPC onSpawn event.
*
* This function:
* - Retrieves the master<65>s total casting level and clamps it to the creature<72>s
* minimum and maximum HD (iMinHD, iMaxHD).
* - Repeatedly calls LevelUpHenchman() until the creature reaches that level,
* switching classes when the creature's stored "ClassXStart" thresholds are met.
*
* Local variables recognized on the summoned creature:
*
* | Variable Name | Purpose |
* |-----------------|-------------------------------------------------------------|
* | iMinHD | Minimum HD allowed |
* | iMaxHD | Maximum HD allowed |
* | Class2Start | Level to begin second class progression |
* | Class2 | Class type for second progression |
* | Class2Package | Package for second progression |
* | Class3Start | Level to begin third class progression |
* | Class3 | Class type for third progression |
* | Class3Package | Package for third progression |
* | Class4Start | Level to begin fourth class progression |
* | Class4 | Class type for fourth progression |
* | Class4Package | Package for fourth progression |
*
* Behavior notes:
* - Leveling continues until the creature reaches the master<65>s effective
* casting level (bounded by iMinHD/iMaxHD).
* - If LevelUpHenchman() returns 0, the creature shouts a failure message.
* - CLASS_TYPE_INVALID causes the creature to level in its current class.
*
* @param oCreature The summoned creature being leveled. Defaults to OBJECT_SELF.
*
* @see LevelUpHenchman
* @see GetLocalInt
* @see GetHitDice
*/
void LevelUpSummon(object oSummon, int iTargetLvl)
{
int nCurrentHD = GetHitDice(oSummon);
int iNewHD = nCurrentHD;
// Read multiclassing info from locals
int iClass2Start = GetLocalInt(oSummon, "Class2Start");
int iClass2 = GetLocalInt(oSummon, "Class2");
int iClass2Package = GetLocalInt(oSummon, "Class2Package");
int iClass3Start = GetLocalInt(oSummon, "Class3Start");
int iClass3 = GetLocalInt(oSummon, "Class3");
int iClass3Package = GetLocalInt(oSummon, "Class3Package");
int iClass4Start = GetLocalInt(oSummon, "Class4Start");
int iClass4 = GetLocalInt(oSummon, "Class4");
int iClass4Package = GetLocalInt(oSummon, "Class4Package");
int iClass; // current class to level
int iPackage; // package to use
// Main leveling loop
while (nCurrentHD < iTargetLvl && nCurrentHD > 0)
{
// Determine which class and package to use
if (iClass4Start != 0 && nCurrentHD >= iClass4Start)
{
iClass = iClass4;
iPackage = iClass4Package;
}
else if (iClass3Start != 0 && nCurrentHD >= iClass3Start)
{
iClass = iClass3;
iPackage = iClass3Package;
}
else if (iClass2Start != 0 && nCurrentHD >= iClass2Start)
{
iClass = iClass2;
iPackage = iClass2Package;
}
else
{
// Base class (first class in the sheet)
iClass = CLASS_TYPE_INVALID; // keeps current
iPackage = PACKAGE_INVALID;
}
// Level up one HD
iNewHD = LevelUpHenchman(oSummon, iClass, TRUE, iPackage);
if (iNewHD == 0)
{
SpeakString(GetName(oSummon) + " failed to level properly!", TALKVOLUME_SHOUT);
break;
}
nCurrentHD = iNewHD;
}
// Force the creature to rest to memorize spells
// PRCForceRest(oSummon);
}
/* void LevelUpSummon(object oSummon, int iTargetLvl)
{
//get the default hit dice of the summon
int nDefaultHD = GetHitDice(oSummon);
if (DEBUG) DoDebug("inc_npc >> LevelUpSummon: nDefaultHD = " +IntToString(nDefaultHD)+".");
if (DEBUG) DoDebug("inc_npc >> LevelUpSummon: iTargetLvl = " +IntToString(iTargetLvl)+".");
//get the multiclassing variables to see if we need to change classes from its base class
int iClass2Start = GetLocalInt(oSummon, "Class2Start");
int iClass2 = GetLocalInt(oSummon, "Class2");
int iClass2Package = GetLocalInt(oSummon, "Class2Package");
int iClass3Start = GetLocalInt(oSummon, "Class3Start");
int iClass3 = GetLocalInt(oSummon, "Class3");
int iClass3Package = GetLocalInt(oSummon, "Class3Package");
int iClass4Start = GetLocalInt(oSummon, "Class4Start");
int iClass4 = GetLocalInt(oSummon, "Class4");
int iClass4Package = GetLocalInt(oSummon, "Class4Package");
//check for zero cause thats an error
//if creatures are not leveling then best bet is they are not legal creatures
while( (nDefaultHD < iTargetLvl) && (nDefaultHD > 0) )
{
//check the multiclassing numbers to change classes
if( (iClass4Start != 0) && (nDefaultHD >= iClass4Start) )
{
//level up using the new class and Packageage
nDefaultHD = LevelUpHenchman(oSummon, iClass4 ,TRUE, iClass4Package);
if(nDefaultHD == 0)
SpeakString(GetName(oSummon) + " Failed on fourth class", TALKVOLUME_SHOUT);
}
else if( (iClass3Start != 0) && (nDefaultHD >= iClass3Start) )
{
//level up using the new class and Packageage
nDefaultHD = LevelUpHenchman(oSummon, iClass3 ,TRUE, iClass3Package);
if(nDefaultHD == 0)
SpeakString(GetName(oSummon) + " Failed on third class", TALKVOLUME_SHOUT);
}
else if( (iClass2Start != 0) && (nDefaultHD >= iClass2Start) )
{
//level up using the new class and Packageage
nDefaultHD = LevelUpHenchman(oSummon, iClass2 ,TRUE, iClass2Package);
if(nDefaultHD == 0)
SpeakString(GetName(oSummon) + " Failed on second class", TALKVOLUME_SHOUT);
}
else
{
//just level up using the class it already has
nDefaultHD = LevelUpHenchman(oSummon, CLASS_TYPE_INVALID ,TRUE);
if(nDefaultHD == 0)
SpeakString(GetName(oSummon) + " Failed to level properly", TALKVOLUME_SHOUT);
}
}
}
*/
//:: void main() {}

View File

@@ -269,6 +269,8 @@ object GetObjectToApplyNewEffect(string sTag, object oPC, int nStripEffects = TR
SetCreatureAppearanceType(oWP, APPEARANCE_TYPE_INVISIBLE_HUMAN_MALE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY), oWP);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectCutsceneGhost(), oWP);
AssignCommand(oWP, ActionUseSkill(SKILL_HIDE, oWP));
}
//remove previous effects
if(nStripEffects)

View File

@@ -20,7 +20,13 @@
#include "inc_debug"
#include "prc_inc_racial"
#include "prc_inc_nwscript"
#include "prc_inc_spells"
#include "prc_inc_util"
#include "prc_inc_fork"
#include "prc_inc_natweap"
//:: Get a random General feat.
void ApplyParagonBonusFeat(object oCreature, int iFeat);
//::---------------------------------------------|
//:: Helper functions |
@@ -131,6 +137,440 @@ int GetAbilityModFromValue(int nAbilityValue)
return nMod;
}
//:: Get a random General feat.
void PickParagonBonusFeat(object oCreature)
{
//:: Paragon creatures get a +15 to all ability scores,
//:: so can always meet feat pre-reqs.
//:: Detect spellcasting classes (FOR FUTURE USE)
int i;
for (i = 1; i <= 8; i++)
{
if (GetIsArcaneClass(GetClassByPosition(i, oCreature)))
{
SetLocalInt(oCreature, "ParagonArcaneCaster", 0);
}
if (GetIsDivineClass(GetClassByPosition(i, oCreature)))
{
SetLocalInt(oCreature, "ParagonDivineCaster", 0);
}
}
switch (Random(18))
{
//:: Dodge -> Mobility -> Spring Attack
case 0:
{
int iDodge = GetHasFeat(FEAT_DODGE, oCreature);
int iMobility = GetHasFeat(FEAT_MOBILITY, oCreature);
int iSpringAttack = GetHasFeat(FEAT_SPRING_ATTACK, oCreature);
//:: Grant only the first missing feat in the chain
if (iDodge == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_DODGE);
}
else if (iMobility == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_MOBILITY);
}
else if (iSpringAttack == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_SPRING_ATTACK);
}
}
break;
//:: Power Attack -> Cleave -> Imp Power Attack -> Great Cleave
case 1:
{
int iPower = GetHasFeat(FEAT_POWER_ATTACK, oCreature);
int iCleave = GetHasFeat(FEAT_CLEAVE, oCreature);
int iImpPower = GetHasFeat(FEAT_IMPROVED_POWER_ATTACK, oCreature);
int iGrCleave = GetHasFeat(FEAT_GREAT_CLEAVE, oCreature);
//:: Grant only the first missing feat in the chain
if (iPower == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_POWER_ATTACK);
}
else if (iCleave == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_CLEAVE);
}
else if (iImpPower == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_POWER_ATTACK);
}
else if (iGrCleave == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_GREAT_CLEAVE);
}
}
break;
//:: Expertise -> Imp Expertise -> Whirlwind Attack -> Imp Whirlwind Attack
case 2:
{
int iEx = GetHasFeat(FEAT_EXPERTISE, oCreature);
int iImpEx = GetHasFeat(FEAT_IMPROVED_EXPERTISE, oCreature);
int iWhirl = GetHasFeat(FEAT_WHIRLWIND_ATTACK, oCreature);
int iImpWhirl = GetHasFeat(FEAT_IMPROVED_WHIRLWIND, oCreature);
//:: Grant only the first missing feat in the chain
if (iEx == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_EXPERTISE);
}
else if (iImpEx == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_EXPERTISE);
}
else if (iWhirl == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_WHIRLWIND_ATTACK);
}
else if (iImpWhirl == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_WHIRLWIND);
}
}
break;
//:: Disarm -> Expertise -> Improved Disarm -> Imp Expertise
case 3:
{
int iDisarm = GetHasFeat(FEAT_DISARM, oCreature);
int iEx = GetHasFeat(FEAT_EXPERTISE, oCreature);
int iImpDisarm = GetHasFeat(FEAT_IMPROVED_DISARM, oCreature);
int iImpEx = GetHasFeat(FEAT_IMPROVED_EXPERTISE, oCreature);
//:: Grant only the first missing feat in the chain
if (iDisarm == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_DISARM);
}
else if (iEx == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_EXPERTISE);
}
else if (iImpDisarm == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_DISARM);
}
else if (iImpEx == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_EXPERTISE);
}
}
break;
//:: Toughness
case 4:
{
ApplyParagonBonusFeat(oCreature, FEAT_TOUGHNESS);
}
break;
//:: Great Fortitude
case 5:
{
ApplyParagonBonusFeat(oCreature, FEAT_GREAT_FORTITUDE);
}
break;
//:: Lightining Reflexes
case 6:
{
ApplyParagonBonusFeat(oCreature, FEAT_LIGHTNING_REFLEXES);
}
break;
//:: Iron Will -> Unnatural Will
case 7:
{
int iIronWill = GetHasFeat(FEAT_IRON_WILL, oCreature);
int iUnnaturalWill = GetHasFeat(FEAT_UNNATURAL_WILL, oCreature);
//:: Grant only the first missing feat in the chain
if (iIronWill == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_IRON_WILL);
}
else if (iUnnaturalWill == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_UNNATURAL_WILL);
}
}
break;
//:: Blind-Fight
case 8:
{
ApplyParagonBonusFeat(oCreature, FEAT_BLIND_FIGHT);
}
break;
//:: Improved Initiative
case 9:
{
ApplyParagonBonusFeat(oCreature, FEAT_IMPROVED_INITIATIVE);
}
break;
//:: Alertness
case 10:
{
ApplyParagonBonusFeat(oCreature, FEAT_ALERTNESS);
}
break;
//:: Blooded
case 11:
{
ApplyParagonBonusFeat(oCreature, FEAT_BLOODED);
}
break;
//:: Side-step Charge
case 12:
{
ApplyParagonBonusFeat(oCreature, FEAT_SIDESTEP_CHARGE);
}
break;
//:: Thug
case 13:
{
ApplyParagonBonusFeat(oCreature, FEAT_THUG);
}
break;
//:: Dive for Cover
case 14:
{
ApplyParagonBonusFeat(oCreature, FEAT_DIVE_FOR_COVER);
}
break;
//:: Endurance -> Strong Stomach
case 15:
{
int iEndurance = GetHasFeat(FEAT_ENDURANCE, oCreature);
int iStrStomach = GetHasFeat(FEAT_STRONG_STOMACH, oCreature);
//:: Grant only the first missing feat in the chain
if (iEndurance == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_ENDURANCE);
}
else if (iStrStomach == 0)
{
ApplyParagonBonusFeat(oCreature, FEAT_STRONG_STOMACH);
}
}
break;
//:: Resist Disease
case 16:
{
ApplyParagonBonusFeat(oCreature, FEAT_RESIST_DISEASE);
}
break;
//:: Resist Poison
case 17:
{
ApplyParagonBonusFeat(oCreature, FEAT_RESIST_POISON);
}
break;
}
}
//:: Check & apply the feat using EffectBonusFeat if it
//:: doesn't exist on the creature already
void ApplyParagonBonusFeat(object oCreature, int iFeat)
{
// If the creature does not already have the feat, apply it
if (!GetHasFeat(iFeat, oCreature))
{
effect eFeat = EffectBonusFeat(iFeat);
effect eLink = UnyieldingEffect(eFeat);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oCreature);
}
else
{
DelayCommand(0.0f, PickParagonBonusFeat(oCreature));
}
}
//:: Apply Paragon effects to a non-PC creature
void ApplyParagonEffects(object oCreature, int nBaseHD, int nBaseCR)
{
//:: Declare major variables
int nNewCR;
effect eParagon;
//:: Set maximum hit points for each HD
int nParagonHP = (GetMaxPossibleHP(oCreature) + (nBaseHD * GetAbilityModifier(ABILITY_CONSTITUTION, oCreature)));
SetCurrentHitPoints(oCreature, nParagonHP);
//:: Tripling the speed for all movement types
eParagon = EffectLinkEffects(eParagon, EffectMovementSpeedIncrease(300));
//:: +25 luck bonus on all attack rolls
eParagon = EffectLinkEffects(eParagon, EffectAttackIncrease(25));
//:: +20 luck bonus on damage rolls for melee and thrown ranged attacks
eParagon = EffectLinkEffects(eParagon, EffectDamageIncrease(20));
//:: AC Bonuses: +12 insight, +12 luck
eParagon = EffectLinkEffects(eParagon, EffectACIncrease(12, AC_DODGE_BONUS));
eParagon = EffectLinkEffects(eParagon, EffectACIncrease(12, AC_DEFLECTION_BONUS));
//:: Boost caster & SLA level by 15
SetLocalInt(oCreature, PRC_CASTERLEVEL_ADJUSTMENT, 15);
//:: Fire and cold resistance 10, or keep the higher existing resistance if applicable
eParagon = EffectLinkEffects(eParagon, EffectDamageResistance(DAMAGE_TYPE_FIRE, 10));
eParagon = EffectLinkEffects(eParagon, EffectDamageResistance(DAMAGE_TYPE_COLD, 10));
//:: Damage Reduction 20/epic or retain existing DR if higher
eParagon = EffectLinkEffects(eParagon, EffectDamageReduction(20, DAMAGE_POWER_ENERGY));
//:: Spell Resistance equal to CR +10, or retain existing SR if higher
int iExSR = GetSpellResistance(oCreature);
int nSpellResistance;
if (iExSR < nBaseCR + 10)
{
nSpellResistance = nBaseCR + 10;
}
else
{
nSpellResistance = 0;
}
eParagon = EffectLinkEffects(eParagon, EffectSpellResistanceIncrease(nSpellResistance));
//:: Fast Healing 20
eParagon = EffectLinkEffects(eParagon, EffectRegenerate(20, 6.0f));
//:: Saving Throws: +10 insight bonus on all saving throws
eParagon = EffectLinkEffects(eParagon, EffectSavingThrowIncrease(SAVING_THROW_ALL, 10));
//:: Skills: +10 competence bonus to all skill checks
int nSkillID = 0;
while (TRUE)
{
//:: Get & check skill
string sSkillLabel = Get2DACache("skills", "Label", nSkillID);
//:: Break when out of skills
if (sSkillLabel == "")
break;
//:: Apply the skill increase effect for the current skill
eParagon = EffectLinkEffects(eParagon, EffectSkillIncrease(nSkillID, 10));
//:: Move to the next skill ID
nSkillID++;
}
//:: Two free general feats.
PickParagonBonusFeat(oCreature);
PickParagonBonusFeat(oCreature);
eParagon = UnyieldingEffect(eParagon);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eParagon, oCreature);
}
void ReallyEquipItemInSlot(object oNPC, object oItem, int nSlot)
{
if (GetItemInSlot(nSlot) != oItem)
{
//ClearAllActions();
AssignCommand(oNPC, ActionEquipItem(oItem, nSlot));
DelayCommand(0.5, ReallyEquipItemInSlot(oNPC, oItem, nSlot));
}
}
// Get the size of a JSON array
int GetJsonArraySize(json jArray)
{
int iSize = 0;
while (JsonArrayGet(jArray, iSize) != JsonNull())
{
iSize++;
}
return iSize;
}
int CheckForWeapon(object oCreature)
{
if (GetIsWeapon(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCreature)) == 1 || GetIsWeapon(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCreature)) == 1)
{
// oCreature has a weapon in at least one hand
return TRUE;
}
else
{
// oCreature doesn't have a weapon in either hand
return FALSE;
}
}
//:: Adds Psuedonatural resistances & DR.
void ApplyPseudonaturalEffects(object oCreature)
{
if(!GetIsObjectValid(oCreature)) return;
int nHD = GetHitDice(oCreature);
if(DEBUG) DoDebug("prc_inc_json >> ApplyPseudonaturalEffects: nHD is: "+IntToString(nHD)+".");
// -------------------------
// Spell Resistance
// SR = 10 + HD (max 25)
// -------------------------
int nSR = 10 + nHD;
if(nSR > 25) nSR = 25;
effect eSR = EffectSpellResistanceIncrease(nSR);
eSR = TagEffect(eSR, "PSEUDO_SR");
eSR = EffectLinkEffects(eSR, UnyieldingEffect(eSR));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSR, oCreature);
// -------------------------
// Acid/Electricity Resistance
// Reference Table:
// HD 1<>3 : Resist 5
// HD 4<>7 : Resist 5
// HD 8<>11 : Resist 10
// HD >=12 : Resist 15
// -------------------------
int nResist;
if(nHD <= 7) nResist = 5;
else if(nHD <=11) nResist = 10;
else nResist = 15;
effect eResAcid = EffectDamageResistance(DAMAGE_TYPE_ACID, nResist);
eResAcid = TagEffect(eResAcid, "PSEUDO_RES_ACID");
eResAcid = EffectLinkEffects(eResAcid, UnyieldingEffect(eResAcid));
effect eResElec = EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, nResist);
eResElec = TagEffect(eResElec, "PSEUDO_RES_ELEC");
eResElec = EffectLinkEffects(eResElec, UnyieldingEffect(eResElec));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eResAcid, oCreature);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eResElec, oCreature);
// -------------------------
// Damage Reduction
// Reference Table:
// HD 1<>3 : none
// HD 4<>7 : DR 5 / magic
// HD 8<>11 : DR 5 / magic
// HD >=12 : DR 10 / magic
// -------------------------
int nDR;
if(nHD <= 3) { nDR = 0; }
else if(nHD <= 11) { nDR = 5; }
else { nDR = 10; }
effect eDR = EffectDamageReduction(nDR, DAMAGE_POWER_PLUS_ONE, 0, FALSE);
eDR = TagEffect(eDR, "PSEUDO_DR_MAGIC");
eDR = EffectLinkEffects(eDR, UnyieldingEffect(eDR));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDR, oCreature);
}
//::---------------------------------------------|
//:: JSON functions |
@@ -150,6 +590,23 @@ int json_GetCONValue(json jCreature)
return nCon;
}
//:: Returns the Challenge Rating from a GFF creature UTC
float json_GetChallengeRating(json jCreature)
{
float fCR = 0.25; // default if missing
if (GffGetFieldExists(jCreature, "ChallengeRating"))
{
json jCR = GffGetFloat(jCreature, "ChallengeRating");
if (jCR != JsonNull())
{
fCR = JsonGetFloat(jCR);
}
}
return fCR;
}
//:: Returns the integer value of a VarTable entry named sVarName, or 0 if not found.
int json_GetLocalIntFromVarTable(json jCreature, string sVarName)
{
@@ -190,6 +647,46 @@ int json_GetLocalIntFromVarTable(json jCreature, string sVarName)
return 0;
}
//:: Returns the string value of a VarTable entry named sVarName, or "" if not found.
string json_GetLocalStringFromVarTable(json jCreature, string sVarName)
{
json jVarTable = GffGetList(jCreature, "VarTable");
if (jVarTable == JsonNull())
return "";
int nCount = JsonGetLength(jVarTable);
int i;
for (i = 0; i < nCount; i++)
{
json jEntry = JsonArrayGet(jVarTable, i);
if (jEntry == JsonNull()) continue;
// Get the Name field using GFF functions
json jName = GffGetString(jEntry, "Name");
if (jName == JsonNull()) continue;
string sName = JsonGetString(jName);
if (sName == sVarName)
{
// Get the Type field to verify it's a string
json jType = GffGetDword(jEntry, "Type");
if (jType != JsonNull())
{
int nType = JsonGetInt(jType);
if (nType == 3) // Type 3 = string
{
// Get the Value field using GFF functions
json jValue = GffGetString(jEntry, "Value");
if (jValue == JsonNull()) return "";
return JsonGetString(jValue);
}
}
}
}
return "";
}
//:: Returns the total Hit Dice from a JSON'd creature GFF.
int json_GetCreatureHD(json jCreature)
{
@@ -219,7 +716,6 @@ int json_GetCreatureHD(json jCreature)
return nHD;
}
json json_RecalcMaxHP(json jCreature, int iHitDieValue)
{
int iHD = json_GetCreatureHD(jCreature);
@@ -273,9 +769,7 @@ json json_RecalcMaxHP(json jCreature, int iHitDieValue)
return jCreature;
}
//:: Reads ABILITY_TO_INCREASE from creature's VarTable and applies stat boosts based on increased HD
json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD)
{
if (jCreature == JsonNull())
@@ -314,6 +808,8 @@ json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD)
}
}
if(DEBUG) DoDebug("prc_inc_json >> json_ApplyAbilityBoostFromHD: nCurrentTotalHD = "+IntToString(nCurrentTotalHD)+".");
if (nCurrentTotalHD <= 0)
{
DoDebug("json_ApplyAbilityBoostFromHD: No valid Hit Dice found");
@@ -714,7 +1210,6 @@ json json_AddHitDice(json jCreature, int nAmount)
// Grab the first class entry
json jFirstClass = JsonArrayGet(jClasses, 0);
// Only touch ClassLevel; do NOT modify Class type
json jCurrentLevel = GffGetShort(jFirstClass, "ClassLevel");
int nCurrentLevel = JsonGetInt(jCurrentLevel);
int nNewLevel = nCurrentLevel + nAmount;
@@ -875,16 +1370,16 @@ json json_AdjustCreatureSize(json jCreature, int nSizeDelta, int nIncorporeal =
}
//:: Changes jCreature's creature type.
json JsonModifyRacialType(json jCreature, int nNewRacialType)
json json_ModifyRacialType(json jCreature, int nNewRacialType)
{
if(DEBUG)DoDebug("prc_inc_function >> JsonModifyRacialType: Entering function");
if(DEBUG)DoDebug("prc_inc_json >> json_ModifyRacialType: Entering function");
// Retrieve the RacialType field
json jRacialTypeField = JsonObjectGet(jCreature, "Race");
if (JsonGetType(jRacialTypeField) == JSON_TYPE_NULL)
{
DoDebug("prc_inc_function >> JsonModifyRacialType: JsonGetType error 1: " + JsonGetError(jRacialTypeField));
DoDebug("prc_inc_json >> json_ModifyRacialType: JsonGetType error 1: " + JsonGetError(jRacialTypeField));
//SpeakString("JsonGetType error 1: " + JsonGetError(jRacialTypeField));
return JsonNull();
}
@@ -894,7 +1389,7 @@ json JsonModifyRacialType(json jCreature, int nNewRacialType)
if (JsonGetType(jRacialTypeValue) != JSON_TYPE_INTEGER)
{
DoDebug("prc_inc_function >> JsonModifyRacialType: JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
DoDebug("prc_inc_json >> json_ModifyRacialType: JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
//SpeakString("JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
return JsonNull();
}
@@ -905,6 +1400,206 @@ json JsonModifyRacialType(json jCreature, int nNewRacialType)
return jCreature;
}
//:: Adds Paragon SLA's to jCreature.
//::
json json_AddParagonPowers(json jCreature)
{
// Get the existing SpecAbilityList (if it exists)
json jSpecAbilityList = GffGetList(jCreature, "SpecAbilityList");
// Create the SpecAbilityList if it doesn't exist
if (jSpecAbilityList == JsonNull())
{
jSpecAbilityList = JsonArray();
}
//:: Greater Dispelling 3x / Day
int i;
for (i = 0; i < 3; i++)
{
json jSpecAbility = JsonObject();
jSpecAbility = GffAddWord(jSpecAbility, "Spell", 67);
jSpecAbility = GffAddByte(jSpecAbility, "SpellCasterLevel", 15);
jSpecAbility = GffAddByte(jSpecAbility, "SpellFlags", 1);
// Manually add to the array
jSpecAbilityList = JsonArrayInsert(jSpecAbilityList, jSpecAbility);
}
//:: Add Haste 3x / Day
for (i = 0; i < 3; i++)
{
json jSpecAbility = JsonObject();
jSpecAbility = GffAddWord(jSpecAbility, "Spell", 78);
jSpecAbility = GffAddByte(jSpecAbility, "SpellCasterLevel", 15);
jSpecAbility = GffAddByte(jSpecAbility, "SpellFlags", 1);
// Manually add to the array
jSpecAbilityList = JsonArrayInsert(jSpecAbilityList, jSpecAbility);
}
//:: See Invisiblity 3x / Day
for (i = 0; i < 3; i++)
{
json jSpecAbility = JsonObject();
jSpecAbility = GffAddWord(jSpecAbility, "Spell", 157);
jSpecAbility = GffAddByte(jSpecAbility, "SpellCasterLevel", 15);
jSpecAbility = GffAddByte(jSpecAbility, "SpellFlags", 1);
// Manually add to the array
jSpecAbilityList = JsonArrayInsert(jSpecAbilityList, jSpecAbility);
}
//:: Add the list to the creature
jCreature = GffAddList(jCreature, "SpecAbilityList", jSpecAbilityList);
return jCreature;
}
//:: Directly modifies jCreature's Challenge Rating.
//:: This is useful for most XP calculations.
//::
json json_UpdateParagonCR(json jCreature, int nBaseCR, int nBaseHD)
{
int nNewCR;
//:: Calculate additional CR by HD
if(nBaseHD <= 6)
{
nNewCR = nBaseCR + 18;
}
else if(nBaseHD <= 16)
{
nNewCR = nBaseCR + 15;
}
else
{nNewCR = nBaseCR + 12;}
//:: Modify Challenge Rating
jCreature = GffReplaceFloat(jCreature, "ChallengeRating"/* /value" */, IntToFloat(nNewCR));
return jCreature;
}
//:: Adds Psuedonatural SLA's to jCreature.
//::
json json_AddPsuedonaturalPowers(json jCreature)
{
// Get the existing SpecAbilityList (if it exists)
json jSpecAbilityList = GffGetList(jCreature, "SpecAbilityList");
// Create the SpecAbilityList if it doesn't exist
if (jSpecAbilityList == JsonNull())
{
jSpecAbilityList = JsonArray();
}
//:: True Strike 1x / Day
int i;
for (i = 0; i < 1; i++)
{
json jSpecAbility = JsonObject();
jSpecAbility = GffAddWord(jSpecAbility, "Spell", 415);
jSpecAbility = GffAddByte(jSpecAbility, "SpellCasterLevel", 15);
jSpecAbility = GffAddByte(jSpecAbility, "SpellFlags", 1);
// Manually add to the array
jSpecAbilityList = JsonArrayInsert(jSpecAbilityList, jSpecAbility);
}
//:: Add the list to the creature
jCreature = GffAddList(jCreature, "SpecAbilityList", jSpecAbilityList);
return jCreature;
}
//:: Directly modifies jCreature's Challenge Rating.
//:: This is useful for most XP calculations.
//::
json json_UpdatePsuedonaturalCR(json jCreature, int nBaseCR, int nBaseHD)
{
int nNewCR;
//:: Calculate additional CR by HD
if (nBaseHD >= 4 && nBaseHD <= 11)
{
nNewCR = nBaseCR + 1;
}
else if (nBaseHD >= 12)
{
nNewCR = nBaseCR + 2;
}
//:: Modify Challenge Rating
jCreature = GffReplaceFloat(jCreature, "ChallengeRating"/* /value" */, IntToFloat(nNewCR));
return jCreature;
}
//:: Spawns a Psuedonatural creature from a template
object MakePsuedonaturalCreatureFromTemplate(string sResref, location lSpawnLoc)
{
json jPsuedo = TemplateToJson(sResref, RESTYPE_UTC);
if (jPsuedo == JSON_NULL)
{
DoDebug("prc_inc_json >> SpawnPsuedonaturalCreatureFromTemplate: TemplateToJson failed <20> bad resref or resource missing.");
return OBJECT_INVALID;
}
//:: Get current HD
int nCurrentHD = json_GetCreatureHD(jPsuedo);
if (nCurrentHD <= 0)
{
DoDebug("make_psuedonat >> MakePsuedonaturalCreatureFromTemplate failed <20> template missing HD data.");
return OBJECT_INVALID;
}
//:: Get current CR
int nBaseCR = 1;
nBaseCR = json_GetCreatureHD(jPsuedo);
if (nBaseCR <= 0)
{
DoDebug("make_psuedonat >> MakePsuedonaturalCreatureFromTemplate failed <20> template missing CR data.");
return OBJECT_INVALID;
}
//:: Get local vars to transfer over.
int iMinHD = json_GetLocalIntFromVarTable(jPsuedo, "iMinHD");
int iMaxHD = json_GetLocalIntFromVarTable(jPsuedo, "iMaxHD");
int nOriginalHD = json_GetLocalIntFromVarTable(jPsuedo, "nOriginalHD");
int iClass2 = json_GetLocalIntFromVarTable(jPsuedo, "Class2");
int iClass2Package = json_GetLocalIntFromVarTable(jPsuedo, "Class2Package");
int iClass2Start = json_GetLocalIntFromVarTable(jPsuedo, "Class2Start");
int iMagicUse = json_GetLocalIntFromVarTable(jPsuedo, "X2_L_BEH_MAGIC");
string sAI = json_GetLocalStringFromVarTable(jPsuedo, "X2_SPECIAL_COMBAT_AI_SCRIPT");
//:: Adds True Strike 1x / day to jCreature.
jPsuedo = json_AddPsuedonaturalPowers(jPsuedo);
//:: Change jCreature's racialtype to outsider
jPsuedo = json_ModifyRacialType(jPsuedo, RACIAL_TYPE_OUTSIDER);
jPsuedo = json_UpdatePsuedonaturalCR(jPsuedo, nBaseCR, nCurrentHD);
//:: Spawn the creature
object oPsuedo = JsonToObject(jPsuedo, lSpawnLoc);
//:: Set variables
SetLocalInt(oPsuedo, "TEMPLATE_PSUEDONATURAL", 1);
SetLocalInt(oPsuedo, "iMinHD", iMinHD);
SetLocalInt(oPsuedo, "iMaxHD", iMaxHD);
SetLocalInt(oPsuedo, "nOriginalHD", nOriginalHD);
SetLocalInt(oPsuedo, "Class2", iClass2);
SetLocalInt(oPsuedo, "Class2Package", iClass2Package);
SetLocalInt(oPsuedo, "Class2Start", iClass2Start);
SetLocalInt(oPsuedo, "X2_L_BEH_MAGIC", iMagicUse);
SetLocalString(oPsuedo, "X2_SPECIAL_COMBAT_AI_SCRIPT", sAI);
return oPsuedo;
}
//:: Test void
//:: void main (){}

View File

@@ -118,7 +118,7 @@ void CheckIfDeleveled(object oPC)
}
}
}
DoDebug("Setting last known player level to " + IntToString(currentLevel));
if(DEBUG) DoDebug("Setting last known player level to " + IntToString(currentLevel));
UpdateLastKnownLevels(oPC);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,67 @@
//:://////////////////////////////////////////////
//:: Created By: Jason Stephenson
//:: Created On: August 3, 2004
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Changed By: Jason Stephenson
//:: Changed On: November 24, 2004
//:: Note: Changed to use if instead of switch().
//:: Also fixed code for X2_ITEM_EVENT_SPELLCAST_AT.
//:: Changed On: December 12, 2004
//:: Note: Using helper functions from Axe Murderer's example.
//:: Click Here
//:: Changed On: February 03, 2005
//:: Note: Fix Axe Murderer's SetTagBasedScriptExitBehavior function to
//:: only clear the variables if the nEndContinue is set to
//:: X2_EXECUTE_SCRIPT_END.
//:: Changed By: Jaysyn
//:: Changed On: 2025-11-25 08:31:43
//:: Note: Modified for use with DM info tool
//:://////////////////////////////////////////////
#include "x2_inc_switches"
int GetTagBasedItemEventNumber()
{
int nEvent = GetLocalInt(OBJECT_SELF, "X2_L_LAST_ITEM_EVENT");
return (nEvent ? nEvent : GetLocalInt(GetModule(), "X2_L_LAST_ITEM_EVENT"));
}
void SetTagBasedScriptExitBehavior(int nEndContinue)
{
if (nEndContinue == X2_EXECUTE_SCRIPT_END)
{
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_ITEM_EVENT");
DeleteLocalInt(GetModule(), "X2_L_LAST_ITEM_EVENT");
}
SetExecutedScriptReturnValue(nEndContinue);
}
void main()
{
//:: Get which event was fired.
int nEvent = GetTagBasedItemEventNumber();
//:: Declare major variables
object oPC;
object oItem;
//:: Our unique power was activated.
if (nEvent == X2_ITEM_EVENT_ACTIVATE)
{
oPC = GetItemActivator();
oItem = GetItemActivated();
object oTarget = GetItemActivatedTarget();
SetLocalObject(oPC, "EXAMINE_TARGET", oTarget);
if(!GetIsDM(oPC))
{
SendMessageToPC(oPC, "This tool is for DM's, not players");
}
else
{
ExecuteScript("prc_playerinfo", oPC);
}
}
//:: Set the return value, and then fall through.
SetTagBasedScriptExitBehavior(X2_EXECUTE_SCRIPT_END);
}

View File

@@ -1,5 +1,6 @@
#include "prc_alterations"
#include "prc_compan_inc"
#include "inc_npc"
void main()
{
@@ -17,6 +18,8 @@ void main()
DelayCommand(0.0f, ApplyEffectToObject(DURATION_TYPE_PERMANENT, eUltra, oNPC));
}
//use companion appearances
/*if(GetPRCSwitch(MARKER_PRC_COMPANION))
{

View File

@@ -0,0 +1,406 @@
//::////////////////////////////////////////////////////////
//:: ;-. ,-. ,-. ,-.
//:: | ) | ) / ( )
//:: |-' |-< | ;-:
//:: | | \ \ ( )
//:: ' ' ' `-' `-'
//::////////////////////////////////////////////////////////
//:: FileName: "prc_playerinfo"
//:: Created By: Jaysyn
//:: Last Updated On: 2025-11-25 08:26:22
//::
//::////////////////////////////////////////////////////////
/*
Displays a lot of relevant PC info in an NUI window
*/
//::////////////////////////////////////////////////////////
#include "nw_inc_nui"
#include "prc_inc_template"
const string CHAR_SHEET_WINDOW_ID = "char_sheet_window";
void ShowCharacterSheet(object oPC, object oTarget)
{
//:: Close existing window if open
int nToken = NuiFindWindow(oPC, CHAR_SHEET_WINDOW_ID);
if (nToken > 0)
{
NuiDestroy(oPC, nToken);
return;
}
//:: Build the layout
json jCol = JsonArray();
//:: === CHARACTER NAME & RACE ===
json jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Name:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_name"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Race:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_race"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Subrace:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_subrace"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Deity:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_deity"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Templates:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiText(NuiBind("char_templates"), TRUE, NUI_SCROLLBARS_AUTO));
jCol = JsonArrayInsert(jCol, NuiHeight(NuiRow(jRow), 60.0));
//:: === CLASSES ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Classes:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiText(NuiBind("char_classes"), TRUE, NUI_SCROLLBARS_AUTO));
jCol = JsonArrayInsert(jCol, NuiHeight(NuiRow(jRow), 120.0));
//:: === LEVEL & EXPERIENCE ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Total Level:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_level"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: Only show XP for PCs
if (GetIsPC(oTarget))
{
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Experience:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_xp"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
}
//:: === HIT POINTS ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Hit Points:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_hp"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: === ABILITY SCORES - Two columns ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Ability Scores:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: STR and DEX
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("STR:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_str"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("DEX:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_dex"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: CON and INT
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("CON:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_con"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("INT:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_int"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: WIS and CHA
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("WIS:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_wis"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("CHA:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_cha"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: === ENCUMBRANCE ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Encumbrance:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_encumbrance"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: === SAVING THROWS ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Saving Throws:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: Fortitude
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Fortitude:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_fort"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: Reflex
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Reflex:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_ref"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: Will
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Will:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_will"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: === ARMOR CLASS ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Armor Class:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, NuiLabel(NuiBind("char_ac"), JsonInt(NUI_HALIGN_RIGHT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
//:: === ACTIVE EFFECTS ===
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiLabel(JsonString("Active Spells:"), JsonInt(NUI_HALIGN_LEFT), JsonInt(NUI_VALIGN_MIDDLE)));
jCol = JsonArrayInsert(jCol, NuiRow(jRow));
jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiText(NuiBind("char_effects"), TRUE, NUI_SCROLLBARS_AUTO));
jCol = JsonArrayInsert(jCol, NuiHeight(NuiRow(jRow), 100.0));
//:: Create window
json jRoot = NuiCol(jCol);
string sTitle = "Character Sheet: " + GetName(oTarget);
json jNui = NuiWindow(
jRoot,
JsonString(sTitle),
NuiBind("geometry"),
JsonBool(TRUE),
JsonBool(FALSE),
JsonBool(TRUE),
JsonBool(FALSE),
JsonBool(TRUE)
);
nToken = NuiCreate(oPC, jNui, CHAR_SHEET_WINDOW_ID);
//:: Set geometry
NuiSetBind(oPC, nToken, "geometry", NuiRect(100.0, 100.0, 400.0, 850.0));
//:: === POPULATE DATA ===
//:: Name
NuiSetBind(oPC, nToken, "char_name", JsonString(GetName(oTarget)));
//:: Race
string sRace = GetStringByStrRef(StringToInt(Get2DAString("racialtypes", "Name", GetRacialType(oTarget))));
if (sRace == "") sRace = "Unknown";
NuiSetBind(oPC, nToken, "char_race", JsonString(sRace));
//:: Subrace
string sSubrace = GetSubRace(oTarget);
if (sSubrace == "") sSubrace = "None";
NuiSetBind(oPC, nToken, "char_subrace", JsonString(sSubrace));
//:: Deity
string sDeity = GetDeity(oTarget);
if (sDeity == "") sDeity = "None";
NuiSetBind(oPC, nToken, "char_deity", JsonString(sDeity));
//:: Templates - Check for persistent local variables named "template_X"
string sTemplates = "";
int nTemplateCount = 0;
int i;
int nMaxTemplates = 128;
for (i = 0; i <= nMaxTemplates; i++)
{
string sVarName = "template_" + IntToString(i);
//:: Check if this persistent local variable exists and is TRUE
if (GetPersistantLocalInt(oTarget, sVarName))
{
string sNameEntry = Get2DAString("templates", "Name", i);
//:: Only process if we got a valid name entry
if (sNameEntry != "")
{
int nNameStrRef = StringToInt(sNameEntry);
string sTemplateName = GetStringByStrRef(nNameStrRef);
if (sTemplateName == "")
sTemplateName = "Template " + IntToString(i);
if (nTemplateCount > 0)
sTemplates += "\n";
sTemplates += sTemplateName;
nTemplateCount++;
}
}
}
if (nTemplateCount == 0)
sTemplates = "None";
NuiSetBind(oPC, nToken, "char_templates", JsonString(sTemplates));
//:: Classes
string sClasses = "";
for (i = 1; i <= 8; i++)
{
int nClass = GetClassByPosition(i, oTarget);
if (nClass != CLASS_TYPE_INVALID)
{
string sClassName = GetStringByStrRef(StringToInt(Get2DAString("classes", "Name", nClass)));
if (sClassName == "") sClassName = "Class " + IntToString(nClass);
int nLevel = GetLevelByClass(nClass, oTarget);
if (sClasses != "")
sClasses += "\n";
sClasses += sClassName + " " + IntToString(nLevel);
}
}
if (sClasses == "")
sClasses = "No classes found";
NuiSetBind(oPC, nToken, "char_classes", JsonString(sClasses));
//:: Level
NuiSetBind(oPC, nToken, "char_level", JsonString(IntToString(GetHitDice(oTarget))));
//:: XP (only for PCs)
if (GetIsPC(oTarget))
{
NuiSetBind(oPC, nToken, "char_xp", JsonString(IntToString(GetXP(oTarget))));
}
//:: Hit Points
string sHP = IntToString(GetCurrentHitPoints(oTarget)) + " / " + IntToString(GetMaxHitPoints(oTarget));
NuiSetBind(oPC, nToken, "char_hp", JsonString(sHP));
//:: Ability Scores - Individual binds
NuiSetBind(oPC, nToken, "char_str", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_STRENGTH))));
NuiSetBind(oPC, nToken, "char_dex", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_DEXTERITY))));
NuiSetBind(oPC, nToken, "char_con", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_CONSTITUTION))));
NuiSetBind(oPC, nToken, "char_int", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_INTELLIGENCE))));
NuiSetBind(oPC, nToken, "char_wis", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_WISDOM))));
NuiSetBind(oPC, nToken, "char_cha", JsonString(IntToString(GetAbilityScore(oTarget, ABILITY_CHARISMA))));
//:: Encumbrance
int nEncumbrance = GetWeight(oTarget) / 10;
string sEncumbrance = IntToString(nEncumbrance) + " lbs";
//:: Only check for gold bag on PCs
if (GetIsPC(oTarget) && GetIsObjectValid(GetItemPossessedBy(oTarget, "NW_IT_MNYBAG01")))
{
nEncumbrance += GetGold(oTarget) / 50;
sEncumbrance += " (+" + IntToString(GetGold(oTarget) / 50) + " gold)";
}
NuiSetBind(oPC, nToken, "char_encumbrance", JsonString(sEncumbrance));
//:: Saves - Individual binds
NuiSetBind(oPC, nToken, "char_fort", JsonString(IntToString(GetFortitudeSavingThrow(oTarget))));
NuiSetBind(oPC, nToken, "char_ref", JsonString(IntToString(GetReflexSavingThrow(oTarget))));
NuiSetBind(oPC, nToken, "char_will", JsonString(IntToString(GetWillSavingThrow(oTarget))));
//:: AC
NuiSetBind(oPC, nToken, "char_ac", JsonString(IntToString(GetAC(oTarget))));
//:: Active Spells - Track unique spell IDs to avoid duplicates
string sEffects = "";
effect eEffect = GetFirstEffect(oTarget);
int nEffectCount = 0;
string sTrackedSpells = ""; //:: Use this to track which spells we've already listed
while (GetIsEffectValid(eEffect))
{
int nSpellId = GetEffectSpellId(eEffect);
//:: Only process if this is a valid spell and we haven't already listed it
if (nSpellId > 0)
{
string sSpellIdStr = IntToString(nSpellId);
//:: Check if we've already processed this spell
if (FindSubString(sTrackedSpells, ":" + sSpellIdStr + ":") == -1)
{
//:: Add to tracked list
sTrackedSpells += ":" + sSpellIdStr + ":";
//:: Get spell name from spells.2da -> TLK
int nNameStrRef = StringToInt(Get2DAString("spells", "Name", nSpellId));
string sSpellName = GetStringByStrRef(nNameStrRef);
if (sSpellName == "")
sSpellName = "Unknown Spell (ID: " + sSpellIdStr + ")";
//:: Get duration for this spell effect
float fDuration = IntToFloat(GetEffectDurationRemaining(eEffect));
string sDuration = "";
if (fDuration > 0.0)
{
int nSeconds = FloatToInt(fDuration);
int nMinutes = nSeconds / 60;
nSeconds = nSeconds % 60;
if (nMinutes > 0)
sDuration = IntToString(nMinutes) + "m " + IntToString(nSeconds) + "s";
else
sDuration = IntToString(nSeconds) + "s";
}
else
{
sDuration = "Permanent";
}
if (nEffectCount > 0)
sEffects += "\n";
sEffects += sSpellName + " (" + sDuration + ")";
nEffectCount++;
}
}
eEffect = GetNextEffect(oTarget);
}
if (nEffectCount == 0)
sEffects = "No active spells";
NuiSetBind(oPC, nToken, "char_effects", JsonString(sEffects));
}
void main()
{
object oPC = OBJECT_SELF;
object oTarget = oPC;
//:: If PC is targeting something else, show that target's sheet instead
object oTargeted = GetLocalObject(oPC, "EXAMINE_TARGET");
if (GetIsObjectValid(oTargeted) && GetObjectType(oTargeted) == OBJECT_TYPE_CREATURE)
{
oTarget = oTargeted;
}
//:: Show the window
ShowCharacterSheet(oPC, oTarget);
}

View File

@@ -0,0 +1,9 @@
#include "inc_dynconv"
void main()
{
object oPC = OBJECT_SELF;
StartDynamicConversation("prc_remo_spl_cv", oPC);
}

View File

@@ -0,0 +1,130 @@
//:://///////////////////////////////////////////////////////////////
//:: End Self-Cast Active Spells - DynConv
//:: prc_remo_spl_fx.nss
//::
//:: Created by: Jaysyn
//:: Created on: 2025-11-22 15:45:50
//:://///////////////////////////////////////////////////////////////
/*
- Lists all active spell effects on and cast by the PC.
- Allows the player to end any of them (removes all effects
- from that spell cast by the PC).
- Start with:
- StartDynamicConversation("prc_remo_spl_cv", OBJECT_SELF);
*/
//:://///////////////////////////////////////////////////////////////
#include "prc_effect_inc"
#include "inc_dynconv"
const int STAGE_ENTRY = 0;
// Get a localized spell name from spells.2da; fallback to "Spell #"
string PRCGetSpellName(int nSpell)
{
string sName = "";
string sRef = Get2DAString("spells", "Name", nSpell);
if (sRef != "")
{
int nStrRef = StringToInt(sRef);
if (nStrRef > 0)
{
sName = GetStringByStrRef(nStrRef);
}
}
if (sName == "")
{
sName = "Spell #" + IntToString(nSpell);
}
return sName;
}
// Build list of unique self-cast active spells on oPC, one choice per spell id.
// Returns count of unique spells found.
int BuildSpellChoiceList(object oPC)
{
int nCount = 0;
array_create(oPC, "PC_SPELL_LIST");
effect e = GetFirstEffect(oPC);
while (GetIsEffectValid(e))
{
int nSpell = GetEffectSpellId(e);
if (nSpell >= 0 && GetEffectCreator(e) == oPC)
{
if (array_get_int(oPC, "PC_SPELL_LIST", nSpell) == 0)
{
AddChoice(PRCGetSpellName(nSpell), nSpell, oPC);
array_set_int(oPC, "PC_SPELL_LIST", nSpell, 1);
nCount++;
}
}
e = GetNextEffect(oPC);
}
array_delete(oPC, "PC_SPELL_LIST");
return nCount;
}
void main()
{
object oPC = GetPCSpeaker();
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
int nStage = GetStage(oPC);
if (nValue == 0)
return;
if (nValue == DYNCONV_SETUP_STAGE)
{
if (!GetIsStageSetUp(nStage, oPC))
{
if (nStage == STAGE_ENTRY)
{
int nList = BuildSpellChoiceList(oPC);
if (nList > 0)
{
SetHeader("Which of your active spells would you like to end:");
}
else
{
SetHeader("You have no self-cast active spells available to end.");
}
MarkStageSetUp(nStage, oPC);
SetDefaultTokens();
}
}
SetupTokens(oPC);
}
else if (nValue == DYNCONV_EXITED)
{
// no-op
}
else if (nValue == DYNCONV_ABORTED)
{
// no-op
}
else
{
// Player selected a spell id
int nSpellId = GetChoice(oPC);
if (nStage == STAGE_ENTRY)
{
// End the spell
PRCRemoveSpellEffects(nSpellId, oPC, oPC);
// Rebuild list
ClearCurrentStage(oPC);
}
SetStage(nStage, oPC);
}
}

View File

@@ -77,7 +77,7 @@ void main()
}
// Target location
location lTarget = GetSpellTargetLocation();
location lTarget = PRCGetSpellTargetLocation();
// Distance check
if (GetDistanceBetweenLocations(GetLocation(oPC), lTarget) > FeetToMeters(TREE_RANGE_FEET))

View File

@@ -79,7 +79,15 @@ void main()
int nNewStack = GetItemStackSize(oStack);
nNewStack--;
if (nNewStack < 1)
{
DestroyObject(oStack);
}
if( oStack != OBJECT_INVALID)
{
SetItemStackSize(oStack, nNewStack);
}
//create appropriate item
object oArrowBone = CreateItemOnObject(sBone, oPC, 1);

View File

@@ -282,7 +282,7 @@ void main2()
object oImage;
json jImage = ObjectToJson(oCaster);
jImage = JsonModifyRacialType(jImage, RACIAL_TYPE_CONSTRUCT);
jImage = json_ModifyRacialType(jImage, RACIAL_TYPE_CONSTRUCT);
oImage = JsonToObject(jImage, GetLocation(oCaster));

View File

@@ -6380,7 +6380,7 @@ Skill Points at Each Additional Level: 4 + Int modifier
Bonus Feats: The epic arcane trickster gains a bonus feat (selected from the list of epic arcane trickster feats) every 4 levels after 10th.
Epic Arcane Trickster Bonus Feat List: (Automatic) Silent Spell, (Automatic) Still Spell, (Automatic) Quicken Spell, Blinding Speed, Epic Skill Focus, Improved Combat Casting, Improved Sneak Attack, Self-Concealment, Epic Dodge, (Greater) Spell Focus, (Greater) Spell Penetration.B</entry>
<entry id="45224" lang="en" sex="m">Exalted Companion</entry>
<entry id="45225" lang="en" sex="m">Type of Feat: General
<entry id="45225" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Animal Companion, Good Alignment (if you select this feat with another alignment, it will fail).
Specifics: Applies the celestial template to your animal companion. It gains the ability to Smite Evil 1/day, as a paladin, Spell Resistance of 2 times HD, capping at 25, Darkvision, and benefits per the table below.
@@ -9687,7 +9687,7 @@ Prerequisite: Thrall of Orcus Level 10
Specifics: A Thrall of Orcus can summon a Nightwing once per day.
Use: Selected.</entry>
<entry id="46128" lang="en" sex="m">Servant of The Heavens</entry>
<entry id="46129" lang="en" sex="m">Type of Feat: Exalted.
<entry id="46129" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Good Alignment*
Specifics: You swear allegiance to one of the Tome Archons who rule the Seven Heavens, and in exchange gain power to act on their behalf. Once per day, you may call upon your archon patron to gain a +1 luck bonus to damage, attack roll and saving throws for 9 seconds.
Use: Selected.
@@ -19562,7 +19562,7 @@ Prerequisite: Tamer of Beasts level 1
Specifics: The tamer can have companions whose Hit Dice total no more than the sum of twice his tamer level plus twice his caster level for animal friendship. No individual companions can have more Hit Dice than the tamer.
Use: Automatic.</entry>
<entry id="48686" lang="en" sex="m">Touch of Golden Ice</entry>
<entry id="48687" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48687" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Con 13, Good Alignment*.
Specifics: Any evil being you hit (with glove or natural attack) is ravaged by Golden Ice (Poison DC 14, 2d6/1d6 Dex). You cannot wield a weapon and use this ability at the same time.
Use: Automatic.
@@ -19573,7 +19573,7 @@ Use: Automatic.
<entry id="48690" lang="en" sex="m">Stigmata Con -4</entry>
<entry id="48691" lang="en" sex="m">Stigmata Con -2</entry>
<entry id="48692" lang="en" sex="m">Stigmata</entry>
<entry id="48693" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48693" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Nimbus of Light, Good Alignment*.
Specifics: You can heal the wounds and ailments of others' using your own life energy. When you activate this ability, as a free action, you immediately take at least 2 points of temporary Constitution damage. You can take as many points of Constitution damage as you wish**, as long as you remain alive and conscious.
Once you have activated your stigmata, you can touch your allies to heal them of 1 point of constitution damage per level they possess for every 2 points of Constitution damage you take. In addition, any character you touch who is suffering from a disease is cured of it.***
@@ -19586,14 +19586,14 @@ Notes:
**: Limited to 2, 4, 6 and 8 points due to technical limits.
***: Due to technical limits, one cannot "hold the charge" on the stigmata. To make up for that, diseases will always be cured.</entry>
<entry id="48694" lang="en" sex="m">Holy Radiance</entry>
<entry id="48695" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48695" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Cha 15, Nimbus of Light, Good Alignment*.
Specifics: You can increase the intensity of the light surrounding you to damage undead creatures. At will, as a free action, you can empower the radiance surrounding you into a blazing glow that sheds bright light in a 10-foot radius. Undead within 10 feet of you take 1d4 damage per round they remain within your halo.
Use: Selected.
(*Note: You can select this feat even when evil or neutral, but it will not give you any benefits, so be smart and don't choose it if you can't use it.)</entry>
<entry id="48696" lang="en" sex="m">Nimbus of Light</entry>
<entry id="48697" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48697" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Base Attack Bonus 1, Good Alignment*.
Required For: Holy Radiance, Stigmata.
Specifics: You are cloaked in a radiant light that marks you as a servant of purest ideals. You gain a +2 bonus to persuade. Your radiance sheds light with a radius of 5 feet.
@@ -19601,21 +19601,21 @@ Use: Selected.
(*Note: You can select this feat even when evil or neutral, but it will not give you any benefits, so be smart and don't choose it if you can't use it.)</entry>
<entry id="48698" lang="en" sex="m">Intuitive Attack</entry>
<entry id="48699" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48699" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Base Attack Bonus 1, Good Alignment*.
Specifics: With a simple weapon or a natural weapon, you may use your Wisdom modifier instead your Strength modifier on attack rolls.
Use: Automatic.
(*Note: You can select this feat even when evil or neutral, but it will not give you any benefits, so be smart and don't choose it if you can't use it.)</entry>
<entry id="48700" lang="en" sex="m">Hand of a Healer</entry>
<entry id="48701" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48701" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Cha 13, Lay on Hand, Good Alignment*.
Specifics: When you determining how many hit points you can cure, treat your Charisma score as if it were 2 points higher.
Use: Automatic.
(*Note: You can select this feat even when evil or neutral, but it will not give you any benefits, so be smart and don't choose it if you can't use it.)</entry>
<entry id="48702" lang="en" sex="m">Exalted Turning</entry>
<entry id="48703" lang="en" sex="m">Type of Feat: Exalted.
<entry id="48703" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Turn Undead, Good or Neutral Alignment*.
Specifics: Any Undead that you turns take an extra 3d6 damage in addition to the normal turning effect.
Use: Automatic.
@@ -45967,12 +45967,12 @@ You cast forth a field of minor storms that create barriers around the caster an
<entry id="56283" lang="en" sex="m"> School: Conjuration (Summoning)
Components: V,S
Range: Short
Effect: One summoned aberration
Duration: 20 hours
Effect: Summons advanced aberration(s)
Duration: 1 Turn / Caster level
Saving Throw: None
Spell Resistance: No
You summon one of a variety of aberrations. It is never clear which type of aberration will appear, but it will always be one of these: a Drider Chief, a Beholder, a Mind Flayer Darkener, an Umber Hulk, or a Battle Devourer. The summoned aberration will do your bidding to the best of its abilities, for the duration. </entry>
You summon one or more advanced psuedonatural aberrations from the Far Realms to do your bidding. The aberration receives one bonus hit die for every 2 caster levels of the summoner, up to the maximum hit dice for the creature, and maximum hit points per die. The aberration follows your orders to the best of its ability, for the duration of the spell. Possible summons are a: Drider, Beholder, Illithid, Umber Hulk, or 2-3 Battle Devourers.</entry>
<entry id="56284" lang="en" sex="m">Epic Spell: Superb Dispelling</entry>
<entry id="56285" lang="en" sex="m">Researched Epic Spell: Superb Dispelling</entry>
<entry id="56286" lang="en" sex="m">School: Abjuration
@@ -72680,6 +72680,12 @@ Strength of Will: You gain a bonus equal to 1/2 your class level (minimum +1) on
Wild Frenzy: You gain a +2 bonus on attack rolls and damage rolls with melee weapons and eldritch blasts, along with temporary hit points equal to twice your class level. This effect lasts for a number of rounds equal to 3 + your Cha modifier (minimum 1 round). Your deity must be chaotic for you to select this gift.</entry>
<entry id="77218" lang="en" sex="m">&lt;cÿÿÿ&gt;Pick an invoking feat (1st lvl)&lt;/c&gt;</entry>
<entry id="77219" lang="en" sex="m">Choose which invoking class to advance with the currently selected Prestige Class. If you try take a marker feat after1st class level, your character will be releveled.</entry>
<entry id="77220" lang="en" sex="m">Exalted Feats</entry>
<entry id="77221" lang="en" sex="m">Exalted feats are only available to good-aligned characters and creatures.
Due to technical reasons, we cannot enforce this limitation directly. If you do take one of these feats without qualifying for it, it will be useless to you.</entry>
<entry id="77997" lang="en" sex="m">Cancel Spell</entry>
<entry id="77998" lang="en" sex="m">This will allow the caster to end any self-cast spell effects on their person.</entry>
<entry id="77999" lang="en" sex="m">### PRC8 CLASS RESERVE ###</entry>
<entry id="78000" lang="en" sex="m">LoT</entry>
<entry id="78001" lang="en" sex="m">Lion of Talisid</entry>
@@ -73664,7 +73670,8 @@ Benefit: Beginning at 13th level, you can multiply your weight by 8, gaining a +
Use: Selected</entry>
<entry id="200102" lang="en" sex="m">Vow of Poverty</entry>
<entry id="200103" lang="en" sex="m">You have taken a sacred vow to forswear material possessions.
<entry id="200103" lang="en" sex="m">Type of Feat: Exalted
You have taken a sacred vow to forswear material possessions.
You gain bonuses to your Armor Class, ability scores, and saving throws, as well as bonus exalted feats, all depending on your character level.