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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** ****
|
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
|
2DA V2.0
|
||||||
|
|
||||||
Bonus
|
Bonus
|
||||||
0 0
|
0 1
|
||||||
1 0
|
1 0
|
||||||
2 0
|
2 0
|
||||||
3 0
|
3 0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
2DA V2.0
|
2DA V2.0
|
||||||
|
|
||||||
Bonus
|
Bonus
|
||||||
0 1
|
0 0
|
||||||
1 0
|
1 0
|
||||||
2 0
|
2 0
|
||||||
3 0
|
3 0
|
||||||
@ -14,50 +14,50 @@
|
|||||||
10 0
|
10 0
|
||||||
11 0
|
11 0
|
||||||
12 0
|
12 0
|
||||||
13 0
|
13 1
|
||||||
14 0
|
14 0
|
||||||
15 0
|
15 0
|
||||||
16 0
|
16 0
|
||||||
17 0
|
17 1
|
||||||
18 0
|
18 0
|
||||||
19 0
|
19 0
|
||||||
20 0
|
20 0
|
||||||
21 0
|
21 1
|
||||||
22 0
|
22 0
|
||||||
23 0
|
23 0
|
||||||
24 0
|
24 0
|
||||||
25 0
|
25 1
|
||||||
26 0
|
26 0
|
||||||
27 0
|
27 0
|
||||||
28 0
|
28 0
|
||||||
29 0
|
29 1
|
||||||
30 0
|
30 0
|
||||||
31 0
|
31 0
|
||||||
32 0
|
32 0
|
||||||
33 0
|
33 1
|
||||||
34 0
|
34 0
|
||||||
35 0
|
35 0
|
||||||
36 0
|
36 0
|
||||||
37 0
|
37 1
|
||||||
38 0
|
38 0
|
||||||
39 0
|
39 0
|
||||||
40 0
|
40 0
|
||||||
41 0
|
41 1
|
||||||
42 0
|
42 0
|
||||||
43 0
|
43 0
|
||||||
44 0
|
44 0
|
||||||
45 0
|
45 1
|
||||||
46 0
|
46 0
|
||||||
47 0
|
47 0
|
||||||
48 0
|
48 0
|
||||||
49 0
|
49 1
|
||||||
50 0
|
50 0
|
||||||
51 0
|
51 0
|
||||||
52 0
|
52 0
|
||||||
53 0
|
53 1
|
||||||
54 0
|
54 0
|
||||||
55 0
|
55 0
|
||||||
56 0
|
56 0
|
||||||
57 0
|
57 1
|
||||||
58 0
|
58 0
|
||||||
59 0
|
59 0
|
||||||
|
@ -1,16 +1,158 @@
|
|||||||
2DA V2.0
|
2DA V2.0
|
||||||
|
|
||||||
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
FeatLabel FeatIndex List GrantedOnLevel OnMenu
|
||||||
0 SlayerOfDomielDeathTouch1 2282 3 1 1
|
0 SlayerOfDomielDeathTouch 2282 3 1 1
|
||||||
1 SlayerOfDomielDeathTouch2 2284 3 3 1
|
1 SlayerOfDomielDivineGrace 2264 3 2 0
|
||||||
2 SlayerOfDomielDeathTouch3 2286 3 8 1
|
2 ImprovedEvasion 212 3 6 0
|
||||||
3 SlayerOfDomielDeathTouch4 2299 3 10 1
|
3 SlayerOfDomielDetectEvil 2461 3 1 1
|
||||||
4 SlayerOfDomielDivineGrace 2264 3 2 0
|
4 EPIC_SLAYER_OF_DOMIEL 25101 3 11 0
|
||||||
5 ImprovedEvasion 212 3 6 0
|
5 FEAT_EPIC_ARMOR_SKIN 490 1 -1 0
|
||||||
6 SlayerOfDomielDetectEvil 2461 3 1 1
|
6 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
|
||||||
7 FEAT_DRAGONFIRE_STRIKE 3949 0 -1 1
|
7 FEAT_EPIC_PROWESS 584 1 -1 0
|
||||||
8 SuddenEmpower 2830 0 -1 1
|
8 FEAT_EPIC_WEAPON_FOCUS_CLUB 619 1 -1 0
|
||||||
9 SuddenExtend 2831 0 -1 1
|
9 FEAT_EPIC_WEAPON_FOCUS_DAGGER 620 1 -1 0
|
||||||
10 SuddenMaximize 2832 0 -1 1
|
10 FEAT_EPIC_WEAPON_FOCUS_DART 621 1 -1 0
|
||||||
11 SuddenWiden 2833 0 -1 1
|
11 FEAT_EPIC_WEAPON_FOCUS_HEAVYCROSSBOW 622 1 -1 0
|
||||||
12 FEAT_ESCHEW_MATERIALS 2596 0 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
|
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
|
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
|
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
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2770 2346 **** 11 **** 1 **** **** **** **** **** **** **** **** **** FEAT_AURA_OF_FEAR **** **** **** **** **** **** **** 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2769 2349 **** 11 **** **** **** **** **** **** **** **** **** **** **** FEAT_CRUELEST_CUT **** **** **** **** **** **** **** 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 2771 2391 **** 9 **** **** **** **** **** **** **** **** **** **** **** FEAT_VISAGE_OF_TERROR **** **** **** **** **** **** **** 1
|
2345 FEAT_VISAGE_OF_TERROR 16826166 16826167 ife_x2mightrage **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** 2771 **** **** 9 **** **** **** **** **** **** **** **** **** **** **** FEAT_VISAGE_OF_TERROR 1 **** **** **** **** **** 0 1
|
||||||
2346 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
2346 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||||
2347 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
2347 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1
|
||||||
2348 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
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_STRENGTH_OF_WILL = 23527;
|
||||||
const int FEAT_ED_WILD_FRENZY = 23528;
|
const int FEAT_ED_WILD_FRENZY = 23528;
|
||||||
|
|
||||||
|
//:: Slayer of Domiel
|
||||||
|
const int FEAT_SOD_DEATH_TOUCH = 2282;
|
||||||
|
|
||||||
//Passive Feats
|
//Passive Feats
|
||||||
const int FEAT_ETERNAL_FREEDOM = 4298;
|
const int FEAT_ETERNAL_FREEDOM = 4298;
|
||||||
const int FEAT_INTUITIVE_ATTACK = 3166;
|
const int FEAT_INTUITIVE_ATTACK = 3166;
|
||||||
|
@ -2166,6 +2166,7 @@ void FeatSpecialUsePerDay(object oPC)
|
|||||||
FeatUsePerDay(oPC, FEAT_LIPS_RAPTUR);
|
FeatUsePerDay(oPC, FEAT_LIPS_RAPTUR);
|
||||||
FeatUsePerDay(oPC, FEAT_COMMAND_SPIDERS, ABILITY_CHARISMA, 3);
|
FeatUsePerDay(oPC, FEAT_COMMAND_SPIDERS, ABILITY_CHARISMA, 3);
|
||||||
FeatUsePerDay(oPC, FEAT_FM_FOREST_DOMINION, 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);
|
FeatDiabolist(oPC);
|
||||||
FeatAlaghar(oPC);
|
FeatAlaghar(oPC);
|
||||||
ShadowShieldUses(oPC);
|
ShadowShieldUses(oPC);
|
||||||
|
@ -263,6 +263,7 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
// without stacking.
|
// without stacking.
|
||||||
if (iShou > 0) iShouDamage = iShou + 2; // Lv. 1: 1d6, Lv. 2: 1d8, Lv. 3: 1d10
|
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
|
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
|
// Frostrager does not stack with other damage types
|
||||||
if (iFrost > 0) iFrostDamage = IP_CONST_MONSTERDAMAGE_1d6; // Lv. 1: 1d6
|
if (iFrost > 0) iFrostDamage = IP_CONST_MONSTERDAMAGE_1d6; // Lv. 1: 1d6
|
||||||
@ -327,10 +328,15 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
iFrostDamage += iDieIncrease;
|
iFrostDamage += iDieIncrease;
|
||||||
iSUSDamage += 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
|
// now, read the damage from the table in unarmed_dmg.2da
|
||||||
iMonkDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage));
|
iMonkDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage));
|
||||||
iShouDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iShouDamage));
|
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:
|
// Medium+ monks have some special values on the table in 3.0:
|
||||||
if (iSize >= 5 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
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
|
// ToB doesn't have a concept of spell levels, but still match up to it
|
||||||
if(nClass == CLASS_TYPE_WARBLADE
|
if(nClass == CLASS_TYPE_WARBLADE
|
||||||
|| nClass == CLASS_TYPE_SWORDSAGE
|
|| nClass == CLASS_TYPE_SWORDSAGE
|
||||||
|| nClass == CLASS_TYPE_CRUSADER)
|
|| nClass == CLASS_TYPE_CRUSADER
|
||||||
|
|| nClass == CLASS_TYPE_SHADOWCASTER)
|
||||||
{
|
{
|
||||||
return 9;
|
return 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Binders don't really have a concept of spell level
|
// Binders don't really have a concept of spell level
|
||||||
if (nClass == CLASS_TYPE_BINDER
|
if (nClass == CLASS_TYPE_BINDER
|
||||||
|| nClass == CLASS_TYPE_DRAGON_SHAMAN)
|
|| nClass == CLASS_TYPE_DRAGON_SHAMAN) // they can only reach 1st circle
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
//Shadowsmith has no concept of spell levels
|
//Shadowsmith has no concept of spell levels
|
||||||
if (nClass == CLASS_TYPE_SHADOWSMITH)
|
if (nClass == CLASS_TYPE_SHADOWSMITH)
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
//Shadowcaster has no concept of spell levels
|
|
||||||
if (nClass == CLASS_TYPE_SHADOWCASTER)
|
|
||||||
return 9;
|
|
||||||
|
|
||||||
if (nClass == CLASS_TYPE_WARLOCK
|
if (nClass == CLASS_TYPE_WARLOCK
|
||||||
|| nClass == CLASS_TYPE_DRAGONFIRE_ADEPT)
|
|| nClass == CLASS_TYPE_DRAGONFIRE_ADEPT)
|
||||||
return 4;
|
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
|
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
|
//Psionics have MaxPowerLevel as their column name
|
||||||
string columnName = "MaxPowerLevel";
|
string columnName = "MaxPowerLevel";
|
||||||
|
|
||||||
@ -601,21 +613,6 @@ int GetCurrentSpellLevel(int nClass, int nLevel)
|
|||||||
|
|
||||||
int GetMinSpellLevel(int nClass)
|
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
|
// again sponts have their own function
|
||||||
if(GetSpellbookTypeForClass(nClass) == SPELLBOOK_TYPE_SPONTANEOUS
|
if(GetSpellbookTypeForClass(nClass) == SPELLBOOK_TYPE_SPONTANEOUS
|
||||||
|| nClass == CLASS_TYPE_ARCHIVIST)
|
|| nClass == CLASS_TYPE_ARCHIVIST)
|
||||||
@ -624,6 +621,23 @@ int GetMinSpellLevel(int nClass)
|
|||||||
}
|
}
|
||||||
else
|
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);
|
return GetCurrentSpellLevel(nClass, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -631,6 +645,16 @@ int GetMinSpellLevel(int nClass)
|
|||||||
|
|
||||||
int GetMaxSpellLevel(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));
|
return GetCurrentSpellLevel(nClass, GetHighestLevelPossibleInClass(nClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1660,7 +1660,7 @@ int BardSorcPrCCheck(object oCaster, int nCastingClass, object oSpellCastItem)
|
|||||||
{
|
{
|
||||||
if (CheckSecondaryPrC(oCaster) == TRUE)
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
//no need to check further if new spellbooks are disabled
|
//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 (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);
|
FloatingTextStringOnCreature("You must use the new spellbook on the class radial.", oCaster, FALSE);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -181,6 +181,8 @@ void main()
|
|||||||
else AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", i))), i, oMeldshaper);
|
else AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", i))), i, oMeldshaper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransferTempList(oMeldshaper);
|
||||||
}
|
}
|
||||||
else if(nStage == STAGE_SELECT_ESSENTIA_POWER)
|
else if(nStage == STAGE_SELECT_ESSENTIA_POWER)
|
||||||
{
|
{
|
||||||
|
@ -77,7 +77,8 @@ void main()
|
|||||||
// No hitting yourself or your friends
|
// No hitting yourself or your friends
|
||||||
if(GetIsEnemy(oAreaTarget, oInitiator))
|
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, ClearAllActions(TRUE));
|
||||||
AssignCommand(oInitiator, JumpToLocation(GetLocation(oAreaTarget)));
|
AssignCommand(oInitiator, JumpToLocation(GetLocation(oAreaTarget)));
|
||||||
nBonus = (FloatToInt(fDist) / 5) * 2; // Bonus is +2 for every 5 feet moved
|
nBonus = (FloatToInt(fDist) / 5) * 2; // Bonus is +2 for every 5 feet moved
|
||||||
|
@ -179,9 +179,9 @@ void main()
|
|||||||
if (masterSpellId)
|
if (masterSpellId)
|
||||||
{
|
{
|
||||||
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR, spellId);
|
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR, spellId);
|
||||||
spellId = masterSpellId;
|
featId = StringToInt(Get2DACache("spells", "FeatID", masterSpellId));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
featId = StringToInt(Get2DACache("spells", "FeatID", spellId));
|
featId = StringToInt(Get2DACache("spells", "FeatID", spellId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -193,11 +193,13 @@ void main()
|
|||||||
if (nButton == NUI_PAYLOAD_BUTTON_RIGHT_CLICK)
|
if (nButton == NUI_PAYLOAD_BUTTON_RIGHT_CLICK)
|
||||||
{
|
{
|
||||||
CreateSpellDescriptionNUI(oPlayer, featId, spellId, realSpellId);
|
CreateSpellDescriptionNUI(oPlayer, featId, spellId, realSpellId);
|
||||||
|
DeleteLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_SUBSPELL_SPELLID_VAR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// If left click, operate normally
|
// If left click, operate normally
|
||||||
if (nButton == NUI_PAYLOAD_BUTTON_LEFT_CLICK)
|
if (nButton == NUI_PAYLOAD_BUTTON_LEFT_CLICK)
|
||||||
{
|
{
|
||||||
|
|
||||||
// We use the spell's FeatID to do actions, and we set the OnTarget action
|
// 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
|
// to PRC_NUI_SPELLBOOK so the handler knows what the action is being done
|
||||||
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_FEATID_VAR, featId);
|
SetLocalInt(oPlayer, NUI_SPELLBOOK_SELECTED_FEATID_VAR, featId);
|
||||||
|
@ -19,20 +19,21 @@ void main()
|
|||||||
// Get the selected PRC spell we are going to cast
|
// Get the selected PRC spell we are going to cast
|
||||||
int featId = GetLocalInt(OBJECT_SELF, NUI_SPELLBOOK_SELECTED_FEATID_VAR);
|
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);
|
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
|
// 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.
|
// targetting and this should be applied immediatly to the executing player.
|
||||||
if (isPersonalFeat)
|
if (isPersonalFeat)
|
||||||
{
|
{
|
||||||
ActionUseFeat(featId);
|
ActionUseFeat(featId, OBJECT_SELF, subSpellID);
|
||||||
// we want to remove this just in case of weird cases.
|
// we want to remove this just in case of weird cases.
|
||||||
DeleteLocalInt(OBJECT_SELF, NUI_SPELLBOOK_ON_TARGET_IS_PERSONAL_FEAT);
|
DeleteLocalInt(OBJECT_SELF, NUI_SPELLBOOK_ON_TARGET_IS_PERSONAL_FEAT);
|
||||||
}
|
}
|
||||||
else
|
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
|
// Get the target and location data we are casting at
|
||||||
object oTarget = GetLocalObject(OBJECT_SELF, "TARGETING_OBJECT");
|
object oTarget = GetLocalObject(OBJECT_SELF, "TARGETING_OBJECT");
|
||||||
@ -47,4 +48,7 @@ void main()
|
|||||||
|
|
||||||
ActionUseFeat(featId, oTarget, subSpellID, spellLocation);
|
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);
|
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()
|
void main()
|
||||||
{
|
{
|
||||||
// look for existing window and destroy
|
// look for existing window and destroy
|
||||||
@ -187,6 +202,12 @@ void main()
|
|||||||
{
|
{
|
||||||
geometry = NuiRect(893.0f,346.0f, 489.0f, 351.0f);
|
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
|
// Set the binds to their default values
|
||||||
NuiSetBind(OBJECT_SELF, nToken, "geometry", geometry);
|
NuiSetBind(OBJECT_SELF, nToken, "geometry", geometry);
|
||||||
@ -218,11 +239,14 @@ json CreateSpellBookClassButtons()
|
|||||||
selectedClassId = classId;
|
selectedClassId = classId;
|
||||||
SetLocalInt(OBJECT_SELF, PRC_SPELLBOOK_SELECTED_CLASSID_VAR, selectedClassId);
|
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
|
// 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));
|
json jClassButton = NuiId(NuiButtonImage(JsonString(Get2DACache("classes", "Icon", classId))), PRC_SPELLBOOK_NUI_CLASS_BUTTON_BASEID + IntToString(classId));
|
||||||
jClassButton = NuiWidth(jClassButton, 32.0f);
|
if (classId == selectedClassId)
|
||||||
jClassButton = NuiHeight(jClassButton, 32.0f);
|
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
|
// Get the class name from the classes.2da and set it to the tooltip
|
||||||
jClassButton = NuiTooltip(jClassButton, JsonString(GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", classId)))));
|
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
|
// get what is the highest circle the class can cast at
|
||||||
int currentMaxSpellLevel = GetCurrentSpellLevel(nClass, casterLevel);
|
int currentMaxSpellLevel = GetCurrentSpellLevel(nClass, casterLevel);
|
||||||
|
|
||||||
// Get what the max circle the class can reach at is
|
// Get what the max circle the class can reach at is
|
||||||
int totalMaxSpellLevel = GetMaxSpellLevel(nClass);
|
int totalMaxSpellLevel = GetMaxSpellLevel(nClass);
|
||||||
|
|
||||||
@ -273,21 +298,21 @@ json CreateSpellbookCircleButtons(int nClass)
|
|||||||
{
|
{
|
||||||
json enabled;
|
json enabled;
|
||||||
json jButton = NuiId(NuiButtonImage(JsonString(GetSpellLevelIcon(i))), PRC_SPELLBOOK_NUI_CIRCLE_BUTTON_BASEID + IntToString(i));
|
json jButton = NuiId(NuiButtonImage(JsonString(GetSpellLevelIcon(i))), PRC_SPELLBOOK_NUI_CIRCLE_BUTTON_BASEID + IntToString(i));
|
||||||
jButton = NuiWidth(jButton, 42.0f);
|
float width = 42.0f;
|
||||||
jButton = NuiHeight(jButton, 42.0f);
|
float height = 42.0f;
|
||||||
|
jButton = NuiWidth(jButton, width);
|
||||||
|
jButton = NuiHeight(jButton, height);
|
||||||
jButton = NuiTooltip(jButton, JsonString(GetSpellLevelToolTip(i)));
|
jButton = NuiTooltip(jButton, JsonString(GetSpellLevelToolTip(i)));
|
||||||
|
|
||||||
// if the current circle is selected or if the person can't cast at
|
// if the current circle is selected or if the person can't cast at
|
||||||
// that circle yet then disable the button.
|
// that circle yet then disable the button.
|
||||||
if (currentCircle == i || i > currentMaxSpellLevel)
|
if (i > currentMaxSpellLevel)
|
||||||
{
|
|
||||||
enabled = JsonBool(FALSE);
|
enabled = JsonBool(FALSE);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
enabled = JsonBool(TRUE);
|
enabled = JsonBool(TRUE);
|
||||||
}
|
|
||||||
jButton = NuiEnabled(jButton, enabled);
|
jButton = NuiEnabled(jButton, enabled);
|
||||||
|
if (i == currentCircle)
|
||||||
|
jButton = HighlightButton(jButton, width, height);
|
||||||
|
|
||||||
jRow = JsonArrayInsert(jRow, jButton);
|
jRow = JsonArrayInsert(jRow, jButton);
|
||||||
}
|
}
|
||||||
@ -480,6 +505,34 @@ json GetSpellIcon(int spellId,int nClass=0)
|
|||||||
return JsonString(Get2DACache("feat", "Icon", featId));
|
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)
|
string GetSpellLevelIcon(int spellLevel)
|
||||||
{
|
{
|
||||||
switch (spellLevel)
|
switch (spellLevel)
|
||||||
|
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.
|
Bonus Feats: The epic Slayer of Domiel gains a bonus feat every four levels.
|
||||||
|
|
||||||
Special:
|
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.
|
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).
|
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