2025/09/06 Update

Fixed VFX for Prismatic Sphere.
Fixed Bonded Summoner's familiar past 10th class lvl.
Removed old goad item.
Capped Inscribe Rune CL at 20th.
Updated Psychic Rogue's power list.
Fixed goad's icon size in baseitems.2da
Added WotC Mind's Eye Web Enhancement PDFs to notes.
Added PnP Animal Companion notes.
This commit is contained in:
Jaysyn904
2025-09-13 15:19:27 -04:00
parent b4b80734d5
commit 7ce076815d
52 changed files with 4793 additions and 1587 deletions

View File

@@ -0,0 +1,24 @@
The common badger is a small but fierce mammal. Its strong forelimbs are armed with long claws, used for both digging and self-defense.
Skills: Listen +3, Spot +3
Feats: Low-Light Vision, Track, Scent, Weapon Finesse
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special
1st-2nd +0 +0 +0 (8/17) W Finesse Link, share spells
3rd-5th +2 +2 +1 (9/18) Imp. Nat. Attack Evasion
6th-8th +4 +4 +2 (10/19) Dodge Devotion, +1 CON (16)
9th-11th +6 +6 +3 (11/20) - Multiattack
12th-14th +8 +8 +4 (12/21) Mobility +1 CON (17)
15th-17th +10 +10 +5 (13/22) Imp. Crit Improved evasion
18th-20th +12 +12 +6 (14/23) - +1 CON (18)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special
21st-23rd +14 +14 +7 (15/24) WP Creature -
24th-26th +16 +16 +8 (16/25) Spring Att +1 CON (19)
27th-29th +18 +18 +9 (17/26) - -
30th-32nd +20 +20 +10 (18/27) Armor Skin +1 CON (20)
33rd-35th +22 +22 +11 (19/28) - -
36th-38th +24 +24 +12 (20/29) E Prowess +1 CON (21)
39th-40th +26 +26 +13 (21/30) EWF Creature -

View File

@@ -0,0 +1,24 @@
Camels are known for their ability to travel long distances without food or water.
Skills: Listen +5, Spot +5
Feats: Alertness*, Endurance, Low-light vision, Scent
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (3) +0 +0 (18/16) Alertness Link, share spells) Spot(3)
3rd-5th +2 (5) +2 +1 (19/17) Imp Nat Att Evasion, +1 CON (14) Spot(5)
6th-8th +4 (7) +4 +2 (20/18) - Devotion Spot(7)
9th-11th +6 (9) +6 +3 (21/19) WF (Creature) Multiattack, +1 CON (15) Spot(9)
12th-14th +8 (12) +8 +4 (22/20) - - Spot(11)
15th-17th +10 (13) +10 +5 (23/21) Dodge Imp Evasion, +1 CON (16) Spot(13)
18th-20th +12 (15) +12 +6 (24/22) Mobility - Spot(15)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (17) +14 +7 (25/23) Spring Att +1 CON (17) Spot(17)
24th-26th +16 (19) +16 +8 (26/24) - - Spot(19)
27th-29th +18 (21) +18 +9 (27/25) Blind-fight +1 CON (18) Spot(21)
30th-32nd +20 (23) +20 +10 (28/26) EWF (Creature) - Spot(23)
33rd-35th +22 (25) +22 +11 (29/27) - +1 CON (19) Spot(25)
36th-38th +24 (27) +24 +12 (30/28) E. Prowess - Spot(27)
39th-40th +26 (29) +26 +13 (31/29) Armor Skin +1 CON (20) Spot(29)

View File

@@ -0,0 +1,24 @@
A canine companion, as loyal as it is large.
Skills: Jump +8, Listen +5, Spot +5
Feats: Alertness*, Low-light Vision, Scent, Track
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (2) +0 +0 (15/15) Alertness* Link, share spells Spot(2)
3rd-5th +2 (4) +2 +1 (16/16) Weapon Focus Evasion, +1 CON (16) Spot(4)
6th-8th +4 (6) +4 +2 (17/17) - Devotion Spot(7)
9th-11th +6 (8) +6 +3 (18/18) Power Attack Multiattack, +1 CON (17) Spot(10)
12th-14th +8 (10) +8 +4 (19/19) Cleave - Spot(13)
15th-17th +10 (12) +10 +5 (20/20) - Imp Evasion, +1 CON (18) Spot(15) L(3)
18th-20th +12 (14) +12 +6 (21/21) Imp Crit - Spot(17) L(4)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (16) +14 +7 (22/22) Blind-fight +1 CON (19) Spot(19) L(5)
24th-26th +16 (18) +16 +8 (23/23) - - Spot(21) L(6)
27th-29th +18 (20) +18 +9 (24/24) Knockdown +1 CON (20) Spot(23) L(7)
30th-32nd +20 (22) +20 +10 (25/25) Armor Skin - Spot(25) L(8)
33rd-35th +22 (24) +22 +11 (26/26) - +1 CON (21) Spot(27) L(9)
36th-38th +24 (26) +24 +12 (27/27) OW Crit - Spot(29) L(10)
39th-40th +26 (28) +26 +13 (28/28) E. Prowess +1 CON (22) Spot(31) L(11)

View File

@@ -0,0 +1,24 @@
A loyal canine companion.
Skills: Jump +7, Listen +5, Spot +5
Feats: Alertness*, Low-light Vision, Scent, Track
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (1) +0 (1) +0 (13/17) Alertness* Link, share spells Sp(2)
3rd-5th +2 (3) +2 (3) +1 (14/18) Imp Nat Att Evasion Sp(4)
6th-8th +4 (5) +4 (5) +2 (15/19) - Devotion, +1 CON (16) Sp(7)
9th-11th +6 (7) +6 (7) +3 (16/20) Weapon Finesse Multiattack Sp(9)
12th-14th +8 (9) +8 (9) +4 (17/21) Dodge +1 CON (17) Sp(12)
15th-17th +10 (11) +10 (11) +5 (18/22) - Improved evasion Sp(14) L(3)
18th-20th +12 (13) +12 (13) +6 (19/23) Mobility +1 CON (18) Sp(16) L(4)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (15) +14 (15) +7 (20/24) Spring Att - Sp(18) L(5)
24th-26th +16 (17) +16 (17) +8 (21/25) - +1 CON (19) Sp(20) L(6)
27th-29th +18 (19) +18 (19) +9 (22/26) Blind-fight - Sp(22) L(7)
30th-32nd +20 (21) +20 (21) +10 (23/27) Epic Prowess +1 CON (20) Sp(24) L(8)
33rd-35th +22 (23) +22 (23) +11 (24/28) - - Sp(26) L(9)
36th-38th +24 (25) +24 (25) +12 (25/29) Gr. CON +1 CON (22) Sp(28) L(10)
39th-40th +26 (27) +26 (27) +13 (26/30) Armor Skin - Sp(30) L(11)

View File

@@ -0,0 +1,24 @@
These birds of prey inhabit nearly every terrain and climate, though they all prefer high, secluded nesting spots.
Skills: Listen +4 Spot +16
Feats: Alertness*, Weapon Finesse, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 +0 +0 (10/15) Alertness* Link, share spells Listen(0) Spot(12)
3rd-5th +2 +2 +1 (11/16) Imp Nat Att Evasion Listen(1) Spot(13)
6th-8th +4 +4 +2 (12/17) - Devotion, +1 CON (13) Listen(1) Spot(15)
9th-11th +6 +6 +3 (13/18) WF(Creature) Multiattack Listen(2) Spot(16)
12th-14th +8 +8 +4 (14/19) Dodge +1 CON (14) Listen(2) Spot(18)
15th-17th +10 +10 +5 (15/20) - Improved evasion Listen(3) Spot(19)
18th-20th +12 +12 +6 (16/21) Mobility +1 CON (15) Listen(3) Spot(21)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 +14 +7 (17/22) Spring Att - Listen(4) Spot(22)
24th-26th +16 +16 +8 (18/23) - +1 CON (16) Listen(4) Spot(24)
27th-29th +18 +18 +9 (19/24) Imp Critical - Listen(5) Spot(25)
30th-32nd +20 +20 +10 (20/25) Blind-fight +1 CON (17) Listen(5) Spot(27)
33rd-35th +22 +22 +11 (21/26) - - Listen(6) Spot(28)
36th-38th +24 +24 +12 (22/27) EWF (Creature) +1 CON (18) Listen(6) Spot(30)
39th-40th +26 +26 +13 (23/28) Armor Skin - Listen(7) Spot(31)

View File

@@ -0,0 +1,24 @@
Hawks are majestic birds, often trained by adventurers to be loyal companions. Their superior eyesight and speed are their greatest assets.
Skills: Listen +4, Spot +16
Feats: Alertness*, Weapon Finesse, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (1) +0 (2) +0 (6/17) Alertness* Link, share spells Sp(12)
3rd-5th +2 (3) +2 (4) +1 (7/18) Imp Nat Att Evasion Sp(14)
6th-8th +4 (5) +4 (6) +2 (8/19) - Devotion, +1 CON (11) Sp(17)
9th-11th +6 (7) +6 (8) +3 (9/20) WF(Creature) Multiattack Sp(18) L(2)
12th-14th +8 (9) +8 (10) +4 (10/21) Dodge +1 CON (12) Sp(20) L(3)
15th-17th +10 (11) +10 (12) +5 (11/22) - Improved evasion Sp(22) L(4)
18th-20th +12 (13) +12 (14) +6 (12/23) Mobility +1 CON (13) Sp(24) L(5)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (15) +14 (16) +7 (13/24) Spring Att - Sp(26) L(6)
24th-26th +16 (17) +16 (18) +8 (14/25) - +1 CON (14) Sp(28) L(7)
27th-29th +18 (19) +18 (20) +9 (15/26) Blind-fight - Sp(30) L(8)
30th-32nd +20 (21) +20 (22) +10 (16/27) Epic Prowess +1 CON (15) Sp(32) L(9)
33rd-35th +22 (23) +22 (24) +11 (17/28) - - Sp(34) L(10)
36th-38th +24 (25) +24 (26) +12 (18/29) EWF (Creature) +1 CON (16) Sp(36) L(11)
39th-40th +26 (27) +26 (28) +13 (19/30) Armor Skin - Sp(38) L(12)

View File

@@ -0,0 +1,24 @@
Horses make useful beasts of burden, and the best of them also make good warhorses.
Skills: Listen +4, Spot +4
Feats: Endurance*, Scent, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (3) +0 (3) +0 (16/13) Endurance* Link, share spells Spot(3)
3rd-5th +2 (5) +2 (5) +1 (17/14) Weapon Focus Evasion, +1 CON (16) Spot(5)
6th-8th +4 (7) +4 (7) +2 (18/15) - Devotion Spot(8)
9th-11th +6 (9) +6 (9) +3 (19/16) Power Attack Multiattack, +1 CON (17) Spot(11)
12th-14th +8 (11) +8 (11) +4 (20/17) Cleave - Spot(14)
15th-17th +10 (13) +10 (13) +5 (21/18) - Imp Evasion, +1 CON (18) Spot(16) Listen(4)
18th-20th +12 (15) +12 (15) +6 (22/19) Imp Crit - Spot(18) Listen(5)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (17) +14 (17) +7 (23/20) Blind-fight +1 CON (19) Spot(20) Listen(6)
24th-26th +16 (19) +16 (19) +8 (24/21) - - Spot(22) Listen(7)
27th-29th +18 (21) +18 (21) +9 (25/22) Epic WF +1 CON (20) Spot(24) Listen(8)
30th-32nd +20 (23) +20 (23) +10 (26/23) Armor Skin - Spot(26) Listen(9)
33rd-35th +22 (25) +22 (25) +11 (27/24) - +1 CON (21) Spot(28) Listen(10)
36th-38th +24 (27) +24 (27) +12 (28/25) OW Crit - Spot(30) Listen(11)
39th-40th +26 (29) +26 (29) +13 (29/26) E. Prowess +1 CON (22) Spot(32) Listen(12)

View File

@@ -0,0 +1,24 @@
Horses make useful beasts of burden, and the best of them also make good warhorses.
Skills: Listen +4, Spot +4
Feats: Endurance*, Scent, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (3) +0 (3) +0 (14/13) Endurance* Link, share spells Spot(3)
3rd-5th +2 (5) +2 (5) +1 (15/14) Weapon Focus Evasion, +1 CON (16) Spot(5)
6th-8th +4 (7) +4 (7) +2 (16/15) - Devotion Spot(8)
9th-11th +6 (9) +6 (9) +3 (17/16) Power Attack Multiattack, +1 CON (17) Spot(11)
12th-14th +8 (11) +8 (11) +4 (19/18) - - Spot(16) Listen(3)
15th-17th +10 (13) +10 (13) +5 (21/18) - Imp Evasion, +1 CON (18) Spot(16) Listen(4)
18th-20th +12 (15) +12 (15) +6 (20/19) Imp Crit - Spot(18) Listen(5)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (17) +14 (17) +7 (21/20) Blind-fight +1 CON (19) Spot(20) Listen(6)
24th-26th +16 (19) +16 (19) +8 (22/21) - - Spot(22) Listen(7)
27th-29th +18 (21) +18 (21) +9 (23/22) Epic WF +1 CON (20) Spot(24) Listen(8)
30th-32nd +20 (23) +20 (23) +10 (24/23) Armor Skin - Spot(26) Listen(9)
33rd-35th +22 (25) +22 (25) +11 (25/24) - +1 CON (21) Spot(28) Listen(10)
36th-38th +24 (27) +24 (27) +12 (26/25) OW Crit - Spot(30) Listen(11)
39th-40th +26 (29) +26 (29) +13 (27/26) E. Prowess +1 CON (22) Spot(32) Listen(12)

View File

@@ -0,0 +1,24 @@
These silent, nocturnal birds are master hunters.
Skills: Listen +14, Move Silently +17, Spot +8
Feats: Alertness*, Weapon Finesse, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 +0 +0 (4/17) Alertness* Link, share spells L(10) MS (14) Sp(4)
3rd-5th +2 +2 +1 (5/18) Imp Nat Att Evasion L(12) MS (14) Sp(4)
6th-8th +4 +4 +2 (6/19) - Devotion, +1 CON (11) L(14) MS (14) Sp(4)
9th-11th +6 +6 +3 (7/20) WF(Creature) Multiattack L(16) MS (14) Sp(4)
12th-14th +8 +8 +4 (8/21) Dodge +1 CON (12) L(18) MS (14) Sp(4)
15th-17th +10 +10 +5 (9/22) - Improved evasion L(20) MS (14) Sp(4)
18th-20th +12 +12 +6 (10/23) Mobility +1 CON (13) L(22) MS (14) Sp(4)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 +14 +7 (11/24) Spring Att - L(24) MS (14) Sp(4)
24th-26th +16 +16 +8 (12/25) - +1 CON (14) L(26) MS (14) Sp(4)
27th-29th +18 +18 +9 (13/26) Imp Critical - L(28) MS (14) Sp(4)
30th-32nd +20 +20 +10 (14/27) Blind-fight +1 CON (15) L(30) MS (14) Sp(4)
33rd-35th +22 +22 +11 (15/28) - - L(34) MS (14) Sp(4)
36th-38th +24 +24 +12 (16/29) EWF (Creature) +1 CON (16) L(36) MS (14) Sp(4)
39th-40th +26 +26 +13 (17/30) Armor Skin - L(38) MS (14) Sp(4)

View File

@@ -0,0 +1,24 @@
Ponies are small horses, under 5 feet tall at the shoulder. Ponies are otherwise similar to light horses and cannot fight while carrying a rider.
Skills: Listen +5, Spot +5
Feats: Endurance*, Scent, Low-light Vision
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (2) +0 +0 (13/13) Endurance* Link, share spells Spot(5)
3rd-5th +2 (4) +2 +1 (14/14) Imp Nat Att Evasion, +1 CON (13) Spot(7)
6th-8th +4 (6) +4 +2 (15/15) - Devotion Spot(9)
9th-11th +6 (8) +6 +3 (16/16) Power Attack Multiattack, +1 CON (14) Spot(11)
12th-14th +8 (10) +8 +4 (17/17) Cleave - Spot(13)
15th-17th +10 (12) +10 +5 (18/18) - Imp Evasion, +1 CON (15) Spot(15)
18th-20th +12 (14) +12 +6 (19/19) Imp Crit - Spot(17)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (16) +14 +7 (20/20) Blind-fight +1 CON (16) Spot(19)
24th-26th +16 (18) +16 +8 (21/21) - - Spot(21)
27th-29th +18 (20) +18 +9 (22/22) Weapon Focus +1 CON (17) Spot(23)
30th-32nd +20 (22) +20 +10 (23/23) Armor Skin - Spot(25)
33rd-35th +22 (24) +22 +11 (24/24) - +1 CON (18) Spot(27)
36th-38th +24 (26) +24 +12 (25/25) OW Crit - Spot(29)
39th-40th +26 (28) +26 +13 (26/26) E. Prowess +1 WIS (12) Spot(31)

View File

@@ -0,0 +1,24 @@
This enormous rat looks bigger than most dogs. It has coarse, spiky fur, malevolent eyes & a long naked tail.
Skills: Climb +11, Hide +8, Listen +4, Move Silently +4, Spot +4, Swim +11
Feats: Alertness*, Low-Light Vision, Scent, Weapon Finesse
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special
1st-2nd +0 +0 +0 (10/17) Alertness* Link, share spells
3rd-5th +2 +2 +1 (11/18) Dodge Evasion
6th-8th +4 +4 +2 (12/19) - Devotion, +1 CON (13)
9th-11th +6 +6 +3 (13/20) WF(Creature) Multiattack
12th-14th +8 +8 +4 (14/21) Mobility +1 CON (14)
15th-17th +10 +10 +5 (15/22) - Improved evasion
18th-20th +12 +12 +6 (16/23) Blind-fight +1 CON (15)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special
21st-23rd +14 +14 +7 (17/24) Spr Attack -
24th-26th +16 +16 +8 (18/25) - +1 CON (16)
27th-29th +18 +18 +9 (19/26) Iron Will -
30th-32nd +20 +20 +10 (20/27) Epic Prowess +1 CON (17)
33rd-35th +22 +22 +11 (21/28) - -
36th-38th +24 +24 +12 (22/29) EWF (Creature) +1 CON (18)
39th-40th +26 +26 +13 (23/30) Armor Skin -

View File

@@ -0,0 +1,24 @@
Vipers are not particularly aggressive, but will often lash out with a venomous bite attack before attempting to retreat.
Skills: Balance +11, Climb +11, Hide +12, Listen +5, Spot +5, Swim +7
Feats: Scent, Weapon Finesse
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 +0 +0 (8/17) Imp Init Link, share spells Spot(4)
3rd-5th +2 +2 +1 (9/18) Imp Nat Att Evasion, +1 CON (12) Spot(6)
6th-8th +4 +4 +2 (10/19) - Devotion Spot(8)
9th-11th +6 +6 +3 (11/20) WF (Creature) Multiattack, +1 CON (13) Spot(10)
12th-14th +8 +8 +4 (12/21) Dodge - Spot(12)
15th-17th +10 +10 +5 (13/22) - Imp Evasion, +1 CON (14) Spot(14)
18th-20th +12 +12 +6 (14/23) Mobility - Spot(16)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 +14 +7 (15/24) Spring Att +1 CON (15) Spot(18)
24th-26th +16 +16 +8 (16/25) - - Spot(20)
27th-29th +18 +18 +9 (17/26) Blind-fight +1 CON (16) Spot(22)
30th-32nd +20 +20 +10 (18/27) Imp Crit - Spot(24)
33rd-35th +22 +22 +11 (19/28) - +1 CON (17) Spot(26)
36th-38th +24 +24 +12 (20/29) E. Prowess - Spot(28)
39th-40th +26 +26 +13 (21/30) Armor Skin +1 CON (18) Spot(30)

View File

@@ -0,0 +1,24 @@
Wolves are pack hunters known for their persistence and cunning.
Skills: Hide +2, Listen +3, Move Silently +3, Spot +3
Feats: Low-light Vision, Knockdown, Scent, Track, Weapon Focus: Creature*
Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
1st-2nd +0 (2) +0 +0 (13/15) Weapon Focus* Link, share spells Spot(2)
3rd-5th +2 (4) +2 +1 (14/16) Dodge Evasion, +1 CON (16) Spot(4)
6th-8th +4 (6) +4 +2 (15/17) - Devotion Spot(7)
9th-11th +6 (8) +6 +3 (16/18) Power Attack Multiattack, +1 CON (17) Spot(10)
12th-14th +8 (10) +8 +4 (17/19) Mobility - Spot(13)
15th-17th +10 (12) +10 +5 (18/20) - Imp Evasion, +1 CON (18) Spot(15) L(3)
18th-20th +12 (14) +12 +6 (19/21) Cleave - Spot(17) L(4)
Epic Progression:
PC Level Bonus HD Natural AC+ Str/Dex+ Feat Special Skills
21st-23rd +14 (16) +14 +7 (20/22) Spring Att +1 CON (19) Spot(19) L(5)
24th-26th +16 (18) +16 +8 (21/23) - - Spot(21) L(6)
27th-29th +18 (20) +18 +9 (22/24) Blind-fight +1 CON (20) Spot(23) L(7)
30th-32nd +20 (22) +20 +10 (23/25) Armor Skin - Spot(25) L(8)
33rd-35th +22 (24) +22 +11 (24/26) - +1 CON (21) Spot(27) L(9)
36th-38th +24 (26) +24 +12 (25/27) E. Prowess - Spot(29) L(10)
39th-40th +26 (28) +26 +13 (26/28) Epic WF +1 CON (22) Spot(31) L(11)

View File

@@ -126,8 +126,8 @@
122 16807269 heavy_mace 1 3 0x1C030 1 2 wxblmh 0 1 1 1 it_bag iwxblmh 0 **** 2 3 **** 1.2 10 255 1 8 1 2 1 6 1 2 16807270 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807271 0 1 80 2 **** **** **** 100 100 0 99 1 24609 24621 24633 24645 24657 24669 24681 24693 **** **** 122 16807269 heavy_mace 1 3 0x1C030 1 2 wxblmh 0 1 1 1 it_bag iwxblmh 0 **** 2 3 **** 1.2 10 255 1 8 1 2 1 6 1 2 16807270 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807271 0 1 80 2 **** **** **** 100 100 0 99 1 24609 24621 24633 24645 24657 24669 24681 24693 **** ****
123 16807272 maul 2 4 0x1C030 1 2 wxblma 0 1 1 1 it_bag iwxblma 0 **** 2 3 **** 1.2 10 255 1 10 1 3 1 8 1 2 16807273 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807274 0 1 200 12 **** **** **** 100 100 0 99 1 24610 24622 24634 24646 24658 24670 24682 24694 **** **** 123 16807272 maul 2 4 0x1C030 1 2 wxblma 0 1 1 1 it_bag iwxblma 0 **** 2 3 **** 1.2 10 255 1 10 1 3 1 8 1 2 16807273 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807274 0 1 200 12 **** **** **** 100 100 0 99 1 24610 24622 24634 24646 24658 24670 24682 24694 **** ****
124 16807275 scimitar_double 2 5 0x1c010 1 2 wxdbsc 0 1 1 1 it_bag iwxdbsc 0 8 3 4 **** 1.5 10 255 1 6 3 2 1 63 1 2 16807276 10 8 0 0 1 **** **** **** **** **** 4 0 0 16807277 0 1 150 11 **** **** **** 50 50 50 99 1 24611 24623 24635 24647 24659 24671 24683 24695 **** **** 124 16807275 scimitar_double 2 5 0x1c010 1 2 wxdbsc 0 1 1 1 it_bag iwxdbsc 0 8 3 4 **** 1.5 10 255 1 6 3 2 1 63 1 2 16807276 10 8 0 0 1 **** **** **** **** **** 4 0 0 16807277 0 1 150 11 **** **** **** 50 50 50 99 1 24611 24623 24635 24647 24659 24671 24683 24695 **** ****
125 16807284 goad 1 2 0x1C030 0 2 wspgd 0 1 1 1 it_bag iwspgd 0 **** 1 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 16807285 8 8 0 0 1 **** **** **** **** **** 4 0 0 16807286 0 1 30 18 **** **** **** 35 35 65 22 1 24612 24624 24636 24348 24660 24672 24684 24596 **** 2 125 16807284 goad 2 2 0x1C030 0 2 wspgd 0 1 1 1 it_bag iwspgd 0 **** 1 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 16807285 8 8 0 0 1 **** **** **** **** **** 4 0 0 16807286 0 1 30 18 **** **** **** 35 35 65 22 1 24612 24624 24636 24348 24660 24672 24684 24596 **** 2
126 16793718 eagleclaw 1 2 0x1C030 1 2 wswec 0 1 1 1 it_bag iwswec 0 **** 4 2 **** 1.2 10 255 1 6 3 2 1 20 1 2 16793719 8 8 0 0 1 **** **** **** **** **** 4 0 0 16793720 0 1 20 1 **** **** **** 35 35 65 19 1 24721 24722 24723 24724 24725 24726 24727 24728 **** 2 126 16793718 eagleclaw 2 2 0x1C030 1 2 wswec 0 1 1 1 it_bag iwswec 0 **** 4 2 **** 1.2 10 255 1 6 3 2 1 20 1 2 16793719 8 8 0 0 1 **** **** **** **** **** 4 0 0 16793720 0 1 20 1 **** **** **** 35 35 65 19 1 24721 24722 24723 24724 24725 24726 24727 24728 **** 2
127 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 127 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
128 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 128 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
129 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 129 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@@ -3,7 +3,7 @@
Label Level SpellID ReqFeat Swift Exp Label Level SpellID ReqFeat Swift Exp
0 AstralConstruct 1 14330 **** 0 1 0 AstralConstruct 1 14330 **** 0 1
1 BiteOfTheWolf 1 14048 **** 0 1 1 BiteOfTheWolf 1 14048 **** 0 1
2 Bolt 1 14001 **** 0 1 2 Bolt 1 14001 **** 0 0
3 Burst 1 14041 **** 1 0 3 Burst 1 14041 **** 1 0
4 CallToMind 1 14002 **** 0 1 4 CallToMind 1 14002 **** 0 1
5 CallWeaponry 1 14257 **** 0 1 5 CallWeaponry 1 14257 **** 0 1
@@ -11,23 +11,23 @@
7 ClawsOfTheBeast 1 14049 **** 1 1 7 ClawsOfTheBeast 1 14049 **** 1 1
8 Compression 1 14258 **** 0 0 8 Compression 1 14258 **** 0 0
9 ConcealThought 1 14013 **** 0 0 9 ConcealThought 1 14013 **** 0 0
10 CreateSound 1 14050 **** 0 1 10 CreateSound 1 14050 **** 0 0
11 CrystalShard 1 14004 **** 0 1 11 CrystalShard 1 14004 **** 0 1
12 Daze 1 14005 **** 0 1 12 Daze 1 14005 **** 0 1
13 Deceleration 1 14006 **** 0 1 13 Deceleration 1 14006 **** 0 1
14 DefPrecog 1 14007 **** 0 0 14 DefPrecog 1 14007 **** 0 0
15 Demoralize 1 14008 **** 0 1 15 Demoralize 1 14008 **** 0 1
16 DestinyDissonance 1 14042 **** 0 1 16 DestinyDissonance 1 14042 **** 0 1
17 Disable 1 14009 **** 0 1 17 Disable 1 14009 **** 0 0
18 DissipatingTouch 1 14010 **** 0 1 18 DissipatingTouch 1 14010 **** 0 1
19 Distract 1 14011 **** 0 0 19 Distract 1 14011 **** 0 0
20 ElfSight 1 14059 **** 0 0 20 ElfSight 1 14059 **** 0 0
21 Empathy 1 14031 **** 0 1 21 Empathy 1 14031 **** 0 0
22 EmptyMind 1 14012 **** 1 0 22 EmptyMind 1 14012 **** 1 0
23 EnergyRay 1 14331 **** 0 1 23 EnergyRay 1 14331 **** 0 1
24 Entangle 1 14018 **** 0 1 24 Entangle 1 14018 **** 0 0
25 Expansion 1 14259 **** 0 1 25 Expansion 1 14259 **** 0 1
26 FarHand 1 14032 **** 0 1 26 FarHand 1 14032 **** 0 0
27 ForceScreen 1 14019 **** 0 0 27 ForceScreen 1 14019 **** 0 0
28 Grease 1 14020 **** 0 1 28 Grease 1 14020 **** 0 1
29 GripOfIron 1 14265 **** 1 1 29 GripOfIron 1 14265 **** 1 1
@@ -50,18 +50,18 @@
46 ThickenSkin 1 14029 **** 0 1 46 ThickenSkin 1 14029 **** 0 1
47 Vigor 1 14030 **** 0 0 47 Vigor 1 14030 **** 0 0
48 AnimalAffinity 2 14095 **** 0 0 48 AnimalAffinity 2 14095 **** 0 0
49 Aversion 2 14088 **** 0 1 49 Aversion 2 14088 **** 0 0
50 BestowPower 2 14051 **** 0 1 50 BestowPower 2 14051 **** 0 1
51 Biofeedback 2 14052 **** 0 1 51 Biofeedback 2 14052 **** 0 1
52 BodyEquilibrium 2 14065 **** 0 0 52 BodyEquilibrium 2 14065 **** 0 0
53 BrainLock 2 14053 **** 0 1 53 BrainLock 2 14053 **** 0 1
54 Chameleon 2 14097 **** 0 0 54 Chameleon 2 14097 **** 0 0
55 ClairvoyantSense 2 14098 **** 0 1 55 ClairvoyantSense 2 14098 **** 0 1
56 CloudMind 2 14099 **** 0 1 56 CloudMind 2 14099 **** 0 0
57 ConcBlast 2 14054 **** 0 1 57 ConcBlast 2 14054 **** 0 1
58 ConcealAmorpha 2 14055 **** 0 0 58 ConcealAmorpha 2 14055 **** 0 0
59 ControlObject 2 14260 **** 0 0 59 ControlObject 2 14260 **** 0 0
60 ControlSound 2 14086 **** 0 1 60 ControlSound 2 14086 **** 0 0
61 CrystalSwarm 2 14056 **** 0 1 61 CrystalSwarm 2 14056 **** 0 1
62 Darkvision 2 14102 **** 0 0 62 Darkvision 2 14102 **** 0 0
63 DimensionSwap 2 14089 **** 0 1 63 DimensionSwap 2 14089 **** 0 1
@@ -76,7 +76,7 @@
72 Identify 2 14076 **** 0 1 72 Identify 2 14076 **** 0 1
73 IdInsinuation 2 14077 **** 0 1 73 IdInsinuation 2 14077 **** 0 1
74 InflictPain 2 14078 **** 0 1 74 InflictPain 2 14078 **** 0 1
75 Knock 2 14079 **** 0 1 75 Knock 2 14079 **** 0 0
76 Lock 2 14071 **** 0 1 76 Lock 2 14071 **** 0 1
77 MindDisrupt 2 14080 **** 0 1 77 MindDisrupt 2 14080 **** 0 1
78 PainfulStrike 2 14066 **** 0 1 78 PainfulStrike 2 14066 **** 0 1
@@ -136,7 +136,7 @@
132 PsychicReformation 4 14155 **** 0 1 132 PsychicReformation 4 14155 **** 0 1
133 PsychicVampire 4 14169 **** 0 1 133 PsychicVampire 4 14169 **** 0 1
134 SteadfastPerception 4 14148 **** 0 0 134 SteadfastPerception 4 14148 **** 0 0
135 TelekineticManeuver 4 14156 **** 0 1 135 TelekineticManeuver 4 14156 **** 0 0
136 Truevenom 4 14174 **** 1 1 136 Truevenom 4 14174 **** 1 1
137 TruevenomWeapon 4 14175 **** 1 1 137 TruevenomWeapon 4 14175 **** 1 1
138 WeaponOfEnergy 4 14351 **** 0 1 138 WeaponOfEnergy 4 14351 **** 0 1
@@ -146,7 +146,7 @@
142 EctoplasmicShambler 5 14182 **** 0 1 142 EctoplasmicShambler 5 14182 **** 0 1
143 EnergyCurrent 5 14344 **** 0 1 143 EnergyCurrent 5 14344 **** 0 1
144 HailOfCrystals 5 14189 **** 0 1 144 HailOfCrystals 5 14189 **** 0 1
145 PowerResist 5 14183 **** 0 1 145 PowerResist 5 14183 **** 0 0
146 PsionicRevivify 5 14197 **** 0 1 146 PsionicRevivify 5 14197 **** 0 1
147 PsychicCrush 5 14184 **** 0 1 147 PsychicCrush 5 14184 **** 0 1
148 PsychoFeedback 5 14198 **** 0 1 148 PsychoFeedback 5 14198 **** 0 1
@@ -156,4 +156,4 @@
152 ShatterMindBlank 5 14188 **** 0 1 152 ShatterMindBlank 5 14188 **** 0 1
153 Teleport 5 14343 **** 0 1 153 Teleport 5 14343 **** 0 1
154 TowerIronWill 5 14185 **** 1 1 154 TowerIronWill 5 14185 **** 1 1
155 TrueSeeing 5 14186 **** 0 1 155 TrueSeeing 5 14186 **** 0 0

View File

@@ -2,20 +2,20 @@
Label Level FeatID IPFeatID SpellID RealSpellID Exp Label Level FeatID IPFeatID SpellID RealSpellID Exp
0 55 **** **** **** **** **** **** 0 55 **** **** **** **** **** ****
1 Psychic_Rogue_Bolt 1 21001 12001 14361 14001 1 1 Psychic_Rogue_Bolt 1 21001 12001 14361 14001 0
2 Psychic_Rogue_Burst 1 21002 12002 14362 14041 0 2 Psychic_Rogue_Burst 1 21002 12002 14362 14041 0
3 Psychic_Rogue_Compression 1 21003 12003 14363 14258 0 3 Psychic_Rogue_Compression 1 21003 12003 14363 14258 0
4 Psychic_Rogue_Conceal_Thoughts 1 21004 12004 14364 14013 0 4 Psychic_Rogue_Conceal_Thoughts 1 21004 12004 14364 14013 0
5 Psychic_Rogue_ControlObject 1 21005 12005 14365 14260 1 5 Psychic_Rogue_ControlObject 1 21005 12005 14365 14260 1
6 Psychic_Rogue_CreateSound 1 21006 12006 14366 14050 1 6 Psychic_Rogue_CreateSound 1 21006 12006 14366 14050 0
7 Psychic_Rogue_DefPrecog 1 21007 12007 14367 14007 0 7 Psychic_Rogue_DefPrecog 1 21007 12007 14367 14007 0
8 Psychic_Rogue_Disable 1 21008 12008 14368 14009 1 8 Psychic_Rogue_Disable 1 21008 12008 14368 14009 0
9 Psychic_Rogue_Distract 1 21009 12009 14369 14011 0 9 Psychic_Rogue_Distract 1 21009 12009 14369 14011 0
10 Psychic_Rogue_ElfSight 1 21010 12010 14370 14059 0 10 Psychic_Rogue_ElfSight 1 21010 12010 14370 14059 0
11 Psychic_Rogue_Empathy 1 21011 12011 14371 14031 1 11 Psychic_Rogue_Empathy 1 21011 12011 14371 14031 0
12 Psychic_Rogue_EmptyMind 1 21012 12012 14372 14012 0 12 Psychic_Rogue_EmptyMind 1 21012 12012 14372 14012 0
13 Psychic_Rogue_EntanglingEctoplasm 1 21013 12013 14373 14018 1 13 Psychic_Rogue_EntanglingEctoplasm 1 21013 12013 14373 14018 0
14 Psychic_Rogue_Far_Hand 1 21014 12014 14374 14032 1 14 Psychic_Rogue_Far_Hand 1 21014 12014 14374 14032 0
15 Psychic_Rogue_ForceScreen 1 21015 12015 14375 14019 0 15 Psychic_Rogue_ForceScreen 1 21015 12015 14375 14019 0
16 Psychic_Rogue_GripOfIron 1 21930 12930 15688 14265 1 16 Psychic_Rogue_GripOfIron 1 21930 12930 15688 14265 1
17 Psychic_Rogue_MyLight 1 21016 12016 14376 14024 0 17 Psychic_Rogue_MyLight 1 21016 12016 14376 14024 0
@@ -24,15 +24,15 @@
20 Psychic_Rogue_Skate 1 21019 12019 14379 14034 0 20 Psychic_Rogue_Skate 1 21019 12019 14379 14034 0
21 Psychic_Rogue_Vigor 1 21020 12020 14380 14030 0 21 Psychic_Rogue_Vigor 1 21020 12020 14380 14030 0
22 Psychic_Rogue_AnimalAffinity 2 21021 12021 14381 14095 0 22 Psychic_Rogue_AnimalAffinity 2 21021 12021 14381 14095 0
23 Psychic_Rogue_Aversion 2 21022 12022 14382 14088 1 23 Psychic_Rogue_Aversion 2 21022 12022 14382 14088 0
24 Psychic_Rogue_Body_Equilibrium 2 21023 12023 14383 14065 0 24 Psychic_Rogue_Body_Equilibrium 2 21023 12023 14383 14065 0
25 Psychic_Rogue_Chameleon 2 21024 12024 14384 14097 0 25 Psychic_Rogue_Chameleon 2 21024 12024 14384 14097 0
26 Psychic_Rogue_Cloud_Mind 2 21025 12025 14385 14099 1 26 Psychic_Rogue_Cloud_Mind 2 21025 12025 14385 14099 0
27 Psychic_Rogue_ConcealAmorpha 2 21026 12026 14386 14055 0 27 Psychic_Rogue_ConcealAmorpha 2 21026 12026 14386 14055 0
28 Psychic_Rogue_ControlObject 2 21027 12027 14387 14260 0 28 Psychic_Rogue_ControlObject 2 21027 12027 14387 14260 0
29 Psychic_Rogue_ControlSound 2 21028 12028 14388 14086 1 29 Psychic_Rogue_ControlSound 2 21028 12028 14388 14086 0
30 Psychic_Rogue_Darkvision 2 21029 12029 14389 14102 0 30 Psychic_Rogue_Darkvision 2 21029 12029 14389 14102 0
31 Psychic_Rogue_Knock 2 21030 12030 14390 14079 1 31 Psychic_Rogue_Knock 2 21030 12030 14390 14079 0
32 Psychic_Rogue_ThoughtShield 2 21031 12031 14391 14082 0 32 Psychic_Rogue_ThoughtShield 2 21031 12031 14391 14082 0
33 Psychic_Rogue_BodyAdjustment 3 21032 12032 14392 14100 0 33 Psychic_Rogue_BodyAdjustment 3 21032 12032 14392 14100 0
34 Psychic_Rogue_BodyPurification 3 21033 12033 14393 14124 0 34 Psychic_Rogue_BodyPurification 3 21033 12033 14393 14124 0
@@ -52,8 +52,8 @@
48 Psychic_Rogue_Freedom_of_Movement 4 21043 12043 14407 14152 0 48 Psychic_Rogue_Freedom_of_Movement 4 21043 12043 14407 14152 0
49 Psychic_Rogue_SteadfastPercep 4 21044 12044 14408 14148 0 49 Psychic_Rogue_SteadfastPercep 4 21044 12044 14408 14148 0
50 Psychic_Rogue_TelekineticManeuver 4 21045 12045 14409 14156 1 50 Psychic_Rogue_TelekineticManeuver 4 21045 12045 14409 14156 1
51 Psychic_Rogue_Power_Resistance 5 21046 12046 14410 14183 1 51 Psychic_Rogue_Power_Resistance 5 21046 12046 14410 14183 0
52 Psychic_Rogue_RemoteViewing 5 21047 12047 14411 14180 0 52 Psychic_Rogue_RemoteViewing 5 21047 12047 14411 14180 0
53 Psychic_Rogue_Retrieve 5 21048 12048 14412 14204 0 53 Psychic_Rogue_Retrieve 5 21048 12048 14412 14204 0
54 Psychic_Rogue_PsionicRevivify 5 21049 12049 14413 14197 1 54 Psychic_Rogue_PsionicRevivify 5 21049 12049 14413 14197 1
55 Psychic_Rogue_True_Seeing 5 21050 12050 14414 14186 1 55 Psychic_Rogue_True_Seeing 5 21050 12050 14414 14186 0

View File

@@ -97,10 +97,38 @@ struct SizeModifiers
int dexSkillMod; int dexSkillMod;
}; };
//:: Returns ability mod for score
int GetAbilityModFromValue(int nAbilityValue)
{
int nMod = (nAbilityValue - 10) / 2;
// Adjust if below 10 and odd
if (nAbilityValue < 10 && (nAbilityValue % 2) != 0)
{
nMod = nMod - 1;
}
return nMod;
}
//::---------------------------------------------| //::---------------------------------------------|
//:: JSON functions | //:: JSON functions |
//::---------------------------------------------| //::---------------------------------------------|
//:: Returns the Constitution value from a GFF creature UTC
int json_GetCONValue(json jCreature)
{
int nCon = 0; // default if missing
// Check if the Con field exists
if (GffGetFieldExists(jCreature, "Con"))
{
nCon = JsonGetInt(GffGetByte(jCreature, "Con"));
}
return nCon;
}
//:: Returns the integer value of a VarTable entry named sVarName, or 0 if not found. //:: Returns the integer value of a VarTable entry named sVarName, or 0 if not found.
int json_GetLocalIntFromVarTable(json jCreature, string sVarName) int json_GetLocalIntFromVarTable(json jCreature, string sVarName)
{ {
@@ -141,12 +169,12 @@ int json_GetLocalIntFromVarTable(json jCreature, string sVarName)
return 0; return 0;
} }
//:: Returns the total Hit Dice from a JSON creature GFF. //:: Returns the total Hit Dice from a JSON'd creature GFF.
int json_GetCreatureHD(json jGff) int json_GetCreatureHD(json jCreature)
{ {
int nHD = 0; int nHD = 0;
json jClasses = GffGetList(jGff, "ClassList"); json jClasses = GffGetList(jCreature, "ClassList");
if (jClasses == JsonNull()) if (jClasses == JsonNull())
return 0; return 0;
@@ -170,6 +198,30 @@ int json_GetCreatureHD(json jGff)
return nHD; return nHD;
} }
json json_RecalcMaxHP(json jCreature, int iHitDieValue)
{
int iHD = json_GetCreatureHD(jCreature);
int iCON = json_GetCONValue(jCreature);
int iMod = GetAbilityModFromValue(iCON);
int nConBonusHP = iMod * iHD;
int iNewMaxHP = (iHitDieValue * iHD); /* nConBonusHP */
//jCreature = GffReplaceShort(jCreature, "MaxHitPoints", iNewMaxHP);
jCreature = GffReplaceShort(jCreature, "CurrentHitPoints", iNewMaxHP);
jCreature = GffReplaceShort(jCreature, "HitPoints", iNewMaxHP);
/* SendMessageToPC(GetFirstPC(), "HD = " + IntToString(iHD));
SendMessageToPC(GetFirstPC(), "HitDieValue = " + IntToString(iHitDieValue));
SendMessageToPC(GetFirstPC(), "CON = " + IntToString(iCON));
SendMessageToPC(GetFirstPC(), "Mod = " + IntToString(iMod));
SendMessageToPC(GetFirstPC(), "New HP = " + IntToString(iNewMaxHP)); */
return jCreature;
}
//:: Reads ABILITY_TO_INCREASE from creature's VarTable and applies stat boosts based on increased HD //:: Reads ABILITY_TO_INCREASE from creature's VarTable and applies stat boosts based on increased HD
json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifierCap) json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifierCap)
{ {
@@ -180,7 +232,7 @@ json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifier
int nAbilityToIncrease = json_GetLocalIntFromVarTable(jCreature, "ABILITY_TO_INCREASE"); int nAbilityToIncrease = json_GetLocalIntFromVarTable(jCreature, "ABILITY_TO_INCREASE");
if (nAbilityToIncrease < 0 || nAbilityToIncrease > 5) if (nAbilityToIncrease < 0 || nAbilityToIncrease > 5)
{ {
if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Invalid ABILITY_TO_INCREASE value: " + IntToString(nAbilityToIncrease)); DoDebug("json_ApplyAbilityBoostFromHD: Invalid ABILITY_TO_INCREASE value: " + IntToString(nAbilityToIncrease));
return jCreature; // Invalid ability index return jCreature; // Invalid ability index
} }
@@ -188,7 +240,7 @@ json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifier
json jClassList = GffGetList(jCreature, "ClassList"); json jClassList = GffGetList(jCreature, "ClassList");
if (jClassList == JsonNull()) if (jClassList == JsonNull())
{ {
if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: Failed to get ClassList"); DoDebug("json_ApplyAbilityBoostFromHD: Failed to get ClassList");
return jCreature; return jCreature;
} }
@@ -211,7 +263,7 @@ json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifier
if (nCurrentTotalHD <= 0) if (nCurrentTotalHD <= 0)
{ {
if(DEBUG) DoDebug("json_ApplyAbilityBoostFromHD: No valid Hit Dice found"); DoDebug("json_ApplyAbilityBoostFromHD: No valid Hit Dice found");
return jCreature; return jCreature;
} }
@@ -273,7 +325,7 @@ json json_ApplyAbilityBoostFromHD(json jCreature, int nOriginalHD, int nModifier
return jCreature; return jCreature;
} }
//:: Adjust a skill by its ID (more efficient than name lookup) //:: Adjust a skill by its ID
json json_AdjustCreatureSkillByID(json jCreature, int nSkillID, int nMod) json json_AdjustCreatureSkillByID(json jCreature, int nSkillID, int nMod)
{ {
// Get the SkillList // Get the SkillList
@@ -470,7 +522,7 @@ int json_GetArraySize(json jArray)
return iSize; return iSize;
} }
//:: Directly modifies oCreature's Base Natural AC if iNewAC is higher. //:: Directly updates oCreature's Base Natural AC if iNewAC is higher.
//:: //::
json json_UpdateBaseAC(json jCreature, int iNewAC) json json_UpdateBaseAC(json jCreature, int iNewAC)
{ {
@@ -493,6 +545,26 @@ json json_UpdateBaseAC(json jCreature, int iNewAC)
} }
} }
//:: Increases jCreature's Natural AC by iAddAC.
//::
json json_IncreaseBaseAC(json jCreature, int iAddAC)
{
json jBaseAC = GffGetByte(jCreature, "NaturalAC");
if (jBaseAC == JsonNull())
{
return JsonNull();
}
else
{
int nBaseAC = JsonGetInt(jBaseAC); // convert JSON number -> int
int nNewAC = nBaseAC + iAddAC;
jCreature = GffReplaceByte(jCreature, "NaturalAC", nNewAC);
return jCreature;
}
}
//:: Directly modifies jCreature's Challenge Rating. //:: Directly modifies jCreature's Challenge Rating.
//:: This is useful for most XP calculations. //:: This is useful for most XP calculations.
json json_UpdateCR(json jCreature, int nBaseCR, int nCRMod) json json_UpdateCR(json jCreature, int nBaseCR, int nCRMod)
@@ -510,8 +582,7 @@ json json_UpdateCR(json jCreature, int nBaseCR, int nCRMod)
//:: Directly modifies ability scores in a creature's JSON GFF. //:: Directly modifies ability scores in a creature's JSON GFF.
//:: //::
json json_UpdateTemplateStats(json jCreature, int iModStr = 0, int iModDex = 0, int iModCon = 0, json json_UpdateTemplateStats(json jCreature, int iModStr = 0, int iModDex = 0, int iModCon = 0, int iModInt = 0, int iModWis = 0, int iModCha = 0)
int iModInt = 0, int iModWis = 0, int iModCha = 0)
{ {
int iCurrent; int iCurrent;
@@ -745,6 +816,37 @@ json json_AdjustCreatureSize(json jCreature, int nSizeDelta)
return jCreature; return jCreature;
} }
//:: Changes jCreature's creature type.
json JsonModifyRacialType(json jCreature, int nNewRacialType)
{
if(DEBUG)DoDebug("prc_inc_function >> JsonModifyRacialType: 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));
//SpeakString("JsonGetType error 1: " + JsonGetError(jRacialTypeField));
return JsonNull();
}
// Retrieve the value to modify
json jRacialTypeValue = JsonObjectGet(jRacialTypeField, "value");
if (JsonGetType(jRacialTypeValue) != JSON_TYPE_INTEGER)
{
DoDebug("prc_inc_function >> JsonModifyRacialType: JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
//SpeakString("JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
return JsonNull();
}
jCreature = GffReplaceByte(jCreature, "Race", nNewRacialType);
// Return the new creature object
return jCreature;
}
//:: Test void //:: Test void
//:: void main (){} //:: void main (){}

View File

@@ -1477,6 +1477,10 @@ int InscribeRune(object oTarget = OBJECT_INVALID, object oCaster = OBJECT_INVALI
if(!GetIsObjectValid(oTarget)) oTarget = PRCGetSpellTargetObject(); if(!GetIsObjectValid(oTarget)) oTarget = PRCGetSpellTargetObject();
int nCaster = GetAlternativeCasterLevel(oCaster, PRCGetCasterLevel(oCaster)); int nCaster = GetAlternativeCasterLevel(oCaster, PRCGetCasterLevel(oCaster));
//:: [TO DO] make Inscribe Epic Rune.
if(nCaster > 20) nCaster = 20;
int nDC = PRCGetSaveDC(oTarget, oCaster); int nDC = PRCGetSaveDC(oTarget, oCaster);
if(!nSpell) nSpell = PRCGetSpellId(); if(!nSpell) nSpell = PRCGetSpellId();
int nSpellLevel = 0; int nSpellLevel = 0;
@@ -1499,6 +1503,7 @@ int InscribeRune(object oTarget = OBJECT_INVALID, object oCaster = OBJECT_INVALI
// Minimum level. // Minimum level.
if (nSpellLevel == 0) nSpellLevel = 1; if (nSpellLevel == 0) nSpellLevel = 1;
// This will be modified with Runecaster code later. // This will be modified with Runecaster code later.
int nCharges = 1; int nCharges = 1;
if (GetLocalInt(oCaster, "RuneCharges")) nCharges = nCount; if (GetLocalInt(oCaster, "RuneCharges")) nCharges = nCount;

View File

@@ -24,6 +24,7 @@
#include "x0_i0_position" #include "x0_i0_position"
#include "X0_INC_HENAI" #include "X0_INC_HENAI"
#include "x3_inc_skin" #include "x3_inc_skin"
#include "prc_racial_const"
/* /*
@@ -638,7 +639,7 @@ int HorseGetMountTail(object oHorse);
// FILE: x3_inc_horse FUNCTION: HorseGetMountFailureMessage() // FILE: x3_inc_horse FUNCTION: HorseGetMountFailureMessage()
// This is a companion function to HorseGetCanBeMounted. If you need a text // This is a companion function to HorseGetCanBeMounted. If you need a text
// message that explains why the horse cannot be mounted. // message that explains why the horse cannot be mounted.
string HorseGetMountFailureMessage(object oTarget,object oRider=OBJECT_INVALID); string HorseGetMountFailureMessage(object oHorse,object oRider=OBJECT_INVALID);
// FILE: x3_inc_horse FUNCTION: HorseAddHorseMenu() // FILE: x3_inc_horse FUNCTION: HorseAddHorseMenu()
@@ -1050,6 +1051,8 @@ void HORSE_SupportOriginalSpeed(object oRider)
} // check to see if matches conditions } // check to see if matches conditions
eSearch=GetNextEffect(oRider); eSearch=GetNextEffect(oRider);
} // cycle through effects } // cycle through effects
} // HORSE_SupportOriginalSpeed() } // HORSE_SupportOriginalSpeed()
@@ -2733,47 +2736,6 @@ object HorseSummonPaladinMount(int bPHBDuration=FALSE)
return oMount; return oMount;
} // HorseSummonPaladinMount() } // HorseSummonPaladinMount()
object HorseSummonPhantomSteed(int nCasterLvl, int nDuration)
{ // PURPOSE: Summon Phantom Steed
object oSummoner=OBJECT_SELF;
object oMount;
location lLoc;
int nDespawnTime;
int nCurrentTime;
int nMountNum=1;
string sResRef=HORSE_PALADIN_PREFIX;
effect eVFX;
oMount=HorseGetPaladinMount(oSummoner);
if (!GetIsObjectValid(oMount) && GetObjectType(oSummoner) == OBJECT_TYPE_CREATURE)
{ // okay to summon - only one mount at a time
if ((GetIsPC(oSummoner) || GetIsDM(oSummoner))&&!GetHasFeat(FEAT_HORSE_MENU,oSummoner)) HorseAddHorseMenu(oSummoner);
if (nCasterLvl < 11) nMountNum = 2;
else if (nCasterLvl > 10 && nCasterLvl < 15) nMountNum = 3;
else if (nCasterLvl > 14 && nCasterLvl < 25) nMountNum = 4;
else if (nCasterLvl > 24 && nCasterLvl < 30) nMountNum = 5;
else if (nCasterLvl > 29 && nCasterLvl < 35) nMountNum = 6;
else if (nCasterLvl > 34 && nCasterLvl < 40) nMountNum = 7;
else if (nCasterLvl > 39) nMountNum = 8;
lLoc=HORSE_SupportGetMountLocation(oSummoner,oSummoner);
oMount=HorseCreateHorse(sResRef+IntToString(nMountNum),lLoc,oSummoner);
if (!GetIsObjectValid(oMount)) oMount=HorseCreateHorse(sResRef+IntToString(nMountNum),GetLocation(oSummoner),oSummoner);
if (GetIsObjectValid(oMount))
{ // oMount created
eVFX=EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oMount,3.0);
eVFX=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2);
if (nMountNum>3) eVFX=EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVFX,GetLocation(oMount));
nCurrentTime=HORSE_SupportAbsoluteMinute();
nDespawnTime=(nDuration*60)+nCurrentTime;
SetLocalInt(oSummoner,"nX3_PALADIN_UNSUMMON",nDespawnTime);
if (GetLocalInt(GetModule(),"X3_ENABLE_MOUNT_DB")&&GetIsPC(oSummoner)) SetLocalInt(oSummoner,"bX3_STORE_MOUNT_INFO",TRUE);
SetLocalObject(oSummoner,"oX3PaladinMount",oMount);
} // oMount created
} // okay to summon - only one paladin mount at a time
else { oMount=OBJECT_INVALID; }
return oMount;
} // HorseSummonPaladinMount()
void HorseUnsummonPaladinMount() void HorseUnsummonPaladinMount()
{ // PURPOSE: Unsummon Paladin Mount { // PURPOSE: Unsummon Paladin Mount

Binary file not shown.

View File

@@ -53,7 +53,7 @@
49 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4 30 3 1 **** **** 49 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 4 30 3 1 **** ****
50 Drider Dr 3063 3063 16833081 108146 16833083 **** 406 4 4 4 6 6 6 30 9 RACE_FEAT_DRIDER 16833082 1 RACIAL_TYPE_DRIDER 110 9 1 drow **** **** **** 4 30 3 1 INT 268 50 Drider Dr 3063 3063 16833081 108146 16833083 **** 406 4 4 4 6 6 6 30 9 RACE_FEAT_DRIDER 16833082 1 RACIAL_TYPE_DRIDER 110 9 1 drow **** **** **** 4 30 3 1 INT 268
51 Wemic Wm 16826957 16826958 16826958 16826959 16826960 **** 467 8 2 0 -2 0 2 40 0 RACE_FEAT_WEMIC 16826961 1 RACIAL_TYPE_WEMIC 6 0 1 wemic **** **** **** 4 30 3 1 INT 274 51 Wemic Wm 16826957 16826958 16826958 16826959 16826960 **** 467 8 2 0 -2 0 2 40 0 RACE_FEAT_WEMIC 16826961 1 RACIAL_TYPE_WEMIC 6 0 1 wemic **** **** **** 4 30 3 1 INT 274
52 Plant Pl 16833077 16833077 16833078 16833079 16833080 **** 51 0 -2 0 0 0 2 0 **** **** 0 0 RACIAL_TYPE_PLANT 4 15 0.95 plant **** **** **** 4 30 3 1 INT 2355 52 Plant Pl 16833077 16833077 16833078 16833079 16833080 **** 51 0 0 0 0 0 0 0 **** **** 0 0 RACIAL_TYPE_PLANT 4 15 0.95 plant **** **** **** 4 30 3 1 INT 2355
53 Brownie Bw 16826962 16826962 16826963 16826964 16826965 **** 55 -6 10 2 2 2 2 30 8 RACE_FEAT_BROWNI 8160 1 RACIAL_TYPE_BROWNIE 20 8 1 brownie **** **** **** 4 30 3 1 INT 278 53 Brownie Bw 16826962 16826962 16826963 16826964 16826965 **** 55 -6 10 2 2 2 2 30 8 RACE_FEAT_BROWNI 8160 1 RACIAL_TYPE_BROWNIE 20 8 1 brownie **** **** **** 4 30 3 1 INT 278
54 Krinth Kr 16833149 16833149 16833150 16833149 16833151 **** 5 0 0 0 -2 0 2 30 4 RACE_FEAT_KRINTH 16833149 1 RACIAL_TYPE_KRINTH 20 4 1 krinth **** **** **** 4 30 3 1 INT 267 54 Krinth Kr 16833149 16833149 16833150 16833149 16833151 **** 5 0 0 0 -2 0 2 30 4 RACE_FEAT_KRINTH 16833149 1 RACIAL_TYPE_KRINTH 20 4 1 krinth **** **** **** 4 30 3 1 INT 267
55 Goliath Go 16833166 16833166 16833167 16833170 16833171 **** 5 4 -2 0 0 0 2 30 0 RACE_FEAT_GOL 16833166 1 RACIAL_TYPE_GOLIATH 20 0 1 goliath **** **** **** 4 30 3 1 INT 274 55 Goliath Go 16833166 16833166 16833167 16833170 16833171 **** 5 4 -2 0 0 0 2 30 0 RACE_FEAT_GOL 16833166 1 RACIAL_TYPE_GOLIATH 20 0 1 goliath **** **** **** 4 30 3 1 INT 274

View File

@@ -476,6 +476,13 @@ void main()
AddNaturalPrimaryWeapon(oPC, sResRef, 1); AddNaturalPrimaryWeapon(oPC, sResRef, 1);
} }
//damage invulnerability fire
if(GetHasFeat(FEAT_DRAGON_IMMUNE_FIRE))
{
ipIP = ItemPropertyDamageImmunity(DAMAGE_TYPE_FIRE, IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
}
//fire resistance 5 //fire resistance 5
if(GetHasFeat(FEAT_RESIST_FIRE5)) if(GetHasFeat(FEAT_RESIST_FIRE5))
{ {

View File

@@ -0,0 +1,51 @@
#include "prc_inc_spells"
//:: End Spell Effects
//:: Removes spell effects created by the caster on the chosen target or ground.
void main()
{
object oCaster = OBJECT_SELF;
object oTarget = OBJECT_SELF;
location lTarget = GetSpellTargetLocation();
// If the target is valid, handle creature/placeable effects
if (GetIsObjectValid(oTarget))
{
effect eEff = GetFirstEffect(oTarget);
while (GetIsEffectValid(eEff))
{
if (GetEffectCreator(eEff) == oCaster)
{
RemoveEffect(oTarget, eEff);
}
eEff = GetNextEffect(oTarget);
}
// Play cessate VFX on the object target
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_REMOVE_CONDITION), oTarget);
}
else
{
// Otherwise, look for persistent AoEs at the location
float fRadius = 10.0; // cover typical AoE spell size
object oAOE = MyFirstObjectInShape(SHAPE_SPHERE, fRadius, lTarget, TRUE, OBJECT_TYPE_AREA_OF_EFFECT);
int bFound = FALSE;
while (GetIsObjectValid(oAOE))
{
if (GetAreaOfEffectCreator(oAOE) == oCaster)
{
DestroyObject(oAOE);
bFound = TRUE;
}
oAOE = MyNextObjectInShape(SHAPE_SPHERE, fRadius, lTarget, TRUE, OBJECT_TYPE_AREA_OF_EFFECT);
}
// If we destroyed at least one AoE, show cessate VFX at ground target
if (bFound)
{
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_REMOVE_CONDITION), lTarget);
}
}
}

View File

@@ -131,6 +131,8 @@ void BondedSummoner(object oPC)
default: sResRef = "nw_s_"+sElem+"elder"; break; default: sResRef = "nw_s_"+sElem+"elder"; break;
} }
if(DEBUG) DoDebug("nw_s2_familiar >> Elemental resref is: "+sResRef+".");
oFam = CreateLocalNPC(oPC, ASSOCIATE_TYPE_FAMILIAR, sResRef, PRCGetSpellTargetLocation(), NPC_BONDED_FAMILIAR); oFam = CreateLocalNPC(oPC, ASSOCIATE_TYPE_FAMILIAR, sResRef, PRCGetSpellTargetLocation(), NPC_BONDED_FAMILIAR);
AddAssociate(oPC, oFam); AddAssociate(oPC, oFam);

View File

@@ -45,6 +45,7 @@ dead after being hit by a fireball).
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
#include "nw_inc_gff" #include "nw_inc_gff"
#include "prc_inc_spells" #include "prc_inc_spells"
#include "prc_inc_json"
// Validates and tracks mirror image alignment with master // Validates and tracks mirror image alignment with master
void TrackMirrorImage(object oSummoned) void TrackMirrorImage(object oSummoned)
@@ -134,36 +135,6 @@ void SetMirrorImageScripts(object oImage)
SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, ""); SetEventScript(oImage, EVENT_SCRIPT_CREATURE_ON_USER_DEFINED_EVENT, "");
} }
json JsonModifyRacialType(json jCreature, int nNewRacialType)
{
if(DEBUG)DoDebug("sp_mirror >> JsonModifyRacialType: Entering function");
// Retrieve the RacialType field
json jRacialTypeField = JsonObjectGet(jCreature, "Race");
if (JsonGetType(jRacialTypeField) == JSON_TYPE_NULL)
{
DoDebug("sp_mirror >> JsonModifyRacialType: JsonGetType error 1: " + JsonGetError(jRacialTypeField));
//SpeakString("JsonGetType error 1: " + JsonGetError(jRacialTypeField));
return JsonNull();
}
// Retrieve the value to modify
json jRacialTypeValue = JsonObjectGet(jRacialTypeField, "value");
if (JsonGetType(jRacialTypeValue) != JSON_TYPE_INTEGER)
{
DoDebug("sp_mirror >> JsonModifyRacialType: JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
//SpeakString("JsonGetType error 2: " + JsonGetError(jRacialTypeValue));
return JsonNull();
}
jCreature = GffReplaceByte(jCreature, "Race", nNewRacialType);
// Return the new creature object
return jCreature;
}
void CleanCopy(object oImage) void CleanCopy(object oImage)
{ {
SetLootable(oImage, FALSE); SetLootable(oImage, FALSE);

View File

@@ -72,6 +72,9 @@ void main()
object oAoE = GetAreaOfEffectObject(lTarget, "VFX_PER_PRISMATIC_SPHERE"); object oAoE = GetAreaOfEffectObject(lTarget, "VFX_PER_PRISMATIC_SPHERE");
SetAllAoEInts(SPELL_PRISMATIC_SPHERE, oAoE, PRCGetSpellSaveDC(SPELL_PRISMATIC_SPHERE, SPELL_SCHOOL_ABJURATION), 0, nCasterLvl); SetAllAoEInts(SPELL_PRISMATIC_SPHERE, oAoE, PRCGetSpellSaveDC(SPELL_PRISMATIC_SPHERE, SPELL_SCHOOL_ABJURATION), 0, nCasterLvl);
effect eVFX = EffectVisualEffect(VFX_DUR_PRISMATIC_SPHERE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eVFX, oAoE);
// Declare blindness // Declare blindness
effect eBlind = EffectBlindness(); effect eBlind = EffectBlindness();

View File

@@ -1,6 +1,6 @@
//:://///////////////////////////////////////////// //::///////////////////////////////////////////////
//:: Name //:: Name
//:: FileName sp_.nss //:: FileName sp_prismt_sphrb.nss
//::////////////////////////////////////////////// //:://////////////////////////////////////////////
/**@file Prismatic Sphere /**@file Prismatic Sphere
Abjuration Abjuration

File diff suppressed because it is too large Load Diff