Finished Shadowcaster marker feats
Finished Shadowcaster marker feats. Fixed Fochulan Lyrist not adding usages of Bard Song. Fixed issue with classes that advance spellcasting, but don't require spellcasting. Fixed Mystic Theurge & Force Missile Mage prereq functions.
This commit is contained in:
parent
d8a072f489
commit
99241cf201
Notes
Release
nwn/nwnprc/trunk
Binary file not shown.
Binary file not shown.
@ -49,3 +49,4 @@
|
||||
45 FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN 26709 2 1 0
|
||||
46 FEAT_ASMODEUS_MYSTERY_SHADOWCASTER 26734 2 1 0
|
||||
47 FEAT_ASMODEUS_MYSTERY_SHADOWSMITH 26746 2 1 0
|
||||
48 FEAT_ASMODEUS_SPELLCASTING_NONE 26661 2 1 0
|
||||
|
@ -59,259 +59,260 @@
|
||||
55 FEAT_DSONG_SPELLCASTING_SOL 26529 2 1 0
|
||||
56 FEAT_DSONG_SPELLCASTING_SPSHAMAN 26556 2 1 0
|
||||
57 FEAT_DSONG_SPELLCASTING_VASSAL 26619 2 1 0
|
||||
58 FEAT_DRAGONSONG_MYSTERY_SHADOWCASTER 26735 2 1 0
|
||||
59 FEAT_DRAGONSONG_MYSTERY_SHADOWSMITH 26747 2 1 0
|
||||
60 Ambidex 1 0 -1 0
|
||||
61 TwoWeap 41 0 -1 0
|
||||
62 ImpTwo 20 0 -1 0
|
||||
63 PBShot 27 0 -1 0
|
||||
64 RapidShot 30 0 -1 0
|
||||
65 PowerAtk 28 0 -1 0
|
||||
66 ImpPower 19 0 -1 0
|
||||
67 CShot 5 0 -1 0
|
||||
68 Disarm 9 0 -1 0
|
||||
69 ImpDis 16 0 -1 0
|
||||
70 KnockDown 23 0 -1 0
|
||||
71 ImpKnock 17 0 -1 0
|
||||
72 WeapFocClub 43 0 -1 0
|
||||
73 WeapFocDagger 90 0 -1 0
|
||||
74 WeapFocDart 91 0 -1 0
|
||||
75 WeapFocHXBow 92 0 -1 0
|
||||
76 WeapFocLgXBow 93 0 -1 0
|
||||
77 WeapFocLgMace 94 0 -1 0
|
||||
78 WeapFocMorn 95 0 -1 0
|
||||
79 WeapFocStaff 96 0 -1 0
|
||||
80 WeapFocSpear 97 0 -1 0
|
||||
81 WeapFocSickle 98 0 -1 0
|
||||
82 WeapFocSling 99 0 -1 0
|
||||
83 WeapFocUnArm 100 0 -1 0
|
||||
84 WeapFocLongBow 101 0 -1 0
|
||||
85 WeapFocShortBow 102 0 -1 0
|
||||
86 WeapFocShortSword 103 0 -1 0
|
||||
87 WeapFocRapier 104 0 -1 0
|
||||
88 WeapFocScim 105 0 -1 0
|
||||
89 WeapFocLSw 106 0 -1 0
|
||||
90 WeapFocGSw 107 0 -1 0
|
||||
91 WeapFocHAxe 108 0 -1 0
|
||||
92 WeapFocTAxe 109 0 -1 0
|
||||
93 WeapFocBAxe 110 0 -1 0
|
||||
94 WeapFocGAxe 111 0 -1 0
|
||||
95 WeapFocHalb 112 0 -1 0
|
||||
96 WeapFocLgHam 113 0 -1 0
|
||||
97 WeapFocLgFlail 114 0 -1 0
|
||||
98 WeapFocWHam 115 0 -1 0
|
||||
99 WeapFocHFlail 116 0 -1 0
|
||||
100 WeapFocKama 117 0 -1 0
|
||||
101 WeapFocKukri 118 0 -1 0
|
||||
102 WeapFocShur 120 0 -1 0
|
||||
103 WeapFocScy 121 0 -1 0
|
||||
104 WeapFocKatana 122 0 -1 0
|
||||
105 WeapFocBSw 123 0 -1 0
|
||||
106 WeapFocDMace 125 0 -1 0
|
||||
107 WeapFocDAxe 126 0 -1 0
|
||||
108 WeapFoc2Sw 127 0 -1 0
|
||||
109 WeaponFocusdwaxe 952 0 -1 0
|
||||
110 WeaponFocuswhip 993 0 -1 0
|
||||
111 WF_LIGHT_LANCE 24613 1 -1 0
|
||||
112 WF_HEAVY_PICK 24614 1 -1 0
|
||||
113 WF_LIGHT_PICK 24615 1 -1 0
|
||||
114 WF_SAI 24616 1 -1 0
|
||||
115 WF_NUNCHUKU 24617 1 -1 0
|
||||
116 WF_FALCHION 16834154 1 -1 0
|
||||
117 WF_SAP 24619 1 -1 0
|
||||
118 WF_KATAR 24620 1 -1 0
|
||||
119 WF_HEAVY_MACE 24621 1 -1 0
|
||||
120 WF_MAUL 24622 1 -1 0
|
||||
121 WF_DOUBLE_SCIMITAR 24623 1 -1 0
|
||||
122 WF_GOAD 24624 1 -1 0
|
||||
123 WF_ELVEN_LIGHTBLADE 24697 1 -1 0
|
||||
124 WF_ELVEN_THINBLADE 24705 1 -1 0
|
||||
125 WF_ELVEN_COURTBLADE 24713 1 -1 0
|
||||
126 IMP_CRIT_LIGHT_LANCE 24649 1 -1 0
|
||||
127 IMP_CRIT_HEAVY_PICK 16834122 1 -1 0
|
||||
128 IMP_CRIT_LIGHT_PICK 24651 1 -1 0
|
||||
129 IMP_CRIT_SAI 24652 1 -1 0
|
||||
130 IMP_CRIT_NUNCHAKU 24653 1 -1 0
|
||||
131 IMP_CRIT_FALCHION 24654 1 -1 0
|
||||
132 IMP_CRIT_SAP 24655 1 -1 0
|
||||
133 IMP_CRIT_KATAR 24656 1 -1 0
|
||||
134 IMP_CRIT_HEAVY_MACE 24657 1 -1 0
|
||||
135 IMP_CRIT_MAUL 24658 1 -1 0
|
||||
136 IMP_CRIT_DBL_SCIMITAR 24659 1 -1 0
|
||||
137 IMP_CRIT_GOAD 24660 1 -1 0
|
||||
138 IMP_CRIT_ELVEN_LIGHTBLADE 24701 1 -1 0
|
||||
139 IMP_CRIT_ELVEN_THINBLADE 24709 1 -1 0
|
||||
140 IMP_CRIT_ELVEN_COURTBLADE 24717 1 -1 0
|
||||
141 ImpCritClub 15 0 -1 0
|
||||
142 ImpCritDagger 52 0 -1 0
|
||||
143 ImpCritDart 53 0 -1 0
|
||||
144 ImpCritHXBow 54 0 -1 0
|
||||
145 ImpCritLgXBow 55 0 -1 0
|
||||
146 ImpCritLgMace 56 0 -1 0
|
||||
147 ImpCritMorn 57 0 -1 0
|
||||
148 ImpCritStaff 58 0 -1 0
|
||||
149 ImpCritSpear 59 0 -1 0
|
||||
150 ImpCritSickle 60 0 -1 0
|
||||
151 ImpCritSling 61 0 -1 0
|
||||
152 ImpCritUnArm 62 0 -1 0
|
||||
153 ImpCritLongBow 63 0 -1 0
|
||||
154 ImpCritShortBow 64 0 -1 0
|
||||
155 ImpCritShortSword 65 0 -1 0
|
||||
156 ImpCritRapier 66 0 -1 0
|
||||
157 ImpCritScim 67 0 -1 0
|
||||
158 ImpCritLSw 68 0 -1 0
|
||||
159 ImpCritGSw 69 0 -1 0
|
||||
160 ImpCritHAxe 70 0 -1 0
|
||||
161 ImpCritTAxe 71 0 -1 0
|
||||
162 ImpCritBAxe 72 0 -1 0
|
||||
163 ImpCritGAxe 73 0 -1 0
|
||||
164 ImpCritHalb 74 0 -1 0
|
||||
165 ImpCritLgHam 75 0 -1 0
|
||||
166 ImpCritLgFlail 76 0 -1 0
|
||||
167 ImpCritWHam 77 0 -1 0
|
||||
168 ImpCritHFlail 78 0 -1 0
|
||||
169 ImpCritKama 79 0 -1 0
|
||||
170 ImpCritKukri 80 0 -1 0
|
||||
171 ImpCritShur 82 0 -1 0
|
||||
172 ImpCritScy 83 0 -1 0
|
||||
173 ImpCritKatana 84 0 -1 0
|
||||
174 ImpCritBSw 85 0 -1 0
|
||||
175 ImpCritDMace 87 0 -1 0
|
||||
176 ImpCritDAxe 88 0 -1 0
|
||||
177 ImpCrit2Sw 89 0 -1 0
|
||||
178 FEAT_IMPROVED_CRITICAL_WHIP 995 0 -1 0
|
||||
179 FEAT_IMPROVED_CRITICAL_DWARVEN_WARAXE 954 0 -1 0
|
||||
180 FEAT_WEAPON_FOCUS_TRIDENT 1072 1 -1 0
|
||||
181 FEAT_IMPROVED_CRITICAL_TRIDENT 1074 1 -1 0
|
||||
182 FEAT_MANYSHOT 3306 0 -1 1
|
||||
183 Pinpoint_Accuracy 3351 0 -1 1
|
||||
184 ExtraMusic 423 0 -1 0
|
||||
185 LingeringSong 424 0 -1 0
|
||||
186 SpellFocusCon 166 0 -1 0
|
||||
187 SpellFocusDiv 167 0 -1 0
|
||||
188 SpellFocusEnc 168 0 -1 0
|
||||
189 SpellFocusEvo 169 0 -1 0
|
||||
190 SpellFocusIll 170 0 -1 0
|
||||
191 SpellFocusNec 171 0 -1 0
|
||||
192 SpellFocusTra 172 0 -1 0
|
||||
193 SpellFocusAbj 35 0 -1 0
|
||||
194 SkillFocusDevi 193 0 -1 0
|
||||
195 DefArrow 8 0 -1 0
|
||||
196 Quicken 29 0 -1 0
|
||||
197 GrSpllFcsAbj 393 0 -1 0
|
||||
198 GrSpllFcsCnj 394 0 -1 0
|
||||
199 GrSpllFcsDiv 395 0 -1 0
|
||||
200 GrSpllFcsEnch 396 0 -1 0
|
||||
201 GrSpllFcsEvc 397 0 -1 0
|
||||
202 GrSpllFcsIll 398 0 -1 0
|
||||
203 GrSpllFcsNec 399 0 -1 0
|
||||
204 GrSpllFcsTran 400 0 -1 0
|
||||
205 GreatSpellPen 401 0 -1 0
|
||||
206 ArcaneDefenseAbj 415 0 -1 0
|
||||
207 ArcaneDefenseCon 416 0 -1 0
|
||||
208 ArcaneDefenseDiv 417 0 -1 0
|
||||
209 ArcaneDefenseEnch 418 0 -1 0
|
||||
210 ArcaneDefenseEvo 419 0 -1 0
|
||||
211 ArcaneDefenseIll 420 0 -1 0
|
||||
212 ArcaneDefenseNec 421 0 -1 0
|
||||
213 ArcaneDefenseTra 422 0 -1 0
|
||||
214 FEAT_SCRIBE_SCROLL 945 0 -1 0
|
||||
215 FEAT_BREW_POTION 944 0 -1 0
|
||||
216 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 0 -1 0
|
||||
217 FEAT_CRAFT_WAND 946 0 -1 0
|
||||
218 FEAT_DISCIPLE_OF_DARKNESS 4012 0 -1 1
|
||||
219 FEAT_IMP_MANYSHOT 3350 0 -1 1
|
||||
220 FEAT_NIMBUSOFLIGHT 3165 0 -1 1
|
||||
221 FEAT_SERVHEAVEN 3355 0 -1 1
|
||||
222 FEAT_HOLYRADIANCE 3164 0 -1 1
|
||||
223 FEAT_EPIC_WILL 695 0 -1 0
|
||||
224 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 0 -1 0
|
||||
225 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
|
||||
226 FEAT_EPIC_GREAT_CHARISMA_1 764 1 -1 0
|
||||
227 FEAT_EPIC_GREAT_CHARISMA_2 765 1 -1 0
|
||||
228 FEAT_EPIC_GREAT_CHARISMA_3 766 1 -1 0
|
||||
229 FEAT_EPIC_GREAT_CHARISMA_4 767 1 -1 0
|
||||
230 FEAT_EPIC_GREAT_CHARISMA_5 768 1 -1 0
|
||||
231 FEAT_EPIC_GREAT_CHARISMA_6 769 1 -1 0
|
||||
232 FEAT_EPIC_GREAT_CHARISMA_7 770 1 -1 0
|
||||
233 FEAT_EPIC_GREAT_CHARISMA_8 771 1 -1 0
|
||||
234 FEAT_EPIC_GREAT_CHARISMA_9 772 1 -1 0
|
||||
235 FEAT_EPIC_GREAT_CHARISMA_10 773 1 -1 0
|
||||
236 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
237 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
238 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
239 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
|
||||
240 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
|
||||
241 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
|
||||
242 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
|
||||
243 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
|
||||
244 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
|
||||
245 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
|
||||
246 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 0 -1 0
|
||||
247 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 0 -1 0
|
||||
248 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 0 -1 0
|
||||
249 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 0 -1 0
|
||||
250 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 0 -1 0
|
||||
251 FEAT_EPIC_SKILL_FOCUS_HEAL 593 0 -1 0
|
||||
252 FEAT_EPIC_SKILL_FOCUS_HIDE 594 0 -1 0
|
||||
253 FEAT_EPIC_SKILL_FOCUS_LORE 596 0 -1 0
|
||||
254 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 0 -1 0
|
||||
255 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 0 -1 0
|
||||
256 FEAT_EPIC_SKILL_FOCUS_PARRY 599 0 -1 0
|
||||
257 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 0 -1 0
|
||||
258 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 0 -1 0
|
||||
259 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 0 -1 0
|
||||
260 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 0 -1 0
|
||||
261 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 0 -1 0
|
||||
262 FEAT_EPIC_SKILL_FOCUS_SPOT 606 0 -1 0
|
||||
263 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 0 -1 0
|
||||
264 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 0 -1 0
|
||||
265 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 0 -1 0
|
||||
266 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 0 -1 0
|
||||
267 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 0 -1 0
|
||||
268 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 0 -1 0
|
||||
269 FEAT_EPIC_SKILL_FOCUS_PERFORM 600 0 -1 0
|
||||
270 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 0 -1 0
|
||||
271 FEAT_EPIC_LASTING_INSPIRATION 870 0 -1 0
|
||||
272 FEAT_EPIC_SPELL_FOCUS_ABJURATION 610 0 -1 0
|
||||
273 FEAT_EPIC_SPELL_FOCUS_CONJURATION 611 0 -1 0
|
||||
274 FEAT_EPIC_SPELL_FOCUS_DIVINATION 612 0 -1 0
|
||||
275 FEAT_EPIC_SPELL_FOCUS_ENCHANTMENT 613 0 -1 0
|
||||
276 FEAT_EPIC_SPELL_FOCUS_EVOCATION 614 0 -1 0
|
||||
277 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 0 -1 0
|
||||
278 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 0 -1 0
|
||||
279 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 0 -1 0
|
||||
280 FEAT_EPIC_SPELL_PENETRATION 618 0 -1 0
|
||||
281 FEAT_EPIC_AUTOMATIC_LESSER_QUICKEN 857 0 -1 0
|
||||
282 FEAT_EPIC_AUTOMATIC_QUICKEN 858 0 -1 0
|
||||
283 FEAT_EPIC_AUTOMATIC_GREATER_QUICKEN 859 0 -1 0
|
||||
284 FEAT_EPIC_AUTOMATIC_LESSER_SILENT 860 0 -1 0
|
||||
285 FEAT_EPIC_AUTOMATIC_SILENT 861 0 -1 0
|
||||
286 FEAT_EPIC_AUTOMATIC_GREATER_SILENT 862 0 -1 0
|
||||
287 FEAT_EPIC_AUTOMATIC_LESSER_STILL 863 0 -1 0
|
||||
288 FEAT_EPIC_AUTOMATIC_STILL 864 0 -1 0
|
||||
289 FEAT_EPIC_AUTOMATIC_GREATER_STILL 865 0 -1 0
|
||||
290 Bane_Magic_Aberration 23556 0 -1 0
|
||||
291 Bane_Magic_Animal 23557 0 -1 0
|
||||
292 Bane_Magic_Beast 23558 0 -1 0
|
||||
293 Bane_Magic_Construct 23559 0 -1 0
|
||||
294 Bane_Magic_Dragon 23560 0 -1 0
|
||||
295 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
296 Bane_Magic_Elemental 23562 0 -1 0
|
||||
297 Bane_Magic_Elf 23563 0 -1 0
|
||||
298 Bane_Magic_Fey 23564 0 -1 0
|
||||
299 Bane_Magic_Giant 23565 0 -1 0
|
||||
300 Bane_Magic_Gnome 23566 0 -1 0
|
||||
301 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
302 Bane_Magic_Halfling 23568 0 -1 0
|
||||
303 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
304 Bane_Magic_Human 23570 0 -1 0
|
||||
305 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
306 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
307 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
308 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
309 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
310 Bane_Magic_Outsider 23576 0 -1 0
|
||||
311 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
312 Bane_Magic_Undead 23578 0 -1 0
|
||||
313 Bane_Magic_Vermin 23579 0 -1 0
|
||||
58 FEAT_DSONG_SPELLCASTING_NONE 26662 2 1 0
|
||||
59 FEAT_DRAGONSONG_MYSTERY_SHADOWCASTER 26735 2 1 0
|
||||
60 FEAT_DRAGONSONG_MYSTERY_SHADOWSMITH 26747 2 1 0
|
||||
61 Ambidex 1 0 -1 0
|
||||
62 TwoWeap 41 0 -1 0
|
||||
63 ImpTwo 20 0 -1 0
|
||||
64 PBShot 27 0 -1 0
|
||||
65 RapidShot 30 0 -1 0
|
||||
66 PowerAtk 28 0 -1 0
|
||||
67 ImpPower 19 0 -1 0
|
||||
68 CShot 5 0 -1 0
|
||||
69 Disarm 9 0 -1 0
|
||||
70 ImpDis 16 0 -1 0
|
||||
71 KnockDown 23 0 -1 0
|
||||
72 ImpKnock 17 0 -1 0
|
||||
73 WeapFocClub 43 0 -1 0
|
||||
74 WeapFocDagger 90 0 -1 0
|
||||
75 WeapFocDart 91 0 -1 0
|
||||
76 WeapFocHXBow 92 0 -1 0
|
||||
77 WeapFocLgXBow 93 0 -1 0
|
||||
78 WeapFocLgMace 94 0 -1 0
|
||||
79 WeapFocMorn 95 0 -1 0
|
||||
80 WeapFocStaff 96 0 -1 0
|
||||
81 WeapFocSpear 97 0 -1 0
|
||||
82 WeapFocSickle 98 0 -1 0
|
||||
83 WeapFocSling 99 0 -1 0
|
||||
84 WeapFocUnArm 100 0 -1 0
|
||||
85 WeapFocLongBow 101 0 -1 0
|
||||
86 WeapFocShortBow 102 0 -1 0
|
||||
87 WeapFocShortSword 103 0 -1 0
|
||||
88 WeapFocRapier 104 0 -1 0
|
||||
89 WeapFocScim 105 0 -1 0
|
||||
90 WeapFocLSw 106 0 -1 0
|
||||
91 WeapFocGSw 107 0 -1 0
|
||||
92 WeapFocHAxe 108 0 -1 0
|
||||
93 WeapFocTAxe 109 0 -1 0
|
||||
94 WeapFocBAxe 110 0 -1 0
|
||||
95 WeapFocGAxe 111 0 -1 0
|
||||
96 WeapFocHalb 112 0 -1 0
|
||||
97 WeapFocLgHam 113 0 -1 0
|
||||
98 WeapFocLgFlail 114 0 -1 0
|
||||
99 WeapFocWHam 115 0 -1 0
|
||||
100 WeapFocHFlail 116 0 -1 0
|
||||
101 WeapFocKama 117 0 -1 0
|
||||
102 WeapFocKukri 118 0 -1 0
|
||||
103 WeapFocShur 120 0 -1 0
|
||||
104 WeapFocScy 121 0 -1 0
|
||||
105 WeapFocKatana 122 0 -1 0
|
||||
106 WeapFocBSw 123 0 -1 0
|
||||
107 WeapFocDMace 125 0 -1 0
|
||||
108 WeapFocDAxe 126 0 -1 0
|
||||
109 WeapFoc2Sw 127 0 -1 0
|
||||
110 WeaponFocusdwaxe 952 0 -1 0
|
||||
111 WeaponFocuswhip 993 0 -1 0
|
||||
112 WF_LIGHT_LANCE 24613 1 -1 0
|
||||
113 WF_HEAVY_PICK 24614 1 -1 0
|
||||
114 WF_LIGHT_PICK 24615 1 -1 0
|
||||
115 WF_SAI 24616 1 -1 0
|
||||
116 WF_NUNCHUKU 24617 1 -1 0
|
||||
117 WF_FALCHION 16834154 1 -1 0
|
||||
118 WF_SAP 24619 1 -1 0
|
||||
119 WF_KATAR 24620 1 -1 0
|
||||
120 WF_HEAVY_MACE 24621 1 -1 0
|
||||
121 WF_MAUL 24622 1 -1 0
|
||||
122 WF_DOUBLE_SCIMITAR 24623 1 -1 0
|
||||
123 WF_GOAD 24624 1 -1 0
|
||||
124 WF_ELVEN_LIGHTBLADE 24697 1 -1 0
|
||||
125 WF_ELVEN_THINBLADE 24705 1 -1 0
|
||||
126 WF_ELVEN_COURTBLADE 24713 1 -1 0
|
||||
127 IMP_CRIT_LIGHT_LANCE 24649 1 -1 0
|
||||
128 IMP_CRIT_HEAVY_PICK 16834122 1 -1 0
|
||||
129 IMP_CRIT_LIGHT_PICK 24651 1 -1 0
|
||||
130 IMP_CRIT_SAI 24652 1 -1 0
|
||||
131 IMP_CRIT_NUNCHAKU 24653 1 -1 0
|
||||
132 IMP_CRIT_FALCHION 24654 1 -1 0
|
||||
133 IMP_CRIT_SAP 24655 1 -1 0
|
||||
134 IMP_CRIT_KATAR 24656 1 -1 0
|
||||
135 IMP_CRIT_HEAVY_MACE 24657 1 -1 0
|
||||
136 IMP_CRIT_MAUL 24658 1 -1 0
|
||||
137 IMP_CRIT_DBL_SCIMITAR 24659 1 -1 0
|
||||
138 IMP_CRIT_GOAD 24660 1 -1 0
|
||||
139 IMP_CRIT_ELVEN_LIGHTBLADE 24701 1 -1 0
|
||||
140 IMP_CRIT_ELVEN_THINBLADE 24709 1 -1 0
|
||||
141 IMP_CRIT_ELVEN_COURTBLADE 24717 1 -1 0
|
||||
142 ImpCritClub 15 0 -1 0
|
||||
143 ImpCritDagger 52 0 -1 0
|
||||
144 ImpCritDart 53 0 -1 0
|
||||
145 ImpCritHXBow 54 0 -1 0
|
||||
146 ImpCritLgXBow 55 0 -1 0
|
||||
147 ImpCritLgMace 56 0 -1 0
|
||||
148 ImpCritMorn 57 0 -1 0
|
||||
149 ImpCritStaff 58 0 -1 0
|
||||
150 ImpCritSpear 59 0 -1 0
|
||||
151 ImpCritSickle 60 0 -1 0
|
||||
152 ImpCritSling 61 0 -1 0
|
||||
153 ImpCritUnArm 62 0 -1 0
|
||||
154 ImpCritLongBow 63 0 -1 0
|
||||
155 ImpCritShortBow 64 0 -1 0
|
||||
156 ImpCritShortSword 65 0 -1 0
|
||||
157 ImpCritRapier 66 0 -1 0
|
||||
158 ImpCritScim 67 0 -1 0
|
||||
159 ImpCritLSw 68 0 -1 0
|
||||
160 ImpCritGSw 69 0 -1 0
|
||||
161 ImpCritHAxe 70 0 -1 0
|
||||
162 ImpCritTAxe 71 0 -1 0
|
||||
163 ImpCritBAxe 72 0 -1 0
|
||||
164 ImpCritGAxe 73 0 -1 0
|
||||
165 ImpCritHalb 74 0 -1 0
|
||||
166 ImpCritLgHam 75 0 -1 0
|
||||
167 ImpCritLgFlail 76 0 -1 0
|
||||
168 ImpCritWHam 77 0 -1 0
|
||||
169 ImpCritHFlail 78 0 -1 0
|
||||
170 ImpCritKama 79 0 -1 0
|
||||
171 ImpCritKukri 80 0 -1 0
|
||||
172 ImpCritShur 82 0 -1 0
|
||||
173 ImpCritScy 83 0 -1 0
|
||||
174 ImpCritKatana 84 0 -1 0
|
||||
175 ImpCritBSw 85 0 -1 0
|
||||
176 ImpCritDMace 87 0 -1 0
|
||||
177 ImpCritDAxe 88 0 -1 0
|
||||
178 ImpCrit2Sw 89 0 -1 0
|
||||
179 FEAT_IMPROVED_CRITICAL_WHIP 995 0 -1 0
|
||||
180 FEAT_IMPROVED_CRITICAL_DWARVEN_WARAXE 954 0 -1 0
|
||||
181 FEAT_WEAPON_FOCUS_TRIDENT 1072 1 -1 0
|
||||
182 FEAT_IMPROVED_CRITICAL_TRIDENT 1074 1 -1 0
|
||||
183 FEAT_MANYSHOT 3306 0 -1 1
|
||||
184 Pinpoint_Accuracy 3351 0 -1 1
|
||||
185 ExtraMusic 423 0 -1 0
|
||||
186 LingeringSong 424 0 -1 0
|
||||
187 SpellFocusCon 166 0 -1 0
|
||||
188 SpellFocusDiv 167 0 -1 0
|
||||
189 SpellFocusEnc 168 0 -1 0
|
||||
190 SpellFocusEvo 169 0 -1 0
|
||||
191 SpellFocusIll 170 0 -1 0
|
||||
192 SpellFocusNec 171 0 -1 0
|
||||
193 SpellFocusTra 172 0 -1 0
|
||||
194 SpellFocusAbj 35 0 -1 0
|
||||
195 SkillFocusDevi 193 0 -1 0
|
||||
196 DefArrow 8 0 -1 0
|
||||
197 Quicken 29 0 -1 0
|
||||
198 GrSpllFcsAbj 393 0 -1 0
|
||||
199 GrSpllFcsCnj 394 0 -1 0
|
||||
200 GrSpllFcsDiv 395 0 -1 0
|
||||
201 GrSpllFcsEnch 396 0 -1 0
|
||||
202 GrSpllFcsEvc 397 0 -1 0
|
||||
203 GrSpllFcsIll 398 0 -1 0
|
||||
204 GrSpllFcsNec 399 0 -1 0
|
||||
205 GrSpllFcsTran 400 0 -1 0
|
||||
206 GreatSpellPen 401 0 -1 0
|
||||
207 ArcaneDefenseAbj 415 0 -1 0
|
||||
208 ArcaneDefenseCon 416 0 -1 0
|
||||
209 ArcaneDefenseDiv 417 0 -1 0
|
||||
210 ArcaneDefenseEnch 418 0 -1 0
|
||||
211 ArcaneDefenseEvo 419 0 -1 0
|
||||
212 ArcaneDefenseIll 420 0 -1 0
|
||||
213 ArcaneDefenseNec 421 0 -1 0
|
||||
214 ArcaneDefenseTra 422 0 -1 0
|
||||
215 FEAT_SCRIBE_SCROLL 945 0 -1 0
|
||||
216 FEAT_BREW_POTION 944 0 -1 0
|
||||
217 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 0 -1 0
|
||||
218 FEAT_CRAFT_WAND 946 0 -1 0
|
||||
219 FEAT_DISCIPLE_OF_DARKNESS 4012 0 -1 1
|
||||
220 FEAT_IMP_MANYSHOT 3350 0 -1 1
|
||||
221 FEAT_NIMBUSOFLIGHT 3165 0 -1 1
|
||||
222 FEAT_SERVHEAVEN 3355 0 -1 1
|
||||
223 FEAT_HOLYRADIANCE 3164 0 -1 1
|
||||
224 FEAT_EPIC_WILL 695 0 -1 0
|
||||
225 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 0 -1 0
|
||||
226 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
|
||||
227 FEAT_EPIC_GREAT_CHARISMA_1 764 1 -1 0
|
||||
228 FEAT_EPIC_GREAT_CHARISMA_2 765 1 -1 0
|
||||
229 FEAT_EPIC_GREAT_CHARISMA_3 766 1 -1 0
|
||||
230 FEAT_EPIC_GREAT_CHARISMA_4 767 1 -1 0
|
||||
231 FEAT_EPIC_GREAT_CHARISMA_5 768 1 -1 0
|
||||
232 FEAT_EPIC_GREAT_CHARISMA_6 769 1 -1 0
|
||||
233 FEAT_EPIC_GREAT_CHARISMA_7 770 1 -1 0
|
||||
234 FEAT_EPIC_GREAT_CHARISMA_8 771 1 -1 0
|
||||
235 FEAT_EPIC_GREAT_CHARISMA_9 772 1 -1 0
|
||||
236 FEAT_EPIC_GREAT_CHARISMA_10 773 1 -1 0
|
||||
237 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
238 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
239 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
240 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
|
||||
241 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
|
||||
242 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
|
||||
243 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
|
||||
244 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
|
||||
245 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
|
||||
246 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
|
||||
247 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 0 -1 0
|
||||
248 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 0 -1 0
|
||||
249 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 0 -1 0
|
||||
250 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 0 -1 0
|
||||
251 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 0 -1 0
|
||||
252 FEAT_EPIC_SKILL_FOCUS_HEAL 593 0 -1 0
|
||||
253 FEAT_EPIC_SKILL_FOCUS_HIDE 594 0 -1 0
|
||||
254 FEAT_EPIC_SKILL_FOCUS_LORE 596 0 -1 0
|
||||
255 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 0 -1 0
|
||||
256 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 0 -1 0
|
||||
257 FEAT_EPIC_SKILL_FOCUS_PARRY 599 0 -1 0
|
||||
258 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 0 -1 0
|
||||
259 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 0 -1 0
|
||||
260 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 0 -1 0
|
||||
261 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 0 -1 0
|
||||
262 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 0 -1 0
|
||||
263 FEAT_EPIC_SKILL_FOCUS_SPOT 606 0 -1 0
|
||||
264 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 0 -1 0
|
||||
265 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 0 -1 0
|
||||
266 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 0 -1 0
|
||||
267 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 0 -1 0
|
||||
268 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 0 -1 0
|
||||
269 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 0 -1 0
|
||||
270 FEAT_EPIC_SKILL_FOCUS_PERFORM 600 0 -1 0
|
||||
271 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 0 -1 0
|
||||
272 FEAT_EPIC_LASTING_INSPIRATION 870 0 -1 0
|
||||
273 FEAT_EPIC_SPELL_FOCUS_ABJURATION 610 0 -1 0
|
||||
274 FEAT_EPIC_SPELL_FOCUS_CONJURATION 611 0 -1 0
|
||||
275 FEAT_EPIC_SPELL_FOCUS_DIVINATION 612 0 -1 0
|
||||
276 FEAT_EPIC_SPELL_FOCUS_ENCHANTMENT 613 0 -1 0
|
||||
277 FEAT_EPIC_SPELL_FOCUS_EVOCATION 614 0 -1 0
|
||||
278 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 0 -1 0
|
||||
279 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 0 -1 0
|
||||
280 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 0 -1 0
|
||||
281 FEAT_EPIC_SPELL_PENETRATION 618 0 -1 0
|
||||
282 FEAT_EPIC_AUTOMATIC_LESSER_QUICKEN 857 0 -1 0
|
||||
283 FEAT_EPIC_AUTOMATIC_QUICKEN 858 0 -1 0
|
||||
284 FEAT_EPIC_AUTOMATIC_GREATER_QUICKEN 859 0 -1 0
|
||||
285 FEAT_EPIC_AUTOMATIC_LESSER_SILENT 860 0 -1 0
|
||||
286 FEAT_EPIC_AUTOMATIC_SILENT 861 0 -1 0
|
||||
287 FEAT_EPIC_AUTOMATIC_GREATER_SILENT 862 0 -1 0
|
||||
288 FEAT_EPIC_AUTOMATIC_LESSER_STILL 863 0 -1 0
|
||||
289 FEAT_EPIC_AUTOMATIC_STILL 864 0 -1 0
|
||||
290 FEAT_EPIC_AUTOMATIC_GREATER_STILL 865 0 -1 0
|
||||
291 Bane_Magic_Aberration 23556 0 -1 0
|
||||
292 Bane_Magic_Animal 23557 0 -1 0
|
||||
293 Bane_Magic_Beast 23558 0 -1 0
|
||||
294 Bane_Magic_Construct 23559 0 -1 0
|
||||
295 Bane_Magic_Dragon 23560 0 -1 0
|
||||
296 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
297 Bane_Magic_Elemental 23562 0 -1 0
|
||||
298 Bane_Magic_Elf 23563 0 -1 0
|
||||
299 Bane_Magic_Fey 23564 0 -1 0
|
||||
300 Bane_Magic_Giant 23565 0 -1 0
|
||||
301 Bane_Magic_Gnome 23566 0 -1 0
|
||||
302 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
303 Bane_Magic_Halfling 23568 0 -1 0
|
||||
304 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
305 Bane_Magic_Human 23570 0 -1 0
|
||||
306 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
307 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
308 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
309 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
310 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
311 Bane_Magic_Outsider 23576 0 -1 0
|
||||
312 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
313 Bane_Magic_Undead 23578 0 -1 0
|
||||
314 Bane_Magic_Vermin 23579 0 -1 0
|
||||
|
@ -35,5 +35,6 @@
|
||||
31 FEAT_OLLAM_SPELLCASTING_SOHEI 26510 2 1 0
|
||||
32 FEAT_OLLAM_SPELLCASTING_SPSHAMAN 26572 2 1 0
|
||||
33 FEAT_OLLAM_SPELLCASTING_VASSAL 26626 2 1 0
|
||||
34 FEAT_OLLAM_MYSTERY_SHADOWCASTER 26740 2 1 0
|
||||
35 FEAT_OLLAM_MYSTERY_SHADOWSMITH 26752 2 1 0
|
||||
34 FEAT_OLLAM_SPELLCASTING_NONE 26664 2 1 0
|
||||
35 FEAT_OLLAM_MYSTERY_SHADOWCASTER 26740 2 1 0
|
||||
36 FEAT_OLLAM_MYSTERY_SHADOWSMITH 26752 2 1 0
|
||||
|
@ -87,3 +87,4 @@
|
||||
83 FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN 26711 2 1 0
|
||||
84 FEAT_TIAMAT_MYSTERY_SHADOWCASTER 26741 2 1 0
|
||||
85 FEAT_TIAMAT_MYSTERY_SHADOWSMITH 26753 2 1 0
|
||||
86 FEAT_TIAMAT_SPELLCASTING_NONE 26754 2 1 0
|
||||
|
@ -1,7 +1,7 @@
|
||||
2DA V2.0
|
||||
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Alertness FEAT 0 ****
|
||||
1 Lore SKILL 7 8
|
||||
2 ScriptVar VAR PRC_ArcSpell3 0
|
||||
3 ScriptVar VAR PRC_AllowAlien 0
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Alertness FEAT 0 ****
|
||||
1 Lore SKILL 7 8
|
||||
2 ScriptVar VAR PRC_PrereqAlienist 0
|
||||
3 ScriptVar VAR PRC_AllowAlien 0
|
||||
|
@ -1,9 +1,8 @@
|
||||
2DA V2.0
|
||||
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Lore SKILL 7 6
|
||||
1 Concentration SKILL 1 6
|
||||
2 Spellcraft SKILL 16 6
|
||||
3 ScriptVar VAR PRC_DivSpell2 0
|
||||
4 ScriptVar VAR PRC_ArcSpell2 0
|
||||
5 ScriptVar VAR PRC_AllowMysticTheurge 0
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Lore SKILL 7 6
|
||||
1 Concentration SKILL 1 6
|
||||
2 Spellcraft SKILL 16 6
|
||||
3 ScriptVar VAR PRC_AllowMysticTheurge 0
|
||||
4 ScriptVar VAR PRC_PrereqMysticTheurge 0
|
||||
|
@ -1,9 +1,9 @@
|
||||
2DA V2.0
|
||||
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Base_Attack BAB 4 ****
|
||||
1 ScriptVar VAR PRC_AllowOrcus 0
|
||||
2 Lore SKILL 7 4
|
||||
3 FEAT_LICHLOVED FEAT 3395 ****
|
||||
4 ScriptVar VAR PRC_DivSpell1 0
|
||||
5 FEAT_THRALL_TO_DEMON FEAT 2616 ****
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 Base_Attack BAB 4 ****
|
||||
1 ScriptVar VAR PRC_AllowOrcus 0
|
||||
2 Lore SKILL 7 4
|
||||
3 FEAT_LICHLOVED FEAT 3395 ****
|
||||
4 ScriptVar VAR PRC_PrereqOrcus 0
|
||||
5 FEAT_THRALL_TO_DEMON FEAT 2616 ****
|
||||
|
@ -1,6 +1,6 @@
|
||||
2DA V2.0
|
||||
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 ScriptVar VAR PRC_ArcSpell3 0
|
||||
1 ScriptVar VAR PRC_AllowElSav 0
|
||||
2 Lore SKILL 7 8
|
||||
LABEL ReqType ReqParam1 ReqParam2
|
||||
0 ScriptVar VAR PRC_PrereqElSav 0
|
||||
1 ScriptVar VAR PRC_AllowElSav 0
|
||||
2 Lore SKILL 7 8
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -120,6 +120,7 @@ const string ALLOW_CLASS_FISTRAZIEL = "PRC_AllowFistRaz";
|
||||
const string ALLOW_CLASS_FIST_OF_DAL_QUOR = "PRC_AllowDalQuor";
|
||||
const string ALLOW_CLASS_FIST_OF_ZUOKEN = "PRC_AllowFoZ";
|
||||
const string ALLOW_CLASS_FMM = "PRC_AllowFMM";
|
||||
const string ALLOW_CLASS_FOCHULAN_LYRIST = "PRC_AllowFocLyr";
|
||||
const string ALLOW_CLASS_FOE_HUNTER = "PRC_AllowFH";
|
||||
const string ALLOW_CLASS_FORESTMASTER = "PRC_AllowForMast";
|
||||
const string ALLOW_CLASS_FORSAKER = "PRC_AllowForsaker";
|
||||
|
@ -1768,6 +1768,10 @@ const int FEAT_TNECRO_SPELLCASTING_SUBLIME_CHORD=26657;
|
||||
const int FEAT_MHARPER_SPELLCASTING_SUEL_ARCHANAMACH=26658;
|
||||
const int FEAT_ORCUS_SPELLCASTING_SUEL_ARCHANAMACH=26659;
|
||||
const int FEAT_ORCUS_SPELLCASTING_WARMAGE=26660;
|
||||
const int FEAT_DSONG_SPELLCASTING_NONE = 26661;
|
||||
const int FEAT_ASMODEUS_SPELLCASTING_NONE = 26662;
|
||||
const int FEAT_TIAMAT_SPELLCASTING_NONE = 26663;
|
||||
const int FEAT_OLLAM_SPELLCASTING_NONE = 26664;
|
||||
|
||||
//:: Warlock invoking marker feats
|
||||
const int FEAT_ABCHAMP_INVOKING_WARLOCK = 26681;
|
||||
@ -1811,11 +1815,11 @@ const int FEAT_WILDMAGE_INVOKING_DRAGON_SHAMAN = 26714;
|
||||
|
||||
//:: Shadowcaster marker feats
|
||||
const int FEAT_AOTS_MYSTERY_SHADOWCASTER = 26731;
|
||||
const int FEAT_ALIEN_MYSTERY_SHADOWCASTER = 26732;
|
||||
const int FEAT_ALIENIST_MYSTERY_SHADOWCASTER = 26732;
|
||||
const int FEAT_CHILDNIGHT_MYSTERY_SHADOWCASTER = 26733;
|
||||
const int FEAT_ASMODEUS_MYSTERY_SHADOWCASTER = 26734;
|
||||
const int FEAT_DRAGONSONG_MYSTERY_SHADOWCASTER = 26735;
|
||||
const int FEAT_ESAVANT_MYSTERY_SHADOWCASTER = 26736;
|
||||
const int FEAT_DSONG_MYSTERY_SHADOWCASTER = 26735;
|
||||
const int FEAT_ELESAVANT_MYSTERY_SHADOWCASTER = 26736;
|
||||
const int FEAT_MASTERSHADOW_MYSTERY_SHADOWCASTER = 26737;
|
||||
const int FEAT_MYSTICTHEURGE_MYSTERY_SHADOWCASTER = 26738;
|
||||
const int FEAT_NOCTUMANCER_MYSTERY_SHADOWCASTER = 26739;
|
||||
@ -1825,11 +1829,11 @@ const int FEAT_ORCUS_MYSTERY_SHADOWCASTER = 26742;
|
||||
|
||||
//:: Shadowsmith marker feats
|
||||
const int FEAT_AOTS_MYSTERY_SHADOWSMITH = 26743;
|
||||
const int FEAT_ALIEN_MYSTERY_SHADOWSMITH = 26744;
|
||||
const int FEAT_ALIENIST_MYSTERY_SHADOWSMITH = 26744;
|
||||
const int FEAT_CHILDNIGHT_MYSTERY_SHADOWSMITH = 26745;
|
||||
const int FEAT_ASMODEUS_MYSTERY_SHADOWSMITH = 26746;
|
||||
const int FEAT_DRAGONSONG_MYSTERY_SHADOWSMITH = 26747;
|
||||
const int FEAT_ESAVANT_MYSTERY_SHADOWSMITH = 26748;
|
||||
const int FEAT_DSONG_MYSTERY_SHADOWSMITH = 26747;
|
||||
const int FEAT_ELESAVANT_MYSTERY_SHADOWSMITH = 26748;
|
||||
const int FEAT_MASTERSHADOW_MYSTERY_SHADOWSMITH = 26749;
|
||||
const int FEAT_MYSTICTHEURGE_MYSTERY_SHADOWSMITH = 26750;
|
||||
const int FEAT_NOCTUMANCER_MYSTERY_SHADOWSMITH = 26751;
|
||||
|
@ -1389,10 +1389,11 @@ void BardSong(object oPC)
|
||||
// or other classes can grant it on their own
|
||||
if(!GetHasFeat(FEAT_BARD_SONGS, oPC)) return;
|
||||
|
||||
int nTotal = GetLevelByClass(CLASS_TYPE_BARD, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_DIRGESINGER, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_VIRTUOSO, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_SUBLIME_CHORD, oPC) / 2;
|
||||
int nTotal = GetLevelByClass(CLASS_TYPE_BARD, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_DIRGESINGER, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_VIRTUOSO, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_FOCHLUCAN_LYRIST, oPC);
|
||||
nTotal += GetLevelByClass(CLASS_TYPE_SUBLIME_CHORD, oPC) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_EXTRA_MUSIC, oPC)) nTotal += 4;
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
//:: Updated for .35 by Jaysyn 2023/10/19
|
||||
|
||||
//:: Test Void
|
||||
// void main (){}
|
||||
@ -376,22 +376,88 @@ int GetPathByMystery(int nMystId)
|
||||
return nReturn;
|
||||
}
|
||||
|
||||
/*
|
||||
The following PrCs will need to be added to Shadowcasting:
|
||||
Disciple of Asmodeus, Thrall of Orcus, Ollam, Acolyte of the Skin,
|
||||
Alienist, Elemental Savant, Dragonsong Lyrist, Talon of Tiamat &
|
||||
Mystic Theurge
|
||||
*/
|
||||
|
||||
int GetShadowMagicPRCLevels(object oShadow)
|
||||
{
|
||||
int nLevel = GetLevelByClass(CLASS_TYPE_NOCTUMANCER, oShadow);
|
||||
|
||||
// These two don't add at 1st level
|
||||
if (GetLevelByClass(CLASS_TYPE_CHILD_OF_NIGHT, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_CHILD_OF_NIGHT, oShadow) - 1;
|
||||
if (GetLevelByClass(CLASS_TYPE_MASTER_OF_SHADOW, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHADOW, oShadow) - 1;
|
||||
int nLevel;
|
||||
int nShadowClass = GetPrimaryShadowMagicClass(oShadow);
|
||||
|
||||
if (nShadowClass == CLASS_TYPE_SHADOWCASTER)
|
||||
{
|
||||
if(GetHasFeat(FEAT_AOTS_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ALIENIST_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ALIENIST, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_CHILDNIGHT_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_CHILD_OF_NIGHT, oShadow) -1; //:: No increase @ 1st level
|
||||
|
||||
if(GetHasFeat(FEAT_ASMODEUS_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_DSONG_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DRAGONSONG_LYRIST, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ELESAVANT_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ELEMENTAL_SAVANT, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHADOW, oShadow) -1; //:: No increase @ 1st level
|
||||
|
||||
if(GetHasFeat(FEAT_MYSTICTHEURGE_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MYSTIC_THEURGE, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_NOCTUMANCER_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_NOCTUMANCER, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_OLLAM, oShadow) + 1 / 2);
|
||||
|
||||
if(GetHasFeat(FEAT_TIAMAT_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oShadow) + 1 / 2);
|
||||
|
||||
if(GetHasFeat(FEAT_ORCUS_MYSTERY_SHADOWCASTER, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ORCUS, oShadow) + 1 / 2);
|
||||
}
|
||||
|
||||
if (nShadowClass == CLASS_TYPE_SHADOWSMITH)
|
||||
{
|
||||
if(GetHasFeat(FEAT_AOTS_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ACOLYTE, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ALIENIST_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ALIENIST, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_CHILDNIGHT_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_CHILD_OF_NIGHT, oShadow) -1; //:: No increase @ 1st level
|
||||
|
||||
if(GetHasFeat(FEAT_ASMODEUS_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DISCIPLE_OF_ASMODEUS, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_DSONG_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_DRAGONSONG_LYRIST, oShadow) + 1) / 2;
|
||||
|
||||
if(GetHasFeat(FEAT_ELESAVANT_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_ELEMENTAL_SAVANT, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MASTER_OF_SHADOW, oShadow) -1; //:: No increase @ 1st level
|
||||
|
||||
if(GetHasFeat(FEAT_MYSTICTHEURGE_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_MYSTIC_THEURGE, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_NOCTUMANCER_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += GetLevelByClass(CLASS_TYPE_NOCTUMANCER, oShadow);
|
||||
|
||||
if(GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_OLLAM, oShadow) + 1 / 2);
|
||||
|
||||
if(GetHasFeat(FEAT_TIAMAT_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oShadow) + 1 / 2);
|
||||
|
||||
if(GetHasFeat(FEAT_ORCUS_MYSTERY_SHADOWSMITH, oShadow))
|
||||
nLevel += (GetLevelByClass(CLASS_TYPE_ORCUS, oShadow) + 1 / 2);
|
||||
}
|
||||
|
||||
return nLevel;
|
||||
}
|
||||
|
@ -58,6 +58,9 @@ int BladesingerMarkerFeats();
|
||||
//:; Enforces Cerebrmancer marker feats
|
||||
int CerebremancerMarkerFeats();
|
||||
|
||||
//:: Enforce Child of Night marker feats
|
||||
int CoNMarkerFeats();
|
||||
|
||||
//:; Enforces Combat Medic marker feats
|
||||
int CombatMedicMarkerFeats();
|
||||
|
||||
@ -139,6 +142,9 @@ int MaesterMarkerFeats();
|
||||
//:; Enforces Magekiller marker feats
|
||||
int MagekillerMarkerFeats();
|
||||
|
||||
//:: Enforces Master of Shadows marker feats
|
||||
int MasterShadowMarkerFeats();
|
||||
|
||||
//:; Enforces Master of Shrouds marker feats
|
||||
int MoSMarkerFeats();
|
||||
|
||||
@ -330,18 +336,20 @@ int AoTSMarkerFeats()
|
||||
+ GetHasFeat(FEAT_ACOLYTE_SPELLCASTING_UR_PRIEST)
|
||||
+ GetHasFeat(FEAT_ACOLYTE_SPELLCASTING_CULTIST_PEAK)
|
||||
+ GetHasFeat(FEAT_AOTS_INVOKING_WARLOCK)
|
||||
+ GetHasFeat(FEAT_AOTS_INVOKING_DFA);
|
||||
+ GetHasFeat(FEAT_AOTS_INVOKING_DFA)
|
||||
+ GetHasFeat(FEAT_AOTS_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_AOTS_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nAcolyte > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Acolyte of the Skin may only advance a single arcane, divine or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Acolyte of the Skin may only advance a single arcane, divine, shadowcasting or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nAcolyte < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Acolyte of the Skin must pick one arcane, divine or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Acolyte of the Skin must pick one arcane, divine, shadowcasting or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -439,18 +447,20 @@ int AlienistMarkerFeats()
|
||||
+ GetHasFeat(FEAT_ALIENIST_SPELLCASTING_OCULAR)
|
||||
+ GetHasFeat(FEAT_ALIENIST_SPELLCASTING_RANGER)
|
||||
+ GetHasFeat(FEAT_ALIENIST_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_ALIENIST_SPELLCASTING_UR_PRIEST);
|
||||
+ GetHasFeat(FEAT_ALIENIST_SPELLCASTING_UR_PRIEST)
|
||||
+ GetHasFeat(FEAT_ALIENIST_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_ALIENIST_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nAlienist > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Alienist may only advance a single arcane or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Alienist may only advance a single arcane, shadowcasting or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nAlienist < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Alienist must pick one arcane or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Alienist must pick one arcane, shadowcasting or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -618,20 +628,23 @@ int DoAMarkerFeats()
|
||||
+ GetHasFeat(FEAT_ASMODEUS_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_SPELLCASTING_UR_PRIEST)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_SPELLCASTING_NONE)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_INVOKING_WARLOCK)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_INVOKING_DFA)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN);
|
||||
+ GetHasFeat(FEAT_ASMODEUS_INVOKING_DRAGON_SHAMAN)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_ASMODEUS_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nDoA > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Disciple of Asmodeus may only advance a single arcane, divine or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Disciple of Asmodeus may only advance a single arcane, divine, shadowcasting or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nDoA < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Disciple of Asmodeus must pick one arcane, divine or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Disciple of Asmodeus must pick one arcane, divine, shadowcasting or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -918,6 +931,33 @@ int CerebremancerMarkerFeats()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//:: Enforce Child of Night marker feats
|
||||
int CoNMarkerFeats()
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_CHILD_OF_NIGHT))
|
||||
{
|
||||
int nChild = GetHasFeat(FEAT_CHILDNIGHT_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_CHILDNIGHT_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nChild > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Child of Night may only advance a single shadowcasting class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nChild < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Child of Night must pick one shadowcasting class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//:; Enforces Combat Medic marker feats
|
||||
int CombatMedicMarkerFeats()
|
||||
{
|
||||
@ -1142,18 +1182,21 @@ int DragonsongLyristMarkerFeats()
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_SOL)
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_VASSAL);
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_VASSAL)
|
||||
+ GetHasFeat(FEAT_DSONG_SPELLCASTING_NONE)
|
||||
+ GetHasFeat(FEAT_DSONG_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_DSONG_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nDragonsong > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Dragonsong Lyrist may only advance a single arcane or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Dragonsong Lyrist may only advance a single arcane, shadowcasting or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nDragonsong < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Dragonsong Lyrist must pick one arcane or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Dragonsong Lyrist must pick one arcane, shadowcasting or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -1332,18 +1375,20 @@ int ElementalSavantMarkerFeats()
|
||||
+ GetHasFeat(FEAT_ELESAVANT_SPELLCASTING_OCULAR)
|
||||
+ GetHasFeat(FEAT_ELESAVANT_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_ELESAVANT_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_ELESAVANT_SPELLCASTING_UR_PRIEST);
|
||||
+ GetHasFeat(FEAT_ELESAVANT_SPELLCASTING_UR_PRIEST)
|
||||
+ GetHasFeat(FEAT_ELESAVANT_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_ELESAVANT_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nElmSavant > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Elemental Savant may only advance a single arcane or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Elemental Savant may only advance a single arcane, shadowcasting or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nElmSavant < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("An Elemental Savant must pick one arcane or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("An Elemental Savant must pick one arcane, shadowcasting or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -1510,7 +1555,8 @@ int FochlucanLyristMarkerFeats()
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_SOL)
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_SPSHAMAN);
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_FOCHLUCAN_LYRIST_SPELLCASTING_UR_PRIEST);
|
||||
|
||||
|
||||
if(nFochlucanArcane > 1)
|
||||
@ -2185,6 +2231,31 @@ int MagekillerMarkerFeats()
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//:: Enforces Master of Shadows marker feats
|
||||
int MasterShadowMarkerFeats()
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_MAGEKILLER))
|
||||
{
|
||||
int nShadow = GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nShadow > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Master of Shadows may only advance a single shadowcasting class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nShadow < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Master of Shadows must pick one shadowcasting class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//:; Enforces Master of Shrouds marker feats
|
||||
int MoSMarkerFeats()
|
||||
{
|
||||
@ -2322,6 +2393,81 @@ int MorninglordMarkerFeats()
|
||||
|
||||
//:; Enforces Mystic Theurge marker feats
|
||||
int MysticTheurgeMarkerFeats()
|
||||
{
|
||||
if (GetLevelByClass(CLASS_TYPE_MYSTIC_THEURGE))
|
||||
{
|
||||
int nMysticDivine = 0;
|
||||
int nMysticArcane = 0;
|
||||
int nMysticShadow = 0;
|
||||
|
||||
// Check for divine, arcane, and shadow marker feats
|
||||
nMysticDivine = GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_ARCHIVIST)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_BLACKGUARD)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_BLIGHTER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_CLERIC)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_DOMIEL)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_DRUID)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_FAVOURED_SOUL)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_HEALER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_JUSTICEWW)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_KNIGHT_CHALICE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_KNIGHT_MIDDLECIRCLE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_NENTYAR_HUNTER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_OCULAR)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_PALADIN)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_RANGER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SOL)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_UR_PRIEST)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_VASSAL);
|
||||
|
||||
nMysticArcane = GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_FEY)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_ABERRATION)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_MONSTROUS)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_OUTSIDER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SHAPECHANGER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_ASSASSIN)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_BARD)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_BEGUILER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_CELEBRANT_SHARESS)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_CULTIST_PEAK)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_DNECRO)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_DUSKBLADE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_HARPER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_HEXBLADE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_KNIGHT_WEAVE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SHADOWLORD)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SORCERER)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SUBLIME_CHORD)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_SUEL_ARCHANAMACH)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_WARMAGE)
|
||||
+ GetHasFeat(FEAT_MYSTIC_THEURGE_SPELLCASTING_WIZARD);
|
||||
|
||||
nMysticShadow = GetHasFeat(FEAT_MYSTICTHEURGE_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_MYSTICTHEURGE_MYSTERY_SHADOWSMITH);
|
||||
|
||||
int totalMarkerFeats = nMysticDivine + nMysticArcane + nMysticShadow;
|
||||
|
||||
// Check if the character has chosen a valid combination of marker feats
|
||||
if (totalMarkerFeats > 2 || (nMysticDivine > 1 && nMysticArcane > 1)) {
|
||||
FloatingTextStringOnCreature("A Mystic Theurge may only advance two different types of spellcasting.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (nMysticDivine < 1 || nMysticArcane < 1 || nMysticShadow < 1) {
|
||||
FloatingTextStringOnCreature("A Mystic Theurge must pick two spellcasting classes to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* int MysticTheurgeMarkerFeats()
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_MYSTIC_THEURGE))
|
||||
{
|
||||
@ -2399,42 +2545,58 @@ int MysticTheurgeMarkerFeats()
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
} */
|
||||
|
||||
//:; Enforces Noctumancer marker feats
|
||||
int NoctumancerMarkerFeats()
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_NOCTUMANCER))
|
||||
{
|
||||
int nNoctumancer = GetHasFeat(FEAT_MAESTER_SPELLCASTING_FEY)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_ABERRATION)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_MONSTROUS)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_OUTSIDER)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_SHAPECHANGER)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_BARD)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_BEGUILER)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_DNECRO)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_DUSKBLADE)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_KNIGHT_WEAVE)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_SORCERER)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_SUBLIME_CHORD)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_SUEL_ARCHANAMACH)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_WARMAGE)
|
||||
+ GetHasFeat(FEAT_MAESTER_SPELLCASTING_WIZARD);
|
||||
int nNoctArcane = GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_FEY)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_ABERRATION)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_MONSTROUS)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_OUTSIDER)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_SHAPECHANGER)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_BARD)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_BEGUILER)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_DNECRO)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_DUSKBLADE)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_KNIGHT_WEAVE)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_SORCERER)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_SUBLIME_CHORD)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_SUEL_ARCHANAMACH)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_WARMAGE)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_SPELLCASTING_WIZARD);
|
||||
|
||||
int nNoctShadow = GetHasFeat(FEAT_NOCTUMANCER_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_NOCTUMANCER_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nNoctumancer > 1)
|
||||
if(nNoctArcane > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Noctumancer may only advance a single arcane or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Noctumancer may only advance a single arcane class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nNoctumancer < 1)
|
||||
if(nNoctArcane < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Noctumancer must pick one arcane or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Noctumancer must pick one arcane class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
if(nNoctShadow > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Noctumancer may only advance a single shadowcasting class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nNoctShadow < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Noctumancer must pick one shadowcasting class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
@ -2475,18 +2637,21 @@ int OllamMarkerFeats()
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_VASSAL);
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_VASSAL)
|
||||
+ GetHasFeat(FEAT_OLLAM_SPELLCASTING_NONE)
|
||||
+ GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nOllam > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Ollam may only advance a single divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Ollam may only advance a single arcane, shadowcasting or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nOllam < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Ollam must pick one divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Ollam must pick one arcane, shadowcasting or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -2589,18 +2754,20 @@ int OrcusMarkerFeats()
|
||||
+ GetHasFeat(FEAT_ORCUS_SPELLCASTING_SORCERER)
|
||||
+ GetHasFeat(FEAT_ORCUS_SPELLCASTING_SUBLIME_CHORD)
|
||||
+ GetHasFeat(FEAT_ORCUS_SPELLCASTING_SUEL_ARCHANAMACH)
|
||||
+ GetHasFeat(FEAT_ORCUS_SPELLCASTING_WARMAGE);
|
||||
+ GetHasFeat(FEAT_ORCUS_SPELLCASTING_WARMAGE)
|
||||
+ GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_OLLAM_MYSTERY_SHADOWSMITH);
|
||||
|
||||
if(nOrcus > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Thrall of Orcus may only advance a single arcane or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Thrall of Orcus may only advance a single arcane, shadowcasting or divine class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nOrcus < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Thrall of Orcus must pick one arcane or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Thrall of Orcus must pick one arcane, shadowcasting or divine class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -3462,20 +3629,23 @@ int TiamatMarkerFeats()
|
||||
+ GetHasFeat(FEAT_TIAMAT_SPELLCASTING_OASHAMAN)
|
||||
+ GetHasFeat(FEAT_TIAMAT_SPELLCASTING_SOHEI)
|
||||
+ GetHasFeat(FEAT_TIAMAT_SPELLCASTING_SPSHAMAN)
|
||||
+ GetHasFeat(FEAT_TIAMAT_SPELLCASTING_NONE)
|
||||
+ GetHasFeat(FEAT_TIAMAT_INVOKING_WARLOCK)
|
||||
+ GetHasFeat(FEAT_TIAMAT_INVOKING_DFA)
|
||||
+ GetHasFeat(FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN);
|
||||
+ GetHasFeat(FEAT_TIAMAT_INVOKING_DRAGON_SHAMAN)
|
||||
+ GetHasFeat(FEAT_TIAMAT_MYSTERY_SHADOWCASTER)
|
||||
+ GetHasFeat(FEAT_TIAMAT_MYSTERY_SHADOWSMITH); ;
|
||||
|
||||
if(nTiamat > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Talon of Tiamat may only advance a single arcane, divine or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Talon of Tiamat may only advance a single arcane, shadowcasting, divine or invoker class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(nTiamat < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("A Talon of Tiamat must pick one arcane, divine or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("A Talon of Tiamat must pick one arcane, shadowcasting, divine or invoker class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
@ -3847,6 +4017,7 @@ void main()
|
||||
|| BrimstoneSpeakerMarkerFeats()
|
||||
|| BladesingerMarkerFeats()
|
||||
|| CerebremancerMarkerFeats()
|
||||
|| CoNMarkerFeats()
|
||||
|| CombatMedicMarkerFeats()
|
||||
|| ContemplativeMarkerFeats()
|
||||
|| DragonheartMarkerFeats()
|
||||
@ -3874,6 +4045,7 @@ void main()
|
||||
|| MCoKMarkerFeats()
|
||||
|| MaesterMarkerFeats()
|
||||
|| MagekillerMarkerFeats()
|
||||
|| MasterShadowMarkerFeats()
|
||||
|| MoSMarkerFeats()
|
||||
|| MasterHarperMarkerFeats()
|
||||
|| MorninglordMarkerFeats()
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
//:: Updated for NWN .35 by Jaysyn 2023/03/11
|
||||
|
||||
|
||||
#include "inc_epicspells"
|
||||
#include "prc_inc_sneak"
|
||||
#include "psi_inc_psifunc"
|
||||
@ -130,7 +131,7 @@ void reqGender()
|
||||
DeleteLocalInt(OBJECT_SELF, "PRC_Male");
|
||||
}
|
||||
|
||||
void Kord(object oPC)
|
||||
void Kord(object oPC) //:: This could be in the prereq 2da
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqKord", 1);
|
||||
|
||||
@ -140,7 +141,7 @@ void Kord(object oPC)
|
||||
}
|
||||
}
|
||||
|
||||
void Purifier(object oPC)
|
||||
void Purifier(object oPC) //:: This could be in the prereq 2da
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqPurifier", 1);
|
||||
|
||||
@ -172,7 +173,7 @@ void Cultist(object oPC)
|
||||
int i;
|
||||
for (i = 1; i <= 8; i++)
|
||||
{
|
||||
if (GetIsArcaneClass(GetClassByPosition(i, oPC)))
|
||||
if (!GetIsArcaneClass(GetClassByPosition(i, oPC)))
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqCultist", 0);
|
||||
break;
|
||||
@ -1042,13 +1043,226 @@ void TomeOfBattle(object oPC = OBJECT_SELF)
|
||||
SetLocalInt(oPC, "PRC_PrereqSSN", 0);
|
||||
}
|
||||
|
||||
void AOTS(object oPC)
|
||||
|
||||
void FMMPreReqs(object oPC)
|
||||
{
|
||||
//:: Force Missile Mage can only be taken if the player is able to cast Magic Missile.
|
||||
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 1);
|
||||
|
||||
//:: Check PRC NewSpellBook classes: Archivist, Aberration, Monstrous, Outsider,
|
||||
//:: Shapechanger, Knight of the Weave, Sorcerer, Warmage
|
||||
|
||||
if(PRCGetIsRealSpellKnown(SPELL_MAGIC_MISSILE, oPC))
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 0);
|
||||
return;
|
||||
}
|
||||
|
||||
//:: Check Cleric & Shaman
|
||||
int iWis = GetLocalInt(GetPCSkin(oPC), "PRC_trueWis");
|
||||
if(iWis > 10 && GetHasFeat(PRC_DOMAIN_FORCE, oPC))
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 0);
|
||||
}
|
||||
|
||||
//:: Check Bioware Sorcerer
|
||||
int iCha = GetLocalInt(GetPCSkin(oPC), "PRC_trueCHA");
|
||||
if(iCha > 10)
|
||||
{
|
||||
if(GetIsInKnownSpellList(oPC, CLASS_TYPE_SORCERER, SPELL_MAGIC_MISSILE))
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 0);
|
||||
}
|
||||
}
|
||||
|
||||
//:: Check Wizard
|
||||
int iInt = GetLocalInt(GetPCSkin(oPC), "PRC_trueINT");
|
||||
if(iInt > 10)
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_WIZARD))
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 0);
|
||||
}
|
||||
|
||||
//:: Check Nentyar Hunter
|
||||
if(iWis > 10)
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_NENTYAR_HUNTER))
|
||||
SetLocalInt(oPC, "PRC_PresFMM", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ThrallOfOrcusPreReqs(object oPC)
|
||||
{
|
||||
int iArcane = 0;
|
||||
int iDivine = 0;
|
||||
int iShadow = 0;
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_ArcSpell1") == 0)
|
||||
{
|
||||
iArcane = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_DivSpell1") == 0)
|
||||
{
|
||||
iDivine = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_MystLevel1") == 0)
|
||||
{
|
||||
iShadow = 1;
|
||||
}
|
||||
|
||||
// Initialize the prerequisite variable to 1
|
||||
SetLocalInt(oPC, "PRC_PrereqOrcus", 1);
|
||||
|
||||
// Count how many conditions are true
|
||||
int conditionsMet = 0;
|
||||
|
||||
if (iArcane > 0) conditionsMet++;
|
||||
if (iDivine > 0) conditionsMet++;
|
||||
if (iShadow > 0) conditionsMet++;
|
||||
|
||||
// Check if at least one of the conditions are met and set "PRC_PrereqOrcus" to 0 if true
|
||||
if (conditionsMet >= 1)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqOrcus", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void ElementalSavantPreReqs(object oPC)
|
||||
{
|
||||
int iArcane = 0;
|
||||
int iDivine = 0;
|
||||
int iShadow = 0;
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_ArcSpell3") == 0)
|
||||
{
|
||||
iArcane = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_DivSpell3") == 0)
|
||||
{
|
||||
iDivine = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_MystLevel3") == 0)
|
||||
{
|
||||
iShadow = 1;
|
||||
}
|
||||
|
||||
// Initialize the prerequisite variable to 1
|
||||
SetLocalInt(oPC, "PRC_PrereqElSav", 1);
|
||||
|
||||
// Count how many conditions are true
|
||||
int conditionsMet = 0;
|
||||
|
||||
if (iArcane > 0) conditionsMet++;
|
||||
if (iDivine > 0) conditionsMet++;
|
||||
if (iShadow > 0) conditionsMet++;
|
||||
|
||||
// Check if at least one of the conditions are met and set "PRC_PrereqElSav" to 0 if true
|
||||
if (conditionsMet >= 1)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqElSav", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void MysticTheurgePreReqs(object oPC)
|
||||
{
|
||||
int iArcane = 0;
|
||||
int iDivine = 0;
|
||||
int iShadow = 0;
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_ArcSpell2") == 0)
|
||||
{
|
||||
iArcane = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_DivSpell2") == 0)
|
||||
{
|
||||
iDivine = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_MystLevel2") == 0)
|
||||
{
|
||||
iShadow = 1;
|
||||
}
|
||||
|
||||
// Initialize the prerequisite variable to 1
|
||||
SetLocalInt(oPC, "PRC_PrereqMysticTheurge", 1);
|
||||
|
||||
// Count how many conditions are true
|
||||
int conditionsMet = iArcane + iDivine + iShadow;
|
||||
|
||||
/* if (iArcane > 0) conditionsMet++;
|
||||
if (iDivine > 0) conditionsMet++;
|
||||
if (iShadow > 0) conditionsMet++; */
|
||||
|
||||
// Check if at least two of the conditions are met and set "PRC_PrereqMysticTheurge" to 0 if true
|
||||
if (conditionsMet > 1)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqMysticTheurge", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void AlienistPreReqs(object oPC)
|
||||
{
|
||||
int iArcane = 0;
|
||||
int iShadow = 0;
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_ArcSpell3") == 0)
|
||||
{
|
||||
iArcane = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_MystLevel3") == 0)
|
||||
{
|
||||
iShadow = 1;
|
||||
}
|
||||
|
||||
// Initialize the prerequisite variable to 1
|
||||
SetLocalInt(oPC, "PRC_PrereqAlienist", 1);
|
||||
|
||||
// Check if any of the conditions are met and set "PRC_PrereqAlienist" to 0 if true
|
||||
if (iArcane > 0 || iShadow > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqAlienist", 0);
|
||||
}
|
||||
}
|
||||
|
||||
void AOTSPreReqs(object oPC)
|
||||
{
|
||||
int iArcane = 0;
|
||||
int iShadow = 0;
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_ArcSpell2") == 0)
|
||||
{
|
||||
iArcane = 1;
|
||||
}
|
||||
|
||||
if(GetLocalInt(oPC, "PRC_MystLevel2") == 0)
|
||||
{
|
||||
iShadow = 1;
|
||||
}
|
||||
|
||||
// Initialize the prerequisite variable to 1
|
||||
SetLocalInt(oPC, "PRC_PrereqAOTS", 1);
|
||||
|
||||
// Check if any of the conditions are met and set "PRC_PrereqAOTS" to 0 if true
|
||||
if (iArcane > 0 || GetInvokerLevel(oPC) > 2 || iShadow > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqAOTS", 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* void AOTS(object oPC)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_PrereqAOTS", 1);
|
||||
int iArcane = GetLocalInt(oPC, "PRC_ArcSpell3");
|
||||
if(iArcane == 0 || GetInvokerLevel(oPC) >= 3)
|
||||
if(iArcane == 0 || GetInvokerLevel(oPC)<= 2 || GetHighestShadowcasterLevel(oPC) <= 2)
|
||||
SetLocalInt(oPC, "PRC_PrereqAOTS", 0);
|
||||
}
|
||||
} */
|
||||
|
||||
void EnlF(object oPC)
|
||||
{
|
||||
@ -1074,7 +1288,7 @@ void DragDisciple(object oPC)
|
||||
//Any nondragon (cannot already be a half-dragon)
|
||||
int nRace = GetRacialType(oPC);
|
||||
if(!GetHasTemplate(TEMPLATE_HALF_DRAGON, oPC)
|
||||
&& nRace != RACIAL_TYPE_BAAZ
|
||||
&& nRace != RACIAL_TYPE_SPIRETOPDRAGON
|
||||
&& nRace != RACIAL_TYPE_BOZAK
|
||||
&& nRace != RACIAL_TYPE_KAPAK)
|
||||
bRace = TRUE;
|
||||
@ -1519,56 +1733,61 @@ void main()
|
||||
reqDomains();
|
||||
|
||||
// Special requirements for several classes.
|
||||
Tempest();
|
||||
KOTC(oPC);
|
||||
RedWizard(oPC);
|
||||
Shadowlord(oPC, nArcHighest);
|
||||
Shifter(oPC, nArcHighest, nDivHighest);
|
||||
DemiLich(oPC);
|
||||
WWolf(oPC);
|
||||
Kord(oPC);
|
||||
Maester(oPC);
|
||||
reqCombatMedic(oPC);
|
||||
Thrallherd(oPC);
|
||||
Shadowmind(oPC);
|
||||
SoulEater(oPC);
|
||||
RacialHD(oPC);
|
||||
Virtuoso(oPC);
|
||||
LichPrereq(oPC);
|
||||
AlienistPreReqs(oPC);
|
||||
DragonDevotee(oPC);
|
||||
ElementalSavantPreReqs(oPC);
|
||||
MysticTheurgePreReqs(oPC);
|
||||
SancWarmind(oPC);
|
||||
DalQuor(oPC);
|
||||
Pyro(oPC);
|
||||
Suel();
|
||||
TomeOfBattle(oPC);
|
||||
AOTS(oPC);
|
||||
EnlF(oPC);
|
||||
DragDisciple(oPC);
|
||||
WarlockPrCs(oPC);
|
||||
Purifier(oPC);
|
||||
Shadowbane(oPC);
|
||||
WildMageReq(oPC);
|
||||
KnightWeave(oPC);
|
||||
Dragonheart(oPC);
|
||||
Cultist(oPC);
|
||||
Incarnate(oPC);
|
||||
Spinemeld(oPC);
|
||||
SapphireHierarch(oPC);
|
||||
SoulcasterReq(oPC);
|
||||
Ironsoul(oPC);
|
||||
ThrallOfOrcusPreReqs(oPC);
|
||||
AbChamp(oPC);
|
||||
Necrocarnum(oPC);
|
||||
Witchborn(oPC);
|
||||
AnimaMageReq(oPC);
|
||||
TenebrousReq(oPC);
|
||||
ScionReq(oPC);
|
||||
DragonDevotee(oPC);
|
||||
UrPriest(oPC);
|
||||
AOTSPreReqs(oPC);
|
||||
Cultist(oPC);
|
||||
DalQuor(oPC);
|
||||
DemiLich(oPC);
|
||||
DragDisciple(oPC);
|
||||
Dragonheart(oPC);
|
||||
EnlF(oPC);
|
||||
FMMPreReqs(oPC);
|
||||
Incarnate(oPC);
|
||||
Ironsoul(oPC);
|
||||
KnightWeave(oPC);
|
||||
Kord(oPC);
|
||||
KOTC(oPC);
|
||||
LichPrereq(oPC);
|
||||
Maester(oPC);
|
||||
Necrocarnum(oPC);
|
||||
Ocular(oPC);
|
||||
UMagus(oPC);
|
||||
Purifier(oPC);
|
||||
Pyro(oPC);
|
||||
RacialHD(oPC);
|
||||
RedWizard(oPC);
|
||||
reqCombatMedic(oPC);
|
||||
SapphireHierarch(oPC);
|
||||
ScionReq(oPC);
|
||||
Shadowbane(oPC);
|
||||
Shadowlord(oPC, nArcHighest);
|
||||
Shadowmind(oPC);
|
||||
Shifter(oPC, nArcHighest, nDivHighest);
|
||||
SoulcasterReq(oPC);
|
||||
SoulEater(oPC);
|
||||
Spinemeld(oPC);
|
||||
Suel();
|
||||
Tempest();
|
||||
TenebrousReq(oPC);
|
||||
Thrallherd(oPC);
|
||||
TomeOfBattle(oPC);
|
||||
TotemRager(oPC);
|
||||
UMagus(oPC);
|
||||
UrPriest(oPC);
|
||||
Virtuoso(oPC);
|
||||
WarlockPrCs(oPC);
|
||||
WildMageReq(oPC);
|
||||
Witchborn(oPC);
|
||||
WWolf(oPC);
|
||||
// Truly massive debug message flood if activated.
|
||||
|
||||
/*if (DEBUG)
|
||||
/* if (DEBUG)
|
||||
{
|
||||
string sPRC_AllSpell;
|
||||
string sPRC_ArcSpell;
|
||||
@ -1594,5 +1813,5 @@ void main()
|
||||
SendMessageToPC(oPC, sVariable + " is " + IntToString(GetLocalInt(oPC, sVariable)) + ".");
|
||||
}
|
||||
|
||||
}*/
|
||||
} */
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
@ -72960,4 +72960,12 @@ Use: Activated</entry>
|
||||
<entry id="77150" lang="en" sex="m">Mysteries: At every other Talon of TIamat level, you gain new mysteries and an increase in caster level (and mysteries known) as if you had also attained a level in a shadowcasting class to which you belonged before adding the prestige class level. You do not, however, gain any other benefit a character of that class would have gained.</entry>
|
||||
<entry id="77151" lang="en" sex="m">Mysteries: When a thrall of Orcus attains 1st, 4th, 7th, and 10th level, you gain new mysteries and an increase in caster level (and mysteries known) as if you had also attained a level in a shadowcasting class to which you belonged before adding the prestige class level. You do not, however, gain any other benefit a character of that class would have gained.</entry>
|
||||
<entry id="77152" lang="en" sex="m">Fochulan Lyrist Spellcasting (Ur-Priest)</entry>
|
||||
<entry id="77153" lang="en" sex="m">Disciple of Asmodeus Spellcasting (None)</entry>
|
||||
<entry id="77154" lang="en" sex="m">Spellcasting: While Disciple of Asmodeus can optionally advance spellcasting, shadowcasting and invoking you do not posess any classes that use these magic systems and must pick this bonus feat to continue.</entry>
|
||||
<entry id="77155" lang="en" sex="m">Talon of Tiamat Spellcasting (None)</entry>
|
||||
<entry id="77156" lang="en" sex="m">Spellcasting: While Talon of Tiamat can optionally advance spellcasting, shadowcasting and invoking you do not have posess classes that use these magic systems and must pick this bonus feat to continue.</entry>
|
||||
<entry id="77157" lang="en" sex="m">Dragonsong Lyrist Spellcasting (None)</entry>
|
||||
<entry id="77158" lang="en" sex="m">Spellcasting: While Dragonsong Lyrist can optionally advance spellcasting and shadowcasting you do not posess any classes that use these magic systems and must pick this bonus feat to continue.</entry>
|
||||
<entry id="77159" lang="en" sex="m">Ollam Spellcasting (None)</entry>
|
||||
<entry id="77160" lang="en" sex="m">Spellcasting: While an Ollam can optionally advance spellcasting and shadowcasting you do not posess any classes that use these magic systems and must pick this bonus feat to continue.</entry>
|
||||
</tlk>
|
||||
|
Loading…
x
Reference in New Issue
Block a user