Changed UserType for ToB Maneuvers

Changed UserType for ToB Maneuvers.  Removed free Imp Combat Casting from ToB base classes.  Fixed typo in Arcane Trickster skill list. Fixed bad value in damagehitvisual.2da.  Fixed typos in ecl.2da. Fixed targeting bug with Profane Lifeleech. Started working on updated materials system.  Fixed overlong filenames in materialcomp.2da and prc_spells.2da.  Fixed typo in prc_effect_inc.nss.  Added Daylight Adaptation as iprp_feat.  Fixed issue where Karsite's couldn't use spell cast from magical items.  Added missing Reth Dekala entangling blade.  Added Light Fortification for Warforged.  Added Fortification for Reth Dekala.  Added moderate fortification for Warforged Charger.  Removed Imp. Fortification from races that shouldn't have it.  Fixed missing Monstrous marker feat on Yuan-Ti Pureblood.  Updated TLK.  Updated release archive.
This commit is contained in:
Jaysyn904
2024-12-13 11:33:43 -05:00
parent 152f99037e
commit 7307efab11
39 changed files with 46094 additions and 22412 deletions

View File

@@ -51,7 +51,7 @@
47 **** 0 **** **** ****
48 **** 0 **** **** ****
49 **** 0 **** **** ****
50 Drider 4 Abberation 11 6
50 Drider 4 Aberration 11 6
51 Wemic 3 MonsterousHumanoid 15 4
52 Plant **** **** **** ****
53 Brownie 4 **** **** ****
@@ -75,7 +75,7 @@
71 Hadrimoi 4 MonsterousHumanoid 15 9
72 RedspawnArcaniss 4 MonsterousHumanoid 15 8
73 Gloura 2 Fey 17 7
74 Muckdweller **** **** **** ****
74 Muckdweller 0 Humanoid 14 ****
75 Aranea 4 Shapechanger 25 3
76 Chitine 2 MonsterousHumanoid 15 2
77 SpiretopDragon 2 Dragon 18 2
@@ -247,7 +247,7 @@
243 Spirit_Folk **** **** **** ****
244 Killoren 0 **** **** ****
245 **** 0 **** **** ****
246 **** 0 **** **** ****
246 **** **** **** **** ****
247 **** **** **** **** ****
248 Poison_Dusk 1 **** **** ****
249 Dromite 1 **** **** ****

View File

@@ -1,193 +1,226 @@
2DA V2.0
FeatLabel FeatIndex List GrantedOnLevel OnMenu
0 ArmProfLgt 3 3 1 0
1 WeapProfSim_Dart 7914 3 1 0
2 WeapProfMar_Rapier 7924 3 1 0
3 WeapProfMar_Shortbow 7910 3 1 0
4 WeapProfMar_Shortsword 7901 3 1 0
5 WP_Goad 7949 3 1 0
6 WP_Heavy_Mace 7946 3 1 0
7 WP_Katar 7945 3 1 0
8 WP_Sap 7944 3 1 0
9 WP_Sai 7941 3 1 0
10 PoisonUse 960 3 1 0
11 FEAT_PRESTIGE_ASSN_DEATH_ATTACK 2930 3 1 1
12 FEAT_PRESTIGE_DEATH_ATTACK_1 455 3 1 0
13 FEAT_PRESTIGE_UNCANNY_DODGE_1 195 3 2 0
14 FEAT_PRESTIGE_POISON_SAVE_1 463 3 2 0
15 FEAT_PRESTIGE_DEATH_ATTACK_2 456 3 3 0
16 FEAT_PRESTIGE_POISON_SAVE_2 464 3 4 0
17 FEAT_PRESTIGE_DEATH_ATTACK_3 457 3 5 0
18 FEAT_PRESTIGE_UNCANNY_DODGE_2 251 3 5 0
19 FEAT_PRESTIGE_POISON_SAVE_3 465 3 6 0
20 FEAT_PRESTIGE_DEATH_ATTACK_4 458 3 7 0
21 FEAT_PRESTIGE_POISON_SAVE_4 466 3 8 0
22 FEAT_HIPS 433 3 8 1
23 FEAT_PRESTIGE_DEATH_ATTACK_5 459 3 9 0
24 FEAT_PRESTIGE_UNCANNY_DODGE_3 252 3 10 0
25 FEAT_PRESTIGE_POISON_SAVE_5 467 3 10 0
26 FEAT_EPIC_ASSASSIN 978 3 11 0
27 FEAT_PRESTIGE_DEATH_ATTACK_6 1004 3 11 0
28 FEAT_PRESTIGE_POISON_SAVE_EPIC 1070 3 12 0
29 FEAT_PRESTIGE_DEATH_ATTACK_7 1005 3 13 0
30 FEAT_PRESTIGE_DEATH_ATTACK_8 1006 3 15 0
31 FEAT_PRESTIGE_DEATH_ATTACK_9 1019 3 17 0
32 FEAT_PRESTIGE_DEATH_ATTACK_10 1020 3 19 0
33 FEAT_PRESTIGE_DEATH_ATTACK_11 1021 3 21 0
34 FEAT_PRESTIGE_DEATH_ATTACK_12 1022 3 23 0
35 FEAT_PRESTIGE_DEATH_ATTACK_13 1023 3 25 0
36 FEAT_PRESTIGE_DEATH_ATTACK_14 1024 3 27 0
37 FEAT_PRESTIGE_DEATH_ATTACK_15 1025 3 29 0
38 FEAT_PRESTIGE_DEATH_ATTACK_16 1026 3 31 0
39 FEAT_PRESTIGE_DEATH_ATTACK_17 1027 3 33 0
40 FEAT_PRESTIGE_DEATH_ATTACK_18 1028 3 35 0
41 FEAT_PRESTIGE_DEATH_ATTACK_19 1029 3 37 0
42 FEAT_PRESTIGE_DEATH_ATTACK_20 1030 3 39 0
43 TwoWeap 41 0 -1 0
44 Ambidex 1 0 -1 0
45 DefArrow 8 0 -1 0
46 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
47 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
48 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
49 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
50 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
51 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
52 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
53 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
54 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
55 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
56 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
57 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
58 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_1 834 1 -1 0
59 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_2 835 1 -1 0
60 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_3 836 1 -1 0
61 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_4 837 1 -1 0
62 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_5 838 1 -1 0
63 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_6 839 1 -1 0
64 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_7 840 1 -1 0
65 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_8 841 1 -1 0
66 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_9 842 1 -1 0
67 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_10 843 1 -1 0
68 FEAT_EPIC_REFLEXES 585 1 -1 0
69 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 -1 0
70 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 -1 0
71 FEAT_EPIC_SELF_CONCEALMENT_10 748 1 -1 0
72 FEAT_EPIC_SELF_CONCEALMENT_20 749 1 -1 0
73 FEAT_EPIC_SELF_CONCEALMENT_30 750 1 -1 0
74 FEAT_EPIC_SELF_CONCEALMENT_40 751 1 -1 0
75 FEAT_EPIC_SELF_CONCEALMENT_50 752 1 -1 0
76 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
77 FEAT_LINGERING_DAMAGE 3099 0 -1 0
78 FEAT_DRAGONFIRE_STRIKE 3949 0 -1 1
79 FEAT_EXTEND_SPELL_ABILITY 23595 0 99 1
80 FEAT_SILENT_SPELL_ABILITY 23596 0 99 1
81 FEAT_STILL_SPELL_ABILITY 23597 0 99 1
82 FEAT_EMPOWER_SPELL_ABILITY 23598 0 99 1
83 FEAT_MAXIMIZE_SPELL_ABILITY 23599 0 99 1
84 FEAT_QUICKEN_SPELL_ABILITY 23600 0 99 1
85 SuddenEmpower 2830 0 -1 1
86 SuddenExtend 2831 0 -1 1
87 SuddenMaximize 2832 0 -1 1
88 SuddenWiden 2833 0 -1 1
89 FEAT_ESCHEW_MATERIALS 2596 0 1 0
90 FEAT_PRESTIGE_SPELL_GHOSTLY_VISAGE 468 3 992 1
91 FEAT_PRESTIGE_DARKNESS 469 3 995 1
92 FEAT_PRESTIGE_INVISIBILITY_1 470 3 997 1
93 FEAT_PRESTIGE_INVISIBILITY_2 471 3 999 1
94 ####START_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
95 Assassin_ADDICTION 12608 0 99 1
96 Assassin_Silent_ADDICTION 12609 0 99 1
97 Assassin_Still_ADDICTION 12610 0 99 1
98 Assassin_ANGRY_ACHE 12611 0 99 1
99 Assassin_Exteneded_ANGRY_ACHE 12612 0 99 1
100 Assassin_Silent_ANGRY_ACHE 12613 0 99 1
101 Assassin_Still_ANGRY_ACHE 12614 0 99 1
102 Assassin_Blade_of_Blood 12615 0 99 1
103 Assassin_Empowered_Blade_of_Blood 12616 0 99 1
104 Assassin_Exteneded_Blade_of_Blood 12617 0 99 1
105 Assassin_Maximized_Blade_of_Blood 12618 0 99 1
106 Assassin_Silent_Blade_of_Blood 12619 0 99 1
107 Assassin_Still_Blade_of_Blood 12620 0 99 1
108 Assassin_Disguise_Self_Radial_Master 12621 0 99 1
109 Assassin_Exteneded_Disguise_Self_Radial_Master 12622 0 99 1
110 Assassin_Silent_Disguise_Self_Radial_Master 12623 0 99 1
111 Assassin_Still_Disguise_Self_Radial_Master 12624 0 99 1
112 Assassin_Spell_Jump 12625 0 99 1
113 Assassin_Exteneded_Spell_Jump 12626 0 99 1
114 Assassin_Silent_Spell_Jump 12627 0 99 1
115 Assassin_Still_Spell_Jump 12628 0 99 1
116 Assassin_Obscuring_Mist 12629 0 99 1
117 Assassin_Exteneded_Obscuring_Mist 12630 0 99 1
118 Assassin_Silent_Obscuring_Mist 12631 0 99 1
119 Assassin_Still_Obscuring_Mist 12632 0 99 1
120 Assassin_Sleep 12633 0 99 1
121 Assassin_Empowered_Sleep 12634 0 99 1
122 Assassin_Exteneded_Sleep 12635 0 99 1
123 Assassin_Maximized_Sleep 12636 0 99 1
124 Assassin_Silent_Sleep 12637 0 99 1
125 Assassin_Still_Sleep 12638 0 99 1
126 Assassin_True_Strike 12639 0 99 1
127 Assassin_Silent_True_Strike 12640 0 99 1
128 Assassin_Alter_Self_Radial_Master 12641 0 99 1
129 Assassin_Exteneded_Alter_Self_Radial_Master 12642 0 99 1
130 Assassin_Silent_Alter_Self_Radial_Master 12643 0 99 1
131 Assassin_Still_Alter_Self_Radial_Master 12644 0 99 1
132 Assassin_Cats_Grace 12645 0 99 1
133 Assassin_Empowered_Cats_Grace 12646 0 99 1
134 Assassin_Exteneded_Cats_Grace 12647 0 99 1
135 Assassin_Silent_Cats_Grace 12648 0 99 1
136 Assassin_Still_Cats_Grace 12649 0 99 1
137 Assassin_Darkness 12650 0 99 1
138 Assassin_Exteneded_Darkness 12651 0 99 1
139 Assassin_Silent_Darkness 12652 0 99 1
140 Assassin_Foxs_Cunning 12653 0 99 1
141 Assassin_Empowered_Foxs_Cunning 12654 0 99 1
142 Assassin_Exteneded_Foxs_Cunning 12655 0 99 1
143 Assassin_Silent_Foxs_Cunning 12656 0 99 1
144 Assassin_Still_Foxs_Cunning 12657 0 99 1
145 Assassin_IceKnife 12658 0 99 1
146 Assassin_Empowered_IceKnife 12659 0 99 1
147 Assassin_Still_IceKnife 12660 0 99 1
148 Assassin_Invisibility 12661 0 99 1
149 Assassin_Exteneded_Invisibility 12662 0 99 1
150 Assassin_Silent_Invisibility 12663 0 99 1
151 Assassin_Still_Invisibility 12664 0 99 1
152 Assassin_UndetectableAlignment 12665 0 99 1
153 Assassin_Exteneded_UndetectableAlignment 12666 0 99 1
154 Assassin_Silent_UndetectableAlignment 12667 0 99 1
155 Assassin_Still_UndetectableAlignment 12668 0 99 1
156 Assassin_DeeperDarkness 12669 0 99 1
157 Assassin_Exteneded_DeeperDarkness 12670 0 99 1
158 Assassin_Silent_DeeperDarkness 12671 0 99 1
159 Assassin_DeepSlumber 12672 0 99 1
160 Assassin_Exteneded_DeepSlumber 12673 0 99 1
161 Assassin_Silent_DeepSlumber 12674 0 99 1
162 Assassin_Still_DeepSlumber 12675 0 99 1
163 Assassin_FalseLife 12676 0 99 1
164 Assassin_Exteneded_FalseLife 12677 0 99 1
165 Assassin_Silent_FalseLife 12678 0 99 1
166 Assassin_Still_FalseLife 12679 0 99 1
167 Assassin_Magic_Circle_against_Good 12680 0 99 1
168 Assassin_Exteneded_Magic_Circle_against_Good 12681 0 99 1
169 Assassin_Silent_Magic_Circle_against_Good 12682 0 99 1
170 Assassin_Still_Magic_Circle_against_Good 12683 0 99 1
171 Assassin_MASOCHISM 12684 0 99 1
172 Assassin_Exteneded_MASOCHISM 12685 0 99 1
173 Assassin_NONDETECTION 12686 0 99 1
174 Assassin_Exteneded_NONDETECTION 12687 0 99 1
175 Assassin_Silent_NONDETECTION 12688 0 99 1
176 Assassin_Still_NONDETECTION 12689 0 99 1
177 Assassin_Clairaudience_and_Clairvoyance 12690 0 99 1
178 Assassin_CursedBlade 12691 0 99 1
179 Assassin_DimensionDoor_RadialMaster 12692 0 99 1
180 Assassin_FLESH_ARMOR 12693 0 99 1
181 Assassin_Freedom_of_Movement 12694 0 99 1
182 Assassin_GLIBNESS 12695 0 99 1
183 Assassin_HeartRipper 12696 0 99 1
184 Assassin_Improved_Invisibility 12697 0 99 1
185 Assassin_LocateCreature 12698 0 99 1
186 Assassin_Poison 12699 0 99 1
187 Assassin_STOP_HEART 12700 0 99 1
188 **** **** **** **** ****
189 ####END_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
FeatLabel FeatIndex List GrantedOnLevel OnMenu
0 ArmProfLgt 3 3 1 0
1 WeapProfSim_Dart 7914 3 1 0
2 WeapProfMar_Rapier 7924 3 1 0
3 WeapProfMar_Shortbow 7910 3 1 0
4 WeapProfMar_Shortsword 7901 3 1 0
5 WP_Goad 7949 3 1 0
6 WP_Heavy_Mace 7946 3 1 0
7 WP_Katar 7945 3 1 0
8 WP_Sap 7944 3 1 0
9 WP_Sai 7941 3 1 0
10 PoisonUse 960 3 1 0
11 FEAT_PRESTIGE_ASSN_DEATH_ATTACK 2930 3 1 1
12 FEAT_PRESTIGE_DEATH_ATTACK_1 455 3 1 0
13 FEAT_PRESTIGE_UNCANNY_DODGE_1 195 3 2 0
14 FEAT_PRESTIGE_POISON_SAVE_1 463 3 2 0
15 FEAT_PRESTIGE_DEATH_ATTACK_2 456 3 3 0
16 FEAT_PRESTIGE_POISON_SAVE_2 464 3 4 0
17 FEAT_PRESTIGE_DEATH_ATTACK_3 457 3 5 0
18 FEAT_PRESTIGE_UNCANNY_DODGE_2 251 3 5 0
19 FEAT_PRESTIGE_POISON_SAVE_3 465 3 6 0
20 FEAT_PRESTIGE_DEATH_ATTACK_4 458 3 7 0
21 FEAT_PRESTIGE_POISON_SAVE_4 466 3 8 0
22 FEAT_HIPS 433 3 8 1
23 FEAT_PRESTIGE_DEATH_ATTACK_5 459 3 9 0
24 FEAT_PRESTIGE_UNCANNY_DODGE_3 252 3 10 0
25 FEAT_PRESTIGE_POISON_SAVE_5 467 3 10 0
26 FEAT_EPIC_ASSASSIN 978 3 11 0
27 FEAT_PRESTIGE_DEATH_ATTACK_6 1004 3 11 0
28 FEAT_PRESTIGE_POISON_SAVE_EPIC 1070 3 12 0
29 FEAT_PRESTIGE_DEATH_ATTACK_7 1005 3 13 0
30 FEAT_PRESTIGE_DEATH_ATTACK_8 1006 3 15 0
31 FEAT_PRESTIGE_DEATH_ATTACK_9 1019 3 17 0
32 FEAT_PRESTIGE_DEATH_ATTACK_10 1020 3 19 0
33 FEAT_PRESTIGE_DEATH_ATTACK_11 1021 3 21 0
34 FEAT_PRESTIGE_DEATH_ATTACK_12 1022 3 23 0
35 FEAT_PRESTIGE_DEATH_ATTACK_13 1023 3 25 0
36 FEAT_PRESTIGE_DEATH_ATTACK_14 1024 3 27 0
37 FEAT_PRESTIGE_DEATH_ATTACK_15 1025 3 29 0
38 FEAT_PRESTIGE_DEATH_ATTACK_16 1026 3 31 0
39 FEAT_PRESTIGE_DEATH_ATTACK_17 1027 3 33 0
40 FEAT_PRESTIGE_DEATH_ATTACK_18 1028 3 35 0
41 FEAT_PRESTIGE_DEATH_ATTACK_19 1029 3 37 0
42 FEAT_PRESTIGE_DEATH_ATTACK_20 1030 3 39 0
43 TwoWeap 41 0 -1 0
44 Ambidex 1 0 -1 0
45 DefArrow 8 0 -1 0
46 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
47 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
48 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
49 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
50 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
51 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
52 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
53 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
54 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
55 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
56 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
57 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
58 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_1 834 1 -1 0
59 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_2 835 1 -1 0
60 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_3 836 1 -1 0
61 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_4 837 1 -1 0
62 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_5 838 1 -1 0
63 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_6 839 1 -1 0
64 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_7 840 1 -1 0
65 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_8 841 1 -1 0
66 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_9 842 1 -1 0
67 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_10 843 1 -1 0
68 FEAT_EPIC_REFLEXES 585 1 -1 0
69 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 -1 0
70 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 -1 0
71 FEAT_EPIC_SELF_CONCEALMENT_10 748 1 -1 0
72 FEAT_EPIC_SELF_CONCEALMENT_20 749 1 -1 0
73 FEAT_EPIC_SELF_CONCEALMENT_30 750 1 -1 0
74 FEAT_EPIC_SELF_CONCEALMENT_40 751 1 -1 0
75 FEAT_EPIC_SELF_CONCEALMENT_50 752 1 -1 0
76 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
77 FEAT_LINGERING_DAMAGE 3099 0 -1 0
78 FEAT_DRAGONFIRE_STRIKE 3949 0 -1 1
79 FEAT_EXTEND_SPELL_ABILITY 23595 0 99 1
80 FEAT_SILENT_SPELL_ABILITY 23596 0 99 1
81 FEAT_STILL_SPELL_ABILITY 23597 0 99 1
82 FEAT_EMPOWER_SPELL_ABILITY 23598 0 99 1
83 FEAT_MAXIMIZE_SPELL_ABILITY 23599 0 99 1
84 FEAT_QUICKEN_SPELL_ABILITY 23600 0 99 1
85 SuddenEmpower 2830 0 -1 1
86 SuddenExtend 2831 0 -1 1
87 SuddenMaximize 2832 0 -1 1
88 SuddenWiden 2833 0 -1 1
89 FEAT_ESCHEW_MATERIALS 2596 0 1 0
90 FEAT_PRESTIGE_SPELL_GHOSTLY_VISAGE 468 3 992 1
91 FEAT_PRESTIGE_DARKNESS 469 3 995 1
92 FEAT_PRESTIGE_INVISIBILITY_1 470 3 997 1
93 FEAT_PRESTIGE_INVISIBILITY_2 471 3 999 1
94 ####START_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
95 Assassin_ADDICTION 10593 0 99 1
96 Assassin_ANGRY_ACHE 10594 0 99 1
97 Assassin_Blade_of_Blood 10595 0 99 1
98 Assassin_Disguise_Self_Radial_Master 10596 0 99 1
99 Assassin_Spell_Jump 10597 0 99 1
100 Assassin_Obscuring_Mist 10598 0 99 1
101 Assassin_Sleep 10599 0 99 1
102 Assassin_True_Strike 10600 0 99 1
103 Assassin_Alter_Self_Radial_Master 10601 0 99 1
104 Assassin_Cats_Grace 10602 0 99 1
105 Assassin_Darkness 10603 0 99 1
106 Assassin_Foxs_Cunning 10604 0 99 1
107 Assassin_IceKnife 10605 0 99 1
108 Assassin_Invisibility 10606 0 99 1
109 Assassin_UndetectableAlignment 10607 0 99 1
110 Assassin_DeeperDarkness 10608 0 99 1
111 Assassin_DeepSlumber 10609 0 99 1
112 Assassin_FalseLife 10610 0 99 1
113 Assassin_Magic_Circle_against_Good 10611 0 99 1
114 Assassin_MASOCHISM 10612 0 99 1
115 Assassin_NONDETECTION 10613 0 99 1
116 Assassin_Clairaudience_and_Clairvoyance 10614 0 99 1
117 Assassin_CursedBlade 10615 0 99 1
118 Assassin_DimensionDoor_RadialMaster 10616 0 99 1
119 Assassin_FLESH_ARMOR 10617 0 99 1
120 Assassin_Freedom_of_Movement 10618 0 99 1
121 Assassin_GLIBNESS 10619 0 99 1
122 Assassin_HeartRipper 10620 0 99 1
123 Assassin_Improved_Invisibility 10621 0 99 1
124 Assassin_LocateCreature 10622 0 99 1
125 Assassin_Poison 10623 0 99 1
126 Assassin_STOP_HEART 10624 0 99 1
127 Assassin_Still_SEETHING_EYEBANE 10600 0 99 1
128 Assassin_ADDICTION 10601 0 99 1
129 Assassin_Silent_ADDICTION 10602 0 99 1
130 Assassin_Still_ADDICTION 10603 0 99 1
131 Assassin_Cats_Grace 10604 0 99 1
132 Assassin_Empowered_Cats_Grace 10605 0 99 1
133 Assassin_Exteneded_Cats_Grace 10606 0 99 1
134 Assassin_Silent_Cats_Grace 10607 0 99 1
135 Assassin_Still_Cats_Grace 10608 0 99 1
136 Assassin_Darkness 10609 0 99 1
137 Assassin_Exteneded_Darkness 10610 0 99 1
138 Assassin_Silent_Darkness 10611 0 99 1
139 Assassin_Foxs_Cunning 10612 0 99 1
140 Assassin_Empowered_Foxs_Cunning 10613 0 99 1
141 Assassin_Exteneded_Foxs_Cunning 10614 0 99 1
142 Assassin_Silent_Foxs_Cunning 10615 0 99 1
143 Assassin_Still_Foxs_Cunning 10616 0 99 1
144 Assassin_Invisibility 10617 0 99 1
145 Assassin_Exteneded_Invisibility 10618 0 99 1
146 Assassin_Silent_Invisibility 10619 0 99 1
147 Assassin_Still_Invisibility 10620 0 99 1
148 Assassin_UndetectableAlignment 10621 0 99 1
149 Assassin_Exteneded_UndetectableAlignment 10622 0 99 1
150 Assassin_Silent_UndetectableAlignment 10623 0 99 1
151 Assassin_Still_UndetectableAlignment 10624 0 99 1
152 Assassin_Alter_Self_Radial_Master 10625 0 99 1
153 Assassin_Exteneded_Alter_Self_Radial_Master 10626 0 99 1
154 Assassin_Silent_Alter_Self_Radial_Master 10627 0 99 1
155 Assassin_Still_Alter_Self_Radial_Master 10628 0 99 1
156 Assassin_LAHMS_FINGER_DARTS 10629 0 99 1
157 Assassin_Silent_LAHMS_FINGER_DARTS 10630 0 99 1
158 Assassin_Still_LAHMS_FINGER_DARTS 10631 0 99 1
159 Assassin_IceKnife 10632 0 99 1
160 Assassin_Empowered_IceKnife 10633 0 99 1
161 Assassin_Still_IceKnife 10634 0 99 1
162 Assassin_DeeperDarkness 10635 0 99 1
163 Assassin_Exteneded_DeeperDarkness 10636 0 99 1
164 Assassin_Silent_DeeperDarkness 10637 0 99 1
165 Assassin_Magic_Circle_against_Good 10638 0 99 1
166 Assassin_Exteneded_Magic_Circle_against_Good 10639 0 99 1
167 Assassin_Silent_Magic_Circle_against_Good 10640 0 99 1
168 Assassin_Still_Magic_Circle_against_Good 10641 0 99 1
169 Assassin_NONDETECTION 10642 0 99 1
170 Assassin_Exteneded_NONDETECTION 10643 0 99 1
171 Assassin_Silent_NONDETECTION 10644 0 99 1
172 Assassin_Still_NONDETECTION 10645 0 99 1
173 Assassin_DeepSlumber 10646 0 99 1
174 Assassin_Exteneded_DeepSlumber 10647 0 99 1
175 Assassin_Silent_DeepSlumber 10648 0 99 1
176 Assassin_Still_DeepSlumber 10649 0 99 1
177 Assassin_FalseLife 10650 0 99 1
178 Assassin_Exteneded_FalseLife 10651 0 99 1
179 Assassin_Silent_FalseLife 10652 0 99 1
180 Assassin_Still_FalseLife 10653 0 99 1
181 Assassin_RED_FESTER 10654 0 99 1
182 Assassin_Silent_RED_FESTER 10655 0 99 1
183 Assassin_Still_RED_FESTER 10656 0 99 1
184 Assassin_ROTTING_CURSE_OF_URFESTRA 10657 0 99 1
185 Assassin_Silent_ROTTING_CURSE_OF_URFESTRA 10658 0 99 1
186 Assassin_Still_ROTTING_CURSE_OF_URFESTRA 10659 0 99 1
187 Assassin_TOUCH_OF_JUIBLEX 10660 0 99 1
188 Assassin_Silent_TOUCH_OF_JUIBLEX 10661 0 99 1
189 Assassin_Still_TOUCH_OF_JUIBLEX 10662 0 99 1
190 Assassin_MASOCHISM 10663 0 99 1
191 Assassin_Exteneded_MASOCHISM 10664 0 99 1
192 Assassin_DimensionDoor_RadialMaster 10665 0 99 1
193 Assassin_Freedom_of_Movement 10666 0 99 1
194 Assassin_Improved_Invisibility 10667 0 99 1
195 Assassin_Poison 10668 0 99 1
196 Assassin_Clairaudience_and_Clairvoyance 10669 0 99 1
197 Assassin_GLIBNESS 10670 0 99 1
198 Assassin_LocateCreature 10671 0 99 1
199 Assassin_CursedBlade 10672 0 99 1
200 Assassin_ABSORB_STRENGTH 10673 0 99 1
201 Assassin_FLESH_ARMOR 10674 0 99 1
202 Assassin_STOP_HEART 10675 0 99 1
203 Assassin_HeartRipper 10676 0 99 1
204 **** **** **** **** ****
205 **** **** **** **** ****
206 **** **** **** **** ****
207 **** **** **** **** ****
208 **** **** **** **** ****
209 **** **** **** **** ****
210 **** **** **** **** ****
211 **** **** **** **** ****
212 **** **** **** **** ****
213 **** **** **** **** ****
214 **** **** **** **** ****
215 **** **** **** **** ****
216 **** **** **** **** ****
217 **** **** **** **** ****
218 **** **** **** **** ****
219 **** **** **** **** ****
220 **** **** **** **** ****
221 **** **** **** **** ****
222 ####END_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -28,7 +28,7 @@
24 Jump 28 1
25 TrueSpeak 29 1
26 Sense_Motive 30 1
27 Balence 32 0
27 Balance 32 0
28 IaijutsuFocus 33 0
29 CraftAlchemy 34 1
30 CraftPoison 35 1

View File

@@ -10,7 +10,7 @@
6 Divine 289 ****
7 Electrical 282 ****
8 Fire 280 ****
9 Negative 282 ****
9 Negative 288 ****
10 Positive 289 ****
11 Sonic 284 ****
12 Base **** ****

View File

@@ -376,7 +376,7 @@
372 Aura_of_Vitality 321 1 1 0 7 0
373 War_Cry 322 1 1 0 4 0
374 Regenerate 323 1 1 0 7 0
375 Evards_Black_Tentacles 324 1 0 0 4 0
375 Evards_Black_Tentacles 324 1 1 0 4 0
376 Legend_Lore 326 1 1 0 5 0
377 Find_Traps 327 0 0 0 3 0
378 Summon_Mephit **** 1 1 1 5 0

View File

@@ -24027,7 +24027,7 @@
24023 BlazingBerserker 16847321 16847322 ife_X1ResFir **** **** **** **** **** **** **** **** 293 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MAGICAL_ARTISAN_CRAFT_SKULL_TALISMAN **** 0 **** **** **** **** **** 1
24024 ScorpionsResolve 16847323 16847324 ife_X2GWShp3 **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MAGICAL_ARTISAN_CRAFT_SKULL_TALISMAN **** 0 **** **** **** **** **** 1
24025 DauntingPresence 16847361 16847362 ife_X2SelfConc1 1 **** **** **** **** **** 13 **** **** **** **** **** 1 **** **** 3831 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DAUNTING_PRESENCE **** 1 **** **** **** **** **** 1
24026 ProfaneLifeLeech 16847363 16847364 ife_prfnlflch **** **** **** **** **** **** **** **** 294 **** **** **** 1 **** **** 3832 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_PROFANE_LIFELEECH 6 1 **** **** **** **** 0 1
24026 ProfaneLifeLeech 16847363 16847364 ife_prfnlflch **** **** **** **** **** **** **** **** 294 **** **** **** 1 **** **** 3832 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_PROFANE_LIFELEECH 6 0 **** **** **** **** 0 1
24027 SacredVitality 16847365 16847366 ife_sac_vital **** **** **** **** **** **** **** **** 294 **** **** **** 1 **** **** 3833 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_SACRED_VITALITY **** 0 **** **** **** **** **** 1
24028 SacredVengeance 16847367 16847368 ife_sac_veng **** **** **** **** **** **** **** **** 294 **** **** **** 1 **** **** 3834 **** **** **** **** 1 **** **** **** **** **** **** **** **** **** FEAT_SACRED_VENGEANCE **** 0 **** **** **** **** **** 0
24029 DeformityEyes 16847369 16847370 ife_dfrm_eyes **** **** **** **** **** **** **** **** 4408 **** **** **** 1 **** **** 3835 **** **** 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_DEFORM_EYES **** 0 **** **** **** **** **** 1

View File

@@ -0,0 +1,146 @@
2DA V2.0
Label Name
0 Unknown 111775
1 Adamantine 111776
2 Brass 111777
3 Bronze 111778
4 Carbon 111779
5 Cold_Iron 111780
6 Copper 111781
7 Darksteel 111782
8 Gold 111783
9 Iron 111784
10 Lead 111785
11 Mithral 111786
12 Platinum 111787
13 Silver 111788
14 Silver_Alchemical 111789
15 Steel 111790
16 Bone 111791
17 Hide 111792
18 Hide_Salamander 111793
19 Hide_Umber_Hulk 111794
20 Hide_Wyvern 111795
21 Hide_Dragon_Black 111796
22 Hide_Dragon_Blue 111797
23 Hide_Dragon_Brass 111798
24 Hide_Dragon_Bronze 111799
25 Hide_Dragon_Copper 111800
26 Hide_Dragon_Gold 111801
27 Hide_Dragon_Green 111802
28 Hide_Dragon_Red 111803
29 Hide_Dragon_Silver 111804
30 Hide_Dragon_White 111805
31 Leather 111806
32 Scale 111807
33 Cloth 111808
34 Cotton 111809
35 Silk 111810
36 Wool 111811
37 Wood 111812
38 Wood_Ironwood 111813
39 Wood_Duskwood 111814
40 Wood_Darkwood_Zalantar 111815
41 Wood_Ash 111816
42 Wood_Yew 111817
43 Wood_Oak 111818
44 Wood_Pine 111819
45 Wood_Cedar 111820
46 Elemental 111821
47 Elemental_Air 111822
48 Elemental_Earth 111823
49 Elemental_Fire 111824
50 Elemental_Water 111825
51 Gem 111826
52 Gem_Alexandrite 111827
53 Gem_Amethyst 111828
54 Gem_Aventurine 111829
55 Gem_Beljuril 111830
56 Gem_Bloodstone 111831
57 Gem_Blue_Diamond 111832
58 Gem_Canary_Diamond 111833
59 Gem_Diamond 111834
60 Gem_Emerald 111835
61 Gem_Fire_Agate 111836
62 Gem_Fire_Opal 111837
63 Gem_Flourspar 111838
64 Gem_Garnet 111839
65 Gem_Greenstone 111840
66 Gem_Jacinth 111841
67 Gem_Kings_Tear 111842
68 Gem_Malachite 111843
69 Gem_Obsidian 111844
70 Gem_Phenalope 111845
71 Gem_Rogue_Stone 111846
72 Gem_Ruby 111847
73 Gem_Sapphire 111848
74 Gem_Star_Sapphire 111849
75 Gem_Topaz 111850
76 Gem_Crystal_Deep 111851
77 Gem_Crystal_Mundane 111852
78 USER ****
79 USER ****
80 USER ****
81 USER ****
82 USER ****
83 USER ****
84 USER ****
85 USER ****
86 USER ****
87 USER ****
88 USER ****
89 USER ****
90 USER ****
91 USER ****
92 USER ****
93 USER ****
94 USER ****
95 USER ****
96 USER ****
97 USER ****
98 USER ****
99 USER ****
100 Paper 16977218
101 Glass 16977219
102 Ice 16977220
103 "Rope, Hemp" 16977221
104 Stone 16977222
105 Deep_Coral 16977223
106 Wood_Living 16977224
107 Obdurium 16977225
108 Wood_Bronze 16977226
109 Byeshk 16977227
110 Calomel 16977228
111 Crysteel_Riedran 16977229
112 Densewood 16977230
113 Dragonshard 16977231
114 Iron_Flametouched 16977232
115 Livewood 16977233
116 Mournlode_Purple 16977234
117 Soarwood 16977235
118 Targath 16977236
119 Astral_Driftmetal 16977237
120 Atandur 16977238
121 Blended_Quartz 16977239
122 Chitin 16977240
123 Darkleaf_Elven 16977241
124 Dlarun 16977242
125 Dustwood 16977243
126 Elukian_Clay 16977244
127 Entropium 16977245
128 Greensteel_Baatorian 16977246
129 Hizagkuur 16977247
130 Iron_Fever 16977248
131 Iron_Gehennan_Morghuth 16977249
132 Leafweave 16977250
133 Living_Metal 16977251
134 Mindsteel_Urdrukar 16977252
135 Truesteel_Solanian 16977253
136 Wood_Agafari 16977254
137 Crystal_Dasl 16977255
138 Drake_Ivory 16977256
139 Rope_Giant_Hair 16977257
140 Obsidian 16977258
141 Bamboo 16977259
142 Pottery 16977260

View File

@@ -19,7 +19,7 @@
15 Feeblemind 55 **** mc_minerals Minerals **** **** **** **** **** ****
16 Fireball 58 **** mc_batguano Bat_Guano mc_sulfur Sulfur **** **** **** ****
17 Flame_Arrow 59 **** mc_oil Oil mc_flint Flint **** **** **** ****
18 Freedom_of_Movement 62 **** mc_pieceofleathr Leather_Thong **** **** **** **** **** ****
18 Freedom_of_Movement 62 **** mc_pieceofleathr Leather_Thong **** **** **** **** **** ****
19 Ghoul_Touch 64 **** mc_ghoulclothing Ghoul_Clothing **** **** **** **** **** ****
20 Globe_of_Invulnerability 65 **** mc_crystalbead Crystal_Bead **** **** **** **** **** ****
21 Grease 66 **** mc_porkrind Pork_Rind **** **** **** **** **** ****
@@ -119,7 +119,7 @@
115 Repulsion 1853 50 mc_ironbarsarray Iron_Bars_And_Two_Canine_Statuettes **** **** **** **** **** ****
116 True_Resurrection 1855 25000 X1_WMGRENADE005 Holy_Water mc_diamond Diamonds **** **** **** ****
117 Foresight 1856 **** mc_hummingbirdf Hummingbirds_Feather **** **** **** **** **** ****
118 JUMP 2070 **** mc_grasshopprhlg Grasshoppers_Hind_Leg **** **** **** **** **** ****
118 JUMP 2070 **** mc_grasshopprhlg Grasshoppers_Hind_Leg **** **** **** **** **** ****
119 IRON_BODY 2071 **** mc_irongolempart Piece_of_An_Iron_Golem **** **** **** **** **** ****
120 ENLARGE_PERSON 2072 **** mc_powderediron Powdered_Iron **** **** **** **** **** ****
121 MASS_ENLARGE_PERSON 2073 **** mc_powderediron Powdered_Iron **** **** **** **** **** ****
@@ -148,7 +148,7 @@
144 THOUSAND_NEEDLES 2587 **** mc_needles Needles **** **** **** **** **** ****
145 TONGUE_OF_BAALZEBUL 2588 **** mc_tongue Tongue **** **** **** **** **** ****
146 UNLIVING_WEAPON 2591 **** mc_greenliquid Bile mc_sulfur Sulfur **** **** **** ****
147 UTTERDARK 2592 **** mc_blckstickbld A_Black_Stick_Smeared_With_Blood **** **** **** **** **** ****
147 UTTERDARK 2592 **** mc_blckstickbld A_Black_Stick_Smeared_With_Blood **** **** **** **** **** ****
148 WAVE_OF_GRIEF 2593 **** mc_vialofjelly Ochre_Jelly **** **** **** **** **** ****
149 WAVE_OF_PAIN 2594 **** mc_needles Needle **** **** **** **** **** ****
150 DIAMOND_SPRAY 2610 100 mc_diamonddust Diamond_Dust **** **** **** **** **** ****
@@ -175,8 +175,8 @@
171 Mass_Foxs_Cunning 3123 **** mc_foxhair Fox_Hair **** **** **** **** **** ****
172 Mass_Owls_Wisdom 3124 **** mc_owlfeather Owl_Feather **** **** **** **** **** ****
173 Glitterdust 3142 **** mc_groundmica Ground_Mica **** **** **** **** **** ****
174 Curse_of_Impending_Blades 3153 **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
175 Legions_Curse_of_Impending_Blades 3154 **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
174 Curse_of_Impending_Blades 3153 **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
175 Legions_Curse_of_Impending_Blades 3154 **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
176 Fireburst 3158 **** mc_sulfur Sulfur **** **** **** **** **** ****
177 Greater_Fireburst 3159 **** mc_sulfur Sulfur **** **** **** **** **** ****
178 Legions_Shield_of_Faith 3163 **** mc_holyparchment Holy_Parchment **** **** **** **** **** ****

View File

@@ -0,0 +1,146 @@
2DA V2.0
Label Name MaterialTypeName MaterialType Hardness HitPointsPerInch CONSTANT
0 Unknown 111775 Unknown 0 100 100 IP_MATERIAL_UNKNOWN
1 Adamantine 111776 metal 8 20 40 IP_MATERIAL_ADAMANTINE
2 Brass 111777 metal 8 10 20 IP_MATERIAL_BRASS
3 Bronze 111778 "metal " 8 9 20 IP_MATERIAL_BRONZE
4 Carbon 111779 stone 11 8 15 IP_MATERIAL_CARBON
5 Iron_Cold 111780 metal 8 10 30 IP_MATERIAL_COLD_IRON
6 Copper 111781 "metal " 8 10 30 IP_MATERIAL_COPPER
7 Darksteel 111782 metal 8 10 30 IP_MATERIAL_DARKSTEEL
8 Gold 111783 "metal " 8 10 30 IP_MATERIAL_GOLD
9 Iron 111784 "metal " 8 10 30 IP_MATERIAL_IRON
10 Lead 111785 "metal " 8 8 20 IP_MATERIAL_LEAD
11 Mithral 111786 metal 8 15 30 IP_MATERIAL_MITHRAL
12 Platinum 111787 "metal " 8 10 30 IP_MATERIAL_PLATINUM
13 Silver 111788 "metal " 8 10 30 IP_MATERIAL_SILVER
14 Silver_Alchemical 111789 metal 8 8 10 IP_MATERIAL_SILVER_ALCHEMICAL
15 Steel 111790 metal 8 10 30 IP_MATERIAL_STEEL
16 Bone 111791 bone 1 6 10 IP_MATERIAL_BONE
17 Hide 111792 leather 6 2 5 IP_MATERIAL_HIDE
18 Hide_Salamander 111793 leather 6 7 7 IP_MATERIAL_HIDE_SALAMANDER
19 Hide_Umber_Hulk 111794 leather 6 7 7 IP_MATERIAL_HIDE_UMBER_HULK
20 Hide_Wyvern 111795 leather 6 7 7 IP_MATERIAL_HIDE_WYVERN
21 Hide_Dragon_Black 111796 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_BLACK
22 Hide_Dragon_Blue 111797 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_BLUE
23 Hide_Dragon_Brass 111798 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_BRASS
24 Hide_Dragon_Bronze 111799 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_BRONZE
25 Hide_Dragon_Copper 111800 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_COPPER
26 Hide_Dragon_Gold 111801 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_GOLD
27 Hide_Dragon_Green 111802 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_GREEN
28 Hide_Dragon_Red 111803 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_RED
29 Hide_Dragon_Silver 111804 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_SILVER
30 Hide_Dragon_White 111805 leather 6 10 10 IP_MATERIAL_HIDE_DRAGON_WHITE
31 Leather 111806 leather 6 2 5 IP_MATERIAL_LEATHER
32 Scale 111807 bone 2 5 10 IP_MATERIAL_SCALE
33 Cloth 111808 cloth 3 0 2 IP_MATERIAL_CLOTH
34 Cotton 111809 fiber 5 1 1 IP_MATERIAL_COTTON
35 Silk 111810 fiber 5 3 3 IP_MATERIAL_SILK
36 Wool 111811 fiber 5 1 1 IP_MATERIAL_WOOL
37 Wood 111812 wood 12 5 10 IP_MATERIAL_WOOD
38 Wood_Ironwood 111813 wood 12 10 20 IP_MATERIAL_WOOD_IRONWOOD
39 Wood_Duskwood 111814 wood 12 10 20 IP_MATERIAL_WOOD_DUSKWOOD
40 Wood_Darkwood_Zalantar 111815 wood 12 5 10 IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR
41 Wood_Ash 111816 wood 12 5 10 IP_MATERIAL_WOOD_ASH
42 Wood_Yew 111817 wood 12 5 10 IP_MATERIAL_WOOD_YEW
43 Wood_Oak 111818 wood 12 5 10 IP_MATERIAL_WOOD_OAK
44 Wood_Pine 111819 wood 12 5 10 IP_MATERIAL_WOOD_PINE
45 Wood_Cedar 111820 wood 12 5 10 IP_MATERIAL_WOOD_CEDA
46 Elemental 111821 stone 11 9 17 IP_MATERIAL_ELEMENTAL
47 Elemental_Air 111822 stone 11 9 17 IP_MATERIAL_ELEMENTAL_AIR
48 Elemental_Earth 111823 stone 11 9 17 IP_MATERIAL_ELEMENTAL_EARTH
49 Elemental_Fire 111824 stone 11 9 17 IP_MATERIAL_ELEMENTAL_FIRE
50 Elemental_Water 111825 stone 11 9 17 IP_MATERIAL_ELEMENTAL_WATER
51 Gem 111826 crystal 4 8 20 IP_MATERIAL_GEM
52 Gem_Alexandrite 111827 crystal 4 8 20 IP_MATERIAL_GEM_ALEXANDRITE
53 Gem_Amethyst 111828 crystal 4 8 20 IP_MATERIAL_GEM_AMETHYST
54 Gem_Aventurine 111829 crystal 4 8 20 IP_MATERIAL_GEM_AVENTURINE
55 Gem_Beljuril 111830 crystal 4 8 20 IP_MATERIAL_GEM_BELJURIL
56 Gem_Bloodstone 111831 crystal 4 8 20 IP_MATERIAL_GEM_BLOODSTONE
57 Gem_Blue_Diamond 111832 crystal 4 8 20 IP_MATERIAL_GEM_BLUE_DIAMOND
58 Gem_Canary_Diamond 111833 crystal 4 8 20 IP_MATERIAL_GEM_CANARY_DIAMOND
59 Gem_Diamond 111834 crystal 4 8 20 IP_MATERIAL_GEM_DIAMOND
60 Gem_Emerald 111835 crystal 4 8 20 IP_MATERIAL_GEM_EMERALD
61 Gem_Fire_Agate 111836 crystal 4 8 20 IP_MATERIAL_GEM_FIRE_AGATE
62 Gem_Fire_Opal 111837 crystal 4 8 20 IP_MATERIAL_GEM_FIRE_OPAL
63 Gem_Flourspar 111838 crystal 4 8 20 IP_MATERIAL_GEM_FLUORSPAR
64 Gem_Garnet 111839 crystal 4 8 20 IP_MATERIAL_GEM_GARNET
65 Gem_Greenstone 111840 crystal 4 8 20 IP_MATERIAL_GEM_GREENSTONE
66 Gem_Jacinth 111841 crystal 4 8 20 IP_MATERIAL_GEM_JACINTH
67 Gem_Kings_Tear 111842 crystal 4 8 20 IP_MATERIAL_GEM_KINGS_TEAR
68 Gem_Malachite 111843 crystal 4 8 20 IP_MATERIAL_GEM_MALACHITE
69 Gem_Obsidian 111844 crystal 4 8 20 IP_MATERIAL_GEM_OBSIDIAN
70 Gem_Phenalope 111845 crystal 4 8 20 IP_MATERIAL_GEM_PHENALOPE
71 Gem_Rogue_Stone 111846 crystal 4 8 20 IP_MATERIAL_GEM_ROGUE_STONE
72 Gem_Ruby 111847 crystal 4 8 20 IP_MATERIAL_GEM_RUBY
73 Gem_Sapphire 111848 crystal 4 8 20 IP_MATERIAL_GEM_SAPPHIRE
74 Gem_Star_Sapphire 111849 crystal 4 8 20 IP_MATERIAL_GEM_STAR_SAPPHIRE
75 Gem_Topaz 111850 crystal 4 8 20 IP_MATERIAL_GEM_TOPAZ
76 Gem_Crystal_Deep 111851 crystal 4 10 30 IP_MATERIAL_GEM_CRYSTAL_DEEP
77 Gem_Crystal_Mundane 111852 crystal 4 8 25 IP_MATERIAL_GEM_CRYSTAL_MUNDANE
78 USER **** **** **** **** **** ****
79 USER **** **** **** **** **** ****
80 USER **** **** **** **** **** ****
81 USER **** **** **** **** **** ****
82 USER **** **** **** **** **** ****
83 USER **** **** **** **** **** ****
84 USER **** **** **** **** **** ****
85 USER **** **** **** **** **** ****
86 USER **** **** **** **** **** ****
87 USER **** **** **** **** **** ****
88 USER **** **** **** **** **** ****
89 USER **** **** **** **** **** ****
90 USER **** **** **** **** **** ****
91 USER **** **** **** **** **** ****
92 USER **** **** **** **** **** ****
93 USER **** **** **** **** **** ****
94 USER **** **** **** **** **** ****
95 USER **** **** **** **** **** ****
96 USER **** **** **** **** **** ****
97 USER **** **** **** **** **** ****
98 USER **** **** **** **** **** ****
99 USER **** **** **** **** **** ****
100 Paper 16977218 paper 8 0 2 IP_MATERIAL_PAPER
101 Glass 16977219 crystal 4 1 1 IP_MATERIAL_GLASS
102 Ice 16977220 crystal 4 0 3 IP_MATERIAL_ICE
103 "Rope, Hemp" 16977221 rope 9 0 2 IP_MATERIAL_ROPE_HEMP
104 Stone 16977222 stone 11 8 15 IP_MATERIAL_STONE
105 Deep_Coral 16977223 stone 11 8 15 IP_MATERIAL_DEEP_CORAL
106 Wood_Living 16977224 wood 12 5 10 IP_MATERIAL_WOOD_LIVING
107 Obdurium 16977225 "metal " 8 30 60 IP_MATERIAL_OBDURIUM
108 Wood_Bronze 16977226 wood 12 10 20 IP_MATERIAL_WOOD_BRONZE
109 Byeshk 16977227 metal 8 17 35 IP_MATERIAL_BYESHK
110 Calomel 16977228 metal 8 10 30 IP_MATERIAL_CALOMEL
111 Crysteel_Riedran 16977229 metal 8 10 20 IP_MATERIAL_CRYSTEEL_RIEDRAN
112 Densewood 16977230 wood 12 8 20 IP_MATERIAL_DENSEWOOD
113 Dragonshard 16977231 stone 11 8 20 IP_MATERIAL_DRAGONSHARD
114 Iron_Flametouched 16977232 metal 8 10 30 IP_MATERIAL_IRON_FLAMETOUCHED
115 Livewood 16977233 wood 12 6 10 IP_MATERIAL_LIVEWOOD
116 Mournlode_Purple 16977234 metal 8 10 30 IP_MATERIAL_MOURNLODE_PURPLE
117 Soarwood 16977235 wood 12 5 10 IP_MATERIAL_SOARWOOD
118 Targath 16977236 metal 8 9 20 IP_MATERIAL_TARGATH
119 Astral_Driftmetal 16977237 metal 8 12 30 IP_MATERIAL_ASTRAL_DRIFTMETAL
120 Atandur 16977238 metal 8 12 30 IP_MATERIAL_ATANDUR
121 Blended_Quartz 16977239 metal 8 8 15 IP_MATERIAL_BLENDED_QUARTZ
122 Chitin 16977240 bone 1 5 10 IP_MATERIAL_CHITIN
123 Darkleaf_Elven 16977241 wood 12 5 10 IP_MATERIAL_DARKLEAF_ELVEN
124 Dlarun 16977242 metal 8 10 30 IP_MATERIAL_DLARUN
125 Dustwood 16977243 wood 12 10 30 IP_MATERIAL_DUSTWOOD
126 Elukian_Clay 16977244 ceramic 2 10 30 IP_MATERIAL_ELUKIAN_CLAY
127 Entropium 16977245 metal 8 15 40 IP_MATERIAL_ENTROPIUM
128 Greensteel_Baatorian 16977246 metal 8 2 30 IP_MATERIAL_GREENSTEEL_BAATORIAN
129 Hizagkuur 16977247 metal 8 10 30 IP_MATERIAL_HIZAGKUUR
130 Iron_Fever 16977248 metal 8 12 30 IP_MATERIAL_IRON_FEVER
131 Iron_Gehennan_Morghuth 16977249 metal 8 9 20 IP_MATERIAL_IRON_GEHENNAN_MORGHUTH
132 Leafweave 16977250 leather 6 2 5 IP_MATERIAL_LEAFWEAVE
133 Living_Metal 16977251 metal 8 12 30 IP_MATERIAL_LIVING_METAL
134 Mindsteel_Urdrukar 16977252 metal 8 13 30 IP_MATERIAL_MINDSTEEL_URDRUKAR
135 Truesteel_Solanian 16977253 metal 8 11 25 IP_MATERIAL_TRUESTEEL_SOLANIAN
136 Wood_Agafari 16977254 wood 12 5 10 IP_MATERIAL_WOOD_AGAFARI
137 Crystal_Dasl 16977255 crystal 4 7 15 IP_MATERIAL_CRYSTAL_DASL
138 Drake_Ivory 16977256 bone 1 10 20 IP_MATERIAL_DRAKE_IVORY
139 Rope_Giant_Hair 16977257 rope 9 5 2 IP_MATERIAL_ROPE_GIANT_HAIR
140 Obsidian 16977258 crystal 4 8 12 IP_MATERIAL_OBSIDIAN
141 Bamboo 16977259 wood 12 5 10 IP_MATERIAL_BAMBOO
142 Pottery 16977260 ceramic 2 2 2 IP_MATERIAL_POTTERY

View File

@@ -0,0 +1,14 @@
2DA V2.0
Label Name Constant
0 Unknown Unknown MATERIAL_TYPE_UNKNOWN
1 Bone Bone MATERIAL_TYPE_BONE
2 Ceramic Ceramic MATERIAL_TYPE_CERAMIC
3 Crystal Crystal MATERIAL_TYPE_CRYSTAL
4 Fabric Fabric MATERIAL_TYPE_FABRIC
5 Leather Leather MATERIAL_TYPE_LEATHER
6 Metal Metal MATERIAL_TYPE_METAL
7 Paper Paper MATERIAL_TYPE_PAPER
8 Rope Rope MATERIAL_TYPE_ROPE
9 Stone Stone MATERIAL_TYPE_STONE
10 Wood Wood MATERIAL_TYPE_WOOD

View File

@@ -2071,7 +2071,7 @@
2067 CrashingMountainJuggernaught **** **** **** **** **** **** **** **** **** **** **** **** ****
2068 DragonsTooth **** **** **** **** **** **** **** **** **** **** **** **** ****
2069 AwakenTheStoneDragon **** **** **** **** **** **** **** **** **** **** **** **** ****
2070 JUMP **** **** **** **** **** mc_grasshopprhlg Grasshoppers_Hind_Leg **** **** **** **** **** ****
2070 JUMP **** **** **** **** **** mc_grasshopprhlg Grasshoppers_Hind_Leg **** **** **** **** **** ****
2071 IRON_BODY **** **** **** **** **** mc_irongolempart Piece_of_An_Iron_Golem **** **** **** **** **** ****
2072 ENLARGE_PERSON **** **** **** **** **** mc_powderediron Powdered_Iron **** **** **** **** **** ****
2073 MASS_ENLARGE_PERSON **** **** **** **** **** mc_powderediron Powdered_Iron **** **** **** **** **** ****
@@ -3154,8 +3154,8 @@
3150 Benign_Transposition 0x02000 **** **** **** **** **** **** **** **** **** **** **** ****
3151 Conviction **** **** **** **** **** **** **** **** **** **** **** **** ****
3152 Legions_Conviction **** **** **** **** **** **** **** **** **** **** **** **** ****
3153 Curse_of_Impending_Blades **** **** **** **** **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
3154 Legions_Curse_of_Impending_Blades **** **** **** **** **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
3153 Curse_of_Impending_Blades **** **** **** **** **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
3154 Legions_Curse_of_Impending_Blades **** **** **** **** **** mc_nail Nail mc_pieceofleathr Piece_of_Leather **** **** **** ****
3155 Curse_of_Petty_Failing **** **** **** **** **** **** **** **** **** **** **** **** ****
3156 Legions_Curse_of_Petty_Failing **** **** **** **** **** **** **** **** **** **** **** **** ****
3157 Divine_Protection 0x00004 0x10000 **** **** **** **** **** **** **** **** **** **** ****

File diff suppressed because it is too large Load Diff

View File

@@ -50,7 +50,7 @@ void GZPRCRemoveSpellEffects(int nID,object oTarget, int bMagicalEffectsOnly = T
/**
* Tests to make sure the data in the effect arrays still refers to an actual effect.
*
* Called from withing ReorderEffects() and DispelMagicBestMod() (in inc_dispel). It's purpose
* Called from within ReorderEffects() and DispelMagicBestMod() (in inc_dispel). It's purpose
* is to verify that the effect referred to by an entry in the 3 arrays is still in effect, in
* case it has been dispelled or run out its duration since the data was put there.
*

View File

@@ -323,7 +323,7 @@ const int FEAT_TOUCH_OF_LUCK = 4634;
const int FEAT_FORESTLORD_TREEWALK = 4633;
const int FEAT_KALASHTAR_PP = 5205;
//: PnP Weapon Proficiencies
//:: PnP Weapon Proficiencies
const int FEAT_WEAPON_PROFICIENCY_SHORTSWORD = 7901;
const int FEAT_WEAPON_PROFICIENCY_LONGSWORD = 7902;
const int FEAT_WEAPON_PROFICIENCY_BATTLEAXE = 7903;
@@ -2735,7 +2735,6 @@ const int GRANT_MOVE_ACTION = 1937;
const int MINOR_AURA = 1938;
const int MAJOR_AURA = 1939;
//ACP feat
const int FEAT_ACP_QUICK_FEAT = 3479;
const int FEAT_ACP_HEAVY_FEAT = 3480;

View File

@@ -2132,7 +2132,7 @@ int GetOffHandAttacks(object oPC, int iMainHandAttacks = 0)
int bHasPTWF = GetHasFeat(FEAT_PERFECT_TWO_WEAPON_FIGHTING, oPC);
if(bHasPTWF) iOffHandAttacks = iMainHandAttacks;
if(bHasPTWF) {iOffHandAttacks = iMainHandAttacks;}
else if(GetHasFeat(FEAT_SUPREME_TWO_WEAPON_FIGHTING, oPC) ) iOffHandAttacks = 4;
else if(GetHasFeat(FEAT_GREATER_TWO_WEAPON_FIGHTING, oPC) ) iOffHandAttacks = 3;
else if(GetHasFeat(FEAT_IMPROVED_TWO_WEAPON_FIGHTING, oPC) ) iOffHandAttacks = 2;

View File

@@ -3,8 +3,6 @@
This include governs all the new itemproperties
Both restrictions and features
*/
//:: Updated for .35 by Jaysyn 2023/03/10

View File

@@ -0,0 +1,983 @@
//:: // Material ItemProperty library //
//::////////////////////////////////////////////////////////////////////////////
//:: prc_inc_material
//::
//:: Contains constants and functions for use with material itemproperties
//::
//:: Original by Axe Murderer
//::
//::////////////////////////////////////////////////////////////////////////////
#include "prc_x2_itemprop"
//:: Material Type Constants
//::////////////////////////////////////////////////////////////////////////////
const int MATERIAL_TYPE_INVALID = -1;
const int MATERIAL_TYPE_UNKNOWN = 0;
const int MATERIAL_TYPE_BONE = 1;
const int MATERIAL_TYPE_CERAMIC = 2;
const int MATERIAL_TYPE_CRYSTAL = 3;
const int MATERIAL_TYPE_FABRIC = 4;
const int MATERIAL_TYPE_LEATHER = 5;
const int MATERIAL_TYPE_METAL = 6;
const int MATERIAL_TYPE_PAPER = 7;
const int MATERIAL_TYPE_ROPE = 8;
const int MATERIAL_TYPE_STONE = 9;
const int MATERIAL_TYPE_WOOD = 10;
const string MATERIAL_TYPE_NAME_INVALID = "";
const string MATERIAL_TYPE_NAME_UNKNOWN = "Unknown";
const string MATERIAL_TYPE_NAME_BONE = "Bone";
const string MATERIAL_TYPE_NAME_CERAMIC = "Ceramic";
const string MATERIAL_TYPE_NAME_CRYSTAL = "Crystal";
const string MATERIAL_TYPE_NAME_FABRIC = "Fabric";
const string MATERIAL_TYPE_NAME_LEATHER = "Leather";
const string MATERIAL_TYPE_NAME_METAL = "Metal";
const string MATERIAL_TYPE_NAME_PAPER = "Paper";
const string MATERIAL_TYPE_NAME_ROPE = "Rope";
const string MATERIAL_TYPE_NAME_STONE = "Stone";
const string MATERIAL_TYPE_NAME_WOOD = "Wood";
//:: Material Itemproperty Constants
//::////////////////////////////////////////////////////////////////////////////////
const int IP_MATERIAL_INVALID = -1;
const int IP_MATERIAL_UNKNOWN = 0;
const int IP_MATERIAL_ADAMANTINE = 1;
const int IP_MATERIAL_BRASS = 2;
const int IP_MATERIAL_BRONZE = 3;
const int IP_MATERIAL_CARBON = 4;
const int IP_MATERIAL_COLD_IRON = 5;
const int IP_MATERIAL_COPPER = 6;
const int IP_MATERIAL_DARKSTEEL = 7;
const int IP_MATERIAL_GOLD = 8;
const int IP_MATERIAL_IRON = 9;
const int IP_MATERIAL_LEAD = 10;
const int IP_MATERIAL_MITHRAL = 11;
const int IP_MATERIAL_PLATINUM = 12;
const int IP_MATERIAL_SILVER = 13;
const int IP_MATERIAL_SILVER_ALCHEMICAL = 14;
const int IP_MATERIAL_STEEL = 15;
const int IP_MATERIAL_BONE = 16;
const int IP_MATERIAL_HIDE = 17;
const int IP_MATERIAL_HIDE_SALAMANDER = 18;
const int IP_MATERIAL_HIDE_UMBER_HULK = 19;
const int IP_MATERIAL_HIDE_WYVERN = 20;
const int IP_MATERIAL_HIDE_DRAGON_BLACK = 21;
const int IP_MATERIAL_HIDE_DRAGON_BLUE = 22;
const int IP_MATERIAL_HIDE_DRAGON_BRASS = 23;
const int IP_MATERIAL_HIDE_DRAGON_BRONZE = 24;
const int IP_MATERIAL_HIDE_DRAGON_COPPER = 25;
const int IP_MATERIAL_HIDE_DRAGON_GOLD = 26;
const int IP_MATERIAL_HIDE_DRAGON_GREEN = 27;
const int IP_MATERIAL_HIDE_DRAGON_RED = 28;
const int IP_MATERIAL_HIDE_DRAGON_SILVER = 29;
const int IP_MATERIAL_HIDE_DRAGON_WHITE = 30;
const int IP_MATERIAL_LEATHER = 31;
const int IP_MATERIAL_SCALE = 32;
const int IP_MATERIAL_CLOTH = 33;
const int IP_MATERIAL_COTTON = 34;
const int IP_MATERIAL_SILK = 35;
const int IP_MATERIAL_WOOL = 36;
const int IP_MATERIAL_WOOD = 37;
const int IP_MATERIAL_WOOD_IRONWOOD = 38;
const int IP_MATERIAL_WOOD_DUSKWOOD = 39;
const int IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR = 40;
const int IP_MATERIAL_WOOD_ASH = 41;
const int IP_MATERIAL_WOOD_YEW = 42;
const int IP_MATERIAL_WOOD_OAK = 43;
const int IP_MATERIAL_WOOD_PINE = 44;
const int IP_MATERIAL_WOOD_CEDAR = 45;
const int IP_MATERIAL_ELEMENTAL = 46;
const int IP_MATERIAL_ELEMENTAL_AIR = 47;
const int IP_MATERIAL_ELEMENTAL_EARTH = 48;
const int IP_MATERIAL_ELEMENTAL_FIRE = 49;
const int IP_MATERIAL_ELEMENTAL_WATER = 50;
const int IP_MATERIAL_GEM = 51;
const int IP_MATERIAL_GEM_ALEXANDRITE = 52;
const int IP_MATERIAL_GEM_AMETHYST = 53;
const int IP_MATERIAL_GEM_AVENTURINE = 54;
const int IP_MATERIAL_GEM_BELJURIL = 55;
const int IP_MATERIAL_GEM_BLOODSTONE = 56;
const int IP_MATERIAL_GEM_BLUE_DIAMOND = 57;
const int IP_MATERIAL_GEM_CANARY_DIAMOND = 58;
const int IP_MATERIAL_GEM_DIAMOND = 59;
const int IP_MATERIAL_GEM_EMERALD = 60;
const int IP_MATERIAL_GEM_FIRE_AGATE = 61;
const int IP_MATERIAL_GEM_FIRE_OPAL = 62;
const int IP_MATERIAL_GEM_FLUORSPAR = 63;
const int IP_MATERIAL_GEM_GARNET = 64;
const int IP_MATERIAL_GEM_GREENSTONE = 65;
const int IP_MATERIAL_GEM_JACINTH = 66;
const int IP_MATERIAL_GEM_KINGS_TEAR = 67;
const int IP_MATERIAL_GEM_MALACHITE = 68;
const int IP_MATERIAL_GEM_OBSIDIAN = 69;
const int IP_MATERIAL_GEM_PHENALOPE = 70;
const int IP_MATERIAL_GEM_ROGUE_STONE = 71;
const int IP_MATERIAL_GEM_RUBY = 72;
const int IP_MATERIAL_GEM_SAPPHIRE = 73;
const int IP_MATERIAL_GEM_STAR_SAPPHIRE = 74;
const int IP_MATERIAL_GEM_TOPAZ = 75;
const int IP_MATERIAL_GEM_CRYSTAL_DEEP = 76;
const int IP_MATERIAL_GEM_CRYSTAL_MUNDANE = 77;
const int IP_MATERIAL_PAPER = 100;
const int IP_MATERIAL_GLASS = 101;
const int IP_MATERIAL_ICE = 102;
const int IP_MATERIAL_ROPE_HEMP = 103;
const int IP_MATERIAL_STONE = 104;
const int IP_MATERIAL_DEEP_CORAL = 105;
const int IP_MATERIAL_WOOD_LIVING = 106;
const int IP_MATERIAL_OBDURIUM = 107;
const int IP_MATERIAL_WOOD_BRONZE = 108;
const int IP_MATERIAL_BYESHK = 109;
const int IP_MATERIAL_CALOMEL = 110;
const int IP_MATERIAL_CRYSTEEL_RIEDRAN = 111;
const int IP_MATERIAL_DENSEWOOD = 112;
const int IP_MATERIAL_DRAGONSHARD = 113;
const int IP_MATERIAL_IRON_FLAMETOUCHED = 114;
const int IP_MATERIAL_LIVEWOOD = 115;
const int IP_MATERIAL_MOURNLODE_PURPLE = 116;
const int IP_MATERIAL_SOARWOOD = 117;
const int IP_MATERIAL_TARGATH = 118;
const int IP_MATERIAL_ASTRAL_DRIFTMETAL = 119;
const int IP_MATERIAL_ATANDUR = 120;
const int IP_MATERIAL_BLENDED_QUARTZ = 121;
const int IP_MATERIAL_CHITIN = 122;
const int IP_MATERIAL_DARKLEAF_ELVEN = 123;
const int IP_MATERIAL_DLARUN = 124;
const int IP_MATERIAL_DUSTWOOD = 125;
const int IP_MATERIAL_ELUKIAN_CLAY = 126;
const int IP_MATERIAL_ENTROPIUM = 127;
const int IP_MATERIAL_GREENSTEEL_BAATORIAN = 128;
const int IP_MATERIAL_HIZAGKUUR = 129;
const int IP_MATERIAL_IRON_FEVER = 130;
const int IP_MATERIAL_IRON_GEHENNAN_MORGHUTH = 131;
const int IP_MATERIAL_LEAFWEAVE = 132;
const int IP_MATERIAL_LIVING_METAL = 133;
const int IP_MATERIAL_MINDSTEEL_URDRUKAR = 134;
const int IP_MATERIAL_TRUESTEEL_SOLANIAN = 135;
const int IP_MATERIAL_WOOD_AGAFARI = 136;
const int IP_MATERIAL_CRYSTAL_DASL = 137;
const int IP_MATERIAL_DRAKE_IVORY = 138;
const int IP_MATERIAL_ROPE_GIANT_HAIR = 139;
const int IP_MATERIAL_OBSIDIAN = 140;
const int IP_MATERIAL_BAMBOO = 141;
const int IP_MATERIAL_POTTERY = 142;
const int IP_NUM_MATERIALS = 142;
const string IP_MATERIAL_NAME_INVALID = "";
const string IP_MATERIAL_NAME_UNKNOWN = "Unknown";
const string IP_MATERIAL_NAME_ADAMANTINE = "Adamantine";
const string IP_MATERIAL_NAME_BRASS = "Brass";
const string IP_MATERIAL_NAME_BRONZE = "Bronze";
const string IP_MATERIAL_NAME_CARBON = "Carbon";
const string IP_MATERIAL_NAME_COLD_IRON = "Cold Iron";
const string IP_MATERIAL_NAME_COPPER = "Copper";
const string IP_MATERIAL_NAME_DARKSTEEL = "Darksteel";
const string IP_MATERIAL_NAME_GOLD = "Gold";
const string IP_MATERIAL_NAME_IRON = "Iron";
const string IP_MATERIAL_NAME_LEAD = "Lead";
const string IP_MATERIAL_NAME_MITHRAL = "Mithral";
const string IP_MATERIAL_NAME_PLATINUM = "Platinum";
const string IP_MATERIAL_NAME_SILVER = "Silver";
const string IP_MATERIAL_NAME_SILVER_ALCHEMICAL = "Alchemical Silver";
const string IP_MATERIAL_NAME_STEEL = "Steel";
const string IP_MATERIAL_NAME_BONE = "Bone";
const string IP_MATERIAL_NAME_HIDE = "Hide";
const string IP_MATERIAL_NAME_HIDE_SALAMANDER = "Salamander Hide";
const string IP_MATERIAL_NAME_HIDE_UMBER_HULK = "Umber Hulk Hide";
const string IP_MATERIAL_NAME_HIDE_WYVERN = "Wyvern Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_BLACK = "Black Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_BLUE = "Blue Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_BRASS = "Brass Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_BRONZE = "Bronze Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_COPPER = "Copper Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_GOLD = "Gold Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_GREEN = "Green Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_RED = "Red Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_SILVER = "Silver Dragon Hide";
const string IP_MATERIAL_NAME_HIDE_DRAGON_WHITE = "White Dragon Hide";
const string IP_MATERIAL_NAME_LEATHER = "Leather Hide";
const string IP_MATERIAL_NAME_SCALE = "Scale";
const string IP_MATERIAL_NAME_CLOTH = "Cloth";
const string IP_MATERIAL_NAME_COTTON = "Cotton";
const string IP_MATERIAL_NAME_SILK = "Silk";
const string IP_MATERIAL_NAME_WOOL = "Wool";
const string IP_MATERIAL_NAME_WOOD = "Wood";
const string IP_MATERIAL_NAME_WOOD_IRONWOOD = "Ironwood";
const string IP_MATERIAL_NAME_WOOD_DUSKWOOD = "Duskwood";
const string IP_MATERIAL_NAME_WOOD_DARKWOOD_ZALANTAR = "Zalantar Darkwood";
const string IP_MATERIAL_NAME_WOOD_ASH = "Ash";
const string IP_MATERIAL_NAME_WOOD_YEW = "Yew";
const string IP_MATERIAL_NAME_WOOD_OAK = "Oak";
const string IP_MATERIAL_NAME_WOOD_PINE = "Pine";
const string IP_MATERIAL_NAME_WOOD_CEDAR = "Cedar";
const string IP_MATERIAL_NAME_ELEMENTAL = "Elemental";
const string IP_MATERIAL_NAME_ELEMENTAL_AIR = "Air Elemental";
const string IP_MATERIAL_NAME_ELEMENTAL_EARTH = "Earth Elemental";
const string IP_MATERIAL_NAME_ELEMENTAL_FIRE = "Fire Elemental";
const string IP_MATERIAL_NAME_ELEMENTAL_WATER = "Water Elemental";
const string IP_MATERIAL_NAME_GEM = "Gem";
const string IP_MATERIAL_NAME_GEM_ALEXANDRITE = "Alexandrite";
const string IP_MATERIAL_NAME_GEM_AMETHYST = "Amethyst";
const string IP_MATERIAL_NAME_GEM_AVENTURINE = "Aventurine";
const string IP_MATERIAL_NAME_GEM_BELJURIL = "Beljuril";
const string IP_MATERIAL_NAME_GEM_BLOODSTONE = "Bloodstone";
const string IP_MATERIAL_NAME_GEM_BLUE_DIAMOND = "Blue Diamond";
const string IP_MATERIAL_NAME_GEM_CANARY_DIAMOND = "Carary Diamond";
const string IP_MATERIAL_NAME_GEM_DIAMOND = "Diamond";
const string IP_MATERIAL_NAME_GEM_EMERALD = "Emerald";
const string IP_MATERIAL_NAME_GEM_FIRE_AGATE = "Agate";
const string IP_MATERIAL_NAME_GEM_FIRE_OPAL = "Opal";
const string IP_MATERIAL_NAME_GEM_FLUORSPAR = "Fluorspar";
const string IP_MATERIAL_NAME_GEM_GARNET = "Garnet";
const string IP_MATERIAL_NAME_GEM_GREENSTONE = "Greenstone";
const string IP_MATERIAL_NAME_GEM_JACINTH = "Jacinth";
const string IP_MATERIAL_NAME_GEM_KINGS_TEAR = "King's Tear";
const string IP_MATERIAL_NAME_GEM_MALACHITE = "Malachite";
const string IP_MATERIAL_NAME_GEM_OBSIDIAN = "Obsidian";
const string IP_MATERIAL_NAME_GEM_PHENALOPE = "Phenalope";
const string IP_MATERIAL_NAME_GEM_ROGUE_STONE = "Rogue Stone";
const string IP_MATERIAL_NAME_GEM_RUBY = "Ruby";
const string IP_MATERIAL_NAME_GEM_SAPPHIRE = "Sapphire";
const string IP_MATERIAL_NAME_GEM_STAR_SAPPHIRE = "Star Sapphire";
const string IP_MATERIAL_NAME_GEM_TOPAZ = "Topaz";
const string IP_MATERIAL_NAME_GEM_CRYSTAL_DEEP = "Deep Crystal";
const string IP_MATERIAL_NAME_GEM_CRYSTAL_MUNDANE = "Mundane Crystal";
const string IP_MATERIAL_NAME_PAPER = "Paper";
const string IP_MATERIAL_NAME_GLASS = "Glass";
const string IP_MATERIAL_NAME_ICE = "Ice";
const string IP_MATERIAL_NAME_ROPE_HEMP = "Hemp Rope";
const string IP_MATERIAL_NAME_STONE = "Stone";
const string IP_MATERIAL_NAME_DEEP_CORAL = "Deep Coral";
const string IP_MATERIAL_NAME_WOOD_LIVING = "Living Wood";
const string IP_MATERIAL_NAME_OBDURIUM = "Obdurium";
const string IP_MATERIAL_NAME_WOOD_BRONZE = "Bronze Wood";
const string IP_MATERIAL_NAME_BYESHK = "Byeshk";
const string IP_MATERIAL_NAME_CALOMEL = "Calomel";
const string IP_MATERIAL_NAME_CRYSTEEL_RIEDRAN = "Riedran Crysteel";
const string IP_MATERIAL_NAME_DENSEWOOD = "Densewood";
const string IP_MATERIAL_NAME_DRAGONSHARD = "Dragonshard";
const string IP_MATERIAL_NAME_IRON_FLAMETOUCHED = "Flametouched Iron";
const string IP_MATERIAL_NAME_LIVEWOOD = "Livewood";
const string IP_MATERIAL_NAME_MOURNLODE_PURPLE = "Purple Mournlode";
const string IP_MATERIAL_NAME_SOARWOOD = "Soarwood";
const string IP_MATERIAL_NAME_TARGATH = "Targath";
const string IP_MATERIAL_NAME_ASTRAL_DRIFTMETAL = "Astral Driftmetal";
const string IP_MATERIAL_NAME_ATANDUR = "Atandur";
const string IP_MATERIAL_NAME_BLENDED_QUARTZ = "Blended Quartz";
const string IP_MATERIAL_NAME_CHITIN = "Chitin";
const string IP_MATERIAL_NAME_DARKLEAF_ELVEN = "Elven Darkleaf";
const string IP_MATERIAL_NAME_DLARUN = "Dlarun";
const string IP_MATERIAL_NAME_DUSTWOOD = "Dustwood";
const string IP_MATERIAL_NAME_ELUKIAN_CLAY = "Elukian Clay";
const string IP_MATERIAL_NAME_ENTROPIUM = "Entropium";
const string IP_MATERIAL_NAME_GREENSTEEL_BAATORIAN = "Baatorian Greensteel";
const string IP_MATERIAL_NAME_HIZAGKUUR = "Hizagkuur";
const string IP_MATERIAL_NAME_IRON_FEVER = "Fever Iron";
const string IP_MATERIAL_NAME_IRON_GEHENNAN_MORGHUTH = "Gehennan Morghuth Iron";
const string IP_MATERIAL_NAME_LEAFWEAVE = "Leafweave";
const string IP_MATERIAL_NAME_LIVING_METAL = "Living Metal";
const string IP_MATERIAL_NAME_MINDSTEEL_URDRUKAR = "Urdrukar Mindsteel";
const string IP_MATERIAL_NAME_TRUESTEEL_SOLANIAN = "Solanian Truesteel";
const string IP_MATERIAL_NAME_WOOD_AGAFARI = "Agafari";
const string IP_MATERIAL_NAME_CRYSTAL_DASL = "Dasl";
const string IP_MATERIAL_NAME_DRAKE_IVORY = "Drake Ivory";
const string IP_MATERIAL_NAME_ROPE_GIANT_HAIR = "Giant Hair Rope";
const string IP_MATERIAL_NAME_OBSIDIAN = "Obsidian";
const string IP_MATERIAL_NAME_BAMBOO = "Bamboo";
const string IP_MATERIAL_NAME_POTTERY = "Pottery";
//::///////////////////////////////////////////////////////////////
// GetMaterialName( int iMaterialType, int bLowerCase = FALSE)
// Given a material type this function returns its name as a string.
//::///////////////////////////////////////////////////////////////
// Parameters: int iMaterialType - the material type number IP_MATERIAL_*
// int bLowerCase - if TRUE the returned string is all lower case
// if FALSE the returned string is first letter cap.
//
// Returns: the name of the material type as a string IP_MATERIAL_NAME_*.
// Returns IP_MATERIAL_NAME_INVALID if the material type is invalid.
//::///////////////////////////////////////////////////////////////
string GetMaterialName( int iMaterialType, int bLowerCase = FALSE);
string GetMaterialName( int iMaterialType, int bLowerCase = FALSE)
{ if( iMaterialType == IP_MATERIAL_INVALID) return IP_MATERIAL_NAME_INVALID;
string sName = "";
switch( iMaterialType)
{ case IP_MATERIAL_UNKNOWN: sName = IP_MATERIAL_NAME_UNKNOWN; break;
case IP_MATERIAL_ADAMANTINE: sName = IP_MATERIAL_NAME_ADAMANTINE; break;
case IP_MATERIAL_BRASS: sName = IP_MATERIAL_NAME_BRASS; break;
case IP_MATERIAL_BRONZE: sName = IP_MATERIAL_NAME_BRONZE; break;
case IP_MATERIAL_CARBON: sName = IP_MATERIAL_NAME_CARBON; break;
case IP_MATERIAL_COLD_IRON: sName = IP_MATERIAL_NAME_COLD_IRON; break;
case IP_MATERIAL_COPPER: sName = IP_MATERIAL_NAME_COPPER; break;
case IP_MATERIAL_DARKSTEEL: sName = IP_MATERIAL_NAME_DARKSTEEL; break;
case IP_MATERIAL_GOLD: sName = IP_MATERIAL_NAME_GOLD; break;
case IP_MATERIAL_IRON: sName = IP_MATERIAL_NAME_IRON; break;
case IP_MATERIAL_LEAD: sName = IP_MATERIAL_NAME_LEAD; break;
case IP_MATERIAL_MITHRAL: sName = IP_MATERIAL_NAME_MITHRAL; break;
case IP_MATERIAL_PLATINUM: sName = IP_MATERIAL_NAME_PLATINUM; break;
case IP_MATERIAL_SILVER: sName = IP_MATERIAL_NAME_SILVER; break;
case IP_MATERIAL_SILVER_ALCHEMICAL: sName = IP_MATERIAL_NAME_SILVER_ALCHEMICAL; break;
case IP_MATERIAL_STEEL: sName = IP_MATERIAL_NAME_STEEL; break;
case IP_MATERIAL_BONE: sName = IP_MATERIAL_NAME_BONE; break;
case IP_MATERIAL_HIDE: sName = IP_MATERIAL_NAME_HIDE; break;
case IP_MATERIAL_HIDE_SALAMANDER: sName = IP_MATERIAL_NAME_HIDE_SALAMANDER; break;
case IP_MATERIAL_HIDE_UMBER_HULK: sName = IP_MATERIAL_NAME_HIDE_UMBER_HULK; break;
case IP_MATERIAL_HIDE_WYVERN: sName = IP_MATERIAL_NAME_HIDE_WYVERN; break;
case IP_MATERIAL_HIDE_DRAGON_BLACK: sName = IP_MATERIAL_NAME_HIDE_DRAGON_BLACK; break;
case IP_MATERIAL_HIDE_DRAGON_BLUE: sName = IP_MATERIAL_NAME_HIDE_DRAGON_BLUE; break;
case IP_MATERIAL_HIDE_DRAGON_BRASS: sName = IP_MATERIAL_NAME_HIDE_DRAGON_BRASS; break;
case IP_MATERIAL_HIDE_DRAGON_BRONZE: sName = IP_MATERIAL_NAME_HIDE_DRAGON_BRONZE; break;
case IP_MATERIAL_HIDE_DRAGON_COPPER: sName = IP_MATERIAL_NAME_HIDE_DRAGON_COPPER; break;
case IP_MATERIAL_HIDE_DRAGON_GOLD: sName = IP_MATERIAL_NAME_HIDE_DRAGON_GOLD; break;
case IP_MATERIAL_HIDE_DRAGON_GREEN: sName = IP_MATERIAL_NAME_HIDE_DRAGON_GREEN; break;
case IP_MATERIAL_HIDE_DRAGON_RED: sName = IP_MATERIAL_NAME_HIDE_DRAGON_RED; break;
case IP_MATERIAL_HIDE_DRAGON_SILVER: sName = IP_MATERIAL_NAME_HIDE_DRAGON_SILVER; break;
case IP_MATERIAL_HIDE_DRAGON_WHITE: sName = IP_MATERIAL_NAME_HIDE_DRAGON_WHITE; break;
case IP_MATERIAL_LEATHER: sName = IP_MATERIAL_NAME_LEATHER; break;
case IP_MATERIAL_SCALE: sName = IP_MATERIAL_NAME_SCALE; break;
case IP_MATERIAL_COTTON: sName = IP_MATERIAL_NAME_COTTON; break;
case IP_MATERIAL_CLOTH: sName = IP_MATERIAL_NAME_CLOTH; break;
case IP_MATERIAL_SILK: sName = IP_MATERIAL_NAME_SILK; break;
case IP_MATERIAL_WOOL: sName = IP_MATERIAL_NAME_WOOL; break;
case IP_MATERIAL_WOOD: sName = IP_MATERIAL_NAME_WOOD; break;
case IP_MATERIAL_WOOD_IRONWOOD: sName = IP_MATERIAL_NAME_WOOD_IRONWOOD; break;
case IP_MATERIAL_WOOD_DUSKWOOD: sName = IP_MATERIAL_NAME_WOOD_DUSKWOOD; break;
case IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR: sName = IP_MATERIAL_NAME_WOOD_DARKWOOD_ZALANTAR; break;
case IP_MATERIAL_WOOD_ASH: sName = IP_MATERIAL_NAME_WOOD_ASH; break;
case IP_MATERIAL_WOOD_YEW: sName = IP_MATERIAL_NAME_WOOD_YEW; break;
case IP_MATERIAL_WOOD_OAK: sName = IP_MATERIAL_NAME_WOOD_OAK; break;
case IP_MATERIAL_WOOD_PINE: sName = IP_MATERIAL_NAME_WOOD_PINE; break;
case IP_MATERIAL_WOOD_CEDAR: sName = IP_MATERIAL_NAME_WOOD_CEDAR; break;
case IP_MATERIAL_ELEMENTAL: sName = IP_MATERIAL_NAME_ELEMENTAL; break;
case IP_MATERIAL_ELEMENTAL_AIR: sName = IP_MATERIAL_NAME_ELEMENTAL_AIR; break;
case IP_MATERIAL_ELEMENTAL_EARTH: sName = IP_MATERIAL_NAME_ELEMENTAL_EARTH; break;
case IP_MATERIAL_ELEMENTAL_FIRE: sName = IP_MATERIAL_NAME_ELEMENTAL_FIRE; break;
case IP_MATERIAL_ELEMENTAL_WATER: sName = IP_MATERIAL_NAME_ELEMENTAL_WATER; break;
case IP_MATERIAL_GEM: sName = IP_MATERIAL_NAME_GEM; break;
case IP_MATERIAL_GEM_ALEXANDRITE: sName = IP_MATERIAL_NAME_GEM_ALEXANDRITE; break;
case IP_MATERIAL_GEM_AMETHYST: sName = IP_MATERIAL_NAME_GEM_AMETHYST; break;
case IP_MATERIAL_GEM_AVENTURINE: sName = IP_MATERIAL_NAME_GEM_AVENTURINE; break;
case IP_MATERIAL_GEM_BELJURIL: sName = IP_MATERIAL_NAME_GEM_BELJURIL; break;
case IP_MATERIAL_GEM_BLOODSTONE: sName = IP_MATERIAL_NAME_GEM_BLOODSTONE; break;
case IP_MATERIAL_GEM_BLUE_DIAMOND: sName = IP_MATERIAL_NAME_GEM_BLUE_DIAMOND; break;
case IP_MATERIAL_GEM_CANARY_DIAMOND: sName = IP_MATERIAL_NAME_GEM_CANARY_DIAMOND; break;
case IP_MATERIAL_GEM_DIAMOND: sName = IP_MATERIAL_NAME_GEM_DIAMOND; break;
case IP_MATERIAL_GEM_EMERALD: sName = IP_MATERIAL_NAME_GEM_EMERALD; break;
case IP_MATERIAL_GEM_FIRE_AGATE: sName = IP_MATERIAL_NAME_GEM_FIRE_AGATE; break;
case IP_MATERIAL_GEM_FIRE_OPAL: sName = IP_MATERIAL_NAME_GEM_FIRE_OPAL; break;
case IP_MATERIAL_GEM_FLUORSPAR: sName = IP_MATERIAL_NAME_GEM_FLUORSPAR; break;
case IP_MATERIAL_GEM_GARNET: sName = IP_MATERIAL_NAME_GEM_GARNET; break;
case IP_MATERIAL_GEM_GREENSTONE: sName = IP_MATERIAL_NAME_GEM_GREENSTONE; break;
case IP_MATERIAL_GEM_JACINTH: sName = IP_MATERIAL_NAME_GEM_JACINTH; break;
case IP_MATERIAL_GEM_KINGS_TEAR: sName = IP_MATERIAL_NAME_GEM_KINGS_TEAR; break;
case IP_MATERIAL_GEM_MALACHITE: sName = IP_MATERIAL_NAME_GEM_MALACHITE; break;
case IP_MATERIAL_GEM_OBSIDIAN: sName = IP_MATERIAL_NAME_GEM_OBSIDIAN; break;
case IP_MATERIAL_GEM_PHENALOPE: sName = IP_MATERIAL_NAME_GEM_PHENALOPE; break;
case IP_MATERIAL_GEM_ROGUE_STONE: sName = IP_MATERIAL_NAME_GEM_ROGUE_STONE; break;
case IP_MATERIAL_GEM_RUBY: sName = IP_MATERIAL_NAME_GEM_RUBY; break;
case IP_MATERIAL_GEM_SAPPHIRE: sName = IP_MATERIAL_NAME_GEM_SAPPHIRE; break;
case IP_MATERIAL_GEM_STAR_SAPPHIRE: sName = IP_MATERIAL_NAME_GEM_STAR_SAPPHIRE; break;
case IP_MATERIAL_GEM_TOPAZ: sName = IP_MATERIAL_NAME_GEM_TOPAZ; break;
case IP_MATERIAL_GEM_CRYSTAL_DEEP: sName = IP_MATERIAL_NAME_GEM_CRYSTAL_DEEP; break;
case IP_MATERIAL_GEM_CRYSTAL_MUNDANE: sName = IP_MATERIAL_NAME_GEM_CRYSTAL_MUNDANE; break;
case IP_MATERIAL_PAPER: sName = IP_MATERIAL_NAME_PAPER; break;
case IP_MATERIAL_GLASS: sName = IP_MATERIAL_NAME_GLASS; break;
case IP_MATERIAL_ICE: sName = IP_MATERIAL_NAME_ICE; break;
case IP_MATERIAL_ROPE_HEMP: sName = IP_MATERIAL_NAME_ROPE_HEMP; break;
case IP_MATERIAL_STONE: sName = IP_MATERIAL_NAME_STONE; break;
case IP_MATERIAL_DEEP_CORAL: sName = IP_MATERIAL_NAME_DEEP_CORAL; break;
case IP_MATERIAL_WOOD_LIVING: sName = IP_MATERIAL_NAME_WOOD_LIVING; break;
case IP_MATERIAL_OBDURIUM: sName = IP_MATERIAL_NAME_OBDURIUM; break;
case IP_MATERIAL_WOOD_BRONZE: sName = IP_MATERIAL_NAME_WOOD_BRONZE; break;
case IP_MATERIAL_BYESHK: sName = IP_MATERIAL_NAME_BYESHK; break;
case IP_MATERIAL_CALOMEL: sName = IP_MATERIAL_NAME_CALOMEL; break;
case IP_MATERIAL_CRYSTEEL_RIEDRAN: sName = IP_MATERIAL_NAME_CRYSTEEL_RIEDRAN; break;
case IP_MATERIAL_DENSEWOOD: sName = IP_MATERIAL_NAME_DENSEWOOD; break;
case IP_MATERIAL_DRAGONSHARD: sName = IP_MATERIAL_NAME_DRAGONSHARD; break;
case IP_MATERIAL_IRON_FLAMETOUCHED: sName = IP_MATERIAL_NAME_IRON_FLAMETOUCHED; break;
case IP_MATERIAL_LIVEWOOD: sName = IP_MATERIAL_NAME_LIVEWOOD; break;
case IP_MATERIAL_MOURNLODE_PURPLE: sName = IP_MATERIAL_NAME_MOURNLODE_PURPLE; break;
case IP_MATERIAL_SOARWOOD: sName = IP_MATERIAL_NAME_SOARWOOD; break;
case IP_MATERIAL_TARGATH: sName = IP_MATERIAL_NAME_TARGATH; break;
case IP_MATERIAL_ASTRAL_DRIFTMETAL: sName = IP_MATERIAL_NAME_ASTRAL_DRIFTMETAL; break;
case IP_MATERIAL_ATANDUR: sName = IP_MATERIAL_NAME_ATANDUR; break;
case IP_MATERIAL_BLENDED_QUARTZ: sName = IP_MATERIAL_NAME_BLENDED_QUARTZ; break;
case IP_MATERIAL_CHITIN: sName = IP_MATERIAL_NAME_CHITIN; break;
case IP_MATERIAL_DARKLEAF_ELVEN: sName = IP_MATERIAL_NAME_DARKLEAF_ELVEN; break;
case IP_MATERIAL_DLARUN: sName = IP_MATERIAL_NAME_DLARUN; break;
case IP_MATERIAL_DUSTWOOD: sName = IP_MATERIAL_NAME_DUSTWOOD; break;
case IP_MATERIAL_ELUKIAN_CLAY: sName = IP_MATERIAL_NAME_ELUKIAN_CLAY; break;
case IP_MATERIAL_ENTROPIUM: sName = IP_MATERIAL_NAME_ENTROPIUM; break;
case IP_MATERIAL_GREENSTEEL_BAATORIAN: sName = IP_MATERIAL_NAME_GREENSTEEL_BAATORIAN; break;
case IP_MATERIAL_HIZAGKUUR: sName = IP_MATERIAL_NAME_HIZAGKUUR; break;
case IP_MATERIAL_IRON_FEVER: sName = IP_MATERIAL_NAME_IRON_FEVER; break;
case IP_MATERIAL_IRON_GEHENNAN_MORGHUTH: sName = IP_MATERIAL_NAME_IRON_GEHENNAN_MORGHUTH; break;
case IP_MATERIAL_LEAFWEAVE: sName = IP_MATERIAL_NAME_LEAFWEAVE; break;
case IP_MATERIAL_LIVING_METAL: sName = IP_MATERIAL_NAME_LIVING_METAL; break;
case IP_MATERIAL_MINDSTEEL_URDRUKAR: sName = IP_MATERIAL_NAME_MINDSTEEL_URDRUKAR; break;
case IP_MATERIAL_TRUESTEEL_SOLANIAN: sName = IP_MATERIAL_NAME_TRUESTEEL_SOLANIAN; break;
case IP_MATERIAL_WOOD_AGAFARI: sName = IP_MATERIAL_NAME_WOOD_AGAFARI; break;
case IP_MATERIAL_CRYSTAL_DASL: sName = IP_MATERIAL_NAME_CRYSTAL_DASL; break;
case IP_MATERIAL_DRAKE_IVORY: sName = IP_MATERIAL_NAME_DRAKE_IVORY; break;
case IP_MATERIAL_ROPE_GIANT_HAIR: sName = IP_MATERIAL_NAME_ROPE_GIANT_HAIR; break;
case IP_MATERIAL_OBSIDIAN: sName = IP_MATERIAL_NAME_OBSIDIAN; break;
case IP_MATERIAL_BAMBOO: sName = IP_MATERIAL_NAME_BAMBOO; break;
case IP_MATERIAL_POTTERY: sName = IP_MATERIAL_NAME_POTTERY; break;
default: return "";
}
return (bLowerCase ? GetStringLowerCase( sName) : sName);
}
//::///////////////////////////////////////////////////////////////
// int GetIPMaterial( string sMaterialName)
// Given a material name this function returns its type number (2da row)
//::///////////////////////////////////////////////////////////////
// Parameters: string sMaterialName - the material name IP_MATERIAL_NAME_*
//
// Returns: the material type number IP_MATERIAL_* of the specified material
// name or IP_MATERIAL_INVALID if the type could not be determined
// from the specified name.
//::///////////////////////////////////////////////////////////////
int GetIPMaterial( string sMaterialName);
int GetIPMaterial( string sMaterialName)
{ if( sMaterialName == IP_MATERIAL_NAME_INVALID) return IP_MATERIAL_INVALID;
sMaterialName = GetStringUpperCase( sMaterialName);
if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_UNKNOWN)) return IP_MATERIAL_UNKNOWN;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ADAMANTINE)) return IP_MATERIAL_ADAMANTINE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_BRASS)) return IP_MATERIAL_BRASS;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_BRONZE)) return IP_MATERIAL_BRONZE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_CARBON)) return IP_MATERIAL_CARBON;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_COLD_IRON)) return IP_MATERIAL_COLD_IRON;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_COPPER)) return IP_MATERIAL_COPPER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_DARKSTEEL)) return IP_MATERIAL_DARKSTEEL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GOLD)) return IP_MATERIAL_GOLD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_IRON)) return IP_MATERIAL_IRON;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_LEAD)) return IP_MATERIAL_LEAD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_MITHRAL)) return IP_MATERIAL_MITHRAL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_PLATINUM)) return IP_MATERIAL_PLATINUM;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_SILVER)) return IP_MATERIAL_SILVER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_SILVER_ALCHEMICAL)) return IP_MATERIAL_SILVER_ALCHEMICAL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_STEEL)) return IP_MATERIAL_STEEL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_BONE)) return IP_MATERIAL_BONE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE)) return IP_MATERIAL_HIDE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_SALAMANDER)) return IP_MATERIAL_HIDE_SALAMANDER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_UMBER_HULK)) return IP_MATERIAL_HIDE_UMBER_HULK;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_WYVERN)) return IP_MATERIAL_HIDE_WYVERN;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_BLACK)) return IP_MATERIAL_HIDE_DRAGON_BLACK;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_BLUE)) return IP_MATERIAL_HIDE_DRAGON_BLUE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_BRASS)) return IP_MATERIAL_HIDE_DRAGON_BRASS;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_BRONZE)) return IP_MATERIAL_HIDE_DRAGON_BRONZE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_COPPER)) return IP_MATERIAL_HIDE_DRAGON_COPPER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_GOLD)) return IP_MATERIAL_HIDE_DRAGON_GOLD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_GREEN)) return IP_MATERIAL_HIDE_DRAGON_GREEN;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_RED)) return IP_MATERIAL_HIDE_DRAGON_RED;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_SILVER)) return IP_MATERIAL_HIDE_DRAGON_SILVER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_HIDE_DRAGON_WHITE)) return IP_MATERIAL_HIDE_DRAGON_WHITE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_LEATHER)) return IP_MATERIAL_LEATHER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_SCALE)) return IP_MATERIAL_SCALE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_COTTON)) return IP_MATERIAL_COTTON;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_CLOTH)) return IP_MATERIAL_CLOTH;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_SILK)) return IP_MATERIAL_SILK;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOL)) return IP_MATERIAL_WOOL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD)) return IP_MATERIAL_WOOD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_IRONWOOD)) return IP_MATERIAL_WOOD_IRONWOOD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_DUSKWOOD)) return IP_MATERIAL_WOOD_DUSKWOOD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_DARKWOOD_ZALANTAR)) return IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_ASH)) return IP_MATERIAL_WOOD_ASH;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_YEW)) return IP_MATERIAL_WOOD_YEW;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_OAK)) return IP_MATERIAL_WOOD_OAK;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_PINE)) return IP_MATERIAL_WOOD_PINE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_WOOD_CEDAR)) return IP_MATERIAL_WOOD_CEDAR;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ELEMENTAL)) return IP_MATERIAL_ELEMENTAL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ELEMENTAL_AIR)) return IP_MATERIAL_ELEMENTAL_AIR;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ELEMENTAL_EARTH)) return IP_MATERIAL_ELEMENTAL_EARTH;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ELEMENTAL_FIRE)) return IP_MATERIAL_ELEMENTAL_FIRE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_ELEMENTAL_WATER)) return IP_MATERIAL_ELEMENTAL_WATER;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM)) return IP_MATERIAL_GEM;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_ALEXANDRITE)) return IP_MATERIAL_GEM_ALEXANDRITE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_AMETHYST)) return IP_MATERIAL_GEM_AMETHYST;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_AVENTURINE)) return IP_MATERIAL_GEM_AVENTURINE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_BELJURIL)) return IP_MATERIAL_GEM_BELJURIL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_BLOODSTONE)) return IP_MATERIAL_GEM_BLOODSTONE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_BLUE_DIAMOND)) return IP_MATERIAL_GEM_BLUE_DIAMOND;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_CANARY_DIAMOND)) return IP_MATERIAL_GEM_CANARY_DIAMOND;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_DIAMOND)) return IP_MATERIAL_GEM_DIAMOND;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_EMERALD)) return IP_MATERIAL_GEM_EMERALD;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_FIRE_AGATE)) return IP_MATERIAL_GEM_FIRE_AGATE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_FIRE_OPAL)) return IP_MATERIAL_GEM_FIRE_OPAL;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_FLUORSPAR)) return IP_MATERIAL_GEM_FLUORSPAR;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_GARNET)) return IP_MATERIAL_GEM_GARNET;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_GREENSTONE)) return IP_MATERIAL_GEM_GREENSTONE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_JACINTH)) return IP_MATERIAL_GEM_JACINTH;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_KINGS_TEAR)) return IP_MATERIAL_GEM_KINGS_TEAR;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_MALACHITE)) return IP_MATERIAL_GEM_MALACHITE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_OBSIDIAN)) return IP_MATERIAL_GEM_OBSIDIAN;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_PHENALOPE)) return IP_MATERIAL_GEM_PHENALOPE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_ROGUE_STONE)) return IP_MATERIAL_GEM_ROGUE_STONE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_RUBY)) return IP_MATERIAL_GEM_RUBY;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_SAPPHIRE)) return IP_MATERIAL_GEM_SAPPHIRE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_STAR_SAPPHIRE)) return IP_MATERIAL_GEM_STAR_SAPPHIRE;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_TOPAZ)) return IP_MATERIAL_GEM_TOPAZ;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_CRYSTAL_DEEP)) return IP_MATERIAL_GEM_CRYSTAL_DEEP;
else if( sMaterialName == GetStringUpperCase( IP_MATERIAL_NAME_GEM_CRYSTAL_MUNDANE)) return IP_MATERIAL_GEM_CRYSTAL_MUNDANE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_PAPER)) return IP_MATERIAL_PAPER;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_GLASS)) return IP_MATERIAL_GLASS;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ICE)) return IP_MATERIAL_ICE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ROPE_HEMP)) return IP_MATERIAL_ROPE_HEMP;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_STONE)) return IP_MATERIAL_STONE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DEEP_CORAL)) return IP_MATERIAL_DEEP_CORAL;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_WOOD_LIVING)) return IP_MATERIAL_WOOD_LIVING;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_OBDURIUM)) return IP_MATERIAL_OBDURIUM;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_WOOD_BRONZE)) return IP_MATERIAL_WOOD_BRONZE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_BYESHK)) return IP_MATERIAL_BYESHK;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_CALOMEL)) return IP_MATERIAL_CALOMEL;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_CRYSTEEL_RIEDRAN)) return IP_MATERIAL_CRYSTEEL_RIEDRAN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DENSEWOOD)) return IP_MATERIAL_DENSEWOOD;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DRAGONSHARD)) return IP_MATERIAL_DRAGONSHARD;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_IRON_FLAMETOUCHED)) return IP_MATERIAL_IRON_FLAMETOUCHED;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_LIVEWOOD)) return IP_MATERIAL_LIVEWOOD;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_MOURNLODE_PURPLE)) return IP_MATERIAL_MOURNLODE_PURPLE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_SOARWOOD)) return IP_MATERIAL_SOARWOOD;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_TARGATH)) return IP_MATERIAL_TARGATH;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ASTRAL_DRIFTMETAL)) return IP_MATERIAL_ASTRAL_DRIFTMETAL;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ATANDUR)) return IP_MATERIAL_ATANDUR;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_BLENDED_QUARTZ)) return IP_MATERIAL_BLENDED_QUARTZ;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_CHITIN)) return IP_MATERIAL_CHITIN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DARKLEAF_ELVEN)) return IP_MATERIAL_DARKLEAF_ELVEN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DLARUN)) return IP_MATERIAL_DLARUN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DUSTWOOD)) return IP_MATERIAL_DUSTWOOD;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ELUKIAN_CLAY)) return IP_MATERIAL_ELUKIAN_CLAY;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ENTROPIUM)) return IP_MATERIAL_ENTROPIUM;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_GREENSTEEL_BAATORIAN)) return IP_MATERIAL_GREENSTEEL_BAATORIAN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_HIZAGKUUR)) return IP_MATERIAL_HIZAGKUUR;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_IRON_FEVER)) return IP_MATERIAL_IRON_FEVER;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_IRON_GEHENNAN_MORGHUTH)) return IP_MATERIAL_IRON_GEHENNAN_MORGHUTH;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_LEAFWEAVE)) return IP_MATERIAL_LEAFWEAVE;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_LIVING_METAL)) return IP_MATERIAL_LIVING_METAL;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_MINDSTEEL_URDRUKAR)) return IP_MATERIAL_MINDSTEEL_URDRUKAR;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_TRUESTEEL_SOLANIAN)) return IP_MATERIAL_TRUESTEEL_SOLANIAN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_WOOD_AGAFARI)) return IP_MATERIAL_WOOD_AGAFARI;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_CRYSTAL_DASL)) return IP_MATERIAL_CRYSTAL_DASL;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_DRAKE_IVORY)) return IP_MATERIAL_DRAKE_IVORY;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_ROPE_GIANT_HAIR)) return IP_MATERIAL_ROPE_GIANT_HAIR;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_OBSIDIAN)) return IP_MATERIAL_OBSIDIAN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_BAMBOO)) return IP_MATERIAL_BAMBOO;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_POTTERY)) return IP_MATERIAL_POTTERY;
return IP_MATERIAL_INVALID;
}
//::///////////////////////////////////////////////////////////////
// string IPGetMaterialName( itemproperty ipMaterial, int bLowerCase = FALSE)
// Given an itempropety this function returns the material name of the property
// as a string if it is a material property. If the specified itemproperty is
// not a material property it returns IP_MATERIAL_NAME_INVALID.
//::///////////////////////////////////////////////////////////////
// Parameters: itemproperty ipMaterial - the itemproperty to check
// int bLowerCase - if TRUE the returned name is all lower case
// if FALSE the returned name is first letter cap
//
// Returns: the material name IP_MATERIAL_NAME_* of the material itemproperty
// or IP_MATERIAL_NAME_INVALID if the itemproperty is not a material
// itemproperty or is an invalid itemproperty.
//::///////////////////////////////////////////////////////////////
string IPGetMaterialName( itemproperty ipMaterial, int bLowerCase = FALSE);
string IPGetMaterialName( itemproperty ipMaterial, int bLowerCase = FALSE)
{
int iType = GetItemPropertyType( ipMaterial);
int iMaterial = GetItemPropertyCostTableValue( ipMaterial);
if( !GetIsItemPropertyValid( ipMaterial) || (iType != ITEM_PROPERTY_MATERIAL) || (iMaterial < IP_MATERIAL_UNKNOWN) || (iMaterial > IP_NUM_MATERIALS)) return IP_MATERIAL_NAME_INVALID;
return GetMaterialName( iMaterial, bLowerCase);
}
//::///////////////////////////////////////////////////////////////
// int IPGetMaterialType( itemproperty ipMaterial)
// Given an itempropety this function returns the material type of the property
// if it is a material itemproperty. If the specified itemproperty is invalid or
// not a material property it returns IP_MATERIAL_INVALID.
//::///////////////////////////////////////////////////////////////
// Parameters: itemproperty ipMaterial - the itemproperty to check
//
// Returns: the material type IP_MATERIAL_* of the material itemproperty or
// IP_MATERIAL_INVALID if the itemproperty is not a material itemproperty
// or is an invalid itemproperty.
//::///////////////////////////////////////////////////////////////
int IPGetMaterialType( itemproperty ipMaterial);
int IPGetMaterialType( itemproperty ipMaterial)
{
int iType = GetItemPropertyType( ipMaterial);
int iMaterial = GetItemPropertyCostTableValue( ipMaterial);
if( !GetIsItemPropertyValid( ipMaterial) || (iType != ITEM_PROPERTY_MATERIAL) || (iMaterial < IP_MATERIAL_UNKNOWN) || (iMaterial > IP_NUM_MATERIALS)) return IP_MATERIAL_INVALID;
return (((iMaterial > IP_MATERIAL_INVALID) && (iMaterial <= IP_NUM_MATERIALS)) ? iMaterial : IP_MATERIAL_INVALID);
}
//::///////////////////////////////////////////////////////////////
// itemproperty ItemPropertyMaterialByName( string sMaterialName)
// Given a valid material name this function returns a new material itemproperty of
// that type or and invalid itemproperty if the material name is not recognized.
//::///////////////////////////////////////////////////////////////
// Parameters: string sMaterialName - the material name IP_MATERIAL_NAME_*
//
// Returns: a material itemproperty or an invalid itempropery if the specified
// material name is unrecognized.
//::///////////////////////////////////////////////////////////////
itemproperty ItemPropertyMaterialByName( string sMaterialName);
itemproperty ItemPropertyMaterialByName( string sMaterialName)
{
return ItemPropertyMaterial( GetIPMaterial( sMaterialName));
}
//::///////////////////////////////////////////////////////////////
// void IPAddMaterialProperty( int iMaterialType, int nDurationType, object oItem, float fDuration = 0.0f)
// Adds a material itempropery specified by material type to an item for a
// given duration type and duration.
//::///////////////////////////////////////////////////////////////
// Parameters: int iMaterialType - the material type IP_MATERIAL_*
// int nDurationType - the duration type
// DURATION_TYPE_TEMPORARY, must also supply a duration
// DURATION_TYPE_PERMANENT, duration is ignored
// object oItem - the item to add the itempropery to.
// float fDuration - the duration in seconds that the itemproperty
// will stay on the item before being automatically
// removed. Ignored if duration type is permanent.
// Default = 0.0 seconds.
//
// Returns: none. Note this does not check to see if the material property already
// exists on the item and can add duplicate material properties to it.
//::///////////////////////////////////////////////////////////////
void IPAddMaterialProperty( int iMaterialType, int nDurationType, object oItem, float fDuration = 0.0f);
void IPAddMaterialProperty( int iMaterialType, int nDurationType, object oItem, float fDuration = 0.0f)
{
itemproperty ipMaterial = ItemPropertyMaterial( iMaterialType);
if( GetIsItemPropertyValid( ipMaterial)) AddItemProperty( nDurationType, ipMaterial, oItem, fDuration);
}
//::///////////////////////////////////////////////////////////////
// void IPAddMaterialPropertyByName( string sMaterialName, int nDurationType, object oItem, float fDuration = 0.0f)
// Adds a material itempropery specified by material name to an item for a
// given duration type and duration.
//::///////////////////////////////////////////////////////////////
// Parameters: string sMaterialName - the material name IP_MATERIAL_NAME_*
// int nDurationType - the duration type
// DURATION_TYPE_TEMPORARY, must also supply a duration
// DURATION_TYPE_PERMANENT, duration is ignored
// object oItem - the item to add the itempropery to.
// float fDuration - the duration in seconds that the itemproperty
// will stay on the item before being automatically
// removed. Ignored if duration type is permanent.
// Default = 0.0 seconds.
//
// Returns: none. Note this does not check to see if the material property already
// exists on the item and can add duplicate material properties to it.
//::///////////////////////////////////////////////////////////////
void IPAddMaterialPropertyByName( string sMaterialName, int nDurationType, object oItem, float fDuration = 0.0f);
void IPAddMaterialPropertyByName( string sMaterialName, int nDurationType, object oItem, float fDuration = 0.0f)
{
IPAddMaterialProperty( GetIPMaterial( sMaterialName), nDurationType, oItem, fDuration);
}
//::///////////////////////////////////////////////////////////////
// void IPSafeAddMaterialProperty( int iMaterialType, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE)
// Adds a material itempropery specified by material type to an item for a
// given duration. Checks to see if a material itemproperty of the same type
// already exists on the item and adds the new one based on the add/drop policy
// and ignore parameters specified.
//::///////////////////////////////////////////////////////////////
// Parameters: int iMaterialType - the material type IP_MATERIAL_*
// object oItem - the item to add the itempropery to.
// float fDuration - 0.0 for permanent, anything else is temporary
// Default = 0.0
// int nAddItemPropertyPolicy - the add/drop policy to use X2_IP_ADDPROP_POLICY_*
// Default = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING
// int bIgnoreDurationType - TRUE or FALSE to ignore existing itemproperty duration types.
// Default = FALSE
// int bIgnoreSubType - TRUE or FALSE to ignore existing itemproperty subtypes
// Default = FALSE
//
// Returns: none.
//::///////////////////////////////////////////////////////////////
void IPSafeAddMaterialProperty( int iMaterialType, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE);
void IPSafeAddMaterialProperty( int iMaterialType, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE)
{
itemproperty ipMaterial = ItemPropertyMaterial( iMaterialType);
if( GetIsItemPropertyValid( ipMaterial)) IPSafeAddItemProperty( oItem, ipMaterial, fDuration, nAddItemPropertyPolicy, bIgnoreDurationType, bIgnoreSubType);
}
//::///////////////////////////////////////////////////////////////
// void IPSafeAddMaterialPropertyByName( string sMaterialName, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE)
// Adds a material itempropery specified by material name to an item for a
// given duration. Checks to see if a material itemproperty of the same type
// already exists on the item and adds the new one based on the add/drop policy
// and ignore parameters specified.
//::///////////////////////////////////////////////////////////////
// Parameters: string sMaterialName - the material name IP_MATERIAL_NAME_*
// object oItem - the item to add the itempropery to.
// float fDuration - 0.0 for permanent, anything else is temporary
// Default = 0.0
// int nAddItemPropertyPolicy - the add/drop policy to use X2_IP_ADDPROP_POLICY_*
// Default = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING
// int bIgnoreDurationType - TRUE or FALSE to ignore existing itemproperty duration types.
// Default = FALSE
// int bIgnoreSubType - TRUE or FALSE to ignore existing itemproperty subtypes
// Default = FALSE
//
// Returns: none.
//::///////////////////////////////////////////////////////////////
void IPSafeAddMaterialPropertyByName( string sMaterialName, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE);
void IPSafeAddMaterialPropertyByName( string sMaterialName, object oItem, float fDuration = 0.0f, int nAddItemPropertyPolicy = X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, int bIgnoreDurationType = FALSE, int bIgnoreSubType = FALSE)
{
IPSafeAddMaterialProperty( GetIPMaterial( sMaterialName), oItem, fDuration, nAddItemPropertyPolicy, bIgnoreDurationType, bIgnoreSubType);
}
//::///////////////////////////////////////////////////////////////
// int GetItemHasMaterial( object oItem, int iMaterialType)
// Given a valid item and material type, this function returns TRUE if the
// item has an itemproperty of the specified type on it.
//::///////////////////////////////////////////////////////////////
// Parameters: object oItem - the item to check.
// int iMaterialType - the material type to check for IP_MATERIAL_*
//
// Returns: TRUE if the item is a valid item and has a material itemproperty of
// the specified type on it. FALSE otherwise.
//::///////////////////////////////////////////////////////////////
int GetItemHasMaterial( object oItem, int iMaterialType);
int GetItemHasMaterial( object oItem, int iMaterialType)
{
if( !GetIsObjectValid( oItem) || (GetObjectType( oItem) != OBJECT_TYPE_ITEM) ||
(iMaterialType <= IP_MATERIAL_INVALID) || (iMaterialType > IP_NUM_MATERIALS)) return FALSE;
itemproperty ipMaterial = GetFirstItemProperty( oItem);
while( GetIsItemPropertyValid( ipMaterial))
{
if( IPGetMaterialType( ipMaterial) == iMaterialType) return TRUE;
ipMaterial = GetNextItemProperty( oItem);
}
return FALSE;
}
//::///////////////////////////////////////////////////////////////
// int GetItemHasMaterialByName( object oItem, string sMaterialName)
// Given a valid item and material name, this function returns TRUE if the
// item has an itemproperty of the specified type on it.
//::///////////////////////////////////////////////////////////////
// Parameters: object oItem - the item to check.
// string sMaterialName - the material Name to check for IP_MATERIAL_NAME_*
//
// Returns: TRUE if the item is a valid item and has a material itemproperty of
// the specified type on it. FALSE otherwise.
//::///////////////////////////////////////////////////////////////
int GetItemHasMaterialByName( object oItem, string sMaterialName);
int GetItemHasMaterialByName( object oItem, string sMaterialName)
{
return GetItemHasMaterial( oItem, GetIPMaterial( sMaterialName));
}
//:: Returns the general type of material nMaterial is.
int GetMaterialType(int nMaterial);
int GetMaterialType(int nMaterial)
{
if ( nMaterial == IP_MATERIAL_INVALID )
return MATERIAL_TYPE_INVALID;
else if ( nMaterial == IP_MATERIAL_BONE
|| nMaterial == IP_MATERIAL_SCALE
|| nMaterial == IP_MATERIAL_CHITIN
|| nMaterial == IP_MATERIAL_DRAKE_IVORY )
return MATERIAL_TYPE_BONE;
else if ( nMaterial == IP_MATERIAL_ELUKIAN_CLAY
|| nMaterial == IP_MATERIAL_POTTERY )
return MATERIAL_TYPE_CERAMIC;
else if ( nMaterial == IP_MATERIAL_CLOTH
|| nMaterial == IP_MATERIAL_COTTON
|| nMaterial == IP_MATERIAL_SILK
|| nMaterial == IP_MATERIAL_WOOL )
return MATERIAL_TYPE_FABRIC;
else if ( nMaterial == IP_MATERIAL_GEM
|| nMaterial == IP_MATERIAL_GEM_ALEXANDRITE
|| nMaterial == IP_MATERIAL_GEM_AMETHYST
|| nMaterial == IP_MATERIAL_GEM_AVENTURINE
|| nMaterial == IP_MATERIAL_GEM_BELJURIL
|| nMaterial == IP_MATERIAL_GEM_BLOODSTONE
|| nMaterial == IP_MATERIAL_GEM_BLUE_DIAMOND
|| nMaterial == IP_MATERIAL_GEM_CANARY_DIAMOND
|| nMaterial == IP_MATERIAL_GEM_DIAMOND
|| nMaterial == IP_MATERIAL_GEM_EMERALD
|| nMaterial == IP_MATERIAL_GEM_FIRE_AGATE
|| nMaterial == IP_MATERIAL_GEM_FIRE_OPAL
|| nMaterial == IP_MATERIAL_GEM_FLUORSPAR
|| nMaterial == IP_MATERIAL_GEM_GARNET
|| nMaterial == IP_MATERIAL_GEM_GREENSTONE
|| nMaterial == IP_MATERIAL_GEM_JACINTH
|| nMaterial == IP_MATERIAL_GEM_KINGS_TEAR
|| nMaterial == IP_MATERIAL_GEM_MALACHITE
|| nMaterial == IP_MATERIAL_GEM_OBSIDIAN
|| nMaterial == IP_MATERIAL_GEM_PHENALOPE
|| nMaterial == IP_MATERIAL_GEM_ROGUE_STONE
|| nMaterial == IP_MATERIAL_GEM_RUBY
|| nMaterial == IP_MATERIAL_GEM_SAPPHIRE
|| nMaterial == IP_MATERIAL_GEM_STAR_SAPPHIRE
|| nMaterial == IP_MATERIAL_GEM_TOPAZ
|| nMaterial == IP_MATERIAL_GEM_CRYSTAL_DEEP
|| nMaterial == IP_MATERIAL_GEM_CRYSTAL_MUNDANE
|| nMaterial == IP_MATERIAL_GLASS
|| nMaterial == IP_MATERIAL_ICE
|| nMaterial == IP_MATERIAL_CRYSTAL_DASL
|| nMaterial == IP_MATERIAL_OBSIDIAN )
return MATERIAL_TYPE_CRYSTAL;
else if ( nMaterial == IP_MATERIAL_HIDE
|| nMaterial == IP_MATERIAL_HIDE_SALAMANDER
|| nMaterial == IP_MATERIAL_HIDE_UMBER_HULK
|| nMaterial == IP_MATERIAL_HIDE_WYVERN
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_BLACK
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_BLUE
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_BRASS
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_BRONZE
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_COPPER
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_GOLD
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_GREEN
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_RED
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_SILVER
|| nMaterial == IP_MATERIAL_HIDE_DRAGON_WHITE
|| nMaterial == IP_MATERIAL_LEATHER
|| nMaterial == IP_MATERIAL_LEAFWEAVE )
return MATERIAL_TYPE_LEATHER;
else if ( nMaterial == IP_MATERIAL_ADAMANTINE
|| nMaterial == IP_MATERIAL_BRASS
|| nMaterial == IP_MATERIAL_COLD_IRON
|| nMaterial == IP_MATERIAL_DARKSTEEL
|| nMaterial == IP_MATERIAL_MITHRAL
|| nMaterial == IP_MATERIAL_SILVER_ALCHEMICAL
|| nMaterial == IP_MATERIAL_STEEL
|| nMaterial == IP_MATERIAL_BYESHK
|| nMaterial == IP_MATERIAL_CALOMEL
|| nMaterial == IP_MATERIAL_CRYSTEEL_RIEDRAN
|| nMaterial == IP_MATERIAL_IRON_FLAMETOUCHED
|| nMaterial == IP_MATERIAL_MOURNLODE_PURPLE
|| nMaterial == IP_MATERIAL_TARGATH
|| nMaterial == IP_MATERIAL_ASTRAL_DRIFTMETAL
|| nMaterial == IP_MATERIAL_ATANDUR
|| nMaterial == IP_MATERIAL_BLENDED_QUARTZ
|| nMaterial == IP_MATERIAL_DLARUN
|| nMaterial == IP_MATERIAL_ENTROPIUM
|| nMaterial == IP_MATERIAL_GREENSTEEL_BAATORIAN
|| nMaterial == IP_MATERIAL_HIZAGKUUR
|| nMaterial == IP_MATERIAL_IRON_FEVER
|| nMaterial == IP_MATERIAL_IRON_GEHENNAN_MORGHUTH
|| nMaterial == IP_MATERIAL_LIVING_METAL
|| nMaterial == IP_MATERIAL_MINDSTEEL_URDRUKAR
|| nMaterial == IP_MATERIAL_TRUESTEEL_SOLANIAN
|| nMaterial == IP_MATERIAL_BRONZE
|| nMaterial == IP_MATERIAL_COPPER
|| nMaterial == IP_MATERIAL_GOLD
|| nMaterial == IP_MATERIAL_IRON
|| nMaterial == IP_MATERIAL_LEAD
|| nMaterial == IP_MATERIAL_PLATINUM
|| nMaterial == IP_MATERIAL_SILVER
|| nMaterial == IP_MATERIAL_OBDURIUM )
return MATERIAL_TYPE_METAL;
else if ( nMaterial == IP_MATERIAL_PAPER )
return MATERIAL_TYPE_PAPER;
else if ( nMaterial == IP_MATERIAL_ROPE_HEMP
|| nMaterial == IP_MATERIAL_ROPE_GIANT_HAIR )
return MATERIAL_TYPE_ROPE;
else if ( nMaterial == IP_MATERIAL_CARBON
|| nMaterial == IP_MATERIAL_ELEMENTAL
|| nMaterial == IP_MATERIAL_ELEMENTAL_AIR
|| nMaterial == IP_MATERIAL_ELEMENTAL_EARTH
|| nMaterial == IP_MATERIAL_ELEMENTAL_FIRE
|| nMaterial == IP_MATERIAL_ELEMENTAL_WATER
|| nMaterial == IP_MATERIAL_STONE
|| nMaterial == IP_MATERIAL_DEEP_CORAL
|| nMaterial == IP_MATERIAL_DRAGONSHARD )
return MATERIAL_TYPE_STONE;
else if ( nMaterial == IP_MATERIAL_WOOD
|| nMaterial == IP_MATERIAL_WOOD_IRONWOOD
|| nMaterial == IP_MATERIAL_WOOD_DUSKWOOD
|| nMaterial == IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR
|| nMaterial == IP_MATERIAL_WOOD_ASH
|| nMaterial == IP_MATERIAL_WOOD_YEW
|| nMaterial == IP_MATERIAL_WOOD_OAK
|| nMaterial == IP_MATERIAL_WOOD_PINE
|| nMaterial == IP_MATERIAL_WOOD_CEDAR
|| nMaterial == IP_MATERIAL_WOOD_LIVING
|| nMaterial == IP_MATERIAL_WOOD_BRONZE
|| nMaterial == IP_MATERIAL_DENSEWOOD
|| nMaterial == IP_MATERIAL_LIVEWOOD
|| nMaterial == IP_MATERIAL_SOARWOOD
|| nMaterial == IP_MATERIAL_DARKLEAF_ELVEN
|| nMaterial == IP_MATERIAL_DUSTWOOD
|| nMaterial == IP_MATERIAL_WOOD_AGAFARI
|| nMaterial == IP_MATERIAL_BAMBOO )
return MATERIAL_TYPE_WOOD;
else { return MATERIAL_TYPE_UNKNOWN; }
}
//:: Returns the name of nMaterialType as a string.
string GetMaterialTypeName(int nMaterialType, int bLowerCase = FALSE);
string GetMaterialTypeName(int nMaterialType, int bLowerCase = FALSE)
{
string sName;
sName = Get2DACache("prc_materialtype", "Name", nMaterialType);
if (sName == "")
sName = "Invalid";
return (bLowerCase ? GetStringLowerCase( sName) : sName);
}
//:: Returns the Hardness of a material.
int GetIPMaterialHardness(int nMaterial);
int GetIPMaterialHardness(int nMaterial)
{
int nHardness;
nHardness = StringToInt(Get2DACache("prc_material", "Hardness", nMaterial));
if (nHardness < 0)
nHardness = 1000;
return nHardness;
}
//:: Returns the Hit Points Per Inch of a material.
int GetIPMaterialHitPointMod(int nMaterial);
int GetIPMaterialHitPointMod(int nMaterial)
{
int nHPMod;
nHPMod = StringToInt(Get2DACache("prc_material", "HitPointsPerInch", nMaterial));
if (nHPMod < 1)
nHPMod = 1000;
return nHPMod;
}
//:: void main(){}

View File

@@ -1,3 +1,4 @@
//:: New itemproperties
const int ITEM_PROPERTY_USE_LIMITATION_ABILITY_SCORE = 95;
const int ITEM_PROPERTY_USE_LIMITATION_SKILL_RANKS = 96;
const int ITEM_PROPERTY_USE_LIMITATION_SPELL_LEVEL = 88;
@@ -16,7 +17,7 @@ const int ITEM_PROPERTY_WIZARDRY = 102;
const int ITEM_PROPERTY_DIVINITY = 103;
const int ITEM_PROPERTY_ECHOBLADE = 104;
//:: AoE itemproperties
const int IP_CONST_AOE_DARKNESS = 0;
const int IP_CONST_AOE_DEEPER_DARKNESS = 1;
const int IP_CONST_AOE_CIRCLE_VS_EVIL = 2;

View File

@@ -4,26 +4,27 @@
//::: iprp_feats
const int IP_CONST_FEAT_IMPROVED_CRITICAL_UNARMED = 20;
const int IP_CONST_FEAT_WEAPON_FINESSE = 95;
const int IP_CONST_FEAT_TRACK = 94;
const int IP_CONST_FEAT_IMPROVED_UNARMED_STRIKE = 93;
const int IP_CONST_FEAT_TRAPFINDING = 392;
const int IP_CONST_FEAT_DEFLECT_ARROWS = 92;
const int IP_CONST_FEAT_AWESOME_BLOW = 571;
const int IP_CONST_FEAT_PRC_ATTACK = 572;
const int IP_CONST_FEAT_BANE_MAGIC_DRAGON = 91;
const int IP_CONST_FEAT_BONES_EARTH = 90;
const int IP_CONST_FEAT_BREATHLESS = 574;
const int IP_CONST_FEAT_IMPROVED_BULL_RUSH = 89;
const int IP_CONST_FEAT_WATER_BREATHING = 575;
const int IP_CONST_FEAT_TURN_UNDEAD = 88;
const int IP_CONST_FEAT_THUG = 576;
const int IP_CONST_FEAT_MOUNTED_COMBAT = 577;
const int IP_CONST_FEAT_MOUNTED_ARCHERY = 578;
const int IP_CONST_FEAT_PRC_DEATH_ATTACK = 579;
const int IP_CONST_FEAT_DAYLIGHTADAPT = 581;
const int IP_CONST_FEAT_RAGE = 87;
const int IP_CONST_FEAT_IMPROVED_CRITICAL_UNARMED = 20;
const int IP_CONST_FEAT_WEAPON_FINESSE = 95;
const int IP_CONST_FEAT_TRACK = 94;
const int IP_CONST_FEAT_IMPROVED_UNARMED_STRIKE = 93;
const int IP_CONST_FEAT_TRAPFINDING = 392;
const int IP_CONST_FEAT_DEFLECT_ARROWS = 92;
const int IP_CONST_FEAT_AWESOME_BLOW = 571;
const int IP_CONST_FEAT_PRC_ATTACK = 572;
const int IP_CONST_FEAT_BANE_MAGIC_DRAGON = 91;
const int IP_CONST_FEAT_BONES_EARTH = 90;
const int IP_CONST_FEAT_BREATHLESS = 574;
const int IP_CONST_FEAT_IMPROVED_BULL_RUSH = 89;
const int IP_CONST_FEAT_WATER_BREATHING = 575;
const int IP_CONST_FEAT_TURN_UNDEAD = 88;
const int IP_CONST_FEAT_THUG = 576;
const int IP_CONST_FEAT_MOUNTED_COMBAT = 577;
const int IP_CONST_FEAT_MOUNTED_ARCHERY = 578;
const int IP_CONST_FEAT_PRC_DEATH_ATTACK = 579;
const int IP_CONST_FEAT_RAGE = 87;
const int IP_CONST_FEAT_BLINDSIGHT_60_FT = 4670;
const int IP_CONST_FEAT_DAYLIGHTADAPT = 581;
//:: Crafting feats
const int IP_FEAT_FEAT_SCRIBE_SCROLL = 4340;

View File

@@ -2617,7 +2617,29 @@ int HaagentiTransmutation(object oTarget, int nSpellID)
return TRUE;
}
int KarsiteInability(object oCaster, int nCastingClass)
{
if (GetRacialType(oCaster) == RACIAL_TYPE_KARSITE)
{
//:: Check if the spell originates from an item
object oSpellSource = GetSpellCastItem();
if (GetIsObjectValid(oSpellSource))
{
//:: Spell is cast from an item; allow it
return TRUE;
}
if (GetIsDivineClass(nCastingClass, oCaster) || GetIsArcaneClass(nCastingClass, oCaster))
{
return FALSE;
}
}
// Default: allow
return TRUE;
}
/* int KarsiteInability(object oCaster, int nCastingClass)
{
if (GetRacialType(oCaster) == RACIAL_TYPE_KARSITE)
{
@@ -2626,7 +2648,7 @@ int KarsiteInability(object oCaster, int nCastingClass)
}
return TRUE;
}
} */
int UrCleric(object oCaster, int nCastingClass)
{

View File

@@ -305,6 +305,7 @@ include\pnp_lich_inc.nss \
include\pnp_shft_main.nss \
include\pnp_shft_poly.nss \
include\prc_add_spell_dc.nss \
include\prc_add_spl_pen.ncs \
include\prc_add_spl_pen.nss \
include\prc_allow_const.nss \
include\prc_alterations.nss \
@@ -343,6 +344,7 @@ include\prc_inc_hextor.nss \
include\prc_inc_itmrstr.nss \
include\prc_inc_leadersh.nss \
include\prc_inc_listener.nss \
include\prc_inc_material.nss \
include\prc_inc_nat_hb.nss \
include\prc_inc_natweap.nss \
include\prc_inc_newip.nss \
@@ -6820,6 +6822,7 @@ epicspellobjs\wander_unseen.ncs
2das\iprp_feats.2da \
2das\iprp_incvalue1.2da \
2das\iprp_incvalue2.2da \
2das\iprp_material.2da \
2das\iprp_maxpp.2da \
2das\iprp_metamagic.2da \
2das\iprp_monstcost.2da \
@@ -6872,6 +6875,8 @@ epicspellobjs\wander_unseen.ncs
2das\prc_desc_water.2da \
2das\prc_domains.2da \
2das\prc_familiar.2da \
2das\prc_material.2da \
2das\prc_materialtype.2da \
2das\prc_polymorph.2da \
2das\prc_rune_craft.2da \
2das\prc_spells.2da \
@@ -26206,6 +26211,7 @@ newspellbook\tob_dvsp_imfort.nss \
newspellbook\tob_dvsp_imfrtoh.nss \
newspellbook\tob_dvsp_lwbrr.nss \
newspellbook\tob_dvsp_mrtsprt.nss \
newspellbook\tob_dvsp_ntgnle.nss \
newspellbook\tob_dvsp_ntngle.nss \
newspellbook\tob_dvsp_prford.nss \
newspellbook\tob_dvsp_rdtchrg.nss \
@@ -27375,6 +27381,7 @@ newspellbookobjs\tob_dvsp_imfort.ncs \
newspellbookobjs\tob_dvsp_imfrtoh.ncs \
newspellbookobjs\tob_dvsp_lwbrr.ncs \
newspellbookobjs\tob_dvsp_mrtsprt.ncs \
newspellbookobjs\tob_dvsp_ntgnle.ncs \
newspellbookobjs\tob_dvsp_ntngle.ncs \
newspellbookobjs\tob_dvsp_prford.ncs \
newspellbookobjs\tob_dvsp_rdtchrg.ncs \
@@ -36418,6 +36425,8 @@ newspellbookobjs\tob_dvsp_lwbrr.ncs: newspellbook\tob_dvsp_lwbrr.nss include\tob
newspellbookobjs\tob_dvsp_mrtsprt.ncs: newspellbook\tob_dvsp_mrtsprt.nss include\tob_inc_move.nss include\tob_movehook.nss include\tob_inc_martlore.nss include\tob_inc_recovery.nss include\tob_inc_tobfunc.nss include\tob_move_const.nss include\prc_alterations.nss include\tob_inc_moveknwn.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_spells.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\x2_inc_spellhook.nss include\prc_x2_craft.nss include\prc_inc_combat.nss include\prc_inc_itmrstr.nss include\prc_inc_burn.nss include\pnp_shft_main.nss include\inc_dynconv.nss include\inc_npc.nss include\prc_add_spell_dc.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_getbest_inc.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss
newspellbookobjs\tob_dvsp_ntgnle.ncs: newspellbook\tob_dvsp_ntgnle.nss include\tob_inc_move.nss include\tob_movehook.nss include\tob_inc_martlore.nss include\tob_inc_recovery.nss include\tob_inc_tobfunc.nss include\tob_move_const.nss include\prc_alterations.nss include\tob_inc_moveknwn.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_spells.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\x2_inc_spellhook.nss include\prc_x2_craft.nss include\prc_inc_combat.nss include\prc_inc_itmrstr.nss include\prc_inc_burn.nss include\pnp_shft_main.nss include\inc_dynconv.nss include\inc_npc.nss include\prc_add_spell_dc.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_getbest_inc.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss
newspellbookobjs\tob_dvsp_ntngle.ncs: newspellbook\tob_dvsp_ntngle.nss include\tob_inc_move.nss include\tob_movehook.nss include\tob_inc_martlore.nss include\tob_inc_recovery.nss include\tob_inc_tobfunc.nss include\tob_move_const.nss include\prc_alterations.nss include\tob_inc_moveknwn.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_spells.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\x2_inc_spellhook.nss include\prc_x2_craft.nss include\prc_inc_combat.nss include\prc_inc_itmrstr.nss include\prc_inc_burn.nss include\pnp_shft_main.nss include\inc_dynconv.nss include\inc_npc.nss include\prc_add_spell_dc.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_getbest_inc.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss
newspellbookobjs\tob_dvsp_prford.ncs: newspellbook\tob_dvsp_prford.nss include\tob_inc_move.nss include\tob_movehook.nss include\tob_inc_martlore.nss include\tob_inc_recovery.nss include\tob_inc_tobfunc.nss include\tob_move_const.nss include\prc_alterations.nss include\tob_inc_moveknwn.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\prc_inc_spells.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\x2_inc_spellhook.nss include\prc_x2_craft.nss include\prc_inc_combat.nss include\prc_inc_itmrstr.nss include\prc_inc_burn.nss include\pnp_shft_main.nss include\inc_dynconv.nss include\inc_npc.nss include\prc_add_spell_dc.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\prc_getbest_inc.nss include\prc_inc_function.nss include\prc_inc_util.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss

View File

@@ -0,0 +1,66 @@
/*
----------------------------
Reth Dekala Entangling Blade
tob_dvsp_rthdkln
----------------
2024-12-05 07:55:55 by Jaysyn
*/ /** @file
Reth Dekala Entangling Blade
Devoted Spirit (Strike)
Level: Crusader 4
Prerequisite: One Devoted Spirit Maneuver
Initiation Action: 1 Standard Action
Range: Melee Attack
Target: One Creature
Duration: 1 round.
You hack into your foe's legs, forcing his movement to slow and his resolution to falter.
You make a single attack against an enemy. If this attack hits, you deal 2d6 extra damage, and your foe takes a 20 ft penalty to his movement speed.
*/
#include "tob_inc_move"
#include "tob_movehook"
// Function to handle attack and effects
void TOBAttack(object oTarget, object oInitiator)
{
effect eNone;
PerformAttack(oTarget, oInitiator, eNone, 0.0, 0, 0, 0, "Reth Dekala Hit", "Reth Dekala Miss");
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack"))
{
// Apply 2d6 extra damage
int nBonusDamage = d6(2);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nBonusDamage, DAMAGE_TYPE_SLASHING), oTarget);
// Apply movement speed penalty and visual effect
effect eLink = EffectLinkEffects(EffectMovementSpeedDecrease(20), EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE_RED));
eLink = ExtraordinaryEffect(eLink);
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, 6.0); // 6.0 seconds == 1 round
}
}
// Main function
void main()
{
if (!PreManeuverCastCode())
{
// If code within the PreManeuverCastCode (e.g., UMD) reports FALSE, do not run this maneuver
return;
}
// End of Spell Cast Hook
object oInitiator = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
struct maneuver move = EvaluateManeuver(oInitiator, oTarget);
if (move.bCanManeuver)
{
DelayCommand(0.0, TOBAttack(oTarget, oInitiator));
}
}

View File

@@ -41,13 +41,12 @@
37 Natural_Armor_2 4761
38 Race_Outsider 4716
39 SkillAff_Jump_4 4763
40 Improved_Fortification 4580
41 RethDekala_VilefireBlast 5409
42 RethDekala_MartialSpirit 5410
43 RethDekala_ThicketOfBlades 5411
44 RethDekala_DauntingStrike 5412
45 RethDekala_DeathFromAbove 5413
46 RethDekala_DisarmingStrike 5414
47 RethDekala_EntanglingBlade 5415
48 RethDekala_WallOfBlades 5416
49 RethDekala_RecoverManeuver 5417
40 RethDekala_VilefireBlast 5409
41 RethDekala_MartialSpirit 5410
42 RethDekala_ThicketOfBlades 5411
43 RethDekala_DauntingStrike 5412
44 RethDekala_DeathFromAbove 5413
45 RethDekala_DisarmingStrike 5414
46 RethDekala_EntanglingBlade 5415
47 RethDekala_WallOfBlades 5416
48 RethDekala_RecoverManeuver 5417

View File

@@ -1,8 +1,7 @@
2DA V2.0
FeatLabel FeatIndex
0 ImmuneSneak 3591
1 LivingConstruct 4556
2 ImmuneCrits 3585
3 AdamantineBody 4781
4 PowerfulCharge 3506
FeatLabel FeatIndex
0 LivingConstruct 4556
1 AdamantineBody 4781
2 PowerfulCharge 3506
3 WeaponProfCreature 289

View File

@@ -1,8 +1,9 @@
2DA V2.0
FeatLabel FeatIndex
0 darkvision 228
1 SnakeBlood 386
2 skillaffinityspot 239
3 Innate_Resistence 2004
4 Yuan_Charm 2011
FeatLabel FeatIndex
0 darkvision 228
1 SnakeBlood 386
2 skillaffinityspot 239
3 Innate_Resistence 2004
4 Yuan_Charm 2011
5 FEAT_MONSTEROUS 4720

View File

@@ -5,6 +5,47 @@
#include "prc_inc_spells"
void DoFortification(object oPC)
{
if(DEBUG) DoDebug("race_hb >> DoFortification() is running.");
// Get or create the player's skin object
object oHide = GetPCSkin(oPC);
int nRace = GetRacialType(oPC);
if (nRace == RACIAL_TYPE_RETH_DEKALA)
{
// Apply immunity properties for 2 seconds
if(DEBUG) DoDebug("Applying Fortification");
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_CRITICAL_HITS), 2.0f);
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB), 2.0f);
// Schedule the next toggle in 4 seconds
DelayCommand(4.0f, DoFortification(oPC));
}
else if (nRace == RACIAL_TYPE_WARFORGED && !GetHasFeat(FEAT_IMPROVED_FORTIFICATION, oPC) && !GetHasFeat(FEAT_UNARMORED_BODY, oPC))
{
// Apply immunity properties for 1 seconds
if(DEBUG) DoDebug("Applying Light Fortification");
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_CRITICAL_HITS), 1.0f);
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB), 1.0f);
// Schedule the next toggle in 4 seconds
DelayCommand(4.0f, DoFortification(oPC));
}
else if (nRace == RACIAL_TYPE_WARFORGED_CHARGER && !GetHasFeat(FEAT_IMPROVED_FORTIFICATION, oPC) && !GetHasFeat(FEAT_UNARMORED_BODY, oPC))
{
// Apply immunity properties for 3 seconds
if(DEBUG) DoDebug("Applying Moderate Fortification");
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_CRITICAL_HITS), 3.0f);
IPSafeAddItemProperty(oHide, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_BACKSTAB), 3.0f);
// Schedule the next toggle in 4 seconds
DelayCommand(4.0f, DoFortification(oPC));
}
}
void main()
{
object oPC = OBJECT_SELF;
@@ -208,4 +249,16 @@ void main()
}
}
}
if (GetRacialType(oPC) == RACIAL_TYPE_RETH_DEKALA || GetRacialType(oPC) == RACIAL_TYPE_WARFORGED || GetRacialType(oPC) == RACIAL_TYPE_WARFORGED_CHARGER)
{
int bFortification = GetLocalInt(oPC, "FORTIFCATION_ACTIVE");
if (!bFortification)
{
DoFortification(oPC);
SetLocalInt(oPC, "FORTIFCATION_ACTIVE", 1);
if(DEBUG) DoDebug("race_hb >> DoFortification() activated.");
}
}
}

View File

@@ -26,12 +26,17 @@ void main()
int nDamage = 0;
int iChaMod = GetAbilityModifier(ABILITY_CHARISMA,oPC);
int iSkill = GetSkillRank(SKILL_IAIJUTSU_FOCUS,oPC)+ d20(); //Iaijutsu Focus Check
if(DEBUG) DoDebug("prc_iaijutsu >> Initial Iaijutsu focus check is "+IntToString(iSkill)+".");
if(GetHasFeat(FEAT_SKILL_FOCUS_IAI))
if(GetHasFeat(FEAT_EPIC_SKILL_FOCUS_IAI))
iSkill = iSkill + 13;
else
iSkill = iSkill + 3;
if(DEBUG) DoDebug("prc_iaijutsu >> Finall Iaijutsu focus check is "+IntToString(iSkill)+".");
//string OneKat;
int iDie = 0;
@@ -47,10 +52,20 @@ void main()
iDie = 9;
nDamage = d6(iDie);
if(DEBUG) DoDebug("prc_iaijutsu >> Iaijutsu damage = "+IntToString(nDamage)+" extra damage.");
if(GetHasFeat(FEAT_STRIKE_VOID)) nDamage = nDamage + iChaMod*iDie;
if(GetHasFeat(FEAT_STRIKE_VOID))
{
nDamage = nDamage + iChaMod*iDie;
if(DEBUG) DoDebug("prc_iaijutsu >> Strike of the Void grants +"+IntToString(iChaMod+iDie)+" extra damage.");
}
// Only works on flatfooted foes or objects. Does half damage to objects
if (!GetIsDeniedDexBonusToAC(oTarget, oPC) && GetObjectType(oTarget) == OBJECT_TYPE_CREATURE) nDamage = 0;
if (!GetIsDeniedDexBonusToAC(oTarget, oPC) && GetObjectType(oTarget) == OBJECT_TYPE_CREATURE)
{
if(DEBUG) DoDebug("prc_iaijutsu >> Target is not flat-footed");
nDamage = 0;
}
else if (GetObjectType(oTarget) != OBJECT_TYPE_CREATURE) nDamage /= 2;
}

View File

@@ -3166,8 +3166,7 @@ Duration: 1 round/level (D)
Saving Throw: No
Spell Resistance: None
By casting aura of the sun, you fill the area around you with warm, glowing light that eliminates natural shadows and hampers magical darkness.Any creature attempting to cast a spell from the shadow subschool or a spell with the darkness descriptor within an aura of the sun must succeed on a caster level check (DC 11 + your caster level), or the spell fails. Areas of magical darkness originating from 3rd-level or lower spells and effects are temporarily suppressed when overlapping with an aura of the sun. Creatures that take penalties
in bright light also take them while within an aura of the sun, and an undead creature takes 1d6 points of positive energy damage at the end of its turn every round that it spends within the spell's area.Furthermore, any creature attempting to hide within the aura takes a -4 penalty on Hide checks.
By casting aura of the sun, you fill the area around you with warm, glowing light that eliminates natural shadows and hampers magical darkness. Any creature attempting to cast a spell from the shadow subschool or a spell with the darkness descriptor within an aura of the sun must succeed on a caster level check (DC 11 + your caster level), or the spell fails. Areas of magical darkness originating from 3rd-level or lower spells and effects are temporarily suppressed when overlapping with an aura of the sun. Creatures that take penalties in bright light also take them while within an aura of the sun, and an undead creature takes 1d6 points of positive energy damage at the end of its turn every round that it spends within the spell's area.Furthermore, any creature attempting to hide within the aura takes a -4 penalty on Hide checks.
This effect is centered on you and moves with you.
@@ -14280,7 +14279,7 @@ The Tempest is the point of calm within a whirling barrier of deadly blades. Poe
REQUIREMENTS:
Base Attack Bonus: +9.
Feats: Ambidexterity, Dodge, Mobility, Spring Attack, Two-Weapon Fighting, and Weapon Finesse (any) or Weapon Focus (any). Rangers are considered to have Ambidexterity and Two-Weapon-Fighting at Level 1.
Feats: Dodge, Mobility, Spring Attack, Two-Weapon Fighting, and Weapon Finesse (any) or Weapon Focus (any). Rangers are considered to have Two-Weapon-Fighting at Level 1.
CLASS FEATURES:
@@ -15568,7 +15567,7 @@ Feats: True Lycanthrope or Iron Will
Alignment: Any non-lawful and non-good
Other: If not a true lycanthrope, you must be infected by someone who is.
CLASS FEATURES:
WEREWOLF CLASS FEATURES:
Level
1: Lycanthropy, Alternate Form (Wolf), Low-light Vision, Shapechanger subtype, Werewolf Feat(Spot)
@@ -15577,7 +15576,7 @@ Level
Note: Only true lycanthropes can advance to level 3 in the werewolf class.
WOLF CLASS
WOLF CLASS FEATURES:
Level
1: Str + 2, Con + 2, Natural Armor + 2, Creature attacks
@@ -33594,8 +33593,7 @@ Duration: One year
Saving Throw: None
Spell Resistance: No
The caster calls 3d4 lemures from the Nine Hells to where he is, offering them the soul that he has prepared. In exchange, they will serve the caster for one year as guards, slaves, or whatever else he needs them for. They are non-intelligent,
so the caster cannot give them more complicated tasks than can be described in about five words.
The caster calls 3d4 lemures from the Nine Hells to where he is, offering them the soul that he has prepared. In exchange, they will serve the caster for one year as guards, slaves, or whatever else he needs them for. They are non-intelligent, so the caster cannot give them more complicated tasks than can be described in about five words.
No matter how many times the caster casts this spell, he can control no more than 2 HD worth of fiends per caster level. If he exceeds this number, all the newly called creatures fall under the caster's control, and any excess from previous
castings become uncontrolled. The caster chooses which creatures to release.
@@ -50784,7 +50782,7 @@ Specifics: You have learned to fight with your weapons in different ways. A char
<entry id="58725" lang="en" sex="m">Combat Style: Arcane</entry>
<entry id="58726" lang="en" sex="m">Let your mind do the fighting with this telekinesis based combat style.</entry>
<entry id="58727" lang="en" sex="m">Combat Style: Demon Blade</entry>
<entry id="58728" lang="en" sex="m">You fight like a man possessed.
<entry id="58728" lang="en" sex="m">You fight like you're possessed.
</entry>
<entry id="58729" lang="en" sex="m">Combat Style: Warrior</entry>
<entry id="58730" lang="en" sex="m">This sword &amp; shield combat style is heavy on blocking &amp; counters.</entry>
@@ -58642,10 +58640,7 @@ Use: Selected</entry>
<entry id="60929" lang="en" sex="m">Witchborn Binders</entry>
<entry id="60930" lang="en" sex="m">witchborn binder</entry>
<entry id="60931" lang="en" sex="m">(PRESTIGE CLASS)
Few creatures pose as much threat to human society as arcane spellcasters do. A single wizard can easily destroy an entire town, subvert a kingdom, or twist the very laws of nature with a few well-placed spells. Against this
obvious threat stands a fellowship of royal agents known as the Vigilant Servants, whose members make it their business to frustrate the plans of the witchborn-namely sorcerers, wizards, and other users of arcane magic. The
organization's elite agents are the witchborn binders - incarnum-wielding mage-hunters who can use the power of soul energy to create shields, traps, and shackles that can smother the magical powers of the witchborn and render
them helpless.
Few creatures pose as much threat to human society as arcane spellcasters do. A single wizard can easily destroy an entire town, subvert a kingdom, or twist the very laws of nature with a few well-placed spells. Against this obvious threat stands a fellowship of royal agents known as the Vigilant Servants, whose members make it their business to frustrate the plans of the witchborn-namely sorcerers, wizards, and other users of arcane magic. The organization's elite agents are the witchborn binders - incarnum-wielding mage-hunters who can use the power of soul energy to create shields, traps, and shackles that can smother the magical powers of the witchborn and render them helpless.
- Hit Die: d6
- Proficiencies: Witchborn Binders gain no new proficiencies
@@ -73239,4 +73234,49 @@ Special Abilities:
<entry id="77205" lang="en" sex="m">Ranger Spellcasting (Master of Shrouds)</entry>
<entry id="77206" lang="en" sex="m">Sohei Spellcasting (Master of Shrouds)</entry>
<entry id="77207" lang="en" sex="m">Ur-Priest Spellcasting (Master of Shrouds)</entry>
<entry id="200000" lang="en" sex="m">#PRC8 RESERVED#</entry>
<entry id="200001" lang="en" sex="m">#START PRC8 MATERIAL EXPANSION#</entry>
<entry id="200002" lang="en" sex="m">Paper</entry>
<entry id="200003" lang="en" sex="m">Glass</entry>
<entry id="200004" lang="en" sex="m">Ice</entry>
<entry id="200005" lang="en" sex="m">Hemp rope</entry>
<entry id="200006" lang="en" sex="m">Stone</entry>
<entry id="200007" lang="en" sex="m">Deep Coral</entry>
<entry id="200008" lang="en" sex="m">Living Wood</entry>
<entry id="200009" lang="en" sex="m">Obdurium</entry>
<entry id="200010" lang="en" sex="m">Bronze Wood</entry>
<entry id="200011" lang="en" sex="m">Byeshk</entry>
<entry id="200012" lang="en" sex="m">Calomel</entry>
<entry id="200013" lang="en" sex="m">Riedran Crysteel</entry>
<entry id="200014" lang="en" sex="m">Densewood</entry>
<entry id="200015" lang="en" sex="m">Dragonshard</entry>
<entry id="200016" lang="en" sex="m">Flametouched Iron</entry>
<entry id="200017" lang="en" sex="m">Livewood</entry>
<entry id="200018" lang="en" sex="m">Purple Mournlode</entry>
<entry id="200019" lang="en" sex="m">Soarwood</entry>
<entry id="200020" lang="en" sex="m">Targath</entry>
<entry id="200021" lang="en" sex="m">Astral Driftmetal</entry>
<entry id="200022" lang="en" sex="m">Atandur</entry>
<entry id="200023" lang="en" sex="m">Blended Quartz</entry>
<entry id="200024" lang="en" sex="m">Chitin</entry>
<entry id="200025" lang="en" sex="m">Elven Darkleaf</entry>
<entry id="200026" lang="en" sex="m">Dlarun</entry>
<entry id="200027" lang="en" sex="m">Dustwood</entry>
<entry id="200028" lang="en" sex="m">Elukian Clay</entry>
<entry id="200029" lang="en" sex="m">Entropium</entry>
<entry id="200030" lang="en" sex="m">Baatorian Greensteel</entry>
<entry id="200031" lang="en" sex="m">Hizagkuur</entry>
<entry id="200032" lang="en" sex="m">Fever Iron</entry>
<entry id="200033" lang="en" sex="m">Gehennan Morghuth Iron</entry>
<entry id="200034" lang="en" sex="m">Leafweave</entry>
<entry id="200035" lang="en" sex="m">Living Metal</entry>
<entry id="200036" lang="en" sex="m">Urdrukar Mindsteel</entry>
<entry id="200037" lang="en" sex="m">Solanian Truesteel</entry>
<entry id="200038" lang="en" sex="m">Agafari Wood</entry>
<entry id="200039" lang="en" sex="m">Dasl</entry>
<entry id="200040" lang="en" sex="m">Drake Ivory</entry>
<entry id="200041" lang="en" sex="m">Giant Hair Rope</entry>
<entry id="200042" lang="en" sex="m">Obsidian</entry>
<entry id="200043" lang="en" sex="m">Bamboo</entry>
<entry id="200044" lang="en" sex="m">Pottery</entry>
</tlk>