Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6faae2799f | ||
|
|
8c5adc12f3 | ||
|
|
427e48a81e | ||
|
|
0e9dabdfb3 | ||
|
|
0c813b4954 | ||
|
|
6f35ce554a | ||
|
|
51ab63df4e | ||
|
|
d94be0fd42 | ||
|
|
038a4cf88d | ||
|
|
a84e7acc91 |
@@ -237,7 +237,7 @@
|
||||
233 Sohei 16790716 16827429 16827430 16827431 16827432 IR_FIGHTER 10 CLS_ATK_2 CLS_FEAT_SOHEI CLS_SAVTHR_CLER CLS_SKILL_SOHEI CLS_BFEAT_SOHEI 2 CLS_SPGN_SOHEI **** 1 1 16 10 13 14 13 10 STR 0X05 0X1 0 CLASS_TYPE_SOHEI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SOHEI 0 1 0 0 -1 6 0 **** 1 0 0 0 0 0 0 WIS Sohei 1 4 255 0 0
|
||||
234 Crusader 16790717 16829702 16829703 16829704 16829705 IR_CRUSADER 10 CLS_ATK_1 CLS_FEAT_CRUSDR CLS_SAVTHR_FIGHT CLS_SKILL_CRUSDR CLS_BFEAT_CRUSDR 4 **** **** 1 0 16 14 14 10 12 10 STR 0X1E 0X3 1 CLASS_TYPE_CRUSADER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_CRUSDR 0 1 0 0 -1 715 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
235 Swordsage 16790718 16829706 16829707 16829708 16829709 IR_MONK 8 CLS_ATK_2 CLS_FEAT_SWDSGE CLS_SAVTHR_BARD CLS_SKILL_SWDSGE CLS_BFEAT_SWDSGE 6 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_SWORDSAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SWDSGE 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
236 Warblade 16790719 16829710 16829711 16829712 16829713 IR_FIGHTER 12 CLS_ATK_1 CLS_FEAT_WARBLD CLS_SAVTHR_FIGHT CLS_SKILL_WARBLD CLS_BFEAT_WARBLD 4 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_WARBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARBLD 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
236 Warblade 16790719 16829710 16829711 16829712 16829713 IR_FIGHTER 12 CLS_ATK_1 CLS_FEAT_WARBLD CLS_SAVTHR_FIGHT CLS_SKILL_WARBLD CLS_BFEAT_WARBLD 4 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_WARBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARBLD 0 1 0 0 -1 860 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
237 Warmage 16790720 16827604 16827605 16827606 16827607 IR_HAVOCMAGE 6 CLS_ATK_3 CLS_FEAT_WRMAGE CLS_SAVTHR_WIZ CLS_SKILL_WRMAGE CLS_BFEAT_WRMAGE 2 CLS_SPGN_WRMAGE CLS_SPKN_WRMAGE 1 1 10 14 12 10 14 16 INT 0X00 0X0 0 CLASS_TYPE_WARMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WRMAGE 0 1 0 0 -1 10 130 **** **** **** **** **** **** **** **** **** Warmage **** **** **** **** ****
|
||||
238 Knight 16790721 16827632 16827633 16827634 16827635 IR_PALADIN 12 CLS_ATK_1 CLS_FEAT_KNIGHT CLS_SAVTHR_WIZ CLS_SKILL_KNIGHT CLS_BFEAT_KNIGHT 2 **** **** 1 0 16 10 16 10 10 12 STR 0X05 0X1 0 CLASS_TYPE_KNIGHT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_KNIGHT 20 1 0 0 -1 765 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
239 FistOfDalQuor 16790722 16827033 16827034 16827035 16827036 IR_SHOUDISC 10 CLS_ATK_2 CLS_FEAT_DALQUR CLS_SAVTHR_CLER CLS_SKILL_DALQUR CLS_BFEAT_DALQUR 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_FIST_DAL_QUOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DALQUR 5 0 0 0 5 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
|
||||
@@ -1,63 +1,63 @@
|
||||
2DA V2.0
|
||||
|
||||
Bonus
|
||||
0 1
|
||||
1 0
|
||||
2 0
|
||||
3 0
|
||||
4 0
|
||||
5 0
|
||||
6 0
|
||||
7 0
|
||||
8 0
|
||||
9 0
|
||||
10 0
|
||||
11 0
|
||||
12 0
|
||||
13 0
|
||||
14 0
|
||||
15 0
|
||||
16 0
|
||||
17 0
|
||||
18 0
|
||||
19 0
|
||||
20 0
|
||||
21 0
|
||||
22 1
|
||||
23 0
|
||||
24 0
|
||||
25 1
|
||||
26 0
|
||||
27 0
|
||||
28 1
|
||||
29 0
|
||||
30 0
|
||||
31 1
|
||||
32 0
|
||||
33 0
|
||||
34 1
|
||||
35 0
|
||||
36 0
|
||||
37 1
|
||||
38 0
|
||||
39 0
|
||||
40 1
|
||||
41 0
|
||||
42 0
|
||||
43 1
|
||||
44 0
|
||||
45 0
|
||||
46 1
|
||||
47 0
|
||||
48 0
|
||||
49 1
|
||||
50 0
|
||||
51 0
|
||||
52 1
|
||||
53 0
|
||||
54 0
|
||||
55 1
|
||||
56 0
|
||||
57 0
|
||||
58 1
|
||||
59 0
|
||||
Bonus
|
||||
0 1
|
||||
1 0
|
||||
2 0
|
||||
3 0
|
||||
4 0
|
||||
5 0
|
||||
6 0
|
||||
7 0
|
||||
8 0
|
||||
9 0
|
||||
10 0
|
||||
11 0
|
||||
12 0
|
||||
13 1
|
||||
14 0
|
||||
15 0
|
||||
16 0
|
||||
17 1
|
||||
18 0
|
||||
19 0
|
||||
20 0
|
||||
21 1
|
||||
22 0
|
||||
23 0
|
||||
24 0
|
||||
25 1
|
||||
26 0
|
||||
27 0
|
||||
28 0
|
||||
29 1
|
||||
30 0
|
||||
31 0
|
||||
32 0
|
||||
33 1
|
||||
34 0
|
||||
35 0
|
||||
36 0
|
||||
37 1
|
||||
38 0
|
||||
39 0
|
||||
40 0
|
||||
41 1
|
||||
42 0
|
||||
43 0
|
||||
44 0
|
||||
45 1
|
||||
46 0
|
||||
47 0
|
||||
48 0
|
||||
49 1
|
||||
50 0
|
||||
51 0
|
||||
52 0
|
||||
53 1
|
||||
54 0
|
||||
55 0
|
||||
56 0
|
||||
57 1
|
||||
58 0
|
||||
59 0
|
||||
|
||||
@@ -1,296 +1,320 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 EPIC_CEREBREMANCER 25093 3 11 0
|
||||
1 FEAT_CEREBREMANCER_MANIFEST_FOZ 18130 2 1 0
|
||||
2 FEAT_CEREBREMANCER_MANIFEST_PSION 18137 2 1 0
|
||||
3 FEAT_CEREBREMANCER_MANIFEST_PSYROUGE 18145 2 1 0
|
||||
4 FEAT_CEREBREMANCER_MANIFEST_PSYWAR 18152 2 1 0
|
||||
5 FEAT_CEREBREMANCER_MANIFEST_WARMIND 18159 2 1 0
|
||||
6 FEAT_CEREBREMANCER_MANIFEST_WILDER 18166 2 1 0
|
||||
7 FEAT_CMANCER_SPELLCASTING_FEY 18217 2 1 0
|
||||
8 FEAT_CMANCER_SPELLCASTING_ABERRATION 18262 2 1 0
|
||||
9 FEAT_CMANCER_SPELLCASTING_MONSTROUS 18309 2 1 0
|
||||
10 FEAT_CMANCER_SPELLCASTING_OUTSIDER 18356 2 1 0
|
||||
11 FEAT_CMANCER_SPELLCASTING_SHAPECHANGER 18403 2 1 0
|
||||
12 FEAT_CMANCER_SPELLCASTING_ASSASSIN 18447 2 1 0
|
||||
13 FEAT_CMANCER_SPELLCASTING_BARD 18481 2 1 0
|
||||
14 FEAT_CMANCER_SPELLCASTING_BEGUILER 18525 2 1 0
|
||||
15 FEAT_CMANCER_SPELLCASTING_CELEBRANT_SHARESS 18565 2 1 0
|
||||
16 FEAT_CMANCER_SPELLCASTING_CULTIST_PEAK 18595 2 1 0
|
||||
17 FEAT_CMANCER_SPELLCASTING_DNECRO 18633 2 1 0
|
||||
18 FEAT_CMANCER_SPELLCASTING_DUSKBLADE 18675 2 1 0
|
||||
19 FEAT_CMANCER_SPELLCASTING_HARPER 18714 2 1 0
|
||||
20 FEAT_CMANCER_SPELLCASTING_HEXBLADE 18748 2 1 0
|
||||
21 FEAT_CMANCER_SPELLCASTING_KNIGHT_WEAVE 18786 2 1 0
|
||||
22 FEAT_CMANCER_SPELLCASTING_SHADOWLORD 18823 2 1 0
|
||||
23 FEAT_CMANCER_SPELLCASTING_SORCERER 18866 2 1 0
|
||||
24 FEAT_CMANCER_SPELLCASTING_SUBLIME_CHORD 18913 2 1 0
|
||||
25 FEAT_CMANCER_SPELLCASTING_SUEL_ARCHANAMACH 18956 2 1 0
|
||||
26 FEAT_CMANCER_SPELLCASTING_WARMAGE 18998 2 1 0
|
||||
27 FEAT_CMANCER_SPELLCASTING_WIZARD 19044 2 1 0
|
||||
28 Psionic_Endowment 4802 0 2 1
|
||||
29 Greater_Psionic_Endowment 4801 0 2 1
|
||||
30 Power_Specialization 4805 0 2 1
|
||||
31 Greater_Power_Specialization 4804 0 2 0
|
||||
32 Power_Penetration 4807 0 2 1
|
||||
33 Greater_Power_Penetration 4806 0 2 1
|
||||
34 Overchannel 4826 0 2 1
|
||||
35 Talented 4829 0 2 1
|
||||
36 Chain_Power 4937 0 2 1
|
||||
37 Empower_Power 4938 0 2 1
|
||||
38 Extend_Power 4939 0 2 1
|
||||
39 Maximize_Power 4940 0 2 1
|
||||
40 Split_Psionic_Ray 4941 0 2 1
|
||||
41 Twin_Power 4942 0 2 1
|
||||
42 Widen_Power 4943 0 2 1
|
||||
43 Quicken_Power 4944 0 2 1
|
||||
44 **** **** **** **** ****
|
||||
45 Psionic_Dodge 4803 0 2 0
|
||||
46 Narrow_Mind 4808 0 2 0
|
||||
47 Combat_Manifestation 4810 0 2 0
|
||||
48 Boost_Construct 4833 0 2 0
|
||||
49 Speed_Of_Thought 4834 0 2 0
|
||||
50 Psionic_Talent_1 4835 0 2 0
|
||||
51 Psionic_Talent_2 4836 0 2 0
|
||||
52 Psionic_Talent_3 4837 0 2 0
|
||||
53 Psionic_Talent_4 4838 0 2 0
|
||||
54 Psionic_Talent_5 4839 0 2 0
|
||||
55 Psionic_Talent_6 4840 0 2 0
|
||||
56 Psionic_Talent_7 4841 0 2 0
|
||||
57 Psionic_Talent_8 4842 0 2 0
|
||||
58 Psionic_Talent_9 4843 0 2 0
|
||||
59 Psionic_Talent_10 4844 0 2 0
|
||||
60 Epic_Psionic_Focus_1 4857 1 2 0
|
||||
61 Epic_Psionic_Focus_2 4858 1 2 0
|
||||
62 Epic_Psionic_Focus_3 4859 1 2 0
|
||||
63 Epic_Psionic_Focus_4 4860 1 2 0
|
||||
64 Epic_Psionic_Focus_5 4861 1 2 0
|
||||
65 Epic_Psionic_Focus_6 4862 1 2 0
|
||||
66 Epic_Psionic_Focus_7 4863 1 2 0
|
||||
67 Epic_Psionic_Focus_8 4864 1 2 0
|
||||
68 Epic_Psionic_Focus_9 4865 1 2 0
|
||||
69 Epic_Psionic_Focus_10 4866 1 2 0
|
||||
70 Expanded_Knowledge_1 4867 0 2 0
|
||||
71 Expanded_Knowledge_2 4868 0 0 0
|
||||
72 Expanded_Knowledge_3 4869 0 0 0
|
||||
73 Expanded_Knowledge_4 4870 0 0 0
|
||||
74 Expanded_Knowledge_5 4871 0 0 0
|
||||
75 Expanded_Knowledge_6 4872 0 0 0
|
||||
76 Expanded_Knowledge_7 4873 0 0 0
|
||||
77 Expanded_Knowledge_8 4874 0 0 0
|
||||
78 Expanded_Knowledge_9 4875 0 0 0
|
||||
79 Expanded_Knowledge_10 4876 0 0 0
|
||||
80 Epic_Expanded_Knowledge_1 4877 1 2 0
|
||||
81 Epic_Expanded_Knowledge_2 4878 1 2 0
|
||||
82 Epic_Expanded_Knowledge_3 4879 1 2 0
|
||||
83 Epic_Expanded_Knowledge_4 4880 1 2 0
|
||||
84 Epic_Expanded_Knowledge_5 4881 1 2 0
|
||||
85 Epic_Expanded_Knowledge_6 4882 1 2 0
|
||||
86 Epic_Expanded_Knowledge_7 4883 1 2 0
|
||||
87 Epic_Expanded_Knowledge_8 4884 1 2 0
|
||||
88 Epic_Expanded_Knowledge_9 4885 1 2 0
|
||||
89 Epic_Expanded_Knowledge_10 4886 1 2 0
|
||||
90 Improved_Metapsionics_1 4887 1 2 0
|
||||
91 Improved_Metapsionics_2 4888 1 2 0
|
||||
92 Improved_Metapsionics_3 4889 1 2 0
|
||||
93 Improved_Metapsionics_4 4890 1 2 0
|
||||
94 Improved_Metapsionics_5 4891 1 2 0
|
||||
95 Improved_Metapsionics_6 4892 1 2 0
|
||||
96 Improved_Metapsionics_7 4893 1 2 0
|
||||
97 Improved_Metapsionics_8 4894 1 2 0
|
||||
98 Improved_Metapsionics_9 4895 1 2 0
|
||||
99 Improved_Metapsionics_10 4896 1 2 0
|
||||
100 Improved_Manifestation_1 4897 1 2 0
|
||||
101 Improved_Manifestation_2 4898 1 2 0
|
||||
102 Improved_Manifestation_3 4899 1 2 0
|
||||
103 Improved_Manifestation_4 4900 1 2 0
|
||||
104 Improved_Manifestation_5 4901 1 2 0
|
||||
105 Improved_Manifestation_6 4902 1 2 0
|
||||
106 Improved_Manifestation_7 4903 1 2 0
|
||||
107 Improved_Manifestation_8 4904 1 2 0
|
||||
108 Improved_Manifestation_9 4905 1 2 0
|
||||
109 Improved_Manifestation_10 4906 1 2 0
|
||||
110 Power_Knowledge_Psion_1 4907 0 0 0
|
||||
111 Power_Knowledge_Psion_2 4908 0 0 0
|
||||
112 Power_Knowledge_Psion_3 4909 0 0 0
|
||||
113 Power_Knowledge_Psion_4 4910 0 0 0
|
||||
114 Power_Knowledge_Psion_5 4911 0 0 0
|
||||
115 Power_Knowledge_Psion_6 4912 0 0 0
|
||||
116 Power_Knowledge_Psion_7 4913 0 0 0
|
||||
117 Power_Knowledge_Psion_8 4914 0 0 0
|
||||
118 Power_Knowledge_Psion_9 4915 0 0 0
|
||||
119 Power_Knowledge_Psion_10 4916 0 0 0
|
||||
120 Power_Knowledge_PsyWar_1 4917 0 0 0
|
||||
121 Power_Knowledge_PsyWar_2 4918 0 0 0
|
||||
122 Power_Knowledge_PsyWar_3 4919 0 0 0
|
||||
123 Power_Knowledge_PsyWar_4 4920 0 0 0
|
||||
124 Power_Knowledge_PsyWar_5 4921 0 0 0
|
||||
125 Power_Knowledge_PsyWar_6 4922 0 0 0
|
||||
126 Power_Knowledge_PsyWar_7 4923 0 0 0
|
||||
127 Power_Knowledge_PsyWar_8 4924 0 0 0
|
||||
128 Power_Knowledge_PsyWar_9 4925 0 0 0
|
||||
129 Power_Knowledge_PsyWar_10 4926 0 0 0
|
||||
130 Power_Knowledge_Wilder_1 4927 0 0 0
|
||||
131 Power_Knowledge_Wilder_2 4928 0 0 0
|
||||
132 Power_Knowledge_Wilder_3 4929 0 0 0
|
||||
133 Power_Knowledge_Wilder_4 4930 0 0 0
|
||||
134 Power_Knowledge_Wilder_5 4931 0 0 0
|
||||
135 Power_Knowledge_Wilder_6 4932 0 0 0
|
||||
136 Power_Knowledge_Wilder_7 4933 0 0 0
|
||||
137 Power_Knowledge_Wilder_8 4934 0 0 0
|
||||
138 Power_Knowledge_Wilder_9 4935 0 0 0
|
||||
139 Power_Knowledge_Wilder_10 4936 0 0 0
|
||||
140 Power_Knowledge_FistOfZuoken_1 4945 0 0 0
|
||||
141 Power_Knowledge_FistOfZuoken_2 4946 0 0 0
|
||||
142 Power_Knowledge_FistOfZuoken_3 4947 0 0 0
|
||||
143 Power_Knowledge_FistOfZuoken_4 4948 0 0 0
|
||||
144 Power_Knowledge_FistOfZuoken_5 4949 0 0 0
|
||||
145 Power_Knowledge_FistOfZuoken_6 4950 0 0 0
|
||||
146 Power_Knowledge_FistOfZuoken_7 4951 0 0 0
|
||||
147 Power_Knowledge_FistOfZuoken_8 4952 0 0 0
|
||||
148 Power_Knowledge_FistOfZuoken_9 4953 0 0 0
|
||||
149 Power_Knowledge_FistOfZuoken_10 4954 0 0 0
|
||||
150 FEAT_EPIC_ENERGY_RESISTANCE_COLD_1 533 1 2 0
|
||||
151 FEAT_EPIC_ENERGY_RESISTANCE_COLD_2 534 1 2 0
|
||||
152 FEAT_EPIC_ENERGY_RESISTANCE_COLD_3 535 1 2 0
|
||||
153 FEAT_EPIC_ENERGY_RESISTANCE_COLD_4 536 1 2 0
|
||||
154 FEAT_EPIC_ENERGY_RESISTANCE_COLD_5 537 1 2 0
|
||||
155 FEAT_EPIC_ENERGY_RESISTANCE_COLD_6 538 1 2 0
|
||||
156 FEAT_EPIC_ENERGY_RESISTANCE_COLD_7 539 1 2 0
|
||||
157 FEAT_EPIC_ENERGY_RESISTANCE_COLD_8 540 1 2 0
|
||||
158 FEAT_EPIC_ENERGY_RESISTANCE_COLD_9 541 1 2 0
|
||||
159 FEAT_EPIC_ENERGY_RESISTANCE_COLD_10 542 1 2 0
|
||||
160 FEAT_EPIC_ENERGY_RESISTANCE_ACID_1 543 1 2 0
|
||||
161 FEAT_EPIC_ENERGY_RESISTANCE_ACID_2 544 1 2 0
|
||||
162 FEAT_EPIC_ENERGY_RESISTANCE_ACID_3 545 1 2 0
|
||||
163 FEAT_EPIC_ENERGY_RESISTANCE_ACID_4 546 1 2 0
|
||||
164 FEAT_EPIC_ENERGY_RESISTANCE_ACID_5 547 1 2 0
|
||||
165 FEAT_EPIC_ENERGY_RESISTANCE_ACID_6 548 1 2 0
|
||||
166 FEAT_EPIC_ENERGY_RESISTANCE_ACID_7 549 1 2 0
|
||||
167 FEAT_EPIC_ENERGY_RESISTANCE_ACID_8 550 1 2 0
|
||||
168 FEAT_EPIC_ENERGY_RESISTANCE_ACID_9 551 1 2 0
|
||||
169 FEAT_EPIC_ENERGY_RESISTANCE_ACID_10 552 1 2 0
|
||||
170 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_1 553 1 2 0
|
||||
171 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_2 554 1 2 0
|
||||
172 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_3 555 1 2 0
|
||||
173 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_4 556 1 2 0
|
||||
174 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_5 557 1 2 0
|
||||
175 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_6 558 1 2 0
|
||||
176 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_7 559 1 2 0
|
||||
177 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_8 560 1 2 0
|
||||
178 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_9 561 1 2 0
|
||||
179 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_10 562 1 2 0
|
||||
180 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_1 563 1 2 0
|
||||
181 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_2 564 1 2 0
|
||||
182 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_3 565 1 2 0
|
||||
183 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_4 566 1 2 0
|
||||
184 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_5 567 1 2 0
|
||||
185 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_6 568 1 2 0
|
||||
186 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_7 569 1 2 0
|
||||
187 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_8 570 1 2 0
|
||||
188 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_9 571 1 2 0
|
||||
189 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_10 572 1 2 0
|
||||
190 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_1 573 1 2 0
|
||||
191 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_2 574 1 2 0
|
||||
192 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_3 575 1 2 0
|
||||
193 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_4 576 1 2 0
|
||||
194 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_5 577 1 2 0
|
||||
195 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_6 578 1 2 0
|
||||
196 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_7 579 1 2 0
|
||||
197 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_8 580 1 2 0
|
||||
198 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_9 581 1 2 0
|
||||
199 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_10 582 1 2 0
|
||||
200 FEAT_EPIC_SPELL_FOCUS_ABJURATION 610 1 2 0
|
||||
201 FEAT_EPIC_SPELL_FOCUS_CONJURATION 611 1 2 0
|
||||
202 FEAT_EPIC_SPELL_FOCUS_DIVINATION 612 1 2 0
|
||||
203 FEAT_EPIC_SPELL_FOCUS_ENCHANTMENT 613 1 2 0
|
||||
204 FEAT_EPIC_SPELL_FOCUS_EVOCATION 614 1 2 0
|
||||
205 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 1 2 0
|
||||
206 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 1 2 0
|
||||
207 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 1 2 0
|
||||
208 FEAT_EPIC_SPELL_PENETRATION 618 1 2 0
|
||||
209 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 2 0
|
||||
210 FEAT_EPIC_AUTOMATIC_QUICKEN_1 857 1 2 0
|
||||
211 FEAT_EPIC_AUTOMATIC_QUICKEN_2 858 1 2 0
|
||||
212 FEAT_EPIC_AUTOMATIC_QUICKEN_3 859 1 2 0
|
||||
213 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_1 860 1 2 0
|
||||
214 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_2 861 1 2 0
|
||||
215 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_3 862 1 2 0
|
||||
216 FEAT_EPIC_AUTOMATIC_STILL_SPELL_1 863 1 2 0
|
||||
217 FEAT_EPIC_AUTOMATIC_STILL_SPELL_2 864 1 2 0
|
||||
218 FEAT_EPIC_AUTOMATIC_STILL_SPELL_3 865 1 2 0
|
||||
219 FEAT_EPIC_GREAT_INTELLIGENCE_1 794 1 2 0
|
||||
220 FEAT_EPIC_GREAT_INTELLIGENCE_2 795 1 2 0
|
||||
221 FEAT_EPIC_GREAT_INTELLIGENCE_3 796 1 2 0
|
||||
222 FEAT_EPIC_GREAT_INTELLIGENCE_4 797 1 2 0
|
||||
223 FEAT_EPIC_GREAT_INTELLIGENCE_5 798 1 2 0
|
||||
224 FEAT_EPIC_GREAT_INTELLIGENCE_6 799 1 2 0
|
||||
225 FEAT_EPIC_GREAT_INTELLIGENCE_7 800 1 2 0
|
||||
226 FEAT_EPIC_GREAT_INTELLIGENCE_8 801 1 2 0
|
||||
227 FEAT_EPIC_GREAT_INTELLIGENCE_9 802 1 2 0
|
||||
228 FEAT_EPIC_GREAT_INTELLIGENCE_10 803 1 2 0
|
||||
229 FEAT_EPIC_GREAT_WISDOM_1 804 1 2 0
|
||||
230 FEAT_EPIC_GREAT_WISDOM_2 805 1 2 0
|
||||
231 FEAT_EPIC_GREAT_WISDOM_3 806 1 2 0
|
||||
232 FEAT_EPIC_GREAT_WISDOM_4 807 1 2 0
|
||||
233 FEAT_EPIC_GREAT_WISDOM_5 808 1 2 0
|
||||
234 FEAT_EPIC_GREAT_WISDOM_6 809 1 2 0
|
||||
235 FEAT_EPIC_GREAT_WISDOM_7 810 1 2 0
|
||||
236 FEAT_EPIC_GREAT_WISDOM_8 811 1 2 0
|
||||
237 FEAT_EPIC_GREAT_WISDOM_9 812 1 2 0
|
||||
238 FEAT_EPIC_GREAT_WISDOM_10 813 1 2 0
|
||||
239 FEAT_DISCIPLE_OF_SUN 3127 0 2 1
|
||||
240 FEAT_EPIC_BLINDING_SPEED 491 1 2 1
|
||||
241 FEAT_EPIC_ARMOR_SKIN 490 1 2 0
|
||||
242 FEAT_CRAFT_EPIC_WONDROUS_ITEM 3488 1 2 0
|
||||
243 FEAT_CRAFT_EPIC_MAGIC_ARMS_ARMOR 3489 1 2 0
|
||||
244 FEAT_CRAFT_EPIC_ROD 3490 1 2 0
|
||||
245 FEAT_CRAFT_EPIC_STAFF 3491 1 2 0
|
||||
246 FEAT_FORGE_EPIC_RING 3528 1 2 0
|
||||
247 FEAT_EPIC_LEADERSHIP 4366 1 2 0
|
||||
248 FEAT_EPIC_SPELLCASTING 4073 1 2 0
|
||||
249 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 1 2 0
|
||||
250 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 2 0
|
||||
251 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 2 0
|
||||
252 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 2 0
|
||||
253 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 2 0
|
||||
254 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 2 0
|
||||
255 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 2 0
|
||||
256 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 2 0
|
||||
257 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 2 0
|
||||
258 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 2 0
|
||||
259 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 2 0
|
||||
260 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 2 0
|
||||
261 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 2 0
|
||||
262 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 2 0
|
||||
263 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 2 0
|
||||
264 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 2 0
|
||||
265 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 2 0
|
||||
266 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 2 0
|
||||
267 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 2 0
|
||||
268 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 2 0
|
||||
269 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 2 0
|
||||
270 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 1 2 0
|
||||
271 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 1 2 0
|
||||
272 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 2 0
|
||||
273 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 2 0
|
||||
274 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 2 0
|
||||
275 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 2 0
|
||||
276 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 2 0
|
||||
277 FEAT_EPIC_SKILL_FOCUS_MARTIAL_LORE 3044 1 2 0
|
||||
278 FEAT_EPIC_SKILL_FOCUS_BALANCE 3046 1 2 0
|
||||
279 FEAT_EPIC_SKILL_FOCUS_CRAFT_POISON 3048 1 2 0
|
||||
280 FEAT_EPIC_SKILL_FOCUS_PSICRAFT 3050 1 2 0
|
||||
281 FEAT_EPIC_SKILL_FOCUS_CLIMB 3052 1 2 0
|
||||
282 FEAT_EPIC_SKILL_FOCUS_CRAFT_GENERAL 3054 1 2 0
|
||||
283 FocusedSpellPenetrAbj 3128 1 2 0
|
||||
284 FocusedSpellPenetrCon 3129 1 2 0
|
||||
285 FocusedSpellPenetrDiv 3130 1 2 0
|
||||
286 FocusedSpellPenetrEnch 3131 1 2 0
|
||||
287 FocusedSpellPenetrEvo 3132 1 2 0
|
||||
288 FocusedSpellPenetrIll 3133 1 2 0
|
||||
289 FocusedSpellPenetrNec 3134 1 2 0
|
||||
290 FocusedSpellPenetrTra 3135 1 2 0
|
||||
291 Feat_Ignore_Material_Components 2597 1 2 0
|
||||
292 FEAT_TENACIOUSMAGIC 2961 1 2 0
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 EPIC_CEREBREMANCER 25093 3 11 0
|
||||
1 FEAT_CEREBREMANCER_MANIFEST_FOZ 18130 2 1 0
|
||||
2 FEAT_CEREBREMANCER_MANIFEST_PSION 18137 2 1 0
|
||||
3 FEAT_CEREBREMANCER_MANIFEST_PSYROUGE 18145 2 1 0
|
||||
4 FEAT_CEREBREMANCER_MANIFEST_PSYWAR 18152 2 1 0
|
||||
5 FEAT_CEREBREMANCER_MANIFEST_WARMIND 18159 2 1 0
|
||||
6 FEAT_CEREBREMANCER_MANIFEST_WILDER 18166 2 1 0
|
||||
7 FEAT_CMANCER_SPELLCASTING_FEY 18217 2 1 0
|
||||
8 FEAT_CMANCER_SPELLCASTING_ABERRATION 18262 2 1 0
|
||||
9 FEAT_CMANCER_SPELLCASTING_MONSTROUS 18309 2 1 0
|
||||
10 FEAT_CMANCER_SPELLCASTING_OUTSIDER 18356 2 1 0
|
||||
11 FEAT_CMANCER_SPELLCASTING_SHAPECHANGER 18403 2 1 0
|
||||
12 FEAT_CMANCER_SPELLCASTING_ASSASSIN 18447 2 1 0
|
||||
13 FEAT_CMANCER_SPELLCASTING_BARD 18481 2 1 0
|
||||
14 FEAT_CMANCER_SPELLCASTING_BEGUILER 18525 2 1 0
|
||||
15 FEAT_CMANCER_SPELLCASTING_CELEBRANT_SHARESS 18565 2 1 0
|
||||
16 FEAT_CMANCER_SPELLCASTING_CULTIST_PEAK 18595 2 1 0
|
||||
17 FEAT_CMANCER_SPELLCASTING_DNECRO 18633 2 1 0
|
||||
18 FEAT_CMANCER_SPELLCASTING_DUSKBLADE 18675 2 1 0
|
||||
19 FEAT_CMANCER_SPELLCASTING_HARPER 18714 2 1 0
|
||||
20 FEAT_CMANCER_SPELLCASTING_HEXBLADE 18748 2 1 0
|
||||
21 FEAT_CMANCER_SPELLCASTING_KNIGHT_WEAVE 18786 2 1 0
|
||||
22 FEAT_CMANCER_SPELLCASTING_SHADOWLORD 18823 2 1 0
|
||||
23 FEAT_CMANCER_SPELLCASTING_SORCERER 18866 2 1 0
|
||||
24 FEAT_CMANCER_SPELLCASTING_SUBLIME_CHORD 18913 2 1 0
|
||||
25 FEAT_CMANCER_SPELLCASTING_SUEL_ARCHANAMACH 18956 2 1 0
|
||||
26 FEAT_CMANCER_SPELLCASTING_WARMAGE 18998 2 1 0
|
||||
27 FEAT_CMANCER_SPELLCASTING_WIZARD 19044 2 1 0
|
||||
28 Psionic_Endowment 4802 0 2 1
|
||||
29 Greater_Psionic_Endowment 4801 0 2 1
|
||||
30 Power_Specialization 4805 0 2 1
|
||||
31 Greater_Power_Specialization 4804 0 2 0
|
||||
32 Power_Penetration 4807 0 2 1
|
||||
33 Greater_Power_Penetration 4806 0 2 1
|
||||
34 Overchannel 4826 0 2 1
|
||||
35 Talented 4829 0 2 1
|
||||
36 Chain_Power 4937 0 2 1
|
||||
37 Empower_Power 4938 0 2 1
|
||||
38 Extend_Power 4939 0 2 1
|
||||
39 Maximize_Power 4940 0 2 1
|
||||
40 Split_Psionic_Ray 4941 0 2 1
|
||||
41 Twin_Power 4942 0 2 1
|
||||
42 Widen_Power 4943 0 2 1
|
||||
43 Quicken_Power 4944 0 2 1
|
||||
44 **** **** **** **** ****
|
||||
45 Psionic_Dodge 4803 0 2 0
|
||||
46 Narrow_Mind 4808 0 2 0
|
||||
47 Combat_Manifestation 4810 0 2 0
|
||||
48 Boost_Construct 4833 0 2 0
|
||||
49 Speed_Of_Thought 4834 0 2 0
|
||||
50 Psionic_Talent_1 4835 0 2 0
|
||||
51 Psionic_Talent_2 4836 0 2 0
|
||||
52 Psionic_Talent_3 4837 0 2 0
|
||||
53 Psionic_Talent_4 4838 0 2 0
|
||||
54 Psionic_Talent_5 4839 0 2 0
|
||||
55 Psionic_Talent_6 4840 0 2 0
|
||||
56 Psionic_Talent_7 4841 0 2 0
|
||||
57 Psionic_Talent_8 4842 0 2 0
|
||||
58 Psionic_Talent_9 4843 0 2 0
|
||||
59 Psionic_Talent_10 4844 0 2 0
|
||||
60 Epic_Psionic_Focus_1 4857 1 2 0
|
||||
61 Epic_Psionic_Focus_2 4858 1 2 0
|
||||
62 Epic_Psionic_Focus_3 4859 1 2 0
|
||||
63 Epic_Psionic_Focus_4 4860 1 2 0
|
||||
64 Epic_Psionic_Focus_5 4861 1 2 0
|
||||
65 Epic_Psionic_Focus_6 4862 1 2 0
|
||||
66 Epic_Psionic_Focus_7 4863 1 2 0
|
||||
67 Epic_Psionic_Focus_8 4864 1 2 0
|
||||
68 Epic_Psionic_Focus_9 4865 1 2 0
|
||||
69 Epic_Psionic_Focus_10 4866 1 2 0
|
||||
70 Expanded_Knowledge_1 4867 0 2 0
|
||||
71 Expanded_Knowledge_2 4868 0 0 0
|
||||
72 Expanded_Knowledge_3 4869 0 0 0
|
||||
73 Expanded_Knowledge_4 4870 0 0 0
|
||||
74 Expanded_Knowledge_5 4871 0 0 0
|
||||
75 Expanded_Knowledge_6 4872 0 0 0
|
||||
76 Expanded_Knowledge_7 4873 0 0 0
|
||||
77 Expanded_Knowledge_8 4874 0 0 0
|
||||
78 Expanded_Knowledge_9 4875 0 0 0
|
||||
79 Expanded_Knowledge_10 4876 0 0 0
|
||||
80 Epic_Expanded_Knowledge_1 4877 1 2 0
|
||||
81 Epic_Expanded_Knowledge_2 4878 1 2 0
|
||||
82 Epic_Expanded_Knowledge_3 4879 1 2 0
|
||||
83 Epic_Expanded_Knowledge_4 4880 1 2 0
|
||||
84 Epic_Expanded_Knowledge_5 4881 1 2 0
|
||||
85 Epic_Expanded_Knowledge_6 4882 1 2 0
|
||||
86 Epic_Expanded_Knowledge_7 4883 1 2 0
|
||||
87 Epic_Expanded_Knowledge_8 4884 1 2 0
|
||||
88 Epic_Expanded_Knowledge_9 4885 1 2 0
|
||||
89 Epic_Expanded_Knowledge_10 4886 1 2 0
|
||||
90 Improved_Metapsionics_1 4887 1 2 0
|
||||
91 Improved_Metapsionics_2 4888 1 2 0
|
||||
92 Improved_Metapsionics_3 4889 1 2 0
|
||||
93 Improved_Metapsionics_4 4890 1 2 0
|
||||
94 Improved_Metapsionics_5 4891 1 2 0
|
||||
95 Improved_Metapsionics_6 4892 1 2 0
|
||||
96 Improved_Metapsionics_7 4893 1 2 0
|
||||
97 Improved_Metapsionics_8 4894 1 2 0
|
||||
98 Improved_Metapsionics_9 4895 1 2 0
|
||||
99 Improved_Metapsionics_10 4896 1 2 0
|
||||
100 Improved_Manifestation_1 4897 1 2 0
|
||||
101 Improved_Manifestation_2 4898 1 2 0
|
||||
102 Improved_Manifestation_3 4899 1 2 0
|
||||
103 Improved_Manifestation_4 4900 1 2 0
|
||||
104 Improved_Manifestation_5 4901 1 2 0
|
||||
105 Improved_Manifestation_6 4902 1 2 0
|
||||
106 Improved_Manifestation_7 4903 1 2 0
|
||||
107 Improved_Manifestation_8 4904 1 2 0
|
||||
108 Improved_Manifestation_9 4905 1 2 0
|
||||
109 Improved_Manifestation_10 4906 1 2 0
|
||||
110 Power_Knowledge_Psion_1 4907 0 0 0
|
||||
111 Power_Knowledge_Psion_2 4908 0 0 0
|
||||
112 Power_Knowledge_Psion_3 4909 0 0 0
|
||||
113 Power_Knowledge_Psion_4 4910 0 0 0
|
||||
114 Power_Knowledge_Psion_5 4911 0 0 0
|
||||
115 Power_Knowledge_Psion_6 4912 0 0 0
|
||||
116 Power_Knowledge_Psion_7 4913 0 0 0
|
||||
117 Power_Knowledge_Psion_8 4914 0 0 0
|
||||
118 Power_Knowledge_Psion_9 4915 0 0 0
|
||||
119 Power_Knowledge_Psion_10 4916 0 0 0
|
||||
120 Power_Knowledge_PsyWar_1 4917 0 0 0
|
||||
121 Power_Knowledge_PsyWar_2 4918 0 0 0
|
||||
122 Power_Knowledge_PsyWar_3 4919 0 0 0
|
||||
123 Power_Knowledge_PsyWar_4 4920 0 0 0
|
||||
124 Power_Knowledge_PsyWar_5 4921 0 0 0
|
||||
125 Power_Knowledge_PsyWar_6 4922 0 0 0
|
||||
126 Power_Knowledge_PsyWar_7 4923 0 0 0
|
||||
127 Power_Knowledge_PsyWar_8 4924 0 0 0
|
||||
128 Power_Knowledge_PsyWar_9 4925 0 0 0
|
||||
129 Power_Knowledge_PsyWar_10 4926 0 0 0
|
||||
130 Power_Knowledge_Wilder_1 4927 0 0 0
|
||||
131 Power_Knowledge_Wilder_2 4928 0 0 0
|
||||
132 Power_Knowledge_Wilder_3 4929 0 0 0
|
||||
133 Power_Knowledge_Wilder_4 4930 0 0 0
|
||||
134 Power_Knowledge_Wilder_5 4931 0 0 0
|
||||
135 Power_Knowledge_Wilder_6 4932 0 0 0
|
||||
136 Power_Knowledge_Wilder_7 4933 0 0 0
|
||||
137 Power_Knowledge_Wilder_8 4934 0 0 0
|
||||
138 Power_Knowledge_Wilder_9 4935 0 0 0
|
||||
139 Power_Knowledge_Wilder_10 4936 0 0 0
|
||||
140 Power_Knowledge_FistOfZuoken_1 4945 0 0 0
|
||||
141 Power_Knowledge_FistOfZuoken_2 4946 0 0 0
|
||||
142 Power_Knowledge_FistOfZuoken_3 4947 0 0 0
|
||||
143 Power_Knowledge_FistOfZuoken_4 4948 0 0 0
|
||||
144 Power_Knowledge_FistOfZuoken_5 4949 0 0 0
|
||||
145 Power_Knowledge_FistOfZuoken_6 4950 0 0 0
|
||||
146 Power_Knowledge_FistOfZuoken_7 4951 0 0 0
|
||||
147 Power_Knowledge_FistOfZuoken_8 4952 0 0 0
|
||||
148 Power_Knowledge_FistOfZuoken_9 4953 0 0 0
|
||||
149 Power_Knowledge_FistOfZuoken_10 4954 0 0 0
|
||||
150 FEAT_EPIC_ENERGY_RESISTANCE_COLD_1 533 1 2 0
|
||||
151 FEAT_EPIC_ENERGY_RESISTANCE_COLD_2 534 1 2 0
|
||||
152 FEAT_EPIC_ENERGY_RESISTANCE_COLD_3 535 1 2 0
|
||||
153 FEAT_EPIC_ENERGY_RESISTANCE_COLD_4 536 1 2 0
|
||||
154 FEAT_EPIC_ENERGY_RESISTANCE_COLD_5 537 1 2 0
|
||||
155 FEAT_EPIC_ENERGY_RESISTANCE_COLD_6 538 1 2 0
|
||||
156 FEAT_EPIC_ENERGY_RESISTANCE_COLD_7 539 1 2 0
|
||||
157 FEAT_EPIC_ENERGY_RESISTANCE_COLD_8 540 1 2 0
|
||||
158 FEAT_EPIC_ENERGY_RESISTANCE_COLD_9 541 1 2 0
|
||||
159 FEAT_EPIC_ENERGY_RESISTANCE_COLD_10 542 1 2 0
|
||||
160 FEAT_EPIC_ENERGY_RESISTANCE_ACID_1 543 1 2 0
|
||||
161 FEAT_EPIC_ENERGY_RESISTANCE_ACID_2 544 1 2 0
|
||||
162 FEAT_EPIC_ENERGY_RESISTANCE_ACID_3 545 1 2 0
|
||||
163 FEAT_EPIC_ENERGY_RESISTANCE_ACID_4 546 1 2 0
|
||||
164 FEAT_EPIC_ENERGY_RESISTANCE_ACID_5 547 1 2 0
|
||||
165 FEAT_EPIC_ENERGY_RESISTANCE_ACID_6 548 1 2 0
|
||||
166 FEAT_EPIC_ENERGY_RESISTANCE_ACID_7 549 1 2 0
|
||||
167 FEAT_EPIC_ENERGY_RESISTANCE_ACID_8 550 1 2 0
|
||||
168 FEAT_EPIC_ENERGY_RESISTANCE_ACID_9 551 1 2 0
|
||||
169 FEAT_EPIC_ENERGY_RESISTANCE_ACID_10 552 1 2 0
|
||||
170 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_1 553 1 2 0
|
||||
171 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_2 554 1 2 0
|
||||
172 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_3 555 1 2 0
|
||||
173 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_4 556 1 2 0
|
||||
174 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_5 557 1 2 0
|
||||
175 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_6 558 1 2 0
|
||||
176 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_7 559 1 2 0
|
||||
177 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_8 560 1 2 0
|
||||
178 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_9 561 1 2 0
|
||||
179 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_10 562 1 2 0
|
||||
180 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_1 563 1 2 0
|
||||
181 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_2 564 1 2 0
|
||||
182 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_3 565 1 2 0
|
||||
183 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_4 566 1 2 0
|
||||
184 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_5 567 1 2 0
|
||||
185 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_6 568 1 2 0
|
||||
186 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_7 569 1 2 0
|
||||
187 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_8 570 1 2 0
|
||||
188 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_9 571 1 2 0
|
||||
189 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_10 572 1 2 0
|
||||
190 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_1 573 1 2 0
|
||||
191 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_2 574 1 2 0
|
||||
192 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_3 575 1 2 0
|
||||
193 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_4 576 1 2 0
|
||||
194 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_5 577 1 2 0
|
||||
195 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_6 578 1 2 0
|
||||
196 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_7 579 1 2 0
|
||||
197 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_8 580 1 2 0
|
||||
198 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_9 581 1 2 0
|
||||
199 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_10 582 1 2 0
|
||||
200 FEAT_EPIC_SPELL_FOCUS_ABJURATION 610 1 2 0
|
||||
201 FEAT_EPIC_SPELL_FOCUS_CONJURATION 611 1 2 0
|
||||
202 FEAT_EPIC_SPELL_FOCUS_DIVINATION 612 1 2 0
|
||||
203 FEAT_EPIC_SPELL_FOCUS_ENCHANTMENT 613 1 2 0
|
||||
204 FEAT_EPIC_SPELL_FOCUS_EVOCATION 614 1 2 0
|
||||
205 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 1 2 0
|
||||
206 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 1 2 0
|
||||
207 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 1 2 0
|
||||
208 FEAT_EPIC_SPELL_PENETRATION 618 1 2 0
|
||||
209 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 2 0
|
||||
210 FEAT_EPIC_AUTOMATIC_QUICKEN_1 857 1 2 0
|
||||
211 FEAT_EPIC_AUTOMATIC_QUICKEN_2 858 1 2 0
|
||||
212 FEAT_EPIC_AUTOMATIC_QUICKEN_3 859 1 2 0
|
||||
213 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_1 860 1 2 0
|
||||
214 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_2 861 1 2 0
|
||||
215 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_3 862 1 2 0
|
||||
216 FEAT_EPIC_AUTOMATIC_STILL_SPELL_1 863 1 2 0
|
||||
217 FEAT_EPIC_AUTOMATIC_STILL_SPELL_2 864 1 2 0
|
||||
218 FEAT_EPIC_AUTOMATIC_STILL_SPELL_3 865 1 2 0
|
||||
219 FEAT_EPIC_GREAT_INTELLIGENCE_1 794 1 2 0
|
||||
220 FEAT_EPIC_GREAT_INTELLIGENCE_2 795 1 2 0
|
||||
221 FEAT_EPIC_GREAT_INTELLIGENCE_3 796 1 2 0
|
||||
222 FEAT_EPIC_GREAT_INTELLIGENCE_4 797 1 2 0
|
||||
223 FEAT_EPIC_GREAT_INTELLIGENCE_5 798 1 2 0
|
||||
224 FEAT_EPIC_GREAT_INTELLIGENCE_6 799 1 2 0
|
||||
225 FEAT_EPIC_GREAT_INTELLIGENCE_7 800 1 2 0
|
||||
226 FEAT_EPIC_GREAT_INTELLIGENCE_8 801 1 2 0
|
||||
227 FEAT_EPIC_GREAT_INTELLIGENCE_9 802 1 2 0
|
||||
228 FEAT_EPIC_GREAT_INTELLIGENCE_10 803 1 2 0
|
||||
229 FEAT_EPIC_GREAT_WISDOM_1 804 1 2 0
|
||||
230 FEAT_EPIC_GREAT_WISDOM_2 805 1 2 0
|
||||
231 FEAT_EPIC_GREAT_WISDOM_3 806 1 2 0
|
||||
232 FEAT_EPIC_GREAT_WISDOM_4 807 1 2 0
|
||||
233 FEAT_EPIC_GREAT_WISDOM_5 808 1 2 0
|
||||
234 FEAT_EPIC_GREAT_WISDOM_6 809 1 2 0
|
||||
235 FEAT_EPIC_GREAT_WISDOM_7 810 1 2 0
|
||||
236 FEAT_EPIC_GREAT_WISDOM_8 811 1 2 0
|
||||
237 FEAT_EPIC_GREAT_WISDOM_9 812 1 2 0
|
||||
238 FEAT_EPIC_GREAT_WISDOM_10 813 1 2 0
|
||||
239 FEAT_DISCIPLE_OF_SUN 3127 0 2 1
|
||||
240 FEAT_EPIC_BLINDING_SPEED 491 1 2 1
|
||||
241 FEAT_EPIC_ARMOR_SKIN 490 1 2 0
|
||||
242 FEAT_CRAFT_EPIC_WONDROUS_ITEM 3488 1 2 0
|
||||
243 FEAT_CRAFT_EPIC_MAGIC_ARMS_ARMOR 3489 1 2 0
|
||||
244 FEAT_CRAFT_EPIC_ROD 3490 1 2 0
|
||||
245 FEAT_CRAFT_EPIC_STAFF 3491 1 2 0
|
||||
246 FEAT_FORGE_EPIC_RING 3528 1 2 0
|
||||
247 FEAT_EPIC_LEADERSHIP 4366 1 2 0
|
||||
248 FEAT_EPIC_SPELLCASTING 4073 1 2 0
|
||||
249 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 1 2 0
|
||||
250 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 2 0
|
||||
251 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 2 0
|
||||
252 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 2 0
|
||||
253 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 2 0
|
||||
254 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 2 0
|
||||
255 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 2 0
|
||||
256 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 2 0
|
||||
257 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 2 0
|
||||
258 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 2 0
|
||||
259 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 2 0
|
||||
260 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 2 0
|
||||
261 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 2 0
|
||||
262 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 2 0
|
||||
263 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 2 0
|
||||
264 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 2 0
|
||||
265 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 2 0
|
||||
266 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 2 0
|
||||
267 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 2 0
|
||||
268 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 2 0
|
||||
269 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 2 0
|
||||
270 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 1 2 0
|
||||
271 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 1 2 0
|
||||
272 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 2 0
|
||||
273 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 2 0
|
||||
274 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 2 0
|
||||
275 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 2 0
|
||||
276 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 2 0
|
||||
277 FEAT_EPIC_SKILL_FOCUS_MARTIAL_LORE 3044 1 2 0
|
||||
278 FEAT_EPIC_SKILL_FOCUS_BALANCE 3046 1 2 0
|
||||
279 FEAT_EPIC_SKILL_FOCUS_CRAFT_POISON 3048 1 2 0
|
||||
280 FEAT_EPIC_SKILL_FOCUS_PSICRAFT 3050 1 2 0
|
||||
281 FEAT_EPIC_SKILL_FOCUS_CLIMB 3052 1 2 0
|
||||
282 FEAT_EPIC_SKILL_FOCUS_CRAFT_GENERAL 3054 1 2 0
|
||||
283 FocusedSpellPenetrAbj 3128 1 2 0
|
||||
284 FocusedSpellPenetrCon 3129 1 2 0
|
||||
285 FocusedSpellPenetrDiv 3130 1 2 0
|
||||
286 FocusedSpellPenetrEnch 3131 1 2 0
|
||||
287 FocusedSpellPenetrEvo 3132 1 2 0
|
||||
288 FocusedSpellPenetrIll 3133 1 2 0
|
||||
289 FocusedSpellPenetrNec 3134 1 2 0
|
||||
290 FocusedSpellPenetrTra 3135 1 2 0
|
||||
291 Feat_Ignore_Material_Components 2597 1 2 0
|
||||
292 FEAT_TENACIOUSMAGIC 2961 1 2 0
|
||||
293 Bane_Magic_Aberration 23556 0 -1 0
|
||||
294 Bane_Magic_Animal 23557 0 -1 0
|
||||
295 Bane_Magic_Beast 23558 0 -1 0
|
||||
296 Bane_Magic_Construct 23559 0 -1 0
|
||||
297 Bane_Magic_Dragon 23560 0 -1 0
|
||||
298 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
299 Bane_Magic_Elemental 23562 0 -1 0
|
||||
300 Bane_Magic_Elf 23563 0 -1 0
|
||||
301 Bane_Magic_Fey 23564 0 -1 0
|
||||
302 Bane_Magic_Giant 23565 0 -1 0
|
||||
303 Bane_Magic_Gnome 23566 0 -1 0
|
||||
304 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
305 Bane_Magic_Halfling 23568 0 -1 0
|
||||
306 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
307 Bane_Magic_Human 23570 0 -1 0
|
||||
308 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
309 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
310 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
311 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
312 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
313 Bane_Magic_Outsider 23576 0 -1 0
|
||||
314 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
315 Bane_Magic_Undead 23578 0 -1 0
|
||||
316 Bane_Magic_Vermin 23579 0 -1 0
|
||||
|
||||
@@ -87,52 +87,46 @@
|
||||
83 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 1 -1 0
|
||||
84 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 1 -1 0
|
||||
85 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 1 -1 0
|
||||
86 FEAT_EPIC_AUTOMATIC_QUICKEN_1 857 1 -1 0
|
||||
87 FEAT_EPIC_AUTOMATIC_QUICKEN_2 858 1 -1 0
|
||||
88 FEAT_EPIC_AUTOMATIC_QUICKEN_3 859 1 -1 0
|
||||
89 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_1 860 1 -1 0
|
||||
90 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_2 861 1 -1 0
|
||||
91 FEAT_EPIC_AUTOMATIC_SILENT_SPELL_3 862 1 -1 0
|
||||
92 FEAT_EPIC_AUTOMATIC_STILL_SPELL_1 863 1 -1 0
|
||||
93 FEAT_EPIC_AUTOMATIC_STILL_SPELL_2 864 1 -1 0
|
||||
94 FEAT_EPIC_AUTOMATIC_STILL_SPELL_3 865 1 -1 0
|
||||
95 FEAT_EPIC_PLANAR_TURNING 854 1 -1 0
|
||||
96 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
|
||||
97 FEAT_EPIC_ARMOR_SKIN 490 1 -1 0
|
||||
98 FEAT_EPIC_SPELL_PENETRATION 618 1 -1 0
|
||||
99 FEAT_EPIC_GREAT_WISDOM_1 804 1 -1 0
|
||||
100 FEAT_EPIC_GREAT_WISDOM_2 805 1 -1 0
|
||||
101 FEAT_EPIC_GREAT_WISDOM_3 806 1 -1 0
|
||||
102 FEAT_EPIC_GREAT_WISDOM_4 807 1 -1 0
|
||||
103 FEAT_EPIC_GREAT_WISDOM_5 808 1 -1 0
|
||||
104 FEAT_EPIC_GREAT_WISDOM_6 809 1 -1 0
|
||||
105 FEAT_EPIC_GREAT_WISDOM_7 810 1 -1 0
|
||||
106 FEAT_EPIC_GREAT_WISDOM_8 811 1 -1 0
|
||||
107 FEAT_EPIC_GREAT_WISDOM_9 812 1 -1 0
|
||||
108 FEAT_EPIC_GREAT_WISDOM_10 813 1 -1 0
|
||||
109 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
|
||||
110 FEAT_DISCIPLE_OF_SUN 3127 0 -1 1
|
||||
111 Bane_Magic_Aberration 23556 0 -1 0
|
||||
112 Bane_Magic_Animal 23557 0 -1 0
|
||||
113 Bane_Magic_Beast 23558 0 -1 0
|
||||
114 Bane_Magic_Construct 23559 0 -1 0
|
||||
115 Bane_Magic_Dragon 23560 0 -1 0
|
||||
116 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
117 Bane_Magic_Elemental 23562 0 -1 0
|
||||
118 Bane_Magic_Elf 23563 0 -1 0
|
||||
119 Bane_Magic_Fey 23564 0 -1 0
|
||||
120 Bane_Magic_Giant 23565 0 -1 0
|
||||
121 Bane_Magic_Gnome 23566 0 -1 0
|
||||
122 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
123 Bane_Magic_Halfling 23568 0 -1 0
|
||||
124 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
125 Bane_Magic_Human 23570 0 -1 0
|
||||
126 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
127 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
128 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
129 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
130 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
131 Bane_Magic_Outsider 23576 0 -1 0
|
||||
132 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
133 Bane_Magic_Undead 23578 0 -1 0
|
||||
134 Bane_Magic_Vermin 23579 0 -1 0
|
||||
86 FEAT_EPIC_PLANAR_TURNING 854 1 -1 0
|
||||
87 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
|
||||
88 FEAT_EPIC_ARMOR_SKIN 490 1 -1 0
|
||||
89 FEAT_EPIC_SPELL_PENETRATION 618 1 -1 0
|
||||
90 FEAT_DISCIPLE_OF_SUN 3127 0 -1 1
|
||||
91 Bane_Magic_Aberration 23556 0 -1 0
|
||||
92 Bane_Magic_Animal 23557 0 -1 0
|
||||
93 Bane_Magic_Beast 23558 0 -1 0
|
||||
94 Bane_Magic_Construct 23559 0 -1 0
|
||||
95 Bane_Magic_Dragon 23560 0 -1 0
|
||||
96 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
97 Bane_Magic_Elemental 23562 0 -1 0
|
||||
98 Bane_Magic_Elf 23563 0 -1 0
|
||||
99 Bane_Magic_Fey 23564 0 -1 0
|
||||
100 Bane_Magic_Giant 23565 0 -1 0
|
||||
101 Bane_Magic_Gnome 23566 0 -1 0
|
||||
102 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
103 Bane_Magic_Halfling 23568 0 -1 0
|
||||
104 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
105 Bane_Magic_Human 23570 0 -1 0
|
||||
106 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
107 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
108 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
109 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
110 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
111 Bane_Magic_Outsider 23576 0 -1 0
|
||||
112 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
113 Bane_Magic_Undead 23578 0 -1 0
|
||||
114 Bane_Magic_Vermin 23579 0 -1 0
|
||||
115 FEAT_EPIC_REPUTATION 586 1 -1 0
|
||||
116 FEAT_EPIC_LEADERSHIP 4366 1 -1 0
|
||||
117 FEAT_EPIC_TOUGHNESS_1 754 1 -1 0
|
||||
118 FEAT_EPIC_TOUGHNESS_2 755 1 -1 0
|
||||
119 FEAT_EPIC_TOUGHNESS_3 756 1 -1 0
|
||||
120 FEAT_EPIC_TOUGHNESS_4 757 1 -1 0
|
||||
121 FEAT_EPIC_TOUGHNESS_5 758 1 -1 0
|
||||
122 FEAT_EPIC_TOUGHNESS_6 759 1 -1 0
|
||||
123 FEAT_EPIC_TOUGHNESS_7 760 1 -1 0
|
||||
124 FEAT_EPIC_TOUGHNESS_8 761 1 -1 0
|
||||
125 FEAT_EPIC_TOUGHNESS_9 762 1 -1 0
|
||||
126 FEAT_EPIC_TOUGHNESS_10 763 1 -1 0
|
||||
127 FEAT_UNDEAD_MASTERY 3446 1 -1 0
|
||||
128 ZoneOfAnimation 2891 1 -1 0
|
||||
|
||||
@@ -700,7 +700,7 @@
|
||||
696 FEAT_EPIC_IMPROVED_COMBAT_CASTING 8497 8498 ife_X2ImComCast **** **** **** **** **** **** **** **** 7 **** 0 0 1 **** **** **** **** 1 **** **** **** **** **** **** **** **** 1 25 **** **** FEAT_EPIC_IMPROVED_COMBAT_CASTING 4 **** **** **** **** **** 1 1
|
||||
697 FEAT_EPIC_IMPROVED_KI_STRIKE_4 8499 8500 ife_X2ImKiStrk4 **** **** **** **** 21 **** **** **** 344 **** 0 0 0 **** **** **** 698 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_KI_STRIKE_4 1 **** **** **** **** **** 1 1
|
||||
698 FEAT_EPIC_IMPROVED_KI_STRIKE_5 8501 83388 ife_X2ImKiStrk5 **** **** **** **** **** **** **** **** 697 **** 0 0 0 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_KI_STRIKE_5 1 **** **** **** **** **** 1 1
|
||||
699 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_1 8503 8504 ife_X2ImSpRis1 **** **** **** **** **** **** **** **** 215 **** 0 0 0 **** **** **** 700 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_1 4 **** **** **** **** **** 1 1
|
||||
699 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_1 8503 8504 ife_X2ImSpRis1 **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 700 1 **** **** **** 215 4393 4149 **** **** **** **** **** **** FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_1 4 **** **** **** **** **** 1 1
|
||||
700 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_2 8505 8504 ife_X2ImSpRis1 **** **** **** **** **** **** **** **** 699 **** 0 0 0 **** **** **** 701 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_2 4 **** **** **** **** **** 1 1
|
||||
701 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_3 8507 8504 ife_X2ImSpRis1 **** **** **** **** **** **** **** **** 700 **** 0 0 0 **** **** **** 702 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_3 4 **** **** **** **** **** 1 1
|
||||
702 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_4 8509 8504 ife_X2ImSpRis1 **** **** **** **** **** **** **** **** 701 **** 0 0 0 **** **** **** 703 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_4 4 **** **** **** **** **** 1 1
|
||||
@@ -21227,7 +21227,7 @@
|
||||
21223 Psion_EvadeBurst 16848023 16823883 fot_imprhaste **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 14667 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** SWIFT_ACTION **** 0 **** **** **** **** **** 0
|
||||
21224 Psion_Insanity 16848024 16823843 fot_Confusion **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** 14668 **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** 0
|
||||
21225 Psion_Mind_BlankPersonal 16848025 16823845 fot_spelldeflect **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 14669 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21226 Psion_MomentOfPrescience_RadialMaster 16848026 16823887 fot_oracle **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 14670 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21226 Psion_MomentOfPrescience_RadialMaster 16848026 16823887 fot_oracle **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 14670 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** SWIFT_ACTION **** 0 **** **** **** **** **** 0
|
||||
21227 Psion_OakBody 16848031 16823847 fot_holypower **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** 14675 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21228 Psion_Reddopsi 16848032 16824148 fot_powersilence **** **** **** **** **** **** **** **** 3555 **** **** **** **** 12 **** 14676 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21229 Psion_Sequester 16848033 16827004 fot_sequester **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 14677 **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
@@ -21594,7 +21594,7 @@
|
||||
21590 Wilder_EvadeBurst 16848554 16823883 fot_imprhaste **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 15198 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** SWIFT_ACTION **** 0 **** **** **** **** **** 0
|
||||
21591 Wilder_Insanity 16848555 16823843 fot_Confusion **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** 15199 **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** 0
|
||||
21592 Wilder_Mind_BlankPersonal 16848556 16823845 fot_spelldeflect **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 15200 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21593 Wilder_MomentOfPrescience_RadialMaster 16848557 16823887 fot_oracle **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 15201 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21593 Wilder_MomentOfPrescience_RadialMaster 16848557 16823887 fot_oracle **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 15201 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** SWIFT_ACTION **** 0 **** **** **** **** **** 0
|
||||
21594 Wilder_OakBody 16848562 16823847 fot_holypower **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** 15206 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21595 Wilder_Reddopsi 16848563 16824148 fot_powersilence **** **** **** **** **** **** **** **** **** **** **** **** **** 12 **** 15207 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
21596 Wilder_Sequester 16848564 16827004 fot_sequester **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 15208 **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** 0
|
||||
|
||||
@@ -30,3 +30,12 @@
|
||||
26 16790383 Resist_7/- 7 1.0
|
||||
27 16790384 Resist_8/- 8 1.10
|
||||
28 16790385 Resist_9/- 9 1.25
|
||||
29 **** **** **** ****
|
||||
30 16988446 Resist_11/- 11 1.55
|
||||
31 16988447 Resist_12/- 12 1.65
|
||||
32 16988448 Resist_13/- 13 1.75
|
||||
33 16988449 Resist_14/- 14 1.85
|
||||
34 16988450 Resist_16/- 16 2.1
|
||||
35 16988451 Resist_17/ 17 2.4
|
||||
36 16988452 Resist_18/- 18 2.7
|
||||
37 16988453 Resist_19/- 19 3.0
|
||||
|
||||
@@ -861,12 +861,12 @@
|
||||
857 Truenamer3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
858 Truenamer4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
859 Truenamer5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
860 Warblade1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
860 Warblade_Default 16988933 16988934 236 STR 20 **** **** **** **** **** packftwb1 packskwb1 packeqwb1 0 1
|
||||
861 Warblade2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
862 Warblade3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
863 Warblade4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
864 Warblade5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
865 Warlock_Blaster 16988943 1698894 112 CHA 50 **** **** **** **** **** packftwr1 packftwr1 packeqwr1 0 1
|
||||
865 Warlock_Blaster 16988943 1698894 112 CHA 50 **** **** **** **** **** packftwr1 packskwr1 packeqwr1 0 1
|
||||
866 Warlock_RESERVE2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
867 Warlock_RESERVE3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
868 Warlock_RESERVE4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
|
||||
@@ -1,425 +1,425 @@
|
||||
2DA V2.0
|
||||
|
||||
Label Name ResRef Race HD CR Type
|
||||
0 Default 6614 **** **** **** **** 0xFF
|
||||
1 Adult_Black_Dragon 12461 nw_drgblack001 11 19 13,00 0x0C
|
||||
2 Adult_Blue_Dragon 12465 nw_drgblue001 11 21 14,00 0x0C
|
||||
3 Adult_Brass_Dragon 12469 nw_drgbrass001 11 19 13,00 0x0C
|
||||
4 Adult_Bronze_Dragon 12473 nw_drgbrnz001 11 21 15,00 0x0C
|
||||
5 Adult_Copper_Dragon 12477 nw_drgcopp001 11 20 14,00 0x0C
|
||||
6 Adult_Gold_Dragon 12481 nw_drggold001 11 23 16,00 0x0C
|
||||
7 Adult_Green_Dragon 12485 nw_drggreen001 11 20 14,00 0x0C
|
||||
8 Adult_Red_Dragon 12489 nw_drgred001 11 22 15,00 0x0C
|
||||
9 Adult_Silver_Dragon 12493 nw_drgsilv001 11 22 16,00 0x0C
|
||||
10 Adult_White_Dragon 12497 nw_drgwhite001 11 18 12,00 0x0C
|
||||
11 Adult_Wyvern 111389 x3_wyvern002 11 12 8,00 0x08
|
||||
12 Air_Elemental 12354 nw_air 16 4 4,00 0x02
|
||||
13 Air_Mephit 12636 nw_mepair 20 3 3,00 0x00
|
||||
14 Alhoon 84506 x2_mindflayer003 24 16 18,00 0x00
|
||||
15 Allip 12360 nw_allip 24 4 3,00 0x00
|
||||
16 Ancient_Black_Dragon 12463 nw_drgblack003 11 31 21,00 0x0C
|
||||
17 Ancient_Blue_Dragon 12467 nw_drgblue003 11 33 23,00 0x0C
|
||||
18 Ancient_Brass_Dragon 12471 nw_drgbrass003 11 31 22,00 0x0C
|
||||
19 Ancient_Bronze_Dragon 12475 nw_drgbrnz003 11 33 23,00 0x0C
|
||||
20 Ancient_Copper_Dragon 12479 nw_drgcopp003 11 32 22,00 0x0C
|
||||
21 Ancient_Dire_Bear 56563 nw_beardireboss 8 12 15,00 0x09
|
||||
22 Ancient_Gold_Dragon 12483 nw_drggold003 11 35 25,00 0x0C
|
||||
23 Ancient_Green_Dragon 12487 nw_drggreen003 11 32 22,00 0x0C
|
||||
24 Ancient_Red_Dragon 12491 nw_drgred003 11 34 24,00 0x0C
|
||||
25 Ancient_Shadow_Dragon 90379 x2_dragonshad001 11 31 22,00 0x0C
|
||||
26 Ancient_Silver_Dragon 12495 nw_drgsilv003 11 34 24,00 0x0C
|
||||
27 Ancient_White_Dragon 12499 nw_drgwhite003 11 30 20,00 0x0C
|
||||
28 Androsphinx 40618 x0_sphinx 19 18 13,00 0x08
|
||||
29 Aranea 12362 nw_aranea 23 3 3,00 0x00
|
||||
30 Asabi_Chieftain 2901 x0_asabi_chief 15 9 6,00 0x08
|
||||
31 Asabi_Shaman 2902 x0_asabi_shaman 15 7 5,00 0x08
|
||||
32 Asabi_Warrior 2900 x0_asabi_warrior 15 3 2,00 0x08
|
||||
33 Azer 100964 x2_azer001 20 2 2,00 0x00
|
||||
34 Azer 100965 x2_azer002 20 2 2,00 0x00
|
||||
35 Badger 12366 nw_badger 8 1 0,50 0x09
|
||||
36 Baelnorn 12630 nw_lich002 24 15 18,00 0x00
|
||||
37 Balor 12443 nw_demon 20 13 15,00 0x00
|
||||
38 Bandit 12367 nw_bandit001 6 1 0,50 0x08
|
||||
39 Bandit_Archer 12368 nw_bandit002 6 1 0,50 0x08
|
||||
40 Bandit_Chief 12373 nw_bandit007 6 15 11,00 0x08
|
||||
41 Bartender 6974 nw_bartender 6 1 0,25 0x08
|
||||
42 Basilisk 2861 x0_basilisk 19 6 5,00 0x08
|
||||
43 Bat 12376 nw_bat 8 1 0,33 0x09
|
||||
44 Battle_Devourer 12380 nw_battdevour 7 9 11,00 0x08
|
||||
45 Battle_Horror 12378 nw_bathorror 10 13 13,00 0x00
|
||||
46 Bebilith 90432 x2_spiderdemo001 20 12 12,00 0x00
|
||||
47 Beggar 6960 nw_beggmale 6 1 0,25 0x08
|
||||
48 Beholder 95219 x2_beholder001 7 11 11,00 0x08
|
||||
49 Beholder_Mage 90374 x2_beholder003 7 21 15,00 0x08
|
||||
50 Black_Bear 12382 nw_bearblck 8 3 2,00 0x09
|
||||
51 Black_Cormyrian_Cobra 111368 x3_blckcobra001 8 3 2,00 0x09
|
||||
52 Blink_Dog 12395 nw_blinkdog 19 4 3,00 0x08
|
||||
53 Bloodsailor 2167 nw_humsailor 6 1 0,25 0x08
|
||||
54 Blue_Slaad 12706 nw_slaadbl 20 8 7,00 0x00
|
||||
55 Boar 12397 nw_boar 8 3 2,00 0x09
|
||||
56 Bodak 12401 nw_bodak 24 9 9,00 0x00
|
||||
57 Bombardier_Beetle 12403 nw_btlbomb 25 2 3,00 0x08
|
||||
58 Bone_Golem 12570 nw_golbone 10 14 11,00 0x00
|
||||
59 Boy 12634 nw_malekid01 6 1 0,25 0x08
|
||||
60 Brown_Bear 12384 nw_bearbrwn 8 6 5,00 0x09
|
||||
61 Bugbear 12411 nw_bugbeara 12 3 2,00 0x08
|
||||
62 Bugbear_Chieftain 56565 nw_bugbearboss 12 11 10,00 0x08
|
||||
63 Bugbear_Hero 12412 nw_bugchiefa 12 6 5,00 0x08
|
||||
64 Bugbear_Shaman 12413 nw_bugwiza 12 6 4,00 0x08
|
||||
65 Bulette 110635 nw_bulette 9 9 7,00 0x00
|
||||
66 Celestial_Avenger 12431 nw_ctrumpet 20 12 11,00 0x00
|
||||
67 Chicken 12416 nw_chicken 8 1 0,25 0x09
|
||||
68 Clay_Golem 12572 nw_golclay 10 11 10,00 0x00
|
||||
69 Cockatrice 40596 x0_cockatrice 19 5 5,00 0x08
|
||||
70 Commoner,_Female 2168 nw_comfemale 6 1 0,25 0x08
|
||||
71 Commoner,_Male 2169 nw_commale 6 1 0,25 0x08
|
||||
72 Convict 12424 nw_convict 6 1 0,25 0x08
|
||||
73 Cougar 12426 nw_cougar 8 3 2,00 0x09
|
||||
74 Cow 12428 nw_cow 8 1 0,17 0x09
|
||||
75 Crag_Cat 57919 nw_cragcat 8 3 2,00 0x09
|
||||
76 Cult_Member 12433 nw_cultmember 6 1 0,25 0x08
|
||||
77 Curst_Monk 12438 nw_curst004 24 5 6,00 0x00
|
||||
78 Curst_Ranger 12437 nw_curst003 24 5 5,00 0x00
|
||||
79 Curst_Rogue 12436 nw_curst002 24 5 6,00 0x00
|
||||
80 Curst_Swordsman 111431 x3_curstsword 24 6 6,00 0x00
|
||||
81 Curst_Warrior 12435 nw_curst001 24 5 5,00 0x00
|
||||
82 Death_Slaad 12708 nw_slaaddeth 20 15 15,00 0x00
|
||||
83 Deep_Rothe 3073 x2_deeprothe001 19 2 1,00 0x08
|
||||
84 Deer 12440 nw_deer 8 1 0,33 0x09
|
||||
85 Demilich 3087 x2_demilich001 24 21 24,00 0x00
|
||||
86 Demonflesh_Golem 84195 nw_goldmflesh001 10 24 25,00 0x00
|
||||
87 Diamond_Golem 111377 x3_diagolem001 10 14 14,00 0x00
|
||||
88 Dire_Badger 12447 nw_direbadg 8 3 3,00 0x09
|
||||
89 Dire_Bear 12386 nw_beardire 8 12 9,00 0x09
|
||||
90 Dire_Boar 12399 nw_boardire 8 7 5,00 0x09
|
||||
91 Dire_Rat 3105 nw_ratdire001 8 1 0,50 0x09
|
||||
92 Dire_Spider 12718 nw_spiddire 25 10 7,00 0x08
|
||||
93 Dire_Tiger 12448 nw_diretiger 8 16 11,00 0x09
|
||||
94 Dire_Wolf 10526 nw_direwolf 8 6 5,00 0x09
|
||||
95 Dog 12457 nw_dog 8 2 1,00 0x09
|
||||
96 Doom_Knight 12459 nw_doomkght 24 9 10,00 0x00
|
||||
97 Doom_Knight_Commander 56566 nw_doomkghtboss 24 9 15,00 0x00
|
||||
98 Drider 3063 x2_drider001 7 6 6,00 0x08
|
||||
99 Drider_Chief 90380 x2_drider002 7 11 10,00 0x08
|
||||
100 Drider_Cleric 90389 x2_fdrider002 7 6 7,00 0x08
|
||||
101 Drider_Wizard 90381 x2_driderw01 7 6 8,00 0x08
|
||||
102 Drow_Assassin 12503 nw_drowrogue001 1 1 1,00 0x08
|
||||
103 Drow_Mage 12502 nw_drowmage001 1 1 1,00 0x08
|
||||
104 Drow_Militia 12501 nw_drowfight001 1 1 1,00 0x08
|
||||
105 Drow_Priestess 12500 nw_drowcler001 1 1 1,00 0x08
|
||||
106 Drow_Rogue 90394 x2_mephdrow001 1 11 7,00 0x08
|
||||
107 Drow_Slave 90382 x2_drow001 1 1 0,50 0x08
|
||||
108 Drow_Warrior 85590 x2_mephdrow004 1 11 8,00 0x08
|
||||
109 Drow_Wizard 90383 x2_drow002 1 5 4,00 0x08
|
||||
110 Dryad 12505 nw_dryad 17 2 2,00 0x08
|
||||
111 Duergar_Chief 90385 x2_duergar002 0 5 4,00 0x08
|
||||
112 Duergar_Cleric 12507 nw_duecler001 0 1 1,00 0x08
|
||||
113 Duergar_Mage 90400 x2_mephduer007 0 10 7,00 0x08
|
||||
114 Duergar_Priestess 90401 x2_mephduer010 0 10 8,00 0x08
|
||||
115 Duergar_Rogue 12510 x2_mephduer004 0 10 7,00 0x08
|
||||
116 Duergar_Slaver 101022 x2_duergar001 0 1 0,25 0x08
|
||||
117 Duergar_Warrior 12508 nw_duefight001 0 1 1,00 0x08
|
||||
118 Dust_Mephit 12637 nw_mepdust 20 3 3,00 0x00
|
||||
119 Dwarf_Mercenary 12511 nw_dwarfmerc001 0 1 0,50 0x08
|
||||
120 Earth_Elemental 12513 nw_earth 16 4 4,00 0x02
|
||||
121 Earth_Mephit 12638 nw_mepearth 20 3 3,00 0x00
|
||||
122 Elder_Air_Elemental 12356 nw_airelder 16 24 20,00 0x02
|
||||
123 Elder_Earth_Elemental 12515 nw_eartheld 16 24 17,00 0x02
|
||||
124 Elder_Fire_Elemental 12531 nw_fireelder 16 24 17,00 0x02
|
||||
125 Elder_Water_Elemental 12800 nw_watelder 16 24 16,00 0x02
|
||||
126 Elf_Mage 12518 nw_elfmage001 1 1 0,50 0x08
|
||||
127 Elf_Mercenary 12519 nw_elfmerc001 1 3 2,00 0x08
|
||||
128 Elf_Ranger 12520 nw_elfranger001 1 1 0,50 0x08
|
||||
129 Emerald_Golem 111379 x3_emgolem001 10 12 12,00 0x00
|
||||
130 Erinyes 90386 x2_erinyes 20 6 8,00 0x00
|
||||
131 Ettercap 12522 nw_ettercap 7 5 5,00 0x08
|
||||
132 Ettin 12524 nw_ettin 18 10 8,00 0x08
|
||||
133 Eyeball 84490 x2_beholder002 7 1 3,00 0x08
|
||||
134 Faerie_Dragon 9162 x0_dragon_faerie 11 10 5,00 0x08
|
||||
135 Falcon 12685 nw_raptor001 8 1 0,33 0x09
|
||||
136 Female_Drider 90388 x2_fdrider001 7 6 6,00 0x08
|
||||
137 Fenhound 12527 nw_fenhound 20 5 4,00 0x00
|
||||
138 Fire_Beetle 12405 nw_btlfire 25 1 0,25 0x08
|
||||
139 Fire_Elemental 12529 nw_fire 16 4 3,00 0x02
|
||||
140 Fire_Giant 12558 nw_gntfire 18 15 12,00 0x08
|
||||
141 Fire_Giant 2898 x0_gntfirefem 18 15 10,00 0x08
|
||||
142 Fire_Mephit 6001 nw_mepfire 20 3 3,00 0x00
|
||||
143 Flesh_Golem 12574 nw_golflesh 10 9 8,00 0x00
|
||||
144 Formian_Myrmarch 2889 x0_form_myrmarch 20 12 11,00 0x00
|
||||
145 Formian_Queen 2890 x0_form_queen 20 37 20,00 0x00
|
||||
146 Formian_Taskmaster 40603 x0_form_taskmast 20 6 7,00 0x00
|
||||
147 Formian_Warrior 2888 x0_form_warrior 20 4 4,00 0x00
|
||||
148 Formian_Worker 2887 x0_form_worker 20 1 1,00 0x00
|
||||
149 Frost_Giant 12560 nw_gntfrost 18 14 10,00 0x08
|
||||
150 Frost_Giant 2897 x0_gntfrostfem 18 14 9,00 0x08
|
||||
151 Gargoyle 12550 nw_gargoyle 19 4 3,00 0x08
|
||||
152 Gaseous_Form 12798 nw_vampire_shad 24 3 3,00 0x00
|
||||
153 Gelatinous_Cube 84439 x2_gelcube 29 4 3,00 0x08
|
||||
154 Ghast 12552 nw_ghast 24 4 4,00 0x00
|
||||
155 Ghoul 12554 nw_ghoul 24 2 2,00 0x00
|
||||
156 Ghoul_Lord 12556 nw_ghoullord 24 6 5,00 0x00
|
||||
157 Ghoul_Ravager 56567 nw_ghoulboss 24 9 10,00 0x00
|
||||
158 Giant_Spider 12720 nw_spidgiant 25 4 3,00 0x08
|
||||
159 Girl 12525 nw_femalekid01 6 1 0,25 0x08
|
||||
160 Gnoll 3097 nw_gnoll001 12 2 1,00 0x08
|
||||
161 Gnoll_Shaman 3099 nw_gnoll002 12 4 3,00 0x08
|
||||
162 Goblin 12567 nw_goblina 12 1 0,25 0x08
|
||||
163 Goblin_Chieftain 56568 nw_goblinboss 12 9 11,00 0x08
|
||||
164 Goblin_Elite 12566 nw_gobchiefa 12 5 4,00 0x08
|
||||
165 Goblin_Shaman 12568 nw_gobwiza 12 4 3,00 0x08
|
||||
166 Goblin_Shark 110730 nw_sharkgoblin 8 3 2,00 0x09
|
||||
167 Gold_Cormyrian_Cobra 111370 x3_goldcobra001 8 5 4,00 0x09
|
||||
168 Gorgon 2856 x0_gorgon 19 8 7,00 0x08
|
||||
169 Gray_Ooze 110742 nw_grayooze 29 3 3,00 0x08
|
||||
170 Gray_Render 12579 nw_grayrend 9 10 8,00 0x00
|
||||
171 Gray_Slaad 12710 nw_slaadgray 20 10 10,00 0x00
|
||||
172 Great_Cobra 111372 x3_grtcobra001 8 7 5,00 0x09
|
||||
173 Great_Wyvern 111387 x3_wyvern001 11 14 9,00 0x08
|
||||
174 Greater_Air_Elemental 12357 nw_airgreat 16 21 18,00 0x02
|
||||
175 Greater_Earth_Elemental 12516 nw_earthgreat 16 21 15,00 0x02
|
||||
176 Greater_Fire_Elemental 12532 nw_firegreat 16 21 15,00 0x02
|
||||
177 Greater_Mummy 5644 nw_mumcleric 24 12 10,00 0x00
|
||||
178 Greater_Water_Elemental 12803 nw_watergreat 16 21 14,00 0x02
|
||||
179 Green_Slaad 12712 nw_slaadgrn 20 9 9,00 0x00
|
||||
180 Grig 12581 nw_grig 17 1 2,00 0x08
|
||||
181 Grizzly_Bear 12387 nw_bearkodiak 8 8 6,00 0x09
|
||||
182 Gynosphinx 2869 x0_gynosphinx 19 8 8,00 0x08
|
||||
183 Gypsy_Chief 12589 nw_gypsy006 6 15 11,00 0x08
|
||||
184 Gypsy_Healer 12588 nw_gypsy005 6 10 8,00 0x08
|
||||
185 Gypsy_Mage 12587 nw_gypsy004 6 5 4,00 0x08
|
||||
186 Gypsy_Rogue 12586 nw_gypsy002 6 1 0,50 0x08
|
||||
187 Gypsy_Warrior 12585 nw_gypsy001 6 1 0,50 0x08
|
||||
188 Gypsy_Female 12583 nw_gypfemale 6 1 0,25 0x08
|
||||
189 Gypsy_Male 12584 nw_gypmale 6 1 0,25 0x08
|
||||
190 GZhorb_the_All-Seeing_Eye 111435 x3_gzhorb 7 33 18,00 0x08
|
||||
191 Half-Celestial_Warrior 12591 nw_halfcel001 20 10 9,00 0x00
|
||||
192 Half-Dragon_Cleric 12594 nw_halfdra002 11 10 8,00 0x08
|
||||
193 Half-Dragon_Sorcerer 12592 nw_halfdra001 11 10 9,00 0x08
|
||||
194 Half-Fiend_Warrior 12597 nw_halffnd001 20 10 8,00 0x00
|
||||
195 Halfling 6992 nw_halfling001 3 1 0,50 0x08
|
||||
196 Halfling 6991 nw_halfling005 3 5 3,00 0x08
|
||||
197 Halfling_Mercenary 12599 nw_halfmerc002 3 4 3,00 0x08
|
||||
198 Half-Orc_Bandit 12372 nw_bandit006 5 10 7,00 0x08
|
||||
199 Hammerhead_Shark 110729 nw_sharkhammer 8 3 3,00 0x09
|
||||
200 Harpy 3076 x2_harpy001 13 7 5,00 0x08
|
||||
201 Hell_Hound 5997 nw_hellhound 20 4 4,00 0x00
|
||||
202 Helmed_Horror 12602 nw_helmhorr 10 13 11,00 0x00
|
||||
203 Hill_Giant 12562 nw_gnthill 18 12 10,00 0x08
|
||||
204 Hive_Mother 56564 nw_beetleboss 25 11 16,00 0x08
|
||||
205 Hobgoblin 3100 nw_hobgoblin001 12 1 0,25 0x08
|
||||
206 Hobgoblin_Shaman 3102 nw_hobgoblin002 12 2 2,00 0x08
|
||||
207 Hook_Horror 12616 nw_horror 7 5 5,00 0x08
|
||||
208 Horse 111456 x3_horse001 8 1 0,50 0x09
|
||||
209 Hound_Archon 12418 nw_chound01 20 6 6,00 0x00
|
||||
210 Hound_of_Xvim 12391 nw_beastxvim 20 5 5,00 0x00
|
||||
211 House_Guard 2173 nw_guard 6 1 0,50 0x08
|
||||
212 Huge_Air_Elemental 12358 nw_airhuge 16 16 13,00 0x02
|
||||
213 Huge_Earth_Elemental 12517 nw_earthhuge 16 16 11,00 0x02
|
||||
214 Huge_Fire_Elemental 12533 nw_firehuge 16 16 12,00 0x02
|
||||
215 Huge_Iron_Golem 90393 x2_goliron_huge 10 21 21,00 0x00
|
||||
216 Huge_Water_Elemental 12804 nw_waterhuge 16 16 11,00 0x02
|
||||
217 Human_Mercenary 12617 nw_humanmerc003 6 7 6,00 0x08
|
||||
218 Hybrid_Cormyrian_Cobra 111373 x3_hybcobra001 8 3 2,00 0x09
|
||||
219 Ice_Mephit 6003 nw_mepice 20 3 3,00 0x00
|
||||
220 Imp 5999 nw_imp 20 3 3,00 0x00
|
||||
221 Innkeeper 6973 nw_innkeeper 6 1 0,25 0x08
|
||||
222 Intellect_Devourer 12445 nw_devour 7 6 7,00 0x08
|
||||
223 Invisible_Stalker 12621 nw_invstalk 16 8 6,00 0x02
|
||||
224 Iron_Golem 12576 nw_goliron 10 18 16,00 0x00
|
||||
225 Jaguar 12623 nw_jaguar 8 5 3,00 0x09
|
||||
226 Juvenile_Wyvern 111390 x3_wyvern003 11 9 6,00 0x08
|
||||
227 Kobold 2924 nw_kobold001 15 1 0,33 0x08
|
||||
228 Kobold_Footpad 2933 nw_kobold004 15 2 2,00 0x08
|
||||
229 Kobold_Shaman 2926 nw_kobold005 15 2 2,00 0x08
|
||||
230 Kobold_Thug 2925 nw_kobold003 15 2 2,00 0x08
|
||||
231 Krenshar 12625 nw_krenshar 19 2 2,00 0x08
|
||||
232 Kurths_Soldier 2175 nw_kurthsold 6 1 0,50 0x08
|
||||
233 Lantern_Archon 12421 nw_clantern 20 1 5,00 0x00
|
||||
234 Leopard 12414 nw_cat 8 3 2,00 0x09
|
||||
235 Lich 12627 nw_lichboss 24 16 21,00 0x00
|
||||
236 Lion 12632 nw_lion 8 5 3,00 0x09
|
||||
237 Lizardfolk_Chieftain 12668 nw_oldchiefa 15 5 4,00 0x08
|
||||
238 Lizardfolk_Shaman 12669 nw_oldmageb 15 5 4,00 0x08
|
||||
239 Lizardfolk_Warrior 12671 nw_oldwarra 15 2 2,00 0x08
|
||||
240 Luskan_Guard 6951 nw_luskanite 6 1 0,25 0x08
|
||||
241 Magma_Mephit 12639 nw_mepmagma 20 3 3,00 0x00
|
||||
242 Mako_Shark 110728 nw_sharkmako 8 3 3,00 0x09
|
||||
243 Malar_Panther 2976 nw_beastmalar001 23 9 7,00 0x00
|
||||
244 Manticore 2865 x0_manticore 19 6 6,00 0x08
|
||||
245 Medusa 2854 x0_medusa 13 6 6,00 0x08
|
||||
246 Mind_Flayer 90403 x2_mindflayer001 7 8 9,00 0x08
|
||||
247 Mind_Flayer_Darkener 90402 x2_mindfdarkener 7 15 16,00 0x08
|
||||
248 Mind_Flayer_Venerator 90405 x2_mindfveneratr 7 15 20,00 0x08
|
||||
249 Minogon 12647 nw_minogon 10 8 8,00 0x00
|
||||
250 Minotaur 12648 nw_minotaur 13 6 4,00 0x08
|
||||
251 Minotaur_Berserker 12645 nw_minchief 13 12 8,00 0x08
|
||||
252 Minotaur_Chieftain 56569 nw_minotaurboss 13 12 13,00 0x08
|
||||
253 Minotaur_Shaman 12649 nw_minwiz 13 12 9,00 0x08
|
||||
254 Mist_Dragon 111393 x3_dragmist001 11 21 14,00 0x0C
|
||||
255 Mohrg 12651 nw_mohrg 24 14 12,00 0x00
|
||||
256 Mountain_Giant 12564 nw_gntmount 18 12 10,00 0x08
|
||||
257 Mummy 12656 nw_mummy 24 6 5,00 0x00
|
||||
258 Mummy_Lord 56570 nw_mummyboss 24 12 11,00 0x00
|
||||
259 Neverwintan_Militia 6950 nw_nevmilitia 6 1 0,50 0x08
|
||||
260 Nightmare 110968 x3_nightmare002 20 9 8,00 0x00
|
||||
261 Nixie 12658 nw_nixie 17 1 1,00 0x08
|
||||
262 Nobleman 2179 nw_noblmale 6 1 0,25 0x08
|
||||
263 Noblewoman 2178 nw_noblfemale 6 1 0,25 0x08
|
||||
264 Nymph 12662 nw_nymph 17 3 3,00 0x08
|
||||
265 Ochre_Jelly 110835 nw_ochrejellymed 29 4 3,00 0x08
|
||||
266 Ogre 12664 nw_ogre01 18 4 3,00 0x08
|
||||
267 Ogre_Berserker 12665 nw_ogrechief01 18 8 6,00 0x08
|
||||
268 Ogre_Chieftain 56571 nw_ogreboss 18 11 9,00 0x08
|
||||
269 Ogre_High_Mage 56572 nw_ogremageboss 18 12 18,00 0x08
|
||||
270 Ogre_Mage 12666 nw_ogremage01 18 5 5,00 0x08
|
||||
271 Old_Black_Dragon 12462 nw_drgblack002 11 25 17,00 0x0C
|
||||
272 Old_Blue_Dragon 12466 nw_drgblue002 11 27 18,00 0x0C
|
||||
273 Old_Brass_Dragon 12470 nw_drgbrass002 11 25 17,00 0x0C
|
||||
274 Old_Bronze_Dragon 12474 nw_drgbrnz002 11 27 19,00 0x0C
|
||||
275 Old_Copper_Dragon 12478 nw_drgcopp002 11 26 18,00 0x0C
|
||||
276 Old_Gold_Dragon 12482 nw_drggold002 11 29 21,00 0x0C
|
||||
277 Old_Green_Dragon 12486 nw_drggreen002 11 26 18,00 0x0C
|
||||
278 Old_Man 6979 nw_oldman 6 1 0,25 0x08
|
||||
279 Old_Red_Dragon 12490 nw_drgred002 11 28 19,00 0x0C
|
||||
280 Old_Silver_Dragon 12494 nw_drgsilv002 11 28 20,00 0x0C
|
||||
281 Old_White_Dragon 12498 nw_drgwhite002 11 24 16,00 0x0C
|
||||
282 Old_Woman 6980 nw_oldwoman 6 1 0,25 0x08
|
||||
283 Ooze_Mephit 12640 nw_mepooze 20 3 3,00 0x00
|
||||
284 Orc 12674 nw_orca 14 1 0,25 0x08
|
||||
285 Orc_Champion 12675 nw_orcchiefa 14 4 3,00 0x08
|
||||
286 Orc_Chieftain 56573 nw_orcboss 14 11 10,00 0x08
|
||||
287 Orc_Shaman 12676 nw_orcwiza 14 5 4,00 0x08
|
||||
288 Ox 12678 nw_ox 8 1 0,50 0x09
|
||||
289 Pack_Leader 56578 nw_wolfdireboss 8 6 11,00 0x09
|
||||
290 Panther 5995 nw_panther 8 3 2,00 0x09
|
||||
291 Parrot 110798 nw_parrot 8 1 0,25 0x09
|
||||
292 Penguin 40617 x0_penguin001 8 1 0,17 0x09
|
||||
293 Phase_Spider 12722 nw_spidphase 19 5 3,00 0x08
|
||||
294 Pit_Fiend 3095 nw_devil001 20 13 15,00 0x00
|
||||
295 Pixie 6005 nw_pixie 17 1 2,00 0x08
|
||||
296 Plague_Victim 2180 nw_plagmale 6 1 0,25 0x08
|
||||
297 Polar_Bear 12389 nw_bearpolar 8 8 6,00 0x09
|
||||
298 Prismatic_Dragon 90378 x2_dragonpris001 11 40 37,00 0x0C
|
||||
299 Prostitute 12614 nw_hooker01 6 1 0,25 0x08
|
||||
300 Pseudodragon 9161 x0_dragon_pseudo 11 2 0,50 0x08
|
||||
301 Purple_Dragon_Archer 110996 x3_pdkaf001 6 2 2,00 0x08
|
||||
302 Purple_Dragon_Archer 110997 x3_pdkam001 6 2 2,00 0x08
|
||||
303 Purple_Dragon_Blade 110998 x3_pdkbf001 6 2 2,00 0x08
|
||||
304 Purple_Dragon_Blade 110999 x3_pdkbm001 6 2 2,00 0x08
|
||||
305 Quasit 12451 nw_dmquasit 20 3 3,00 0x00
|
||||
306 Queen_Spider 56576 nw_spiderboss 25 11 14,00 0x08
|
||||
307 Rakshasa 12682 nw_rakshasa 20 7 7,00 0x00
|
||||
308 Rat 3103 nw_rat001 8 1 0,13 0x09
|
||||
309 Raven 6008 nw_raven 8 1 0,33 0x09
|
||||
310 Red_Slaad 12714 nw_slaadred 20 7 6,00 0x00
|
||||
311 Revenant 12687 nw_revenant001 24 6 7,00 0x00
|
||||
312 Ruby_Golem 111381 x3_rubygolem001 10 10 12,00 0x00
|
||||
313 Sahuagin 110752 nw_sahuagin 15 2 2,00 0x08
|
||||
314 Sahuagin_Cleric 110753 nw_sahuaginclr 15 2 2,00 0x08
|
||||
315 Sahuagin_Leader 110754 nw_sahuaginldr 15 3 3,00 0x08
|
||||
316 Salt_Mephit 12641 nw_mepsalt 20 3 3,00 0x00
|
||||
317 Satyr 110988 x3_satyr003 17 5 4,00 0x08
|
||||
318 Satyr_Archer 111384 x3_satyr002 17 5 4,00 0x08
|
||||
319 Satyr_Warrior 111386 x3_satyr001 17 5 4,00 0x08
|
||||
320 Sea_Hag 110534 nw_seahag 13 3 4,00 0x08
|
||||
321 Seagull 110684 nw_seagullfly 8 3 2,00 0x09
|
||||
322 Shadow 12689 nw_shadow 24 3 3,00 0x00
|
||||
323 Shadow_Fiend 12691 nw_shfiend 24 7 7,00 0x00
|
||||
324 Shadow_Mastiff 12695 nw_shmastif 20 4 4,00 0x00
|
||||
325 Shield_Guardian 12693 nw_shguard 10 15 13,00 0x00
|
||||
326 Shop_Keeper 6972 nw_shopkeep 6 1 0,25 0x08
|
||||
327 Skeletal_Devourer 12700 nw_skeldevour 24 11 13,00 0x00
|
||||
328 Skeleton 12701 nw_skeleton 24 1 0,50 0x00
|
||||
329 Skeleton_Chieftain 12698 nw_skelchief 24 7 7,00 0x00
|
||||
330 Skeleton_Mage 12702 nw_skelmage 24 4 4,00 0x00
|
||||
331 Skeleton_Priest 12703 nw_skelpriest 24 4 4,00 0x00
|
||||
332 Skeleton_Warrior 12704 nw_skelwarr01 24 6 6,00 0x00
|
||||
333 Spectre 12716 nw_spectre 24 7 6,00 0x00
|
||||
334 Spitting_Cobra 111375 x3_spitcobra001 8 4 3,00 0x09
|
||||
335 Spitting_Fire_Beetle 79561 nw_btlfire02 25 1 3,00 0x08
|
||||
336 Stag_Beetle 12407 nw_btlstag 25 7 7,00 0x08
|
||||
337 Steam_Mephit 12642 nw_mepsteam 20 3 3,00 0x00
|
||||
338 Stinger 2872 x0_stinger 13 4 3,00 0x08
|
||||
339 Stinger_Chieftain 2875 x0_stinger_chief 13 10 7,00 0x08
|
||||
340 Stinger_Mage 2876 x0_stinger_mage 13 7 5,00 0x08
|
||||
341 Stinger_Warrior 2874 x0_stinger_war 13 7 5,00 0x08
|
||||
342 Stink_Beetle 12409 nw_btlstink 25 3 3,00 0x08
|
||||
343 Stirge 12727 nw_stirge 9 1 0,33 0x00
|
||||
344 Stone_Golem 12578 nw_golstone 10 14 12,00 0x00
|
||||
345 Succubus 12453 nw_dmsucubus 20 6 7,00 0x00
|
||||
346 Svirfneblin 3080 x2_svirfneblin01 2 1 0,50 0x08
|
||||
347 Svirfneblin 3081 x2_svirfneblin02 2 1 0,50 0x08
|
||||
348 Sword_Spider 12724 nw_spidswrd 25 5 4,00 0x08
|
||||
349 Tiefling 12784 nw_tiefling02 20 1 0,50 0x00
|
||||
350 Troglodyte 110636 nw_trog001 15 2 1,00 0x08
|
||||
351 Troglodyte_Cleric 110638 nw_trog003 15 6 5,00 0x08
|
||||
352 Troglodyte_Warrior 110637 nw_trog002 15 4 3,00 0x08
|
||||
353 Troll 12786 nw_troll 18 6 5,00 0x08
|
||||
354 Troll_Berserker 12787 nw_trollchief 18 10 7,00 0x08
|
||||
355 Troll_Chieftain 56577 nw_trollboss 18 12 9,00 0x08
|
||||
356 Troll_Shaman 12788 nw_trollwiz 18 10 7,00 0x08
|
||||
357 Tyrantfog_Zombie 12829 nw_zombtyrant 24 4 3,00 0x00
|
||||
358 Ulitharid 90404 x2_mindflayer002 7 16 19,00 0x08
|
||||
359 Umber_Hulk 12790 nw_umberhulk 7 8 9,00 0x08
|
||||
360 Uthgard_Elk_Tribesmen 12791 nw_uthgard01 6 1 1,00 0x08
|
||||
361 Uthgard_Tiger_Tribesmen 12792 nw_uthgard02 6 1 1,00 0x08
|
||||
362 Vampire 12772 nw_vampire 24 5 6,00 0x00
|
||||
363 Vampire_Mage 12796 nw_vampire003 24 10 16,00 0x00
|
||||
364 Vampire_Priest 12797 nw_vampire004 24 10 13,00 0x00
|
||||
365 Vampire_Rogue 12795 nw_vampire002 24 10 13,00 0x00
|
||||
366 Vampire_Warrior 12794 nw_vampire001 24 10 12,00 0x00
|
||||
367 Vrock 12455 nw_dmvrock 20 8 10,00 0x00
|
||||
368 Waitress 6975 nw_waitress 6 1 0,25 0x08
|
||||
369 Warrior_Mummy 12654 nw_mumfight 24 12 10,00 0x00
|
||||
370 Water_Elemental 12802 nw_water 16 4 4,00 0x02
|
||||
371 Water_Mephit 12643 nw_mepwater 20 3 3,00 0x00
|
||||
372 Wereboar 111014 x3_wereboar001 23 10 9,00 0x00
|
||||
373 Werecat 12806 nw_werecat 23 6 5,00 0x00
|
||||
374 Wererat 12808 nw_wererat 23 1 0,50 0x00
|
||||
375 Werewolf 12810 nw_werewolf 23 2 2,00 0x00
|
||||
376 White_Slaad 90431 x2_slaadwhite001 20 24 25,00 0x00
|
||||
377 White_Stag 12441 nw_deerstag 8 1 0,33 0x09
|
||||
378 Wight 12812 nw_wight 24 4 4,00 0x00
|
||||
379 Will-O-Wisp 12814 nw_willowisp 7 9 8,00 0x08
|
||||
380 Winter_Wolf 12818 nw_wolfwint 19 6 5,00 0x08
|
||||
381 Wolf 12816 nw_wolf 8 2 1,00 0x09
|
||||
382 Worg 12820 nw_worg 19 4 3,00 0x08
|
||||
383 Wraith 12822 nw_wraith 24 5 5,00 0x00
|
||||
384 Wraith_Spider 12726 nw_spidwra 24 3 4,00 0x00
|
||||
385 Wyrmling_Black_Dragon 40624 x0_wyrmling_blk 11 4 3,00 0x0C
|
||||
386 Wyrmling_Blue_Dragon 40626 x0_wyrmling_blu 11 6 5,00 0x0C
|
||||
387 Wyrmling_Brass_Dragon 40628 x0_wyrmling_brs 11 4 4,00 0x0C
|
||||
388 Wyrmling_Bronze_Dragon 40630 x0_wyrmling_brz 11 6 5,00 0x0C
|
||||
389 Wyrmling_Copper_Dragon 40632 x0_wyrmling_cop 11 5 5,00 0x0C
|
||||
390 Wyrmling_Gold_Dragon 40634 x0_wyrmling_gld 11 8 7,00 0x0C
|
||||
391 Wyrmling_Green_Dragon 40635 x0_wyrmling_grn 11 5 4,00 0x0C
|
||||
392 Wyrmling_Red_Dragon 40637 x0_wyrmling_red 11 7 5,00 0x0C
|
||||
393 Wyrmling_Silver_Dragon 40638 x0_wyrmling_sil 11 7 6,00 0x0C
|
||||
394 Wyrmling_White_Dragon 40640 x0_wyrmling_wht 11 3 3,00 0x0C
|
||||
395 Young_Wyvern 111391 x3_wyvern004 11 6 4,00 0x08
|
||||
396 Yuan-ti 12823 nw_yuan_ti001 15 6 5,00 0x08
|
||||
397 Yuan-Ti_Priest 12825 nw_yuan_ti003 15 6 6,00 0x08
|
||||
398 Yuan-Ti_Sorcerer 12824 nw_yuan_ti002 15 6 5,00 0x08
|
||||
399 Zombie 12827 nw_zombie01 24 2 1,00 0x00
|
||||
400 Zombie_Lord 56579 nw_zombieboss 24 9 8,00 0x00
|
||||
401 Zombie_Warrior 12830 nw_zombwarr01 24 5 4,00 0x00
|
||||
402 BattleDevourer 12380 nw_battdevour 7 9 11,00 0x16
|
||||
403 Beholder 95219 x2_beholder001 7 11 11,00 0x16
|
||||
404 BeholderMage 90374 x2_beholder003 7 21 15,00 0x16
|
||||
405 Drider 3063 x2_drider001 7 6 7,00 0x16
|
||||
406 DriderChief 3064 x2_drider002 7 11 10,00 0x16
|
||||
407 DriderCleric 90389 x2_fdrider002 7 6 7,00 0x16
|
||||
408 DriderWizard 3066 x2_driderw01 7 6 8,00 0x16
|
||||
409 Ettercap 2136 nw_ettercap 7 5 5,00 0x16
|
||||
410 Eyeball 84490 x2_beholder002 7 1 3,00 0x16
|
||||
411 HookHorror 12616 nw_horror 7 5 5,00 0x16
|
||||
412 IntellectDevourer 2093 nw_devour 7 8 7,00 0x16
|
||||
413 Illithid 90403 x2_mindflayer001 7 8 9,00 0x16
|
||||
414 Ulitharid 90404 x2_mindflayer002 7 16 20,00 0x16
|
||||
415 UmberHulk 2138 nw_umberhulk 7 8 9,00 0x16
|
||||
416 WillOWisp 12814 nw_willowisp 7 9 9,00 0x16
|
||||
417 Treant 16793778 prc_sum_treant 52 7 6,00 0x20
|
||||
418 ShamblingMound 16793779 prc_shambmound 52 8 6,00 0x20
|
||||
419 TwigBlight 16793780 wol_twigblight 52 1 1,00 0x20
|
||||
420 Myconid 16793781 prc_myconid 52 2 1,00 0x20
|
||||
421 Algoid 16793782 prc_algoid 52 5 4,00 0x20
|
||||
Label Name ResRef Race HD CR Type
|
||||
0 Default 6614 **** **** **** **** 0xFF
|
||||
1 Adult_Black_Dragon 12461 nw_drgblack001 11 19 13,00 0x0C
|
||||
2 Adult_Blue_Dragon 12465 nw_drgblue001 11 21 14,00 0x0C
|
||||
3 Adult_Brass_Dragon 12469 nw_drgbrass001 11 19 13,00 0x0C
|
||||
4 Adult_Bronze_Dragon 12473 nw_drgbrnz001 11 21 15,00 0x0C
|
||||
5 Adult_Copper_Dragon 12477 nw_drgcopp001 11 20 14,00 0x0C
|
||||
6 Adult_Gold_Dragon 12481 nw_drggold001 11 23 16,00 0x0C
|
||||
7 Adult_Green_Dragon 12485 nw_drggreen001 11 20 14,00 0x0C
|
||||
8 Adult_Red_Dragon 12489 nw_drgred001 11 22 15,00 0x0C
|
||||
9 Adult_Silver_Dragon 12493 nw_drgsilv001 11 22 16,00 0x0C
|
||||
10 Adult_White_Dragon 12497 nw_drgwhite001 11 18 12,00 0x0C
|
||||
11 Adult_Wyvern 111389 x3_wyvern002 11 12 8,00 0x08
|
||||
12 Air_Elemental 12354 nw_air 16 4 4,00 0x02
|
||||
13 Air_Mephit 12636 nw_mepair 20 3 3,00 0x00
|
||||
14 Alhoon 84506 x2_mindflayer003 24 16 18,00 0x00
|
||||
15 Allip 12360 nw_allip 24 4 3,00 0x00
|
||||
16 Ancient_Black_Dragon 12463 nw_drgblack003 11 31 21,00 0x0C
|
||||
17 Ancient_Blue_Dragon 12467 nw_drgblue003 11 33 23,00 0x0C
|
||||
18 Ancient_Brass_Dragon 12471 nw_drgbrass003 11 31 22,00 0x0C
|
||||
19 Ancient_Bronze_Dragon 12475 nw_drgbrnz003 11 33 23,00 0x0C
|
||||
20 Ancient_Copper_Dragon 12479 nw_drgcopp003 11 32 22,00 0x0C
|
||||
21 Ancient_Dire_Bear 56563 nw_beardireboss 8 12 15,00 0x09
|
||||
22 Ancient_Gold_Dragon 12483 nw_drggold003 11 35 25,00 0x0C
|
||||
23 Ancient_Green_Dragon 12487 nw_drggreen003 11 32 22,00 0x0C
|
||||
24 Ancient_Red_Dragon 12491 nw_drgred003 11 34 24,00 0x0C
|
||||
25 Ancient_Shadow_Dragon 90379 x2_dragonshad001 11 31 22,00 0x0C
|
||||
26 Ancient_Silver_Dragon 12495 nw_drgsilv003 11 34 24,00 0x0C
|
||||
27 Ancient_White_Dragon 12499 nw_drgwhite003 11 30 20,00 0x0C
|
||||
28 Androsphinx 40618 x0_sphinx 19 18 13,00 0x08
|
||||
29 Aranea 12362 nw_aranea 23 3 3,00 0x00
|
||||
30 Asabi_Chieftain 2901 x0_asabi_chief 15 9 6,00 0x08
|
||||
31 Asabi_Shaman 2902 x0_asabi_shaman 15 7 5,00 0x08
|
||||
32 Asabi_Warrior 2900 x0_asabi_warrior 15 3 2,00 0x08
|
||||
33 Azer 100964 x2_azer001 20 2 2,00 0x00
|
||||
34 Azer 100965 x2_azer002 20 2 2,00 0x00
|
||||
35 Badger 12366 nw_badger 8 1 0,50 0x09
|
||||
36 Baelnorn 12630 nw_lich002 24 15 18,00 0x00
|
||||
37 Balor 12443 nw_demon 20 13 15,00 0x00
|
||||
38 Bandit 12367 nw_bandit001 6 1 0,50 0x08
|
||||
39 Bandit_Archer 12368 nw_bandit002 6 1 0,50 0x08
|
||||
40 Bandit_Chief 12373 nw_bandit007 6 15 11,00 0x08
|
||||
41 Bartender 6974 nw_bartender 6 1 0,25 0x08
|
||||
42 Basilisk 2861 x0_basilisk 19 6 5,00 0x08
|
||||
43 Bat 12376 nw_bat 8 1 0,33 0x09
|
||||
44 Battle_Devourer 12380 nw_battdevour 7 9 11,00 0x08
|
||||
45 Battle_Horror 12378 nw_bathorror 10 13 13,00 0x00
|
||||
46 Bebilith 90432 x2_spiderdemo001 20 12 12,00 0x00
|
||||
47 Beggar 6960 nw_beggmale 6 1 0,25 0x08
|
||||
48 Beholder 95219 x2_beholder001 7 11 11,00 0x08
|
||||
49 Beholder_Mage 90374 x2_beholder003 7 21 15,00 0x08
|
||||
50 Black_Bear 12382 nw_bearblck 8 3 2,00 0x09
|
||||
51 Black_Cormyrian_Cobra 111368 x3_blckcobra001 8 3 2,00 0x09
|
||||
52 Blink_Dog 12395 nw_blinkdog 19 4 3,00 0x08
|
||||
53 Bloodsailor 2167 nw_humsailor 6 1 0,25 0x08
|
||||
54 Blue_Slaad 12706 nw_slaadbl 20 8 7,00 0x00
|
||||
55 Boar 12397 nw_boar 8 3 2,00 0x09
|
||||
56 Bodak 12401 nw_bodak 24 9 9,00 0x00
|
||||
57 Bombardier_Beetle 12403 nw_btlbomb 25 2 3,00 0x08
|
||||
58 Bone_Golem 12570 nw_golbone 10 14 11,00 0x00
|
||||
59 Boy 12634 nw_malekid01 6 1 0,25 0x08
|
||||
60 Brown_Bear 12384 nw_bearbrwn 8 6 5,00 0x09
|
||||
61 Bugbear 12411 nw_bugbeara 12 3 2,00 0x08
|
||||
62 Bugbear_Chieftain 56565 nw_bugbearboss 12 11 10,00 0x08
|
||||
63 Bugbear_Hero 12412 nw_bugchiefa 12 6 5,00 0x08
|
||||
64 Bugbear_Shaman 12413 nw_bugwiza 12 6 4,00 0x08
|
||||
65 Bulette 110635 nw_bulette 9 9 7,00 0x00
|
||||
66 Celestial_Avenger 12431 nw_ctrumpet 20 12 11,00 0x00
|
||||
67 Chicken 12416 nw_chicken 8 1 0,25 0x09
|
||||
68 Clay_Golem 12572 nw_golclay 10 11 10,00 0x00
|
||||
69 Cockatrice 40596 x0_cockatrice 19 5 5,00 0x08
|
||||
70 Commoner,_Female 2168 nw_comfemale 6 1 0,25 0x08
|
||||
71 Commoner,_Male 2169 nw_commale 6 1 0,25 0x08
|
||||
72 Convict 12424 nw_convict 6 1 0,25 0x08
|
||||
73 Cougar 12426 nw_cougar 8 3 2,00 0x09
|
||||
74 Cow 12428 nw_cow 8 1 0,17 0x09
|
||||
75 Crag_Cat 57919 nw_cragcat 8 3 2,00 0x09
|
||||
76 Cult_Member 12433 nw_cultmember 6 1 0,25 0x08
|
||||
77 Curst_Monk 12438 nw_curst004 24 5 6,00 0x00
|
||||
78 Curst_Ranger 12437 nw_curst003 24 5 5,00 0x00
|
||||
79 Curst_Rogue 12436 nw_curst002 24 5 6,00 0x00
|
||||
80 Curst_Swordsman 111431 x3_curstsword 24 6 6,00 0x00
|
||||
81 Curst_Warrior 12435 nw_curst001 24 5 5,00 0x00
|
||||
82 Death_Slaad 12708 nw_slaaddeth 20 15 15,00 0x00
|
||||
83 Deep_Rothe 3073 x2_deeprothe001 19 2 1,00 0x08
|
||||
84 Deer 12440 nw_deer 8 1 0,33 0x09
|
||||
85 Demilich 3087 x2_demilich001 24 21 24,00 0x00
|
||||
86 Demonflesh_Golem 84195 nw_goldmflesh001 10 24 25,00 0x00
|
||||
87 Diamond_Golem 111377 x3_diagolem001 10 14 14,00 0x00
|
||||
88 Dire_Badger 12447 nw_direbadg 8 3 3,00 0x09
|
||||
89 Dire_Bear 12386 nw_beardire 8 12 9,00 0x09
|
||||
90 Dire_Boar 12399 nw_boardire 8 7 5,00 0x09
|
||||
91 Dire_Rat 3105 nw_ratdire001 8 1 0,50 0x09
|
||||
92 Dire_Spider 12718 nw_spiddire 25 10 7,00 0x08
|
||||
93 Dire_Tiger 12448 nw_diretiger 8 16 11,00 0x09
|
||||
94 Dire_Wolf 10526 nw_direwolf 8 6 5,00 0x09
|
||||
95 Dog 12457 nw_dog 8 2 1,00 0x09
|
||||
96 Doom_Knight 12459 nw_doomkght 24 9 10,00 0x00
|
||||
97 Doom_Knight_Commander 56566 nw_doomkghtboss 24 9 15,00 0x00
|
||||
98 Drider 3063 x2_drider001 7 6 6,00 0x08
|
||||
99 Drider_Chief 90380 x2_drider002 7 11 10,00 0x08
|
||||
100 Drider_Cleric 90389 x2_fdrider002 7 6 7,00 0x08
|
||||
101 Drider_Wizard 90381 x2_driderw01 7 6 8,00 0x08
|
||||
102 Drow_Assassin 12503 nw_drowrogue001 1 1 1,00 0x08
|
||||
103 Drow_Mage 12502 nw_drowmage001 1 1 1,00 0x08
|
||||
104 Drow_Militia 12501 nw_drowfight001 1 1 1,00 0x08
|
||||
105 Drow_Priestess 12500 nw_drowcler001 1 1 1,00 0x08
|
||||
106 Drow_Rogue 90394 x2_mephdrow001 1 11 7,00 0x08
|
||||
107 Drow_Slave 90382 x2_drow001 1 1 0,50 0x08
|
||||
108 Drow_Warrior 85590 x2_mephdrow004 1 11 8,00 0x08
|
||||
109 Drow_Wizard 90383 x2_drow002 1 5 4,00 0x08
|
||||
110 Dryad 12505 nw_dryad 17 2 2,00 0x08
|
||||
111 Duergar_Chief 90385 x2_duergar002 0 5 4,00 0x08
|
||||
112 Duergar_Cleric 12507 nw_duecler001 0 1 1,00 0x08
|
||||
113 Duergar_Mage 90400 x2_mephduer007 0 10 7,00 0x08
|
||||
114 Duergar_Priestess 90401 x2_mephduer010 0 10 8,00 0x08
|
||||
115 Duergar_Rogue 12510 x2_mephduer004 0 10 7,00 0x08
|
||||
116 Duergar_Slaver 101022 x2_duergar001 0 1 0,25 0x08
|
||||
117 Duergar_Warrior 12508 nw_duefight001 0 1 1,00 0x08
|
||||
118 Dust_Mephit 12637 nw_mepdust 20 3 3,00 0x00
|
||||
119 Dwarf_Mercenary 12511 nw_dwarfmerc001 0 1 0,50 0x08
|
||||
120 Earth_Elemental 12513 nw_earth 16 4 4,00 0x02
|
||||
121 Earth_Mephit 12638 nw_mepearth 20 3 3,00 0x00
|
||||
122 Elder_Air_Elemental 12356 nw_airelder 16 24 20,00 0x02
|
||||
123 Elder_Earth_Elemental 12515 nw_eartheld 16 24 17,00 0x02
|
||||
124 Elder_Fire_Elemental 12531 nw_fireelder 16 24 17,00 0x02
|
||||
125 Elder_Water_Elemental 12800 nw_watelder 16 24 16,00 0x02
|
||||
126 Elf_Mage 12518 nw_elfmage001 1 1 0,50 0x08
|
||||
127 Elf_Mercenary 12519 nw_elfmerc001 1 3 2,00 0x08
|
||||
128 Elf_Ranger 12520 nw_elfranger001 1 1 0,50 0x08
|
||||
129 Emerald_Golem 111379 x3_emgolem001 10 12 12,00 0x00
|
||||
130 Erinyes 90386 x2_erinyes 20 6 8,00 0x00
|
||||
131 Ettercap 12522 nw_ettercap 7 5 5,00 0x08
|
||||
132 Ettin 12524 nw_ettin 18 10 8,00 0x08
|
||||
133 Eyeball 84490 x2_beholder002 7 1 3,00 0x08
|
||||
134 Faerie_Dragon 9162 x0_dragon_faerie 11 10 5,00 0x08
|
||||
135 Falcon 12685 nw_raptor001 8 1 0,33 0x09
|
||||
136 Female_Drider 90388 x2_fdrider001 7 6 6,00 0x08
|
||||
137 Fenhound 12527 nw_fenhound 20 5 4,00 0x00
|
||||
138 Fire_Beetle 12405 nw_btlfire 25 1 0,25 0x08
|
||||
139 Fire_Elemental 12529 nw_fire 16 4 3,00 0x02
|
||||
140 Fire_Giant 12558 nw_gntfire 18 15 12,00 0x08
|
||||
141 Fire_Giant 2898 x0_gntfirefem 18 15 10,00 0x08
|
||||
142 Fire_Mephit 6001 nw_mepfire 20 3 3,00 0x00
|
||||
143 Flesh_Golem 12574 nw_golflesh 10 9 8,00 0x00
|
||||
144 Formian_Myrmarch 2889 x0_form_myrmarch 20 12 11,00 0x00
|
||||
145 Formian_Queen 2890 x0_form_queen 20 37 20,00 0x00
|
||||
146 Formian_Taskmaster 40603 x0_form_taskmast 20 6 7,00 0x00
|
||||
147 Formian_Warrior 2888 x0_form_warrior 20 4 4,00 0x00
|
||||
148 Formian_Worker 2887 x0_form_worker 20 1 1,00 0x00
|
||||
149 Frost_Giant 12560 nw_gntfrost 18 14 10,00 0x08
|
||||
150 Frost_Giant 2897 x0_gntfrostfem 18 14 9,00 0x08
|
||||
151 Gargoyle 12550 nw_gargoyle 19 4 3,00 0x08
|
||||
152 Gaseous_Form 12798 nw_vampire_shad 24 3 3,00 0x00
|
||||
153 Gelatinous_Cube 84439 x2_gelcube 29 4 3,00 0x08
|
||||
154 Ghast 12552 nw_ghast 24 4 4,00 0x00
|
||||
155 Ghoul 12554 nw_ghoul 24 2 2,00 0x00
|
||||
156 Ghoul_Lord 12556 nw_ghoullord 24 6 5,00 0x00
|
||||
157 Ghoul_Ravager 56567 nw_ghoulboss 24 9 10,00 0x00
|
||||
158 Giant_Spider 12720 nw_spidgiant 25 4 3,00 0x08
|
||||
159 Girl 12525 nw_femalekid01 6 1 0,25 0x08
|
||||
160 Gnoll 3097 nw_gnoll001 12 2 1,00 0x08
|
||||
161 Gnoll_Shaman 3099 nw_gnoll002 12 4 3,00 0x08
|
||||
162 Goblin 12567 nw_goblina 12 1 0,25 0x08
|
||||
163 Goblin_Chieftain 56568 nw_goblinboss 12 9 11,00 0x08
|
||||
164 Goblin_Elite 12566 nw_gobchiefa 12 5 4,00 0x08
|
||||
165 Goblin_Shaman 12568 nw_gobwiza 12 4 3,00 0x08
|
||||
166 Goblin_Shark 110730 nw_sharkgoblin 8 3 2,00 0x09
|
||||
167 Gold_Cormyrian_Cobra 111370 x3_goldcobra001 8 5 4,00 0x09
|
||||
168 Gorgon 2856 x0_gorgon 19 8 7,00 0x08
|
||||
169 Gray_Ooze 110742 nw_grayooze 29 3 3,00 0x08
|
||||
170 Gray_Render 12579 nw_grayrend 9 10 8,00 0x00
|
||||
171 Gray_Slaad 12710 nw_slaadgray 20 10 10,00 0x00
|
||||
172 Great_Cobra 111372 x3_grtcobra001 8 7 5,00 0x09
|
||||
173 Great_Wyvern 111387 x3_wyvern001 11 14 9,00 0x08
|
||||
174 Greater_Air_Elemental 12357 nw_airgreat 16 21 18,00 0x02
|
||||
175 Greater_Earth_Elemental 12516 nw_earthgreat 16 21 15,00 0x02
|
||||
176 Greater_Fire_Elemental 12532 nw_firegreat 16 21 15,00 0x02
|
||||
177 Greater_Mummy 5644 nw_mumcleric 24 12 10,00 0x00
|
||||
178 Greater_Water_Elemental 12803 nw_watergreat 16 21 14,00 0x02
|
||||
179 Green_Slaad 12712 nw_slaadgrn 20 9 9,00 0x00
|
||||
180 Grig 12581 nw_grig 17 1 2,00 0x08
|
||||
181 Grizzly_Bear 12387 nw_bearkodiak 8 8 6,00 0x09
|
||||
182 Gynosphinx 2869 x0_gynosphinx 19 8 8,00 0x08
|
||||
183 Gypsy_Chief 12589 nw_gypsy006 6 15 11,00 0x08
|
||||
184 Gypsy_Healer 12588 nw_gypsy005 6 10 8,00 0x08
|
||||
185 Gypsy_Mage 12587 nw_gypsy004 6 5 4,00 0x08
|
||||
186 Gypsy_Rogue 12586 nw_gypsy002 6 1 0,50 0x08
|
||||
187 Gypsy_Warrior 12585 nw_gypsy001 6 1 0,50 0x08
|
||||
188 Gypsy_Female 12583 nw_gypfemale 6 1 0,25 0x08
|
||||
189 Gypsy_Male 12584 nw_gypmale 6 1 0,25 0x08
|
||||
190 GZhorb_the_All-Seeing_Eye 111435 x3_gzhorb 7 33 18,00 0x08
|
||||
191 Half-Celestial_Warrior 12591 nw_halfcel001 20 10 9,00 0x00
|
||||
192 Half-Dragon_Cleric 12594 nw_halfdra002 11 10 8,00 0x08
|
||||
193 Half-Dragon_Sorcerer 12592 nw_halfdra001 11 10 9,00 0x08
|
||||
194 Half-Fiend_Warrior 12597 nw_halffnd001 20 10 8,00 0x00
|
||||
195 Halfling 6992 nw_halfling001 3 1 0,50 0x08
|
||||
196 Halfling 6991 nw_halfling005 3 5 3,00 0x08
|
||||
197 Halfling_Mercenary 12599 nw_halfmerc002 3 4 3,00 0x08
|
||||
198 Half-Orc_Bandit 12372 nw_bandit006 5 10 7,00 0x08
|
||||
199 Hammerhead_Shark 110729 nw_sharkhammer 8 3 3,00 0x09
|
||||
200 Harpy 3076 x2_harpy001 13 7 5,00 0x08
|
||||
201 Hell_Hound 5997 nw_hellhound 20 4 4,00 0x00
|
||||
202 Helmed_Horror 12602 nw_helmhorr 10 13 11,00 0x00
|
||||
203 Hill_Giant 12562 nw_gnthill 18 12 10,00 0x08
|
||||
204 Hive_Mother 56564 nw_beetleboss 25 11 16,00 0x08
|
||||
205 Hobgoblin 3100 nw_hobgoblin001 12 1 0,25 0x08
|
||||
206 Hobgoblin_Shaman 3102 nw_hobgoblin002 12 2 2,00 0x08
|
||||
207 Hook_Horror 12616 nw_horror 7 5 5,00 0x08
|
||||
208 Horse 111456 x3_horse001 8 1 0,50 0x09
|
||||
209 Hound_Archon 12418 nw_chound01 20 6 6,00 0x00
|
||||
210 Hound_of_Xvim 12391 nw_beastxvim 20 5 5,00 0x00
|
||||
211 House_Guard 2173 nw_guard 6 1 0,50 0x08
|
||||
212 Huge_Air_Elemental 12358 nw_airhuge 16 16 13,00 0x02
|
||||
213 Huge_Earth_Elemental 12517 nw_earthhuge 16 16 11,00 0x02
|
||||
214 Huge_Fire_Elemental 12533 nw_firehuge 16 16 12,00 0x02
|
||||
215 Huge_Iron_Golem 90393 x2_goliron_huge 10 21 21,00 0x00
|
||||
216 Huge_Water_Elemental 12804 nw_waterhuge 16 16 11,00 0x02
|
||||
217 Human_Mercenary 12617 nw_humanmerc003 6 7 6,00 0x08
|
||||
218 Hybrid_Cormyrian_Cobra 111373 x3_hybcobra001 8 3 2,00 0x09
|
||||
219 Ice_Mephit 6003 nw_mepice 20 3 3,00 0x00
|
||||
220 Imp 5999 nw_imp 20 3 3,00 0x00
|
||||
221 Innkeeper 6973 nw_innkeeper 6 1 0,25 0x08
|
||||
222 Intellect_Devourer 12445 nw_devour 7 6 7,00 0x08
|
||||
223 Invisible_Stalker 12621 nw_invstalk 16 8 6,00 0x02
|
||||
224 Iron_Golem 12576 nw_goliron 10 18 16,00 0x00
|
||||
225 Jaguar 12623 nw_jaguar 8 5 3,00 0x09
|
||||
226 Juvenile_Wyvern 111390 x3_wyvern003 11 9 6,00 0x08
|
||||
227 Kobold 2924 nw_kobold001 15 1 0,33 0x08
|
||||
228 Kobold_Footpad 2933 nw_kobold004 15 2 2,00 0x08
|
||||
229 Kobold_Shaman 2926 nw_kobold005 15 2 2,00 0x08
|
||||
230 Kobold_Thug 2925 nw_kobold003 15 2 2,00 0x08
|
||||
231 Krenshar 12625 nw_krenshar 19 2 2,00 0x08
|
||||
232 Kurths_Soldier 2175 nw_kurthsold 6 1 0,50 0x08
|
||||
233 Lantern_Archon 12421 nw_clantern 20 1 5,00 0x00
|
||||
234 Leopard 12414 nw_cat 8 3 2,00 0x09
|
||||
235 Lich 12627 nw_lichboss 24 16 21,00 0x00
|
||||
236 Lion 12632 nw_lion 8 5 3,00 0x09
|
||||
237 Lizardfolk_Chieftain 12668 nw_oldchiefa 15 5 4,00 0x08
|
||||
238 Lizardfolk_Shaman 12669 nw_oldmageb 15 5 4,00 0x08
|
||||
239 Lizardfolk_Warrior 12671 nw_oldwarra 15 2 2,00 0x08
|
||||
240 Luskan_Guard 6951 nw_luskanite 6 1 0,25 0x08
|
||||
241 Magma_Mephit 12639 nw_mepmagma 20 3 3,00 0x00
|
||||
242 Mako_Shark 110728 nw_sharkmako 8 3 3,00 0x09
|
||||
243 Malar_Panther 2976 nw_beastmalar001 23 9 7,00 0x00
|
||||
244 Manticore 2865 x0_manticore 19 6 6,00 0x08
|
||||
245 Medusa 2854 x0_medusa 13 6 6,00 0x08
|
||||
246 Mind_Flayer 90403 x2_mindflayer001 7 8 9,00 0x08
|
||||
247 Mind_Flayer_Darkener 90402 x2_mindfdarkener 7 15 16,00 0x08
|
||||
248 Mind_Flayer_Venerator 90405 x2_mindfveneratr 7 15 20,00 0x08
|
||||
249 Minogon 12647 nw_minogon 10 8 8,00 0x00
|
||||
250 Minotaur 12648 nw_minotaur 13 6 4,00 0x08
|
||||
251 Minotaur_Berserker 12645 nw_minchief 13 12 8,00 0x08
|
||||
252 Minotaur_Chieftain 56569 nw_minotaurboss 13 12 13,00 0x08
|
||||
253 Minotaur_Shaman 12649 nw_minwiz 13 12 9,00 0x08
|
||||
254 Mist_Dragon 111393 x3_dragmist001 11 21 14,00 0x0C
|
||||
255 Mohrg 12651 nw_mohrg 24 14 12,00 0x00
|
||||
256 Mountain_Giant 12564 nw_gntmount 18 12 10,00 0x08
|
||||
257 Mummy 12656 nw_mummy 24 6 5,00 0x00
|
||||
258 Mummy_Lord 56570 nw_mummyboss 24 12 11,00 0x00
|
||||
259 Neverwintan_Militia 6950 nw_nevmilitia 6 1 0,50 0x08
|
||||
260 Nightmare 110968 x3_nightmare002 20 9 8,00 0x00
|
||||
261 Nixie 12658 nw_nixie 17 1 1,00 0x08
|
||||
262 Nobleman 2179 nw_noblmale 6 1 0,25 0x08
|
||||
263 Noblewoman 2178 nw_noblfemale 6 1 0,25 0x08
|
||||
264 Nymph 12662 nw_nymph 17 3 3,00 0x08
|
||||
265 Ochre_Jelly 110835 nw_ochrejellymed 29 4 3,00 0x08
|
||||
266 Ogre 12664 nw_ogre01 18 4 3,00 0x08
|
||||
267 Ogre_Berserker 12665 nw_ogrechief01 18 8 6,00 0x08
|
||||
268 Ogre_Chieftain 56571 nw_ogreboss 18 11 9,00 0x08
|
||||
269 Ogre_High_Mage 56572 nw_ogremageboss 18 12 18,00 0x08
|
||||
270 Ogre_Mage 12666 nw_ogremage01 18 5 5,00 0x08
|
||||
271 Old_Black_Dragon 12462 nw_drgblack002 11 25 17,00 0x0C
|
||||
272 Old_Blue_Dragon 12466 nw_drgblue002 11 27 18,00 0x0C
|
||||
273 Old_Brass_Dragon 12470 nw_drgbrass002 11 25 17,00 0x0C
|
||||
274 Old_Bronze_Dragon 12474 nw_drgbrnz002 11 27 19,00 0x0C
|
||||
275 Old_Copper_Dragon 12478 nw_drgcopp002 11 26 18,00 0x0C
|
||||
276 Old_Gold_Dragon 12482 nw_drggold002 11 29 21,00 0x0C
|
||||
277 Old_Green_Dragon 12486 nw_drggreen002 11 26 18,00 0x0C
|
||||
278 Old_Man 6979 nw_oldman 6 1 0,25 0x08
|
||||
279 Old_Red_Dragon 12490 nw_drgred002 11 28 19,00 0x0C
|
||||
280 Old_Silver_Dragon 12494 nw_drgsilv002 11 28 20,00 0x0C
|
||||
281 Old_White_Dragon 12498 nw_drgwhite002 11 24 16,00 0x0C
|
||||
282 Old_Woman 6980 nw_oldwoman 6 1 0,25 0x08
|
||||
283 Ooze_Mephit 12640 nw_mepooze 20 3 3,00 0x00
|
||||
284 Orc 12674 nw_orca 14 1 0,25 0x08
|
||||
285 Orc_Champion 12675 nw_orcchiefa 14 4 3,00 0x08
|
||||
286 Orc_Chieftain 56573 nw_orcboss 14 11 10,00 0x08
|
||||
287 Orc_Shaman 12676 nw_orcwiza 14 5 4,00 0x08
|
||||
288 Ox 12678 nw_ox 8 1 0,50 0x09
|
||||
289 Pack_Leader 56578 nw_wolfdireboss 8 6 11,00 0x09
|
||||
290 Panther 5995 nw_panther 8 3 2,00 0x09
|
||||
291 Parrot 110798 nw_parrot 8 1 0,25 0x09
|
||||
292 Penguin 40617 x0_penguin001 8 1 0,17 0x09
|
||||
293 Phase_Spider 12722 nw_spidphase 19 5 3,00 0x08
|
||||
294 Pit_Fiend 3095 nw_devil001 20 13 15,00 0x00
|
||||
295 Pixie 6005 nw_pixie 17 1 2,00 0x08
|
||||
296 Plague_Victim 2180 nw_plagmale 6 1 0,25 0x08
|
||||
297 Polar_Bear 12389 nw_bearpolar 8 8 6,00 0x09
|
||||
298 Prismatic_Dragon 90378 x2_dragonpris001 11 40 37,00 0x0C
|
||||
299 Prostitute 12614 nw_hooker01 6 1 0,25 0x08
|
||||
300 Pseudodragon 9161 x0_dragon_pseudo 11 2 0,50 0x08
|
||||
301 Purple_Dragon_Archer 110996 x3_pdkaf001 6 2 2,00 0x08
|
||||
302 Purple_Dragon_Archer 110997 x3_pdkam001 6 2 2,00 0x08
|
||||
303 Purple_Dragon_Blade 110998 x3_pdkbf001 6 2 2,00 0x08
|
||||
304 Purple_Dragon_Blade 110999 x3_pdkbm001 6 2 2,00 0x08
|
||||
305 Quasit 12451 nw_dmquasit 20 3 3,00 0x00
|
||||
306 Queen_Spider 56576 nw_spiderboss 25 11 14,00 0x08
|
||||
307 Rakshasa 12682 nw_rakshasa 20 7 7,00 0x00
|
||||
308 Rat 3103 nw_rat001 8 1 0,13 0x09
|
||||
309 Raven 6008 nw_raven 8 1 0,33 0x09
|
||||
310 Red_Slaad 12714 nw_slaadred 20 7 6,00 0x00
|
||||
311 Revenant 12687 nw_revenant001 24 6 7,00 0x00
|
||||
312 Ruby_Golem 111381 x3_rubygolem001 10 10 12,00 0x00
|
||||
313 Sahuagin 110752 nw_sahuagin 15 2 2,00 0x08
|
||||
314 Sahuagin_Cleric 110753 nw_sahuaginclr 15 2 2,00 0x08
|
||||
315 Sahuagin_Leader 110754 nw_sahuaginldr 15 3 3,00 0x08
|
||||
316 Salt_Mephit 12641 nw_mepsalt 20 3 3,00 0x00
|
||||
317 Satyr 110988 x3_satyr003 17 5 4,00 0x08
|
||||
318 Satyr_Archer 111384 x3_satyr002 17 5 4,00 0x08
|
||||
319 Satyr_Warrior 111386 x3_satyr001 17 5 4,00 0x08
|
||||
320 Sea_Hag 110534 nw_seahag 13 3 4,00 0x08
|
||||
321 Seagull 110684 nw_seagullfly 8 3 2,00 0x09
|
||||
322 Shadow 12689 nw_shadow 24 3 3,00 0x00
|
||||
323 Shadow_Fiend 12691 nw_shfiend 24 7 7,00 0x00
|
||||
324 Shadow_Mastiff 12695 nw_shmastif 20 4 4,00 0x00
|
||||
325 Shield_Guardian 12693 nw_shguard 10 15 13,00 0x00
|
||||
326 Shop_Keeper 6972 nw_shopkeep 6 1 0,25 0x08
|
||||
327 Skeletal_Devourer 12700 nw_skeldevour 24 11 13,00 0x00
|
||||
328 Skeleton 12701 nw_skeleton 24 1 0,50 0x00
|
||||
329 Skeleton_Chieftain 12698 nw_skelchief 24 7 7,00 0x00
|
||||
330 Skeleton_Mage 12702 nw_skelmage 24 4 4,00 0x00
|
||||
331 Skeleton_Priest 12703 nw_skelpriest 24 4 4,00 0x00
|
||||
332 Skeleton_Warrior 12704 nw_skelwarr01 24 6 6,00 0x00
|
||||
333 Spectre 12716 nw_spectre 24 7 6,00 0x00
|
||||
334 Spitting_Cobra 111375 x3_spitcobra001 8 4 3,00 0x09
|
||||
335 Spitting_Fire_Beetle 79561 nw_btlfire02 25 1 3,00 0x08
|
||||
336 Stag_Beetle 12407 nw_btlstag 25 7 7,00 0x08
|
||||
337 Steam_Mephit 12642 nw_mepsteam 20 3 3,00 0x00
|
||||
338 Stinger 2872 x0_stinger 13 4 3,00 0x08
|
||||
339 Stinger_Chieftain 2875 x0_stinger_chief 13 10 7,00 0x08
|
||||
340 Stinger_Mage 2876 x0_stinger_mage 13 7 5,00 0x08
|
||||
341 Stinger_Warrior 2874 x0_stinger_war 13 7 5,00 0x08
|
||||
342 Stink_Beetle 12409 nw_btlstink 25 3 3,00 0x08
|
||||
343 Stirge 12727 nw_stirge 9 1 0,33 0x00
|
||||
344 Stone_Golem 12578 nw_golstone 10 14 12,00 0x00
|
||||
345 Succubus 12453 nw_dmsucubus 20 6 7,00 0x00
|
||||
346 Svirfneblin 3080 x2_svirfneblin01 2 1 0,50 0x08
|
||||
347 Svirfneblin 3081 x2_svirfneblin02 2 1 0,50 0x08
|
||||
348 Sword_Spider 12724 nw_spidswrd 25 5 4,00 0x08
|
||||
349 Tiefling 12784 nw_tiefling02 20 1 0,50 0x00
|
||||
350 Troglodyte 110636 nw_trog001 15 2 1,00 0x08
|
||||
351 Troglodyte_Cleric 110638 nw_trog003 15 6 5,00 0x08
|
||||
352 Troglodyte_Warrior 110637 nw_trog002 15 4 3,00 0x08
|
||||
353 Troll 12786 nw_troll 18 6 5,00 0x08
|
||||
354 Troll_Berserker 12787 nw_trollchief 18 10 7,00 0x08
|
||||
355 Troll_Chieftain 56577 nw_trollboss 18 12 9,00 0x08
|
||||
356 Troll_Shaman 12788 nw_trollwiz 18 10 7,00 0x08
|
||||
357 Tyrantfog_Zombie 12829 nw_zombtyrant 24 4 3,00 0x00
|
||||
358 Ulitharid 90404 x2_mindflayer002 7 16 19,00 0x08
|
||||
359 Umber_Hulk 12790 nw_umberhulk 7 8 9,00 0x08
|
||||
360 Uthgard_Elk_Tribesmen 12791 nw_uthgard01 6 1 1,00 0x08
|
||||
361 Uthgard_Tiger_Tribesmen 12792 nw_uthgard02 6 1 1,00 0x08
|
||||
362 Vampire 12772 nw_vampire 24 5 6,00 0x00
|
||||
363 Vampire_Mage 12796 nw_vampire003 24 10 16,00 0x00
|
||||
364 Vampire_Priest 12797 nw_vampire004 24 10 13,00 0x00
|
||||
365 Vampire_Rogue 12795 nw_vampire002 24 10 13,00 0x00
|
||||
366 Vampire_Warrior 12794 nw_vampire001 24 10 12,00 0x00
|
||||
367 Vrock 12455 nw_dmvrock 20 8 10,00 0x00
|
||||
368 Waitress 6975 nw_waitress 6 1 0,25 0x08
|
||||
369 Warrior_Mummy 12654 nw_mumfight 24 12 10,00 0x00
|
||||
370 Water_Elemental 12802 nw_water 16 4 4,00 0x02
|
||||
371 Water_Mephit 12643 nw_mepwater 20 3 3,00 0x00
|
||||
372 Wereboar 111014 x3_wereboar001 23 10 9,00 0x00
|
||||
373 Werecat 12806 nw_werecat 23 6 5,00 0x00
|
||||
374 Wererat 12808 nw_wererat 23 1 0,50 0x00
|
||||
375 Werewolf 12810 nw_werewolf 23 2 2,00 0x00
|
||||
376 White_Slaad 90431 x2_slaadwhite001 20 24 25,00 0x00
|
||||
377 White_Stag 12441 nw_deerstag 8 1 0,33 0x09
|
||||
378 Wight 12812 nw_wight 24 4 4,00 0x00
|
||||
379 Will-O-Wisp 12814 nw_willowisp 7 9 8,00 0x08
|
||||
380 Winter_Wolf 12818 nw_wolfwint 19 6 5,00 0x08
|
||||
381 Wolf 12816 nw_wolf 8 2 1,00 0x09
|
||||
382 Worg 12820 nw_worg 19 4 3,00 0x08
|
||||
383 Wraith 12822 nw_wraith 24 5 5,00 0x00
|
||||
384 Wraith_Spider 12726 nw_spidwra 24 3 4,00 0x00
|
||||
385 Wyrmling_Black_Dragon 40624 x0_wyrmling_blk 11 4 3,00 0x0C
|
||||
386 Wyrmling_Blue_Dragon 40626 x0_wyrmling_blu 11 6 5,00 0x0C
|
||||
387 Wyrmling_Brass_Dragon 40628 x0_wyrmling_brs 11 4 4,00 0x0C
|
||||
388 Wyrmling_Bronze_Dragon 40630 x0_wyrmling_brz 11 6 5,00 0x0C
|
||||
389 Wyrmling_Copper_Dragon 40632 x0_wyrmling_cop 11 5 5,00 0x0C
|
||||
390 Wyrmling_Gold_Dragon 40634 x0_wyrmling_gld 11 8 7,00 0x0C
|
||||
391 Wyrmling_Green_Dragon 40635 x0_wyrmling_grn 11 5 4,00 0x0C
|
||||
392 Wyrmling_Red_Dragon 40637 x0_wyrmling_red 11 7 5,00 0x0C
|
||||
393 Wyrmling_Silver_Dragon 40638 x0_wyrmling_sil 11 7 6,00 0x0C
|
||||
394 Wyrmling_White_Dragon 40640 x0_wyrmling_wht 11 3 3,00 0x0C
|
||||
395 Young_Wyvern 111391 x3_wyvern004 11 6 4,00 0x08
|
||||
396 Yuan-ti 12823 nw_yuan_ti001 15 6 5,00 0x08
|
||||
397 Yuan-Ti_Priest 12825 nw_yuan_ti003 15 6 6,00 0x08
|
||||
398 Yuan-Ti_Sorcerer 12824 nw_yuan_ti002 15 6 5,00 0x08
|
||||
399 Zombie 12827 nw_zombie01 24 2 1,00 0x00
|
||||
400 Zombie_Lord 56579 nw_zombieboss 24 9 8,00 0x00
|
||||
401 Zombie_Warrior 12830 nw_zombwarr01 24 5 4,00 0x00
|
||||
402 BattleDevourer 12380 nw_battdevour 7 9 11,00 0x10
|
||||
403 Beholder 95219 x2_beholder001 7 11 11,00 0x10
|
||||
404 BeholderMage 90374 x2_beholder003 7 21 15,00 0x10
|
||||
405 Drider 3063 x2_drider001 7 6 7,00 0x10
|
||||
406 DriderChief 3064 x2_drider002 7 11 10,00 0x10
|
||||
407 DriderCleric 90389 x2_fdrider002 7 6 7,00 0x10
|
||||
408 DriderWizard 3066 x2_driderw01 7 6 8,00 0x10
|
||||
409 Ettercap 2136 nw_ettercap 7 5 5,00 0x10
|
||||
410 Eyeball 84490 x2_beholder002 7 1 3,00 0x10
|
||||
411 HookHorror 12616 nw_horror 7 5 5,00 0x10
|
||||
412 IntellectDevourer 2093 nw_devour 7 8 7,00 0x10
|
||||
413 Illithid 90403 x2_mindflayer001 7 8 9,00 0x10
|
||||
414 Ulitharid 90404 x2_mindflayer002 7 16 20,00 0x10
|
||||
415 UmberHulk 2138 nw_umberhulk 7 8 9,00 0x10
|
||||
416 WillOWisp 12814 nw_willowisp 7 9 9,00 0x10
|
||||
417 Treant 16793778 prc_sum_treant 52 7 6,00 0x20
|
||||
418 ShamblingMound 16793779 prc_shambmound 52 8 6,00 0x20
|
||||
419 TwigBlight 16793780 wol_twigblight 52 1 1,00 0x20
|
||||
420 Myconid 16793781 prc_myconid 52 2 1,00 0x20
|
||||
421 Algoid 16793782 prc_algoid 52 5 4,00 0x20
|
||||
|
||||
@@ -3687,14 +3687,14 @@
|
||||
3683 WhirlingBlade 16832235 is_whirl_bld T M vs 0x38 0x0e sp_whrl_blade 2 **** **** **** **** 2 2 1500 **** **** **** **** **** vs_chant_conj_lm vs_chant_conj_lf touch 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 11 **** 1 16832236 1 0 **** 1 **** **** **** 0 rectangle 18.288 3 19 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3684 PnP_FireShield 16832237 is_FireShld V P vs 0x3a 0x09 sp_pnp_frshld **** **** **** **** **** 4 4 1500 head vco_mehedfire01 **** **** sco_mehanfire03 **** **** **** **** **** **** **** sim_explflame 0 **** **** **** **** **** **** **** 3699 3700 **** **** **** **** **** 1 16832238 1 0 **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3685 RingOfBlades 16832239 is_BladeBar C P vs 0x3a 0x09 sp_ring_blds **** 3 **** **** **** **** 3 1500 head vco_mehanmind02 **** **** SCO_LGRINHOLY01 vs_chant_conj_hm vs_chant_conj_hf Area 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 1 16832240 1 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3686 SleetStorm 16832241 is_iceburst C L vs 0x3a 0x0f sp_sleet_storm **** **** 3 **** **** 3 3 1500 hand **** vco_mehancold03 **** sco_mehancold03 vs_chant_conj_hm vs_chant_conj_hf Area 1000 **** **** **** sim_shwngcold01 1 vpr_ectocold01 accelerating hand spr_ectocold01 path Cold 0 **** **** **** **** **** 1 **** 1 16832242 1 0 **** 0 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3686 SleetStorm 16832241 is_iceburst C L vs 0x3a 0x0f sp_sleet_storm **** **** 3 **** **** 3 3 1500 hand **** vco_mehancold03 **** sco_mehancold03 vs_chant_conj_hm vs_chant_conj_hf Area 1000 **** **** **** sim_shwngcold01 1 vpr_ectocold01 accelerating hand spr_ectocold01 path Cold 0 **** **** **** **** **** 1 **** 1 16832242 1 0 **** 0 **** **** **** 1 sphere 12.92 **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3687 OrbOfForce 16832243 is_call_fserv C M vs 0x3d 0x3a sp_orb_force **** **** **** **** **** 4 4 1500 hand **** vco_mehanelec02 **** SCO_LGUPODD01 vs_chant_conj_hm vs_chant_conj_hf touch 1000 **** **** **** sca_outmind01 1 vpr_ectoodd01 accelerating hand spr_ectoodd01 path **** 0 **** **** **** **** **** 2 **** 1 16832244 1 0 **** 1 **** **** **** 1 **** **** **** **** **** 4 **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3688 MassFireShield 16832245 is_MFireShld V S vs 0x3a 0x0f sp_mass_frshld **** **** **** **** **** 5 5 1500 head **** **** **** **** **** **** Area 1000 **** **** **** sim_explflame 0 **** **** **** **** **** **** 0 3682 3701 **** **** **** 6 **** 1 16832246 1 0 **** 0 **** **** **** 0 sphere 9.144 **** 4 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3689 PrismaticRay 16832247 is_serpsigh V M vs 0x38 0x0a sp_prismat_ray **** **** **** **** **** 5 5 1500 hand **** vco_mehanmind03 **** sco_mehanfire03 vs_chant_evoc_hm vs_chant_evoc_hf touch 1000 **** **** **** sar_conepris 0 **** **** **** **** **** **** 0 **** **** **** **** **** 2 **** 1 16832248 1 0 **** 1 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3690 SwordsageRecoverManeuver 16832269 ife_mastelem T P 0 **** 0x01 tob_swd_recover **** **** **** **** **** **** 9 0 head **** vco_smhanevil01 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_lf self 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 10 **** 3 **** 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3691 OtilukesFreezingSphere 16832251 is_snsnowsw V L vs 0x3d 0x0e sp_ot_frz_sphere **** **** **** **** **** 6 6 1500 hand **** vco_mehancold02 vco_lgrincold01 sco_lgrincold1 vs_chant_evoc_hm vs_chant_evoc_hf Area 1000 **** **** **** **** 1 vpr_ectocold01 homing hand spr_ectocold01 path Cold 0 **** **** **** **** **** 11 **** 1 16832252 1 0 **** 1 **** **** **** 1 sphere 3.048 **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3692 WavesOfExhaustion 16832253 is_wave_exhous N M vs 0x38 0x0e sp_wave_exhst **** **** **** **** **** 7 7 1500 hand **** vco_mehanmind03 **** sco_mehanmind03 vs_chant_necr_hm vs_chant_necr_hf out 1700 **** **** **** sca_outmind01 0 **** **** **** **** **** **** 0 **** **** **** **** **** 1 **** 1 16832254 1 0 **** 1 **** **** **** 0 cone 18.29 **** 19 **** **** **** **** **** **** **** **** **** **** 8 **** **** ****
|
||||
3693 PrismaticWall 16832255 is_wallprism A s vs 0x3a 0x0c sp_prism_wall **** **** **** **** **** 8 8 1500 head vco_mehanmind03 **** **** sco_mehanfire03 vs_chant_evoc_lm vs_chant_evoc_lf Area 1000 **** **** **** sar_conepris 0 **** **** **** **** **** **** 0 **** **** **** **** **** 1 **** 1 16832256 1 0 **** 1 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3693 PrismaticWall 16832255 is_wallprism A s vs 0x3a 0x0c sp_prism_wall **** **** **** **** **** 8 8 1500 head vco_mehanmind03 **** **** sco_mehanfire03 vs_chant_evoc_lm vs_chant_evoc_lf Area 1000 **** **** **** sar_conepris 0 **** **** **** **** **** **** 0 **** **** **** **** **** 1 **** 1 16832256 1 0 **** 1 **** **** **** 0 rectangle 2 10 3 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3694 ScintillatingPattern 16832257 is_gfireburst I S vs 0x38 0x0f sp_scint_pattrn **** **** **** **** **** 8 8 1500 head vco_mehanmind03 **** **** sco_mehanmind03 vs_chant_illu_hm vs_chant_illu_hf Area 1000 **** **** **** sar_conepris 0 **** **** **** **** **** **** 0 **** **** **** **** **** 1 **** 1 16832258 1 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3695 PrismaticSphere 16832259 is_seques A p v 0x3a 0x09 sp_prismt_sphr **** **** **** **** **** 9 9 1500 head vco_mehanmind03 **** **** sco_mehanfire03 vs_chant_evoc_lm vs_chant_evoc_lf self 1000 **** **** **** sar_conepris 0 **** **** **** **** **** **** 0 **** **** **** **** **** 6 **** 1 16832260 1 0 **** 0 **** **** **** 0 sphere 10 **** 27 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
3696 Pyrotechnics_Fireworks 16832261 is_flashburst T L vs 0x3a 0x0f sp_pyrotechnics **** **** **** **** **** **** 2 1500 hand **** vco_mehedfire01 **** sco_mehedfire01 vs_chant_conj_lm vs_chant_conj_lf Area 1000 **** **** **** **** 1 vpr_ectofire01 accelerating hand spr_ectofire01 path Fire 0 **** **** **** **** **** 1 3680 1 16832230 1 0 **** 0 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
|
||||
14
nwn/nwnprc/trunk/Craft2das/packeqwb1.2da
Normal file
14
nwn/nwnprc/trunk/Craft2das/packeqwb1.2da
Normal file
@@ -0,0 +1,14 @@
|
||||
2DA V2.0
|
||||
|
||||
Label Name
|
||||
0 NW_ASHLW001 LargeShield_AC2
|
||||
1 NW_WSWLS001 Longsword_1d8
|
||||
2 NW_WBWSH001 Shortbow_1d6
|
||||
3 NW_AARCL003 ScaleMail_AC4
|
||||
4 NW_IT_TORCH001 Torch
|
||||
5 NW_IT_MEDKIT001 Healer's_Kit_+1
|
||||
6 NW_IT_MEDKIT001 Healer's_Kit_+1
|
||||
7 NW_IT_MEDKIT001 Healer's_Kit_+1
|
||||
8 NW_WAMAR001 Arrows
|
||||
9 NW_WAMAR001 Arrows
|
||||
10 NW_WAMAR001 Arrows
|
||||
385
nwn/nwnprc/trunk/Craft2das/packftwb1.2da
Normal file
385
nwn/nwnprc/trunk/Craft2das/packftwb1.2da
Normal file
@@ -0,0 +1,385 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatIndex Label
|
||||
0 657 FEAT_EPIC_WEAPON_SPECIALIZATION_CLUB
|
||||
1 658 FEAT_EPIC_WEAPON_SPECIALIZATION_DAGGER
|
||||
2 659 FEAT_EPIC_WEAPON_SPECIALIZATION_DART
|
||||
3 660 FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVYCROSSBOW
|
||||
4 661 FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHTCROSSBOW
|
||||
5 662 FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHTMACE
|
||||
6 663 FEAT_EPIC_WEAPON_SPECIALIZATION_MORNINGSTAR
|
||||
7 664 FEAT_EPIC_WEAPON_SPECIALIZATION_QUARTERSTAFF
|
||||
8 665 FEAT_EPIC_WEAPON_SPECIALIZATION_SHORTSPEAR
|
||||
9 666 FEAT_EPIC_WEAPON_SPECIALIZATION_SICKLE
|
||||
10 667 FEAT_EPIC_WEAPON_SPECIALIZATION_SLING
|
||||
11 668 FEAT_EPIC_WEAPON_SPECIALIZATION_UNARMED
|
||||
12 669 FEAT_EPIC_WEAPON_SPECIALIZATION_LONGBOW
|
||||
13 670 FEAT_EPIC_WEAPON_SPECIALIZATION_SHORTBOW
|
||||
14 671 FEAT_EPIC_WEAPON_SPECIALIZATION_SHORTSWORD
|
||||
15 672 FEAT_EPIC_WEAPON_SPECIALIZATION_RAPIER
|
||||
16 673 FEAT_EPIC_WEAPON_SPECIALIZATION_SCIMITAR
|
||||
17 674 FEAT_EPIC_WEAPON_SPECIALIZATION_LONGSWORD
|
||||
18 675 FEAT_EPIC_WEAPON_SPECIALIZATION_GREATSWORD
|
||||
19 676 FEAT_EPIC_WEAPON_SPECIALIZATION_HANDAXE
|
||||
20 677 FEAT_EPIC_WEAPON_SPECIALIZATION_THROWINGAXE
|
||||
21 678 FEAT_EPIC_WEAPON_SPECIALIZATION_BATTLEAXE
|
||||
22 679 FEAT_EPIC_WEAPON_SPECIALIZATION_GREATAXE
|
||||
23 680 FEAT_EPIC_WEAPON_SPECIALIZATION_HALBERD
|
||||
24 681 FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHTHAMMER
|
||||
25 682 FEAT_EPIC_WEAPON_SPECIALIZATION_LIGHTFLAIL
|
||||
26 683 FEAT_EPIC_WEAPON_SPECIALIZATION_WARHAMMER
|
||||
27 684 FEAT_EPIC_WEAPON_SPECIALIZATION_HEAVYFLAIL
|
||||
28 685 FEAT_EPIC_WEAPON_SPECIALIZATION_KAMA
|
||||
29 686 FEAT_EPIC_WEAPON_SPECIALIZATION_KUKRI
|
||||
30 687 FEAT_EPIC_WEAPON_SPECIALIZATION_SHURIKEN
|
||||
31 688 FEAT_EPIC_WEAPON_SPECIALIZATION_SCYTHE
|
||||
32 689 FEAT_EPIC_WEAPON_SPECIALIZATION_KATANA
|
||||
33 690 FEAT_EPIC_WEAPON_SPECIALIZATION_BASTARDSWORD
|
||||
34 691 FEAT_EPIC_WEAPON_SPECIALIZATION_DIREMACE
|
||||
35 692 FEAT_EPIC_WEAPON_SPECIALIZATION_DOUBLEAXE
|
||||
36 693 FEAT_EPIC_WEAPON_SPECIALIZATION_TWOBLADEDSWORD
|
||||
37 1077 FEAT_EPIC_WEAPON_SPECIALIZATION_TRIDENT
|
||||
38 619 FEAT_EPIC_WEAPON_FOCUS_CLUB
|
||||
39 620 FEAT_EPIC_WEAPON_FOCUS_DAGGER
|
||||
40 621 FEAT_EPIC_WEAPON_FOCUS_DART
|
||||
41 622 FEAT_EPIC_WEAPON_FOCUS_HEAVYCROSSBOW
|
||||
42 623 FEAT_EPIC_WEAPON_FOCUS_LIGHTCROSSBOW
|
||||
43 624 FEAT_EPIC_WEAPON_FOCUS_LIGHTMACE
|
||||
44 625 FEAT_EPIC_WEAPON_FOCUS_MORNINGSTAR
|
||||
45 626 FEAT_EPIC_WEAPON_FOCUS_QUARTERSTAFF
|
||||
46 627 FEAT_EPIC_WEAPON_FOCUS_SHORTSPEAR
|
||||
47 628 FEAT_EPIC_WEAPON_FOCUS_SICKLE
|
||||
48 629 FEAT_EPIC_WEAPON_FOCUS_SLING
|
||||
49 630 FEAT_EPIC_WEAPON_FOCUS_UNARMED
|
||||
50 631 FEAT_EPIC_WEAPON_FOCUS_LONGBOW
|
||||
51 632 FEAT_EPIC_WEAPON_FOCUS_SHORTBOW
|
||||
52 633 FEAT_EPIC_WEAPON_FOCUS_SHORTSWORD
|
||||
53 634 FEAT_EPIC_WEAPON_FOCUS_RAPIER
|
||||
54 635 FEAT_EPIC_WEAPON_FOCUS_SCIMITAR
|
||||
55 636 FEAT_EPIC_WEAPON_FOCUS_LONGSWORD
|
||||
56 637 FEAT_EPIC_WEAPON_FOCUS_GREATSWORD
|
||||
57 638 FEAT_EPIC_WEAPON_FOCUS_HANDAXE
|
||||
58 639 FEAT_EPIC_WEAPON_FOCUS_THROWINGAXE
|
||||
59 640 FEAT_EPIC_WEAPON_FOCUS_BATTLEAXE
|
||||
60 641 FEAT_EPIC_WEAPON_FOCUS_GREATAXE
|
||||
61 642 FEAT_EPIC_WEAPON_FOCUS_HALBERD
|
||||
62 643 FEAT_EPIC_WEAPON_FOCUS_LIGHTHAMMER
|
||||
63 644 FEAT_EPIC_WEAPON_FOCUS_LIGHTFLAIL
|
||||
64 645 FEAT_EPIC_WEAPON_FOCUS_WARHAMMER
|
||||
65 646 FEAT_EPIC_WEAPON_FOCUS_HEAVYFLAIL
|
||||
66 647 FEAT_EPIC_WEAPON_FOCUS_KAMA
|
||||
67 648 FEAT_EPIC_WEAPON_FOCUS_KUKRI
|
||||
68 649 FEAT_EPIC_WEAPON_FOCUS_SHURIKEN
|
||||
69 650 FEAT_EPIC_WEAPON_FOCUS_SCYTHE
|
||||
70 651 FEAT_EPIC_WEAPON_FOCUS_KATANA
|
||||
71 652 FEAT_EPIC_WEAPON_FOCUS_BASTARDSWORD
|
||||
72 653 FEAT_EPIC_WEAPON_FOCUS_DIREMACE
|
||||
73 654 FEAT_EPIC_WEAPON_FOCUS_DOUBLEAXE
|
||||
74 655 FEAT_EPIC_WEAPON_FOCUS_TWOBLADEDSWORD
|
||||
75 1076 FEAT_EPIC_WEAPON_FOCUS_TRIDENT
|
||||
76 709 FEAT_EPIC_OVERWHELMING_CRITICAL_CLUB
|
||||
77 710 FEAT_EPIC_OVERWHELMING_CRITICAL_DAGGER
|
||||
78 711 FEAT_EPIC_OVERWHELMING_CRITICAL_DART
|
||||
79 712 FEAT_EPIC_OVERWHELMING_CRITICAL_HEAVYCROSSBOW
|
||||
80 713 FEAT_EPIC_OVERWHELMING_CRITICAL_LIGHTCROSSBOW
|
||||
81 714 FEAT_EPIC_OVERWHELMING_CRITICAL_LIGHTMACE
|
||||
82 715 FEAT_EPIC_OVERWHELMING_CRITICAL_MORNINGSTAR
|
||||
83 716 FEAT_EPIC_OVERWHELMING_CRITICAL_QUARTERSTAFF
|
||||
84 717 FEAT_EPIC_OVERWHELMING_CRITICAL_SHORTSPEAR
|
||||
85 718 FEAT_EPIC_OVERWHELMING_CRITICAL_SICKLE
|
||||
86 719 FEAT_EPIC_OVERWHELMING_CRITICAL_SLING
|
||||
87 720 FEAT_EPIC_OVERWHELMING_CRITICAL_UNARMED
|
||||
88 721 FEAT_EPIC_OVERWHELMING_CRITICAL_LONGBOW
|
||||
89 722 FEAT_EPIC_OVERWHELMING_CRITICAL_SHORTBOW
|
||||
90 723 FEAT_EPIC_OVERWHELMING_CRITICAL_SHORTSWORD
|
||||
91 724 FEAT_EPIC_OVERWHELMING_CRITICAL_RAPIER
|
||||
92 725 FEAT_EPIC_OVERWHELMING_CRITICAL_SCIMITAR
|
||||
93 726 FEAT_EPIC_OVERWHELMING_CRITICAL_LONGSWORD
|
||||
94 727 FEAT_EPIC_OVERWHELMING_CRITICAL_GREATSWORD
|
||||
95 728 FEAT_EPIC_OVERWHELMING_CRITICAL_HANDAXE
|
||||
96 729 FEAT_EPIC_OVERWHELMING_CRITICAL_THROWINGAXE
|
||||
97 730 FEAT_EPIC_OVERWHELMING_CRITICAL_BATTLEAXE
|
||||
98 731 FEAT_EPIC_OVERWHELMING_CRITICAL_GREATAXE
|
||||
99 732 FEAT_EPIC_OVERWHELMING_CRITICAL_HALBERD
|
||||
100 733 FEAT_EPIC_OVERWHELMING_CRITICAL_LIGHTHAMMER
|
||||
101 734 FEAT_EPIC_OVERWHELMING_CRITICAL_LIGHTFLAIL
|
||||
102 735 FEAT_EPIC_OVERWHELMING_CRITICAL_WARHAMMER
|
||||
103 736 FEAT_EPIC_OVERWHELMING_CRITICAL_HEAVYFLAIL
|
||||
104 737 FEAT_EPIC_OVERWHELMING_CRITICAL_KAMA
|
||||
105 738 FEAT_EPIC_OVERWHELMING_CRITICAL_KUKRI
|
||||
106 739 FEAT_EPIC_OVERWHELMING_CRITICAL_SHURIKEN
|
||||
107 740 FEAT_EPIC_OVERWHELMING_CRITICAL_SCYTHE
|
||||
108 741 FEAT_EPIC_OVERWHELMING_CRITICAL_KATANA
|
||||
109 742 FEAT_EPIC_OVERWHELMING_CRITICAL_BASTARDSWORD
|
||||
110 743 FEAT_EPIC_OVERWHELMING_CRITICAL_DIREMACE
|
||||
111 744 FEAT_EPIC_OVERWHELMING_CRITICAL_DOUBLEAXE
|
||||
112 745 FEAT_EPIC_OVERWHELMING_CRITICAL_TWOBLADEDSWORD
|
||||
113 1078 FEAT_EPIC_OVERWHELMING_CRITICAL_TRIDENT
|
||||
114 495 FEAT_EPIC_DEVASTATING_CRITICAL_CLUB
|
||||
115 496 FEAT_EPIC_DEVASTATING_CRITICAL_DAGGER
|
||||
116 497 FEAT_EPIC_DEVASTATING_CRITICAL_DART
|
||||
117 498 FEAT_EPIC_DEVASTATING_CRITICAL_HEAVYCROSSBOW
|
||||
118 499 FEAT_EPIC_DEVASTATING_CRITICAL_LIGHTCROSSBOW
|
||||
119 500 FEAT_EPIC_DEVASTATING_CRITICAL_LIGHTMACE
|
||||
120 501 FEAT_EPIC_DEVASTATING_CRITICAL_MORNINGSTAR
|
||||
121 502 FEAT_EPIC_DEVASTATING_CRITICAL_QUARTERSTAFF
|
||||
122 503 FEAT_EPIC_DEVASTATING_CRITICAL_SHORTSPEAR
|
||||
123 504 FEAT_EPIC_DEVASTATING_CRITICAL_SICKLE
|
||||
124 505 FEAT_EPIC_DEVASTATING_CRITICAL_SLING
|
||||
125 506 FEAT_EPIC_DEVASTATING_CRITICAL_UNARMED
|
||||
126 507 FEAT_EPIC_DEVASTATING_CRITICAL_LONGBOW
|
||||
127 508 FEAT_EPIC_DEVASTATING_CRITICAL_SHORTBOW
|
||||
128 509 FEAT_EPIC_DEVASTATING_CRITICAL_SHORTSWORD
|
||||
129 510 FEAT_EPIC_DEVASTATING_CRITICAL_RAPIER
|
||||
130 511 FEAT_EPIC_DEVASTATING_CRITICAL_SCIMITAR
|
||||
131 512 FEAT_EPIC_DEVASTATING_CRITICAL_LONGSWORD
|
||||
132 513 FEAT_EPIC_DEVASTATING_CRITICAL_GREATSWORD
|
||||
133 514 FEAT_EPIC_DEVASTATING_CRITICAL_HANDAXE
|
||||
134 515 FEAT_EPIC_DEVASTATING_CRITICAL_THROWINGAXE
|
||||
135 516 FEAT_EPIC_DEVASTATING_CRITICAL_BATTLEAXE
|
||||
136 517 FEAT_EPIC_DEVASTATING_CRITICAL_GREATAXE
|
||||
137 518 FEAT_EPIC_DEVASTATING_CRITICAL_HALBERD
|
||||
138 519 FEAT_EPIC_DEVASTATING_CRITICAL_LIGHTHAMMER
|
||||
139 520 FEAT_EPIC_DEVASTATING_CRITICAL_LIGHTFLAIL
|
||||
140 521 FEAT_EPIC_DEVASTATING_CRITICAL_WARHAMMER
|
||||
141 522 FEAT_EPIC_DEVASTATING_CRITICAL_HEAVYFLAIL
|
||||
142 523 FEAT_EPIC_DEVASTATING_CRITICAL_KAMA
|
||||
143 524 FEAT_EPIC_DEVASTATING_CRITICAL_KUKRI
|
||||
144 525 FEAT_EPIC_DEVASTATING_CRITICAL_SHURIKEN
|
||||
145 526 FEAT_EPIC_DEVASTATING_CRITICAL_SCYTHE
|
||||
146 527 FEAT_EPIC_DEVASTATING_CRITICAL_KATANA
|
||||
147 528 FEAT_EPIC_DEVASTATING_CRITICAL_BASTARDSWORD
|
||||
148 529 FEAT_EPIC_DEVASTATING_CRITICAL_DIREMACE
|
||||
149 530 FEAT_EPIC_DEVASTATING_CRITICAL_DOUBLEAXE
|
||||
150 531 FEAT_EPIC_DEVASTATING_CRITICAL_TWOBLADEDSWORD
|
||||
151 1075 FEAT_EPIC_DEVASTATING_CRITICAL_TRIDENT
|
||||
152 867 FEAT_WHIRLWIND_ATTACK
|
||||
153 868 FEAT_IMPROVED_WHIRLWIND
|
||||
154 584 FEAT_EPIC_PROWESS
|
||||
155 814 FEAT_EPIC_GREAT_STRENGTH_1
|
||||
156 815 FEAT_EPIC_GREAT_STRENGTH_2
|
||||
157 816 FEAT_EPIC_GREAT_STRENGTH_3
|
||||
158 490 FEAT_EPIC_ARMOR_SKIN
|
||||
159 491 FEAT_EPIC_BLINDING_SPEED
|
||||
160 753 FEAT_EPIC_SUPERIOR_INITIATIVE
|
||||
161 817 FEAT_EPIC_GREAT_STRENGTH_4
|
||||
162 818 FEAT_EPIC_GREAT_STRENGTH_5
|
||||
163 819 FEAT_EPIC_GREAT_STRENGTH_6
|
||||
164 754 FEAT_EPIC_TOUGHNESS_1
|
||||
165 755 FEAT_EPIC_TOUGHNESS_2
|
||||
166 756 FEAT_EPIC_TOUGHNESS_3
|
||||
167 820 FEAT_EPIC_GREAT_STRENGTH_7
|
||||
168 821 FEAT_EPIC_GREAT_STRENGTH_8
|
||||
169 822 FEAT_EPIC_GREAT_STRENGTH_9
|
||||
170 823 FEAT_EPIC_GREAT_STRENGTH_10
|
||||
171 757 FEAT_EPIC_TOUGHNESS_4
|
||||
172 758 FEAT_EPIC_TOUGHNESS_5
|
||||
173 759 FEAT_EPIC_TOUGHNESS_6
|
||||
174 492 FEAT_EPIC_DAMAGE_REDUCTION_3
|
||||
175 493 FEAT_EPIC_DAMAGE_REDUCTION_6
|
||||
176 494 FEAT_EPIC_DAMAGE_REDUCTION_9
|
||||
177 760 FEAT_EPIC_TOUGHNESS_7
|
||||
178 761 FEAT_EPIC_TOUGHNESS_8
|
||||
179 762 FEAT_EPIC_TOUGHNESS_9
|
||||
180 763 FEAT_EPIC_TOUGHNESS_10
|
||||
181 695 FEAT_EPIC_WILL
|
||||
182 774 FEAT_EPIC_GREAT_CONSTITUTION_1
|
||||
183 775 FEAT_EPIC_GREAT_CONSTITUTION_2
|
||||
184 776 FEAT_EPIC_GREAT_CONSTITUTION_3
|
||||
185 777 FEAT_EPIC_GREAT_CONSTITUTION_4
|
||||
186 778 FEAT_EPIC_GREAT_CONSTITUTION_5
|
||||
187 779 FEAT_EPIC_GREAT_CONSTITUTION_6
|
||||
188 780 FEAT_EPIC_GREAT_CONSTITUTION_7
|
||||
189 781 FEAT_EPIC_GREAT_CONSTITUTION_8
|
||||
190 782 FEAT_EPIC_GREAT_CONSTITUTION_9
|
||||
191 783 FEAT_EPIC_GREAT_CONSTITUTION_10
|
||||
192 784 FEAT_EPIC_GREAT_DEXTERITY_1
|
||||
193 785 FEAT_EPIC_GREAT_DEXTERITY_2
|
||||
194 786 FEAT_EPIC_GREAT_DEXTERITY_3
|
||||
195 787 FEAT_EPIC_GREAT_DEXTERITY_4
|
||||
196 788 FEAT_EPIC_GREAT_DEXTERITY_5
|
||||
197 789 FEAT_EPIC_GREAT_DEXTERITY_6
|
||||
198 790 FEAT_EPIC_GREAT_DEXTERITY_7
|
||||
199 791 FEAT_EPIC_GREAT_DEXTERITY_8
|
||||
200 792 FEAT_EPIC_GREAT_DEXTERITY_9
|
||||
201 793 FEAT_EPIC_GREAT_DEXTERITY_10
|
||||
202 106 WeapFocLSw
|
||||
203 377 ImpInit
|
||||
204 6 Cleave
|
||||
205 391 GreatCleave
|
||||
206 408 BlindFight
|
||||
207 28 PowerAtk
|
||||
208 68 ImpCritLSw
|
||||
209 144 WeapSpeLSw
|
||||
210 3831 BladeMeditation_IronHeart
|
||||
211 3990 IronheartAura
|
||||
212 10 Dodge
|
||||
213 40 Toughness
|
||||
214 26 Mobility
|
||||
215 392 SpringAttack
|
||||
216 9 Disarm
|
||||
217 14 GreatFort
|
||||
218 22 IronWill
|
||||
219 24 LightngRef
|
||||
220 389 Expertise
|
||||
221 425 DirtyFighting
|
||||
222 27 PBShot
|
||||
223 30 RapidShot
|
||||
224 107 WeapFocGSw
|
||||
225 69 ImpCritGSw
|
||||
226 145 WeapSpeGSw
|
||||
227 1 Ambidex
|
||||
228 41 TwoWeap
|
||||
229 16 ImpDis
|
||||
230 19 ImpPower
|
||||
231 20 ImpTwo
|
||||
232 390 ImpExpertise
|
||||
233 0 Alertness
|
||||
234 42 WeapFinesse
|
||||
235 32 Shield
|
||||
236 39 StunFist
|
||||
237 8 DefArrow
|
||||
238 427 ResistEnergyCold
|
||||
239 428 ResistEnergyAcid
|
||||
240 429 ResistEnergyFire
|
||||
241 430 ResistEnergyElectrical
|
||||
242 431 ResistEnergySonic
|
||||
243 43 WeapFocClub
|
||||
244 15 ImpCritClub
|
||||
245 57 ImpCritMorn
|
||||
246 58 ImpCritStaff
|
||||
247 59 ImpCritSpear
|
||||
248 60 ImpCritSickle
|
||||
249 61 ImpCritSling
|
||||
250 62 ImpCritUnArm
|
||||
251 63 ImpCritLongBow
|
||||
252 64 ImpCritShortBow
|
||||
253 65 ImpCritShortSwor
|
||||
254 66 ImpCritRapier
|
||||
255 67 ImpCritScim
|
||||
256 70 ImpCritHAxe
|
||||
257 71 ImpCritTAxe
|
||||
258 72 ImpCritBAxe
|
||||
259 73 ImpCritGAxe
|
||||
260 74 ImpCritHalb
|
||||
261 75 ImpCritLgHam
|
||||
262 76 ImpCritLgFlail
|
||||
263 77 ImpCritWHam
|
||||
264 78 ImpCritHFlail
|
||||
265 79 ImpCritKama
|
||||
266 80 ImpCritKukri
|
||||
267 82 ImpCritShur
|
||||
268 83 ImpCritScy
|
||||
269 84 ImpCritKatana
|
||||
270 85 ImpCritBSw
|
||||
271 87 ImpCritDMace
|
||||
272 88 ImpCritDAxe
|
||||
273 89 ImpCrit2Sw
|
||||
274 1074 FEAT_IMPROVED_CRITICAL_TRIDENT
|
||||
275 90 WeapFocDagger
|
||||
276 91 WeapFocDart
|
||||
277 92 WeapFocHXBow
|
||||
278 93 WeapFocLgXBow
|
||||
279 94 WeapFocLgMace
|
||||
280 95 WeapFocMorn
|
||||
281 96 WeapFocStaff
|
||||
282 97 WeapFocSpear
|
||||
283 98 WeapFocSickle
|
||||
284 99 WeapFocSling
|
||||
285 100 WeapFocUnArm
|
||||
286 101 WeapFocLongBow
|
||||
287 102 WeapFocShortBow
|
||||
288 103 WeapFocShortSwor
|
||||
289 104 WeapFocRapier
|
||||
290 105 WeapFocScim
|
||||
291 108 WeapFocHAxe
|
||||
292 109 WeapFocTAxe
|
||||
293 110 WeapFocBAxe
|
||||
294 111 WeapFocGAxe
|
||||
295 112 WeapFocHalb
|
||||
296 113 WeapFocLgHam
|
||||
297 114 WeapFocLgFlail
|
||||
298 115 WeapFocWHam
|
||||
299 116 WeapFocHFlail
|
||||
300 117 WeapFocKama
|
||||
301 118 WeapFocKukri
|
||||
302 120 WeapFocShur
|
||||
303 121 WeapFocScy
|
||||
304 122 WeapFocKatana
|
||||
305 123 WeapFocBSw
|
||||
306 125 WeapFocDMace
|
||||
307 126 WeapFocDAxe
|
||||
308 127 WeapFoc2Sw
|
||||
309 1072 FEAT_WEAPON_FOCUS_TRIDENT
|
||||
310 128 WeapSpeDagger
|
||||
311 129 WeapSpeDart
|
||||
312 130 WeapSpeHXBow
|
||||
313 131 WeapSpeLgXBow
|
||||
314 132 WeapSpeLgMace
|
||||
315 133 WeapSpeMorn
|
||||
316 134 WeapSpeStaff
|
||||
317 135 WeapSpeSpear
|
||||
318 136 WeapSpeSickle
|
||||
319 137 WeapSpeSling
|
||||
320 138 WeapSpeUnArm
|
||||
321 139 WeapSpeLongBow
|
||||
322 140 WeapSpeShortBow
|
||||
323 141 WeapSpeShortSwor
|
||||
324 142 WeapSpeRapier
|
||||
325 143 WeapSpeScim
|
||||
326 146 WeapSpeHAxe
|
||||
327 147 WeapSpeTAxe
|
||||
328 148 WeapSpeBAxe
|
||||
329 149 WeapSpeGAxe
|
||||
330 150 WeapSpeHalb
|
||||
331 151 WeapSpeLgHam
|
||||
332 152 WeapSpeLgFlail
|
||||
333 153 WeapSpeWHam
|
||||
334 154 WeapSpeHFlail
|
||||
335 155 WeapSpeKama
|
||||
336 156 WeapSpeKukri
|
||||
337 158 WeapSpeShur
|
||||
338 159 WeapSpeScy
|
||||
339 160 WeapSpeKatana
|
||||
340 161 WeapSpeBSw
|
||||
341 163 WeapSpeDMace
|
||||
342 164 WeapSpeDAxe
|
||||
343 165 WeapSpe2Sw
|
||||
344 1073 FEAT_WEAPON_SPECIALIZATION_TRIDENT
|
||||
345 166 SpellFocusCon
|
||||
346 167 SpellFocusDiv
|
||||
347 168 SpellFocusEnc
|
||||
348 169 SpellFocusEvo
|
||||
349 170 SpellFocusIll
|
||||
350 171 SpellFocusNec
|
||||
351 172 SpellFocusTra
|
||||
352 173 SkillFocusConc
|
||||
353 174 SkillFocusDisa
|
||||
354 175 SkillFocusGrip
|
||||
355 177 SkillFocusHeal
|
||||
356 178 SkillFocusHide
|
||||
357 179 SkillFocusList
|
||||
358 180 SkillFocusLore
|
||||
359 181 SkillFocusMove
|
||||
360 182 SkillFocusOpen
|
||||
361 183 SkillFocusParr
|
||||
362 184 SkillFocusPerf
|
||||
363 185 SkillFocusPers
|
||||
364 186 SkillFocusPick
|
||||
365 187 SkillFocusSearch
|
||||
366 188 SkillFocusSet
|
||||
367 189 SkillFocusSpell
|
||||
368 190 SkillFocusSpot
|
||||
369 192 SkillFocusTaunt
|
||||
370 193 SkillFocusDevi
|
||||
371 35 SpellFocusAbj
|
||||
372 36 SpellPen
|
||||
373 37 StillSpell
|
||||
374 25 MaxSpell
|
||||
375 7 CmbtCast
|
||||
376 29 Quicken
|
||||
377 34 SkillFocusAnim
|
||||
378 33 Silent
|
||||
379 11 Empower
|
||||
380 12 ExtSpell
|
||||
381 13 ExtTurn
|
||||
26
nwn/nwnprc/trunk/Craft2das/packskwb1.2da
Normal file
26
nwn/nwnprc/trunk/Craft2das/packskwb1.2da
Normal file
@@ -0,0 +1,26 @@
|
||||
2DA V2.0
|
||||
|
||||
SkillIndex Label
|
||||
0 1 Concentration
|
||||
1 28 Jump
|
||||
2 32 Balance
|
||||
3 12 Persuade
|
||||
4 24 Intimidate
|
||||
5 31 Martial_Lore
|
||||
6 37 Climb
|
||||
7 7 Lore
|
||||
8 17 Spot
|
||||
9 27 Ride
|
||||
10 4 Heal
|
||||
11 26 CraftWeapon
|
||||
12 25 CraftArmor
|
||||
13 16 Spellcraft
|
||||
14 30 SenseMotive
|
||||
15 19 UseMagicDevice
|
||||
16 8 MoveSilently
|
||||
17 5 Hide
|
||||
18 23 Bluff
|
||||
19 14 Search
|
||||
20 24 Intimidate
|
||||
21 35 CraftPoison
|
||||
22 38 GraftGeneral
|
||||
@@ -10,8 +10,9 @@ int PRCGetSaveDC(object oTarget, object oCaster, int nSpellID = -1);
|
||||
|
||||
//called just from above and from inc_epicspells
|
||||
int GetChangesToSaveDC(object oTarget, object oCaster, int nSpellID, int nSchool);
|
||||
|
||||
#include "prc_inc_factotum"
|
||||
#include "prc_add_spl_pen"
|
||||
|
||||
// #include "prc_inc_spells"
|
||||
// #include "prc_class_const"
|
||||
// #include "prc_feat_const"
|
||||
@@ -445,6 +446,31 @@ int AngrySpell(int spell_id, int nSchool, object oCaster)
|
||||
}
|
||||
|
||||
int CloakedCastingDC(int spell_id, object oTarget, object oCaster)
|
||||
{
|
||||
int nDC;
|
||||
int iBeguiler = GetLevelByClass(CLASS_TYPE_BEGUILER, oCaster);
|
||||
int iFactotum = GetLevelByClass(CLASS_TYPE_FACTOTUM, oCaster);
|
||||
int iEffectiveLevel = 0;
|
||||
|
||||
// Check if character has Beguiler levels OR has learned Cloaked Casting via Cunning Brilliance
|
||||
if(iBeguiler || (iFactotum && GetIsAbilitySaved(oCaster, FEAT_CLOAKED_CASTING)))
|
||||
{
|
||||
if(GetIsDeniedDexBonusToAC(oTarget, oCaster, TRUE))
|
||||
{
|
||||
// Use Beguiler level if available, otherwise use Factotum level
|
||||
iEffectiveLevel = iBeguiler ? iBeguiler : iFactotum;
|
||||
|
||||
if(iEffectiveLevel >= 14)
|
||||
nDC = 2;
|
||||
else if(iEffectiveLevel >= 2)
|
||||
nDC = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return nDC;
|
||||
}
|
||||
|
||||
/* int CloakedCastingDC(int spell_id, object oTarget, object oCaster)
|
||||
{
|
||||
int nDC;
|
||||
int iBeguiler = GetLevelByClass(CLASS_TYPE_BEGUILER, oCaster);
|
||||
@@ -461,7 +487,7 @@ int CloakedCastingDC(int spell_id, object oTarget, object oCaster)
|
||||
}
|
||||
|
||||
return nDC;
|
||||
}
|
||||
} */
|
||||
|
||||
// Wyrmbane Helm
|
||||
int WyrmbaneHelmDC(object oTarget, object oCaster)
|
||||
|
||||
@@ -203,6 +203,10 @@ const int FEAT_CHARMING_THE_ARROW = 25998;
|
||||
//:: Skill Based Feats
|
||||
const int FEAT_JUMP = 2884;
|
||||
|
||||
//:: Beguiler
|
||||
const int FEAT_CLOAKED_CASTING = 23592;
|
||||
const int FEAT_SURPRISE_CASTING = 23593;
|
||||
|
||||
//:: Lion of Talisid
|
||||
const int FEAT_LOT_LIONS_COURAGE = 25614;
|
||||
const int FEAT_LOT_LIONS_POUNCE = 25615;
|
||||
@@ -3241,9 +3245,10 @@ const int FEAT_CWSM_FRIGHTFUL_PRESENCE = 2359;
|
||||
const int FEAT_VIRTUOSO_REVEALING_MELODY = 4176;
|
||||
const int FEAT_VIRTUOSO_PERFORMANCE = 4177;
|
||||
|
||||
// hexblade feats
|
||||
const int FEAT_HEXCURSE = 3664;
|
||||
const int FEAT_SWIFT_CAST = 3827;
|
||||
//:: Hexblade feats
|
||||
const int FEAT_HEXCURSE = 3664;
|
||||
const int FEAT_METTLE = 3665;
|
||||
const int FEAT_SWIFT_CAST = 3827;
|
||||
|
||||
// Status markers
|
||||
const int FEAT_INCORPOREAL = 4166;
|
||||
|
||||
@@ -532,7 +532,8 @@ int GetIsBioSpellCastClass(int nClass)
|
||||
|| nClass == CLASS_TYPE_SHAMAN
|
||||
|| nClass == CLASS_TYPE_DRUID
|
||||
|| nClass == CLASS_TYPE_PALADIN
|
||||
|| nClass == CLASS_TYPE_RANGER;
|
||||
|| nClass == CLASS_TYPE_RANGER
|
||||
|| nClass == CLASS_TYPE_ASSASSIN;
|
||||
}
|
||||
|
||||
int GetIsNSBClass(int nClass)
|
||||
@@ -675,8 +676,19 @@ int PRCGetIsRealSpellKnownByClass(int nRealSpellID, int nClass, object oPC = OBJ
|
||||
string sSpellLevel = Get2DACache(sFile, "Level", nSpellbookSpell);
|
||||
if (sSpellLevel != "")
|
||||
nSpellLevel = StringToInt(sSpellLevel);
|
||||
if ((GetLevelByClass(nClass) < nSpellLevel) || nSpellLevel == -1)
|
||||
return FALSE; // not high enough level
|
||||
if (nClass == CLASS_TYPE_SUBLIME_CHORD)
|
||||
{
|
||||
// Sublime Chord gets access to 4th level spells at level 1
|
||||
// Skip level requirement check for this class
|
||||
}
|
||||
else
|
||||
{
|
||||
// Original level check for other classes
|
||||
if ((GetLevelByClass(nClass) < nSpellLevel) || nSpellLevel == -1)
|
||||
return FALSE; // not high enough level
|
||||
}
|
||||
/* if ((GetLevelByClass(nClass) < nSpellLevel) || nSpellLevel == -1)
|
||||
return FALSE; // not high enough level */
|
||||
// at this stage, prepared casters know the spell and only spontaneous classes need checking
|
||||
// there are exceptions and these need hardcoding:
|
||||
|
||||
|
||||
@@ -241,6 +241,170 @@ int GetIsAbilitySaved(object oPC, int nAbil)
|
||||
}
|
||||
|
||||
void FactotumTriggerAbil(object oPC, int nAbil)
|
||||
{
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
effect eEffect;
|
||||
|
||||
if (nAbil == FEAT_BARBARIAN_RAGE)
|
||||
ExecuteScript("NW_S1_BarbRage", oPC);
|
||||
else if (nAbil == FEAT_BARBARIAN_ENDURANCE)
|
||||
eEffect = EffectBonusFeat(IP_CONST_FEAT_BarbEndurance);
|
||||
else if (nAbil == FEAT_SNEAK_ATTACK)
|
||||
{
|
||||
SetLocalInt(oPC, "FactotumSneak", TRUE);
|
||||
DelayCommand(0.1, ExecuteScript("prc_sneak_att", oPC));
|
||||
DelayCommand(59.9, DeleteLocalInt(oPC, "FactotumSneak"));
|
||||
DelayCommand(60.0, ExecuteScript("prc_sneak_att", oPC));
|
||||
}
|
||||
else if (nAbil == FEAT_METTLE) // Mettle
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_METTLE);
|
||||
/* SetLocalInt(oPC, "FactotumMettle", TRUE);
|
||||
DelayCommand(60.0, DeleteLocalInt(oPC, "FactotumMettle")); */
|
||||
}
|
||||
else if (nAbil == FEAT_CRUSADER_SMITE)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_CRUSADER_SMITE);
|
||||
}
|
||||
else if (nAbil == FEAT_CLOAKED_CASTING)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_CLOAKED_CASTING);
|
||||
}
|
||||
else if (nAbil == FEAT_DRAGONSHAMAN_RESOLVE)
|
||||
{
|
||||
// Draconic Resolve - immunity to sleep, paralysis, fear
|
||||
eEffect = EffectImmunity(IMMUNITY_TYPE_PARALYSIS);
|
||||
eEffect = EffectLinkEffects(eEffect, EffectImmunity(IMMUNITY_TYPE_SLEEP));
|
||||
eEffect = EffectLinkEffects(eEffect, EffectImmunity(IMMUNITY_TYPE_FEAR));
|
||||
}
|
||||
// Favored Enemy feats
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_ABERRATION)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_ABERRATION);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_ANIMAL)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_ANIMAL);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_BEAST)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_BEAST);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_CONSTRUCT)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_CONSTRUCT);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_DRAGON)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_DRAGON);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_DWARF)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_DWARF);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_ELEMENTAL)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_ELEMENTAL);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_ELF)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_ELF);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_FEY)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_FEY);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_GIANT)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_GIANT);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_GNOME)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_GNOME);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_GOBLINOID)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_GOBLINOID);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_HALFELF)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_HALFELF);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_HALFLING)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_HALFLING);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_HALFORC)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_HALFORC);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_HUMAN)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_HUMAN);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_MAGICAL_BEAST)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_MAGICAL_BEAST);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_MONSTROUS)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_MONSTROUS);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_ORC)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_ORC);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_OOZE)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_OOZE);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_OUTSIDER)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_OUTSIDER);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_PLANT)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_PLANT);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_REPTILIAN)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_REPTILIAN);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_SHAPECHANGER)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_SHAPECHANGER);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_UNDEAD)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_UNDEAD);
|
||||
else if (nAbil == FEAT_FAVORED_ENEMY_VERMIN)
|
||||
eEffect = EffectBonusFeat(FEAT_FAVORED_ENEMY_VERMIN);
|
||||
// Other existing abilities
|
||||
else if (nAbil == FEAT_NATURE_SENSE)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_NATURE_SENSE);
|
||||
}
|
||||
else if (nAbil == FEAT_WOODLAND_STRIDE)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_WOODLAND_STRIDE);
|
||||
}
|
||||
else if (nAbil == FEAT_TRACKLESS_STEP)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_TRACKLESS_STEP);
|
||||
}
|
||||
else if (nAbil == FEAT_RESIST_NATURES_LURE)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_RESIST_NATURES_LURE);
|
||||
}
|
||||
else if (nAbil == FEAT_VENOM_IMMUNITY)
|
||||
{
|
||||
effect eImmunity = EffectImmunity(IMMUNITY_TYPE_POISON);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImmunity, oPC, 60.0);
|
||||
}
|
||||
else if (nAbil == FEAT_EVASION)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_EVASION);
|
||||
}
|
||||
else if (nAbil == FEAT_STILL_MIND)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_STILL_MIND);
|
||||
}
|
||||
else if (nAbil == FEAT_PURITY_OF_BODY)
|
||||
{
|
||||
// Purity of Body - disease immunity
|
||||
effect eImmunity = EffectImmunity(IMMUNITY_TYPE_DISEASE);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImmunity, oPC, 60.0);
|
||||
}
|
||||
else if (nAbil == FEAT_IMPROVED_EVASION)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_IMPROVED_EVASION);
|
||||
}
|
||||
else if (nAbil == FEAT_USE_POISON)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_USE_POISON);
|
||||
}
|
||||
else if (nAbil == FEAT_DIVINE_HEALTH)
|
||||
{
|
||||
// Divine Health - disease immunity
|
||||
effect eImmunity = EffectImmunity(IMMUNITY_TYPE_DISEASE);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImmunity, oPC, 60.0);
|
||||
}
|
||||
else if (nAbil == FEAT_CRIPPLING_STRIKE)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_CRIPPLING_STRIKE);
|
||||
}
|
||||
else if (nAbil == FEAT_DEFENSIVE_ROLL)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_DEFENSIVE_ROLL);
|
||||
}
|
||||
else if (nAbil == FEAT_OPPORTUNIST)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_OPPORTUNIST);
|
||||
}
|
||||
else if (nAbil == FEAT_SLIPPERY_MIND)
|
||||
{
|
||||
eEffect = EffectBonusFeat(FEAT_SLIPPERY_MIND);
|
||||
}
|
||||
|
||||
eEffect = TagEffect(eEffect, "FactotumCunningBrilliance");
|
||||
eEffect = ExtraordinaryEffect(eEffect);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, oPC, 60.0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* void FactotumTriggerAbil(object oPC, int nAbil)
|
||||
{
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
itemproperty ipIP;
|
||||
@@ -264,7 +428,7 @@ void FactotumTriggerAbil(object oPC, int nAbil)
|
||||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_CRUSADER_SMITE);
|
||||
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 60.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
}
|
||||
} */
|
||||
|
||||
void TriggerInspiration(object oPC, int nCombat)
|
||||
{
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
/* This variable MUST be updated with every new version of the PRC!!! */
|
||||
|
||||
const string PRC_VERSION = "PRC8 4.87";
|
||||
const string PRC_VERSION = "PRC8 4.88";
|
||||
|
||||
/* This variable MUST be updated every time 'assemble_spellbooks.bat' is run!!! */
|
||||
|
||||
|
||||
@@ -971,6 +971,15 @@ const int IP_CONST_DAMAGERESIST_7 = 26;
|
||||
const int IP_CONST_DAMAGERESIST_8 = 27;
|
||||
const int IP_CONST_DAMAGERESIST_9 = 28;
|
||||
|
||||
const int IP_CONST_DAMAGERESIST_11 = 30;
|
||||
const int IP_CONST_DAMAGERESIST_12 = 31;
|
||||
const int IP_CONST_DAMAGERESIST_13 = 32;
|
||||
const int IP_CONST_DAMAGERESIST_14 = 33;
|
||||
const int IP_CONST_DAMAGERESIST_16 = 34;
|
||||
const int IP_CONST_DAMAGERESIST_17 = 35;
|
||||
const int IP_CONST_DAMAGERESIST_18 = 36;
|
||||
const int IP_CONST_DAMAGERESIST_19 = 37;
|
||||
|
||||
const int IP_CONST_FEAT_SHADOWMASTER_SHADES = 141;
|
||||
|
||||
//IP_CONST_REDUCEDWEIGHT
|
||||
|
||||
@@ -781,6 +781,8 @@ int CheckTrueSpeechSkill(object oTrueSpeaker)
|
||||
else if (GetLevelByClass(CLASS_TYPE_BEREFT, oTrueSpeaker) > 0) return FALSE;
|
||||
// And this one
|
||||
else if (GetLevelByClass(CLASS_TYPE_BRIMSTONE_SPEAKER, oTrueSpeaker) > 0) return FALSE;
|
||||
// Factotums have every skill as a class skill.
|
||||
else if (GetLevelByClass(CLASS_TYPE_FACTOTUM, oTrueSpeaker) > 0) return FALSE;
|
||||
// If they have the feat, no relevel
|
||||
else if(GetHasFeat(FEAT_TRUENAME_TRAINING, oTrueSpeaker)) return FALSE;
|
||||
// Now we check the values. If they have too many ranks, relevel.
|
||||
|
||||
849
nwn/nwnprc/trunk/newspellbook/inf_armor_enh.nss
Normal file
849
nwn/nwnprc/trunk/newspellbook/inf_armor_enh.nss
Normal file
@@ -0,0 +1,849 @@
|
||||
// inf_armor_enh.nss
|
||||
/*
|
||||
Armor Enhancement, Lesser
|
||||
Transmutation
|
||||
Level: Artificer 1
|
||||
Components: S, M
|
||||
Casting Time: 1 minute
|
||||
Range: Touch
|
||||
Target: Armor or shield touched
|
||||
Duration: 10 min./level
|
||||
Saving Throw: None (object)
|
||||
Spell Resistance: No (object)
|
||||
|
||||
The armor or shield you touch temporarily gains a special ability
|
||||
commonly found on magic armor or shields.
|
||||
You can choose any special ability whose market price is equivalent to
|
||||
a +1 bonus or up to 5,000 gp, such as light fortification or shadow.
|
||||
The armor or shield does not need to have an existing enhancement
|
||||
bonus, nor does it gain one when you imbue it with this infusion.
|
||||
Material Component: An ointment made from rare spices and minerals,
|
||||
costing 10 gp.
|
||||
|
||||
Armor Enhancement
|
||||
Transmutation
|
||||
Level: Artificer 2
|
||||
|
||||
As lesser armor enhancement, but you can choose any special ability
|
||||
whose market price is equivalent to a bonus of up to +3 or up to
|
||||
35,000 gp, such as ghost touch or acid resistance.
|
||||
Material Component: An ointment costing 50 gp.
|
||||
|
||||
Armor Enhancement, Greater
|
||||
Transmutation
|
||||
Level: Artificer 3
|
||||
|
||||
As lesser armor enhancement, but you can choose any special ability
|
||||
whose market price is equivalent to a bonus of up to +5 or up to
|
||||
100,000 gp, such as etherealness or greater fire resistance.
|
||||
Material Component: An ointment costing 100 gp.
|
||||
*/
|
||||
|
||||
#include "inc_debug"
|
||||
#include "prc_craft_inc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Placeholder magic numbers for spell IDs
|
||||
const int ARMOR_ENH_LESS = 5001;
|
||||
const int ARMOR_ENH = 5002;
|
||||
const int ARMOR_ENH_GREATER = 5003;
|
||||
|
||||
// Dynamic conversation stages
|
||||
const int STAGE_PROPERTY_SELECTION = 0;
|
||||
const int STAGE_CONFIRMATION = 1;
|
||||
|
||||
|
||||
void HandleConversation(object oPC, object oArmor, int nMaxEnhancement, int nMaxCost, string sLocalVar, int nSpellID, int nCasterLevel)
|
||||
{
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
if(nValue == 0) return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Set header first
|
||||
SetHeader("Select an armor enhancement:");
|
||||
|
||||
// Initialize default tokens BEFORE adding choices
|
||||
SetDefaultTokens();
|
||||
|
||||
// Read directly from craft_armour.2da
|
||||
int nFileEnd = PRCGetFileEnd("craft_armour");
|
||||
int nChoice = 1;
|
||||
int i;
|
||||
|
||||
for(i = 0; i <= nFileEnd; i++)
|
||||
{
|
||||
// Get enhancement and cost for this specific line
|
||||
int nEnhancement = StringToInt(Get2DACache("craft_armour", "Enhancement", i));
|
||||
int nAdditionalCost = StringToInt(Get2DACache("craft_armour", "AdditionalCost", i));
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", i)));
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Line " + IntToString(i) + ": " + sName + " (Enh:" + IntToString(nEnhancement) + ", Cost:" + IntToString(nAdditionalCost) + ")");
|
||||
|
||||
// Check if this property is within limits
|
||||
if(nEnhancement <= nMaxEnhancement && nAdditionalCost <= nMaxCost)
|
||||
{
|
||||
AddChoice(sName, i, oPC);
|
||||
nChoice++;
|
||||
}
|
||||
}
|
||||
|
||||
MarkStageSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", nPropertyLine)));
|
||||
|
||||
SetHeader("Apply " + sName + " to the armor?");
|
||||
|
||||
AddChoice("Yes", TRUE, oPC);
|
||||
AddChoice("No", FALSE, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetupTokens();
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Store selection and go to confirmation
|
||||
SetLocalInt(oPC, "ArmorEnh_SelectedProperty", nChoice);
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
MarkStageNotSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
if(nChoice == TRUE) // User confirmed
|
||||
{
|
||||
// Apply the property
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
SendMessageToPC(oPC, "Fallback Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
/* if(nPropertyLine == 0)
|
||||
{
|
||||
// +1 Enhancement
|
||||
ip = ConstructIP(ITEM_PROPERTY_AC_BONUS, 0, 1, 0);
|
||||
}
|
||||
else
|
||||
{ */
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_armour", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
//}
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "ArmorEnhInfusion");
|
||||
IPSafeAddItemProperty(oArmor, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
// Clean up and exit
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
else // User cancelled
|
||||
{
|
||||
// Go back to property selection
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
if(!GetIsObjectValid(oPC)) oPC = OBJECT_SELF;
|
||||
|
||||
// Check if we're in conversation mode
|
||||
if(GetLocalInt(oPC, "ArmorEnh_ConvMode"))
|
||||
{
|
||||
// Retrieve parameters for conversation
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nMaxEnhancement = GetLocalInt(oPC, "ArmorEnh_MaxEnh");
|
||||
int nMaxCost = GetLocalInt(oPC, "ArmorEnh_MaxCost");
|
||||
string sLocalVar = GetLocalString(oPC, "ArmorEnh_LocalVar");
|
||||
int nSpellID = GetLocalInt(oPC, "ArmorEnh_SpellID");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
HandleConversation(oPC, oArmor, nMaxEnhancement, nMaxCost, sLocalVar, nSpellID, nCasterLevel);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal spell execution
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
// Declare variables
|
||||
int nGoldCost, nMaxEnhancement, nMaxCost;
|
||||
string sLocalVar;
|
||||
|
||||
// Set parameters based on spell level
|
||||
switch(nSpellID)
|
||||
{
|
||||
case ARMOR_ENH_LESS:
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH:
|
||||
nGoldCost = 50;
|
||||
nMaxEnhancement = 3;
|
||||
nMaxCost = 35000;
|
||||
sLocalVar = "ARMOR_ENH_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH_GREATER:
|
||||
nGoldCost = 100;
|
||||
nMaxEnhancement = 5;
|
||||
nMaxCost = 100000;
|
||||
sLocalVar = "ARMOR_ENH_GREATER_PROPERTY";
|
||||
break;
|
||||
default:
|
||||
// Default to lesser version for testing
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
}
|
||||
|
||||
// Check material component
|
||||
if(GetGold(oCaster) < nGoldCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You need " + IntToString(nGoldCost) + "gp worth of rare spices and minerals.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get targeted armor or shield
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oCaster);
|
||||
//object oArmor = IPGetTargetedOrEquippedArmor(TRUE); <- don't delete
|
||||
if(!GetIsObjectValid(oArmor))
|
||||
{
|
||||
FloatingTextStrRefOnCreature(83826, oCaster, FALSE); // "Invalid target"
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if returning from conversation with a selection
|
||||
int nPropertyLine = GetLocalInt(oCaster, sLocalVar);
|
||||
if(nPropertyLine > 0)
|
||||
{
|
||||
// Apply the property
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_armour", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "ArmorEnhInfusion");
|
||||
IPSafeAddItemProperty(oArmor, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
DeleteLocalInt(oCaster, sLocalVar);
|
||||
return;
|
||||
}
|
||||
|
||||
// Store parameters for conversation and start it
|
||||
SetLocalInt(oPC, "ArmorEnh_ConvMode", 1);
|
||||
SetLocalObject(oPC, "ARMOR_ENH_TARGET", oArmor);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxEnh", nMaxEnhancement);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxCost", nMaxCost);
|
||||
SetLocalString(oPC, "ArmorEnh_LocalVar", sLocalVar);
|
||||
SetLocalInt(oPC, "ArmorEnh_SpellID", nSpellID);
|
||||
SetLocalInt(oPC, "ArmorEnh_CasterLevel", nCasterLevel);
|
||||
|
||||
// Start the dynamic conversation using this same script
|
||||
StartDynamicConversation("inf_armor_enh", oPC, 0, FALSE, TRUE);
|
||||
}
|
||||
|
||||
|
||||
/* void HandleConversation(object oPC, object oArmor, int nMaxEnhancement, int nMaxCost, string sLocalVar, int nSpellID, int nCasterLevel)
|
||||
{
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
if(nValue == 0) return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Set header first
|
||||
SetHeader("Select an armor enhancement:");
|
||||
|
||||
// Initialize default tokens BEFORE adding choices
|
||||
SetDefaultTokens();
|
||||
|
||||
// Read directly from craft_armour.2da
|
||||
int nFileEnd = PRCGetFileEnd("craft_armour");
|
||||
int nChoice = 1;
|
||||
int i;
|
||||
|
||||
for(i = 0; i <= nFileEnd; i++)
|
||||
{
|
||||
// Get enhancement and cost for this specific line
|
||||
int nEnhancement = StringToInt(Get2DACache("craft_armour", "Enhancement", i));
|
||||
int nAdditionalCost = StringToInt(Get2DACache("craft_armour", "AdditionalCost", i));
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", i)));
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Line " + IntToString(i) + ": " + sName + " (Enh:" + IntToString(nEnhancement) + ", Cost:" + IntToString(nAdditionalCost) + ")");
|
||||
|
||||
// Check if this property is within limits
|
||||
if(nEnhancement <= nMaxEnhancement && nAdditionalCost <= nMaxCost)
|
||||
{
|
||||
AddChoice(sName, i, oPC);
|
||||
nChoice++;
|
||||
}
|
||||
}
|
||||
|
||||
MarkStageSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", nPropertyLine)));
|
||||
|
||||
SetHeader("Apply " + sName + " to the armor?");
|
||||
|
||||
AddChoice("Yes", TRUE, oPC);
|
||||
AddChoice("No", FALSE, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetupTokens();
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Store selection and go to confirmation
|
||||
SetLocalInt(oPC, "ArmorEnh_SelectedProperty", nChoice);
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
MarkStageNotSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
if(nChoice == TRUE) // User confirmed
|
||||
{
|
||||
// Apply the property
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
if(nPropertyLine == 0)
|
||||
{
|
||||
// +1 Enhancement
|
||||
ip = ConstructIP(ITEM_PROPERTY_AC_BONUS, 0, 1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_armour", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
}
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "ArmorEnhInfusion");
|
||||
IPSafeAddItemProperty(oArmor, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
// Clean up and exit
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
return;
|
||||
}
|
||||
else // User cancelled
|
||||
{
|
||||
// Go back to property selection
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
if(!GetIsObjectValid(oPC)) oPC = OBJECT_SELF;
|
||||
|
||||
// Check if we're in conversation mode
|
||||
if(GetLocalInt(oPC, "ArmorEnh_ConvMode"))
|
||||
{
|
||||
// Retrieve parameters for conversation
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nMaxEnhancement = GetLocalInt(oPC, "ArmorEnh_MaxEnh");
|
||||
int nMaxCost = GetLocalInt(oPC, "ArmorEnh_MaxCost");
|
||||
string sLocalVar = GetLocalString(oPC, "ArmorEnh_LocalVar");
|
||||
int nSpellID = GetLocalInt(oPC, "ArmorEnh_SpellID");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
HandleConversation(oPC, oArmor, nMaxEnhancement, nMaxCost, sLocalVar, nSpellID, nCasterLevel);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal spell execution
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
//int nSpellID = PRCGetSpellId();
|
||||
int nSpellID = ARMOR_ENH_GREATER;
|
||||
|
||||
// Declare variables
|
||||
int nGoldCost, nMaxEnhancement, nMaxCost;
|
||||
string sLocalVar;
|
||||
|
||||
// Set parameters based on spell level
|
||||
switch(nSpellID)
|
||||
{
|
||||
case ARMOR_ENH_LESS:
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH:
|
||||
nGoldCost = 50;
|
||||
nMaxEnhancement = 3;
|
||||
nMaxCost = 35000;
|
||||
sLocalVar = "ARMOR_ENH_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH_GREATER:
|
||||
nGoldCost = 100;
|
||||
nMaxEnhancement = 5;
|
||||
nMaxCost = 100000;
|
||||
sLocalVar = "ARMOR_ENH_GREATER_PROPERTY";
|
||||
break;
|
||||
default:
|
||||
// Default to lesser version for testing
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
}
|
||||
|
||||
// Check material component
|
||||
if(GetGold(oCaster) < nGoldCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You need " + IntToString(nGoldCost) + "gp worth of rare spices and minerals.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get targeted armor or shield
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oCaster);
|
||||
if(!GetIsObjectValid(oArmor))
|
||||
{
|
||||
FloatingTextStrRefOnCreature(83826, oCaster, FALSE); // "Invalid target"
|
||||
return;
|
||||
}
|
||||
|
||||
// Store parameters for conversation and start it
|
||||
SetLocalInt(oPC, "ArmorEnh_ConvMode", 1);
|
||||
SetLocalObject(oPC, "ARMOR_ENH_TARGET", oArmor);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxEnh", nMaxEnhancement);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxCost", nMaxCost);
|
||||
SetLocalString(oPC, "ArmorEnh_LocalVar", sLocalVar);
|
||||
SetLocalInt(oPC, "ArmorEnh_SpellID", nSpellID);
|
||||
SetLocalInt(oPC, "ArmorEnh_CasterLevel", nCasterLevel);
|
||||
|
||||
// Start the dynamic conversation using this same script
|
||||
DelayCommand(0.1f, StartDynamicConversation("inf_armor_enh", oPC, 0, FALSE, TRUE));
|
||||
} */
|
||||
|
||||
|
||||
|
||||
/* void HandleConversation(object oPC, object oArmor, int nMaxEnhancement, int nMaxCost, string sLocalVar, int nSpellID, int nCasterLevel)
|
||||
{
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
if(nValue == 0) return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Set header first
|
||||
SetHeader("Select an armor enhancement:");
|
||||
|
||||
// Initialize default tokens BEFORE adding choices
|
||||
SetDefaultTokens();
|
||||
|
||||
// Read directly from craft_armour.2da
|
||||
int nFileEnd = PRCGetFileEnd("craft_armour");
|
||||
int nChoice = 1;
|
||||
int i;
|
||||
|
||||
AddChoice("Enhancement +1", 0, oPC);
|
||||
|
||||
for(i = 1; i <= nFileEnd; i++)
|
||||
{
|
||||
// Get enhancement and cost for this specific line
|
||||
int nEnhancement = StringToInt(Get2DACache("craft_armour", "Enhancement", i));
|
||||
int nAdditionalCost = StringToInt(Get2DACache("craft_armour", "AdditionalCost", i));
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", i)));
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Line " + IntToString(i) + ": " + sName + " (Enh:" + IntToString(nEnhancement) + ", Cost:" + IntToString(nAdditionalCost) + ")");
|
||||
|
||||
// Check if this property is within limits
|
||||
if(nEnhancement <= nMaxEnhancement && nAdditionalCost <= nMaxCost)
|
||||
{
|
||||
AddChoice(sName, i, oPC);
|
||||
nChoice++;
|
||||
}
|
||||
}
|
||||
|
||||
MarkStageSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
string sName;
|
||||
|
||||
if(nPropertyLine == 0)
|
||||
sName = "Enhancement +1";
|
||||
else
|
||||
sName = GetStringByStrRef(StringToInt(Get2DACache("craft_armour", "Name", nPropertyLine)));
|
||||
|
||||
SetHeader("Apply " + sName + " to the armor?");
|
||||
|
||||
AddChoice("Yes", TRUE, oPC);
|
||||
AddChoice("No", FALSE, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetupTokens();
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
}
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Store selection and go to confirmation
|
||||
SetLocalInt(oPC, "ArmorEnh_SelectedProperty", nChoice);
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
MarkStageNotSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
if(nChoice == TRUE) // User confirmed
|
||||
{
|
||||
// Apply the property
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nPropertyLine = GetLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
if(nPropertyLine == 0)
|
||||
{
|
||||
// +1 Enhancement
|
||||
ip = ConstructIP(ITEM_PROPERTY_AC_BONUS, 0, 1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_armour", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
}
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "ArmorEnhInfusion");
|
||||
IPSafeAddItemProperty(oArmor, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
// Clean up and exit
|
||||
DeleteLocalInt(oPC, "ArmorEnh_ConvMode");
|
||||
DeleteLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
DeleteLocalInt(oPC, "ArmorEnh_SelectedProperty");
|
||||
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
else // User cancelled
|
||||
{
|
||||
// Go back to property selection
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
if(!GetIsObjectValid(oPC)) oPC = OBJECT_SELF;
|
||||
|
||||
// Check if we're in conversation mode
|
||||
if(GetLocalInt(oPC, "ArmorEnh_ConvMode"))
|
||||
{
|
||||
// Retrieve parameters for conversation
|
||||
object oArmor = GetLocalObject(oPC, "ARMOR_ENH_TARGET");
|
||||
int nMaxEnhancement = GetLocalInt(oPC, "ArmorEnh_MaxEnh");
|
||||
int nMaxCost = GetLocalInt(oPC, "ArmorEnh_MaxCost");
|
||||
string sLocalVar = GetLocalString(oPC, "ArmorEnh_LocalVar");
|
||||
int nSpellID = GetLocalInt(oPC, "ArmorEnh_SpellID");
|
||||
int nCasterLevel = GetLocalInt(oPC, "ArmorEnh_CasterLevel");
|
||||
|
||||
HandleConversation(oPC, oArmor, nMaxEnhancement, nMaxCost, sLocalVar, nSpellID, nCasterLevel);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal spell execution
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
// Declare variables
|
||||
int nGoldCost, nMaxEnhancement, nMaxCost;
|
||||
string sLocalVar;
|
||||
|
||||
// Set parameters based on spell level
|
||||
switch(nSpellID)
|
||||
{
|
||||
case ARMOR_ENH_LESS:
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH:
|
||||
nGoldCost = 50;
|
||||
nMaxEnhancement = 3;
|
||||
nMaxCost = 35000;
|
||||
sLocalVar = "ARMOR_ENH_PROPERTY";
|
||||
break;
|
||||
case ARMOR_ENH_GREATER:
|
||||
nGoldCost = 100;
|
||||
nMaxEnhancement = 5;
|
||||
nMaxCost = 100000;
|
||||
sLocalVar = "ARMOR_ENH_GREATER_PROPERTY";
|
||||
break;
|
||||
default:
|
||||
// Default to lesser version for testing
|
||||
nGoldCost = 10;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 5000;
|
||||
sLocalVar = "ARMOR_ENH_LESS_PROPERTY";
|
||||
break;
|
||||
}
|
||||
|
||||
// Check material component
|
||||
if(GetGold(oCaster) < nGoldCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You need " + IntToString(nGoldCost) + "gp worth of rare spices and minerals.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get targeted armor or shield
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oCaster);
|
||||
if(!GetIsObjectValid(oArmor))
|
||||
{
|
||||
FloatingTextStrRefOnCreature(83826, oCaster, FALSE); // "Invalid target"
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if item already has an infusion
|
||||
itemproperty ipExisting = GetFirstItemProperty(oArmor);
|
||||
while(GetIsItemPropertyValid(ipExisting))
|
||||
{
|
||||
if(GetItemPropertyTag(ipExisting) == "ArmorEnhInfusion")
|
||||
{
|
||||
FloatingTextStringOnCreature("This armor already has an armor enhancement infusion.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
ipExisting = GetNextItemProperty(oArmor);
|
||||
}
|
||||
|
||||
// Check if returning from conversation with a selection
|
||||
int nPropertyLine = GetLocalInt(oCaster, sLocalVar);
|
||||
if(nPropertyLine > 0)
|
||||
{
|
||||
// Apply the property
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
if(nPropertyLine == 0)
|
||||
{
|
||||
// +1 Enhancement
|
||||
ip = ConstructIP(ITEM_PROPERTY_AC_BONUS, 0, 1, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_armour", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
}
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "ArmorEnhInfusion");
|
||||
IPSafeAddItemProperty(oArmor, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
DeleteLocalInt(oCaster, sLocalVar);
|
||||
return;
|
||||
}
|
||||
|
||||
// Store parameters for conversation and start it
|
||||
SetLocalInt(oPC, "ArmorEnh_ConvMode", 1);
|
||||
SetLocalObject(oPC, "ARMOR_ENH_TARGET", oArmor);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxEnh", nMaxEnhancement);
|
||||
SetLocalInt(oPC, "ArmorEnh_MaxCost", nMaxCost);
|
||||
SetLocalString(oPC, "ArmorEnh_LocalVar", sLocalVar);
|
||||
SetLocalInt(oPC, "ArmorEnh_SpellID", nSpellID);
|
||||
SetLocalInt(oPC, "ArmorEnh_CasterLevel", nCasterLevel);
|
||||
|
||||
// Start the dynamic conversation using this same script
|
||||
StartDynamicConversation("inf_armor_enh", oPC, 0, FALSE, TRUE);
|
||||
}
|
||||
|
||||
*/
|
||||
158
nwn/nwnprc/trunk/newspellbook/inf_energy_alt.nss
Normal file
158
nwn/nwnprc/trunk/newspellbook/inf_energy_alt.nss
Normal file
@@ -0,0 +1,158 @@
|
||||
// inf_energy_alt.nss
|
||||
#include "prc_sp_func"
|
||||
#include "prc_inc_spells"
|
||||
#include "psi_inc_enrgypow"
|
||||
#include "prc_craft_inc" // Add this for item property serialization
|
||||
|
||||
const int SPELL_ENERGY_ALTERATION_COLD = 9000;
|
||||
const int SPELL_ENERGY_ALTERATION_ELEC = 9001;
|
||||
const int SPELL_ENERGY_ALTERATION_FIRE = 9002;
|
||||
const int SPELL_ENERGY_ALTERATION_SONIC = 9003;
|
||||
|
||||
// Forward declarations
|
||||
void StoreOriginalProperties(object oItem);
|
||||
void RestoreOriginalProperties(object oItem);
|
||||
int ConvertDamageTypeToIPConst(int nDamageType);
|
||||
|
||||
// Convert DAMAGE_TYPE_* to IP_CONST_DAMAGETYPE_*
|
||||
int ConvertDamageTypeToIPConst(int nDamageType)
|
||||
{
|
||||
switch(nDamageType)
|
||||
{
|
||||
case DAMAGE_TYPE_ACID: return IP_CONST_DAMAGETYPE_ACID;
|
||||
case DAMAGE_TYPE_COLD: return IP_CONST_DAMAGETYPE_COLD;
|
||||
case DAMAGE_TYPE_ELECTRICAL: return IP_CONST_DAMAGETYPE_ELECTRICAL;
|
||||
case DAMAGE_TYPE_FIRE: return IP_CONST_DAMAGETYPE_FIRE;
|
||||
case DAMAGE_TYPE_SONIC: return IP_CONST_DAMAGETYPE_SONIC;
|
||||
default: return IP_CONST_DAMAGETYPE_ACID;
|
||||
}
|
||||
return IP_CONST_DAMAGETYPE_ACID; // Add explicit return for compiler
|
||||
}
|
||||
|
||||
void ApplyEnergyAlteration(object oItem, int nSpellID, int nCasterLvl)
|
||||
{
|
||||
struct energy_adjustments enAdj = EvaluateEnergy(
|
||||
nSpellID,
|
||||
SPELL_ENERGY_ALTERATION_COLD,
|
||||
SPELL_ENERGY_ALTERATION_ELEC,
|
||||
SPELL_ENERGY_ALTERATION_FIRE,
|
||||
SPELL_ENERGY_ALTERATION_SONIC
|
||||
);
|
||||
|
||||
// Modify existing energy properties
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
while(GetIsItemPropertyValid(ip))
|
||||
{
|
||||
int nType = GetItemPropertyType(ip);
|
||||
|
||||
// Replace damage bonus properties
|
||||
if(nType == ITEM_PROPERTY_DAMAGE_BONUS)
|
||||
{
|
||||
int nDamageType = GetItemPropertySubType(ip);
|
||||
if(nDamageType == DAMAGE_TYPE_ACID || nDamageType == DAMAGE_TYPE_COLD ||
|
||||
nDamageType == DAMAGE_TYPE_ELECTRICAL || nDamageType == DAMAGE_TYPE_FIRE ||
|
||||
nDamageType == DAMAGE_TYPE_SONIC)
|
||||
{
|
||||
RemoveItemProperty(oItem, ip);
|
||||
itemproperty ipNew = ItemPropertyDamageBonus(enAdj.nDamageType, GetItemPropertyCostTableValue(ip));
|
||||
AddItemProperty(DURATION_TYPE_TEMPORARY, ipNew, oItem, RoundsToSeconds(nCasterLvl * 10));
|
||||
SetLocalInt(oItem, "EnergyAlter_Temp_" + IntToString(ITEM_PROPERTY_DAMAGE_BONUS), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
// Replace resistance properties
|
||||
if(nType == ITEM_PROPERTY_DAMAGE_RESISTANCE)
|
||||
{
|
||||
int nResistType = GetItemPropertySubType(ip);
|
||||
if(nResistType == IP_CONST_DAMAGETYPE_ACID || nResistType == IP_CONST_DAMAGETYPE_COLD ||
|
||||
nResistType == IP_CONST_DAMAGETYPE_ELECTRICAL || nResistType == IP_CONST_DAMAGETYPE_FIRE ||
|
||||
nResistType == IP_CONST_DAMAGETYPE_SONIC)
|
||||
{
|
||||
RemoveItemProperty(oItem, ip);
|
||||
int nNewType = ConvertDamageTypeToIPConst(enAdj.nDamageType);
|
||||
itemproperty ipNew = ItemPropertyDamageResistance(nNewType, GetItemPropertyCostTableValue(ip));
|
||||
AddItemProperty(DURATION_TYPE_TEMPORARY, ipNew, oItem, RoundsToSeconds(nCasterLvl * 10));
|
||||
SetLocalInt(oItem, "EnergyAlter_Temp_" + IntToString(ITEM_PROPERTY_DAMAGE_RESISTANCE), TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
// Schedule restoration
|
||||
DelayCommand(RoundsToSeconds(nCasterLvl * 10), RestoreOriginalProperties(oItem));
|
||||
}
|
||||
|
||||
// Store original properties with PRC persistent backup
|
||||
void StoreOriginalProperties(object oItem)
|
||||
{
|
||||
string sItemID = GetObjectUUID(oItem);
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
|
||||
while(GetIsItemPropertyValid(ip))
|
||||
{
|
||||
string sPropData = GetItemPropertyString(ip); // Use PRC's function
|
||||
SetLocalString(oItem, "EnergyAlter_Original_" + IntToString(GetItemPropertyType(ip)), sPropData);
|
||||
|
||||
// PRC persistence for crash recovery
|
||||
SetPersistantLocalString(oItem, "EnergyAlter_" + sItemID + "_" + IntToString(GetItemPropertyType(ip)), sPropData);
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
SetLocalInt(oItem, "EnergyAlter_Active", TRUE);
|
||||
SetLocalString(oItem, "EnergyAlter_ItemID", sItemID);
|
||||
}
|
||||
|
||||
// Restore properties with cleanup
|
||||
void RestoreOriginalProperties(object oItem)
|
||||
{
|
||||
string sItemID = GetLocalString(oItem, "EnergyAlter_ItemID");
|
||||
|
||||
// Remove temporary properties
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
while(GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if(GetLocalInt(oItem, "EnergyAlter_Temp_" + IntToString(GetItemPropertyType(ip))))
|
||||
RemoveItemProperty(oItem, ip);
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
// Restore original properties
|
||||
int nType;
|
||||
for(nType = 0; nType < 100; nType++)
|
||||
{
|
||||
string sPropData = GetPersistantLocalString(oItem, "EnergyAlter_" + sItemID + "_" + IntToString(nType));
|
||||
if(sPropData != "")
|
||||
{
|
||||
struct ipstruct ipData = GetIpStructFromString(sPropData);
|
||||
itemproperty ipOriginal = ConstructIP(ipData.type, ipData.subtype, ipData.costtablevalue, ipData.param1value);
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ipOriginal, oItem);
|
||||
}
|
||||
}
|
||||
|
||||
// Cleanup - clear PRC persistent variables
|
||||
DeletePersistantLocalString(oItem, "EnergyAlter_" + sItemID);
|
||||
DeleteLocalInt(oItem, "EnergyAlter_Active");
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
if(!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nSpellID = PRCGetSpellId();
|
||||
int nCasterLvl = PRCGetCasterLevel(oCaster);
|
||||
|
||||
// Material component validation (remove for testing)
|
||||
// if(!GetIsObjectValid(GetItemPossessedBy(oCaster, "energy_alter_ointment")))
|
||||
// {
|
||||
// FloatingTextStringOnCreature("You need an alchemical ointment (50 gp) to cast this spell.", oCaster, FALSE);
|
||||
// return;
|
||||
// }
|
||||
// DestroyObject(GetItemPossessedBy(oCaster, "energy_alter_ointment"));
|
||||
|
||||
// Store original properties and apply alteration
|
||||
StoreOriginalProperties(oTarget);
|
||||
ApplyEnergyAlteration(oTarget, nSpellID, nCasterLvl);
|
||||
}
|
||||
213
nwn/nwnprc/trunk/newspellbook/inf_resist_item.nss
Normal file
213
nwn/nwnprc/trunk/newspellbook/inf_resist_item.nss
Normal file
@@ -0,0 +1,213 @@
|
||||
// inf_resist_item.nss
|
||||
|
||||
/*
|
||||
Resistance Item
|
||||
Abjuration
|
||||
Level: Artificer 1
|
||||
Components: S, M
|
||||
Casting Time: 1 round
|
||||
Range: Touch
|
||||
Target: Item touched
|
||||
Duration: 10 min./level
|
||||
Saving Throw: None
|
||||
Spell Resistance: No
|
||||
|
||||
A nonmagical item imbued with this infusion grants a + 1 resistance
|
||||
bonus on saving throws to a character who wears or wields it. This
|
||||
bonus increases by 1 for every four caster levels (to +2 at 4th level,
|
||||
+3 at 8th level, +4 at 12th level, and so forth).
|
||||
Material Component: Oil mixed with various spices and minerals.
|
||||
*/
|
||||
|
||||
#include "prc_craft_inc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Spell constants for subradials
|
||||
const int RESISTANCE_ITEM_FORTITUDE = 6001;
|
||||
const int RESISTANCE_ITEM_REFLEX = 6002;
|
||||
const int RESISTANCE_ITEM_WILL = 6003;
|
||||
|
||||
// Check if item is magical
|
||||
int GetIsItemMagical(object oItem)
|
||||
{
|
||||
if(!GetIsObjectValid(oItem)) return FALSE;
|
||||
|
||||
// Skip plot items
|
||||
if(GetPlotFlag(oItem)) return TRUE;
|
||||
|
||||
int bIsMagical = FALSE;
|
||||
itemproperty ipCheck = GetFirstItemProperty(oItem);
|
||||
while (GetIsItemPropertyValid(ipCheck))
|
||||
{
|
||||
string sTag = GetItemPropertyTag(ipCheck);
|
||||
int nType = GetItemPropertyType(ipCheck);
|
||||
|
||||
// Check for protected properties
|
||||
if(sTag == "Tag_PRC_OnHitKeeper" ||
|
||||
sTag == "Quality_Masterwork" ||
|
||||
sTag == "Material_Mithral" ||
|
||||
sTag == "Material_Adamantine" ||
|
||||
sTag == "Material_Darkwood" ||
|
||||
sTag == "Material_ColdIron" ||
|
||||
sTag == "Material_MundaneCrystal" ||
|
||||
sTag == "Material_DeepCrystal" ||
|
||||
nType == ITEM_PROPERTY_MATERIAL) // All material properties
|
||||
{
|
||||
// Protected property - skip, don't set bIsMagical
|
||||
}
|
||||
else
|
||||
{
|
||||
// Check for helmet carveout: +1 Concentration only
|
||||
if(GetBaseItemType(oItem) == BASE_ITEM_HELMET &&
|
||||
GetItemPropertyType(ipCheck) == ITEM_PROPERTY_SKILL_BONUS &&
|
||||
GetItemPropertySubType(ipCheck) == SKILL_CONCENTRATION &&
|
||||
GetItemPropertyCostTableValue(ipCheck) == 1)
|
||||
{
|
||||
// This is a +1 Concentration helmet with no other properties, allow it
|
||||
bIsMagical = FALSE;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsMagical = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ipCheck = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
return bIsMagical;
|
||||
}
|
||||
|
||||
// Find first non-magical item on creature
|
||||
object GetFirstNonMagicalItem(object oCreature)
|
||||
{
|
||||
// Check equipped items first
|
||||
int nSlot;
|
||||
for(nSlot = 0; nSlot < NUM_INVENTORY_SLOTS; nSlot++)
|
||||
{
|
||||
object oItem = GetItemInSlot(nSlot, oCreature);
|
||||
if(GetIsObjectValid(oItem) && !GetIsItemMagical(oItem))
|
||||
return oItem;
|
||||
}
|
||||
|
||||
// Check inventory
|
||||
object oItem = GetFirstItemInInventory(oCreature);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
if(!GetIsItemMagical(oItem))
|
||||
return oItem;
|
||||
oItem = GetNextItemInInventory(oCreature);
|
||||
}
|
||||
|
||||
return OBJECT_INVALID;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
PRCSetSchool(SPELL_SCHOOL_ABJURATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
//object oTarget = PRCGetSpellTargetObject();
|
||||
object oTarget = OBJECT_SELF; //:: for testing
|
||||
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
//int nSpellID = PRCGetSpellId();
|
||||
int nSpellID = RESISTANCE_ITEM_FORTITUDE;
|
||||
|
||||
// Calculate resistance bonus: +1 +1 per 4 caster levels
|
||||
int nBonus = 1 + (nCasterLevel / 4);
|
||||
|
||||
// Calculate duration: 10 minutes per level
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f; // 30 seconds is fine for testing
|
||||
|
||||
// Determine save type based on infusion spellID
|
||||
int nSaveType;
|
||||
string sSaveName;
|
||||
|
||||
switch(nSpellID)
|
||||
{
|
||||
case RESISTANCE_ITEM_FORTITUDE:
|
||||
nSaveType = SAVING_THROW_FORT;
|
||||
sSaveName = "Fortitude";
|
||||
break;
|
||||
case RESISTANCE_ITEM_REFLEX:
|
||||
nSaveType = SAVING_THROW_REFLEX;
|
||||
sSaveName = "Reflex";
|
||||
break;
|
||||
case RESISTANCE_ITEM_WILL:
|
||||
nSaveType = SAVING_THROW_WILL;
|
||||
sSaveName = "Will";
|
||||
break;
|
||||
default:
|
||||
FloatingTextStringOnCreature("Invalid resistance spell type.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
object oItem;
|
||||
|
||||
// Handle targeting
|
||||
if(GetObjectType(oTarget) == OBJECT_TYPE_ITEM)
|
||||
{
|
||||
oItem = oTarget;
|
||||
}
|
||||
else if(GetObjectType(oTarget) == OBJECT_TYPE_CREATURE)
|
||||
{
|
||||
oItem = GetFirstNonMagicalItem(oTarget);
|
||||
if(!GetIsObjectValid(oItem))
|
||||
{
|
||||
FloatingTextStringOnCreature(GetName(oTarget) + " has no non-magical items to infuse.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FloatingTextStringOnCreature("Invalid target. Must target an item or creature.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate item
|
||||
if(!GetIsObjectValid(oItem))
|
||||
{
|
||||
FloatingTextStringOnCreature("Invalid item target.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if(GetPlotFlag(oItem))
|
||||
{
|
||||
FloatingTextStringOnCreature("Cannot infuse plot items.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
if(GetIsItemMagical(oItem))
|
||||
{
|
||||
FloatingTextStringOnCreature(GetName(oItem) + " is already magical. Can only infuse non-magical items.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Check for existing resistance infusion to prevent stacking
|
||||
itemproperty ipExisting = GetFirstItemProperty(oItem);
|
||||
while(GetIsItemPropertyValid(ipExisting))
|
||||
{
|
||||
if(GetItemPropertyTag(ipExisting) == "ResistanceInfusion")
|
||||
{
|
||||
FloatingTextStringOnCreature(GetName(oItem) + " already has a resistance infusion.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
ipExisting = GetNextItemProperty(oItem);
|
||||
}
|
||||
|
||||
// Create and apply the resistance bonus property
|
||||
itemproperty ip = ItemPropertyBonusSavingThrow(nSaveType, nBonus);
|
||||
ip = TagItemProperty(ip, "ResistanceInfusion");
|
||||
IPSafeAddItemProperty(oItem, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
FloatingTextStringOnCreature(sSaveName + " resistance +" + IntToString(nBonus) + " applied to " + GetName(oItem) + ".", oCaster, FALSE);
|
||||
}
|
||||
709
nwn/nwnprc/trunk/newspellbook/inf_weapon_aug.nss
Normal file
709
nwn/nwnprc/trunk/newspellbook/inf_weapon_aug.nss
Normal file
@@ -0,0 +1,709 @@
|
||||
// inf_weapon_aug.nss
|
||||
/*
|
||||
Weapon Augmentation, Personal
|
||||
Transmutation
|
||||
Level: Artificer 1
|
||||
Components: S, M
|
||||
Casting Time: 1 minute
|
||||
Range: Touch
|
||||
Target: Weapon touched
|
||||
Duration: 10 min./level
|
||||
Saving Throw: None (object)
|
||||
Spell Resistance: No (object)
|
||||
|
||||
The weapon you touch temporarily gains a special ability commonly
|
||||
found on magic weapons. You can choose any special ability whose
|
||||
market price is equivalent to a +1 bonus or up to 10,000 gp, such as
|
||||
flaming or keen. The weapon does not have to have an existing
|
||||
enhancement bonus, nor does it gain one when you imbue it with this
|
||||
infusion. The weapon gains the benefit of the infusion only if you
|
||||
wield, throw, or fire it.
|
||||
|
||||
Material Component: A patch of rabbit's fur.
|
||||
|
||||
Weapon Augmentation, Lesser
|
||||
Transmutation
|
||||
Level: Artificer 2
|
||||
Duration: 10 min./level
|
||||
|
||||
Target: One weapon or fifty projectiles, all of which must be in
|
||||
contact with each other at the time of casting As personal weapon
|
||||
augmentation, but any character can wield the weapon you augment.
|
||||
Alternatively, you can affect as many as fifty arrows, bolts, or
|
||||
bullets. The projectiles must be of the same kind, and they have to be
|
||||
together (in the same quiver or other container). Projectiles, but
|
||||
not thrown weapons, lose their transmutation when used. (Treat
|
||||
shuriken as projectiles rather than thrown weapons for the purpose of
|
||||
this spell.)
|
||||
|
||||
Material Component: An ointment made from rare spices and minerals, costing 20 gp.
|
||||
|
||||
|
||||
|
||||
Weapon Augmentation
|
||||
Transmutation
|
||||
Level: Artificer 4
|
||||
|
||||
As lesser weapon augmentation, but you can choose any special ability
|
||||
whose market price is equivalent to a bonus of up to +3 or up to
|
||||
70,000 gp, such as speed.
|
||||
|
||||
Material Component: An ointment costing 100 gp.
|
||||
|
||||
*/
|
||||
#include "inc_debug"
|
||||
#include "prc_craft_inc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Placeholder magic numbers for spell IDs
|
||||
const int WEAPON_AUG_PER = 6001;
|
||||
const int WEAPON_AUG_LESS = 6002;
|
||||
const int WEAPON_AUG = 6003;
|
||||
const int WEAPON_AUG_GREATER = 6004;
|
||||
|
||||
// Define constants (these are standard in the crafting system)
|
||||
const int CHOICE_BACK = -1;
|
||||
|
||||
// Dynamic conversation stages
|
||||
const int STAGE_PROPERTY_SELECTION = 0;
|
||||
const int STAGE_BANE = 1; // Match crafting system naming
|
||||
const int STAGE_CONFIRMATION = 2;
|
||||
|
||||
// Helper functions for sorted lists
|
||||
void AddToTempList(object oPC, string sChoice, int nChoice)
|
||||
{
|
||||
// Simple implementation - just add directly
|
||||
AddChoice(sChoice, nChoice, oPC);
|
||||
}
|
||||
|
||||
void TransferTempList(object oPC)
|
||||
{
|
||||
// No-op for simple implementation
|
||||
}
|
||||
|
||||
//Adds names to a list based on sTable (2da), delayed recursion to avoid TMI
|
||||
void PopulateList(object oPC, int MaxValue, int bSort, string sTable, int i = 0)
|
||||
{
|
||||
if(GetLocalInt(oPC, "DynConv_Waiting") == FALSE)
|
||||
return;
|
||||
|
||||
if(i <= MaxValue)
|
||||
{
|
||||
string sTemp = Get2DACache(sTable, "Name", i);
|
||||
if(sTemp != "")
|
||||
{
|
||||
if(bSort)
|
||||
AddToTempList(oPC, ActionString(GetStringByStrRef(StringToInt(sTemp))), i);
|
||||
else
|
||||
AddChoice(ActionString(GetStringByStrRef(StringToInt(sTemp))), i, oPC);
|
||||
}
|
||||
|
||||
if(!(i % 100) && i) //i != 0, i % 100 == 0
|
||||
FloatingTextStringOnCreature("*Tick*", oPC, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(bSort) TransferTempList(oPC);
|
||||
DeleteLocalInt(oPC, "DynConv_Waiting");
|
||||
FloatingTextStringOnCreature("*Done*", oPC, FALSE);
|
||||
return;
|
||||
}
|
||||
DelayCommand(0.01, PopulateList(oPC, MaxValue, bSort, sTable, i + 1));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void HandleConversation(object oPC, object oWeapon, int nMaxEnhancement, int nMaxCost, string sLocalVar, int nSpellID, int nCasterLevel)
|
||||
{
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
if(nValue == 0) return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Set header first
|
||||
SetHeader("Select a weapon augmentation:");
|
||||
|
||||
// Initialize default tokens BEFORE adding choices
|
||||
SetDefaultTokens();
|
||||
|
||||
int nFileEnd = PRCGetFileEnd("craft_weapon");
|
||||
int nChoice = 1;
|
||||
int i;
|
||||
|
||||
for(i = 0; i <= nFileEnd; i++)
|
||||
{
|
||||
// Get enhancement and cost for this specific line
|
||||
int nEnhancement = StringToInt(Get2DACache("craft_weapon", "Enhancement", i));
|
||||
int nAdditionalCost = StringToInt(Get2DACache("craft_weapon", "AdditionalCost", i));
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_weapon", "Name", i)));
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Line " + IntToString(i) + ": " + sName + " (Enh:" + IntToString(nEnhancement) + ", Cost:" + IntToString(nAdditionalCost) + ")");
|
||||
|
||||
// Check if this property is within limits
|
||||
if(nEnhancement <= nMaxEnhancement && nAdditionalCost <= nMaxCost)
|
||||
{
|
||||
AddChoice(sName, i, oPC);
|
||||
nChoice++;
|
||||
}
|
||||
}
|
||||
|
||||
MarkStageSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_BANE)
|
||||
{
|
||||
// Exact copy from crafting system
|
||||
SetHeader("Select a racial type.");
|
||||
AllowExit(DYNCONV_EXIT_NOT_ALLOWED, FALSE, oPC);
|
||||
AddChoice(ActionString("Back"), CHOICE_BACK, oPC);
|
||||
SetLocalInt(oPC, "DynConv_Waiting", TRUE);
|
||||
PopulateList(oPC, PRCGetFileEnd("racialtypes"), TRUE, "racialtypes");
|
||||
MarkStageSetUp(nStage);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
int nPropertyLine = GetLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_weapon", "Name", nPropertyLine)));
|
||||
|
||||
SetHeader("Apply " + sName + " to the weapon?");
|
||||
|
||||
AddChoice("Yes", TRUE, oPC);
|
||||
AddChoice("No", FALSE, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetupTokens();
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
DeleteLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE);
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
DeleteLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE);
|
||||
}
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Store selection and check if Bane/Dread
|
||||
SetLocalInt(oPC, "WeaponAug_SelectedProperty", nChoice);
|
||||
if(nChoice == 26 || nChoice == 27) // Bane or Dread
|
||||
{
|
||||
nStage = STAGE_BANE;
|
||||
}
|
||||
else
|
||||
{
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
}
|
||||
MarkStageNotSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_BANE)
|
||||
{
|
||||
// Exact copy from crafting system logic
|
||||
if(nChoice == CHOICE_BACK)
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
else
|
||||
{
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
SetLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE, nChoice);
|
||||
}
|
||||
MarkStageNotSetUp(nStage, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
if(nChoice == TRUE) // User confirmed
|
||||
{
|
||||
// Apply the property
|
||||
object oWeapon = GetLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
int nPropertyLine = GetLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
int nCasterLevel = GetLocalInt(oPC, "WeaponAug_CasterLevel");
|
||||
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
SendMessageToPC(oPC, "Fallback Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Create property with special handling for Bane/Dread
|
||||
itemproperty ip;
|
||||
if(nPropertyLine == 26 || nPropertyLine == 27) // Bane or Dread
|
||||
{
|
||||
// Use the special handling function from the crafting system
|
||||
ip = PropSpecialHandling(oWeapon, "craft_weapon", nPropertyLine, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Standard property construction
|
||||
string sIPData = Get2DACache("craft_weapon", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
}
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "WeaponAugInfusion");
|
||||
IPSafeAddItemProperty(oWeapon, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
// Clean up and exit
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
DeleteLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE);
|
||||
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
else // User cancelled
|
||||
{
|
||||
// Go back to property selection or BANE stage
|
||||
if(GetLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE))
|
||||
{
|
||||
nStage = STAGE_BANE;
|
||||
DeleteLocalInt(oPC, PRC_CRAFT_SPECIAL_BANE_RACE);
|
||||
}
|
||||
else
|
||||
{
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
}
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
if(!GetIsObjectValid(oPC)) oPC = OBJECT_SELF;
|
||||
|
||||
// Check if we're in conversation mode
|
||||
if(GetLocalInt(oPC, "WeaponAug_ConvMode"))
|
||||
{
|
||||
// Retrieve parameters for conversation
|
||||
object oWeapon = GetLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
int nMaxEnhancement = GetLocalInt(oPC, "WeaponAug_MaxEnh");
|
||||
int nMaxCost = GetLocalInt(oPC, "WeaponAug_MaxCost");
|
||||
string sLocalVar = GetLocalString(oPC, "WeaponAug_LocalVar");
|
||||
int nSpellID = GetLocalInt(oPC, "WeaponAug_SpellID");
|
||||
int nCasterLevel = GetLocalInt(oPC, "WeaponAug_CasterLevel");
|
||||
|
||||
HandleConversation(oPC, oWeapon, nMaxEnhancement, nMaxCost, sLocalVar, nSpellID, nCasterLevel);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal spell execution
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
// Declare variables
|
||||
int nGoldCost, nMaxEnhancement, nMaxCost;
|
||||
string sLocalVar;
|
||||
|
||||
// Set parameters based on spell level
|
||||
switch(nSpellID)
|
||||
{
|
||||
case WEAPON_AUG_PER:
|
||||
nGoldCost = 0;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_PER_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG_LESS:
|
||||
nGoldCost = 20;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_LESS_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG:
|
||||
nGoldCost = 100;
|
||||
nMaxEnhancement = 3;
|
||||
nMaxCost = 70000;
|
||||
sLocalVar = "WEAPON_AUG_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG_GREATER:
|
||||
nGoldCost = 200;
|
||||
nMaxEnhancement = 5;
|
||||
nMaxCost = 200000;
|
||||
sLocalVar = "WEAPON_AUG_GREATER_PROPERTY";
|
||||
break;
|
||||
default:
|
||||
// Default to lesser version for testing
|
||||
nGoldCost = 20;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_LESS_PROPERTY";
|
||||
break;
|
||||
}
|
||||
|
||||
// Check material component
|
||||
if(GetGold(oCaster) < nGoldCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You need " + IntToString(nGoldCost) + "gp worth of rare ointments.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get targeted weapon
|
||||
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCaster);
|
||||
//object oWeapon = IPGetTargetedOrEquippedArmor(TRUE); <- don't delete
|
||||
if(!GetIsObjectValid(oWeapon))
|
||||
{
|
||||
FloatingTextStrRefOnCreature(83826, oCaster, FALSE); // "Invalid target"
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if returning from conversation with a selection
|
||||
int nPropertyLine = GetLocalInt(oCaster, sLocalVar);
|
||||
if(nPropertyLine > 0)
|
||||
{
|
||||
// Apply the property
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_weapon", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
itemproperty ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "WeaponAugInfusion");
|
||||
IPSafeAddItemProperty(oWeapon, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
DeleteLocalInt(oCaster, sLocalVar);
|
||||
return;
|
||||
}
|
||||
|
||||
// Store parameters for conversation and start it
|
||||
SetLocalInt(oPC, "WeaponAug_ConvMode", 1);
|
||||
SetLocalObject(oPC, "WEAPON_AUG_TARGET", oWeapon);
|
||||
SetLocalInt(oPC, "WeaponAug_MaxEnh", nMaxEnhancement);
|
||||
SetLocalInt(oPC, "WeaponAugh_MaxCost", nMaxCost);
|
||||
SetLocalString(oPC, "WeaponAug_LocalVar", sLocalVar);
|
||||
SetLocalInt(oPC, "WeaponAug_SpellID", nSpellID);
|
||||
SetLocalInt(oPC, "WeaponAug_CasterLevel", nCasterLevel);
|
||||
|
||||
// Start the dynamic conversation using this same script
|
||||
StartDynamicConversation("inf_weapon_aug", oPC, 0, FALSE, TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* #include "inc_debug"
|
||||
#include "prc_craft_inc"
|
||||
#include "inc_dynconv"
|
||||
|
||||
// Placeholder magic numbers for spell IDs
|
||||
const int WEAPON_AUG_PER = 6001;
|
||||
const int WEAPON_AUG_LESS = 6002;
|
||||
const int WEAPON_AUG = 6003;
|
||||
const int WEAPON_AUG_GREATER = 6004;
|
||||
|
||||
|
||||
// Dynamic conversation stages
|
||||
const int STAGE_PROPERTY_SELECTION = 0;
|
||||
const int STAGE_CONFIRMATION = 1;
|
||||
|
||||
|
||||
void HandleConversation(object oPC, object oWeapon, int nMaxEnhancement, int nMaxCost, string sLocalVar, int nSpellID, int nCasterLevel)
|
||||
{
|
||||
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
|
||||
int nStage = GetStage(oPC);
|
||||
|
||||
if(nValue == 0) return;
|
||||
|
||||
if(nValue == DYNCONV_SETUP_STAGE)
|
||||
{
|
||||
if(!GetIsStageSetUp(nStage, oPC))
|
||||
{
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Set header first
|
||||
SetHeader("Select a weapon augmentation:");
|
||||
|
||||
// Initialize default tokens BEFORE adding choices
|
||||
SetDefaultTokens();
|
||||
|
||||
int nFileEnd = PRCGetFileEnd("craft_weapon");
|
||||
int nChoice = 1;
|
||||
int i;
|
||||
|
||||
for(i = 0; i <= nFileEnd; i++)
|
||||
{
|
||||
// Get enhancement and cost for this specific line
|
||||
int nEnhancement = StringToInt(Get2DACache("craft_weapon", "Enhancement", i));
|
||||
int nAdditionalCost = StringToInt(Get2DACache("craft_weapon", "AdditionalCost", i));
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_weapon", "Name", i)));
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Line " + IntToString(i) + ": " + sName + " (Enh:" + IntToString(nEnhancement) + ", Cost:" + IntToString(nAdditionalCost) + ")");
|
||||
|
||||
// Check if this property is within limits
|
||||
if(nEnhancement <= nMaxEnhancement && nAdditionalCost <= nMaxCost)
|
||||
{
|
||||
AddChoice(sName, i, oPC);
|
||||
nChoice++;
|
||||
}
|
||||
}
|
||||
|
||||
MarkStageSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
int nPropertyLine = GetLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
string sName = GetStringByStrRef(StringToInt(Get2DACache("craft_weapon", "Name", nPropertyLine)));
|
||||
|
||||
SetHeader("Apply " + sName + " to the weapon?");
|
||||
|
||||
AddChoice("Yes", TRUE, oPC);
|
||||
AddChoice("No", FALSE, oPC);
|
||||
|
||||
MarkStageSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetupTokens();
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// Cleanup
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
}
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
|
||||
if(nStage == STAGE_PROPERTY_SELECTION)
|
||||
{
|
||||
// Store selection and go to confirmation
|
||||
SetLocalInt(oPC, "WeaponAug_SelectedProperty", nChoice);
|
||||
nStage = STAGE_CONFIRMATION;
|
||||
MarkStageNotSetUp(STAGE_PROPERTY_SELECTION, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRMATION)
|
||||
{
|
||||
if(nChoice == TRUE) // User confirmed
|
||||
{
|
||||
// Apply the property
|
||||
object oWeapon = GetLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
int nPropertyLine = GetLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
int nCasterLevel = GetLocalInt(oPC, "WeaponAug_CasterLevel");
|
||||
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
// Debug output
|
||||
SendMessageToPC(oPC, "Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Add fallback for very small durations
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
SendMessageToPC(oPC, "Fallback Duration: " + FloatToString(fDuration) + " seconds");
|
||||
|
||||
// Create property directly
|
||||
itemproperty ip;
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_weapon", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "WeaponAugInfusion");
|
||||
IPSafeAddItemProperty(oWeapon, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
// Clean up and exit
|
||||
DeleteLocalInt(oPC, "WeaponAug_ConvMode");
|
||||
DeleteLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
DeleteLocalInt(oPC, "WeaponAug_SelectedProperty");
|
||||
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
else // User cancelled
|
||||
{
|
||||
// Go back to property selection
|
||||
nStage = STAGE_PROPERTY_SELECTION;
|
||||
MarkStageNotSetUp(STAGE_CONFIRMATION, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
SetStage(nStage, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
if(!GetIsObjectValid(oPC)) oPC = OBJECT_SELF;
|
||||
|
||||
// Check if we're in conversation mode
|
||||
if(GetLocalInt(oPC, "WeaponAug_ConvMode"))
|
||||
{
|
||||
// Retrieve parameters for conversation
|
||||
object oWeapon = GetLocalObject(oPC, "WEAPON_AUG_TARGET");
|
||||
int nMaxEnhancement = GetLocalInt(oPC, "WeaponAug_MaxEnh");
|
||||
int nMaxCost = GetLocalInt(oPC, "WeaponAug_MaxCost");
|
||||
string sLocalVar = GetLocalString(oPC, "WeaponAug_LocalVar");
|
||||
int nSpellID = GetLocalInt(oPC, "WeaponAug_SpellID");
|
||||
int nCasterLevel = GetLocalInt(oPC, "WeaponAug_CasterLevel");
|
||||
|
||||
HandleConversation(oPC, oWeapon, nMaxEnhancement, nMaxCost, sLocalVar, nSpellID, nCasterLevel);
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal spell execution
|
||||
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
int nSpellID = PRCGetSpellId();
|
||||
|
||||
// Declare variables
|
||||
int nGoldCost, nMaxEnhancement, nMaxCost;
|
||||
string sLocalVar;
|
||||
|
||||
// Set parameters based on spell level
|
||||
switch(nSpellID)
|
||||
{
|
||||
case WEAPON_AUG_PER:
|
||||
nGoldCost = 0;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_PER_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG_LESS:
|
||||
nGoldCost = 20;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_LESS_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG:
|
||||
nGoldCost = 100;
|
||||
nMaxEnhancement = 3;
|
||||
nMaxCost = 70000;
|
||||
sLocalVar = "WEAPON_AUG_PROPERTY";
|
||||
break;
|
||||
case WEAPON_AUG_GREATER:
|
||||
nGoldCost = 200;
|
||||
nMaxEnhancement = 5;
|
||||
nMaxCost = 200000;
|
||||
sLocalVar = "WEAPON_AUG_GREATER_PROPERTY";
|
||||
break;
|
||||
default:
|
||||
// Default to lesser version for testing
|
||||
nGoldCost = 20;
|
||||
nMaxEnhancement = 1;
|
||||
nMaxCost = 10000;
|
||||
sLocalVar = "WEAPON_AUG_LESS_PROPERTY";
|
||||
break;
|
||||
}
|
||||
|
||||
// Check material component
|
||||
if(GetGold(oCaster) < nGoldCost)
|
||||
{
|
||||
FloatingTextStringOnCreature("You need " + IntToString(nGoldCost) + "gp worth of rare ointments.", oCaster, FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Get targeted weapon
|
||||
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCaster);
|
||||
//object oWeapon = IPGetTargetedOrEquippedArmor(TRUE); <- don't delete
|
||||
if(!GetIsObjectValid(oWeapon))
|
||||
{
|
||||
FloatingTextStrRefOnCreature(83826, oCaster, FALSE); // "Invalid target"
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if returning from conversation with a selection
|
||||
int nPropertyLine = GetLocalInt(oCaster, sLocalVar);
|
||||
if(nPropertyLine > 0)
|
||||
{
|
||||
// Apply the property
|
||||
float fDuration = TurnsToSeconds(nCasterLevel * 10);
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
if(nMetaMagic & METAMAGIC_EXTEND)
|
||||
fDuration *= 2;
|
||||
|
||||
if (fDuration <= 1.0) fDuration = 30.0f;
|
||||
|
||||
// Read property data from 2DA and construct
|
||||
string sIPData = Get2DACache("craft_weapon", "IP1", nPropertyLine);
|
||||
struct ipstruct iptemp = GetIpStructFromString(sIPData);
|
||||
itemproperty ip = ConstructIP(iptemp.type, iptemp.subtype, iptemp.costtablevalue, iptemp.param1value);
|
||||
|
||||
|
||||
// Apply with proper duration
|
||||
ip = TagItemProperty(ip, "WeaponAugInfusion");
|
||||
IPSafeAddItemProperty(oWeapon, ip, fDuration, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||
|
||||
DeleteLocalInt(oCaster, sLocalVar);
|
||||
return;
|
||||
}
|
||||
|
||||
// Store parameters for conversation and start it
|
||||
SetLocalInt(oPC, "WeaponAug_ConvMode", 1);
|
||||
SetLocalObject(oPC, "WEAPON_AUG_TARGET", oWeapon);
|
||||
SetLocalInt(oPC, "WeaponAug_MaxEnh", nMaxEnhancement);
|
||||
SetLocalInt(oPC, "WeaponAugh_MaxCost", nMaxCost);
|
||||
SetLocalString(oPC, "WeaponAug_LocalVar", sLocalVar);
|
||||
SetLocalInt(oPC, "WeaponAug_SpellID", nSpellID);
|
||||
SetLocalInt(oPC, "WeaponAug_CasterLevel", nCasterLevel);
|
||||
|
||||
// Start the dynamic conversation using this same script
|
||||
StartDynamicConversation("inf_weapon_aug", oPC, 0, FALSE, TRUE);
|
||||
} */
|
||||
BIN
nwn/nwnprc/trunk/others/prc_bbod001.utc
Normal file
BIN
nwn/nwnprc/trunk/others/prc_bbod001.utc
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -79,7 +79,7 @@ void main()
|
||||
{
|
||||
SignalEvent(oTarget, EventSpellCastAt(oCreator, SPELLABILITY_AURA_FEAR));
|
||||
|
||||
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR))
|
||||
if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
|
||||
@@ -258,8 +258,8 @@ void main()
|
||||
int nAbilityScore = GetAbilityScoreForClass(nClass, oPC);
|
||||
int nClassLevel = GetLevelByPosition(i, oPC);
|
||||
if(nClassLevel
|
||||
&& (GetSlotCount(nClassLevel, 0, nAbilityScore, nClass)
|
||||
|| GetSlotCount(nClassLevel, 1, nAbilityScore, nClass)))
|
||||
&& (GetSlotCount(nClassLevel, 0, nAbilityScore, nClass, oPC)
|
||||
|| GetSlotCount(nClassLevel, 1, nAbilityScore, nClass, oPC)))
|
||||
{
|
||||
string sClassName = GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", nClass)));
|
||||
GenerateSpellsMemorizedCache(nClass, oPC);
|
||||
@@ -291,7 +291,7 @@ void main()
|
||||
{
|
||||
// for every spell level, determine the slot count, and if it is non-zero add a choice
|
||||
// we do not break out of the loop on an empty slot count, because of bonus slot counts from items there might be gaps
|
||||
if(GetSlotCount(nCasterLevel, nSpellSlotLevel, nAbilityScore, nClass))
|
||||
if(GetSlotCount(nCasterLevel, nSpellSlotLevel, nAbilityScore, nClass, oPC))
|
||||
{
|
||||
AddChoice(sChoiceSpellLevel +IntToString(nSpellSlotLevel), nSpellSlotLevel, oPC);
|
||||
nChoiceAdded = TRUE;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "x0_i0_anims"
|
||||
// #include "x0_i0_walkway" - in x0_i0_anims
|
||||
#include "x0_i0_treasure"
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "x2_inc_switches"
|
||||
|
||||
void main()
|
||||
@@ -297,7 +297,12 @@ void main()
|
||||
// ***** ADD ANY SPECIAL ON-SPAWN CODE HERE ***** //
|
||||
|
||||
// * If Incorporeal, apply changes
|
||||
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
|
||||
if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
|
||||
{
|
||||
SetIncorporeal(OBJECT_SELF, 0.0f, 2, TRUE);
|
||||
}
|
||||
|
||||
/* if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE)
|
||||
{
|
||||
effect eConceal = EffectConcealment(50, MISS_CHANCE_TYPE_NORMAL);
|
||||
eConceal = ExtraordinaryEffect(eConceal);
|
||||
@@ -306,7 +311,7 @@ void main()
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConceal, OBJECT_SELF);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, OBJECT_SELF);
|
||||
|
||||
}
|
||||
} */
|
||||
|
||||
// * Give the create a random name.
|
||||
// * If you create a script named x3_name_gen in your module, you can
|
||||
|
||||
@@ -34,7 +34,7 @@ void main()
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR));
|
||||
//Make a saving throw check
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR))
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_FEAR) && !GetIsImmune(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
|
||||
{
|
||||
//Apply the VFX impact and effects
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectShaken(), oTarget, RoundsToSeconds(GetLevelByClass(CLASS_TYPE_DREAD_NECROMANCER, GetAreaOfEffectCreator())));
|
||||
|
||||
@@ -9,14 +9,16 @@
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_factotum"
|
||||
#include "prc_feat_const"
|
||||
#include "inc_dynconv"
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constant defintions */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
const int STAGE_SELECT_ABILITIES = 0;
|
||||
const int STAGE_CONFIRM_SELECTION = 1;
|
||||
const int STAGE_SELECT_ABILITIES = 0;
|
||||
const int STAGE_SELECT_FAVORED_ENEMY = 1;
|
||||
const int STAGE_CONFIRM_SELECTION = 2;
|
||||
|
||||
const int CHOICE_BACK_TO_LSELECT = -1;
|
||||
|
||||
@@ -28,7 +30,7 @@ const int LEVEL_STRREF_START = 16824809;
|
||||
const int STRREF_YES = 4752; // "Yes"
|
||||
const int STRREF_NO = 4753; // "No"
|
||||
|
||||
const int SORT = TRUE; // If the sorting takes too much CPU, set to FALSE
|
||||
const int SORT = TRUE; // If the sorting takes too much CPU, set to FALSE
|
||||
const int DEBUG_LIST = FALSE;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
@@ -165,17 +167,100 @@ void main()
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Building level selection");
|
||||
SetHeader("Choose the class abilities you would like to learn. You can only learn three for today.");
|
||||
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_BARBARIAN_ENDURANCE)) AddChoice("Barbarian Fast Movement", FEAT_BARBARIAN_ENDURANCE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_BARBARIAN_RAGE)) AddChoice("Barbarian Rage", FEAT_BARBARIAN_RAGE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_SNEAK_ATTACK)) AddChoice("Sneak Attack", FEAT_SNEAK_ATTACK);
|
||||
if (!GetIsAbilitySaved(oPC, 3665)) AddChoice("Mettle", 3665);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_CRUSADER_SMITE)) AddChoice("Crusader Smite", FEAT_CRUSADER_SMITE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_BARBARIAN_ENDURANCE)) AddChoice("Barbarian: Fast Movement", FEAT_BARBARIAN_ENDURANCE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_BARBARIAN_RAGE)) AddChoice("Barbarian: Rage", FEAT_BARBARIAN_RAGE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_CLOAKED_CASTING)) AddChoice("Beguiler: Cloaked Casting", FEAT_CLOAKED_CASTING);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_CRUSADER_SMITE)) AddChoice("Crusader: Smite", FEAT_CRUSADER_SMITE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_DRAGONSHAMAN_RESOLVE)) AddChoice("Dragon Shaman: Draconic Resolve", FEAT_DRAGONSHAMAN_RESOLVE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_NATURE_SENSE)) AddChoice("Druid: Nature Sense", FEAT_NATURE_SENSE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_WOODLAND_STRIDE)) AddChoice("Druid: Woodland Stride", FEAT_WOODLAND_STRIDE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_TRACKLESS_STEP)) AddChoice("Druid: Trackless Step", FEAT_TRACKLESS_STEP);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_RESIST_NATURES_LURE)) AddChoice("Druid: Resist Nature's Lure", FEAT_RESIST_NATURES_LURE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_VENOM_IMMUNITY)) AddChoice("Druid: Venom Immunity", FEAT_VENOM_IMMUNITY);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_METTLE)) AddChoice("Hexblade: Mettle", FEAT_METTLE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_EVASION)) AddChoice("Monk: Evasion", FEAT_EVASION);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_STILL_MIND)) AddChoice("Monk: Still Mind", FEAT_STILL_MIND);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_PURITY_OF_BODY)) AddChoice("Monk: Purity of Body", FEAT_PURITY_OF_BODY);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_IMPROVED_EVASION)) AddChoice("Monk: Improved Evasion", FEAT_IMPROVED_EVASION);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_USE_POISON)) AddChoice("Ninja: Poison Use", FEAT_USE_POISON);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_DIVINE_HEALTH)) AddChoice("Paladin: Divine Health", FEAT_DIVINE_HEALTH);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_CRIPPLING_STRIKE)) AddChoice("Rogue: Crippling Strike", FEAT_CRIPPLING_STRIKE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_DEFENSIVE_ROLL)) AddChoice("Rogue: Defensive Roll", FEAT_DEFENSIVE_ROLL);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_OPPORTUNIST)) AddChoice("Rogue: Opportunist", FEAT_OPPORTUNIST);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_SLIPPERY_MIND)) AddChoice("Rogue: Slippery Mind", FEAT_SLIPPERY_MIND);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_SNEAK_ATTACK)) AddChoice("Rogue: Sneak Attack", FEAT_SNEAK_ATTACK);
|
||||
|
||||
|
||||
AddChoice("Ranger: Favored Enemy", -1000); // Favored Enemy submenu trigger
|
||||
|
||||
// Set the next, previous and wait tokens to default values
|
||||
SetDefaultTokens();
|
||||
// Set the convo quit text to "Abort"
|
||||
SetCustomToken(DYNCONV_TOKEN_EXIT, GetStringByStrRef(DYNCONV_STRREF_ABORT_CONVO));
|
||||
}
|
||||
// Favored Enemy selection stage
|
||||
else if(nStage == STAGE_SELECT_FAVORED_ENEMY)
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Building favored enemy selection");
|
||||
SetHeader("Choose your Favored Enemy type:");
|
||||
|
||||
// Add specific favored enemy feats
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_ABERRATION))
|
||||
AddChoice("Aberration", FEAT_FAVORED_ENEMY_ABERRATION);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_ANIMAL))
|
||||
AddChoice("Animal", FEAT_FAVORED_ENEMY_ANIMAL);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_BEAST))
|
||||
AddChoice("Beast", FEAT_FAVORED_ENEMY_BEAST);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_CONSTRUCT))
|
||||
AddChoice("Construct", FEAT_FAVORED_ENEMY_CONSTRUCT);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_DRAGON))
|
||||
AddChoice("Dragon", FEAT_FAVORED_ENEMY_DRAGON);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_DWARF))
|
||||
AddChoice("Dwarf", FEAT_FAVORED_ENEMY_DWARF);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_ELEMENTAL))
|
||||
AddChoice("Elemental", FEAT_FAVORED_ENEMY_ELEMENTAL);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_ELF))
|
||||
AddChoice("Elf", FEAT_FAVORED_ENEMY_ELF);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_FEY))
|
||||
AddChoice("Fey", FEAT_FAVORED_ENEMY_FEY);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_GIANT))
|
||||
AddChoice("Giant", FEAT_FAVORED_ENEMY_GIANT);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_GNOME))
|
||||
AddChoice("Gnome", FEAT_FAVORED_ENEMY_GNOME);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_GOBLINOID))
|
||||
AddChoice("Goblinoid", FEAT_FAVORED_ENEMY_GOBLINOID);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_HALFELF))
|
||||
AddChoice("Half-Elf", FEAT_FAVORED_ENEMY_HALFELF);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_HALFLING))
|
||||
AddChoice("Halfling", FEAT_FAVORED_ENEMY_HALFLING);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_HALFORC))
|
||||
AddChoice("Half-Orc", FEAT_FAVORED_ENEMY_HALFORC);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_HUMAN))
|
||||
AddChoice("Human", FEAT_FAVORED_ENEMY_HUMAN);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_MAGICAL_BEAST))
|
||||
AddChoice("Magical Beast", FEAT_FAVORED_ENEMY_MAGICAL_BEAST);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_MONSTROUS))
|
||||
AddChoice("Monstrous Humanoid", FEAT_FAVORED_ENEMY_MONSTROUS);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_ORC))
|
||||
AddChoice("Orc", FEAT_FAVORED_ENEMY_ORC);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_OOZE))
|
||||
AddChoice("Ooze", FEAT_FAVORED_ENEMY_OOZE);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_OUTSIDER))
|
||||
AddChoice("Outsider", FEAT_FAVORED_ENEMY_OUTSIDER);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_PLANT))
|
||||
AddChoice("Plant", FEAT_FAVORED_ENEMY_PLANT);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_REPTILIAN))
|
||||
AddChoice("Reptilian Humanoid", FEAT_FAVORED_ENEMY_REPTILIAN);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_SHAPECHANGER))
|
||||
AddChoice("Shapechanger", FEAT_FAVORED_ENEMY_SHAPECHANGER);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_UNDEAD))
|
||||
AddChoice("Undead", FEAT_FAVORED_ENEMY_UNDEAD);
|
||||
if (!GetIsAbilitySaved(oPC, FEAT_FAVORED_ENEMY_VERMIN))
|
||||
AddChoice("Vermin", FEAT_FAVORED_ENEMY_VERMIN);
|
||||
|
||||
SetDefaultTokens();
|
||||
SetCustomToken(DYNCONV_TOKEN_EXIT, GetStringByStrRef(DYNCONV_STRREF_ABORT_CONVO));
|
||||
}
|
||||
// Selection confirmation stage
|
||||
else if(nStage == STAGE_CONFIRM_SELECTION)
|
||||
{
|
||||
@@ -211,34 +296,52 @@ void main()
|
||||
else
|
||||
{
|
||||
int nChoice = GetChoice(oPC);
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Handling PC response, stage = " + IntToString(nStage) + "; nChoice = " + IntToString(nChoice) + "; choice text = '" + GetChoiceText(oPC) + "'");
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Handling PC response, stage = " + IntToString(nStage) + "; nChoice = " + IntToString(nChoice) + "; choice text = '" + GetChoiceText(oPC) + "'");
|
||||
|
||||
if(nStage == STAGE_SELECT_ABILITIES)
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Level selected");
|
||||
SetLocalInt(oPC, "CunningBrilliance", nChoice);
|
||||
nStage = STAGE_CONFIRM_SELECTION;
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Ability selected");
|
||||
|
||||
// Check if Favored Enemy was selected
|
||||
if(nChoice == -1000) // Our special value
|
||||
{
|
||||
nStage = STAGE_SELECT_FAVORED_ENEMY;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalInt(oPC, "CunningBrilliance", nChoice);
|
||||
nStage = STAGE_CONFIRM_SELECTION;
|
||||
}
|
||||
|
||||
MarkStageNotSetUp(STAGE_SELECT_ABILITIES, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_SELECT_FAVORED_ENEMY)
|
||||
{
|
||||
if(DEBUG) DoDebug("prc_fact_cunconv: Favored enemy selected");
|
||||
SetLocalInt(oPC, "CunningBrilliance", nChoice);
|
||||
nStage = STAGE_CONFIRM_SELECTION;
|
||||
|
||||
MarkStageNotSetUp(STAGE_SELECT_FAVORED_ENEMY, oPC);
|
||||
}
|
||||
else if(nStage == STAGE_CONFIRM_SELECTION)
|
||||
{
|
||||
if (nChoice)
|
||||
{
|
||||
int nSpellId = GetLocalInt(oPC, "CunningBrilliance");
|
||||
MarkAbilitySaved(oPC, nSpellId);
|
||||
SetLocalInt(oPC, "CunningBrillianceCount", GetLocalInt(oPC, "CunningBrillianceCount")+1);
|
||||
}
|
||||
if (nChoice)
|
||||
{
|
||||
int nSpellId = GetLocalInt(oPC, "CunningBrilliance");
|
||||
MarkAbilitySaved(oPC, nSpellId);
|
||||
SetLocalInt(oPC, "CunningBrillianceCount", GetLocalInt(oPC, "CunningBrillianceCount")+1);
|
||||
}
|
||||
|
||||
// We have more to go
|
||||
// We have more to go
|
||||
if(3 > GetLocalInt(oPC, "CunningBrillianceCount"))
|
||||
{
|
||||
nStage = STAGE_SELECT_ABILITIES;
|
||||
}
|
||||
else
|
||||
{
|
||||
// And we're all done
|
||||
DelayCommand(0.5, CheckBrillianceSlots(oPC));
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
// And we're all done
|
||||
DelayCommand(0.5, CheckBrillianceSlots(oPC));
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
MarkStageNotSetUp(STAGE_CONFIRM_SELECTION, oPC);
|
||||
}
|
||||
|
||||
@@ -434,7 +434,7 @@ void main()
|
||||
if (nStatus != ALIVE)
|
||||
AddEventScript(oPC, EVENT_ONHEARTBEAT, "prc_timer_dying", TRUE, FALSE);
|
||||
// Make us fall over if we should be on the floor.
|
||||
if (nStatus == BLEEDING || STABLE || DEAD)
|
||||
if (nStatus == BLEEDING || nStatus == STABLE || nStatus == DEAD)
|
||||
AssignCommand(oPC, DelayCommand(0.03, PlayAnimation(ANIMATION_LOOPING_DEAD_BACK, 1.0, 4.0)));
|
||||
// If PRC Death is enabled we require HP tracking too
|
||||
SetPRCSwitch(PRC_PW_HP_TRACKING, TRUE);
|
||||
|
||||
@@ -1877,7 +1877,7 @@ void main()
|
||||
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass);
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
if(nSlots > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_AllSpell"+IntToString(nSpellLevel), 0);
|
||||
@@ -1928,7 +1928,7 @@ void main()
|
||||
|
||||
for(nSpellLevel = 0; nSpellLevel <= 9; nSpellLevel++)
|
||||
{
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass);
|
||||
int nSlots = GetSlotCount(nLevel, nSpellLevel, nAbility, nClass, oPC);
|
||||
if(nSlots > 0)
|
||||
{
|
||||
SetLocalInt(oPC, "PRC_AllSpell"+IntToString(nSpellLevel), 0);
|
||||
|
||||
@@ -110,7 +110,7 @@ const int TYPE_WILD_SHAPE = 1; //0x01
|
||||
const int TYPE_ELEMENTAL_SHAPE = 2; //0x02
|
||||
const int TYPE_DRAGON_SHAPE = 4; //0x04
|
||||
const int TYPE_POLYMORPH_SELF = 8; //0x08
|
||||
const int TYPE_ABERRANT_SHAPE = 16; //0x16
|
||||
const int TYPE_ABERRANT_SHAPE = 16; //0x10
|
||||
const int TYPE_PLANT_SHAPE = 32; //0x20
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
@@ -12,13 +12,9 @@
|
||||
//:: Created On: Feb 28, 2002
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
|
||||
//:: modified by mr_bumpkin Dec 4, 2003
|
||||
#include "prc_inc_spells"
|
||||
|
||||
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||||
|
||||
@@ -54,7 +54,8 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
|
||||
int EleDmg = GetLocalInt(OBJECT_SELF, "IC_Damage");
|
||||
|
||||
|
||||
oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
//oTarget = GetFirstInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
//Declare the spell shape, size and the location.
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
@@ -91,7 +92,8 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
|
||||
}
|
||||
}
|
||||
//Select the next target within the spell shape.
|
||||
oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
//oTarget = GetNextInPersistentObject(OBJECT_SELF,OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ void main()
|
||||
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr()))
|
||||
if(!PRCDoResistSpell(oPC, oTarget, nCasterLvl + SPGetPenetr())&& !GetIsImmune(oTarget, IMMUNITY_TYPE_MIND_SPELLS))
|
||||
{
|
||||
//Save
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_MIND_SPELLS))
|
||||
|
||||
@@ -46,12 +46,120 @@ Created: 7/6/07
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "prc_sp_func"
|
||||
|
||||
int DoSpell(object oCaster, object oTarget, int nCasterLevel)
|
||||
{
|
||||
int nSpell = GetSpellId();
|
||||
int nBeam;
|
||||
int nDam;
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nTouch = PRCDoRangedTouchAttack(oTarget);
|
||||
int nType = MyPRCGetRacialType(oTarget);
|
||||
|
||||
if(nSpell == SPELL_DISRUPT_UNDEAD)
|
||||
{
|
||||
nBeam = VFX_BEAM_HOLY;
|
||||
nDam = d6(1);
|
||||
nDam += SpellDamagePerDice(oCaster, 1);
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE) nDam = 6;
|
||||
}
|
||||
|
||||
if(nSpell == SPELL_GREATER_DISRUPT_UNDEAD)
|
||||
{
|
||||
nBeam = VFX_BEAM_BLACK;
|
||||
nDam = d6(3);
|
||||
nDam += SpellDamagePerDice(oCaster, 3);
|
||||
if(nMetaMagic & METAMAGIC_MAXIMIZE) nDam = 18;
|
||||
}
|
||||
|
||||
if(nMetaMagic & METAMAGIC_EMPOWER) nDam += (nDam/2);
|
||||
|
||||
//Beam that acts accordingly
|
||||
effect eVis = EffectBeam(nBeam, oCaster, BODY_NODE_HAND, !nTouch);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
||||
|
||||
if(nTouch)
|
||||
{
|
||||
if(nType == RACIAL_TYPE_UNDEAD
|
||||
|| (GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget) && GetAlignmentGoodEvil(oTarget) != ALIGNMENT_GOOD))
|
||||
{
|
||||
if(!PRCDoResistSpell(oCaster, oTarget, nCasterLevel + SPGetPenetr()))
|
||||
{
|
||||
if(nSpell == SPELL_GREATER_DISRUPT_UNDEAD)
|
||||
{
|
||||
//Get hp before damage
|
||||
int nHP = GetCurrentHitPoints(oTarget);
|
||||
|
||||
//Apply Damage
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_POSITIVE), oTarget);
|
||||
|
||||
//if enough to kill target, bounce
|
||||
if(nDam >= nHP)
|
||||
{
|
||||
location lLoc = GetLocation(oTarget);
|
||||
object oTarget2 = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(15.0), lLoc, TRUE);
|
||||
|
||||
while(GetIsObjectValid(oTarget2))
|
||||
{
|
||||
//Undead, enemy, and not the original target
|
||||
if((GetRacialType(oTarget2) == RACIAL_TYPE_UNDEAD || (GetHasFeat(FEAT_TOMB_TAINTED_SOUL, oTarget2) && GetAlignmentGoodEvil(oTarget2) != ALIGNMENT_GOOD)
|
||||
&& GetIsEnemy(oTarget2, oCaster) && (oTarget != oTarget2)))
|
||||
{
|
||||
//Black beam, origin chest of previous target
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectBeam(VFX_BEAM_BLACK, oTarget, BODY_NODE_CHEST), oTarget2);
|
||||
SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam/2, DAMAGE_TYPE_POSITIVE), oTarget2);
|
||||
break;
|
||||
}
|
||||
|
||||
oTarget2 = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(15.0), lLoc, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else SPApplyEffectToObject(DURATION_TYPE_INSTANT, PRCEffectDamage(oTarget, nDam, DAMAGE_TYPE_POSITIVE), oTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nTouch; // return TRUE if spell charges should be decremented
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
if (!X2PreSpellCastCode()) return;
|
||||
PRCSetSchool(SPELL_SCHOOL_NECROMANCY);
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nCasterLevel = PRCGetCasterLevel(oCaster);
|
||||
int nEvent = GetLocalInt(oCaster, PRC_SPELL_EVENT); //use bitwise & to extract flags
|
||||
if(!nEvent) //normal cast
|
||||
{
|
||||
if(GetLocalInt(oCaster, PRC_SPELL_HOLD) && oCaster == oTarget)
|
||||
{ //holding the charge, casting spell on self
|
||||
SetLocalSpellVariables(oCaster, 1); //change 1 to number of charges
|
||||
return;
|
||||
}
|
||||
DoSpell(oCaster, oTarget, nCasterLevel);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nEvent & PRC_SPELL_EVENT_ATTACK)
|
||||
{
|
||||
if(DoSpell(oCaster, oTarget, nCasterLevel))
|
||||
DecrementSpellCharges(oCaster);
|
||||
}
|
||||
}
|
||||
PRCSetSchool();
|
||||
}
|
||||
|
||||
/* #include "prc_inc_sp_tch"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
int nSpell = GetSpellId();
|
||||
int nSpell = PRCGetSpellId();
|
||||
int nCasterLvl = PRCGetCasterLevel(oPC);
|
||||
int nBeam;
|
||||
int nDam;
|
||||
@@ -124,4 +232,4 @@ void main()
|
||||
}
|
||||
}
|
||||
PRCSetSchool();
|
||||
}
|
||||
} */
|
||||
@@ -48,7 +48,38 @@ void main()
|
||||
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
||||
|
||||
//loop
|
||||
while(GetIsObjectValid(oTarget))
|
||||
while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
nRace = MyPRCGetRacialType(oTarget);
|
||||
//Check for incorporeal undead
|
||||
if(nRace == RACIAL_TYPE_UNDEAD)
|
||||
{
|
||||
if(GetIsIncorporeal(oTarget))
|
||||
{
|
||||
// Apply effects to valid target
|
||||
effect eLink = EffectACIncrease(nBonus, AC_DEFLECTION_BONUS);
|
||||
eLink = EffectLinkEffects(eLink, EffectTurnResistanceIncrease(nBonus + 1));
|
||||
eLink = EffectLinkEffects(eLink, EffectTemporaryHitpoints(d8(1) + nBonus - 1));
|
||||
eLink = EffectLinkEffects(eLink, EffectAttackIncrease(nBonus));
|
||||
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_PARALYZED));
|
||||
|
||||
//Apply for 1 day
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(24));
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oPC, "Target creature is not incorporeal.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oPC, "Target creature is not undead.");
|
||||
}
|
||||
|
||||
// Always advance to next target
|
||||
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
/* while(GetIsObjectValid(oTarget))
|
||||
{
|
||||
nRace = MyPRCGetRacialType(oTarget);
|
||||
//Check for incorporeal undead
|
||||
@@ -74,10 +105,10 @@ void main()
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oPC, "Target creature is not undead.");
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lLoc, FALSE, OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
} */
|
||||
//SPEvilShift(oPC);
|
||||
PRCSetSchool();
|
||||
}
|
||||
@@ -51,7 +51,7 @@ void main()
|
||||
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_FIRE, 50));
|
||||
eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_STRENGTH, 6));
|
||||
eLink = EffectLinkEffects(eLink, EffectMovementSpeedDecrease(50));
|
||||
eLink = EffectLinkEffects(eLink, EffectSpellFailure(50, SPELL_SCHOOL_GENERAL));
|
||||
eLink = EffectLinkEffects(eLink, EffectSpellFailure(50, SPELL_SCHOOL_GENERAL, SPELL_FAILURE_TYPE_ARCANE));
|
||||
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_BLUR));
|
||||
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_GLOBE_INVULNERABILITY));
|
||||
eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_PROT_SHADOW_ARMOR));
|
||||
|
||||
@@ -22,7 +22,7 @@ void main()
|
||||
|
||||
//Declare major variables
|
||||
object oCaster = OBJECT_SELF;
|
||||
int nSpellID = GetSpellId();
|
||||
int nSpellID = PRCGetSpellId();
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nFNF_Effect;
|
||||
string sSummon;
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
#include "prc_inc_sp_tch"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void DoPnPAttack(object oSummon)
|
||||
void DoPnPAttack(object oSummon, int nAttackBonus)
|
||||
{
|
||||
object oTarget = GetAttackTarget(oSummon);
|
||||
if(GetIsObjectValid(oTarget)
|
||||
&& GetDistanceBetween(oTarget, oSummon) < 5.0)
|
||||
{
|
||||
int nAttackResult = PRCDoMeleeTouchAttack(oTarget);;
|
||||
int nAttackResult = PRCDoMeleeTouchAttack(oTarget, TRUE, OBJECT_SELF, nAttackBonus);
|
||||
if(nAttackResult)
|
||||
{
|
||||
//hit or critical hit
|
||||
@@ -65,7 +65,11 @@ void DoPnPAttack(object oSummon)
|
||||
// be used instead.
|
||||
// Test done. Result: It does kill them.
|
||||
int nDamage = 9999;
|
||||
if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, PRCGetSaveDC(oTarget,OBJECT_SELF), SAVING_THROW_TYPE_SPELL))
|
||||
//if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, PRCGetSaveDC(oTarget,OBJECT_SELF), SAVING_THROW_TYPE_SPELL))
|
||||
object oCaster = GetLocalObject(oSummon, "BBoD_Caster");
|
||||
int nDC = PRCGetSaveDC(oTarget, oCaster);
|
||||
|
||||
if (PRCMySavingThrow(SAVING_THROW_FORT, oTarget, nDC, SAVING_THROW_TYPE_SPELL))
|
||||
{
|
||||
nDamage = PRCGetMetaMagicDamage(DAMAGE_TYPE_MAGICAL, 1 == nAttackResult ? 5 : 10, 6);
|
||||
nDamage += SpellDamagePerDice(OBJECT_SELF, 5);
|
||||
@@ -92,7 +96,7 @@ void DoPnPAttack(object oSummon)
|
||||
}
|
||||
}
|
||||
if(GetIsObjectValid(oSummon))
|
||||
DelayCommand(6.0, DoPnPAttack(oSummon));
|
||||
DelayCommand(6.0, DoPnPAttack(oSummon, nAttackBonus));
|
||||
}
|
||||
|
||||
//Creates the weapon that the creature will be using.
|
||||
@@ -111,8 +115,6 @@ void spellsCreateItemForSummoned()
|
||||
int nClass = PRCGetLastSpellCastClass();
|
||||
int nLevel = GetLevelByClass(nClass);
|
||||
|
||||
int nStat;
|
||||
|
||||
int nCha = GetAbilityModifier(ABILITY_CHARISMA,OBJECT_SELF);
|
||||
int nInt = GetAbilityModifier(ABILITY_INTELLIGENCE,OBJECT_SELF);
|
||||
|
||||
@@ -135,18 +137,46 @@ void spellsCreateItemForSummoned()
|
||||
nStat = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Find the correct summon based on PnP switch
|
||||
string sTargetTag = GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER) ? "prc_bbod001" : "x2_s_bblade";
|
||||
if(DEBUG) DoDebug("BBoD: Looking for summon with tag: " + sTargetTag);
|
||||
|
||||
int i = 1;
|
||||
object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, OBJECT_SELF, i);
|
||||
while(GetIsObjectValid(oSummon))
|
||||
{
|
||||
oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, OBJECT_SELF, i);
|
||||
string sTag = GetTag(oSummon);
|
||||
if(DEBUG) DoDebug("BBoD: Found associate " + IntToString(i) + " with tag: " + sTag);
|
||||
|
||||
// Use case-insensitive comparison
|
||||
if(GetStringLowerCase(sTag) == GetStringLowerCase(sTargetTag))
|
||||
{
|
||||
if(DEBUG) DoDebug("BBoD: Found matching summon");
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, OBJECT_SELF, i);
|
||||
}
|
||||
|
||||
if(!GetIsObjectValid(oSummon))
|
||||
{
|
||||
if(DEBUG) DoDebug("BBoD: ERROR - No valid summon found with tag " + sTargetTag);
|
||||
return;
|
||||
}
|
||||
|
||||
SetLocalInt(oSummon, "BBoD_Level", GetLocalInt(OBJECT_SELF, "BBoD_Level"));
|
||||
SetLocalObject(oSummon, "BBoD_Caster", OBJECT_SELF);
|
||||
DeleteLocalInt(OBJECT_SELF, "BBoD_Level");
|
||||
|
||||
// Make the blade require concentration
|
||||
SetLocalInt(oSummon,"X2_L_CREATURE_NEEDS_CONCENTRATION",TRUE);
|
||||
object oWeapon;
|
||||
//Create item on the creature, epuip it and add properties.
|
||||
//Create item on the creature, equip it and add properties.
|
||||
oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oSummon);
|
||||
|
||||
if(DEBUG) DoDebug("BBoD: Weapon valid: " + IntToString(GetIsObjectValid(oWeapon)));
|
||||
|
||||
if (nStat > 0 && !GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER))
|
||||
{
|
||||
IPSetWeaponEnhancementBonus(oWeapon, nStat);
|
||||
@@ -156,34 +186,42 @@ void spellsCreateItemForSummoned()
|
||||
|
||||
if(GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER))
|
||||
{
|
||||
if(DEBUG) DoDebug("BBoD: Processing PnP version");
|
||||
|
||||
// Remove all existing properties
|
||||
itemproperty ipTest = GetFirstItemProperty(oWeapon);
|
||||
int nCount = 0;
|
||||
while(GetIsItemPropertyValid(ipTest))
|
||||
{
|
||||
nCount++;
|
||||
if(DEBUG) DoDebug("BBoD: Removing property " + IntToString(nCount));
|
||||
RemoveItemProperty(oWeapon, ipTest);
|
||||
ipTest = GetNextItemProperty(oWeapon);
|
||||
}
|
||||
if(DEBUG) DoDebug("BBoD: Removed " + IntToString(nCount) + " properties");
|
||||
|
||||
itemproperty ipNoDam = ItemPropertyNoDamage();
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ipNoDam, oWeapon);
|
||||
if(DEBUG) DoDebug("BBoD: Added NoDamage property");
|
||||
|
||||
itemproperty ipVFX = ItemPropertyVisualEffect(ITEM_VISUAL_ELECTRICAL);
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ipVFX, oWeapon);
|
||||
//store the level on the summon
|
||||
SetLocalInt(oSummon, "BBoD_Level", GetLocalInt(OBJECT_SELF, "BBoD_Level"));
|
||||
DeleteLocalInt(OBJECT_SELF, "BBoD_Level");
|
||||
if(DEBUG) DoDebug("BBoD: Added VFX property");
|
||||
|
||||
//store the level and DC on the summon
|
||||
SetLocalInt(oSummon, "BBoD_Level", GetLocalInt(OBJECT_SELF, "BBoD_Level"));
|
||||
SetLocalObject(oSummon, "BBoD_Caster", OBJECT_SELF);
|
||||
DeleteLocalInt(OBJECT_SELF, "BBoD_Level");
|
||||
//attacks are handled through a pseudoHB
|
||||
DoPnPAttack(oSummon);
|
||||
DoPnPAttack(oSummon, nStat);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||||
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
||||
/*
|
||||
Spellcast Hook Code
|
||||
Added 2003-07-07 by Georg Zoeller
|
||||
If you want to make changes to all spells,
|
||||
check x2_inc_spellhook.nss to find out more
|
||||
|
||||
*/
|
||||
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||||
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
||||
|
||||
if (!X2PreSpellCastCode())
|
||||
{
|
||||
@@ -191,13 +229,17 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
||||
return;
|
||||
}
|
||||
|
||||
// End of Spell Cast Hook
|
||||
|
||||
|
||||
//Declare major variables
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
int nDuration = PRCGetCasterLevel(OBJECT_SELF);
|
||||
effect eSummon = EffectSummonCreature("x2_s_bblade");
|
||||
effect eSummon;
|
||||
if(GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER))
|
||||
{
|
||||
eSummon = EffectSummonCreature("prc_bbod001");
|
||||
}
|
||||
else
|
||||
eSummon = EffectSummonCreature("x2_s_bblade");
|
||||
|
||||
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
|
||||
//Make metamagic check for extend
|
||||
if ((nMetaMagic & METAMAGIC_EXTEND))
|
||||
|
||||
Binary file not shown.
@@ -75709,6 +75709,15 @@ Effect: +10 to Constitution</entry>
|
||||
<entry id="211217" lang="en" sex="m">78</entry>
|
||||
<entry id="211218" lang="en" sex="m">79</entry>
|
||||
<entry id="211219" lang="en" sex="m">80</entry>
|
||||
<entry id="211229" lang="en" sex="m">## iprp_resistcost Expansion ##</entry>
|
||||
<entry id="211230" lang="en" sex="m">Resist 11 / -</entry>
|
||||
<entry id="211231" lang="en" sex="m">Resist 12 / -</entry>
|
||||
<entry id="211232" lang="en" sex="m">Resist 13 / -</entry>
|
||||
<entry id="211233" lang="en" sex="m">Resist 14 / -</entry>
|
||||
<entry id="211234" lang="en" sex="m">Resist 16 / -</entry>
|
||||
<entry id="211235" lang="en" sex="m">Resist 17 / -</entry>
|
||||
<entry id="211236" lang="en" sex="m">Resist 18 / -</entry>
|
||||
<entry id="211237" lang="en" sex="m">Resist 19 / -</entry>
|
||||
<entry id="211400" lang="en" sex="m">###_PRC8_CLASS_PACKAGES_RESERVES_###</entry>
|
||||
<entry id="211401" lang="en" sex="m">Archivist (Cloistered Scholar)</entry>
|
||||
<entry id="211402" lang="en" sex="m">(STARTING PACKAGE)
|
||||
@@ -76258,8 +76267,19 @@ Throwing Axes</entry>
|
||||
<entry id="211714" lang="en" sex="m">Truenamer4</entry>
|
||||
<entry id="211715" lang="en" sex="m">Truenamer5</entry>
|
||||
<entry id="211716" lang="en" sex="m">Truenamer5</entry>
|
||||
<entry id="211717" lang="en" sex="m">Warblade1</entry>
|
||||
<entry id="211718" lang="en" sex="m">Warblade1</entry>
|
||||
<entry id="211717" lang="en" sex="m">Warblade (Default)</entry>
|
||||
<entry id="211718" lang="en" sex="m">(STARTING PACKAGE)
|
||||
|
||||
The default package focuses on improving strength and proficiency with the longsword..
|
||||
|
||||
Equipment:
|
||||
Torch
|
||||
Scale Armor
|
||||
Large Shield
|
||||
Longsword
|
||||
Shortbow
|
||||
(3) sets of arrows
|
||||
(3) Healer's Kits</entry>
|
||||
<entry id="211719" lang="en" sex="m">Warblade2</entry>
|
||||
<entry id="211720" lang="en" sex="m">Warblade2</entry>
|
||||
<entry id="211721" lang="en" sex="m">Warblade3</entry>
|
||||
|
||||
Binary file not shown.
35
nwn/nwnprc/trunk/users/Jaysyn/artificer_infusions.csv
Normal file
35
nwn/nwnprc/trunk/users/Jaysyn/artificer_infusions.csv
Normal file
@@ -0,0 +1,35 @@
|
||||
Name,Infusion Level,Spell School,Components,Description,
|
||||
Ablative Armor,Artificer 1,Abjuration,"S, M (shard of scrap metal)","Infuses armor to absorb 5 damage from the next attack (like DR 5/-), increasing by 1 per caster level (to a maximum of 15)",
|
||||
"Armor Enhancement, Lesser",Artificer 1,Transmutation,"S, M (ointment of rare spices, 10 gp)",Grants a suit of armor or shield resistance 10 to one energy type (as with Protection from Energy) for 10 min/level when worn by a construct:contentReference,
|
||||
Energy Alteration,Artificer 1,Transmutation,An alchemical ointment formed from materials representing all five energy types and costing 50 gp.,"You alter an item that employs an energy type or grants protection from an energy type, to employ or protect against a different energy type. ",
|
||||
Enhancement Alteration,Artificer 1,Transmutation,,,
|
||||
Identify,Artificer 1,,,,
|
||||
Indisputable Possession,Artificer 1,Conjuration (Teleportation),"V, S","Creates a bond to a touched object: if it leaves your possession, you can call it back to your hand as a move action (a creature holding it gets a Will save to resist)",
|
||||
Pending Potion,Artificer 1,Transmutation,"S, M (needles from an evergreen tree)",Destroys a prepared potion to delay its effect; the potion<6F>s effect occurs up to 1 minute later when the caster speaks its name,
|
||||
"Weapon Augmentation, Personal",Artificer 1,Transmutation,"S, M (ivy leaves and berries)","Gives a weapon one special ability up to +1 bonus (such as Flaming or Keen) for 10 min/level, only uable by caster.",
|
||||
Lucky Blade,Artificer 2,Abjuration,"S, M (two-headed coin)",Imbues a weapon to let its wielder once reroll an attack roll (or critical confirmation) and must take the new result,
|
||||
Reinforce Construct,Artificer 2,Transmutation,"V, S",Grants a target construct 1d6+1 temporary hit points per level (max +10) that last until the end of the next round,
|
||||
Suppress Dragonmark,Artificer 2,Abjuration,"S, F (25 gp inversely charged Siberys shard)","An inversely attuned Siberys shard absorbs a creature<72>s dragonmark energy, preventing that target from using any dragonmark spell-like abilities for 24 hours (Will negates)",
|
||||
"Weapon Augmentation, Lesser",Artificer 2,Transmutation,"S, M (ivy leaves and berries)",Gives a weapon one special ability up to +1 bonus (such as Flaming or Keen) for 10 min/level,
|
||||
Adamantine Weapon,Artificer 3,Transmutation,"S, M (powdered adamantine)","Temporarily turns a metal weapon into adamantine for 10 min/level, letting it bypass hardness and ignore other special materials",
|
||||
"Armor Enhancement, Greater",Artificer 3,Transmutation,"S, M (ointment of rare spices, 50 gp)","Grants a suit of armor or shield one special quality (equivalent to a +1 enhancement, e.g. light fortification) for 10 min/level",
|
||||
Blast Rod,Artificer 3,Evocation,"S, F (rod to be infused)","Stores up to 1d8 per level of energy (max 10d8) in a rod, which can later be released as one or more ranged touch attack blasts",
|
||||
Construct Energy Ward,Artificer 3,Abjuration,"S, M (ointment, 100 gp)",Grants a construct resistance 10 to a specified energy type for 10 min/level (as with Protection from that energy),
|
||||
Lucky Cape,Artificer 3,Abjuration,"S, M (two-headed coin)",Imbues a cloak to let its wearer once reroll a saving throw and must take the new result,
|
||||
Spell Snare,Artificer 3,Abjuration,"S, M (Eberron dragonshard 25 gp)",Enchants a dragonshard to absorb the next spell or spell-like ability of 3rd level or lower targeting its bearer; the spell is negated and the shard is destroyed.,
|
||||
Total Repair,Artificer 3,Conjuration (Healing),"V, S",Repairs 10 points per level of damage to a construct (as if casting Repair Serious Damage multiple times),
|
||||
Censure Elementals,Artificer 4,Abjuration,"S, M (kiln-hardened mud)",Imbues a held item so that all elementals within 20 ft take 2d4+1/level damage each round while it is wielded (Will halves; max +15),
|
||||
Concurrent Infusions,Artificer 4,Transmutation,"S, M (oak twig with three forks)",Allows you to imbue an object with three chosen 1st-level infusions at once; these do not count against your daily infusion uses,
|
||||
"Construct Energy Ward, Greater",Artificer 4,Abjuration,"S, M (ointment, 100 gp)","As lesser ward, but also grants one chosen special ability (up to +5 bonus value, e.g. etherealness) to the construct",
|
||||
Repair Serious Damage,Artificer 4,Conjuration (Healing),"V, S",Restores 3d8+1 per level (max +15) hit points to a construct:contentReference[oaicite:22]{index=22}.,
|
||||
Stone Construct,Artificer 4,Transmutation,"V, S",Turns a target into a living stone construct: it gains DR 10/adamantine and other construct traits,
|
||||
Suppress Requirement,Artificer 4,Transmutation,"V, S","Removes a specific prerequisite (class, race, alignment, etc.) from an item so it functions fully without it.",
|
||||
"Weapon Augmentation, Greater",Artificer 4,Transmutation,"S, M (ointment, 200 gp)",Gives a weapon one special ability up to +5 bonus (such as Vorpal) for 10 min/level:contentReference.,
|
||||
Hardening,Artificer 5,Transmutation,"V, S",Increases an item<65>s hardness by 1 for every 2 caster levels of the infusion:contentReference,
|
||||
Iron Construct,Artificer 5,Transmutation,"V, S",Enhances a construct: it gains DR 15/adamantine and takes only half normal damage from acid and fire,
|
||||
Item Alteration,Artificer 5,Transmutation,"V, S",Changes an item<65>s granted bonus type: the item provides one type of bonus instead of another of equal value (e.g. a Strength bonus instead of a Dexterity bonus),
|
||||
Slaying Arrow,Artificer 5,Transmutation,"S, M (drop of viper blood)","Imbues an arrow or bolt keyed to a chosen creature type: it gains +1 enhancement bonus, and a creature of that type struck must make a Fortitude save or be slain (undead/construct are also affected)",
|
||||
Repair Critical Damage,Artificer 6,Conjuration (Healing),"V, S",Restores 4d8+1 per level (max +20) hit points to a construct:contentReference,
|
||||
Rusting Grasp,Artificer 6,Transmutation,"V, S",Your touch causes metal to corrode: hit metal weapons or armor take 1d6 acid damage and may be destroyed on contact,
|
||||
"Shield of Faith, Legions",Artificer 6,Abjuration,"V, S",Grants all allies within 30 feet a +3 sacred bonus to Armor Class,
|
||||
"Spell Snare, Greater",Artificer 6,Abjuration,"S, M (Eberron dragonshard 100 gp)","As Spell Snare, but absorbs spells or abilities up to 6th level",
|
||||
|
Reference in New Issue
Block a user