2025/06/03 Update
Updated NUI spellcast menu (@Rakiov) Updated Tornado Throw. Updated Midnight Augmentation. Updated Lucky Dice's tlk entries. Fixed Heartwarder's marker feat.
This commit is contained in:
parent
188047149c
commit
619b7c62c9
@ -222,7 +222,7 @@
|
||||
218 Warmind 16790702 16825724 16825725 16825726 16825727 IR_ELDKNI 10 CLS_ATK_1 CLS_FEAT_WARMND CLS_SAVTHR_WILD CLS_SKILL_WARMND CLS_BFEAT_WARMND 2 **** **** 1 0 14 12 14 16 10 10 WIS 0X04 0X1 0 CLASS_TYPE_WARMIND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARMND 40 0 0 0 10 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
219 IronMind 16790703 16822552 16822553 16822554 16822555 IC_IRONMIND 10 CLS_ATK_2 CLS_FEAT_IRNMND CLS_SAVTHR_WIZ CLS_SKILL_IRNMND CLS_BFEAT_IRNMND 2 **** **** 1 0 15 9 14 13 10 15 WIS 0X00 0X0 0 CLASS_TYPE_IRONMIND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_IRNMND 10 0 0 0 10 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
220 SanctifiedMind 16790704 16822568 16822569 16822570 16822571 IR_THRALLHERD 8 CLS_ATK_1 CLS_FEAT_SNCMND CLS_SAVTHR_CLER CLS_SKILL_SNCMND CLS_BFEAT_SNCMND 4 **** **** 1 0 15 9 14 13 10 15 WIS 0X10 0X2 0 CLASS_TYPE_SANCTIFIED_MIND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SNCMND 6 0 0 1 6 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
221 SlayerOfDomiel 16790705 16827566 16827567 16827568 16827569 IR_HEIRONEOUS 6 CLS_ATK_2 CLS_FEAT_SOD CLS_SAVTHR_ROG CLS_SKILL_SOD CLS_BFEAT_SOD 4 CLS_SPGN_SOD **** 1 1 15 9 14 13 10 15 WIS 0X15 0X3 0 CLASS_TYPE_SLAYER_OF_DOMIEL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SOD 10 0 0 0 10 2 0 **** 1 0 0 0 0 0 0 WIS Domiel 1 1 255 0 0
|
||||
221 SlayerOfDomiel 16790705 16827566 16827567 16827568 16827569 IR_HEIRONEOUS 6 CLS_ATK_2 CLS_FEAT_SOD CLS_SAVTHR_ROG CLS_SKILL_SOD CLS_BFEAT_SOD 4 CLS_SPGN_SOD **** 1 1 15 9 14 13 10 15 WIS 0X15 0X3 0 CLASS_TYPE_SLAYER_OF_DOMIEL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SOD 40 0 0 0 10 2 0 **** 1 0 0 0 0 0 0 WIS Domiel 1 1 255 0 0
|
||||
222 DiscipleOfAsmodeus 16790706 16822624 16822625 16822626 16822627 IR_SOULEATER 6 CLS_ATK_2 CLS_FEAT_DOA CLS_SAVTHR_WIZ CLS_SKILL_DOA CLS_BFEAT_DOA 4 **** **** 1 0 15 9 14 13 10 15 WIS 0X09 0X2 0 CLASS_TYPE_DISCIPLE_OF_ASMODEUS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DOA 10 0 2 0 10 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
223 Dirgesinger 16790707 16822584 16822585 16822586 16822587 IR_PALEMA 6 CLS_ATK_2 CLS_FEAT_DIRGE CLS_SAVTHR_WIZ CLS_SKILL_DIRGE CLS_BFEAT_DIRGE 4 **** **** 1 0 15 9 14 13 10 15 WIS 0X08 0X2 0 CLASS_TYPE_DIRGESINGER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DIRGE 5 0 0 0 5 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
224 Suel_Archanamach 16790708 16822598 16822599 16822600 16822601 IR_HAVOCMAGE 8 CLS_ATK_2 CLS_FEAT_SUEL CLS_SAVTHR_BARD CLS_SKILL_SUEL CLS_BFEAT_SUEL 4 CLS_SPGN_SUEL CLS_SPKN_SUEL 1 1 14 14 14 15 10 10 WIS 0X00 0X0 0 CLASS_TYPE_SUEL_ARCHANAMACH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SUEL 10 0 0 0 10 10 131 **** **** **** **** **** **** **** **** **** Suel **** **** **** **** ****
|
||||
|
@ -1,7 +1,7 @@
|
||||
2DA V2.0
|
||||
|
||||
Bonus
|
||||
0 0
|
||||
0 1
|
||||
1 0
|
||||
2 0
|
||||
3 0
|
||||
|
@ -1,63 +1,63 @@
|
||||
2DA V2.0
|
||||
|
||||
Bonus
|
||||
0 1
|
||||
1 0
|
||||
2 0
|
||||
3 0
|
||||
4 0
|
||||
5 0
|
||||
6 0
|
||||
7 0
|
||||
8 0
|
||||
9 0
|
||||
10 0
|
||||
11 0
|
||||
12 0
|
||||
13 0
|
||||
14 0
|
||||
15 0
|
||||
16 0
|
||||
17 0
|
||||
18 0
|
||||
19 0
|
||||
20 0
|
||||
21 0
|
||||
22 0
|
||||
23 0
|
||||
24 0
|
||||
25 0
|
||||
26 0
|
||||
27 0
|
||||
28 0
|
||||
29 0
|
||||
30 0
|
||||
31 0
|
||||
32 0
|
||||
33 0
|
||||
34 0
|
||||
35 0
|
||||
36 0
|
||||
37 0
|
||||
38 0
|
||||
39 0
|
||||
40 0
|
||||
41 0
|
||||
42 0
|
||||
43 0
|
||||
44 0
|
||||
45 0
|
||||
46 0
|
||||
47 0
|
||||
48 0
|
||||
49 0
|
||||
50 0
|
||||
51 0
|
||||
52 0
|
||||
53 0
|
||||
54 0
|
||||
55 0
|
||||
56 0
|
||||
57 0
|
||||
58 0
|
||||
59 0
|
||||
Bonus
|
||||
0 0
|
||||
1 0
|
||||
2 0
|
||||
3 0
|
||||
4 0
|
||||
5 0
|
||||
6 0
|
||||
7 0
|
||||
8 0
|
||||
9 0
|
||||
10 0
|
||||
11 0
|
||||
12 0
|
||||
13 1
|
||||
14 0
|
||||
15 0
|
||||
16 0
|
||||
17 1
|
||||
18 0
|
||||
19 0
|
||||
20 0
|
||||
21 1
|
||||
22 0
|
||||
23 0
|
||||
24 0
|
||||
25 1
|
||||
26 0
|
||||
27 0
|
||||
28 0
|
||||
29 1
|
||||
30 0
|
||||
31 0
|
||||
32 0
|
||||
33 1
|
||||
34 0
|
||||
35 0
|
||||
36 0
|
||||
37 1
|
||||
38 0
|
||||
39 0
|
||||
40 0
|
||||
41 1
|
||||
42 0
|
||||
43 0
|
||||
44 0
|
||||
45 1
|
||||
46 0
|
||||
47 0
|
||||
48 0
|
||||
49 1
|
||||
50 0
|
||||
51 0
|
||||
52 0
|
||||
53 1
|
||||
54 0
|
||||
55 0
|
||||
56 0
|
||||
57 1
|
||||
58 0
|
||||
59 0
|
||||
|
@ -1,16 +1,158 @@
|
||||
2DA V2.0
|
||||
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 SlayerOfDomielDeathTouch1 2282 3 1 1
|
||||
1 SlayerOfDomielDeathTouch2 2284 3 3 1
|
||||
2 SlayerOfDomielDeathTouch3 2286 3 8 1
|
||||
3 SlayerOfDomielDeathTouch4 2299 3 10 1
|
||||
4 SlayerOfDomielDivineGrace 2264 3 2 0
|
||||
5 ImprovedEvasion 212 3 6 0
|
||||
6 SlayerOfDomielDetectEvil 2461 3 1 1
|
||||
7 FEAT_DRAGONFIRE_STRIKE 3949 0 -1 1
|
||||
8 SuddenEmpower 2830 0 -1 1
|
||||
9 SuddenExtend 2831 0 -1 1
|
||||
10 SuddenMaximize 2832 0 -1 1
|
||||
11 SuddenWiden 2833 0 -1 1
|
||||
12 FEAT_ESCHEW_MATERIALS 2596 0 1 0
|
||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||
0 SlayerOfDomielDeathTouch 2282 3 1 1
|
||||
1 SlayerOfDomielDivineGrace 2264 3 2 0
|
||||
2 ImprovedEvasion 212 3 6 0
|
||||
3 SlayerOfDomielDetectEvil 2461 3 1 1
|
||||
4 EPIC_SLAYER_OF_DOMIEL 25101 3 11 0
|
||||
5 FEAT_EPIC_ARMOR_SKIN 490 1 -1 0
|
||||
6 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
|
||||
7 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||
8 FEAT_EPIC_WEAPON_FOCUS_CLUB 619 1 -1 0
|
||||
9 FEAT_EPIC_WEAPON_FOCUS_DAGGER 620 1 -1 0
|
||||
10 FEAT_EPIC_WEAPON_FOCUS_DART 621 1 -1 0
|
||||
11 FEAT_EPIC_WEAPON_FOCUS_HEAVYCROSSBOW 622 1 -1 0
|
||||
12 FEAT_EPIC_WEAPON_FOCUS_LIGHTCROSSBOW 623 1 -1 0
|
||||
13 FEAT_EPIC_WEAPON_FOCUS_LIGHTMACE 624 1 -1 0
|
||||
14 FEAT_EPIC_WEAPON_FOCUS_MORNINGSTAR 625 1 -1 0
|
||||
15 FEAT_EPIC_WEAPON_FOCUS_QUARTERSTAFF 626 1 -1 0
|
||||
16 FEAT_EPIC_WEAPON_FOCUS_SHORTSPEAR 627 1 -1 0
|
||||
17 FEAT_EPIC_WEAPON_FOCUS_SICKLE 628 1 -1 0
|
||||
18 FEAT_EPIC_WEAPON_FOCUS_SLING 629 1 -1 0
|
||||
19 FEAT_EPIC_WEAPON_FOCUS_UNARMED 630 1 -1 0
|
||||
20 FEAT_EPIC_WEAPON_FOCUS_LONGBOW 631 1 -1 0
|
||||
21 FEAT_EPIC_WEAPON_FOCUS_SHORTBOW 632 1 -1 0
|
||||
22 FEAT_EPIC_WEAPON_FOCUS_SHORTSWORD 633 1 -1 0
|
||||
23 FEAT_EPIC_WEAPON_FOCUS_RAPIER 634 1 -1 0
|
||||
24 FEAT_EPIC_WEAPON_FOCUS_SCIMITAR 635 1 -1 0
|
||||
25 FEAT_EPIC_WEAPON_FOCUS_LONGSWORD 636 1 -1 0
|
||||
26 FEAT_EPIC_WEAPON_FOCUS_GREATSWORD 637 1 -1 0
|
||||
27 FEAT_EPIC_WEAPON_FOCUS_HANDAXE 638 1 -1 0
|
||||
28 FEAT_EPIC_WEAPON_FOCUS_THROWINGAXE 639 1 -1 0
|
||||
29 FEAT_EPIC_WEAPON_FOCUS_BATTLEAXE 640 1 -1 0
|
||||
30 FEAT_EPIC_WEAPON_FOCUS_GREATAXE 641 1 -1 0
|
||||
31 FEAT_EPIC_WEAPON_FOCUS_HALBERD 642 1 -1 0
|
||||
32 FEAT_EPIC_WEAPON_FOCUS_LIGHTHAMMER 643 1 -1 0
|
||||
33 FEAT_EPIC_WEAPON_FOCUS_LIGHTFLAIL 644 1 -1 0
|
||||
34 FEAT_EPIC_WEAPON_FOCUS_WARHAMMER 645 1 -1 0
|
||||
35 FEAT_EPIC_WEAPON_FOCUS_HEAVYFLAIL 646 1 -1 0
|
||||
36 FEAT_EPIC_WEAPON_FOCUS_KAMA 647 1 -1 0
|
||||
37 FEAT_EPIC_WEAPON_FOCUS_KUKRI 648 1 -1 0
|
||||
38 FEAT_EPIC_WEAPON_FOCUS_SHURIKEN 649 1 -1 0
|
||||
39 FEAT_EPIC_WEAPON_FOCUS_SCYTHE 650 1 -1 0
|
||||
40 FEAT_EPIC_WEAPON_FOCUS_KATANA 651 1 -1 0
|
||||
41 FEAT_EPIC_WEAPON_FOCUS_BASTARDSWORD 652 1 -1 0
|
||||
42 FEAT_EPIC_WEAPON_FOCUS_DIREMACE 653 1 -1 0
|
||||
43 FEAT_EPIC_WEAPON_FOCUS_DOUBLEAXE 654 1 -1 0
|
||||
44 FEAT_EPIC_WEAPON_FOCUS_TWOBLADEDSWORD 655 1 -1 0
|
||||
45 EPIC_WEAPON_FOCUS_LANCE 24613 1 -1 0
|
||||
46 EPIC_WEAPON_FOCUS_HEAVY_PICK 24614 1 -1 0
|
||||
47 EPIC_WEAPON_FOCUS_LIGHT_PICK 24615 1 -1 0
|
||||
48 EPIC_WEAPON_FOCUS_SAI 24616 1 -1 0
|
||||
49 EPIC_WEAPON_FOCUS_NUNCHAKU 24617 1 -1 0
|
||||
50 EPIC_WEAPON_FOCUS_FALCHION 24618 1 -1 0
|
||||
51 EPIC_WEAPON_FOCUS_SAP 24619 1 -1 0
|
||||
52 EPIC_WEAPON_FOCUS_KATAR 24620 1 -1 0
|
||||
53 EPIC_WEAPON_FOCUS_HEAVY_MACE 24621 1 -1 0
|
||||
54 EPIC_WEAPON_FOCUS_MAUL 24622 1 -1 0
|
||||
55 EPIC_WEAPON_FOCUS_DBL_SCIMITAR 24623 1 -1 0
|
||||
56 EPIC_WEAPON_FOCUS_GOAD 24624 1 -1 0
|
||||
57 EPIC_WEAPON_FOCUS_ELVEN_LIGHTBLADE 24698 1 -1 0
|
||||
58 EPIC_WEAPON_FOCUS_ELVEN_THINBLADE 24706 1 -1 0
|
||||
59 EPIC_WEAPON_FOCUS_ELVEN_COURTBLADE 24714 1 -1 0
|
||||
60 FEAT_EPIC_WEAPON_FOCUS_DWAXE 956 1 -1 0
|
||||
61 FEAT_EPIC_WEAPON_FOCUS_WHIP 997 1 -1 0
|
||||
62 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
|
||||
63 Epic_WeaponFocus_Mindblade 3618 1 -1 0
|
||||
64 FEAT_EPIC_LEADERSHIP 4366 1 -1 0
|
||||
65 FEAT_LEGENDARY_COMMANDER 4367 1 -1 0
|
||||
66 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 -1 0
|
||||
67 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 -1 0
|
||||
68 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 -1 0
|
||||
69 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 -1 0
|
||||
70 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 -1 0
|
||||
71 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 -1 0
|
||||
72 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 -1 0
|
||||
73 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 -1 0
|
||||
74 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 -1 0
|
||||
75 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 -1 0
|
||||
76 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 -1 0
|
||||
77 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 -1 0
|
||||
78 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 -1 0
|
||||
79 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 -1 0
|
||||
80 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 -1 0
|
||||
81 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 -1 0
|
||||
82 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 -1 0
|
||||
83 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 -1 0
|
||||
84 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 -1 0
|
||||
85 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 -1 0
|
||||
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 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 -1 0
|
||||
90 FEAT_LINGERING_DAMAGE 3099 1 -1 0
|
||||
91 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 -1 0
|
||||
92 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 -1 0
|
||||
93 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 -1 0
|
||||
94 FEAT_EPIC_SKILL_FOCUS_MARTIAL_LORE 3044 1 -1 0
|
||||
95 FEAT_EPIC_SKILL_FOCUS_BALANCE 3046 1 -1 0
|
||||
96 FEAT_EPIC_SKILL_FOCUS_CRAFT_POISON 3048 1 -1 0
|
||||
97 FEAT_EPIC_SKILL_FOCUS_PSICRAFT 3050 1 -1 0
|
||||
98 FEAT_EPIC_SKILL_FOCUS_CLIMB 3052 1 -1 0
|
||||
99 FEAT_EPIC_SKILL_FOCUS_CRAFT_GENERAL 3054 1 -1 0
|
||||
100 FEAT_EPIC_REPUTATION 586 1 -1 0
|
||||
101 FEAT_EPIC_SELF_CONCEALMENT_10 748 1 -1 0
|
||||
102 FEAT_EPIC_SELF_CONCEALMENT_20 749 1 -1 0
|
||||
103 FEAT_EPIC_SELF_CONCEALMENT_30 750 1 -1 0
|
||||
104 FEAT_EPIC_SELF_CONCEALMENT_40 751 1 -1 0
|
||||
105 FEAT_EPIC_SELF_CONCEALMENT_50 752 1 -1 0
|
||||
106 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
|
||||
107 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
|
||||
108 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
|
||||
109 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
|
||||
110 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
|
||||
111 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
|
||||
112 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
|
||||
113 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
|
||||
114 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
|
||||
115 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
|
||||
116 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
|
||||
117 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_1 834 1 -1 0
|
||||
118 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_2 835 1 -1 0
|
||||
119 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_3 836 1 -1 0
|
||||
120 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_4 837 1 -1 0
|
||||
121 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_5 838 1 -1 0
|
||||
122 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_6 839 1 -1 0
|
||||
123 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_7 840 1 -1 0
|
||||
124 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_8 841 1 -1 0
|
||||
125 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_9 842 1 -1 0
|
||||
126 FEAT_EPIC_IMPROVED_SNEAK_ATTACK_10 843 1 -1 0
|
||||
127 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 1 -1 0
|
||||
128 FEAT_EPIC_DODGE 856 1 -1 0
|
||||
129 FEAT_EPIC_GREAT_CHARISMA_1 764 1 -1 0
|
||||
130 FEAT_EPIC_GREAT_CHARISMA_2 765 1 -1 0
|
||||
131 FEAT_EPIC_GREAT_CHARISMA_3 766 1 -1 0
|
||||
132 FEAT_EPIC_GREAT_CHARISMA_4 767 1 -1 0
|
||||
133 FEAT_EPIC_GREAT_CHARISMA_5 768 1 -1 0
|
||||
134 FEAT_EPIC_GREAT_CHARISMA_6 769 1 -1 0
|
||||
135 FEAT_EPIC_GREAT_CHARISMA_7 770 1 -1 0
|
||||
136 FEAT_EPIC_GREAT_CHARISMA_8 771 1 -1 0
|
||||
137 FEAT_EPIC_GREAT_CHARISMA_9 772 1 -1 0
|
||||
138 FEAT_EPIC_GREAT_CHARISMA_10 773 1 -1 0
|
||||
139 FEAT_EPIC_GREAT_WISDOM_1 804 1 -1 0
|
||||
140 FEAT_EPIC_GREAT_WISDOM_2 805 1 -1 0
|
||||
141 FEAT_EPIC_GREAT_WISDOM_3 806 1 -1 0
|
||||
142 FEAT_EPIC_GREAT_WISDOM_4 807 1 -1 0
|
||||
143 FEAT_EPIC_GREAT_WISDOM_5 808 1 -1 0
|
||||
144 FEAT_EPIC_GREAT_WISDOM_6 809 1 -1 0
|
||||
145 FEAT_EPIC_GREAT_WISDOM_7 810 1 -1 0
|
||||
146 FEAT_EPIC_GREAT_WISDOM_8 811 1 -1 0
|
||||
147 FEAT_EPIC_GREAT_WISDOM_9 812 1 -1 0
|
||||
148 FEAT_EPIC_GREAT_WISDOM_10 813 1 -1 0
|
||||
149 FEAT_DRAGONFIRE_STRIKE 3949 0 -1 1
|
||||
150 SuddenEmpower 2830 0 -1 1
|
||||
151 SuddenExtend 2831 0 -1 1
|
||||
152 SuddenMaximize 2832 0 -1 1
|
||||
153 SuddenWiden 2833 0 -1 1
|
||||
154 FEAT_ESCHEW_MATERIALS 2596 0 1 0
|
||||
|
@ -2343,10 +2343,10 @@
|
||||
2339 FEAT_GREATER_IRON_HEWS 16826150 16826151 ife_x2critomsta **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2765 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_GREATER_IRON_HEWS 4 **** **** **** **** **** 0 1
|
||||
2340 FEAT_IRON_SKIN 16826152 16826153 ife_x2arskin **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2766 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_IRON_SKIN 4 **** **** **** **** **** 0 1
|
||||
2341 FEAT_IRON_BODY 16826154 16826155 ife_x2epdivcha **** **** **** **** **** **** **** **** **** **** 0 0 0 **** **** 2767 **** 1 1 **** 1 **** **** **** **** **** **** **** **** **** FEAT_IRON_BODY 4 **** **** **** **** **** 0 1
|
||||
2342 FEAT_PAIN_TOUCH 16826160 16826161 ife_x2wfunar **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2768 2343 **** 11 **** **** **** **** **** **** **** **** **** **** **** FEAT_PAIN_TOUCH **** **** **** **** **** **** **** 1
|
||||
2343 FEAT_AURA_OF_FEAR 16826162 16826163 ife_x1spdrkbls **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2770 2346 **** 11 **** 1 **** **** **** **** **** **** **** **** **** FEAT_AURA_OF_FEAR **** **** **** **** **** **** **** 1
|
||||
2344 FEAT_CRUELEST_CUT 16826164 16826165 ife_x2kicrit **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2769 2349 **** 11 **** **** **** **** **** **** **** **** **** **** **** FEAT_CRUELEST_CUT **** **** **** **** **** **** **** 1
|
||||
2345 FEAT_VISAGE_OF_TERROR 16826166 16826167 ife_x2mightrage **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2771 2391 **** 9 **** **** **** **** **** **** **** **** **** **** **** FEAT_VISAGE_OF_TERROR **** **** **** **** **** **** **** 1
|
||||
2342 FEAT_PAIN_TOUCH 16826160 16826161 ife_x2wfunar **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** 2768 **** **** 11 **** **** **** **** **** **** **** **** **** **** **** FEAT_PAIN_TOUCH 3 1 **** **** **** **** 0 1
|
||||
2343 FEAT_AURA_OF_FEAR 16826162 16826163 ife_x1spdrkbls **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** 2770 **** **** 11 **** 1 **** **** **** **** **** **** **** **** **** FEAT_AURA_OF_FEAR 1 **** **** **** **** **** 0 1
|
||||
2344 FEAT_CRUELEST_CUT 16826164 16826165 ife_x2kicrit **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** 2769 **** **** 11 **** **** **** **** **** **** **** **** **** **** **** FEAT_CRUELEST_CUT 3 1 **** **** **** **** 0 1
|
||||
2345 FEAT_VISAGE_OF_TERROR 16826166 16826167 ife_x2mightrage **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** 2771 **** **** 9 **** **** **** **** **** **** **** **** **** **** **** FEAT_VISAGE_OF_TERROR 1 **** **** **** **** **** 0 1
|
||||
2346 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
2347 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
2348 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||
|
@ -18936,9 +18936,9 @@
|
||||
18932 LightningGauntletsZap 16836844 is_ChLightn V T 0 **** 0x02 moi_mld_lghtgnzp **** **** **** **** **** **** 6 1500 hand **** vco_mebalelec01 **** sco_mebalelec01 vs_chant_evoc_hm vs_chant_evoc_hf area 1000 **** **** **** **** 0 **** linked hand **** path Electricity 1 **** **** **** **** **** 1 **** 1 6110 0 0 **** 1 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18933 LightningGauntletsHandsBind 16836845 is_ShadShld T P 0 **** 0x01 moi_mld_lghtgnhn **** **** **** **** **** **** 8 1500 hand **** **** vco_lgrinodd01 sco_lgrinodd01 vs_chant_illu_hm vs_chant_illu_hf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 **** 1 16836717 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18934 LuckyDice_RadialMaster 16836093 **** T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 18935 18936 18937 **** **** 12 **** 1 16825537 0 0 **** 0 8834 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18935 LuckyDice_AttackDamage 16836095 fot_knowalign T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 556926050 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18936 LuckyDice_SavingThrows 16836096 fot_exped T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 557384801 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18937 LuckyDice_SkillAbilities 16836097 fot_minorseq T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 557515872 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18935 LuckyDice_AttackDamage 16836848 fot_knowalign T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 556926050 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18936 LuckyDice_SavingThrows 16836849 fot_exped T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 557384801 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18937 LuckyDice_SkillAbilities 16836850 fot_minorseq T P 0 **** 0x01 moi_mld_lckydcft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_conj_lm vs_chant_conj_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 12 18934 1 16825537 0 0 **** 0 557515872 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18938 MagesSpectaclesBrowBind 16836853 is_ReadMagic D T 0 **** 0x28 moi_mld_mgspctft **** **** **** **** **** **** 2 1500 hand **** vco_smhanelec01 **** sco_mehanelec01 vs_chant_illu_lm vs_chant_illu_lf self 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** **** **** 1 16789529 0 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18939 ManticoreBeltTotemBind 16836856 ife_X1EmbuArr V L 0 **** 0x02 moi_mld_mntcrbft **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** attack 1000 **** **** **** **** 1 wamar_001 homing hand **** path **** 0 **** **** **** **** **** 3 **** 2 **** 0 0 **** 1 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
18940 MantleOfFlameShouldersBind 16836859 is_Fireball V P 0 **** 0x01 moi_mld_mntlflft **** **** **** **** **** **** 3 1500 hand **** vco_mehanfire03 **** sco_mehanfire03 vs_chant_evoc_lm vs_chant_evoc_lf area 1000 **** **** **** **** 1 vpr_fireball homing hand spr_fireball path Fire 1 **** **** **** **** **** 11 **** 1 6155 0 0 **** 1 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||
|
@ -760,6 +760,9 @@ const int FEAT_ED_PROTECTIVE_AURA = 23526;
|
||||
const int FEAT_ED_STRENGTH_OF_WILL = 23527;
|
||||
const int FEAT_ED_WILD_FRENZY = 23528;
|
||||
|
||||
//:: Slayer of Domiel
|
||||
const int FEAT_SOD_DEATH_TOUCH = 2282;
|
||||
|
||||
//Passive Feats
|
||||
const int FEAT_ETERNAL_FREEDOM = 4298;
|
||||
const int FEAT_INTUITIVE_ATTACK = 3166;
|
||||
|
@ -2166,6 +2166,7 @@ void FeatSpecialUsePerDay(object oPC)
|
||||
FeatUsePerDay(oPC, FEAT_LIPS_RAPTUR);
|
||||
FeatUsePerDay(oPC, FEAT_COMMAND_SPIDERS, ABILITY_CHARISMA, 3);
|
||||
FeatUsePerDay(oPC, FEAT_FM_FOREST_DOMINION, ABILITY_CHARISMA, 3);
|
||||
FeatUsePerDay(oPC, FEAT_SOD_DEATH_TOUCH, -1, (GetLevelByClass(CLASS_TYPE_SLAYER_OF_DOMIEL, oPC)+4)/4);
|
||||
FeatDiabolist(oPC);
|
||||
FeatAlaghar(oPC);
|
||||
ShadowShieldUses(oPC);
|
||||
|
@ -250,9 +250,9 @@ int FindUnarmedDamage(object oCreature)
|
||||
|
||||
// Ronove is in place of monk, does not stack
|
||||
if (iRonove > iMonk) iMonk = iRonove;
|
||||
|
||||
// monks damage progesses every four levels, starts at 1d6
|
||||
if (iMonk > 0)
|
||||
|
||||
// monks damage progesses every four levels, starts at 1d6
|
||||
if (iMonk > 0)
|
||||
iMonkDamage = iMonk / 4 + 3;
|
||||
|
||||
// For medium monks in 3.0e skip 2d8 and go to 1d20
|
||||
@ -263,6 +263,7 @@ int FindUnarmedDamage(object oCreature)
|
||||
// without stacking.
|
||||
if (iShou > 0) iShouDamage = iShou + 2; // Lv. 1: 1d6, Lv. 2: 1d8, Lv. 3: 1d10
|
||||
if (iShou > 3) iShouDamage--; // Lv. 4: 1d10, Lv. 5: 2d6
|
||||
iShouDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iShouDamage));
|
||||
|
||||
// Frostrager does not stack with other damage types
|
||||
if (iFrost > 0) iFrostDamage = IP_CONST_MONSTERDAMAGE_1d6; // Lv. 1: 1d6
|
||||
@ -326,10 +327,15 @@ int FindUnarmedDamage(object oCreature)
|
||||
iBrawlerDamage += iDieIncrease;
|
||||
iFrostDamage += iDieIncrease;
|
||||
iSUSDamage += iDieIncrease;
|
||||
|
||||
//FloatingTextStringOnCreature("prc_inc_unarmed: Size is: "+IntToString(iSize)+".", oCreature);
|
||||
//FloatingTextStringOnCreature("prc_inc_unarmed: Pre 2DA Lookup >> iMonkDamage = "+IntToString(iMonkDamage)+".", oCreature);
|
||||
|
||||
// now, read the damage from the table in unarmed_dmg.2da
|
||||
iMonkDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage));
|
||||
iShouDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iShouDamage));
|
||||
|
||||
//FloatingTextStringOnCreature("prc_inc_unarmed: Post 2DA Lookup >> iMonkDamage = "+IntToString(iMonkDamage)+".", oCreature);
|
||||
|
||||
// Medium+ monks have some special values on the table in 3.0:
|
||||
if (iSize >= 5 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
||||
|
@ -533,24 +533,22 @@ int GetCurrentSpellLevel(int nClass, int nLevel)
|
||||
// ToB doesn't have a concept of spell levels, but still match up to it
|
||||
if(nClass == CLASS_TYPE_WARBLADE
|
||||
|| nClass == CLASS_TYPE_SWORDSAGE
|
||||
|| nClass == CLASS_TYPE_CRUSADER)
|
||||
|| nClass == CLASS_TYPE_CRUSADER
|
||||
|| nClass == CLASS_TYPE_SHADOWCASTER)
|
||||
{
|
||||
return 9;
|
||||
}
|
||||
|
||||
|
||||
// Binders don't really have a concept of spell level
|
||||
if (nClass == CLASS_TYPE_BINDER
|
||||
|| nClass == CLASS_TYPE_DRAGON_SHAMAN)
|
||||
|| nClass == CLASS_TYPE_DRAGON_SHAMAN) // they can only reach 1st circle
|
||||
return 1;
|
||||
|
||||
//Shadowsmith has no concept of spell levels
|
||||
if (nClass == CLASS_TYPE_SHADOWSMITH)
|
||||
return 2;
|
||||
|
||||
//Shadowcaster has no concept of spell levels
|
||||
if (nClass == CLASS_TYPE_SHADOWCASTER)
|
||||
return 9;
|
||||
|
||||
if (nClass == CLASS_TYPE_WARLOCK
|
||||
|| nClass == CLASS_TYPE_DRAGONFIRE_ADEPT)
|
||||
return 4;
|
||||
@ -570,6 +568,20 @@ int GetCurrentSpellLevel(int nClass, int nLevel)
|
||||
|
||||
currentLevel = nLevel - 1; // Level is 1 off of the row in the 2da
|
||||
|
||||
if (nClass == CLASS_TYPE_FIST_OF_ZUOKEN
|
||||
|| nClass == CLASS_TYPE_PSION
|
||||
|| nClass == CLASS_TYPE_PSYWAR
|
||||
|| nClass == CLASS_TYPE_WILDER
|
||||
|| nClass == CLASS_TYPE_PSYCHIC_ROGUE
|
||||
|| nClass == CLASS_TYPE_WARMIND)
|
||||
currentLevel = GetManifesterLevel(OBJECT_SELF, nClass, TRUE) - 1;
|
||||
|
||||
int totalLevel = Get2DARowCount(spellLevel2da);
|
||||
|
||||
// in case we somehow go over bounds just don't :)
|
||||
if (currentLevel >= totalLevel)
|
||||
currentLevel = totalLevel - 1;
|
||||
|
||||
//Psionics have MaxPowerLevel as their column name
|
||||
string columnName = "MaxPowerLevel";
|
||||
|
||||
@ -584,13 +596,13 @@ int GetCurrentSpellLevel(int nClass, int nLevel)
|
||||
{
|
||||
columnName = "EvolvingMind";
|
||||
spellLevel2da = "cls_true_maxlvl"; //has a different 2da we want to look at
|
||||
}
|
||||
}
|
||||
|
||||
if (nClass == CLASS_TYPE_BINDER)
|
||||
{
|
||||
if (nClass == CLASS_TYPE_BINDER)
|
||||
{
|
||||
columnName = "VestigeLvl";
|
||||
spellLevel2da = "cls_bind_binder";
|
||||
}
|
||||
}
|
||||
|
||||
// ToB doesn't have a concept of this, but we don't care.
|
||||
|
||||
@ -601,21 +613,6 @@ int GetCurrentSpellLevel(int nClass, int nLevel)
|
||||
|
||||
int GetMinSpellLevel(int nClass)
|
||||
{
|
||||
|
||||
// ToB doesn't have a concept of spell levels, but still match up to it
|
||||
if(nClass == CLASS_TYPE_WARBLADE
|
||||
|| nClass == CLASS_TYPE_SWORDSAGE
|
||||
|| nClass == CLASS_TYPE_CRUSADER
|
||||
|| nClass == CLASS_TYPE_SHADOWCASTER //Shadowsmiths doesn't have a progression 2da :)
|
||||
|| nClass == CLASS_TYPE_SHADOWSMITH //Shadowcasters doesn't have a progression 2da :)
|
||||
|| nClass == CLASS_TYPE_BINDER // Binders don't really have a concept of spell level
|
||||
|| nClass == CLASS_TYPE_DRAGON_SHAMAN //Invokers have an issue with tracking accurate spell levels, so this is a work around
|
||||
|| nClass == CLASS_TYPE_DRAGONFIRE_ADEPT
|
||||
|| nClass == CLASS_TYPE_WARLOCK)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// again sponts have their own function
|
||||
if(GetSpellbookTypeForClass(nClass) == SPELLBOOK_TYPE_SPONTANEOUS
|
||||
|| nClass == CLASS_TYPE_ARCHIVIST)
|
||||
@ -624,6 +621,23 @@ int GetMinSpellLevel(int nClass)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (nClass == CLASS_TYPE_FIST_OF_ZUOKEN
|
||||
|| nClass == CLASS_TYPE_PSION
|
||||
|| nClass == CLASS_TYPE_PSYWAR
|
||||
|| nClass == CLASS_TYPE_WILDER
|
||||
|| nClass == CLASS_TYPE_PSYCHIC_ROGUE
|
||||
|| nClass == CLASS_TYPE_WARMIND
|
||||
|| nClass == CLASS_TYPE_WARBLADE
|
||||
|| nClass == CLASS_TYPE_SWORDSAGE
|
||||
|| nClass == CLASS_TYPE_CRUSADER
|
||||
|| nClass == CLASS_TYPE_WARLOCK
|
||||
|| nClass == CLASS_TYPE_DRAGONFIRE_ADEPT
|
||||
|| nClass == CLASS_TYPE_DRAGON_SHAMAN
|
||||
|| nClass == CLASS_TYPE_SHADOWCASTER
|
||||
|| nClass == CLASS_TYPE_SHADOWSMITH
|
||||
|| nClass == CLASS_TYPE_BINDER)
|
||||
return 1;
|
||||
|
||||
return GetCurrentSpellLevel(nClass, 1);
|
||||
}
|
||||
|
||||
@ -631,6 +645,16 @@ int GetMinSpellLevel(int nClass)
|
||||
|
||||
int GetMaxSpellLevel(int nClass)
|
||||
{
|
||||
if (nClass == CLASS_TYPE_WILDER
|
||||
|| nClass == CLASS_TYPE_PSION)
|
||||
return 9;
|
||||
if (nClass == CLASS_TYPE_PSYCHIC_ROGUE
|
||||
|| nClass == CLASS_TYPE_FIST_OF_ZUOKEN
|
||||
|| nClass == CLASS_TYPE_WARMIND)
|
||||
return 5;
|
||||
if (nClass == CLASS_TYPE_PSYWAR)
|
||||
return 6;
|
||||
|
||||
return GetCurrentSpellLevel(nClass, GetHighestLevelPossibleInClass(nClass));
|
||||
}
|
||||
|
||||
|
@ -1660,7 +1660,7 @@ int BardSorcPrCCheck(object oCaster, int nCastingClass, object oSpellCastItem)
|
||||
{
|
||||
if (CheckSecondaryPrC(oCaster) == TRUE)
|
||||
{
|
||||
FloatingTextStringOnCreature("x2_inc_spellhook: BardSorcPrCCheck >>> Sorcerer w/RHD found.", oCaster);
|
||||
if (DEBUG) DoDebug("x2_inc_spellhook: BardSorcPrCCheck >>> Sorcerer w/RHD found.", oCaster);
|
||||
return TRUE;
|
||||
}
|
||||
//no need to check further if new spellbooks are disabled
|
||||
@ -1683,7 +1683,7 @@ int BardSorcPrCCheck(object oCaster, int nCastingClass, object oSpellCastItem)
|
||||
}
|
||||
if (CheckSecondaryPrC(oCaster) == TRUE)
|
||||
{
|
||||
if (DEBUG) DoDebug("x2_inc_spellhook: BardSorcPrCCheck >>> Bard w/RHD found.", oCaster);
|
||||
if (DEBUG) DoDebug("x2_inc_spellhook: BardSorcPrCCheck >>> Sorcerer w/RHD found.", oCaster);
|
||||
FloatingTextStringOnCreature("You must use the new spellbook on the class radial.", oCaster, FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ void main()
|
||||
int i, nPowerLevel;
|
||||
int nMaxLevel = GetMaxEssentiaCapacityFeat(oMeldshaper);
|
||||
string sFeatID;
|
||||
for(i = 14001; i < 14260 ; i++)
|
||||
for(i = 14001; i < 14260 ; i++)
|
||||
{
|
||||
nPowerLevel = StringToInt(Get2DACache("spells", "Innate", i));
|
||||
|
||||
@ -180,7 +180,9 @@ void main()
|
||||
if(SORT) AddToTempList(oMeldshaper, GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", i))), i);
|
||||
else AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", i))), i, oMeldshaper);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TransferTempList(oMeldshaper);
|
||||
}
|
||||
else if(nStage == STAGE_SELECT_ESSENTIA_POWER)
|
||||
{
|
||||
@ -267,4 +269,4 @@ void main()
|
||||
// Store the stage value. If it has been changed, this clears out the choices
|
||||
SetStage(nStage, oMeldshaper);
|
||||
}
|
||||
}
|
||||
}
|
@ -77,7 +77,8 @@ void main()
|
||||
// No hitting yourself or your friends
|
||||
if(GetIsEnemy(oAreaTarget, oInitiator))
|
||||
{
|
||||
fDist += MetersToFeet(GetDistanceBetween(oInitiator, oAreaTarget));
|
||||
//fDist += MetersToFeet(GetDistanceBetween(oInitiator, oAreaTarget));
|
||||
fDist += PRCMax(10, FloatToInt(MetersToFeet(GetDistanceBetween(oInitiator, oAreaTarget))));
|
||||
AssignCommand(oInitiator, ClearAllActions(TRUE));
|
||||
AssignCommand(oInitiator, JumpToLocation(GetLocation(oAreaTarget)));
|
||||
nBonus = (FloatToInt(fDist) / 5) * 2; // Bonus is +2 for every 5 feet moved
|
||||
|
@ -179,10 +179,10 @@ void main()
|
||||
if (masterSpellId)
|
||||
{
|
||||
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR, spellId);
|
||||
spellId = masterSpellId;
|
||||
featId = StringToInt(Get2DACache("spells", "FeatID", masterSpellId));
|
||||
}
|
||||
|
||||
featId = StringToInt(Get2DACache("spells", "FeatID", spellId));
|
||||
else
|
||||
featId = StringToInt(Get2DACache("spells", "FeatID", spellId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -193,11 +193,13 @@ void main()
|
||||
if (nButton == NUI_PAYLOAD_BUTTON_RIGHT_CLICK)
|
||||
{
|
||||
CreateSpellDescriptionNUI(oPlayer, featId, spellId, realSpellId);
|
||||
DeleteLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR);
|
||||
return;
|
||||
}
|
||||
// If left click, operate normally
|
||||
if (nButton == NUI_PAYLOAD_BUTTON_LEFT_CLICK)
|
||||
{
|
||||
|
||||
// We use the spell's FeatID to do actions, and we set the OnTarget action
|
||||
// to PRC_NUI_SPELLBOOK so the handler knows what the action is being done
|
||||
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_FEATID_VAR, featId);
|
||||
|
@ -19,20 +19,21 @@ void main()
|
||||
// Get the selected PRC spell we are going to cast
|
||||
int featId = GetLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_FEATID_VAR);
|
||||
|
||||
// if the spell has a master feat this is it. This will return 0 if not set.
|
||||
int subSpellID = GetLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR);
|
||||
|
||||
int isPersonalFeat = GetLocalInt(OBJECT_SELF, NUI_SPELLBOOK_ON_TARGET_IS_PERSONAL_FEAT);
|
||||
|
||||
// if this is a personal feat then this was called directly since we never entered
|
||||
// targetting and this should be applied immediatly to the executing player.
|
||||
if (isPersonalFeat)
|
||||
{
|
||||
ActionUseFeat(featId);
|
||||
ActionUseFeat(featId, OBJECT_SELF, subSpellID);
|
||||
// we want to remove this just in case of weird cases.
|
||||
DeleteLocalInt(OBJECT_SELF, NUI_SPELLBOOK_ON_TARGET_IS_PERSONAL_FEAT);
|
||||
}
|
||||
else
|
||||
{
|
||||
// if the spell has a master feat this is it. This will return 0 if not set.
|
||||
int subSpellID = GetLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR);
|
||||
|
||||
// Get the target and location data we are casting at
|
||||
object oTarget = GetLocalObject(OBJECT_SELF, "TARGETING_OBJECT");
|
||||
@ -47,4 +48,7 @@ void main()
|
||||
|
||||
ActionUseFeat(featId, oTarget, subSpellID, spellLocation);
|
||||
}
|
||||
}
|
||||
|
||||
DeleteLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_FEATID_VAR);
|
||||
DeleteLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR);
|
||||
}
|
@ -119,6 +119,21 @@ string GetSpellLevelToolTip(int spellLevel);
|
||||
//
|
||||
json GetSpellIcon(int spellId, int nClass=0);
|
||||
|
||||
//
|
||||
// HighlightButton
|
||||
// Takes NUI Button along with it's width and height and heighlights it with a drawn
|
||||
// colored rectangle to represent it's been selected.
|
||||
//
|
||||
// Arguments:
|
||||
// jButton:json the NUI Button
|
||||
// w:float the width of the button
|
||||
// h:float the height of the button
|
||||
//
|
||||
// Returns:
|
||||
// json the NUI button highlighted
|
||||
//
|
||||
json HighlightButton(json jButton, float w, float h);
|
||||
|
||||
void main()
|
||||
{
|
||||
// look for existing window and destroy
|
||||
@ -187,6 +202,12 @@ void main()
|
||||
{
|
||||
geometry = NuiRect(893.0f,346.0f, 489.0f, 351.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
float x = JsonGetFloat(JsonObjectGet(geometry, "x"));
|
||||
float y = JsonGetFloat(JsonObjectGet(geometry, "y"));
|
||||
geometry = NuiRect(x, y, 489.0f, 351.0f);
|
||||
}
|
||||
|
||||
// Set the binds to their default values
|
||||
NuiSetBind(OBJECT_SELF, nToken, "geometry", geometry);
|
||||
@ -218,11 +239,14 @@ json CreateSpellBookClassButtons()
|
||||
selectedClassId = classId;
|
||||
SetLocalInt(OBJECT_SELF, PRC_SPELLBOOK_SELECTED_CLASSID_VAR, selectedClassId);
|
||||
}
|
||||
|
||||
float width = 32.0f;
|
||||
float height = 32.0f;
|
||||
// Get the class icon from the classes.2da
|
||||
json jClassButton = NuiId(NuiButtonImage(JsonString(Get2DACache("classes", "Icon", classId))), PRC_SPELLBOOK_NUI_CLASS_BUTTON_BASEID + IntToString(classId));
|
||||
jClassButton = NuiWidth(jClassButton, 32.0f);
|
||||
jClassButton = NuiHeight(jClassButton, 32.0f);
|
||||
if (classId == selectedClassId)
|
||||
jClassButton = HighlightButton(jClassButton, width, height);
|
||||
jClassButton = NuiWidth(jClassButton, width);
|
||||
jClassButton = NuiHeight(jClassButton, height);
|
||||
// Get the class name from the classes.2da and set it to the tooltip
|
||||
jClassButton = NuiTooltip(jClassButton, JsonString(GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", classId)))));
|
||||
|
||||
@ -250,6 +274,7 @@ json CreateSpellbookCircleButtons(int nClass)
|
||||
{
|
||||
// get what is the highest circle the class can cast at
|
||||
int currentMaxSpellLevel = GetCurrentSpellLevel(nClass, casterLevel);
|
||||
|
||||
// Get what the max circle the class can reach at is
|
||||
int totalMaxSpellLevel = GetMaxSpellLevel(nClass);
|
||||
|
||||
@ -273,21 +298,21 @@ json CreateSpellbookCircleButtons(int nClass)
|
||||
{
|
||||
json enabled;
|
||||
json jButton = NuiId(NuiButtonImage(JsonString(GetSpellLevelIcon(i))), PRC_SPELLBOOK_NUI_CIRCLE_BUTTON_BASEID + IntToString(i));
|
||||
jButton = NuiWidth(jButton, 42.0f);
|
||||
jButton = NuiHeight(jButton, 42.0f);
|
||||
float width = 42.0f;
|
||||
float height = 42.0f;
|
||||
jButton = NuiWidth(jButton, width);
|
||||
jButton = NuiHeight(jButton, height);
|
||||
jButton = NuiTooltip(jButton, JsonString(GetSpellLevelToolTip(i)));
|
||||
|
||||
// if the current circle is selected or if the person can't cast at
|
||||
// that circle yet then disable the button.
|
||||
if (currentCircle == i || i > currentMaxSpellLevel)
|
||||
{
|
||||
if (i > currentMaxSpellLevel)
|
||||
enabled = JsonBool(FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
enabled = JsonBool(TRUE);
|
||||
}
|
||||
jButton = NuiEnabled(jButton, enabled);
|
||||
if (i == currentCircle)
|
||||
jButton = HighlightButton(jButton, width, height);
|
||||
|
||||
jRow = JsonArrayInsert(jRow, jButton);
|
||||
}
|
||||
@ -480,6 +505,34 @@ json GetSpellIcon(int spellId,int nClass=0)
|
||||
return JsonString(Get2DACache("feat", "Icon", featId));
|
||||
}
|
||||
|
||||
json HighlightButton(json jButton, float w, float h)
|
||||
{
|
||||
json retValue = jButton;
|
||||
|
||||
json jBorders = JsonArray();
|
||||
|
||||
// set the points of the button shape
|
||||
json jPoints = JsonArray();
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(h));
|
||||
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(w));
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(h));
|
||||
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(w));
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
jPoints = JsonArrayInsert(jPoints, JsonFloat(0.0));
|
||||
|
||||
jBorders = JsonArrayInsert(jBorders, NuiDrawListPolyLine(JsonBool(TRUE), NuiColor(71, 140, 32), JsonBool(FALSE), JsonFloat(2.0), jPoints));
|
||||
|
||||
return NuiDrawList(jButton, JsonBool(FALSE), jBorders);
|
||||
}
|
||||
|
||||
string GetSpellLevelIcon(int spellLevel)
|
||||
{
|
||||
switch (spellLevel)
|
||||
@ -516,4 +569,4 @@ string GetSpellLevelToolTip(int spellLevel)
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
}
|
Binary file not shown.
@ -74745,7 +74745,7 @@ Skill Points at Each Additional Level: 4 + Int Modifier
|
||||
Bonus Feats: The epic Slayer of Domiel gains a bonus feat every four levels.
|
||||
|
||||
Special:
|
||||
Death Touch: The epic Slayer of Domiel continues to gain a use of their Death Touch ability every even class level.
|
||||
Death Touch: The epic Slayer of Domiel continues to gain a use of their Death Touch ability every four class levels.
|
||||
Sneak Attack: the epic Slayer of Domiel's sneak attack continues to gain +1d6 damage every odd class level.
|
||||
Spellcasting: The epic Slayer of Domiel continues to increase in divine caster level (and spells known, if applicable).
|
||||
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user