Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a668275943 | ||
|
b266d1350e | ||
|
525a4f8ccc | ||
|
5de4086e8e | ||
|
d37dc3e68d | ||
|
e2d524963b | ||
|
ef28d788a3 | ||
|
f59214cb64 | ||
|
6d37f86b11 | ||
|
85dd497fd8 | ||
|
033f03b473 | ||
|
238a29a9ca | ||
|
dcfc06d620 | ||
|
ea678dd90a | ||
|
28140be897 | ||
|
dae92087d2 | ||
|
c5c98a9f87 | ||
|
010723b349 |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -6,3 +6,10 @@ trunk/compilepsi.bat
|
||||
trunk/compilerace.bat
|
||||
trunk/compilescripts.bat
|
||||
trunk/compilespells.bat
|
||||
trunk/compilespells.bat
|
||||
trunk/compilescripts.bat
|
||||
trunk/compilerace.bat
|
||||
trunk/compilepsi.bat
|
||||
trunk/compileocfix.bat
|
||||
trunk/compilensb.bat
|
||||
trunk/compileepic.bat
|
||||
|
Binary file not shown.
11
nwsyc commands.txt
Normal file
11
nwsyc commands.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents Path of Ascension" /var/www/html/poa/ "/mnt/pve/nwn/poa/server/modules/poa.mod"
|
||||
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents Land of Destiny" /var/www/html/destiny/ "/mnt/pve/nwn/destiny/server/modules/Land.mod"
|
||||
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents Underworld 2" /var/www/html/under/ "/mnt/pve/nwn/under/server/modules/underworld.mod"
|
||||
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents The Frozen North" /var/www/html/north/ "/mnt/pve/nwn/north/server/modules/tfn.mod"
|
||||
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents Lankhmar Nights" /var/www/html/ "/mnt/pve/nwn/mouser/server/modules/mouser.mod"
|
||||
|
||||
sudo ./nwsync_write --verbose --path "/mnt/pve/maint/server/hak" --description="PRC presents Horde of Orcs" /var/www/html/horde/ "/mnt/pve/nwn/horde/server/modules/horde.mod"
|
File diff suppressed because it is too large
Load Diff
@@ -1,35 +1,37 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 Hated_Enemy_Dwarf 4326 2 1 0
|
||||
1 Hated_Enemy_elf 4327 2 1 0
|
||||
2 Hated_Enemy_gnome 4328 2 1 0
|
||||
3 Hated_Enemy_halfling 4329 2 1 0
|
||||
4 Hated_Enemy_halfelf 4330 2 1 0
|
||||
5 Hated_Enemy_halforc 4331 2 1 0
|
||||
6 Hated_Enemy_human 4332 2 1 0
|
||||
7 Hated_Enemy_abberation 4333 2 1 0
|
||||
8 Hated_Enemy_animal 4334 2 1 0
|
||||
9 Hated_Enemy_beast 4335 2 1 0
|
||||
10 Hated_Enemy_construct 4336 2 1 0
|
||||
11 Hated_Enemy_dragon 4337 2 1 0
|
||||
12 Hated_Enemy_goblin 4338 2 1 0
|
||||
13 Hated_Enemy_monstrous 4339 2 1 0
|
||||
14 Hated_Enemy_orc 4340 2 1 0
|
||||
15 Hated_Enemy_reptile 4341 2 1 0
|
||||
16 Hated_Enemy_elemental 4342 2 1 0
|
||||
17 Hated_Enemy_fey 4343 2 1 0
|
||||
18 Hated_Enemy_giant 4344 2 1 0
|
||||
19 Hated_Enemy_mbeast 4345 2 1 0
|
||||
20 Hated_Enemy_outsider 4346 2 1 0
|
||||
21 Hated_Enemy_shapechanger 4347 2 1 0
|
||||
22 Hated_Enemy_undead 4348 2 1 0
|
||||
23 Hated_Enemy_vermin 4349 2 1 0
|
||||
24 Rancor 4322 3 1 0
|
||||
25 Death_Attack 4325 3 10 1
|
||||
26 DR 4323 3 2 0
|
||||
27 SR 4324 3 4 0
|
||||
28 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
|
||||
29 DefArrow 8 0 -1 0
|
||||
30 TwoWeap 41 0 -1 0
|
||||
31 Ambidex 1 0 -1 0
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 Hated_Enemy_Dwarf 4326 2 1 0
|
||||
1 Hated_Enemy_elf 4327 2 1 0
|
||||
2 Hated_Enemy_gnome 4328 2 1 0
|
||||
3 Hated_Enemy_halfling 4329 2 1 0
|
||||
4 Hated_Enemy_halfelf 4330 2 1 0
|
||||
5 Hated_Enemy_halforc 4331 2 1 0
|
||||
6 Hated_Enemy_human 4332 2 1 0
|
||||
7 Hated_Enemy_abberation 4333 2 1 0
|
||||
8 Hated_Enemy_animal 4334 2 1 0
|
||||
9 Hated_Enemy_beast 4335 2 1 0
|
||||
10 Hated_Enemy_construct 4336 2 1 0
|
||||
11 Hated_Enemy_dragon 4337 2 1 0
|
||||
12 Hated_Enemy_goblin 4338 2 1 0
|
||||
13 Hated_Enemy_monstrous 4339 2 1 0
|
||||
14 Hated_Enemy_orc 4340 2 1 0
|
||||
15 Hated_Enemy_reptile 4341 2 1 0
|
||||
16 Hated_Enemy_elemental 4342 2 1 0
|
||||
17 Hated_Enemy_fey 4343 2 1 0
|
||||
18 Hated_Enemy_giant 4344 2 1 0
|
||||
19 Hated_Enemy_mbeast 4345 2 1 0
|
||||
20 Hated_Enemy_outsider 4346 2 1 0
|
||||
21 Hated_Enemy_shapechanger 4347 2 1 0
|
||||
22 Hated_Enemy_undead 4348 2 1 0
|
||||
23 Hated_Enemy_vermin 4349 2 1 0
|
||||
24 FEAT_HATED_ENEMY_OOZE 3469 2 1 0
|
||||
25 FEAT_HATED_ENEMY_PLANT 3470 2 1 0
|
||||
26 Rancor 4322 3 1 0
|
||||
27 Death_Attack 4325 3 10 1
|
||||
28 DR 4323 3 2 0
|
||||
29 SR 4324 3 4 0
|
||||
30 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
|
||||
31 DefArrow 8 0 -1 0
|
||||
32 TwoWeap 41 0 -1 0
|
||||
33 Ambidex 1 0 -1 0
|
||||
|
@@ -1,122 +1,124 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 DefArrow 8 0 -1 0
|
||||
1 Quicken 29 0 -1 0
|
||||
2 TwoWeap 41 0 -1 0
|
||||
3 Ambidex 1 0 -1 0
|
||||
4 DENEIRS_EYE 437 3 2 0
|
||||
5 TYMORAS_SMILE 438 3 3 1
|
||||
6 LLIIRAS_HEART 439 3 4 0
|
||||
7 CRAFT_HARPER_ITEM 440 3 5 1
|
||||
8 FE_Dwarf 261 2 -1 0
|
||||
9 FE_Elf 262 2 -1 0
|
||||
10 FE_Gnome 263 2 -1 0
|
||||
11 FE_Halfling 264 2 -1 0
|
||||
12 FE_HalfElf 265 2 -1 0
|
||||
13 FE_HalfOrc 266 2 -1 0
|
||||
14 FE_Human 267 2 -1 0
|
||||
15 FE_Aberration 268 2 -1 0
|
||||
16 FE_Animal 269 2 -1 0
|
||||
17 FE_Beast 270 2 -1 0
|
||||
18 FE_Construct 271 2 -1 0
|
||||
19 FE_Dragon 272 2 -1 0
|
||||
20 FE_Goblinoid 273 2 -1 0
|
||||
21 FE_Monstrous 274 2 -1 0
|
||||
22 FE_Orc 275 2 -1 0
|
||||
23 FE_Reptilian 276 2 -1 0
|
||||
24 FE_Elemental 277 2 -1 0
|
||||
25 FE_Fey 278 2 -1 0
|
||||
26 FE_Giant 279 2 -1 0
|
||||
27 FE_Magical_Beast 280 2 -1 0
|
||||
28 FE_Outsider_Evil 281 2 -1 0
|
||||
29 FE_Shapechanger 284 2 -1 0
|
||||
30 FE_Undead 285 2 -1 0
|
||||
31 FE_Vermin 286 2 -1 0
|
||||
32 BardicKnowledge 197 3 1 0
|
||||
33 WeapProfSim 46 3 1 0
|
||||
34 WeapProfSim_Dart 7914 3 1 0
|
||||
35 WeapProfSim_Light_Mace 7908 3 1 0
|
||||
36 WeapProfSim_Morningstar 7923 3 1 0
|
||||
37 WeapProfSim_Shortspear 7927 3 1 0
|
||||
38 WeapProfSim_Sickle 7929 3 1 0
|
||||
39 WeapProfSim_Sling 7930 3 1 0
|
||||
40 ArmProfLgt 3 3 1 0
|
||||
41 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 -1 0
|
||||
42 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 -1 0
|
||||
43 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 -1 0
|
||||
44 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 -1 0
|
||||
45 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 -1 0
|
||||
46 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 -1 0
|
||||
47 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 -1 0
|
||||
48 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 -1 0
|
||||
49 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 -1 0
|
||||
50 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 -1 0
|
||||
51 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 -1 0
|
||||
52 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 -1 0
|
||||
53 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 -1 0
|
||||
54 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 -1 0
|
||||
55 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 -1 0
|
||||
56 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 -1 0
|
||||
57 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 -1 0
|
||||
58 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 -1 0
|
||||
59 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 -1 0
|
||||
60 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 -1 0
|
||||
61 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 -1 0
|
||||
62 FEAT_EPIC_WILL 695 1 -1 0
|
||||
63 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
|
||||
64 FEAT_EPIC_GREAT_CHARISMA_1 764 1 -1 0
|
||||
65 FEAT_EPIC_GREAT_CHARISMA_2 765 1 -1 0
|
||||
66 FEAT_EPIC_GREAT_CHARISMA_3 766 1 -1 0
|
||||
67 FEAT_EPIC_GREAT_CHARISMA_4 767 1 -1 0
|
||||
68 FEAT_EPIC_GREAT_CHARISMA_5 768 1 -1 0
|
||||
69 FEAT_EPIC_GREAT_CHARISMA_6 769 1 -1 0
|
||||
70 FEAT_EPIC_GREAT_CHARISMA_7 770 1 -1 0
|
||||
71 FEAT_EPIC_GREAT_CHARISMA_8 771 1 -1 0
|
||||
72 FEAT_EPIC_GREAT_CHARISMA_9 772 1 -1 0
|
||||
73 FEAT_EPIC_GREAT_CHARISMA_10 773 1 -1 0
|
||||
74 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
75 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
76 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
77 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
|
||||
78 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
|
||||
79 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
|
||||
80 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
|
||||
81 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
|
||||
82 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
|
||||
83 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
|
||||
84 FEAT_EPIC_LASTING_INSPIRATION 870 1 -1 0
|
||||
85 FEAT_CURSE_SONG 871 1 -1 1
|
||||
86 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 1 -1 0
|
||||
87 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 1 -1 0
|
||||
88 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 -1 0
|
||||
89 ####START_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
|
||||
90 Harper_Camoflage 10577 0 99 1
|
||||
91 Harper_Alter_Self_Radial_Master 10578 0 99 1
|
||||
92 Harper_Charm_Person 10579 0 99 1
|
||||
93 Harper_Spell_Jump 10580 0 99 1
|
||||
94 Harper_Light 10581 0 99 1
|
||||
95 Harper_Read_Magic 10582 0 99 1
|
||||
96 Harper_Sleep 10583 0 99 1
|
||||
97 Harper_Cats_Grace 10584 0 99 1
|
||||
98 Harper_Eagle_Splendor 10585 0 99 1
|
||||
99 Harper_Invisibility 10586 0 99 1
|
||||
100 Harper_Knock 10587 0 99 1
|
||||
101 Harper_LocateObject 10588 0 99 1
|
||||
102 Harper_See_Invisibility 10589 0 99 1
|
||||
103 Harper_Clairaudience_and_Clairvoyance 10590 0 99 1
|
||||
104 Harper_NONDETECTION 10591 0 99 1
|
||||
105 Harper_UndetectableAlignment 10592 0 99 1
|
||||
106 **** **** **** **** ****
|
||||
107 **** **** **** **** ****
|
||||
108 **** **** **** **** ****
|
||||
109 **** **** **** **** ****
|
||||
110 **** **** **** **** ****
|
||||
111 **** **** **** **** ****
|
||||
112 **** **** **** **** ****
|
||||
113 **** **** **** **** ****
|
||||
114 **** **** **** **** ****
|
||||
115 **** **** **** **** ****
|
||||
116 **** **** **** **** ****
|
||||
117 **** **** **** **** ****
|
||||
118 ####END_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 DefArrow 8 0 -1 0
|
||||
1 Quicken 29 0 -1 0
|
||||
2 TwoWeap 41 0 -1 0
|
||||
3 Ambidex 1 0 -1 0
|
||||
4 DENEIRS_EYE 437 3 2 0
|
||||
5 TYMORAS_SMILE 438 3 3 1
|
||||
6 LLIIRAS_HEART 439 3 4 0
|
||||
7 CRAFT_HARPER_ITEM 440 3 5 1
|
||||
8 FE_Dwarf 261 2 -1 0
|
||||
9 FE_Elf 262 2 -1 0
|
||||
10 FE_Gnome 263 2 -1 0
|
||||
11 FE_Halfling 264 2 -1 0
|
||||
12 FE_HalfElf 265 2 -1 0
|
||||
13 FE_HalfOrc 266 2 -1 0
|
||||
14 FE_Human 267 2 -1 0
|
||||
15 FE_Aberration 268 2 -1 0
|
||||
16 FE_Animal 269 2 -1 0
|
||||
17 FE_Beast 270 2 -1 0
|
||||
18 FE_Construct 271 2 -1 0
|
||||
19 FE_Dragon 272 2 -1 0
|
||||
20 FE_Goblinoid 273 2 -1 0
|
||||
21 FE_Monstrous 274 2 -1 0
|
||||
22 FE_Orc 275 2 -1 0
|
||||
23 FE_Reptilian 276 2 -1 0
|
||||
24 FE_Elemental 277 2 -1 0
|
||||
25 FE_Fey 278 2 -1 0
|
||||
26 FE_Giant 279 2 -1 0
|
||||
27 FE_Magical_Beast 280 2 -1 0
|
||||
28 FE_Outsider_Evil 281 2 -1 0
|
||||
29 FE_Shapechanger 284 2 -1 0
|
||||
30 FE_Undead 285 2 -1 0
|
||||
31 FE_Vermin 286 2 -1 0
|
||||
32 FE_Oozes 2354 2 -1 0
|
||||
33 FE_Plants 2355 2 -1 0
|
||||
34 BardicKnowledge 197 3 1 0
|
||||
35 WeapProfSim 46 3 1 0
|
||||
36 WeapProfSim_Dart 7914 3 1 0
|
||||
37 WeapProfSim_Light_Mace 7908 3 1 0
|
||||
38 WeapProfSim_Morningstar 7923 3 1 0
|
||||
39 WeapProfSim_Shortspear 7927 3 1 0
|
||||
40 WeapProfSim_Sickle 7929 3 1 0
|
||||
41 WeapProfSim_Sling 7930 3 1 0
|
||||
42 ArmProfLgt 3 3 1 0
|
||||
43 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 -1 0
|
||||
44 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 -1 0
|
||||
45 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 -1 0
|
||||
46 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 -1 0
|
||||
47 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 -1 0
|
||||
48 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 -1 0
|
||||
49 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 -1 0
|
||||
50 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 -1 0
|
||||
51 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 -1 0
|
||||
52 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 -1 0
|
||||
53 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 -1 0
|
||||
54 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 -1 0
|
||||
55 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 -1 0
|
||||
56 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 -1 0
|
||||
57 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 -1 0
|
||||
58 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 -1 0
|
||||
59 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 -1 0
|
||||
60 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 -1 0
|
||||
61 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 -1 0
|
||||
62 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 -1 0
|
||||
63 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 -1 0
|
||||
64 FEAT_EPIC_WILL 695 1 -1 0
|
||||
65 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
|
||||
66 FEAT_EPIC_GREAT_CHARISMA_1 764 1 -1 0
|
||||
67 FEAT_EPIC_GREAT_CHARISMA_2 765 1 -1 0
|
||||
68 FEAT_EPIC_GREAT_CHARISMA_3 766 1 -1 0
|
||||
69 FEAT_EPIC_GREAT_CHARISMA_4 767 1 -1 0
|
||||
70 FEAT_EPIC_GREAT_CHARISMA_5 768 1 -1 0
|
||||
71 FEAT_EPIC_GREAT_CHARISMA_6 769 1 -1 0
|
||||
72 FEAT_EPIC_GREAT_CHARISMA_7 770 1 -1 0
|
||||
73 FEAT_EPIC_GREAT_CHARISMA_8 771 1 -1 0
|
||||
74 FEAT_EPIC_GREAT_CHARISMA_9 772 1 -1 0
|
||||
75 FEAT_EPIC_GREAT_CHARISMA_10 773 1 -1 0
|
||||
76 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
77 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
78 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
79 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
|
||||
80 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
|
||||
81 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
|
||||
82 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
|
||||
83 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
|
||||
84 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
|
||||
85 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
|
||||
86 FEAT_EPIC_LASTING_INSPIRATION 870 1 -1 0
|
||||
87 FEAT_CURSE_SONG 871 1 -1 1
|
||||
88 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 1 -1 0
|
||||
89 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 1 -1 0
|
||||
90 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 -1 0
|
||||
91 ####START_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
|
||||
92 Harper_Camoflage 10577 0 99 1
|
||||
93 Harper_Alter_Self_Radial_Master 10578 0 99 1
|
||||
94 Harper_Charm_Person 10579 0 99 1
|
||||
95 Harper_Spell_Jump 10580 0 99 1
|
||||
96 Harper_Light 10581 0 99 1
|
||||
97 Harper_Read_Magic 10582 0 99 1
|
||||
98 Harper_Sleep 10583 0 99 1
|
||||
99 Harper_Cats_Grace 10584 0 99 1
|
||||
100 Harper_Eagle_Splendor 10585 0 99 1
|
||||
101 Harper_Invisibility 10586 0 99 1
|
||||
102 Harper_Knock 10587 0 99 1
|
||||
103 Harper_LocateObject 10588 0 99 1
|
||||
104 Harper_See_Invisibility 10589 0 99 1
|
||||
105 Harper_Clairaudience_and_Clairvoyance 10590 0 99 1
|
||||
106 Harper_NONDETECTION 10591 0 99 1
|
||||
107 Harper_UndetectableAlignment 10592 0 99 1
|
||||
108 **** **** **** **** ****
|
||||
109 **** **** **** **** ****
|
||||
110 **** **** **** **** ****
|
||||
111 **** **** **** **** ****
|
||||
112 **** **** **** **** ****
|
||||
113 **** **** **** **** ****
|
||||
114 **** **** **** **** ****
|
||||
115 **** **** **** **** ****
|
||||
116 **** **** **** **** ****
|
||||
117 **** **** **** **** ****
|
||||
118 **** **** **** **** ****
|
||||
119 **** **** **** **** ****
|
||||
120 ####END_OF_NEW_SPELLBOOK_RESERVE **** **** **** ****
|
||||
|
@@ -1,824 +1,75 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 SpellFocusCon 166 0 -1 0
|
||||
1 SpellFocusDiv 167 0 -1 0
|
||||
2 SpellFocusEnc 168 0 -1 0
|
||||
3 SpellFocusEvo 169 0 -1 0
|
||||
4 SpellFocusIll 170 0 -1 0
|
||||
5 SpellFocusNec 171 0 -1 0
|
||||
6 SpellFocusTra 172 0 -1 0
|
||||
7 SpellFocusAbj 35 0 -1 0
|
||||
8 ExaltedCompanion 4199 0 -1 0
|
||||
9 TracklessStep 201 3 1 0
|
||||
10 ImpTwo 20 3 9 0
|
||||
11 WeapProfSim 46 3 1 0
|
||||
12 WeapProfSim_Dart 7914 3 1 0
|
||||
13 WeapProfSim_Light_Mace 7908 3 1 0
|
||||
14 WeapProfSim_Morningstar 7923 3 1 0
|
||||
15 WeapProfSim_Shortspear 7927 3 1 0
|
||||
16 WeapProfSim_Sickle 7929 3 1 0
|
||||
17 WeapProfSim_Sling 7930 3 1 0
|
||||
18 WP_Goad 7949 3 1 0
|
||||
19 WP_Heavy_Mace 7946 3 1 0
|
||||
20 WP_Katar 7945 3 1 0
|
||||
21 WP_Sap 7944 3 1 0
|
||||
22 ArmProfLgt 3 3 1 0
|
||||
23 ArmProfMed 4 3 1 0
|
||||
24 Shield 32 3 1 0
|
||||
25 WeapProfMar 45 3 1 0
|
||||
26 WeapProfMar_Battleaxe 7903 3 1 0
|
||||
27 WeapProfMar_Greataxe 7913 3 1 0
|
||||
28 WeapProfMar_Greatsword 7912 3 1 0
|
||||
29 WeapProfMar_Halberd 7909 3 1 0
|
||||
30 WeapProfMar_Handaxe 7919 3 1 0
|
||||
31 WeapProfMar_Heavy_Flail 7917 3 1 0
|
||||
32 WeapProfMar_Light_Flail 7905 3 1 0
|
||||
33 WeapProfMar_Light_Hammer 7918 3 1 0
|
||||
34 WeapProfMar_Longbow 7907 3 1 0
|
||||
35 WeapProfMar_Longsword 7902 3 1 0
|
||||
36 WeapProfMar_Rapier 7924 3 1 0
|
||||
37 WeapProfMar_Scimitar 7925 3 1 0
|
||||
38 WeapProfMar_Shortbow 7910 3 1 0
|
||||
39 WeapProfMar_Shortsword 7901 3 1 0
|
||||
40 WeapProfMar_Throwing_Axe 7931 3 1 0
|
||||
41 WeapProfMar_Trident 7932 3 1 0
|
||||
42 WeapProfMar_Warhammer 7906 3 1 0
|
||||
43 WP_Light_Lance 7938 3 1 0
|
||||
44 WP_Heavy_Pick 7939 3 1 0
|
||||
45 WP_Light_Pick 7940 3 1 0
|
||||
46 WP_Falchion 7943 3 1 0
|
||||
47 WP_Maul 7947 3 1 0
|
||||
48 FE_Dwarf 261 2 -1 0
|
||||
49 FE_Elf 262 2 -1 0
|
||||
50 FE_Gnome 263 2 -1 0
|
||||
51 FE_Halfling 264 2 -1 0
|
||||
52 FE_HalfElf 265 2 -1 0
|
||||
53 FE_HalfOrc 266 2 -1 0
|
||||
54 FE_Human 267 2 -1 0
|
||||
55 FE_Aberration 268 2 -1 0
|
||||
56 FE_Animal 269 2 -1 0
|
||||
57 FE_Beast 270 2 -1 0
|
||||
58 FE_Construct 271 2 -1 0
|
||||
59 FE_Dragon 272 2 -1 0
|
||||
60 FE_Goblinoid 273 2 -1 0
|
||||
61 FE_Monstrous 274 2 -1 0
|
||||
62 FE_Orc 275 2 -1 0
|
||||
63 FE_Reptilian 276 2 -1 0
|
||||
64 FE_Elemental 277 2 -1 0
|
||||
65 FE_Fey 278 2 -1 0
|
||||
66 FE_Giant 279 2 -1 0
|
||||
67 FE_Magical_Beast 280 2 -1 0
|
||||
68 FE_Outsider_Evil 281 2 -1 0
|
||||
69 FE_Shapechanger 284 2 -1 0
|
||||
70 FE_Undead 285 2 -1 0
|
||||
71 FE_Vermin 286 2 -1 0
|
||||
72 AnimalCompanion 199 3 6 1
|
||||
73 DefArrow 8 0 -1 0
|
||||
74 SkillFocusAnim 34 0 -1 0
|
||||
75 RangerDual 374 3 1 0
|
||||
76 FEAT_EPIC_SKILL_FOCUS_ANIMAL_EMPATHY 587 0 -1 0
|
||||
77 FEAT_EPIC_SPELL_FOCUS_ABJURATION 610 1 -1 0
|
||||
78 FEAT_EPIC_SPELL_FOCUS_CONJURATION 611 1 -1 0
|
||||
79 FEAT_EPIC_SPELL_FOCUS_DIVINATION 612 1 -1 0
|
||||
80 FEAT_EPIC_SPELL_FOCUS_ENCHANTMENT 613 1 -1 0
|
||||
81 FEAT_EPIC_SPELL_FOCUS_EVOCATION 614 1 -1 0
|
||||
82 FEAT_EPIC_SPELL_FOCUS_ILLUSION 615 1 -1 0
|
||||
83 FEAT_EPIC_SPELL_FOCUS_NECROMANCY 616 1 -1 0
|
||||
84 FEAT_EPIC_SPELL_FOCUS_TRANSMUTATION 617 1 -1 0
|
||||
85 GrSpllFcsAbj 393 1 -1 0
|
||||
86 GrSpllFcsCnj 394 1 -1 0
|
||||
87 GrSpllFcsDiv 395 1 -1 0
|
||||
88 GrSpllFcsEnch 396 1 -1 0
|
||||
89 GrSpllFcsEvc 397 1 -1 0
|
||||
90 GrSpllFcsIll 398 1 -1 0
|
||||
91 GrSpllFcsNec 399 1 -1 0
|
||||
92 GrSpllFcsTran 400 1 -1 0
|
||||
93 FEAT_SCRIBE_SCROLL 945 0 4 0
|
||||
94 FEAT_BREW_POTION 944 0 6 0
|
||||
95 FEAT_CRAFT_WAND 946 0 10 0
|
||||
96 FEAT_EPIC_BANE_OF_ENEMIES 855 1 21 0
|
||||
97 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
|
||||
98 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
99 FEAT_EPIC_WEAPON_FOCUS_CLUB 619 1 -1 0
|
||||
100 FEAT_EPIC_WEAPON_FOCUS_DAGGER 620 1 -1 0
|
||||
101 FEAT_EPIC_WEAPON_FOCUS_DART 621 1 -1 0
|
||||
102 FEAT_EPIC_WEAPON_FOCUS_HEAVYCROSSBOW 622 1 -1 0
|
||||
103 FEAT_EPIC_WEAPON_FOCUS_LIGHTCROSSBOW 623 1 -1 0
|
||||
104 FEAT_EPIC_WEAPON_FOCUS_LIGHTMACE 624 1 -1 0
|
||||
105 FEAT_EPIC_WEAPON_FOCUS_MORNINGSTAR 625 1 -1 0
|
||||
106 FEAT_EPIC_WEAPON_FOCUS_QUARTERSTAFF 626 1 -1 0
|
||||
107 FEAT_EPIC_WEAPON_FOCUS_SHORTSPEAR 627 1 -1 0
|
||||
108 FEAT_EPIC_WEAPON_FOCUS_SICKLE 628 1 -1 0
|
||||
109 FEAT_EPIC_WEAPON_FOCUS_SLING 629 1 -1 0
|
||||
110 FEAT_EPIC_WEAPON_FOCUS_UNARMED 630 1 -1 0
|
||||
111 FEAT_EPIC_WEAPON_FOCUS_LONGBOW 631 1 -1 0
|
||||
112 FEAT_EPIC_WEAPON_FOCUS_SHORTBOW 632 1 -1 0
|
||||
113 FEAT_EPIC_WEAPON_FOCUS_SHORTSWORD 633 1 -1 0
|
||||
114 FEAT_EPIC_WEAPON_FOCUS_RAPIER 634 1 -1 0
|
||||
115 FEAT_EPIC_WEAPON_FOCUS_SCIMITAR 635 1 -1 0
|
||||
116 FEAT_EPIC_WEAPON_FOCUS_LONGSWORD 636 1 -1 0
|
||||
117 FEAT_EPIC_WEAPON_FOCUS_GREATSWORD 637 1 -1 0
|
||||
118 FEAT_EPIC_WEAPON_FOCUS_HANDAXE 638 1 -1 0
|
||||
119 FEAT_EPIC_WEAPON_FOCUS_THROWINGAXE 639 1 -1 0
|
||||
120 FEAT_EPIC_WEAPON_FOCUS_BATTLEAXE 640 1 -1 0
|
||||
121 FEAT_EPIC_WEAPON_FOCUS_GREATAXE 641 1 -1 0
|
||||
122 FEAT_EPIC_WEAPON_FOCUS_HALBERD 642 1 -1 0
|
||||
123 FEAT_EPIC_WEAPON_FOCUS_LIGHTHAMMER 643 1 -1 0
|
||||
124 FEAT_EPIC_WEAPON_FOCUS_LIGHTFLAIL 644 1 -1 0
|
||||
125 FEAT_EPIC_WEAPON_FOCUS_WARHAMMER 645 1 -1 0
|
||||
126 FEAT_EPIC_WEAPON_FOCUS_HEAVYFLAIL 646 1 -1 0
|
||||
127 FEAT_EPIC_WEAPON_FOCUS_KAMA 647 1 -1 0
|
||||
128 FEAT_EPIC_WEAPON_FOCUS_KUKRI 648 1 -1 0
|
||||
129 FEAT_EPIC_WEAPON_FOCUS_SHURIKEN 649 1 -1 0
|
||||
130 FEAT_EPIC_WEAPON_FOCUS_SCYTHE 650 1 -1 0
|
||||
131 FEAT_EPIC_WEAPON_FOCUS_KATANA 651 1 -1 0
|
||||
132 FEAT_EPIC_WEAPON_FOCUS_BASTARDSWORD 652 1 -1 0
|
||||
133 FEAT_EPIC_WEAPON_FOCUS_DIREMACE 653 1 -1 0
|
||||
134 FEAT_EPIC_WEAPON_FOCUS_DOUBLEAXE 654 1 -1 0
|
||||
135 FEAT_EPIC_WEAPON_FOCUS_TWOBLADEDSWORD 655 1 -1 0
|
||||
136 FEAT_EPIC_WEAPON_FOCUS_TRIDENT 1076 1 -1 0
|
||||
137 EPIC_WEAPON_FOCUS_LANCE 24637 1 -1 0
|
||||
138 EPIC_WEAPON_FOCUS_HEAVY_PICK 24638 1 -1 0
|
||||
139 EPIC_WEAPON_FOCUS_LIGHT_PICK 24639 1 -1 0
|
||||
140 EPIC_WEAPON_FOCUS_SAI 24640 1 -1 0
|
||||
141 EPIC_WEAPON_FOCUS_NUNCHAKU 24641 1 -1 0
|
||||
142 EPIC_WEAPON_FOCUS_FALCHION 24642 1 -1 0
|
||||
143 EPIC_WEAPON_FOCUS_SAP 24643 1 -1 0
|
||||
144 EPIC_WEAPON_FOCUS_KATAR 24644 1 -1 0
|
||||
145 EPIC_WEAPON_FOCUS_HEAVY_MACE 24645 1 -1 0
|
||||
146 EPIC_WEAPON_FOCUS_MAUL 24646 1 -1 0
|
||||
147 EPIC_WEAPON_FOCUS_DBL_SCIMITAR 24647 1 -1 0
|
||||
148 EPIC_WEAPON_FOCUS_GOAD 24648 1 -1 0
|
||||
149 EPIC_WEAPON_FOCUS_ELVEN_LIGHTBLADE 24698 1 -1 0
|
||||
150 EPIC_WEAPON_FOCUS_ELVEN_THINBLADE 24706 1 -1 0
|
||||
151 EPIC_WEAPON_FOCUS_ELVEN_COURTBLADE 24714 1 -1 0
|
||||
152 FEAT_EPIC_IMPROVED_COMBAT_CASTING 696 1 -1 0
|
||||
153 FEAT_EPIC_TOUGHNESS_1 754 1 -1 0
|
||||
154 FEAT_EPIC_TOUGHNESS_2 755 1 -1 0
|
||||
155 FEAT_EPIC_TOUGHNESS_3 756 1 -1 0
|
||||
156 FEAT_EPIC_TOUGHNESS_4 757 1 -1 0
|
||||
157 FEAT_EPIC_TOUGHNESS_5 758 1 -1 0
|
||||
158 FEAT_EPIC_TOUGHNESS_6 759 1 -1 0
|
||||
159 FEAT_EPIC_TOUGHNESS_7 760 1 -1 0
|
||||
160 FEAT_EPIC_TOUGHNESS_8 761 1 -1 0
|
||||
161 FEAT_EPIC_TOUGHNESS_9 762 1 -1 0
|
||||
162 FEAT_EPIC_TOUGHNESS_10 763 1 -1 0
|
||||
163 FEAT_EPIC_WEAPON_FOCUS_DWAXE 956 1 -1 0
|
||||
164 FEAT_EPIC_RANGER 973 3 21 0
|
||||
165 FEAT_EPIC_WEAPON_FOCUS_WHIP 997 1 -1 0
|
||||
166 FEAT_EPIC_PERFECT_HEALTH 747 1 -1 0
|
||||
167 FEAT_CRAFT_WONDROUS_ITEM 2925 0 6 0
|
||||
168 FEAT_CRAFT_MAGIC_ARMS_AND_ARMOR 2926 0 10 0
|
||||
169 FEAT_CRAFT_ROD 2927 0 18 0
|
||||
170 FEAT_CRAFT_STAFF 2928 0 24 0
|
||||
171 FEAT_FORGE_RING 2929 0 24 0
|
||||
172 FEAT_ALTERNATE_FORM 2931 3 15 0
|
||||
173 Epic_WeaponFocus_Mindblade 3618 1 -1 0
|
||||
174 FEAT_CRAFT_CONSTRUCT 2920 0 -1 0
|
||||
175 PERFECT_TWO_WEAPON_FIGHTING 4320 1 -1 0
|
||||
176 Two-Weapon_Rend 3113 1 -1 0
|
||||
177 SuddenEmpower 2830 0 -1 1
|
||||
178 SuddenExtend 2831 0 -1 1
|
||||
179 SuddenMaximize 2832 0 -1 1
|
||||
180 SuddenWiden 2833 0 -1 1
|
||||
181 FEAT_ESCHEW_MATERIALS 2596 0 1 0
|
||||
182 Bane_Magic_Aberration 23556 0 -1 0
|
||||
183 Bane_Magic_Animal 23557 0 -1 0
|
||||
184 Bane_Magic_Beast 23558 0 -1 0
|
||||
185 Bane_Magic_Construct 23559 0 -1 0
|
||||
186 Bane_Magic_Dragon 23560 0 -1 0
|
||||
187 Bane_Magic_Dwarf 23561 0 -1 0
|
||||
188 Bane_Magic_Elemental 23562 0 -1 0
|
||||
189 Bane_Magic_Elf 23563 0 -1 0
|
||||
190 Bane_Magic_Fey 23564 0 -1 0
|
||||
191 Bane_Magic_Giant 23565 0 -1 0
|
||||
192 Bane_Magic_Gnome 23566 0 -1 0
|
||||
193 Bane_Magic_HalfElf 23567 0 -1 0
|
||||
194 Bane_Magic_Halfling 23568 0 -1 0
|
||||
195 Bane_Magic_HalfOrc 23569 0 -1 0
|
||||
196 Bane_Magic_Human 23570 0 -1 0
|
||||
197 Bane_Magic_Humanoid_Goblinoid 23571 0 -1 0
|
||||
198 Bane_Magic_Humanoid_Monstrous 23572 0 -1 0
|
||||
199 Bane_Magic_Humanoid_Orc 23573 0 -1 0
|
||||
200 Bane_Magic_Humanoid_Reptilian 23574 0 -1 0
|
||||
201 Bane_Magic_Magical_Beast 23575 0 -1 0
|
||||
202 Bane_Magic_Outsider 23576 0 -1 0
|
||||
203 Bane_Magic_Shapechanger 23577 0 -1 0
|
||||
204 Bane_Magic_Undead 23578 0 -1 0
|
||||
205 Bane_Magic_Vermin 23579 0 -1 0
|
||||
206 **** **** **** **** ****
|
||||
207 **** **** **** **** ****
|
||||
208 ###cls_feat_allBaseClasses_BEGIN### **** **** **** ****
|
||||
209 **Bio169Feats** **** **** **** ****
|
||||
210 FEAT_HORSE_MENU 1089 3 1 1
|
||||
211 PLAYER_TOOL_01 1106 1 99 1
|
||||
212 PLAYER_TOOL_02 1107 1 99 1
|
||||
213 PLAYER_TOOL_03 1108 1 99 1
|
||||
214 PLAYER_TOOL_04 1109 1 99 1
|
||||
215 PLAYER_TOOL_05 1110 1 99 1
|
||||
216 PLAYER_TOOL_06 1111 1 99 1
|
||||
217 PLAYER_TOOL_07 1112 1 99 1
|
||||
218 PLAYER_TOOL_08 1113 1 99 1
|
||||
219 PLAYER_TOOL_09 1114 1 99 1
|
||||
220 PLAYER_TOOL_10 1115 1 99 1
|
||||
221 **FeatsGrantedToAll** **** **** **** ****
|
||||
222 FEAT_JUMP 2884 3 1 1
|
||||
223 FEAT_CLIMB 3112 3 1 1
|
||||
224 FEAT_POWER_ATTACK_SINGLE_RADIAL 3143 0 99 1
|
||||
225 FEAT_POWER_ATTACK_FIVES_RADIAL 3144 0 99 1
|
||||
226 FEAT_PRC_POWER_ATTACK_QUICKS_RADIAL 3179 0 99 1
|
||||
227 ACP_FEAT 2892 0 99 1
|
||||
228 TeleportManagementRadial 4235 3 1 1
|
||||
229 SWITCH_FEAT 2285 3 1 1
|
||||
230 FEAT_READ_RECIPE 2919 3 1 1
|
||||
231 FEAT_SPELLS_TOUCH_ATTACK 4092 3 1 1
|
||||
232 FEAT_SPELLS_HOLD_CHARGE_TOGGLE 4095 3 1 1
|
||||
233 EndSpellEffects 2468 3 1 1
|
||||
234 CombatMove_RadialMaster 2898 3 1 1
|
||||
235 CombatMove_RadialMaster2 5195 3 1 1
|
||||
236 CombatMove_RadialMaster3 3415 3 1 1
|
||||
237 **** **** **** **** ****
|
||||
238 **GeneralActivatableFeats** **** **** **** ****
|
||||
239 FEAT_ATTUNE_GEM 2472 0 -1 1
|
||||
240 FEAT_INSCRIBE_RUNE 2462 0 -1 1
|
||||
241 FEAT_CRAFT_SKULL_TALISMAN 3004 0 -1 1
|
||||
242 FEAT_THRALL_TO_DEMON 2616 0 -1 1
|
||||
243 FEAT_HOLYRADIANCE 3164 0 -1 1
|
||||
244 FEAT_NIMBUSOFLIGHT 3165 0 -1 1
|
||||
245 FEAT_MANYSHOT 3306 0 -1 1
|
||||
246 FEAT_IMP_MANYSHOT 3350 0 -1 1
|
||||
247 Pinpoint_Accuracy 3351 0 -1 1
|
||||
248 FEAT_SERVHEAVEN 3355 0 -1 1
|
||||
249 FEAT_DISCIPLE_OF_DARKNESS 4012 0 -1 1
|
||||
250 FEAT_BLOOD_OF_THE_WARLORD 4608 0 -1 1
|
||||
251 Cloak_Dance 4817 0 -1 1
|
||||
252 Reckless_Offense 4816 0 -1 1
|
||||
253 ZoneOfAnimation 2891 0 -1 1
|
||||
254 FEAT_SPELLFIRE_WIELDER 4368 0 -1 1
|
||||
255 FEAT_SPELLFIRE_INCREASE 4369 0 99 1
|
||||
256 FEAT_SPELLFIRE_DECREASE 4370 0 99 1
|
||||
257 FEAT_SPELLFIRE_QUICKSELECT 4371 0 99 1
|
||||
258 FEAT_DISCIPLE_OF_THE_SUN 3127 0 -1 1
|
||||
259 Dragonfire_Assault 1842 0 -1 1
|
||||
260 Dragonfire_Channeling 1843 0 -1 1
|
||||
261 Dragonfire_Inspiration 1844 0 -1 1
|
||||
262 DauntingPresence 24025 0 -1 1
|
||||
263 ProfaneLifeLeech 24026 0 -1 1
|
||||
264 SacredVitality 24027 0 -1 1
|
||||
265 SacredVengeance 24028 0 -1 1
|
||||
266 DeformityEyes 24029 0 -1 1
|
||||
267 DeformityParasite 24031 0 -1 1
|
||||
268 DarkSpeech 24033 0 -1 1
|
||||
269 DarkWhispers 24034 0 -1 1
|
||||
270 MastersWill 24035 0 -1 1
|
||||
271 DeformityMadness 24036 0 -1 1
|
||||
272 ReflexivePsychosis 24037 0 -1 1
|
||||
273 ChosenOfEvil 24038 0 -1 1
|
||||
274 Avenging_Strike 4297 0 -1 1
|
||||
275 SnowflakeWardance 4489 0 -1 1
|
||||
276 MasterWand 5312 0 -1 1
|
||||
277 RecklessWandWielder 5313 0 -1 1
|
||||
278 DoubleWandWielder 5315 0 -1 1
|
||||
279 Wandstrike 5316 0 -1 1
|
||||
280 Snap_Kick 4398 0 -1 1
|
||||
281 HighSwordLowAxe 5288 0 -1 1
|
||||
282 ScorpionsGrasp 5178 0 -1 1
|
||||
283 WeaponAndTorch 5291 0 -1 1
|
||||
284 ShieldCharge 3256 0 -1 1
|
||||
285 ShieldSlam 3257 0 -1 1
|
||||
286 AwesomeBlow 5370 0 -1 1
|
||||
287 Spinning_Halberd 5287 0 -1 1
|
||||
288 FEAT_RAY_CHARM_PERSON 2220 0 99 1
|
||||
289 FEAT_RAY_CHARM_MONSTER 2221 0 99 1
|
||||
290 FEAT_RAY_SLEEP 2222 0 99 1
|
||||
291 FEAT_RAY_FLESH_TO_STONE 2223 0 99 1
|
||||
292 FEAT_RAY_DISINTIGRATE 2224 0 99 1
|
||||
293 FEAT_RAY_FEAR 2225 0 99 1
|
||||
294 FEAT_RAY_SLOW 2226 0 99 1
|
||||
295 FEAT_RAY_INFLICT_MODERATE_WOUNDS 2227 0 99 1
|
||||
296 FEAT_WANDER_UNSEEN 5028 0 99 1
|
||||
297 BonesOfTheEarth_Feat 2864 0 99 1
|
||||
298 FEAT_MYSTIC_BACKLASH 24737 0 -1 1
|
||||
299 FEAT_ACIDIC_SPLATTER 24738 0 -1 1
|
||||
300 FEAT_FIERY_BURST 24739 0 -1 1
|
||||
301 FEAT_STORM_BOLT 24740 0 -1 1
|
||||
302 FEAT_WINTERS_BLAST 24741 0 -1 1
|
||||
303 FEAT_CLAP_OF_THUNDER 24742 0 -1 1
|
||||
304 FEAT_SICKENING_GRASP 24743 0 -1 1
|
||||
305 FEAT_TOUCH_OF_HEALING 24744 0 -1 1
|
||||
306 FEAT_DIMENSIONAL_JAUNT 24745 0 -1 1
|
||||
307 FEAT_CLUTCH_OF_EARTH 24746 0 -1 1
|
||||
308 FEAT_BORNE_ALOFT 24747 0 -1 1
|
||||
309 FEAT_PROTECTIVE_WARD 24748 0 -1 1
|
||||
310 FEAT_SHADOW_VEIL 24749 0 -1 1
|
||||
311 FEAT_SUNLIGHT_EYES 24750 0 -1 1
|
||||
312 FEAT_TOUCH_OF_DISTRACTION 24751 0 -1 1
|
||||
313 FEAT_UMBRAL_SHROUD 24752 0 -1 1
|
||||
314 FEAT_CHARNEL_MIASMA 24753 0 -1 1
|
||||
315 FEAT_DROWNING_GLANCE 24754 0 -1 1
|
||||
316 FEAT_INVISIBLE_NEEDLE 24755 0 -1 1
|
||||
317 FEAT_SUMMON_ELEMENTAL 24756 0 -1 1
|
||||
318 FEAT_DIMENSIONAL_REACH 24757 0 -1 1
|
||||
319 FEAT_HURRICANE_BREATH 24758 0 -1 1
|
||||
320 FEAT_MINOR_SHAPESHIFT 24759 0 -1 1
|
||||
321 FEAT_FACECHANGER 24760 0 -1 1
|
||||
322 **** **** **** **** ****
|
||||
323 **Metabreath_and_Channeling** **** **** **** ****
|
||||
324 FEAT_CLINGING_BREATH 4966 0 -1 1
|
||||
325 FEAT_LINGERING_BREATH 4967 0 -1 1
|
||||
326 FEAT_ENLARGE_BREATH 4968 0 -1 1
|
||||
327 FEAT_HEIGHTEN_BREATH 4969 0 -1 1
|
||||
328 FEAT_MAXIMIZE_BREATH 4970 0 -1 1
|
||||
329 FEAT_SHAPE_BREATH 4972 0 -1 1
|
||||
330 FEAT_SPREAD_BREATH 4973 0 -1 1
|
||||
331 FEAT_TEMPEST_BREATH 4974 0 -1 1
|
||||
332 FEAT_ENTANGLING_EXHALATION 4975 0 -1 1
|
||||
333 FEAT_EXHALED_BARRIER 4976 0 -1 1
|
||||
334 FEAT_EXHALED_IMMUNITY 4977 0 -1 1
|
||||
335 **** **** **** **** ****
|
||||
336 **DraconicAuras** **** **** **** ****
|
||||
337 FEAT_BONUS_AURA_ENERGYACID 1828 0 -1 1
|
||||
338 FEAT_BONUS_AURA_ENERGYCOLD 1829 0 -1 1
|
||||
339 FEAT_BONUS_AURA_ENERGYELEC 1830 0 -1 1
|
||||
340 FEAT_BONUS_AURA_ENERGYFIRE 1831 0 -1 1
|
||||
341 FEAT_BONUS_AURA_TOUGHNESS 1894 0 -1 1
|
||||
342 FEAT_BONUS_AURA_SENSES 1891 0 -1 1
|
||||
343 FEAT_BONUS_AURA_PRESENCE 1885 0 -1 1
|
||||
344 FEAT_BONUS_AURA_INSIGHT 1884 0 -1 1
|
||||
345 FEAT_BONUS_AURA_RESOLVE 1890 0 -1 1
|
||||
346 FEAT_BONUS_AURA_STAMINA 1892 0 -1 1
|
||||
347 FEAT_BONUS_AURA_SWIFTNESS 1893 0 -1 1
|
||||
348 FEAT_BONUS_AURA_RESISTACID 1886 0 -1 1
|
||||
349 FEAT_BONUS_AURA_RESISTCOLD 1887 0 -1 1
|
||||
350 FEAT_BONUS_AURA_RESISTELEC 1888 0 -1 1
|
||||
351 FEAT_BONUS_AURA_RESISTFIRE 1889 0 -1 1
|
||||
352 FEAT_BONUS_AURA_MAGICPOWER 1840 0 -1 1
|
||||
353 FEAT_SECOND_AURA_POWER 1853 0 99 1
|
||||
354 FEAT_SECOND_AURA_ENERGYSHLD 1854 0 99 1
|
||||
355 FEAT_SECOND_AURA_TOUGHNESS 1855 0 99 1
|
||||
356 FEAT_SECOND_AURA_SENSES 1856 0 99 1
|
||||
357 FEAT_SECOND_AURA_VIGOR 1857 0 99 1
|
||||
358 FEAT_SECOND_AURA_RESISTANCE 1858 0 99 1
|
||||
359 FEAT_SECOND_AURA_PRESENCE 1859 0 99 1
|
||||
360 FEAT_SECOND_AURA_INSIGHT 1860 0 99 1
|
||||
361 FEAT_SECOND_AURA_RESOLVE 1861 0 99 1
|
||||
362 FEAT_SECOND_AURA_STAMINA 1862 0 99 1
|
||||
363 FEAT_SECOND_AURA_SWIFTNESS 1863 0 99 1
|
||||
364 FEAT_SECOND_AURA_RESISTACID 1864 0 99 1
|
||||
365 FEAT_SECOND_AURA_RESISTCOLD 1865 0 99 1
|
||||
366 FEAT_SECOND_AURA_RESISTELEC 1866 0 99 1
|
||||
367 FEAT_SECOND_AURA_RESISTFIRE 1867 0 99 1
|
||||
368 FEAT_SECOND_AURA_MAGICPOWER 1841 0 99 1
|
||||
369 FEAT_SECOND_AURA_ENERGYACID 1824 0 99 1
|
||||
370 FEAT_SECOND_AURA_ENERGYCOLD 1825 0 99 1
|
||||
371 FEAT_SECOND_AURA_ENERGYELEC 1826 0 99 1
|
||||
372 FEAT_SECOND_AURA_ENERGYFIRE 1827 0 99 1
|
||||
373 FEAT_SECOND_AURA_ENERGY 1836 0 99 1
|
||||
374 **** **** **** **** ****
|
||||
375 **PsionicFeats** **** **** **** ****
|
||||
376 Psionic_Focus 4818 0 99 1
|
||||
377 Invest_Armour 3643 0 -1 1
|
||||
378 Mental_Leap 4809 0 -1 1
|
||||
379 Psionic_Fist 4800 0 -1 1
|
||||
380 Greater_Psionic_Fist 4821 0 -1 1
|
||||
381 Psionic_Weapon 4822 0 -1 1
|
||||
382 Greater_Psionic_Weapon 4823 0 -1 1
|
||||
383 Psionic_Shot 4824 0 -1 1
|
||||
384 Greater_Psionic_Shot 4825 0 -1 1
|
||||
385 Psionic_Meditation 4827 0 -1 1
|
||||
386 Unavoidable_Strike 4830 0 -1 1
|
||||
387 Wounding_Attack 4832 0 -1 1
|
||||
388 Deep_Impact 4852 0 -1 1
|
||||
389 Fell_Shot 4853 0 -1 1
|
||||
390 Strength_of_Two 4965 0 -1 1
|
||||
391 **** **** **** **** ****
|
||||
392 **IncarnumFeats** **** **** **** ****
|
||||
393 InvestEssentiaConversation 8800 0 99 1
|
||||
394 HealingSoul 8882 0 99 1
|
||||
395 MidnightAugmentation 8884 0 99 1
|
||||
396 PsycarnumBlade 8887 0 99 1
|
||||
397 DivineSoultouch 8891 0 99 1
|
||||
398 PsycarnumInfusion 8896 0 99 1
|
||||
399 **** **** **** **** ****
|
||||
400 **BindingFeats** **** **** **** ****
|
||||
401 BindVestige 9131 0 -1 1
|
||||
402 ExpelVestige 9136 0 -1 1
|
||||
403 MalphasArcaneEye 9040 0 99 1
|
||||
404 SavnokCallArmor 9043 0 99 1
|
||||
405 AndromaliusSee_Invisibility 9048 0 99 1
|
||||
406 FocalorAuraSadness 9049 0 99 1
|
||||
407 KarsusSenses 9052 0 99 1
|
||||
408 **** **** **** **** ****
|
||||
409 **RacialFeats** **** **** **** ****
|
||||
410 FEAT_URDINNIR_STONESKIN 4644 0 99 1
|
||||
411 FEAT_AVARIEL_DIVE 4645 0 99 1
|
||||
412 FEAT_AYUAN_FEAR 4646 0 99 1
|
||||
413 FEAT_AYUAN_ENTANGLE 4647 0 99 1
|
||||
414 FEAT_AYUAN_DARKNESS 4648 0 99 1
|
||||
415 FEAT_AYUAN_NEUTRALIZE_POISON 4649 0 99 1
|
||||
416 FEAT_AASIMAR_LIGHT 4650 0 99 1
|
||||
417 FEAT_TIEFLING_DARK 4651 0 99 1
|
||||
418 FEAT_SVIRF_BLIND_DEAF 4652 0 99 1
|
||||
419 FEAT_SVIRF_BLUR 4653 0 99 1
|
||||
420 FEAT_SVIRF_DISGUISE 4654 0 99 1
|
||||
421 FEAT_SVIRF_REVERT 4655 0 99 1
|
||||
422 FEAT_RAK_DISGUISE 4656 0 99 1
|
||||
423 FEAT_RAK_CHANGE_SHAPE 4657 0 99 1
|
||||
424 FEAT_PYUAN_CHARM 4658 0 99 1
|
||||
425 FEAT_PYUAN_DARKNESS 4659 0 99 1
|
||||
426 FEAT_PYUAN_ENTANGLE 4660 0 99 1
|
||||
427 FEAT_PYUAN_FEAR 4661 0 99 1
|
||||
428 FEAT_PIXIE_INVIS 4662 0 99 1
|
||||
429 FEAT_PIXIE_CONFUSE 4663 0 99 1
|
||||
430 FEAT_PIXIE_ENTANGLE 4664 0 99 1
|
||||
431 FEAT_PIXIE_DISPEL_MAGIC 4665 0 99 1
|
||||
432 FEAT_PIXIE_POLYMORPH 4666 0 99 1
|
||||
433 FEAT_PIXIE_REVERT 4667 0 99 1
|
||||
434 FEAT_MINOTAUR_CHARGE 4668 0 99 1
|
||||
435 FEAT_ILLITHID_CHARM 4669 0 99 1
|
||||
436 FEAT_ILLITHID_BLAST 4670 0 99 1
|
||||
437 FEAT_ILLITHID_SUCKBRAIN 4671 0 99 1
|
||||
438 FEAT_GITHZERAI_DAZE 4672 0 99 1
|
||||
439 FEAT_GITHYANKI_DAZE 4673 0 99 1
|
||||
440 FEAT_GITHYANKI_BLUR 4674 0 99 1
|
||||
441 FEAT_FEYRI_CHARMPERSON 4675 0 99 1
|
||||
442 FEAT_FEYRI_CLAIRAUDIENCE 4676 0 99 1
|
||||
443 FEAT_FEYRI_DARKNESS 4677 0 99 1
|
||||
444 FEAT_FEYRI_ENERVATION 4678 0 99 1
|
||||
445 FEAT_FEYRI_ALTER 4679 0 99 1
|
||||
446 FEAT_FEYRI_REVERT 4680 0 99 1
|
||||
447 FEAT_DUERGAR_INVIS 4681 0 99 1
|
||||
448 FEAT_DROW_DARKNESS 4682 0 99 1
|
||||
449 FEAT_DROW_FAERIE_FIRE 4683 0 99 1
|
||||
450 BROWNIE_RAKSHASA_HIPS 433 0 99 1
|
||||
451 FEAT_WGNOME_SILENCE 4555 0 99 1
|
||||
452 FEAT_WGNOME_MAGEHAND 4519 0 99 1
|
||||
453 FEAT_HOUND_AID 4574 0 99 1
|
||||
454 FEAT_HOUND_AURAMENACE 4548 0 99 1
|
||||
455 FEAT_HOUND_CONTFLAME 4514 0 99 1
|
||||
456 FEAT_HOUND_DETECTEVIL 4618 0 99 1
|
||||
457 FEAT_HOUND_DISGUISE 4513 0 99 1
|
||||
458 FEAT_HOUND_MAGICCIRCLE 4515 0 99 1
|
||||
459 FEAT_HOUND_TELEPORT 4516 0 99 1
|
||||
460 FEAT_RACE_ENERGYRAY 4856 0 99 1
|
||||
461 FEAT_RACE_ENERGYRAYSONIC 4520 0 99 1
|
||||
462 FEAT_ELAN_RESISTANCE 4521 0 99 1
|
||||
463 FEAT_ELAN_RESILIANCE 4522 0 99 1
|
||||
464 FEAT_PSIRACE_STOMP 4524 0 99 1
|
||||
465 FEAT_MAENAD_OUTBURST 4525 0 99 1
|
||||
466 FEAT_XEPH_BURST 4526 0 99 1
|
||||
467 FEAT_ZENYTH_TRUESTRIKE 4536 0 99 1
|
||||
468 FEAT_TULADH_MAGIC_CIRCL 4533 0 99 1
|
||||
469 FEAT_NATHRI_EXP_RETREAT 4534 0 99 1
|
||||
470 FEAT_BLADELING_RAZOR_STORM 4539 0 99 1
|
||||
471 FEAT_KAPAK_SALIVA 4546 0 99 1
|
||||
472 FEAT_IRDA_FLARE 4551 0 99 1
|
||||
473 FEAT_ZAKYA_CHILLTOUCH 4570 0 99 1
|
||||
474 FEAT_ZAKYA_TRUESTRIKE 4557 0 99 1
|
||||
475 FEAT_ZAKYA_VAMPTOUCH 4558 0 99 1
|
||||
476 FEAT_MINOR_CHANGE_SHAPE 4560 0 99 1
|
||||
477 FEAT_CHANGELING_CHANGE_SHAPE 4561 0 99 1
|
||||
478 FEAT_IRDA_CHANGE_SHAPE 4562 0 99 1
|
||||
479 FEAT_QUICK_CHANGE_SHAPE 4563 0 99 1
|
||||
480 FEAT_SHIFTER_SHIFTING 4566 0 99 1
|
||||
481 FEAT_RAK_SHADOW_JUMP 3307 0 99 1
|
||||
482 FEAT_NIXIE_CHARM_PERSON 4597 0 99 1
|
||||
483 FEAT_NIXIE_WATERBREATHING 4641 0 99 1
|
||||
484 FEAT_NYMPH_DIMENSION_DOOR 4755 0 99 1
|
||||
485 FEAT_NYMPH_STUNNING_GLANCE 4684 0 99 1
|
||||
486 FEAT_NYMPH_BLINDING_BEAUTY 4685 0 99 1
|
||||
487 FEAT_GRIG_PYROTECHNICS 4686 0 99 1
|
||||
488 FEAT_GRIG_INVIS 4687 0 99 1
|
||||
489 FEAT_GRIG_ENTANGLE 4635 0 99 1
|
||||
490 FEAT_BRALANI_LIGHTNING_BOLT 4995 0 99 1
|
||||
491 FEAT_BRALANI_CURE_SERIOUS 4996 0 99 1
|
||||
492 FEAT_BRALANI_BLUR 4997 0 99 1
|
||||
493 FEAT_BRALANI_CHARM_PERSON 4998 0 99 1
|
||||
494 FEAT_BRALANI_MIRROR_IMAGE 4999 0 99 1
|
||||
495 FEAT_BRALANI_GUST_OF_WIND 4978 0 99 1
|
||||
496 FEAT_TOUCH_OF_LUCK 4634 0 99 1
|
||||
497 FEAT_FORESTLORD_TREEWALK 4633 0 99 1
|
||||
498 FEAT_TROGLODYTE_STENCH 23549 0 99 1
|
||||
499 Skarn_spines 5180 0 99 1
|
||||
500 Killoren_Aspect_H 5209 0 99 1
|
||||
501 Killoren_Aspect_D 5210 0 99 1
|
||||
502 Killoren_Aspect_A 5211 0 99 1
|
||||
503 FrostFolk_IceBlast 5372 0 99 1
|
||||
504 Uldra_RayFrost 5373 0 99 1
|
||||
505 Uldra_Fatigue 5374 0 99 1
|
||||
506 Marrulurk_DA 2930 0 99 1
|
||||
507 Marrulurk_NauseatingBreath 5375 0 99 1
|
||||
508 ExtaminaarCharmAnimal 5379 0 99 1
|
||||
509 Marrusault_Howl 3308 0 99 1
|
||||
510 FEAT_HYBSIL_MIRROR_IMAGE 5382 0 99 1
|
||||
511 FEAT_HYBSIL_DANCLIGHTS 5383 0 99 1
|
||||
512 FEAT_HYBSIL_JUMP 5384 0 99 1
|
||||
513 FEAT_WILDREN_FURY 5386 0 99 1
|
||||
514 Turlemoi_RockThrowing 5419 0 99 1
|
||||
515 Arkamoi_ArcaneMastermind 5424 0 99 1
|
||||
516 Muckdweller_Squirt 5425 0 99 1
|
||||
517 Aranea_AlternateForm 5426 0 99 1
|
||||
518 Aranea_Web 5427 0 99 1
|
||||
519 Mephling_breath 5429 0 99 1
|
||||
520 FEAT_FOG_CLOUD_BREATH 5434 0 99 1
|
||||
521 **** **** **** **** ****
|
||||
522 **BonusDomains** **** **** **** ****
|
||||
523 FEAT_CHECK_DOMAIN_SLOTS 2000 0 99 1
|
||||
524 FEAT_CAST_DOMAIN_LEVEL_ONE 2049 0 99 1
|
||||
525 FEAT_CAST_DOMAIN_LEVEL_TWO 2050 0 99 1
|
||||
526 FEAT_CAST_DOMAIN_LEVEL_THREE 2051 0 99 1
|
||||
527 FEAT_CAST_DOMAIN_LEVEL_FOUR 2052 0 99 1
|
||||
528 FEAT_CAST_DOMAIN_LEVEL_FIVE 2053 0 99 1
|
||||
529 FEAT_CAST_DOMAIN_LEVEL_SIX 2054 0 99 1
|
||||
530 FEAT_CAST_DOMAIN_LEVEL_SEVEN 2055 0 99 1
|
||||
531 FEAT_CAST_DOMAIN_LEVEL_EIGHT 2056 0 99 1
|
||||
532 FEAT_CAST_DOMAIN_LEVEL_NINE 2057 0 99 1
|
||||
533 Strength_Domain_Power 307 0 99 1
|
||||
534 Protection_Domain_Power 308 0 99 1
|
||||
535 Death_Domain_Power 310 0 99 1
|
||||
536 Air_Domain_Power 311 0 99 1
|
||||
537 Destruction_Domain_Power 313 0 99 1
|
||||
538 Earth_Domain_Power 314 0 99 1
|
||||
539 Fire_Domain_Power 316 0 99 1
|
||||
540 Plant_Domain_Power 321 0 99 1
|
||||
541 Sun_Domain_Power 322 0 99 1
|
||||
542 Travel_Domain_Power 323 0 99 1
|
||||
543 Trickery_Domain_Power 324 0 99 1
|
||||
544 Water_Domain_Power 325 0 99 1
|
||||
545 FEAT_ORC_DOMAIN 4041 0 99 1
|
||||
546 FEAT_SLIME_DOMAIN 4043 0 99 1
|
||||
547 FEAT_CHARM_DOMAIN 4045 0 99 1
|
||||
548 FEAT_FAMILY_DOMAIN 4051 0 99 1
|
||||
549 FEAT_HALFLING_DOMAIN 4052 0 99 1
|
||||
550 FEAT_ILLUSION_DOMAIN 4053 0 99 0
|
||||
551 FEAT_HATRED_DOMAIN 4054 0 99 1
|
||||
552 FEAT_NOBILITY_DOMAIN 4055 0 99 1
|
||||
553 FEAT_SCALEYKIND_DOMAIN 4057 0 99 1
|
||||
554 FEAT_RENEWAL_DOMAIN 4060 0 99 1
|
||||
555 FEAT_SPIDER_DOMAIN 4061 0 99 1
|
||||
556 FEAT_BLIGHTBRINGER 2250 0 99 1
|
||||
557 **** **** **** **** ****
|
||||
558 **Templates** **** **** **** ****
|
||||
559 Celestial_Smite_Evil 22601 0 99 1
|
||||
560 Fiendish_Smite_Good 22603 0 99 1
|
||||
561 Half_Celestial_Smite_Evil 22605 0 99 1
|
||||
562 Half_Celestial_Protection_from_Evil 22606 0 99 1
|
||||
563 Half_Celestial_Bless 22607 0 99 1
|
||||
564 Half_Celestial_Aid 22608 0 99 1
|
||||
565 Half_Celestial_Detect_Evil 22609 0 99 1
|
||||
566 Half_Celestial_Cure_Serious_Wounds 22610 0 99 1
|
||||
567 Half_Celestial_Neutralize_Poison 22611 0 99 1
|
||||
568 Half_Celestial_HolySmite **** 0 99 1
|
||||
569 Half_Celestial_Remove_Disease 22613 0 99 1
|
||||
570 Half_Celestial_DispelEvil **** 0 99 1
|
||||
571 Half_Celestial_Holy_Word 22615 0 99 1
|
||||
572 Half_Celestial_HolyAura 22616 0 99 1
|
||||
573 Half_Celestial_Hallow **** 0 99 1
|
||||
574 Half_Celestial_Mass_Charm 22618 0 99 1
|
||||
575 Half_Celestial_Summon_Creature_IX 22619 0 99 1
|
||||
576 Half_Celestial_Resurrection 22620 0 99 1
|
||||
577 Half_Celestial_Daylight 22621 0 99 1
|
||||
578 Half_Fiendish_Smite_Good 22624 0 99 1
|
||||
579 Half_Fiendish_Darkness 22625 0 99 1
|
||||
580 Half_Fiendish_Desecrate **** 0 99 1
|
||||
581 Half_Fiendish_Unholy_Blight **** 0 99 1
|
||||
582 Half_Fiendish_Poison 22628 0 99 1
|
||||
583 Half_Fiendish_Contagion 22629 0 99 1
|
||||
584 Half_Fiendish_Blasphemy 22630 0 99 1
|
||||
585 Half_Fiendish_Unholy_Aura **** 0 99 1
|
||||
586 Half_Fiendish_Unhallow **** 0 99 1
|
||||
587 Half_Fiendish_Horrid_Wilting 22633 0 99 1
|
||||
588 Half_Fiendish_Summon_Creature_IX 22634 0 99 1
|
||||
589 Half_Fiendish_Destruction 22635 0 99 1
|
||||
590 Lich_Fear_Aura 22637 0 99 1
|
||||
591 Lich_Paralyzing_Touch 22638 0 99 1
|
||||
592 Lich_Appearance 22639 0 99 1
|
||||
593 Demilich_Alter_Self 22641 0 99 1
|
||||
594 Demilich_Astral_Projection **** 0 99 1
|
||||
595 Demilich_Create_Greater_Undead 22643 0 99 1
|
||||
596 Demilich_Create_Undead 22644 0 99 1
|
||||
597 Demilich_Death_Knell **** 0 99 1
|
||||
598 Demilich_Enervation 22646 0 99 1
|
||||
599 Demilich_Greater_Dispel_Magic 22647 0 99 1
|
||||
600 Demilich_Harm 22648 0 99 1
|
||||
601 Demilich_Summon_Creature_I 22649 0 99 1
|
||||
602 Demilich_Summon_Creature_II 22650 0 99 1
|
||||
603 Demilich_Summon_Creature_III 22651 0 99 1
|
||||
604 Demilich_Summon_Creature_IV 22652 0 99 1
|
||||
605 Demilich_Summon_Creature_V 22653 0 99 1
|
||||
606 Demilich_Summon_Creature_VI 22654 0 99 1
|
||||
607 Demilich_Summon_Creature_VII 22655 0 99 1
|
||||
608 Demilich_Summon_Creature_VIII 22656 0 99 1
|
||||
609 Demilich_Summon_Creature_IX 22657 0 99 1
|
||||
610 Demilich_Telekinesis **** 0 99 1
|
||||
611 Demilich_Weird 22659 0 99 1
|
||||
612 Demilich_Greater_Planar_Ally 22660 0 99 1
|
||||
613 HalfDragon_Breath_Weapon 22662 0 99 1
|
||||
614 Earth_Strike 5328 0 99 1
|
||||
615 BloodedOne_War_Cry 5377 0 99 1
|
||||
616 RethDekala_VilefireBlast 5409 0 99 1
|
||||
617 RethDekala_MartialSpirit 5410 0 99 1
|
||||
618 RethDekala_ThicketOfBlades 5411 0 99 1
|
||||
619 RethDekala_DauntingStrike 5412 0 99 1
|
||||
620 RethDekala_DeathFromAbove 5413 0 99 1
|
||||
621 RethDekala_DisarmingStrike 5414 0 99 1
|
||||
622 RethDekala_EntanglingBlade 5415 0 99 1
|
||||
623 RethDekala_WallOfBlades 5416 0 99 1
|
||||
624 RethDekala_RecoverManeuvers 5417 0 99 1
|
||||
625 ArchlichTurnUndead 22701 0 99 1
|
||||
626 FEAT_ANIMATE_DEAD 3574 0 99 1
|
||||
627 FEAT_PROJECTION 3579 0 99 1
|
||||
628 FEAT_END_PROJECTION 3575 0 99 1
|
||||
629 **** **** **** **** ****
|
||||
630 Saint_Bless 22702 0 99 1
|
||||
631 Saint_Guidance_Placeholder **** **** **** ****
|
||||
632 Saint_Resistance 22704 0 99 1
|
||||
633 Saint_Virtue 22705 0 99 1
|
||||
634 Saint_Protective_Aura 22706 0 99 1
|
||||
635 **** **** **** **** ****
|
||||
636 **WeaponsOfLegacy** **** **** **** ****
|
||||
637 BBB_Darkvision 22710 0 99 1
|
||||
638 BBB_Longstrider 22711 0 99 1
|
||||
639 BBB_Lesser_Restoration 22712 0 99 1
|
||||
640 BBB_Teleport_SelfOnly 22713 0 99 1
|
||||
641 BBB_Protection_from_Evil 22714 0 99 1
|
||||
642 BBB_Drowseeker 22715 0 99 1
|
||||
643 BBB_ShockingShot 22716 0 99 1
|
||||
644 BBB_PierceTheBlackHeart 22717 0 99 1
|
||||
645 Steadfast_vigor 22718 0 99 1
|
||||
646 Steadfast_slow 22719 0 99 1
|
||||
647 Flay_SnakeSting 22720 0 99 1
|
||||
648 Flay_WhipWrap 22721 0 99 1
|
||||
649 CrimsonRuination_FrozenFate 22722 0 99 1
|
||||
650 Devious_DetectThoughts 22723 0 99 1
|
||||
651 SimpleBow_TrueSeeing 22724 0 99 1
|
||||
652 SimpleBow_Prescience 22725 0 99 1
|
||||
653 SimpleBow_Focus 22726 0 99 1
|
||||
654 Aradros_Extend 22727 0 99 1
|
||||
655 Aradros_Survive 22728 0 99 1
|
||||
656 Guurgal_Force 22729 0 99 1
|
||||
657 Guurgal_Rage 22730 0 99 1
|
||||
658 DivSpark_Fear 22731 0 99 1
|
||||
659 DivSpark_Light 22732 0 99 1
|
||||
660 Wargirds_Haste 22733 0 99 1
|
||||
661 Wargirds_Stoneskin 22734 0 99 1
|
||||
662 DesertWind_FierySlash 22735 0 99 1
|
||||
663 DesertWind_HowlingWind 22736 0 99 1
|
||||
664 DesertWind_FanFlames 22737 0 99 1
|
||||
665 DesertWind_DustDesert 22738 0 99 1
|
||||
666 Mindsplinter_VirtueDenied 22739 0 99 1
|
||||
667 Mindsplinter_KissOfDeath 22740 0 99 1
|
||||
668 Mindsplinter_BattleShriek 22741 0 99 1
|
||||
669 Mindsplinter_RuinousHowl 22742 0 99 1
|
||||
670 NotchedSpear_ParliamentOfFishes 22743 0 99 1
|
||||
671 NotchedSpear_ConcealmentKraken 22744 0 99 1
|
||||
672 NotchedSpear_ScionSea 22745 0 99 1
|
||||
673 NotchedSpear_CommandSeaChildren 22746 0 99 1
|
||||
674 Ur_SwiftStride 22747 0 99 1
|
||||
675 Ur_HealingTotem 22748 0 99 1
|
||||
676 Ur_SavageTransformation 22749 0 99 1
|
||||
677 FlamecastersBolt_MarkTarget 22750 0 99 1
|
||||
678 FlamecastersBolt_Morale 22751 0 99 1
|
||||
679 FlamecastersBolt_Fireball 22752 0 99 1
|
||||
680 StalkersBow_StalkersInsight 22753 0 99 1
|
||||
681 StalkersBow_Ethereal 22754 0 99 1
|
||||
682 Exordius_Guidance 22755 0 99 1
|
||||
683 Exordius_Cure 22756 0 99 1
|
||||
684 Exordius_Dismissal 22757 0 99 1
|
||||
685 Caladbolg_Imprison 22758 0 99 1
|
||||
686 HammerWitches_Detect 22759 0 99 1
|
||||
687 HammerWitches_Spellbreaker 22760 0 99 1
|
||||
688 HammerWitches_AMF 22761 0 99 1
|
||||
689 HammerWitches_Dispel 22762 0 99 1
|
||||
690 HammerWitches_Mantle 22763 0 99 1
|
||||
691 SlingOfTheDireWind_StunningStone 22764 0 99 1
|
||||
692 SlingOfTheDireWind_GustOfWind 22765 0 99 1
|
||||
693 SlingOfTheDireWind_WindWall 22766 0 99 1
|
||||
694 Treebrother_Shillelagh 22767 0 99 1
|
||||
695 Treebrother_Charm_Plant 22768 0 99 1
|
||||
696 Treebrother_Entangle 22769 0 99 1
|
||||
697 Treebrother_Owls_Insight 22770 0 99 1
|
||||
698 Treebrother_Changestaff 22771 0 99 1
|
||||
699 FullMoonsTrick_Rage 22772 0 99 1
|
||||
700 FullMoonsTrick_Invis 22773 0 99 1
|
||||
701 FiendkillersFlail_Darkvis 22774 0 99 1
|
||||
702 FiendkillersFlail_Detect 22775 0 99 1
|
||||
703 ScalesBalance_Detect 22776 0 99 1
|
||||
704 ScalesBalance_Cure 22777 0 99 1
|
||||
705 ScalesBalance_Knell 22778 0 99 1
|
||||
706 ScalesBalance_Enerv 22779 0 99 1
|
||||
707 ScalesBalance_Heal 22780 0 99 1
|
||||
708 ScalesBalance_Finger 22781 0 99 1
|
||||
709 ShishiO_Charm 22782 0 99 1
|
||||
710 ShishiO_Summon 22783 0 99 1
|
||||
711 ShishiO_Poly 22784 0 99 1
|
||||
712 ShishiO_Shout 22785 0 99 1
|
||||
713 Dymondheart_ShedBolts 22786 0 99 1
|
||||
714 Dymondheart_Deflect 22787 0 99 1
|
||||
715 Dymondheart_Daylight 22788 0 99 1
|
||||
716 Dymondheart_Cure 22789 0 99 1
|
||||
717 Dymondheart_Banish 22790 0 99 1
|
||||
718 Sunsword_Daylight 22791 0 99 1
|
||||
719 Sunsword_Death_Ward 22792 0 99 1
|
||||
720 Sunsword_Banish 22793 0 99 1
|
||||
721 Sunsword_Undeath 22794 0 99 1
|
||||
722 Blackrazor_Detect 22795 0 99 1
|
||||
723 Blackrazor_Knell 22796 0 99 1
|
||||
724 Blackrazor_Haste 22797 0 99 1
|
||||
725 Ramethene_Detect 22798 0 99 1
|
||||
726 Ramethene_Smite 22799 0 99 1
|
||||
727 Ramethene_Resist_Elements 22800 0 99 1
|
||||
728 Ramethene_Cloudkill 22801 0 99 1
|
||||
729 Ramethene_SuddenMaximize 22802 0 99 1
|
||||
730 Ramethene_Horrid_Wilting 22803 0 99 1
|
||||
731 Wyrmbane_Cause_Fear 22804 0 99 1
|
||||
732 Wyrmbane_Lightning_Bolt 22805 0 99 1
|
||||
733 Wyrmbane_Sudden_Emp 22806 0 99 1
|
||||
734 Wyrmbane_Breath_Lightning 22807 0 99 1
|
||||
735 Whelm_Detect_Giant 22808 0 99 1
|
||||
736 Whelm_Locate_Object 22809 0 99 1
|
||||
737 Whelm_Detect_Goblin 22810 0 99 1
|
||||
738 Ravenkind_Dancing_Lights 22811 0 99 1
|
||||
739 Ravenkind_Light 22812 0 99 1
|
||||
740 Ravenkind_Flare 22813 0 99 1
|
||||
741 Ravenkind_Detect_Undead 22814 0 99 1
|
||||
742 Ravenkind_Halt_Undead 22815 0 99 1
|
||||
743 Ravenkind_Cure_Light_Wounds 22816 0 99 1
|
||||
744 Ravenkind_Daylight 22817 0 99 1
|
||||
745 Ravenkind_Death_Ward 22818 0 99 1
|
||||
746 Ravenkind_Break_Enchantment 22819 0 99 1
|
||||
747 Ravenkind_Mass_Heal 22820 0 99 1
|
||||
748 LastCitadel_LeadingTheAttack 22821 0 99 1
|
||||
749 LastCitadel_Prayer 22822 0 99 1
|
||||
750 LastCitadel_Remove_Fear 22823 0 99 1
|
||||
751 LastCitadel_Cure_Critical_Wounds 22824 0 99 1
|
||||
752 LastCitadel_Blade_Barrier 22825 0 99 1
|
||||
753 LastCitadel_Heal 22826 0 99 1
|
||||
754 Unfettered_ChargingMinotaur 22827 0 99 1
|
||||
755 Unfettered_ENLARGE_PERSON 22828 0 99 1
|
||||
756 Unfettered_Etherealness 22829 0 99 1
|
||||
757 Unfettered_Stoneskin 22830 0 99 1
|
||||
758 Unfettered_Mordenkainens_Sword 22831 0 99 1
|
||||
759 Hillcrusher_Earthen_Might 22832 0 99 1
|
||||
760 Hillcrusher_Soften_Earth 22833 0 99 1
|
||||
761 Hillcrusher_Fangs_of_Stone 22834 0 99 1
|
||||
762 Hillcrusher_Raise_the_Earth 22835 0 99 1
|
||||
763 Hillcrusher_Shake_the_Earth 22836 0 99 1
|
||||
764 DesertWindToB_BurningBlade 22837 0 99 1
|
||||
765 DesertWindToB_FanTheFlames 22838 0 99 1
|
||||
766 DesertWindToB_WyrmsFlame 22839 0 99 1
|
||||
767 Faithful_Detect_Evil 22840 0 99 1
|
||||
768 Faithful_Lesser_Restoration 22841 0 99 1
|
||||
769 Faithful_Restoration 22842 0 99 1
|
||||
770 Faithful_Resiliency 22843 0 99 1
|
||||
771 Faithful_ImmortalFortitude 22844 0 99 1
|
||||
772 SupernalClarity_SapphireNightmareBlade 22845 0 99 1
|
||||
773 SupernalClarity_PsychicPoise 22846 0 99 1
|
||||
774 SupernalClarity_Haste 22847 0 99 1
|
||||
775 SupernalClarity_Freeeeeedom 22848 0 99 1
|
||||
776 SupernalClarity_Time_Stop 22849 0 99 1
|
||||
777 Kamate_SteelWind 22850 0 99 1
|
||||
778 Kamate_ShockingGrasp 22851 0 99 1
|
||||
779 Kamate_Lightning_Bolt 22852 0 99 1
|
||||
780 Kamate_Chain_Lightning 22853 0 99 1
|
||||
781 Kamate_True_Strike 22854 0 99 1
|
||||
782 Eventide_CometThrow 22855 0 99 1
|
||||
783 Eventide_BafflingDefense 22856 0 99 1
|
||||
784 Eventide_Improved_Invisibility 22857 0 99 1
|
||||
785 Umbral_Invisibility 22858 0 99 1
|
||||
786 Umbral_Shadowstep 22859 0 99 1
|
||||
787 TigerFang_FrenziedCharge 22860 0 99 1
|
||||
788 TigerFang_BattleFever 22861 0 99 1
|
||||
789 TigerFang_Haste 22862 0 99 1
|
||||
790 Bullybasher_KnockSilly 22863 0 99 1
|
||||
791 Bullybasher_StoneGathering 22864 0 99 1
|
||||
792 Bullybasher_LightningPunch 22865 0 99 1
|
||||
793 Lorestealer_Read_Magic 22866 0 99 1
|
||||
794 Lorestealer_DetectMagic 22867 0 99 1
|
||||
795 Lorestealer_Axecasting 22868 0 99 1
|
||||
796 Durindana_Daylight 22869 0 99 1
|
||||
797 Durindana_Death_Ward 22870 0 99 1
|
||||
798 Durindana_Hallow 22871 0 99 1
|
||||
799 Durindana_Dazzle 22872 0 99 1
|
||||
800 Thaas_Detect_Demon 22873 0 99 1
|
||||
801 Thaas_ObstructSummoning 22874 0 99 1
|
||||
802 Thaas_Banishment 22875 0 99 1
|
||||
803 Thaas_Teleport 22876 0 99 1
|
||||
804 Quickspur_Entropic_Shield 22877 0 99 1
|
||||
805 Quickspur_Resist_Elements 22878 0 99 1
|
||||
806 Quickspur_PhantomSteed 22879 0 99 1
|
||||
807 Quickspur_Blur 22880 0 99 1
|
||||
808 Quickspur_Stoneskin 22881 0 99 1
|
||||
809 BES_FIRE_OF_THE_HEART 22882 0 99 1
|
||||
810 BES_ENTHRALLING_LIGHT 22883 0 99 1
|
||||
811 BES_COLOR_SPRAY 22884 0 99 1
|
||||
812 BES_BLINDING_FLASH 22885 0 99 1
|
||||
813 BES_SHOOTING_STARS 22886 0 99 1
|
||||
814 BES_GLITTERING_MOTES 22887 0 99 1
|
||||
815 BES_TWINKLE 22888 0 99 1
|
||||
816 BES_SILVER_STARLIGHT 22889 0 99 1
|
||||
817 BES_STARLIGHT_DISPELLING 22890 0 99 1
|
||||
818 BES_TALES_IN_THE_SKY 22891 0 99 1
|
||||
819 BES_CALL_DOWN_A_STAR 22892 0 99 1
|
||||
820 ###cls_feat_allBaseClasses_END### **** **** **** ****
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 SpellFocusCon 166 0 -1 0
|
||||
1 SpellFocusDiv 167 0 -1 0
|
||||
2 SpellFocusEnc 168 0 -1 0
|
||||
3 SpellFocusEvo 169 0 -1 0
|
||||
4 SpellFocusIll 170 0 -1 0
|
||||
5 SpellFocusNec 171 0 -1 0
|
||||
6 SpellFocusTra 172 0 -1 0
|
||||
7 SpellFocusAbj 35 0 -1 0
|
||||
8 ExaltedCompanion 4199 0 -1 0
|
||||
9 TracklessStep 201 3 1 0
|
||||
10 ImpTwo 20 3 9 0
|
||||
11 WeapProfSim 46 3 1 0
|
||||
12 WeapProfSim_Dart 7914 3 1 0
|
||||
13 WeapProfSim_Light_Mace 7908 3 1 0
|
||||
14 WeapProfSim_Morningstar 7923 3 1 0
|
||||
15 WeapProfSim_Shortspear 7927 3 1 0
|
||||
16 WeapProfSim_Sickle 7929 3 1 0
|
||||
17 WeapProfSim_Sling 7930 3 1 0
|
||||
18 WP_Goad 7949 3 1 0
|
||||
19 WP_Heavy_Mace 7946 3 1 0
|
||||
20 WP_Katar 7945 3 1 0
|
||||
21 WP_Sap 7944 3 1 0
|
||||
22 ArmProfLgt 3 3 1 0
|
||||
23 ArmProfMed 4 3 1 0
|
||||
24 Shield 32 3 1 0
|
||||
25 WeapProfMar 45 3 1 0
|
||||
26 WeapProfMar_Battleaxe 7903 3 1 0
|
||||
27 WeapProfMar_Greataxe 7913 3 1 0
|
||||
28 WeapProfMar_Greatsword 7912 3 1 0
|
||||
29 WeapProfMar_Halberd 7909 3 1 0
|
||||
30 WeapProfMar_Handaxe 7919 3 1 0
|
||||
31 WeapProfMar_Heavy_Flail 7917 3 1 0
|
||||
32 WeapProfMar_Light_Flail 7905 3 1 0
|
||||
33 WeapProfMar_Light_Hammer 7918 3 1 0
|
||||
34 WeapProfMar_Longbow 7907 3 1 0
|
||||
35 WeapProfMar_Longsword 7902 3 1 0
|
||||
36 WeapProfMar_Rapier 7924 3 1 0
|
||||
37 WeapProfMar_Scimitar 7925 3 1 0
|
||||
38 WeapProfMar_Shortbow 7910 3 1 0
|
||||
39 WeapProfMar_Shortsword 7901 3 1 0
|
||||
40 WeapProfMar_Throwing_Axe 7931 3 1 0
|
||||
41 WeapProfMar_Trident 7932 3 1 0
|
||||
42 WeapProfMar_Warhammer 7906 3 1 0
|
||||
43 WP_Light_Lance 7938 3 1 0
|
||||
44 WP_Heavy_Pick 7939 3 1 0
|
||||
45 WP_Light_Pick 7940 3 1 0
|
||||
46 WP_Falchion 7943 3 1 0
|
||||
47 WP_Maul 7947 3 1 0
|
||||
48 FE_Dwarf 261 2 -1 0
|
||||
49 FE_Elf 262 2 -1 0
|
||||
50 FE_Gnome 263 2 -1 0
|
||||
51 FE_Halfling 264 2 -1 0
|
||||
52 FE_HalfElf 265 2 -1 0
|
||||
53 FE_HalfOrc 266 2 -1 0
|
||||
54 FE_Human 267 2 -1 0
|
||||
55 FE_Aberration 268 2 -1 0
|
||||
56 FE_Animal 269 2 -1 0
|
||||
57 FE_Beast 270 2 -1 0
|
||||
58 FE_Construct 271 2 -1 0
|
||||
59 FE_Dragon 272 2 -1 0
|
||||
60 FE_Goblinoid 273 2 -1 0
|
||||
61 FE_Monstrous 274 2 -1 0
|
||||
62 FE_Orc 275 2 -1 0
|
||||
63 FE_Reptilian 276 2 -1 0
|
||||
64 FE_Elemental 277 2 -1 0
|
||||
65 FE_Fey 278 2 -1 0
|
||||
66 FE_Giant 279 2 -1 0
|
||||
67 FE_Magical_Beast 280 2 -1 0
|
||||
68 FE_Outsider_Evil 281 2 -1 0
|
||||
69 FE_Shapechanger 284 2 -1 0
|
||||
70 FE_Undead 285 2 -1 0
|
||||
71 FE_Vermin 286 2 -1 0
|
||||
|
@@ -3470,8 +3470,8 @@
|
||||
3466 FEAT_AP_CONTAGION3 777 16825553 is_Contagion **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2087 3467 1 3 **** **** **** **** **** **** **** **** **** **** **** FEAT_AP_CONTAGION3 3 **** **** **** **** **** 0 1
|
||||
3467 FEAT_AP_CONTAGION4 777 16825553 is_Contagion **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2087 3468 1 4 **** **** **** **** **** **** **** **** **** **** **** FEAT_AP_CONTAGION4 3 **** **** **** **** **** 0 1
|
||||
3468 FEAT_AP_CONTAGION5 777 16825553 is_Contagion **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2087 **** 1 5 **** **** **** **** **** **** **** **** **** **** **** FEAT_AP_CONTAGION5 3 **** **** **** **** **** 0 1
|
||||
3469 **** 16825602 16825603 is_CharmPer **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 3470 1 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_CO_CORRUPTSOUL1 3 **** **** **** **** **** 0 1
|
||||
3470 **** 16825602 16825603 is_CharmPer **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 3471 1 2 **** **** **** **** **** **** **** **** **** **** **** FEAT_CO_CORRUPTSOUL2 3 **** **** **** **** **** 0 1
|
||||
3469 FEAT_HATED_ENEMY_OOZE 16790073 16824269 ife_racehate **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 0.5 **** 55 **** **** 2354 **** **** **** **** **** **** **** FEAT_HATED_ENEMY_OOZE 6 **** **** **** **** **** 0 1
|
||||
3470 FEAT_HATED_ENEMY_PLANT 16790074 16824269 ife_racehate **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 0.5 **** 55 **** **** 2355 **** **** **** **** **** **** **** FEAT_HATED_ENEMY_PLANT 6 **** **** **** **** **** 0 1
|
||||
3471 **** 16825602 16825603 is_CharmPer **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 3472 1 3 **** **** **** **** **** **** **** **** **** **** **** FEAT_CO_CORRUPTSOUL3 3 **** **** **** **** **** 0 1
|
||||
3472 **** 16825602 16825603 is_CharmPer **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** 3473 1 4 **** **** **** **** **** **** **** **** **** **** **** FEAT_CO_CORRUPTSOUL4 3 **** **** **** **** **** 0 1
|
||||
3473 **** 16825602 16825603 is_CharmPer **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** **** **** 1 5 **** **** **** **** **** **** **** **** **** **** **** FEAT_CO_CORRUPTSOUL5 3 **** **** **** **** **** 0 1
|
||||
@@ -7951,7 +7951,7 @@
|
||||
7947 WP_Maul 16834189 16834258 ife_wepprof_mau **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** 45 1 **** 86 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_PROFICIENCY_MAUL 1 **** **** **** **** **** 0 1
|
||||
7948 WP_Double_Scimitar 16834198 16834259 ife_wepprof_dsc **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** 44 1 **** 87 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_PROFICIENCY_DOUBLE_SCIMITAR 1 **** **** **** **** **** 0 1
|
||||
7949 WP_Goad 16834207 16834257 ife_wepprof_goa **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** 46 1 **** 85 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_PROFICIENCY_GOAD 1 **** **** **** **** **** 0 1
|
||||
7950 WP_EagleClaw 16793721 16834259 ife_wepprof_ssw **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** 45 1 **** 86 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_PROFICIENCY_SHORTSWORD 1 **** **** **** **** **** 0 1
|
||||
7950 WP_EagleClaw 16793721 16834259 ife_wepprof_ssw **** **** **** **** **** **** **** **** **** **** 0 0 1 **** **** **** 44 1 **** 87 **** **** **** **** **** **** **** **** **** **** FEAT_WEAPON_PROFICIENCY_EAGLE_CLAW 1 **** **** **** **** **** 0 1
|
||||
7951 ReservedForISCAndESS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
7952 ReservedForISCAndESS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
7953 ReservedForISCAndESS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
|
54
trunk/2das/iprp_bonuscost.2da
Normal file
54
trunk/2das/iprp_bonuscost.2da
Normal file
@@ -0,0 +1,54 @@
|
||||
2DA V2.0
|
||||
|
||||
Name Label Cost Value
|
||||
0 **** Random 0 0
|
||||
1 1045 1 1 1
|
||||
2 1046 2 2 2
|
||||
3 1047 3 3 3
|
||||
4 1048 4 4 4
|
||||
5 1049 5 5 5
|
||||
6 1050 6 6 6
|
||||
7 1051 7 7 7
|
||||
8 1052 8 8 8
|
||||
9 1053 9 9 9
|
||||
10 1054 10 10 10
|
||||
11 1954 11 11 11
|
||||
12 1992 12 12 12
|
||||
13 2113 13 13 13
|
||||
14 2119 14 14 14
|
||||
15 2139 15 15 15
|
||||
16 2163 16 16 16
|
||||
17 2164 17 17 17
|
||||
18 2187 18 18 18
|
||||
19 2191 19 19 19
|
||||
20 2192 20 20 20
|
||||
21 2332 21 21 21
|
||||
22 2333 22 22 22
|
||||
23 2334 23 23 23
|
||||
24 2335 24 24 24
|
||||
25 2336 25 25 25
|
||||
26 2337 26 26 26
|
||||
27 2338 27 27 27
|
||||
28 2339 28 28 28
|
||||
29 2340 29 29 29
|
||||
30 2341 30 30 30
|
||||
31 2342 31 31 31
|
||||
32 2343 32 32 32
|
||||
33 2344 33 33 33
|
||||
34 2345 34 34 34
|
||||
35 2346 35 35 35
|
||||
36 2347 36 36 36
|
||||
37 2348 37 37 37
|
||||
38 2349 38 38 38
|
||||
39 2350 39 39 39
|
||||
40 2351 40 40 40
|
||||
41 2352 41 41 41
|
||||
42 2353 42 42 42
|
||||
43 2354 43 43 43
|
||||
44 2355 44 44 44
|
||||
45 2356 45 45 45
|
||||
46 2357 46 46 46
|
||||
47 2358 47 47 47
|
||||
48 2359 48 48 48
|
||||
49 2360 49 49 49
|
||||
50 2361 50 50 50
|
41
trunk/DevNotes/Files Changed for .35.txt
Normal file
41
trunk/DevNotes/Files Changed for .35.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
Functions changed for .35:
|
||||
|
||||
inv_inc_invfunc.nss - GetHighestInvokerLevel(), GetFirstInvocationClassPosition(), GetPrimaryInvocationClass()
|
||||
|
||||
inc_epicspellfnc.nss - GetCanLearnSeed()
|
||||
|
||||
inc_newspellbook.nss - CheckNewSpellbooks(), GetSpellslotLevel()
|
||||
|
||||
moi_inc_moifunc.nss - GetHighestMeldshaperLevel(), GetPrimaryIncarnumClass(), GetFirstIncarnumClassPosition()
|
||||
|
||||
nw_o2_coninclude.nss - nDetermineClassToUse()
|
||||
|
||||
prc_inc_castlvl.nss - GetArcanePRCLevels(), GetDivinePRCLevels(), GetFirstArcaneClassPosition(), GetFirstDivineClassPosition(), GetPrimaryArcaneClass(), GetPrimaryDivineClass(), GetPrimarySpellcastingClass(), UrPriestCL(), GetLevelByTypeArcane(), GetLevelByTypeDivine(), [Needs marker feats]
|
||||
|
||||
prc_inc_clsfunc.nss - [Needs marker feats]
|
||||
|
||||
prc_inc_core.nss - PRCGetSpellLevel(), UseNewSpellBook(), PRCGetHasSpell(), PRCGetIsRealSpellKnown()
|
||||
|
||||
prc_inc_domain.nss - CastDomainSpell()
|
||||
|
||||
prc_inc_function.nss - SetupCharacterData(), [Needs marker feats]
|
||||
|
||||
prc_inc_itmrstr.nss - _prc_inc_itmrstr_ApplyWizardry()
|
||||
|
||||
prc_inc_leadersh.nss - StoreCohort()
|
||||
|
||||
prc_inc_spells.nss - GetPrCAdjustedCasterLevelByType(), GetLevelByTypeArcaneFeats(), GetLevelByTypeDivineFeats(), PRCDecrementRemainingSpellUses(), PRCGetSpellUsesLeft()
|
||||
|
||||
prc_shifter_info.nss - _prc_inc_PrintDebugItem(), _prc_inc_PrintShape()
|
||||
|
||||
psi_inc_core.nss - GetHighestManifesterLevel(), GetPrimaryPsionicClass(), GetFirstPsionicClassPosition()
|
||||
|
||||
shd_inc_shdfunc.nss - GetHighestShadowcasterLevel(), GetPrimaryShadowMagicClass(), GetFirstShadowMagicClassPosition()
|
||||
|
||||
tob_inc_recovery.nss - RecoverPrCAbilities()
|
||||
|
||||
tob_inc_tobfunc.nss - GetHighestInitiatorLevel(), GetPrimaryBladeMagicClass(), GetFirstBladeMagicClassPosition()
|
||||
|
||||
true_inc_trufunc.nss - GetHighestTrueSpeakerLevel()
|
||||
|
||||
|
25
trunk/DevNotes/updating weapons.txt
Normal file
25
trunk/DevNotes/updating weapons.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
Scripts that need to be updated whenever we get a new weapon type:
|
||||
|
||||
prc_misc_const.nss - New weapon constants go here
|
||||
prc_dispater.nss - Metal / Iron weapons
|
||||
inc_item_props.nss - Missing Light lance
|
||||
inc_rand_equip.nss - Missing all new weapons
|
||||
prc_craft_inc.nss
|
||||
prc_inc_clsfunc.nss - Missing Light Lance & new weapons. Needs update for .35
|
||||
prc_inc_combat.nss - Missing Light lance, elf blades & new weapons.
|
||||
prc_inc_fork.nss - Missing Light Lance & new weapons.
|
||||
prc_inc_wpnrest.nss - Missing Light Lance for some functions
|
||||
prc_x2_itemprop.nss - Missing Light lance.
|
||||
psi_callweapon.nss - May need to make a new default version for each new weapon, needs testing.
|
||||
prc_ad_falskeen.nss - Missing Light lance, elf blades & new weapons.
|
||||
prc_battletempus.nss - Martial melee weapons. Missing new Martial weapons.
|
||||
prc_intuiatk.nss - Simple melee weapons. Missing new Simple weapons.
|
||||
prc_swashweak.nss - All melee weapons. Missing Light lance, elf blades & new weapons.
|
||||
prc_ipfeat_const.nss - Weapon Feat constants go here.
|
||||
|
||||
|
||||
|
||||
2DAs that need updating for new weapon types:
|
||||
|
||||
baseitems.2da - Obviously.
|
||||
prc_weap_items.2da
|
@@ -1,6 +1,6 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "epicspellobjs" "epicspellscripts\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "epicspellobjs" "epicspellscripts\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_epicspells.hak .\epicspellscripts .\epicspellobjs
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,5 +1,5 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "newspellbookobjs" "newspellbook\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "newspellbookobjs" "newspellbook\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_newspellbook.hak .\newspellbook .\newspellbookobjs
|
||||
:end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "ocfixerfobjs" "ocfixerf\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "ocfixerfobjs" "ocfixerf\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_ocfix.erf .\ocfixerf .\ocfixerfobjs
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "psionicsobjs" "psionics\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "psionicsobjs" "psionics\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_psionics.hak .\psionics .\psionicsobjs
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,5 +1,5 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "raceobjs" "racescripts\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "raceobjs" "racescripts\*.nss"
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "objs" "scripts\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "objs" "scripts\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_scripts.hak .\scripts .\objs
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
@echo on
|
||||
|
||||
tools\nwnsc -w -i "include" -n "C:\Program Files (x86)\Steam\steamapps\common\Neverwinter Nights" -b "spellobjs" "spells\*.nss"
|
||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "spellobjs" "spells\*.nss"
|
||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc_spells.hak .\spells .\spellobjs
|
||||
pause
|
||||
:end
|
||||
|
@@ -1,4 +1,6 @@
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
int GetFeatForSeed(int nSeedID);
|
||||
int GetIPForSeed(int nSeedID);
|
||||
int GetDCForSeed(int nSeedID);
|
||||
@@ -25,6 +27,8 @@ int GetSpellFromAbrev(string sAbrev);
|
||||
/* Includes */
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#include "inc_utility"
|
||||
//#include "inc_epicspelldef"
|
||||
|
||||
@@ -132,7 +136,7 @@ int GetCanLearnSeed(object oPC, int nSeedID)
|
||||
{
|
||||
int nRestr = GetClassForSeed(nSeedID);
|
||||
int i, nClass;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oPC);
|
||||
if(_CheckEpicSpellcastingForClass(oPC, nClass)//this class has epic spellcasting
|
||||
|
@@ -373,12 +373,12 @@ void SetCompositeBonus(object oItem, string sBonus, int iVal, int iType, int iSu
|
||||
iCurVal = TotalAndRemoveProperty(oItem, iType, iSubType);
|
||||
iCurVal -= GetPersistantLocalInt(GetItemPossessor(oItem), "LetoAbility_"+IntToString(iSubType));
|
||||
if (DEBUG) DoDebug("Ability Decrease #1: oItem "+GetName(oItem)+" sBonus "+sBonus+" iChange "+IntToString(iChange)+" iCurVal "+IntToString(iCurVal)+" iSubType "+IntToString(iSubType));
|
||||
/*if ((iCurVal + iChange) > 12)
|
||||
if ((iCurVal + iChange) > 50)
|
||||
{
|
||||
iVal -= iCurVal + iChange - 12;
|
||||
iCurVal = 12;
|
||||
iVal -= iCurVal + iChange - 50;
|
||||
iCurVal = 50;
|
||||
iChange = 0;
|
||||
}*/
|
||||
}
|
||||
if(iCurVal+iChange > 0)
|
||||
{
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyAbilityBonus(iSubType, iCurVal + iChange), oItem);
|
||||
@@ -764,10 +764,10 @@ void SetCompositeBonusT(object oItem, string sBonus, int iVal, int iType, int iS
|
||||
{
|
||||
case ITEM_PROPERTY_ABILITY_BONUS:
|
||||
iCurVal = TotalAndRemovePropertyT(oItem, iType, iSubType);
|
||||
if ((iCurVal + iChange) > 12)
|
||||
if ((iCurVal + iChange) > 50)
|
||||
{
|
||||
iVal -= iCurVal + iChange - 12;
|
||||
iCurVal = 12;
|
||||
iVal -= iCurVal + iChange - 50;
|
||||
iCurVal = 50;
|
||||
iChange = 0;
|
||||
}
|
||||
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyAbilityBonus(iSubType, iCurVal + iChange), oItem,9999.0);
|
||||
|
@@ -349,7 +349,7 @@ int GetSpellslotLevel(int nClass, object oPC)
|
||||
int nArcSpellslotLevel;
|
||||
int nDivSpellslotLevel;
|
||||
int i;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
int nTempClass = GetClassByPosition(i, oPC);
|
||||
//spellcasting prc
|
||||
@@ -832,7 +832,7 @@ void CheckNewSpellbooks(object oPC)
|
||||
{
|
||||
WipeSpellbookHideFeats(oPC);
|
||||
int i;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
int nClass = GetClassByPosition(i, oPC);
|
||||
int nLevel = GetLevelByClass(nClass, oPC);
|
||||
|
@@ -1,6 +1,6 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Invocation include: Miscellaneous
|
||||
//:: tob_inc_tobfunc
|
||||
//:: inv_inc_invfunc
|
||||
//::///////////////////////////////////////////////
|
||||
/** @file
|
||||
Defines various functions and other stuff that
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
@author Fox
|
||||
@date Created - 2008.1.25
|
||||
|
||||
Updated for .35 by Jaysyn 2023/03/10
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
@@ -230,14 +232,37 @@ int GetIsInvocationUser(object oCreature)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
int GetHighestInvokerLevel(object oCreature)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oCreature) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetInvokerLevel(oCreature, GetClassByPosition(n, oCreature));
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestInvokerLevel(object oCreature)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oCreature) != CLASS_TYPE_INVALID ? GetInvokerLevel(oCreature, GetClassByPosition(1, oCreature)) : 0,
|
||||
GetClassByPosition(2, oCreature) != CLASS_TYPE_INVALID ? GetInvokerLevel(oCreature, GetClassByPosition(2, oCreature)) : 0
|
||||
),
|
||||
GetClassByPosition(3, oCreature) != CLASS_TYPE_INVALID ? GetInvokerLevel(oCreature, GetClassByPosition(3, oCreature)) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetIsInvocationClass(int nClass)
|
||||
{
|
||||
@@ -278,7 +303,7 @@ int GetPrimaryInvocationClass(object oCreature = OBJECT_SELF)
|
||||
{
|
||||
int nClass;
|
||||
|
||||
if(GetPRCSwitch(PRC_CASTERLEVEL_FIRST_CLASS_RULE))
|
||||
if(GetPRCSwitch(PRC_CASTERLEVEL_FIRST_CLASS_RULE)) //: Kinda pointless for .35
|
||||
{
|
||||
int nInvocationPos = GetFirstInvocationClassPosition(oCreature);
|
||||
if (!nInvocationPos) return CLASS_TYPE_INVALID; // no invoking class
|
||||
@@ -288,18 +313,30 @@ int GetPrimaryInvocationClass(object oCreature = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oCreature);
|
||||
nClass2 = GetClassByPosition(2, oCreature);
|
||||
nClass3 = GetClassByPosition(3, oCreature);
|
||||
nClass4 = GetClassByPosition(4, oCreature);
|
||||
nClass5 = GetClassByPosition(5, oCreature);
|
||||
nClass6 = GetClassByPosition(6, oCreature);
|
||||
nClass7 = GetClassByPosition(7, oCreature);
|
||||
nClass8 = GetClassByPosition(8, oCreature);
|
||||
|
||||
if(GetIsInvocationClass(nClass1)) nClass1Lvl = GetLevelByClass(nClass1, oCreature);
|
||||
if(GetIsInvocationClass(nClass2)) nClass2Lvl = GetLevelByClass(nClass2, oCreature);
|
||||
if(GetIsInvocationClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oCreature);
|
||||
if(GetIsInvocationClass(nClass4)) nClass4Lvl = GetLevelByClass(nClass4, oCreature);
|
||||
if(GetIsInvocationClass(nClass5)) nClass5Lvl = GetLevelByClass(nClass5, oCreature);
|
||||
if(GetIsInvocationClass(nClass6)) nClass6Lvl = GetLevelByClass(nClass6, oCreature);
|
||||
if(GetIsInvocationClass(nClass7)) nClass7Lvl = GetLevelByClass(nClass7, oCreature);
|
||||
if(GetIsInvocationClass(nClass8)) nClass8Lvl = GetLevelByClass(nClass8, oCreature);
|
||||
|
||||
nClass = nClass1;
|
||||
nClassLvl = nClass1Lvl;
|
||||
|
||||
if(nClass2Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass2;
|
||||
@@ -310,6 +347,32 @@ int GetPrimaryInvocationClass(object oCreature = OBJECT_SELF)
|
||||
nClass = nClass3;
|
||||
nClassLvl = nClass3Lvl;
|
||||
}
|
||||
if(nClass4Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass4;
|
||||
nClassLvl = nClass4Lvl;
|
||||
}
|
||||
if(nClass5Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass5;
|
||||
nClassLvl = nClass5Lvl;
|
||||
}
|
||||
if(nClass6Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass6;
|
||||
nClassLvl = nClass6Lvl;
|
||||
}
|
||||
if(nClass7Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass7;
|
||||
nClassLvl = nClass7Lvl;
|
||||
}
|
||||
if(nClass8Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass8;
|
||||
nClassLvl = nClass8Lvl;
|
||||
}
|
||||
|
||||
if(nClassLvl == 0)
|
||||
nClass = CLASS_TYPE_INVALID;
|
||||
}
|
||||
@@ -325,7 +388,17 @@ int GetFirstInvocationClassPosition(object oCreature = OBJECT_SELF)
|
||||
return 2;
|
||||
if (GetIsInvocationClass(GetClassByPosition(3, oCreature)))
|
||||
return 3;
|
||||
|
||||
if (GetIsInvocationClass(GetClassByPosition(4, oCreature)))
|
||||
return 4;
|
||||
if (GetIsInvocationClass(GetClassByPosition(5, oCreature)))
|
||||
return 5;
|
||||
if (GetIsInvocationClass(GetClassByPosition(6, oCreature)))
|
||||
return 6;
|
||||
if (GetIsInvocationClass(GetClassByPosition(7, oCreature)))
|
||||
return 7;
|
||||
if (GetIsInvocationClass(GetClassByPosition(8, oCreature)))
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -12,10 +12,15 @@
|
||||
|
||||
@author Stratovarius
|
||||
@date Created - 2019.12.28
|
||||
|
||||
Updated for .35 by Jaysyn 2023/03/10
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Test Void
|
||||
//void main () {}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function prototypes */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -203,13 +208,35 @@ int GetIncarnumLevelForClass(int nSpecificClass, object oMeldshaper)
|
||||
}
|
||||
|
||||
int GetHighestMeldshaperLevel(object oMeldshaper)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oMeldshaper) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetMeldshaperLevel(oMeldshaper, GetClassByPosition(n, oMeldshaper), -1);
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestMeldshaperLevel(object oMeldshaper)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oMeldshaper) != CLASS_TYPE_INVALID ? GetMeldshaperLevel(oMeldshaper, GetClassByPosition(1, oMeldshaper), -1) : 0,
|
||||
GetClassByPosition(2, oMeldshaper) != CLASS_TYPE_INVALID ? GetMeldshaperLevel(oMeldshaper, GetClassByPosition(2, oMeldshaper), -1) : 0
|
||||
),
|
||||
GetClassByPosition(3, oMeldshaper) != CLASS_TYPE_INVALID ? GetMeldshaperLevel(oMeldshaper, GetClassByPosition(3, oMeldshaper), -1) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetIsIncarnumClass(int nClass)
|
||||
{
|
||||
@@ -260,18 +287,30 @@ int GetPrimaryIncarnumClass(object oMeldshaper = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oMeldshaper);
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oMeldshaper);
|
||||
nClass2 = GetClassByPosition(2, oMeldshaper);
|
||||
nClass3 = GetClassByPosition(3, oMeldshaper);
|
||||
nClass4 = GetClassByPosition(4, oMeldshaper);
|
||||
nClass5 = GetClassByPosition(5, oMeldshaper);
|
||||
nClass6 = GetClassByPosition(6, oMeldshaper);
|
||||
nClass7 = GetClassByPosition(7, oMeldshaper);
|
||||
nClass8 = GetClassByPosition(8, oMeldshaper);
|
||||
|
||||
if(GetIsIncarnumClass(nClass1)) nClass1Lvl = GetLevelByClass(nClass1, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass2)) nClass2Lvl = GetLevelByClass(nClass2, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass4)) nClass4Lvl = GetLevelByClass(nClass4, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass5)) nClass5Lvl = GetLevelByClass(nClass5, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass6)) nClass6Lvl = GetLevelByClass(nClass6, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass7)) nClass7Lvl = GetLevelByClass(nClass7, oMeldshaper);
|
||||
if(GetIsIncarnumClass(nClass8)) nClass8Lvl = GetLevelByClass(nClass8, oMeldshaper);
|
||||
|
||||
nClass = nClass1;
|
||||
nClassLvl = nClass1Lvl;
|
||||
|
||||
if(nClass2Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass2;
|
||||
@@ -282,6 +321,32 @@ int GetPrimaryIncarnumClass(object oMeldshaper = OBJECT_SELF)
|
||||
nClass = nClass3;
|
||||
nClassLvl = nClass3Lvl;
|
||||
}
|
||||
if(nClass4Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass4;
|
||||
nClassLvl = nClass4Lvl;
|
||||
}
|
||||
if(nClass5Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass5;
|
||||
nClassLvl = nClass5Lvl;
|
||||
}
|
||||
if(nClass6Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass6;
|
||||
nClassLvl = nClass6Lvl;
|
||||
}
|
||||
if(nClass7Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass7;
|
||||
nClassLvl = nClass7Lvl;
|
||||
}
|
||||
if(nClass8Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass8;
|
||||
nClassLvl = nClass8Lvl;
|
||||
}
|
||||
|
||||
if(nClassLvl == 0)
|
||||
nClass = CLASS_TYPE_INVALID;
|
||||
}
|
||||
@@ -297,6 +362,16 @@ int GetFirstIncarnumClassPosition(object oMeldshaper = OBJECT_SELF)
|
||||
return 2;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(3, oMeldshaper)))
|
||||
return 3;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(4, oMeldshaper)))
|
||||
return 4;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(5, oMeldshaper)))
|
||||
return 5;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(6, oMeldshaper)))
|
||||
return 6;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(7, oMeldshaper)))
|
||||
return 7;
|
||||
if (GetIsIncarnumClass(GetClassByPosition(8, oMeldshaper)))
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@@ -11,6 +11,8 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Brent, Andrew
|
||||
//:: Created On: November - May
|
||||
//::
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
//:://////////////////////////////////////////////
|
||||
// :: MODS
|
||||
// April 23 2002: Removed animal parts. They were silly.
|
||||
@@ -4703,23 +4705,59 @@ int nDetermineClassToUse(object oCharacter)
|
||||
int nClass1 = GetClassByPosition(1, oCharacter);
|
||||
int nClass2 = GetClassByPosition(2, oCharacter);
|
||||
int nClass3 = GetClassByPosition(3, oCharacter);
|
||||
|
||||
int nClass4 = GetClassByPosition(4, oCharacter);
|
||||
int nClass5 = GetClassByPosition(5, oCharacter);
|
||||
int nClass6 = GetClassByPosition(6, oCharacter);
|
||||
int nClass7 = GetClassByPosition(7, oCharacter);
|
||||
int nClass8 = GetClassByPosition(8, oCharacter);
|
||||
|
||||
int nState1 = GetLevelByClass(nClass1, oCharacter) * 100 / nTotal;
|
||||
int nState2 = GetLevelByClass(nClass2, oCharacter) * 100 / nTotal + nState1;
|
||||
// nState3 will always be 100 if there is a third class, or 0 if there isn't
|
||||
//int nState3 = GetLevelByClass(nClass3, oCharacter) * 100 / nTotal + nState2;
|
||||
int nState3 = GetLevelByClass(nClass3, oCharacter) * 100 / nTotal + nState2;
|
||||
int nState4 = GetLevelByClass(nClass4, oCharacter) * 100 / nTotal + nState3;
|
||||
int nState5 = GetLevelByClass(nClass5, oCharacter) * 100 / nTotal + nState4;
|
||||
int nState6 = GetLevelByClass(nClass6, oCharacter) * 100 / nTotal + nState5;
|
||||
int nState7 = GetLevelByClass(nClass7, oCharacter) * 100 / nTotal + nState6;
|
||||
|
||||
// nState8 will always be 100 if there is an eigth class, or 0 if there isn't
|
||||
//int nState8 = GetLevelByClass(nClass3, oCharacter) * 100 / nTotal + nState7;
|
||||
|
||||
// correct for unrecognized classes - assumes the first class will be a non-prestige player class
|
||||
if(nClass2 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass2))
|
||||
{
|
||||
nClass2 = CLASS_TYPE_INVALID;
|
||||
nState1 = nState2;
|
||||
}
|
||||
}
|
||||
if(nClass3 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass3))
|
||||
{
|
||||
nClass3 = CLASS_TYPE_INVALID;
|
||||
if(nClass2 != CLASS_TYPE_INVALID)
|
||||
nState2 = 100;
|
||||
nState1 = nState3;
|
||||
}
|
||||
if(nClass4 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass4))
|
||||
{
|
||||
nClass4 = CLASS_TYPE_INVALID;
|
||||
nState1 = nState4;
|
||||
}
|
||||
if(nClass5 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass5))
|
||||
{
|
||||
nClass5 = CLASS_TYPE_INVALID;
|
||||
nState1 = nState5;
|
||||
}
|
||||
if(nClass6 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass6))
|
||||
{
|
||||
nClass6 = CLASS_TYPE_INVALID;
|
||||
nState1 = nState6;
|
||||
}
|
||||
if(nClass7 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass7))
|
||||
{
|
||||
nClass7 = CLASS_TYPE_INVALID;
|
||||
nState1 = nState7;
|
||||
}
|
||||
if(nClass8 != CLASS_TYPE_INVALID && !nGetIsBaseClass(nClass8))
|
||||
{
|
||||
nClass8 = CLASS_TYPE_INVALID;
|
||||
if(nClass7 != CLASS_TYPE_INVALID)
|
||||
nState7 = 100;
|
||||
else nState1 = 100;
|
||||
}
|
||||
|
||||
@@ -4748,4 +4786,6 @@ int nDetermineClassToUse(object oCharacter)
|
||||
return nClass;
|
||||
}
|
||||
|
||||
//:: Test Void
|
||||
//void main () {}
|
||||
|
||||
|
@@ -1710,6 +1710,8 @@ const int FEAT_HATED_ENEMY_OUTSIDER = 4346;
|
||||
const int FEAT_HATED_ENEMY_SHAPECHANGER = 4347;
|
||||
const int FEAT_HATED_ENEMY_UNDEAD = 4348;
|
||||
const int FEAT_HATED_ENEMY_VERMIN = 4349;
|
||||
const int FEAT_HATED_ENEMY_OOZE = 3469;
|
||||
const int FEAT_HATED_ENEMY_PLANT = 3470;
|
||||
|
||||
// Thrall of Graz'zt
|
||||
const int FEAT_TOG_SUMMON_DEMON = 2889;
|
||||
|
@@ -8,6 +8,8 @@
|
||||
* functions. If this ends up like prc_inc_spells, you get slapped.
|
||||
*/
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function prototypes */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -785,12 +787,18 @@ int GetIsDivineClass(int nClass, object oCaster = OBJECT_SELF)
|
||||
|
||||
int GetArcanePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID)
|
||||
{
|
||||
int nArcane;
|
||||
int nOozeMLevel = GetLevelByClass(CLASS_TYPE_OOZEMASTER, oCaster);
|
||||
int nUM = GetLevelByClass(CLASS_TYPE_ULTIMATE_MAGUS, oCaster);
|
||||
int nFirstClass = GetClassByPosition(1, oCaster);
|
||||
int nSecondClass = GetClassByPosition(2, oCaster);
|
||||
int nThirdClass = GetClassByPosition(3, oCaster);
|
||||
int nArcane;
|
||||
int nOozeMLevel = GetLevelByClass(CLASS_TYPE_OOZEMASTER, oCaster);
|
||||
int nUM = GetLevelByClass(CLASS_TYPE_ULTIMATE_MAGUS, oCaster);
|
||||
|
||||
int nFirstClass = GetClassByPosition(1, oCaster);
|
||||
int nSecondClass = GetClassByPosition(2, oCaster);
|
||||
int nThirdClass = GetClassByPosition(3, oCaster);
|
||||
int nFourthClass = GetClassByPosition(4, oCaster);
|
||||
int nFifthClass = GetClassByPosition(5, oCaster);
|
||||
int nSixthClass = GetClassByPosition(6, oCaster);
|
||||
int nSeventhClass = GetClassByPosition(7, oCaster);
|
||||
int nEightClass = GetClassByPosition(8, oCaster);
|
||||
|
||||
if (GetFirstArcaneClassPosition(oCaster)) nArcane += GetLevelByClass(CLASS_TYPE_SOULCASTER, oCaster);
|
||||
|
||||
@@ -834,7 +842,7 @@ int GetArcanePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID)
|
||||
+ (GetLevelByClass(CLASS_TYPE_TALON_OF_TIAMAT, oCaster) + 1) / 2
|
||||
+ (GetLevelByClass(CLASS_TYPE_RAGE_MAGE, oCaster) + 1) / 2
|
||||
+ (GetLevelByClass(CLASS_TYPE_WAYFARER_GUIDE, oCaster) + 1) / 2
|
||||
+ (GetLevelByClass(CLASS_TYPE_JUDICATOR, oCaster) + 1) / 3;
|
||||
+ (GetLevelByClass(CLASS_TYPE_JUDICATOR, oCaster) + 1) / 3;
|
||||
|
||||
int nClass = GetLevelByClass(CLASS_TYPE_WILD_MAGE, oCaster);
|
||||
if (nClass)
|
||||
@@ -857,7 +865,7 @@ int GetArcanePRCLevels(object oCaster, int nCastingClass = CLASS_TYPE_INVALID)
|
||||
* first class slot is NOT divine AND second class slot is arcane OR
|
||||
* first AND second class slot is NOT divine AND 3rd class slot is arcane
|
||||
*/
|
||||
if (nOozeMLevel)
|
||||
if (nOozeMLevel) //:: [PRC .35] This needs marker feats.
|
||||
{
|
||||
if (GetIsArcaneClass(nFirstClass, oCaster)
|
||||
|| (!GetIsDivineClass(nFirstClass, oCaster)
|
||||
@@ -922,9 +930,15 @@ int GetDivinePRCLevels(object oCaster)
|
||||
{
|
||||
int nDivine;
|
||||
int nOozeMLevel = GetLevelByClass(CLASS_TYPE_OOZEMASTER, oCaster);
|
||||
int nFirstClass = GetClassByPosition(1, oCaster);
|
||||
int nSecondClass = GetClassByPosition(2, oCaster);
|
||||
int nThirdClass = GetClassByPosition(3, oCaster);
|
||||
|
||||
int nFirstClass = GetClassByPosition(1, oCaster);
|
||||
int nSecondClass = GetClassByPosition(2, oCaster);
|
||||
int nThirdClass = GetClassByPosition(3, oCaster);
|
||||
int nFourthClass = GetClassByPosition(4, oCaster);
|
||||
int nFifthClass = GetClassByPosition(5, oCaster);
|
||||
int nSixthClass = GetClassByPosition(6, oCaster);
|
||||
int nSeventhClass = GetClassByPosition(7, oCaster);
|
||||
int nEightClass = GetClassByPosition(8, oCaster);
|
||||
|
||||
// This section accounts for full progression classes
|
||||
nDivine += GetLevelByClass(CLASS_TYPE_ARCANE_HIEROPHANT, oCaster)
|
||||
@@ -967,7 +981,7 @@ int GetDivinePRCLevels(object oCaster)
|
||||
nDivine += GetLevelByClass(CLASS_TYPE_SACREDFIST, oCaster);
|
||||
}
|
||||
|
||||
if (nOozeMLevel)
|
||||
if (nOozeMLevel) //:: [PRC .35] This needs marker feats.
|
||||
{
|
||||
if (GetIsDivineClass(nFirstClass, oCaster)
|
||||
|| (!GetIsArcaneClass(nFirstClass, oCaster)
|
||||
@@ -984,7 +998,7 @@ int GetDivinePRCLevels(object oCaster)
|
||||
int GetFirstArcaneClassPosition(object oCaster = OBJECT_SELF)
|
||||
{
|
||||
int i;
|
||||
for(i = 1; i < 4; i++)
|
||||
for(i = 1; i < 9; i++)
|
||||
{
|
||||
if(GetIsArcaneClass(GetClassByPosition(i, oCaster), oCaster))
|
||||
return i;
|
||||
@@ -996,7 +1010,7 @@ int GetFirstArcaneClassPosition(object oCaster = OBJECT_SELF)
|
||||
int GetFirstDivineClassPosition(object oCaster = OBJECT_SELF)
|
||||
{
|
||||
int i;
|
||||
for(i = 1; i < 4; i++)
|
||||
for(i = 1; i < 9; i++)
|
||||
{
|
||||
if(GetIsDivineClass(GetClassByPosition(i, oCaster), oCaster))
|
||||
return i;
|
||||
@@ -1019,7 +1033,7 @@ int GetPrimaryArcaneClass(object oCaster = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int i, nClassTmp, nClassLvl;
|
||||
for(i = 1; i < 4; i++)
|
||||
for(i = 1; i < 9; i++)
|
||||
{
|
||||
nClassTmp = GetClassByPosition(i, oCaster);
|
||||
if(GetIsArcaneClass(nClassTmp, oCaster) && nClassTmp != CLASS_TYPE_SUBLIME_CHORD)
|
||||
@@ -1063,7 +1077,7 @@ int GetPrimaryDivineClass(object oCaster = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int i, nClassTmp, nClassLvl;
|
||||
for(i = 1; i < 4; i++)
|
||||
for(i = 1; i < 9; i++)
|
||||
{
|
||||
nClassTmp = GetClassByPosition(i, oCaster);
|
||||
if(GetIsDivineClass(nClassTmp, oCaster))
|
||||
@@ -1088,7 +1102,7 @@ int GetPrimarySpellcastingClass(object oCaster = OBJECT_SELF)
|
||||
int nClass;
|
||||
|
||||
int i, nClassTmp, nClassLvl;
|
||||
for(i = 1; i < 4; i++)
|
||||
for(i = 1; i < 9; i++)
|
||||
{
|
||||
nClassTmp = GetClassByPosition(i, oCaster);
|
||||
if(GetIsArcaneClass(nClassTmp, oCaster)
|
||||
@@ -1121,40 +1135,40 @@ int PracticedSpellcasting(object oCaster, int iCastingClass, int iCastingLevels)
|
||||
|
||||
switch(iCastingClass)
|
||||
{
|
||||
case CLASS_TYPE_BARD: nFeat = FEAT_PRACTICED_SPELLCASTER_BARD; break;
|
||||
case CLASS_TYPE_SORCERER: nFeat = FEAT_PRACTICED_SPELLCASTER_SORCERER; break;
|
||||
case CLASS_TYPE_WIZARD: nFeat = FEAT_PRACTICED_SPELLCASTER_WIZARD; break;
|
||||
case CLASS_TYPE_CLERIC: nFeat = FEAT_PRACTICED_SPELLCASTER_CLERIC; break;
|
||||
case CLASS_TYPE_DRUID: nFeat = FEAT_PRACTICED_SPELLCASTER_DRUID; break;
|
||||
case CLASS_TYPE_PALADIN: nFeat = FEAT_PRACTICED_SPELLCASTER_PALADIN; break;
|
||||
case CLASS_TYPE_RANGER: nFeat = FEAT_PRACTICED_SPELLCASTER_RANGER; break;
|
||||
case CLASS_TYPE_ASSASSIN: nFeat = FEAT_PRACTICED_SPELLCASTER_ASSASSIN; break;
|
||||
case CLASS_TYPE_BLACKGUARD: nFeat = FEAT_PRACTICED_SPELLCASTER_BLACKGUARD; break;
|
||||
case CLASS_TYPE_OCULAR: nFeat = FEAT_PRACTICED_SPELLCASTER_OCULAR; break;
|
||||
case CLASS_TYPE_HEXBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_HEXBLADE; break;
|
||||
case CLASS_TYPE_DUSKBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_DUSKBLADE; break;
|
||||
case CLASS_TYPE_HEALER: nFeat = FEAT_PRACTICED_SPELLCASTER_HEALER; break;
|
||||
case CLASS_TYPE_KNIGHT_CHALICE: nFeat = FEAT_PRACTICED_SPELLCASTER_KNIGHT_CHALICE; break;
|
||||
case CLASS_TYPE_NENTYAR_HUNTER: nFeat = FEAT_PRACTICED_SPELLCASTER_NENTYAR; break;
|
||||
case CLASS_TYPE_VASSAL: nFeat = FEAT_PRACTICED_SPELLCASTER_VASSAL; break;
|
||||
case CLASS_TYPE_UR_PRIEST: nFeat = FEAT_PRACTICED_SPELLCASTER_UR_PRIEST; break;
|
||||
case CLASS_TYPE_SOLDIER_OF_LIGHT: nFeat = FEAT_PRACTICED_SPELLCASTER_SOLDIER_OF_LIGHT; break;
|
||||
case CLASS_TYPE_SHADOWLORD: nFeat = FEAT_PRACTICED_SPELLCASTER_SHADOWLORD; break;
|
||||
case CLASS_TYPE_JUSTICEWW: nFeat = FEAT_PRACTICED_SPELLCASTER_JUSTICEWW; break;
|
||||
case CLASS_TYPE_KNIGHT_MIDDLECIRCLE: nFeat = FEAT_PRACTICED_SPELLCASTER_KNIGHT_MIDDLECIRCLE; break;
|
||||
case CLASS_TYPE_SHAMAN: nFeat = FEAT_PRACTICED_SPELLCASTER_SHAMAN; break;
|
||||
case CLASS_TYPE_SLAYER_OF_DOMIEL: nFeat = FEAT_PRACTICED_SPELLCASTER_SLAYER_OF_DOMIEL; break;
|
||||
case CLASS_TYPE_SUEL_ARCHANAMACH: nFeat = FEAT_PRACTICED_SPELLCASTER_SUEL_ARCHANAMACH; break;
|
||||
case CLASS_TYPE_FAVOURED_SOUL: nFeat = FEAT_PRACTICED_SPELLCASTER_FAVOURED_SOUL; break;
|
||||
case CLASS_TYPE_SOHEI: nFeat = FEAT_PRACTICED_SPELLCASTER_SOHEI; break;
|
||||
case CLASS_TYPE_CELEBRANT_SHARESS: nFeat = FEAT_PRACTICED_SPELLCASTER_CELEBRANT_SHARESS; break;
|
||||
case CLASS_TYPE_WARMAGE: nFeat = FEAT_PRACTICED_SPELLCASTER_WARMAGE; break;
|
||||
case CLASS_TYPE_DREAD_NECROMANCER: nFeat = FEAT_PRACTICED_SPELLCASTER_DREAD_NECROMANCER; break;
|
||||
case CLASS_TYPE_CULTIST_SHATTERED_PEAK: nFeat = FEAT_PRACTICED_SPELLCASTER_CULTIST; break;
|
||||
case CLASS_TYPE_ARCHIVIST: nFeat = FEAT_PRACTICED_SPELLCASTER_ARCHIVIST; break;
|
||||
case CLASS_TYPE_BEGUILER: nFeat = FEAT_PRACTICED_SPELLCASTER_BEGUILER; break;
|
||||
case CLASS_TYPE_BLIGHTER: nFeat = FEAT_PRACTICED_SPELLCASTER_BLIGHTER; break;
|
||||
case CLASS_TYPE_HARPER: nFeat = FEAT_PRACTICED_SPELLCASTER_HARPER; break;
|
||||
case CLASS_TYPE_BARD: nFeat = FEAT_PRACTICED_SPELLCASTER_BARD; break;
|
||||
case CLASS_TYPE_SORCERER: nFeat = FEAT_PRACTICED_SPELLCASTER_SORCERER; break;
|
||||
case CLASS_TYPE_WIZARD: nFeat = FEAT_PRACTICED_SPELLCASTER_WIZARD; break;
|
||||
case CLASS_TYPE_CLERIC: nFeat = FEAT_PRACTICED_SPELLCASTER_CLERIC; break;
|
||||
case CLASS_TYPE_DRUID: nFeat = FEAT_PRACTICED_SPELLCASTER_DRUID; break;
|
||||
case CLASS_TYPE_PALADIN: nFeat = FEAT_PRACTICED_SPELLCASTER_PALADIN; break;
|
||||
case CLASS_TYPE_RANGER: nFeat = FEAT_PRACTICED_SPELLCASTER_RANGER; break;
|
||||
case CLASS_TYPE_ASSASSIN: nFeat = FEAT_PRACTICED_SPELLCASTER_ASSASSIN; break;
|
||||
case CLASS_TYPE_BLACKGUARD: nFeat = FEAT_PRACTICED_SPELLCASTER_BLACKGUARD; break;
|
||||
case CLASS_TYPE_OCULAR: nFeat = FEAT_PRACTICED_SPELLCASTER_OCULAR; break;
|
||||
case CLASS_TYPE_HEXBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_HEXBLADE; break;
|
||||
case CLASS_TYPE_DUSKBLADE: nFeat = FEAT_PRACTICED_SPELLCASTER_DUSKBLADE; break;
|
||||
case CLASS_TYPE_HEALER: nFeat = FEAT_PRACTICED_SPELLCASTER_HEALER; break;
|
||||
case CLASS_TYPE_KNIGHT_CHALICE: nFeat = FEAT_PRACTICED_SPELLCASTER_KNIGHT_CHALICE; break;
|
||||
case CLASS_TYPE_NENTYAR_HUNTER: nFeat = FEAT_PRACTICED_SPELLCASTER_NENTYAR; break;
|
||||
case CLASS_TYPE_VASSAL: nFeat = FEAT_PRACTICED_SPELLCASTER_VASSAL; break;
|
||||
case CLASS_TYPE_UR_PRIEST: nFeat = FEAT_PRACTICED_SPELLCASTER_UR_PRIEST; break;
|
||||
case CLASS_TYPE_SOLDIER_OF_LIGHT: nFeat = FEAT_PRACTICED_SPELLCASTER_SOLDIER_OF_LIGHT; break;
|
||||
case CLASS_TYPE_SHADOWLORD: nFeat = FEAT_PRACTICED_SPELLCASTER_SHADOWLORD; break;
|
||||
case CLASS_TYPE_JUSTICEWW: nFeat = FEAT_PRACTICED_SPELLCASTER_JUSTICEWW; break;
|
||||
case CLASS_TYPE_KNIGHT_MIDDLECIRCLE: nFeat = FEAT_PRACTICED_SPELLCASTER_KNIGHT_MIDDLECIRCLE; break;
|
||||
case CLASS_TYPE_SHAMAN: nFeat = FEAT_PRACTICED_SPELLCASTER_SHAMAN; break;
|
||||
case CLASS_TYPE_SLAYER_OF_DOMIEL: nFeat = FEAT_PRACTICED_SPELLCASTER_SLAYER_OF_DOMIEL; break;
|
||||
case CLASS_TYPE_SUEL_ARCHANAMACH: nFeat = FEAT_PRACTICED_SPELLCASTER_SUEL_ARCHANAMACH; break;
|
||||
case CLASS_TYPE_FAVOURED_SOUL: nFeat = FEAT_PRACTICED_SPELLCASTER_FAVOURED_SOUL; break;
|
||||
case CLASS_TYPE_SOHEI: nFeat = FEAT_PRACTICED_SPELLCASTER_SOHEI; break;
|
||||
case CLASS_TYPE_CELEBRANT_SHARESS: nFeat = FEAT_PRACTICED_SPELLCASTER_CELEBRANT_SHARESS; break;
|
||||
case CLASS_TYPE_WARMAGE: nFeat = FEAT_PRACTICED_SPELLCASTER_WARMAGE; break;
|
||||
case CLASS_TYPE_DREAD_NECROMANCER: nFeat = FEAT_PRACTICED_SPELLCASTER_DREAD_NECROMANCER; break;
|
||||
case CLASS_TYPE_CULTIST_SHATTERED_PEAK: nFeat = FEAT_PRACTICED_SPELLCASTER_CULTIST; break;
|
||||
case CLASS_TYPE_ARCHIVIST: nFeat = FEAT_PRACTICED_SPELLCASTER_ARCHIVIST; break;
|
||||
case CLASS_TYPE_BEGUILER: nFeat = FEAT_PRACTICED_SPELLCASTER_BEGUILER; break;
|
||||
case CLASS_TYPE_BLIGHTER: nFeat = FEAT_PRACTICED_SPELLCASTER_BLIGHTER; break;
|
||||
case CLASS_TYPE_HARPER: nFeat = FEAT_PRACTICED_SPELLCASTER_HARPER; break;
|
||||
default: return 0;
|
||||
}
|
||||
|
||||
@@ -1512,10 +1526,21 @@ int UrPriestCL(object oCaster, int nCastingClass)
|
||||
int iClass1 = GetClassByPosition(1, oCaster);
|
||||
int iClass2 = GetClassByPosition(2, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass4 = GetClassByPosition(4, oCaster);
|
||||
int iClass5 = GetClassByPosition(5, oCaster);
|
||||
int iClass6 = GetClassByPosition(6, oCaster);
|
||||
int iClass7 = GetClassByPosition(7, oCaster);
|
||||
int iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
int iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
int iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
int iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
|
||||
int iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
int iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
int iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
int iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
int iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
/*if (iClass1 == CLASS_TYPE_PALADIN || iClass1 == CLASS_TYPE_RANGER) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass2 == CLASS_TYPE_PALADIN || iClass2 == CLASS_TYPE_RANGER) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass3 == CLASS_TYPE_PALADIN || iClass3 == CLASS_TYPE_RANGER) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
@@ -1536,31 +1561,72 @@ int UrPriestCL(object oCaster, int nCastingClass)
|
||||
if (DEBUG) DoDebug("UrPriestCL Divine - iClass1Lev "+IntToString(iClass1Lev)+" iClass2Lev "+IntToString(iClass2Lev)+" iClass3Lev "+IntToString(iClass3Lev));*/
|
||||
|
||||
int iFirstArcane = GetPrimaryArcaneClass(oCaster);
|
||||
iClass1 = GetClassByPosition(1, oCaster);
|
||||
iClass2 = GetClassByPosition(2, oCaster);
|
||||
iClass3 = GetClassByPosition(3, oCaster);
|
||||
iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
iClass1 = GetClassByPosition(1, oCaster);
|
||||
iClass2 = GetClassByPosition(2, oCaster);
|
||||
iClass3 = GetClassByPosition(3, oCaster);
|
||||
iClass4 = GetClassByPosition(4, oCaster);
|
||||
iClass5 = GetClassByPosition(5, oCaster);
|
||||
iClass6 = GetClassByPosition(6, oCaster);
|
||||
iClass7 = GetClassByPosition(7, oCaster);
|
||||
iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
if (iClass1 == CLASS_TYPE_HEXBLADE) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass2 == CLASS_TYPE_HEXBLADE) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass3 == CLASS_TYPE_HEXBLADE) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
|
||||
if (iClass4 == CLASS_TYPE_HEXBLADE) iClass4Lev = (iClass4Lev >= 4) ? (iClass4Lev / 2) : 0;
|
||||
if (iClass5 == CLASS_TYPE_HEXBLADE) iClass5Lev = (iClass5Lev >= 4) ? (iClass5Lev / 2) : 0;
|
||||
if (iClass6 == CLASS_TYPE_HEXBLADE) iClass6Lev = (iClass6Lev >= 4) ? (iClass6Lev / 2) : 0;
|
||||
if (iClass7 == CLASS_TYPE_HEXBLADE) iClass7Lev = (iClass7Lev >= 4) ? (iClass7Lev / 2) : 0;
|
||||
if (iClass8 == CLASS_TYPE_HEXBLADE) iClass8Lev = (iClass8Lev >= 4) ? (iClass8Lev / 2) : 0;
|
||||
|
||||
if (iClass1 == iFirstArcane) iClass1Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstArcane) iClass2Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstArcane) iClass3Lev += GetArcanePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
if (iClass4 == iFirstArcane) iClass4Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass5 == iFirstArcane) iClass5Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass6 == iFirstArcane) iClass6Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass7 == iFirstArcane) iClass7Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass8 == iFirstArcane) iClass8Lev += GetArcanePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass4Lev);
|
||||
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass5Lev);
|
||||
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass5Lev);
|
||||
iClass7Lev += PracticedSpellcasting(oCaster, iClass7, iClass6Lev);
|
||||
iClass8Lev += PracticedSpellcasting(oCaster, iClass8, iClass7Lev);
|
||||
|
||||
if (!GetIsArcaneClass(iClass1, oCaster)) iClass1Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass2, oCaster)) iClass2Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass4, oCaster)) iClass4Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass5, oCaster)) iClass5Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass6, oCaster)) iClass6Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass7, oCaster)) iClass7Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass8, oCaster)) iClass8Lev = 0;
|
||||
|
||||
|
||||
nTotal += iClass1Lev + iClass2Lev + iClass3Lev;
|
||||
if (DEBUG) DoDebug("UrPriestCL Arcane - iClass1Lev "+IntToString(iClass1Lev)+" iClass2Lev "+IntToString(iClass2Lev)+" iClass3Lev "+IntToString(iClass3Lev));
|
||||
nTotal += iClass1Lev + iClass2Lev + iClass3Lev + iClass4Lev + iClass5Lev + iClass6Lev + iClass7Lev + iClass8Lev;
|
||||
|
||||
if (DEBUG) DoDebug("UrPriestCL Arcane - iClass1Lev "+IntToString(iClass1Lev)+" iClass2Lev "
|
||||
+IntToString(iClass2Lev)+" iClass3Lev "
|
||||
+IntToString(iClass3Lev)+" iClass4Lev "
|
||||
+IntToString(iClass4Lev)+" iClass5Lev "
|
||||
+IntToString(iClass5Lev)+" iClass6Lev "
|
||||
+IntToString(iClass6Lev)+" iClass7Lev "
|
||||
+IntToString(iClass7Lev)+" iClass8Lev "
|
||||
+IntToString(iClass8Lev));
|
||||
|
||||
if (DEBUG) DoDebug("UrPriestCL Total - nTotal "+IntToString(nTotal));
|
||||
return nTotal/2;
|
||||
}
|
||||
@@ -1619,30 +1685,66 @@ int GetLevelByTypeArcane(object oCaster = OBJECT_SELF)
|
||||
int iBest = 0;
|
||||
int iClass1 = GetClassByPosition(1, oCaster);
|
||||
int iClass2 = GetClassByPosition(2, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass4 = GetClassByPosition(4, oCaster);
|
||||
int iClass5 = GetClassByPosition(5, oCaster);
|
||||
int iClass6 = GetClassByPosition(6, oCaster);
|
||||
int iClass7 = GetClassByPosition(8, oCaster);
|
||||
int iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
int iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
int iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
int iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
|
||||
int iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
int iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
int iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
int iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
int iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
if (iClass1 == CLASS_TYPE_HEXBLADE) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass2 == CLASS_TYPE_HEXBLADE) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass3 == CLASS_TYPE_HEXBLADE) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
if (iClass4 == CLASS_TYPE_HEXBLADE) iClass4Lev = (iClass4Lev >= 4) ? (iClass4Lev / 2) : 0;
|
||||
if (iClass5 == CLASS_TYPE_HEXBLADE) iClass5Lev = (iClass5Lev >= 4) ? (iClass5Lev / 2) : 0;
|
||||
if (iClass6 == CLASS_TYPE_HEXBLADE) iClass6Lev = (iClass6Lev >= 4) ? (iClass6Lev / 2) : 0;
|
||||
if (iClass7 == CLASS_TYPE_HEXBLADE) iClass7Lev = (iClass7Lev >= 4) ? (iClass7Lev / 2) : 0;
|
||||
if (iClass8 == CLASS_TYPE_HEXBLADE) iClass8Lev = (iClass8Lev >= 4) ? (iClass8Lev / 2) : 0;
|
||||
|
||||
if (iClass1 == iFirstArcane) iClass1Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstArcane) iClass2Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstArcane) iClass3Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass4 == iFirstArcane) iClass4Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass5 == iFirstArcane) iClass5Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass6 == iFirstArcane) iClass6Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass7 == iFirstArcane) iClass7Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass8 == iFirstArcane) iClass8Lev += GetArcanePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass4Lev);
|
||||
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass5Lev);
|
||||
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass5Lev);
|
||||
iClass7Lev += PracticedSpellcasting(oCaster, iClass7, iClass6Lev);
|
||||
iClass8Lev += PracticedSpellcasting(oCaster, iClass8, iClass7Lev);
|
||||
|
||||
if (!GetIsArcaneClass(iClass1, oCaster)) iClass1Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass2, oCaster)) iClass2Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
|
||||
if (!GetIsArcaneClass(iClass4, oCaster)) iClass4Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass5, oCaster)) iClass5Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass6, oCaster)) iClass6Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass7, oCaster)) iClass7Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass8, oCaster)) iClass8Lev = 0;
|
||||
|
||||
if (iClass1Lev > iBest) iBest = iClass1Lev;
|
||||
if (iClass2Lev > iBest) iBest = iClass2Lev;
|
||||
if (iClass3Lev > iBest) iBest = iClass3Lev;
|
||||
if (iClass4Lev > iBest) iBest = iClass4Lev;
|
||||
if (iClass5Lev > iBest) iBest = iClass5Lev;
|
||||
if (iClass6Lev > iBest) iBest = iClass6Lev;
|
||||
if (iClass7Lev > iBest) iBest = iClass7Lev;
|
||||
if (iClass8Lev > iBest) iBest = iClass8Lev;
|
||||
|
||||
return iBest;
|
||||
}
|
||||
@@ -1653,30 +1755,69 @@ int GetLevelByTypeDivine(object oCaster = OBJECT_SELF)
|
||||
int iBest = 0;
|
||||
int iClass1 = GetClassByPosition(1, oCaster);
|
||||
int iClass2 = GetClassByPosition(2, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass4 = GetClassByPosition(4, oCaster);
|
||||
int iClass5 = GetClassByPosition(5, oCaster);
|
||||
int iClass6 = GetClassByPosition(6, oCaster);
|
||||
int iClass7 = GetClassByPosition(8, oCaster);
|
||||
int iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
int iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
int iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
int iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
int iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
int iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
int iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
int iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
int iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
if (iClass1 == CLASS_TYPE_PALADIN || iClass1 == CLASS_TYPE_RANGER) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass2 == CLASS_TYPE_PALADIN || iClass2 == CLASS_TYPE_RANGER) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass3 == CLASS_TYPE_PALADIN || iClass3 == CLASS_TYPE_RANGER) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
if (iClass4 == CLASS_TYPE_PALADIN || iClass4 == CLASS_TYPE_RANGER) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass5 == CLASS_TYPE_PALADIN || iClass5 == CLASS_TYPE_RANGER) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass6 == CLASS_TYPE_PALADIN || iClass6 == CLASS_TYPE_RANGER) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
if (iClass7 == CLASS_TYPE_PALADIN || iClass7 == CLASS_TYPE_RANGER) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass8 == CLASS_TYPE_PALADIN || iClass8 == CLASS_TYPE_RANGER) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
|
||||
if (iClass1 == iFirstDivine) iClass1Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstDivine) iClass2Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstDivine) iClass3Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass4 == iFirstDivine) iClass4Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass5 == iFirstDivine) iClass5Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass6 == iFirstDivine) iClass6Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass7 == iFirstDivine) iClass7Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass8 == iFirstDivine) iClass8Lev += GetDivinePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass4Lev);
|
||||
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass5Lev);
|
||||
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass5Lev);
|
||||
iClass7Lev += PracticedSpellcasting(oCaster, iClass7, iClass6Lev);
|
||||
iClass8Lev += PracticedSpellcasting(oCaster, iClass8, iClass7Lev);
|
||||
|
||||
if (!GetIsDivineClass(iClass1, oCaster)) iClass1Lev = 0;
|
||||
if (!GetIsDivineClass(iClass2, oCaster)) iClass2Lev = 0;
|
||||
if (!GetIsDivineClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
|
||||
if (!GetIsDivineClass(iClass4, oCaster)) iClass4Lev = 0;
|
||||
if (!GetIsDivineClass(iClass5, oCaster)) iClass5Lev = 0;
|
||||
if (!GetIsDivineClass(iClass6, oCaster)) iClass6Lev = 0;
|
||||
if (!GetIsDivineClass(iClass7, oCaster)) iClass7Lev = 0;
|
||||
if (!GetIsDivineClass(iClass8, oCaster)) iClass8Lev = 0;
|
||||
|
||||
if (iClass1Lev > iBest) iBest = iClass1Lev;
|
||||
if (iClass2Lev > iBest) iBest = iClass2Lev;
|
||||
if (iClass3Lev > iBest) iBest = iClass3Lev;
|
||||
if (iClass4Lev > iBest) iBest = iClass4Lev;
|
||||
if (iClass5Lev > iBest) iBest = iClass5Lev;
|
||||
if (iClass6Lev > iBest) iBest = iClass6Lev;
|
||||
if (iClass7Lev > iBest) iBest = iClass7Lev;
|
||||
if (iClass8Lev > iBest) iBest = iClass8Lev;
|
||||
|
||||
return iBest;
|
||||
}
|
||||
}
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
@@ -6,7 +6,7 @@
|
||||
Stratovarius
|
||||
*/
|
||||
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
////////////////Begin Generic////////////////
|
||||
|
||||
@@ -1606,6 +1606,8 @@ void RemoveOldSongs(object oPC)
|
||||
// since in NWN character can have max 3 classes. We also know that Eldritch Theurge
|
||||
// is at positon 3 (unless player is cheating).
|
||||
// So we just need to check the third class.
|
||||
|
||||
//:: [PRC .35] This function will require marker feats
|
||||
int GetETArcaneClass(object oPC)
|
||||
{
|
||||
int nClass = GetClassByPosition(1, oPC);
|
||||
|
@@ -1,6 +1,7 @@
|
||||
/* Core functions taken from high up the branch
|
||||
which are needed lower. */
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function Prototypes */
|
||||
@@ -446,7 +447,7 @@ int PRCGetSpellLevel(object oCreature, int nSpell)
|
||||
return nSpellLevel;
|
||||
|
||||
int i;
|
||||
for (i=1;i<=3;i++)
|
||||
for (i=1;i<=8;i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oCreature);
|
||||
int nCharLevel = GetLevelByClass(nClass, oCreature);
|
||||
@@ -514,7 +515,7 @@ int GetIsNSBClass(int nClass)
|
||||
int UseNewSpellBook(object oCreature)
|
||||
{
|
||||
int i;
|
||||
for (i = 1; i <= 3; i++)
|
||||
for (i = 1; i <= 8; i++)
|
||||
{
|
||||
int nClass = GetClassByPosition(i, oCreature);
|
||||
if(GetIsNSBClass(nClass))
|
||||
@@ -557,7 +558,7 @@ int PRCGetHasSpell(int nRealSpellID, object oCreature = OBJECT_SELF)
|
||||
int nClass, nSpellbookID, nCount, nMeta, i, j;
|
||||
int nSpellbookType, nSpellLevel;
|
||||
string sFile, sFeat;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oCreature);
|
||||
sFile = GetFileForClass(nClass);
|
||||
@@ -609,7 +610,7 @@ int PRCGetIsRealSpellKnown(int nRealSpellID, object oPC = OBJECT_SELF)
|
||||
return TRUE; // means they know the spell (close enough)
|
||||
int nClass;
|
||||
int nClassSlot = 1;
|
||||
while(nClassSlot <= 3)
|
||||
while(nClassSlot <= 8)
|
||||
{
|
||||
nClass = GetClassByPosition(nClassSlot, oPC);
|
||||
if(GetIsDivineClass(nClass) || GetIsArcaneClass(nClass))
|
||||
|
@@ -8,6 +8,8 @@
|
||||
//:: Created On: August 31st, 2005
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
|
||||
// Function returns the domain in the input slot.
|
||||
// A person can have a maximum of 5 bonus domains.
|
||||
@@ -240,7 +242,7 @@ void CastDomainSpell(object oPC, int nSlot, int nLevel)
|
||||
if(!nCount)
|
||||
{
|
||||
int n;
|
||||
for(n = 1; n < 4; n++)
|
||||
for(n = 1; n < 8; n++)
|
||||
{
|
||||
nClass = GetClassByPosition(n, oPC);
|
||||
|
||||
|
@@ -15,6 +15,8 @@
|
||||
//:: Created On: Dec 19, 2003
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// This is the "event" that is called to re-evalutate PRC bonuses. Currently
|
||||
// it is fired by OnEquip, OnUnequip and OnLevel. If you want to move any
|
||||
@@ -23,6 +25,10 @@
|
||||
// feats to their own self-contained script
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -89,7 +95,7 @@ void SetupCharacterData(object oPC)
|
||||
// use bitwise to combine flags
|
||||
|
||||
int i, iData, iShifting;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
int nClassType = GetClassByPosition(i, oPC);
|
||||
if(nClassType != CLASS_TYPE_INVALID)
|
||||
@@ -268,8 +274,13 @@ void SetupCharacterData(object oPC)
|
||||
SetPersistantLocalInt(oPC, "PRC_UNI_SHIFT_SCRIPT", 1);
|
||||
|
||||
//Setup class info for onleveldown script
|
||||
int nCharData = ((GetClassByPosition(3, oPC) & 0xFF) << 16) |
|
||||
((GetClassByPosition(2, oPC) & 0xFF) << 8) |
|
||||
int nCharData = ((GetClassByPosition(8, oPC) & 0xFF) << 56) |
|
||||
((GetClassByPosition(7, oPC) & 0xFF) << 48) |
|
||||
((GetClassByPosition(5, oPC) & 0xFF) << 40) |
|
||||
((GetClassByPosition(5, oPC) & 0xFF) << 32) |
|
||||
((GetClassByPosition(4, oPC) & 0xFF) << 24) |
|
||||
((GetClassByPosition(3, oPC) & 0xFF) << 16) |
|
||||
((GetClassByPosition(2, oPC) & 0xFF) << 8) |
|
||||
(GetClassByPosition(1, oPC) & 0xFF);
|
||||
|
||||
SetPersistantLocalInt(oPC, "PRC_Character_Data", nCharData);
|
||||
@@ -558,6 +569,7 @@ void EvalPRCFeats(object oPC)
|
||||
// Must be after all evaluationscripts that need said function.
|
||||
ExecuteScript("prc_bab_caller", oPC);
|
||||
|
||||
//:: [PRC .35] Needs marker feats
|
||||
// Classes an invoker can take
|
||||
if(GetLevelByClass(CLASS_TYPE_MAESTER, oPC) ||
|
||||
GetLevelByClass(CLASS_TYPE_ACOLYTE, oPC) ||
|
||||
|
@@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
*/
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
@@ -38,7 +38,11 @@ void CheckForPnPHolyAvenger(object oItem);
|
||||
|
||||
#include "inc_utility"
|
||||
#include "prc_inc_newip"
|
||||
#include "prc_inc_castlvl"
|
||||
#include "inc_newspellbook"
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Internal functions */
|
||||
@@ -134,7 +138,7 @@ void _prc_inc_itmrstr_ApplyWizardry(object oPC, object oItem, int nSpellLevel, s
|
||||
|
||||
SetLocalInt(oItem, "PRC_Wizardry"+IntToString(nSpellLevel), TRUE);
|
||||
int nClass, nSlots, i;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oPC);
|
||||
if((sType == "A" && GetIsArcaneClass(nClass)) || (sType == "D" && GetIsDivineClass(nClass)))
|
||||
|
@@ -1,3 +1,5 @@
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -589,6 +591,11 @@ void StoreCohort(object oCohort)
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class1", GetClassByPosition(1, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class2", GetClassByPosition(2, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class3", GetClassByPosition(3, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class4", GetClassByPosition(4, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class5", GetClassByPosition(5, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class6", GetClassByPosition(6, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class7", GetClassByPosition(7, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_class8", GetClassByPosition(8, oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_order", GetLawChaosValue(oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_moral", GetGoodEvilValue(oCohort));
|
||||
SetCampaignInt( COHORT_DATABASE, "Cohort_"+IntToString(nCohortCount)+"_ethran", GetHasFeat(FEAT_ETHRAN, oCohort));
|
||||
@@ -1032,3 +1039,5 @@ void AddPremadeCohortsToDB()
|
||||
SetCampaignInt(COHORT_DATABASE, "PremadeCohorts", TRUE);
|
||||
}
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
@@ -14,6 +14,8 @@
|
||||
be necessary, except when new casting feats are created.
|
||||
*/
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function prototypes */
|
||||
@@ -407,28 +409,50 @@ int GetPrCAdjustedCasterLevel(int nClass, object oCaster = OBJECT_SELF, int bAdj
|
||||
|
||||
int GetPrCAdjustedCasterLevelByType(int nClassType, object oCaster = OBJECT_SELF, int bAdjustForPractisedSpellcaster = TRUE)
|
||||
{
|
||||
int nHighest;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oCaster);
|
||||
nClass2 = GetClassByPosition(2, oCaster);
|
||||
nClass3 = GetClassByPosition(3, oCaster);
|
||||
nClass4 = GetClassByPosition(4, oCaster);
|
||||
nClass5 = GetClassByPosition(5, oCaster);
|
||||
nClass6 = GetClassByPosition(6, oCaster);
|
||||
nClass7 = GetClassByPosition(7, oCaster);
|
||||
nClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
if(nClassType == TYPE_ARCANE && (GetFirstArcaneClassPosition(oCaster) > 0))
|
||||
{
|
||||
if (GetIsArcaneClass(nClass1, oCaster)) nClass1Lvl = GetPrCAdjustedCasterLevel(nClass1, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass2, oCaster)) nClass2Lvl = GetPrCAdjustedCasterLevel(nClass2, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass3, oCaster)) nClass3Lvl = GetPrCAdjustedCasterLevel(nClass3, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass4, oCaster)) nClass4Lvl = GetPrCAdjustedCasterLevel(nClass4, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass5, oCaster)) nClass5Lvl = GetPrCAdjustedCasterLevel(nClass5, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass6, oCaster)) nClass6Lvl = GetPrCAdjustedCasterLevel(nClass6, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass7, oCaster)) nClass7Lvl = GetPrCAdjustedCasterLevel(nClass7, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsArcaneClass(nClass8, oCaster)) nClass8Lvl = GetPrCAdjustedCasterLevel(nClass8, oCaster, bAdjustForPractisedSpellcaster);
|
||||
}
|
||||
else if (nClassType == TYPE_DIVINE && (GetFirstDivineClassPosition(oCaster) > 0))
|
||||
{
|
||||
if (GetIsDivineClass(nClass1, oCaster)) nClass1Lvl = GetPrCAdjustedCasterLevel(nClass1, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass2, oCaster)) nClass2Lvl = GetPrCAdjustedCasterLevel(nClass2, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass3, oCaster)) nClass3Lvl = GetPrCAdjustedCasterLevel(nClass3, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass4, oCaster)) nClass4Lvl = GetPrCAdjustedCasterLevel(nClass4, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass5, oCaster)) nClass5Lvl = GetPrCAdjustedCasterLevel(nClass5, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass6, oCaster)) nClass6Lvl = GetPrCAdjustedCasterLevel(nClass6, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass7, oCaster)) nClass7Lvl = GetPrCAdjustedCasterLevel(nClass7, oCaster, bAdjustForPractisedSpellcaster);
|
||||
if (GetIsDivineClass(nClass8, oCaster)) nClass8Lvl = GetPrCAdjustedCasterLevel(nClass8, oCaster, bAdjustForPractisedSpellcaster);
|
||||
}
|
||||
nHighest = nClass1Lvl;
|
||||
int nHighest = nClass1Lvl;
|
||||
if (nClass2Lvl > nHighest) nHighest = nClass2Lvl;
|
||||
if (nClass3Lvl > nHighest) nHighest = nClass3Lvl;
|
||||
return nHighest;
|
||||
if (nClass4Lvl > nHighest) nHighest = nClass4Lvl;
|
||||
if (nClass5Lvl > nHighest) nHighest = nClass5Lvl;
|
||||
if (nClass6Lvl > nHighest) nHighest = nClass6Lvl;
|
||||
if (nClass7Lvl > nHighest) nHighest = nClass7Lvl;
|
||||
if (nClass8Lvl > nHighest) nHighest = nClass8Lvl;
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
int GetLevelByTypeArcaneFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
|
||||
@@ -438,9 +462,20 @@ int GetLevelByTypeArcaneFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
|
||||
int iClass1 = GetClassByPosition(1, oCaster);
|
||||
int iClass2 = GetClassByPosition(2, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass4 = GetClassByPosition(4, oCaster);
|
||||
int iClass5 = GetClassByPosition(5, oCaster);
|
||||
int iClass6 = GetClassByPosition(6, oCaster);
|
||||
int iClass7 = GetClassByPosition(7, oCaster);
|
||||
int iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
int iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
int iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
int iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
int iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
int iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
int iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
int iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
int iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
if (iSpellID = -1) iSpellID = PRCGetSpellId(oCaster);
|
||||
|
||||
@@ -454,27 +489,58 @@ int GetLevelByTypeArcaneFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
|
||||
if (iClass1 == CLASS_TYPE_HEXBLADE) iClass1Lev = (iClass1Lev >= 4) ? (iClass1Lev / 2) : 0;
|
||||
if (iClass2 == CLASS_TYPE_HEXBLADE) iClass2Lev = (iClass2Lev >= 4) ? (iClass2Lev / 2) : 0;
|
||||
if (iClass3 == CLASS_TYPE_HEXBLADE) iClass3Lev = (iClass3Lev >= 4) ? (iClass3Lev / 2) : 0;
|
||||
if (iClass4 == CLASS_TYPE_HEXBLADE) iClass4Lev = (iClass4Lev >= 4) ? (iClass4Lev / 2) : 0;
|
||||
if (iClass5 == CLASS_TYPE_HEXBLADE) iClass5Lev = (iClass5Lev >= 4) ? (iClass5Lev / 2) : 0;
|
||||
if (iClass6 == CLASS_TYPE_HEXBLADE) iClass6Lev = (iClass6Lev >= 4) ? (iClass6Lev / 2) : 0;
|
||||
if (iClass7 == CLASS_TYPE_HEXBLADE) iClass7Lev = (iClass7Lev >= 4) ? (iClass7Lev / 2) : 0;
|
||||
if (iClass8 == CLASS_TYPE_HEXBLADE) iClass8Lev = (iClass8Lev >= 4) ? (iClass8Lev / 2) : 0;
|
||||
|
||||
if (iClass1 == iFirstArcane) iClass1Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstArcane) iClass2Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstArcane) iClass3Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass1 == iFirstArcane) iClass1Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstArcane) iClass2Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstArcane) iClass3Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass1 == iFirstArcane) iClass1Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstArcane) iClass2Lev += GetArcanePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstArcane) iClass3Lev += GetArcanePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += iBoost;
|
||||
iClass2Lev += iBoost;
|
||||
iClass3Lev += iBoost;
|
||||
iClass4Lev += iBoost;
|
||||
iClass5Lev += iBoost;
|
||||
iClass6Lev += iBoost;
|
||||
iClass7Lev += iBoost;
|
||||
iClass8Lev += iBoost;
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
|
||||
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass1Lev);
|
||||
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass2Lev);
|
||||
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass3Lev);
|
||||
iClass7Lev += PracticedSpellcasting(oCaster, iClass7, iClass1Lev);
|
||||
iClass8Lev += PracticedSpellcasting(oCaster, iClass8, iClass2Lev);
|
||||
|
||||
if (!GetIsArcaneClass(iClass1, oCaster)) iClass1Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass2, oCaster)) iClass2Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass4, oCaster)) iClass4Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass5, oCaster)) iClass5Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass6, oCaster)) iClass6Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass7, oCaster)) iClass7Lev = 0;
|
||||
if (!GetIsArcaneClass(iClass8, oCaster)) iClass8Lev = 0;
|
||||
|
||||
if (iClass1Lev > iBest) iBest = iClass1Lev;
|
||||
if (iClass2Lev > iBest) iBest = iClass2Lev;
|
||||
if (iClass3Lev > iBest) iBest = iClass3Lev;
|
||||
|
||||
if (iClass4Lev > iBest) iBest = iClass4Lev;
|
||||
if (iClass5Lev > iBest) iBest = iClass5Lev;
|
||||
if (iClass6Lev > iBest) iBest = iClass6Lev;
|
||||
if (iClass7Lev > iBest) iBest = iClass7Lev;
|
||||
if (iClass8Lev > iBest) iBest = iClass8Lev;
|
||||
|
||||
return iBest;
|
||||
}
|
||||
|
||||
@@ -485,10 +551,21 @@ int GetLevelByTypeDivineFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
|
||||
int iClass1 = GetClassByPosition(1, oCaster);
|
||||
int iClass2 = GetClassByPosition(2, oCaster);
|
||||
int iClass3 = GetClassByPosition(3, oCaster);
|
||||
int iClass4 = GetClassByPosition(4, oCaster);
|
||||
int iClass5 = GetClassByPosition(5, oCaster);
|
||||
int iClass6 = GetClassByPosition(6, oCaster);
|
||||
int iClass7 = GetClassByPosition(7, oCaster);
|
||||
int iClass8 = GetClassByPosition(8, oCaster);
|
||||
|
||||
int iClass1Lev = GetLevelByPosition(1, oCaster);
|
||||
int iClass2Lev = GetLevelByPosition(2, oCaster);
|
||||
int iClass3Lev = GetLevelByPosition(3, oCaster);
|
||||
|
||||
int iClass4Lev = GetLevelByPosition(4, oCaster);
|
||||
int iClass5Lev = GetLevelByPosition(5, oCaster);
|
||||
int iClass6Lev = GetLevelByPosition(6, oCaster);
|
||||
int iClass7Lev = GetLevelByPosition(7, oCaster);
|
||||
int iClass8Lev = GetLevelByPosition(8, oCaster);
|
||||
|
||||
if (iSpellID = -1) iSpellID = PRCGetSpellId(oCaster);
|
||||
|
||||
int iBoost = ShadowWeave(oCaster, iSpellID) +
|
||||
@@ -499,36 +576,81 @@ int GetLevelByTypeDivineFeats(object oCaster = OBJECT_SELF, int iSpellID = -1)
|
||||
|
||||
if (iClass1 == CLASS_TYPE_PALADIN
|
||||
|| iClass1 == CLASS_TYPE_RANGER
|
||||
|| iClass3 == CLASS_TYPE_ANTI_PALADIN)
|
||||
|| iClass1 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass1Lev = iClass1Lev / 2;
|
||||
if (iClass2 == CLASS_TYPE_PALADIN
|
||||
|| iClass2 == CLASS_TYPE_RANGER
|
||||
|| iClass3 == CLASS_TYPE_ANTI_PALADIN)
|
||||
|| iClass2 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass2Lev = iClass2Lev / 2;
|
||||
if (iClass3 == CLASS_TYPE_PALADIN
|
||||
|| iClass3 == CLASS_TYPE_RANGER
|
||||
|| iClass3 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass3Lev = iClass3Lev / 2;
|
||||
|
||||
if (iClass4 == CLASS_TYPE_PALADIN
|
||||
|| iClass4 == CLASS_TYPE_RANGER
|
||||
|| iClass4 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass4Lev = iClass4Lev / 2;
|
||||
if (iClass5 == CLASS_TYPE_PALADIN
|
||||
|| iClass5 == CLASS_TYPE_RANGER
|
||||
|| iClass5 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass5Lev = iClass5Lev / 2;
|
||||
if (iClass6 == CLASS_TYPE_PALADIN
|
||||
|| iClass6 == CLASS_TYPE_RANGER
|
||||
|| iClass6 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass6Lev = iClass6Lev / 2;
|
||||
if (iClass7 == CLASS_TYPE_PALADIN
|
||||
|| iClass7 == CLASS_TYPE_RANGER
|
||||
|| iClass7 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass7Lev = iClass7Lev / 2;
|
||||
if (iClass8 == CLASS_TYPE_PALADIN
|
||||
|| iClass8 == CLASS_TYPE_RANGER
|
||||
|| iClass8 == CLASS_TYPE_ANTI_PALADIN)
|
||||
iClass8Lev = iClass7Lev / 2;
|
||||
|
||||
if (iClass1 == iFirstDivine) iClass1Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass2 == iFirstDivine) iClass2Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass3 == iFirstDivine) iClass3Lev += GetDivinePRCLevels(oCaster);
|
||||
|
||||
if (iClass4 == iFirstDivine) iClass4Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass5 == iFirstDivine) iClass5Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass6 == iFirstDivine) iClass6Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass7 == iFirstDivine) iClass7Lev += GetDivinePRCLevels(oCaster);
|
||||
if (iClass8 == iFirstDivine) iClass8Lev += GetDivinePRCLevels(oCaster);
|
||||
|
||||
iClass1Lev += iBoost;
|
||||
iClass2Lev += iBoost;
|
||||
iClass3Lev += iBoost;
|
||||
iClass4Lev += iBoost;
|
||||
iClass5Lev += iBoost;
|
||||
iClass6Lev += iBoost;
|
||||
iClass7Lev += iBoost;
|
||||
iClass8Lev += iBoost;
|
||||
|
||||
iClass1Lev += PracticedSpellcasting(oCaster, iClass1, iClass1Lev);
|
||||
iClass2Lev += PracticedSpellcasting(oCaster, iClass2, iClass2Lev);
|
||||
iClass3Lev += PracticedSpellcasting(oCaster, iClass3, iClass3Lev);
|
||||
iClass4Lev += PracticedSpellcasting(oCaster, iClass4, iClass4Lev);
|
||||
iClass5Lev += PracticedSpellcasting(oCaster, iClass5, iClass5Lev);
|
||||
iClass6Lev += PracticedSpellcasting(oCaster, iClass6, iClass6Lev);
|
||||
iClass7Lev += PracticedSpellcasting(oCaster, iClass1, iClass7Lev);
|
||||
iClass8Lev += PracticedSpellcasting(oCaster, iClass2, iClass8Lev);
|
||||
|
||||
if (!GetIsDivineClass(iClass1, oCaster)) iClass1Lev = 0;
|
||||
if (!GetIsDivineClass(iClass2, oCaster)) iClass2Lev = 0;
|
||||
if (!GetIsDivineClass(iClass3, oCaster)) iClass3Lev = 0;
|
||||
|
||||
if (!GetIsDivineClass(iClass4, oCaster)) iClass4Lev = 0;
|
||||
if (!GetIsDivineClass(iClass5, oCaster)) iClass5Lev = 0;
|
||||
if (!GetIsDivineClass(iClass6, oCaster)) iClass6Lev = 0;
|
||||
if (!GetIsDivineClass(iClass7, oCaster)) iClass7Lev = 0;
|
||||
if (!GetIsDivineClass(iClass8, oCaster)) iClass3Lev = 0;
|
||||
|
||||
if (iClass1Lev > iBest) iBest = iClass1Lev;
|
||||
if (iClass2Lev > iBest) iBest = iClass2Lev;
|
||||
if (iClass3Lev > iBest) iBest = iClass3Lev;
|
||||
if (iClass4Lev > iBest) iBest = iClass4Lev;
|
||||
if (iClass5Lev > iBest) iBest = iClass5Lev;
|
||||
if (iClass6Lev > iBest) iBest = iClass6Lev;
|
||||
if (iClass7Lev > iBest) iBest = iClass7Lev;
|
||||
if (iClass8Lev > iBest) iBest = iClass8Lev;
|
||||
|
||||
return iBest;
|
||||
}
|
||||
@@ -2041,7 +2163,7 @@ void PRCDecrementRemainingSpellUses(object oCreature, int nSpell)
|
||||
int nClass, nSpellbookID, nCount, nMeta, i, j;
|
||||
int nSpellbookType, nSpellLevel;
|
||||
string sFile, sFeat;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oCreature);
|
||||
sFile = GetFileForClass(nClass);
|
||||
@@ -2754,7 +2876,7 @@ int PRCGetSpellUsesLeft(int nRealSpellID, object oCreature = OBJECT_SELF)
|
||||
int nClass, nSpellbookID, nCount, i, j;
|
||||
int nSpellbookType, nSpellLevel;
|
||||
string sFile, sFeat;
|
||||
for(i = 1; i <= 3; i++)
|
||||
for(i = 1; i <= 8; i++)
|
||||
{
|
||||
nClass = GetClassByPosition(i, oCreature);
|
||||
sFile = GetFileForClass(nClass);
|
||||
@@ -2919,4 +3041,7 @@ int X2PreSpellCastCode()
|
||||
// DeleteLocalInt(oCaster, "PSCC_Ret");
|
||||
|
||||
return nReturn;
|
||||
}
|
||||
}
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
@@ -1,6 +1,13 @@
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
#include "prc_inc_function"
|
||||
#include "inc_nwnx_funcs"
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
|
||||
const int DEBUG_NATURAL_AC_CALCULATION = FALSE;
|
||||
int MAX_BONUS = GetPRCSwitch(PRC_PNP_SHIFTER_BONUS);
|
||||
const int MAX_PENALTY = 10;
|
||||
@@ -1112,6 +1119,12 @@ void _prc_inc_PrintDebugItem(object oPC, string oItemType, object oItem)
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(1, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(2, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(3, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(4, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(5, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(6, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(7, oItem));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oItem, GetClassByPosition(8, oItem));
|
||||
|
||||
_prc_inc_PrintShapeInfo(oPC, "------");
|
||||
|
||||
_prc_inc_PrintShapeInfo(oPC, "====== Main hand weapon: " + (GetIsWeaponEffective(oItem, FALSE) ? "Effective" : "Ineffective"));
|
||||
@@ -1259,7 +1272,12 @@ void _prc_inc_PrintShape(object oPC, object oTemplate, int bForceLogPrint)
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(1, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(2, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(3, oTemplate));
|
||||
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(4, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(5, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(6, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(7, oTemplate));
|
||||
_prc_inc_PrintClassInfo("=== ", oPC, oTemplate, GetClassByPosition(8, oTemplate));
|
||||
|
||||
_prc_inc_PrintShapeInfo(oPC, "==========");
|
||||
|
||||
//Harmlessly invisible?
|
||||
|
@@ -16,6 +16,7 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
@@ -33,6 +34,9 @@ const int POWER_LIST_WARMIND = CLASS_TYPE_WARMIND;
|
||||
|
||||
#include "psi_inc_const"
|
||||
|
||||
//:: Test Main
|
||||
//void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function prototypes */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -1059,13 +1063,36 @@ int GetManifesterLevel(object oManifester, int nSpecificClass = CLASS_TYPE_INVAL
|
||||
}
|
||||
|
||||
int GetHighestManifesterLevel(object oCreature)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oCreature) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetManifesterLevel(oCreature, GetClassByPosition(n, oCreature));
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestManifesterLevel(object oCreature)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oCreature) != CLASS_TYPE_INVALID ? GetManifesterLevel(oCreature, GetClassByPosition(1, oCreature)) : 0,
|
||||
GetClassByPosition(2, oCreature) != CLASS_TYPE_INVALID ? GetManifesterLevel(oCreature, GetClassByPosition(2, oCreature)) : 0
|
||||
),
|
||||
GetClassByPosition(3, oCreature) != CLASS_TYPE_INVALID ? GetManifesterLevel(oCreature, GetClassByPosition(3, oCreature)) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetPowerLevel(object oManifester)
|
||||
{
|
||||
return GetLocalInt(oManifester, PRC_POWER_LEVEL);
|
||||
@@ -1115,18 +1142,31 @@ int GetPrimaryPsionicClass(object oCreature = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oCreature);
|
||||
nClass2 = GetClassByPosition(2, oCreature);
|
||||
nClass3 = GetClassByPosition(3, oCreature);
|
||||
nClass4 = GetClassByPosition(4, oCreature);
|
||||
nClass5 = GetClassByPosition(5, oCreature);
|
||||
nClass6 = GetClassByPosition(6, oCreature);
|
||||
nClass7 = GetClassByPosition(7, oCreature);
|
||||
nClass8 = GetClassByPosition(8, oCreature);
|
||||
|
||||
if(GetIsPsionicClass(nClass1)) nClass1Lvl = GetLevelByClass(nClass1, oCreature);
|
||||
if(GetIsPsionicClass(nClass2)) nClass2Lvl = GetLevelByClass(nClass2, oCreature);
|
||||
if(GetIsPsionicClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oCreature);
|
||||
if(GetIsPsionicClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oCreature);
|
||||
if(GetIsPsionicClass(nClass4)) nClass4Lvl = GetLevelByClass(nClass4, oCreature);
|
||||
if(GetIsPsionicClass(nClass5)) nClass5Lvl = GetLevelByClass(nClass5, oCreature);
|
||||
if(GetIsPsionicClass(nClass6)) nClass6Lvl = GetLevelByClass(nClass6, oCreature);
|
||||
if(GetIsPsionicClass(nClass7)) nClass7Lvl = GetLevelByClass(nClass7, oCreature);
|
||||
if(GetIsPsionicClass(nClass8)) nClass8Lvl = GetLevelByClass(nClass8, oCreature);
|
||||
|
||||
|
||||
nClass = nClass1;
|
||||
nClassLvl = nClass1Lvl;
|
||||
|
||||
if(nClass2Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass2;
|
||||
@@ -1137,6 +1177,32 @@ int GetPrimaryPsionicClass(object oCreature = OBJECT_SELF)
|
||||
nClass = nClass3;
|
||||
nClassLvl = nClass3Lvl;
|
||||
}
|
||||
if(nClass4Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass4;
|
||||
nClassLvl = nClass4Lvl;
|
||||
}
|
||||
if(nClass5Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass5;
|
||||
nClassLvl = nClass5Lvl;
|
||||
}
|
||||
if(nClass6Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass6;
|
||||
nClassLvl = nClass6Lvl;
|
||||
}
|
||||
if(nClass7Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass7;
|
||||
nClassLvl = nClass7Lvl;
|
||||
}
|
||||
if(nClass8Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass8;
|
||||
nClassLvl = nClass8Lvl;
|
||||
}
|
||||
|
||||
if(nClassLvl == 0)
|
||||
nClass = CLASS_TYPE_INVALID;
|
||||
}
|
||||
@@ -1196,7 +1262,17 @@ int GetFirstPsionicClassPosition(object oCreature = OBJECT_SELF)
|
||||
return 2;
|
||||
if (GetIsPsionicClass(GetClassByPosition(3, oCreature)))
|
||||
return 3;
|
||||
|
||||
if (GetIsPsionicClass(GetClassByPosition(4, oCreature)))
|
||||
return 4;
|
||||
if (GetIsPsionicClass(GetClassByPosition(5, oCreature)))
|
||||
return 5;
|
||||
if (GetIsPsionicClass(GetClassByPosition(6, oCreature)))
|
||||
return 6;
|
||||
if (GetIsPsionicClass(GetClassByPosition(7, oCreature)))
|
||||
return 7;
|
||||
if (GetIsPsionicClass(GetClassByPosition(8, oCreature)))
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,11 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//:: Test Void
|
||||
// void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Function prototypes */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -295,13 +300,35 @@ int GetIsShadowMagicUser(object oCreature)
|
||||
}
|
||||
|
||||
int GetHighestShadowcasterLevel(object oCreature)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oCreature) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetShadowcasterLevel(oCreature, GetClassByPosition(n, oCreature));
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestShadowcasterLevel(object oCreature)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oCreature) != CLASS_TYPE_INVALID ? GetShadowcasterLevel(oCreature, GetClassByPosition(1, oCreature)) : 0,
|
||||
GetClassByPosition(2, oCreature) != CLASS_TYPE_INVALID ? GetShadowcasterLevel(oCreature, GetClassByPosition(2, oCreature)) : 0
|
||||
),
|
||||
GetClassByPosition(3, oCreature) != CLASS_TYPE_INVALID ? GetShadowcasterLevel(oCreature, GetClassByPosition(3, oCreature)) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetIsShadowMagicClass(int nClass)
|
||||
{
|
||||
@@ -376,18 +403,30 @@ int GetPrimaryShadowMagicClass(object oCreature = OBJECT_SELF)
|
||||
else
|
||||
{
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oCreature);
|
||||
nClass2 = GetClassByPosition(2, oCreature);
|
||||
nClass3 = GetClassByPosition(3, oCreature);
|
||||
nClass4 = GetClassByPosition(4, oCreature);
|
||||
nClass5 = GetClassByPosition(5, oCreature);
|
||||
nClass6 = GetClassByPosition(6, oCreature);
|
||||
nClass7 = GetClassByPosition(7, oCreature);
|
||||
nClass8 = GetClassByPosition(8, oCreature);
|
||||
|
||||
if(GetIsShadowMagicClass(nClass1)) nClass1Lvl = GetLevelByClass(nClass1, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass2)) nClass2Lvl = GetLevelByClass(nClass2, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass4)) nClass4Lvl = GetLevelByClass(nClass4, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass5)) nClass5Lvl = GetLevelByClass(nClass5, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass6)) nClass6Lvl = GetLevelByClass(nClass6, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass7)) nClass7Lvl = GetLevelByClass(nClass7, oCreature);
|
||||
if(GetIsShadowMagicClass(nClass8)) nClass8Lvl = GetLevelByClass(nClass8, oCreature);
|
||||
|
||||
nClass = nClass1;
|
||||
nClassLvl = nClass1Lvl;
|
||||
|
||||
if(nClass2Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass2;
|
||||
@@ -398,6 +437,32 @@ int GetPrimaryShadowMagicClass(object oCreature = OBJECT_SELF)
|
||||
nClass = nClass3;
|
||||
nClassLvl = nClass3Lvl;
|
||||
}
|
||||
if(nClass4Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass4;
|
||||
nClassLvl = nClass4Lvl;
|
||||
}
|
||||
if(nClass5Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass5;
|
||||
nClassLvl = nClass5Lvl;
|
||||
}
|
||||
if(nClass6Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass6;
|
||||
nClassLvl = nClass6Lvl;
|
||||
}
|
||||
if(nClass7Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass7;
|
||||
nClassLvl = nClass7Lvl;
|
||||
}
|
||||
if(nClass8Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass8;
|
||||
nClassLvl = nClass8Lvl;
|
||||
}
|
||||
|
||||
if(nClassLvl == 0)
|
||||
nClass = CLASS_TYPE_INVALID;
|
||||
}
|
||||
@@ -413,7 +478,17 @@ int GetFirstShadowMagicClassPosition(object oCreature = OBJECT_SELF)
|
||||
return 2;
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(3, oCreature)))
|
||||
return 3;
|
||||
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(4, oCreature)))
|
||||
return 4;
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(5, oCreature)))
|
||||
return 5;
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(6, oCreature)))
|
||||
return 6;
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(7, oCreature)))
|
||||
return 7;
|
||||
if (GetIsShadowMagicClass(GetClassByPosition(8, oCreature)))
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,11 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/10
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
//////////////////////////////////////////////////
|
||||
|
@@ -16,6 +16,11 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/11
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -529,13 +534,35 @@ int GetIsBladeMagicUser(object oCreature)
|
||||
}
|
||||
|
||||
int GetHighestInitiatorLevel(object oCreature)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oCreature) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetInitiatorLevel(oCreature, GetClassByPosition(n, oCreature));
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestInitiatorLevel(object oCreature)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oCreature) != CLASS_TYPE_INVALID ? GetInitiatorLevel(oCreature, GetClassByPosition(1, oCreature)) : 0,
|
||||
GetClassByPosition(2, oCreature) != CLASS_TYPE_INVALID ? GetInitiatorLevel(oCreature, GetClassByPosition(2, oCreature)) : 0
|
||||
),
|
||||
GetClassByPosition(3, oCreature) != CLASS_TYPE_INVALID ? GetInitiatorLevel(oCreature, GetClassByPosition(3, oCreature)) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetIsBladeMagicClass(int nClass)
|
||||
{
|
||||
@@ -646,18 +673,30 @@ int GetPrimaryBladeMagicClass(object oCreature = OBJECT_SELF)
|
||||
}*/
|
||||
|
||||
int nClassLvl;
|
||||
int nClass1, nClass2, nClass3;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl;
|
||||
int nClass1, nClass2, nClass3, nClass4, nClass5, nClass6, nClass7, nClass8;
|
||||
int nClass1Lvl, nClass2Lvl, nClass3Lvl, nClass4Lvl, nClass5Lvl, nClass6Lvl, nClass7Lvl, nClass8Lvl;
|
||||
|
||||
nClass1 = GetClassByPosition(1, oCreature);
|
||||
nClass2 = GetClassByPosition(2, oCreature);
|
||||
nClass3 = GetClassByPosition(3, oCreature);
|
||||
nClass4 = GetClassByPosition(4, oCreature);
|
||||
nClass5 = GetClassByPosition(5, oCreature);
|
||||
nClass6 = GetClassByPosition(6, oCreature);
|
||||
nClass7 = GetClassByPosition(7, oCreature);
|
||||
nClass8 = GetClassByPosition(8, oCreature);
|
||||
|
||||
if(GetIsBladeMagicClass(nClass1)) nClass1Lvl = GetLevelByClass(nClass1, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass2)) nClass2Lvl = GetLevelByClass(nClass2, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass3)) nClass3Lvl = GetLevelByClass(nClass3, oCreature);
|
||||
|
||||
if(GetIsBladeMagicClass(nClass4)) nClass4Lvl = GetLevelByClass(nClass4, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass5)) nClass5Lvl = GetLevelByClass(nClass5, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass6)) nClass6Lvl = GetLevelByClass(nClass6, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass7)) nClass7Lvl = GetLevelByClass(nClass7, oCreature);
|
||||
if(GetIsBladeMagicClass(nClass8)) nClass8Lvl = GetLevelByClass(nClass8, oCreature);
|
||||
|
||||
nClass = nClass1;
|
||||
nClassLvl = nClass1Lvl;
|
||||
|
||||
if(nClass2Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass2;
|
||||
@@ -668,6 +707,32 @@ int GetPrimaryBladeMagicClass(object oCreature = OBJECT_SELF)
|
||||
nClass = nClass3;
|
||||
nClassLvl = nClass3Lvl;
|
||||
}
|
||||
if(nClass4Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass4;
|
||||
nClassLvl = nClass4Lvl;
|
||||
}
|
||||
if(nClass5Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass5;
|
||||
nClassLvl = nClass5Lvl;
|
||||
}
|
||||
if(nClass6Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass6;
|
||||
nClassLvl = nClass6Lvl;
|
||||
}
|
||||
if(nClass7Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass7;
|
||||
nClassLvl = nClass7Lvl;
|
||||
}
|
||||
if(nClass8Lvl > nClassLvl)
|
||||
{
|
||||
nClass = nClass8;
|
||||
nClassLvl = nClass8Lvl;
|
||||
}
|
||||
|
||||
if(nClassLvl == 0)
|
||||
nClass = CLASS_TYPE_INVALID;
|
||||
}
|
||||
@@ -683,7 +748,17 @@ int GetFirstBladeMagicClassPosition(object oCreature = OBJECT_SELF)
|
||||
return 2;
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(3, oCreature)))
|
||||
return 3;
|
||||
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(4, oCreature)))
|
||||
return 4;
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(5, oCreature)))
|
||||
return 5;
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(6, oCreature)))
|
||||
return 6;
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(7, oCreature)))
|
||||
return 7;
|
||||
if (GetIsBladeMagicClass(GetClassByPosition(8, oCreature)))
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,11 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
//:: Updated for .35 by Jaysyn 2023/03/11
|
||||
|
||||
//:: Test Void
|
||||
//void main (){}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
/* Constants */
|
||||
//////////////////////////////////////////////////
|
||||
@@ -340,13 +345,35 @@ int GetIsTruenamingUser(object oCreature)
|
||||
}
|
||||
|
||||
int GetHighestTrueSpeakerLevel(object oCreature)
|
||||
{
|
||||
int n = 0;
|
||||
int nHighest;
|
||||
int nTemp;
|
||||
|
||||
while(n <= 8)
|
||||
{
|
||||
if(GetClassByPosition(n, oCreature) != CLASS_TYPE_INVALID)
|
||||
{
|
||||
nTemp = GetTruespeakerLevel(oCreature, GetClassByPosition(n, oCreature));
|
||||
|
||||
if(nTemp > nHighest)
|
||||
nHighest = nTemp;
|
||||
}
|
||||
n++;
|
||||
|
||||
}
|
||||
|
||||
return nHighest;
|
||||
}
|
||||
|
||||
/* int GetHighestTrueSpeakerLevel(object oCreature)
|
||||
{
|
||||
return max(max(GetClassByPosition(1, oCreature) != CLASS_TYPE_INVALID ? GetTruespeakerLevel(oCreature, GetClassByPosition(1, oCreature)) : 0,
|
||||
GetClassByPosition(2, oCreature) != CLASS_TYPE_INVALID ? GetTruespeakerLevel(oCreature, GetClassByPosition(2, oCreature)) : 0
|
||||
),
|
||||
GetClassByPosition(3, oCreature) != CLASS_TYPE_INVALID ? GetTruespeakerLevel(oCreature, GetClassByPosition(3, oCreature)) : 0
|
||||
);
|
||||
}
|
||||
} */
|
||||
|
||||
int GetIsTruenamingClass(int nClass)
|
||||
{
|
||||
@@ -391,7 +418,7 @@ int GetTrueSpeakerDC(object oTrueSpeaker = OBJECT_SELF)
|
||||
nDC += GetAbilityModifier(GetTruenameAbilityOfClass(nClass), oTrueSpeaker);
|
||||
int nFeat = -1;
|
||||
|
||||
// Focused Lexicon. Bonus vs chosen racial type
|
||||
// Focused Lexicon. Bonus vs chosen racial type //:: [PRC .35] Needs update for new racialtypes
|
||||
switch(nRace)
|
||||
{
|
||||
case RACIAL_TYPE_ABERRATION: nFeat = FEAT_FOCUSED_LEXICON_ABERRATION; break;
|
||||
|
6
trunk/newspellbook/prc_kngtw_sp_gen.nss
Normal file
6
trunk/newspellbook/prc_kngtw_sp_gen.nss
Normal file
@@ -0,0 +1,6 @@
|
||||
#include "inc_newspellbook"
|
||||
|
||||
void main()
|
||||
{
|
||||
NewSpellbookSpell(CLASS_TYPE_KNIGHT_WEAVE, SPELLBOOK_TYPE_SPONTANEOUS);
|
||||
}
|
@@ -10,33 +10,45 @@ int IsItemMetal(object oItem)
|
||||
|
||||
// Any of these Base Item Types can be considered "mostly metal"
|
||||
if (type==BASE_ITEM_BASTARDSWORD ||
|
||||
type==BASE_ITEM_BATTLEAXE ||
|
||||
type==BASE_ITEM_DAGGER ||
|
||||
type==BASE_ITEM_DIREMACE ||
|
||||
type==BASE_ITEM_DOUBLEAXE ||
|
||||
type==BASE_ITEM_DWARVENWARAXE ||
|
||||
type==BASE_ITEM_GREATAXE ||
|
||||
type==BASE_ITEM_GREATSWORD ||
|
||||
type==BASE_ITEM_HALBERD ||
|
||||
type==BASE_ITEM_HANDAXE ||
|
||||
type==BASE_ITEM_HEAVYFLAIL ||
|
||||
type==BASE_ITEM_KAMA ||
|
||||
type==BASE_ITEM_KATANA ||
|
||||
type==BASE_ITEM_KUKRI ||
|
||||
type==BASE_ITEM_LIGHTFLAIL ||
|
||||
type==BASE_ITEM_LIGHTHAMMER ||
|
||||
type==BASE_ITEM_LIGHTMACE ||
|
||||
type==BASE_ITEM_LONGSWORD ||
|
||||
type==BASE_ITEM_MORNINGSTAR ||
|
||||
type==BASE_ITEM_RAPIER ||
|
||||
type==BASE_ITEM_SCIMITAR ||
|
||||
type==BASE_ITEM_SCYTHE ||
|
||||
type==BASE_ITEM_SHORTSWORD ||
|
||||
type==BASE_ITEM_SHURIKEN ||
|
||||
type==BASE_ITEM_SICKLE ||
|
||||
type==BASE_ITEM_THROWINGAXE ||
|
||||
type==BASE_ITEM_TWOBLADEDSWORD ||
|
||||
type==BASE_ITEM_WARHAMMER)
|
||||
type==BASE_ITEM_BATTLEAXE ||
|
||||
type==BASE_ITEM_DAGGER ||
|
||||
type==BASE_ITEM_DIREMACE ||
|
||||
type==BASE_ITEM_DOUBLEAXE ||
|
||||
type==BASE_ITEM_DWARVENWARAXE ||
|
||||
type==BASE_ITEM_GREATAXE ||
|
||||
type==BASE_ITEM_GREATSWORD ||
|
||||
type==BASE_ITEM_HALBERD ||
|
||||
type==BASE_ITEM_HANDAXE ||
|
||||
type==BASE_ITEM_HEAVYFLAIL ||
|
||||
type==BASE_ITEM_KAMA ||
|
||||
type==BASE_ITEM_KATANA ||
|
||||
type==BASE_ITEM_KUKRI ||
|
||||
type==BASE_ITEM_LIGHTFLAIL ||
|
||||
type==BASE_ITEM_LIGHTHAMMER ||
|
||||
type==BASE_ITEM_LIGHTMACE ||
|
||||
type==BASE_ITEM_LONGSWORD ||
|
||||
type==BASE_ITEM_MORNINGSTAR ||
|
||||
type==BASE_ITEM_RAPIER ||
|
||||
type==BASE_ITEM_SCIMITAR ||
|
||||
type==BASE_ITEM_SCYTHE ||
|
||||
type==BASE_ITEM_SHORTSWORD ||
|
||||
type==BASE_ITEM_SHURIKEN ||
|
||||
type==BASE_ITEM_SICKLE ||
|
||||
type==BASE_ITEM_THROWINGAXE ||
|
||||
type==BASE_ITEM_TWOBLADEDSWORD ||
|
||||
type==BASE_ITEM_WARHAMMER ||
|
||||
type==BASE_ITEM_HEAVY_PICK ||
|
||||
type==BASE_ITEM_LIGHT_PICK ||
|
||||
type==BASE_ITEM_SAI ||
|
||||
type==BASE_ITEM_FALCHION ||
|
||||
type==BASE_ITEM_KATAR ||
|
||||
type==BASE_ITEM_HEAVY_MACE ||
|
||||
type==BASE_ITEM_MAUL ||
|
||||
type==BASE_ITEM_DOUBLE_SCIMITAR ||
|
||||
type==BASE_ITEM_EAGLE_CLAW ||
|
||||
type==BASE_ITEM_ELVEN_LIGHTBLADE ||
|
||||
type==BASE_ITEM_ELVEN_THINBLADE ||
|
||||
type==BASE_ITEM_ELVEN_COURTBLADE)
|
||||
{
|
||||
nReturnVal=2; // Mostly metal
|
||||
}
|
||||
|
@@ -524,11 +524,18 @@ int CheckArchmageClass()
|
||||
+ GetHasFeat(FEAT_ARCHMAGE_SPELLCASTING_WARMAGE)
|
||||
+ GetHasFeat(FEAT_ARCHMAGE_SPELLCASTING_WIZARD);
|
||||
|
||||
if(iArchClass < 1)
|
||||
if(iArchClass > 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("Archmage may only advance a single arcane class.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if(iArchClass < 1)
|
||||
{
|
||||
FloatingTextStringOnCreature("Archmage must pick one arcane class to advance at first level.", OBJECT_SELF, FALSE);
|
||||
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
@@ -43,6 +43,8 @@ void SetHatedEnemyRace(object oPC)
|
||||
else if(GetHasFeat(FEAT_HATED_ENEMY_SHAPECHANGER, oPC)) hatedEnemy = RACIAL_TYPE_SHAPECHANGER;
|
||||
else if(GetHasFeat(FEAT_HATED_ENEMY_UNDEAD, oPC)) hatedEnemy = RACIAL_TYPE_UNDEAD;
|
||||
else if(GetHasFeat(FEAT_HATED_ENEMY_VERMIN, oPC)) hatedEnemy = RACIAL_TYPE_VERMIN;
|
||||
else if(GetHasFeat(FEAT_HATED_ENEMY_OOZE, oPC)) hatedEnemy = RACIAL_TYPE_OOZE;
|
||||
else if(GetHasFeat(FEAT_HATED_ENEMY_PLANT, oPC)) hatedEnemy = RACIAL_TYPE_PLANT;
|
||||
|
||||
SetLocalInt(oPC, "HatedFoe", hatedEnemy);
|
||||
}
|
||||
|
Binary file not shown.
@@ -2,6 +2,21 @@
|
||||
<!DOCTYPE tlk SYSTEM "tlk2xml.dtd">
|
||||
<tlk>
|
||||
<entry id="0" lang="en" sex="m">Bad Strref</entry>
|
||||
<entry id="12250" lang="en" sex="m">## NEW NWN .35 DAMAGE TYPES ##</entry>
|
||||
<entry id="12251" lang="en" sex="m">Force Damage</entry>
|
||||
<entry id="12252" lang="en" sex="m"><CUSTOM0> Force</entry>
|
||||
<entry id="12253" lang="en" sex="m">Poison Damage</entry>
|
||||
<entry id="12254" lang="en" sex="m"><CUSTOM0> Poison</entry>
|
||||
<entry id="12255" lang="en" sex="m">Psychic Damage</entry>
|
||||
<entry id="12256" lang="en" sex="m"><CUSTOM0> Psychic</entry>
|
||||
<entry id="12257" lang="en" sex="m">Radiant Damage</entry>
|
||||
<entry id="12258" lang="en" sex="m"><CUSTOM0> Radiant</entry>
|
||||
<entry id="12259" lang="en" sex="m">Subdual Damage</entry>
|
||||
<entry id="12260" lang="en" sex="m"><CUSTOM0> Subdual</entry>
|
||||
<entry id="12261" lang="en" sex="m">Untyped Damage</entry>
|
||||
<entry id="12262" lang="en" sex="m"><CUSTOM0> Untyped</entry>
|
||||
<entry id="12263" lang="en" sex="m">Vile Damage</entry>
|
||||
<entry id="12264" lang="en" sex="m"><CUSTOM0> Vile</entry>
|
||||
<entry id="12288" lang="en" sex="m">Ocular Adept</entry>
|
||||
<entry id="12289" lang="en" sex="m">Ocular Adepts</entry>
|
||||
<entry id="12290" lang="en" sex="m">ocular adepts</entry>
|
||||
@@ -2310,6 +2325,10 @@ Use: Automatic.</entry>
|
||||
Prerequisite: Elf or Scent ability.
|
||||
Specifics: Characters with Keen Senses may apply their full Search skill even when making a passive search.
|
||||
Use: Automatic.</entry>
|
||||
<entry id="12857" lang="en" sex="m">Hated Enemy: Oozes</entry>
|
||||
<entry id="12858" lang="en" sex="m">Hated Enemy: Plants</entry>
|
||||
<entry id="12859" lang="en" sex="m">Favored Enemy: Oozes</entry>
|
||||
<entry id="12860" lang="en" sex="m">Favored Enemy: Plants</entry>
|
||||
<entry id="12861" lang="en" sex="m">Practiced Invoker (Dragonfire Adept)</entry>
|
||||
<entry id="12862" lang="en" sex="m">Practiced Invoker (Warlock)</entry>
|
||||
<entry id="12863" lang="en" sex="m">Type of Feat: General.
|
||||
@@ -4796,7 +4815,7 @@ your current position.</entry>
|
||||
<entry id="16443" lang="en" sex="m">96</entry>
|
||||
<entry id="16444" lang="en" sex="m">97</entry>
|
||||
<entry id="16445" lang="en" sex="m">98</entry>
|
||||
<entry id="16446" lang="en" sex="m">100</entry>
|
||||
<entry id="16446" lang="en" sex="m">99</entry>
|
||||
<entry id="16447" lang="en" sex="m">Tomb-Tainted Soul</entry>
|
||||
<entry id="16448" lang="en" sex="m">Type of Feat: General
|
||||
Prerequisite: Nongood alignment.
|
||||
@@ -71236,4 +71255,12 @@ Use: Activated</entry>
|
||||
<entry id="75280" lang="en" sex="m">Fra</entry>
|
||||
<entry id="75281" lang="en" sex="m">CSM</entry>
|
||||
<entry id="75282" lang="en" sex="m">Sht</entry>
|
||||
<entry id="75290" lang="en" sex="m">##START CASTER PRC MARKER FEATS##</entry>
|
||||
<entry id="75291" lang="en" sex="m">The Archmage sacrifices the bonus spell slots he would gain in order to take a High Arcana feat at each level. He does, however, add his level to his base caster class when determining spell power (damage, duration...). </entry>
|
||||
<entry id="75292" lang="en" sex="m">Archmage Spellcasting (Beguiler)</entry>
|
||||
<entry id="75293" lang="en" sex="m">Archmage Spellcasting (Dread Necromancer)</entry>
|
||||
<entry id="75294" lang="en" sex="m">Archmage Spellcasting (Sorcerer)</entry>
|
||||
<entry id="75295" lang="en" sex="m">Archmage Spellcasting (Sublime Chord)</entry>
|
||||
<entry id="75296" lang="en" sex="m">Archmage Spellcasting (Warmage)</entry>
|
||||
<entry id="75297" lang="en" sex="m">Archmage Spellcasting (Wizard)</entry>
|
||||
</tlk>
|
||||
|
BIN
trunk/tools/.34_nwnsc.exe
Normal file
BIN
trunk/tools/.34_nwnsc.exe
Normal file
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user