Fixed Abjurant Champion marker feat issue

Fixed Abjurant Champion marker feat issue.  Fixed icons for Necropolitan & Corrupt Spell Focus.  Updated Saint's ability to only allow living saints.  Tweaked Heavy Pick & Falchion icon sizes.  Updated release archive.
This commit is contained in:
Jaysyn904 2024-03-15 09:33:09 -04:00
parent 680acc6248
commit 759cd7a242
9 changed files with 463 additions and 549 deletions

1
.gitignore vendored
View File

@ -19,3 +19,4 @@ trunk/compileepic.bat
*.erf *.erf
*.log *.log
nwn/nwnprc/trunk/makefile.temp nwn/nwnprc/trunk/makefile.temp
nwn/nwnprc/trunk/makefile.temp

BIN
Release/PRC8_20240315.7z Normal file

Binary file not shown.

View File

@ -116,15 +116,15 @@
112 83664 craftbase 2 2 0x00000 0 0 it_midmisc 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 83698 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** **** 112 83664 craftbase 2 2 0x00000 0 0 it_midmisc 0 1 1 1 it_bag iinvalid_2x2 0 1 0 **** **** **** 0 255 **** **** **** **** 16 0 1 1 83698 29 8 0 15 4 **** **** **** **** **** **** 0 0 5449 0 0 5 **** **** 1 **** **** **** **** 0 1 **** **** **** **** **** **** **** **** **** ****
113 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 113 **** padding **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
114 **** START_NWNEE_WPN_FEATS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 114 **** START_NWNEE_WPN_FEATS **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
115 67252 heavypick 2 3 0x1c030 1 2 wblph 0 1 1 1 it_bag iwblph 0 **** 1 3 **** 1.4 10 255 1 6 1 4 1 8 1 2 16807222 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807223 0 1 60 17 **** **** **** 100 100 0 73 1 24602 24614 24626 24638 24650 24662 24674 24686 **** **** 115 67252 heavypick 2 4 0x1c030 1 2 wblph 0 1 1 1 it_bag iwblph 0 **** 1 3 **** 1.4 10 255 1 6 1 4 1 8 1 2 16807222 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807223 0 1 60 17 **** **** **** 100 100 0 73 1 24602 24614 24626 24638 24650 24662 24674 24686 **** ****
116 67256 lightpick 1 2 0x1c030 1 2 wblpl 0 1 1 1 it_bag iwblpl 0 **** 1 2 **** 1.1 10 255 1 4 1 4 1 4 1 2 16807225 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807226 0 1 40 2 **** **** **** 100 100 0 27 1 24603 24615 24627 24639 24651 24663 24675 24687 **** 2 116 67256 lightpick 1 2 0x1c030 1 2 wblpl 0 1 1 1 it_bag iwblpl 0 **** 1 2 **** 1.1 10 255 1 4 1 4 1 4 1 2 16807225 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807226 0 1 40 2 **** **** **** 100 100 0 27 1 24603 24615 24627 24639 24651 24663 24675 24687 **** 2
117 16807227 sai 1 1 0x1C030 0 2 wswsi 0 1 1 1 it_bag iwswsi 0 **** 2 1 **** 1.1 10 255 1 4 2 2 1 3 1 2 16807228 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807229 0 1 10 18 **** **** **** 100 100 0 9 1 24604 24616 24628 24640 24652 24664 24676 24688 1 2 117 16807227 sai 1 1 0x1C030 0 2 wswsi 0 1 1 1 it_bag iwswsi 0 **** 2 1 **** 1.1 10 255 1 4 2 2 1 3 1 2 16807228 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807229 0 1 10 18 **** **** **** 100 100 0 9 1 24604 24616 24628 24640 24652 24664 24676 24688 1 2
118 16807230 nunchaku 1 3 0x1C030 1 2 wblnn 0 1 1 1 it_bag iwblnn 0 **** 2 2 **** 1.4 10 255 1 6 1 2 1 2 1 2 16807231 12 8 0 0 1 **** **** **** **** **** 4 0 0 16807232 0 1 20 3 **** **** **** 100 100 0 74 1 24605 24617 24629 24641 24653 24665 24677 24689 1 2 118 16807230 nunchaku 1 3 0x1C030 1 2 wblnn 0 1 1 1 it_bag iwblnn 0 **** 2 2 **** 1.4 10 255 1 6 1 2 1 2 1 2 16807231 12 8 0 0 1 **** **** **** **** **** 4 0 0 16807232 0 1 20 3 **** **** **** 100 100 0 74 1 24605 24617 24629 24641 24653 24665 24677 24689 1 2
119 16807233 falchion 2 4 0x1C030 1 2 wswfa 0 1 1 1 it_bag iwswfa 0 **** 3 3 **** 1.6 10 255 2 4 3 2 1 75 1 2 16807234 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807235 0 1 80 11 **** **** **** 100 100 0 99 1 24606 24618 24630 24642 24654 24666 24678 24690 **** **** 119 16807233 falchion 2 5 0x1C030 1 2 wswfa 0 1 1 1 it_bag iwswfa 0 **** 3 3 **** 1.6 10 255 2 4 3 2 1 75 1 2 16807234 9 8 0 0 1 **** **** **** **** **** 4 0 0 16807235 0 1 80 11 **** **** **** 100 100 0 99 1 24606 24618 24630 24642 24654 24666 24678 24690 **** ****
120 16807242 sap 1 1 0x1C030 1 2 wspsp 0 0 0 0 it_bag iwspsp 0 **** 2 2 **** 1.2 10 255 1 6 1 2 1 1 1 2 16807243 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807244 0 1 20 2 **** **** **** 100 100 0 44 1 24607 24619 24631 24643 24655 24667 24679 24691 **** 1 120 16807242 sap 1 1 0x1C030 1 2 wspsp 0 0 0 0 it_bag iwspsp 0 **** 2 2 **** 1.2 10 255 1 6 1 2 1 1 1 2 16807243 13 8 0 0 1 **** **** **** **** **** 4 0 0 16807244 0 1 20 2 **** **** **** 100 100 0 44 1 24607 24619 24631 24643 24655 24667 24679 24691 **** 1
121 16807248 katar 1 1 0x1C030 1 2 wswdp 0 1 1 1 it_bag iwswdp 0 **** 1 1 **** 1.1 10 255 1 4 1 3 1 2 1 2 16807249 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807250 0 1 10 11 **** **** **** 50 50 50 77 1 24608 24620 24632 24644 24656 24668 24680 24692 **** 1 121 16807248 katar 1 1 0x1C030 1 2 wswdp 0 1 1 1 it_bag iwswdp 0 **** 1 1 **** 1.1 10 255 1 4 1 3 1 2 1 2 16807249 7 8 0 0 1 **** **** **** **** **** 4 0 0 16807250 0 1 10 11 **** **** **** 50 50 50 77 1 24608 24620 24632 24644 24656 24668 24680 24692 **** 1
122 16807269 heavy_mace 1 3 0x1C030 1 2 wxblmh 0 1 1 1 it_bag iwxblmh 0 **** 2 3 **** 1.2 10 255 1 8 1 2 1 6 1 2 16807270 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807271 0 1 80 2 **** **** **** 100 100 0 99 1 24609 24621 24633 24645 24657 24669 24681 24693 **** **** 122 16807269 heavy_mace 1 3 0x1C030 1 2 wxblmh 0 1 1 1 it_bag iwxblmh 0 **** 2 3 **** 1.2 10 255 1 8 1 2 1 6 1 2 16807270 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807271 0 1 80 2 **** **** **** 100 100 0 99 1 24609 24621 24633 24645 24657 24669 24681 24693 **** ****
123 16807272 maul 2 4 0x1C030 1 2 wxblma 0 1 1 1 it_bag iwxblma 0 **** 2 3 **** 1.2 10 255 1 10 1 3 1 8 1 2 16807273 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807274 0 1 200 12 **** **** **** 100 100 0 99 1 24610 24622 24634 24646 24658 24670 24682 24694 **** **** 123 16807272 maul 2 5 0x1C030 1 2 wxblma 0 1 1 1 it_bag iwxblma 0 **** 2 3 **** 1.2 10 255 1 10 1 3 1 8 1 2 16807273 14 8 0 0 1 **** **** **** **** **** 4 0 0 16807274 0 1 200 12 **** **** **** 100 100 0 99 1 24610 24622 24634 24646 24658 24670 24682 24694 **** ****
124 16807275 scimitar_double 2 5 0x1c010 1 2 wxdbsc 0 1 1 1 it_bag iwxdbsc 0 8 3 4 **** 1.5 10 255 1 6 3 2 1 63 1 2 16807276 10 8 0 0 1 **** **** **** **** **** 4 0 0 16807277 0 1 150 11 **** **** **** 50 50 50 99 1 24611 24623 24635 24647 24659 24671 24683 24695 **** **** 124 16807275 scimitar_double 2 5 0x1c010 1 2 wxdbsc 0 1 1 1 it_bag iwxdbsc 0 8 3 4 **** 1.5 10 255 1 6 3 2 1 63 1 2 16807276 10 8 0 0 1 **** **** **** **** **** 4 0 0 16807277 0 1 150 11 **** **** **** 50 50 50 99 1 24611 24623 24635 24647 24659 24671 24683 24695 **** ****
125 16807284 goad 1 2 0x1C030 0 2 wspgd 0 1 1 1 it_bag iwspgd 0 **** 1 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 16807285 8 8 0 0 1 **** **** **** **** **** 4 0 0 16807286 0 1 30 18 **** **** **** 35 35 65 22 1 24612 24624 24636 24348 24660 24672 24684 24596 **** 2 125 16807284 goad 1 2 0x1C030 0 2 wspgd 0 1 1 1 it_bag iwspgd 0 **** 1 2 **** 1.1 10 255 1 6 1 2 1 6 1 2 16807285 8 8 0 0 1 **** **** **** **** **** 4 0 0 16807286 0 1 30 18 **** **** **** 35 35 65 22 1 24612 24624 24636 24348 24660 24672 24684 24596 **** 2
126 16793718 eagleclaw 1 2 0x1C030 1 2 wswec 0 1 1 1 it_bag iwswec 0 **** 4 2 **** 1.2 10 255 1 6 3 2 1 20 1 2 16793719 8 8 0 0 1 **** **** **** **** **** 4 0 0 16793720 0 1 20 1 **** **** **** 35 35 65 19 1 24721 24722 24723 24724 24725 24726 24727 24728 **** 2 126 16793718 eagleclaw 1 2 0x1C030 1 2 wswec 0 1 1 1 it_bag iwswec 0 **** 4 2 **** 1.2 10 255 1 6 3 2 1 20 1 2 16793719 8 8 0 0 1 **** **** **** **** **** 4 0 0 16793720 0 1 20 1 **** **** **** 35 35 65 19 1 24721 24722 24723 24724 24725 24726 24727 24728 **** 2

View File

@ -5273,7 +5273,7 @@
5269 HauntingMelody 16835021 16835022 is_X1Dirge **** **** **** **** **** **** **** **** 257 **** 0 0 1 **** **** 2722 **** 0.5 -1 **** **** **** **** **** **** **** 11 9 **** **** FEAT_HEX_SWIFT 5 0 **** **** **** **** 0 1 5269 HauntingMelody 16835021 16835022 is_X1Dirge **** **** **** **** **** **** **** **** 257 **** 0 0 1 **** **** 2722 **** 0.5 -1 **** **** **** **** **** **** **** 11 9 **** **** FEAT_HEX_SWIFT 5 0 **** **** **** **** 0 1
5270 Deformity_Skin 16835033 16835034 ife_X2ArSkin **** **** **** **** **** **** **** **** 4408 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5270 Deformity_Skin 16835033 16835034 ife_X2ArSkin **** **** **** **** **** **** **** **** 4408 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
5271 GreaterCorruptSpellFocus 16835019 16835020 tg_hungryskull **** **** **** **** **** **** **** **** 5272 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5271 GreaterCorruptSpellFocus 16835019 16835020 tg_hungryskull **** **** **** **** **** **** **** **** 5272 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
5272 CorruptSpellFocus 16835017 16835018 tg_necro **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5272 CorruptSpellFocus 16835017 16835018 tg_bigskull **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
5273 ShieldWall 16835015 16835016 ife_x3_pdkhshld **** **** **** **** **** **** **** **** 32 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5273 ShieldWall 16835015 16835016 ife_x3_pdkhshld **** **** **** **** **** **** **** **** 32 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
5274 GreatDiplomat 16835013 16835014 ife_X2EpicRepu **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5274 GreatDiplomat 16835013 16835014 ife_X2EpicRepu **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
5275 Ecclesiarch 16835011 16835012 ife_X2EpicRepu **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 7 6 **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1 5275 Ecclesiarch 16835011 16835012 ife_X2EpicRepu **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** 7 6 **** **** FEAT_BLADE_MEDITATION **** **** **** **** **** **** **** 1
@ -18095,13 +18095,12 @@
18091 FEAT_OLLAM_MYSTERY_SHADOWSMITH 16852657 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_OLLAM_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0 18091 FEAT_OLLAM_MYSTERY_SHADOWSMITH 16852657 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_OLLAM_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0
18092 FEAT_TIAMAT_MYSTERY_SHADOWSMITH 16852658 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TIAMAT_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0 18092 FEAT_TIAMAT_MYSTERY_SHADOWSMITH 16852658 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TIAMAT_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0
18093 FEAT_ORCUS_MYSTERY_SHADOWSMITH 16852659 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ORCUS_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0 18093 FEAT_ORCUS_MYSTERY_SHADOWSMITH 16852659 16852688 IR_TEMPUS **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ORCUS_MYSTERY_SHADOWSMITH 6 0 1 98 **** **** 0 0
18094 FEAT_ALIEN_NONE 16852660 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ALIEN_NONE 6 0 1 **** **** **** 0 0 18094 FEAT_ALIENIST_NONE 16852660 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ALIEN_NONE 6 0 1 **** **** **** 0 0
18095 FEAT_DRAGONSONG_NONE 16852661 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DRAGONSONG_NONE 6 0 1 **** **** **** 0 0 18095 FEAT_DRAGONSONG_NONE 16852661 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_DRAGONSONG_NONE 6 0 1 **** **** **** 0 0
18096 FEAT_ESAVANT_NONE 16852662 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ESAVANT_NONE 6 0 1 **** **** **** 0 0 18096 FEAT_ESAVANT_NONE 16852662 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ESAVANT_NONE 6 0 1 **** **** **** 0 0
18097 FEAT_MYSTICTHEURGE_NONE 16852663 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MYSTICTHEURGE_NONE 6 0 1 **** **** **** 0 0 18097 FEAT_MYSTICTHEURGE_NONE 16852663 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_MYSTICTHEURGE_NONE 6 0 1 **** **** **** 0 0
18098 FEAT_OLLAM_NONE 16852664 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_OLLAM_NONE 6 0 1 **** **** **** 0 0 18098 FEAT_OLLAM_NONE 16852664 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_OLLAM_NONE 6 0 1 **** **** **** 0 0
18099 FEAT_ORCUS_NONE 16852665 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ORCUS_NONE 6 0 1 **** **** **** 0 0 18099 FEAT_ORCUS_NONE 16852665 16852689 IR_NOPE **** **** **** **** **** **** **** **** **** **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_ORCUS_NONE 6 0 1 **** **** **** 0 0
18100 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
18101 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 18101 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
18102 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 18102 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
18103 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 18103 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@ -22624,7 +22623,7 @@
22620 Half_Celestial_Resurrection 903 6247 is_Resurrec **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 16322 **** 1 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_RESURRECTION 5 0 **** **** **** **** 0 0 22620 Half_Celestial_Resurrection 903 6247 is_Resurrec **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 16322 **** 1 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_RESURRECTION 5 0 **** **** **** **** 0 0
22621 Half_Celestial_Daylight 16832214 16832215 is_dawn **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 16323 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_DAYLIGHT **** **** **** **** **** **** **** 0 22621 Half_Celestial_Daylight 16832214 16832215 is_dawn **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 16323 **** **** **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_DAYLIGHT **** **** **** **** **** **** **** 0
22622 Half_Celestial_Marker 16847224 16847225 **** **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_MARKER 5 0 **** **** **** **** 0 1 22622 Half_Celestial_Marker 16847224 16847225 **** **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_CELESTIAL_MARKER 5 0 **** **** **** **** 0 1
22623 Necropolitan_Marker 16847637 16847638 **** **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_NECROPOLITAN_MARKER 5 0 **** **** **** **** 0 1 22623 Necropolitan_Marker 16847637 16847638 tg_bigskull **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_NECROPOLITAN_MARKER 5 0 **** **** **** **** 0 1
22624 Half_Fiendish_Smite_Good 3779 16847221 ife_X1SmGood **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 16324 **** 1 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_FIENDISH_SMITE_EVIL 5 1 **** **** **** **** 0 1 22624 Half_Fiendish_Smite_Good 3779 16847221 ife_X1SmGood **** **** **** **** **** **** **** **** **** **** 0 0 0 22 1 16324 **** 1 1 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_FIENDISH_SMITE_EVIL 5 1 **** **** **** **** 0 1
22625 Half_Fiendish_Darkness 786 6132 is_Darkness **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 16325 **** 1 3 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_FIENDISH_DARKNESS 5 0 **** **** **** **** 0 0 22625 Half_Fiendish_Darkness 786 6132 is_Darkness **** **** **** **** **** **** **** **** **** **** 0 0 0 **** 1 16325 **** 1 3 **** **** **** **** **** **** **** **** **** **** **** FEAT_TEMPLATE_HALF_FIENDISH_DARKNESS 5 0 **** **** **** **** 0 0
22626 Half_Fiendish_Desecrate **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0 22626 Half_Fiendish_Desecrate **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 0

View File

@ -4280,28 +4280,29 @@ const int FEAT_TIAMAT_MYSTERY_SHADOWSMITH = 18092;
const int FEAT_ORCUS_MYSTERY_SHADOWSMITH = 18093; const int FEAT_ORCUS_MYSTERY_SHADOWSMITH = 18093;
//:: None marker feats //:: None marker feats
const int FEAT_ABCHAMP_NONE = 18034; const int FEAT_ABCHAMP_NONE = 18036;
const int FEAT_AOTS_NONE = 18035; const int FEAT_AOTS_NONE = 18037;
const int FEAT_ANIMA_NONE = 18036; const int FEAT_ANIMA_NONE = 18038;
const int FEAT_ARCTRICK_NONE = 18037; const int FEAT_ARCTRICK_NONE = 18039;
const int FEAT_BLDMAGUS_NONE = 18038; const int FEAT_BLDMAGUS_NONE = 18040;
const int FEAT_ASMODEUS_NONE = 18039; const int FEAT_ASMODEUS_NONE = 18041;
const int FEAT_ENLIGHTENEDFIST_NONE = 18040; const int FEAT_ENLIGHTENEDFIST_NONE = 18042;
const int FEAT_MAESTER_NONE = 18041; const int FEAT_MAESTER_NONE = 18043;
const int FEAT_TIAMAT_NONE = 18042; const int FEAT_TIAMAT_NONE = 18044;
const int FEAT_UNSEEN_NONE = 18043; const int FEAT_UNSEEN_NONE = 18045;
const int FEAT_VIRTUOSO_NONE = 18044; const int FEAT_VIRTUOSO_NONE = 18046;
const int FEAT_WILDMAGE_NONE = 18045; const int FEAT_WILDMAGE_NONE = 18047;
const int FEAT_ALIENIST_NONE = 18094;
const int FEAT_DRAGONSONG_NONE = 18095;
const int FEAT_ESAVANT_NONE = 18096;
const int FEAT_MYSTICTHEURGE_NONE = 18097;
const int FEAT_OLLAM_NONE = 18098;
const int FEAT_ORCUS_NONE = 18099;
const int FEAT_SANCTIFIED_MIND_MANIFEST_NONE = 18173;
const int FEAT_SOULCASTER_MANIFEST_NONE = 18174;
const int FEAT_ALIENIST_NONE = 18095;
const int FEAT_CHILDNIGHT_NONE = 18096;
const int FEAT_DRAGONSONG_NONE = 18097;
const int FEAT_ESAVANT_NONE = 18098;
const int FEAT_MASTERSHADOW_NONE = 18099;
const int FEAT_MYSTICTHEURGE_NONE = 18100;
const int FEAT_NOCTUMANCER_NONE = 18101;
const int FEAT_OLLAM_NONE = 18102;
const int FEAT_ORCUS_NONE = 18103;
//:: Fist of Zuoken marker feats //:: Fist of Zuoken marker feats
const int FEAT_CEREBREMANCER_MANIFEST_FOZ = 18130; const int FEAT_CEREBREMANCER_MANIFEST_FOZ = 18130;
@ -4357,10 +4358,3 @@ const int FEAT_PSYCHIC_THEURGE_MANIFEST_WILDER = 18169;
const int FEAT_SANCTIFIED_MIND_MANIFEST_WILDER = 18170; const int FEAT_SANCTIFIED_MIND_MANIFEST_WILDER = 18170;
const int FEAT_SHADOWMIND_MANIFEST_WILDER = 18171; const int FEAT_SHADOWMIND_MANIFEST_WILDER = 18171;
const int FEAT_SOULCASTER_MANIFEST_WILDER = 18172; const int FEAT_SOULCASTER_MANIFEST_WILDER = 18172;
//: Other Psionic marker feats
const int FEAT_SANCTIFIED_MIND_MANIFEST_NONE = 18173;
const int FEAT_SOULCASTER_MANIFEST_NONE = 18174;

View File

@ -6838,7 +6838,6 @@ epicspellobjs\wander_unseen.ncs
2das\disease.2da \ 2das\disease.2da \
2das\dmgxp.2da \ 2das\dmgxp.2da \
2das\domains.2da \ 2das\domains.2da \
2das\ds_feat.2da \
2das\ecl.2da \ 2das\ecl.2da \
2das\effecticons.2da \ 2das\effecticons.2da \
2das\encounter_areas.2da \ 2das\encounter_areas.2da \

View File

@ -109,21 +109,25 @@ int AbjurantChampionMarkerFeats()
{ {
if(GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION)) if(GetLevelByClass(CLASS_TYPE_ABJURANT_CHAMPION))
{ {
int nAbChamp = GetHasFeat(FEAT_ABCHAMP_INVOKING_WARLOCK) int nAbChamp;
+ GetHasFeat(FEAT_ABCHAMP_INVOKING_DFA)
+ GetHasFeat(FEAT_ABCHAMP_INVOKING_DRAGON_SHAMAN) nAbChamp =+ GetHasFeat(FEAT_ABCHAMP_INVOKING_WARLOCK);
+ GetHasFeat(FEAT_ABCHAMP_NONE); nAbChamp =+ GetHasFeat(FEAT_ABCHAMP_INVOKING_DFA);
nAbChamp =+ GetHasFeat(FEAT_ABCHAMP_INVOKING_DRAGON_SHAMAN);
nAbChamp =+ GetHasFeat(FEAT_ABCHAMP_NONE);
//FloatingTextStringOnCreature("nAbChamp = " + IntToString(nAbChamp), OBJECT_SELF, FALSE);
if(nAbChamp > 1) if(nAbChamp > 1)
{ {
FloatingTextStringOnCreature("An Abjurant Champion may only advance a single arcane or invoker class.", OBJECT_SELF, FALSE); FloatingTextStringOnCreature("An Abjurant Champion may only advance a single invoker class, or N/A for arcane spellcasting.", OBJECT_SELF, FALSE);
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE); FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
return TRUE; return TRUE;
} }
if(nAbChamp < 1) if(nAbChamp < 1)
{ {
FloatingTextStringOnCreature("A Abjurant Champion must pick one arcane or invoker class to advance at first level.", OBJECT_SELF, FALSE); FloatingTextStringOnCreature("A Abjurant Champion must pick an invoker class to advance at first level, or pick N/A for an arcane spellcaster.", OBJECT_SELF, FALSE);
FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE); FloatingTextStringOnCreature("Please reselect your feats.", OBJECT_SELF, FALSE);
return TRUE; return TRUE;
} }
@ -609,7 +613,7 @@ int MaesterMarkerFeats()
//:: Enforces Master of Shadows marker feats //:: Enforces Master of Shadows marker feats
int MasterShadowMarkerFeats() int MasterShadowMarkerFeats()
{ {
if(GetLevelByClass(CLASS_TYPE_MAGEKILLER)) if(GetLevelByClass(CLASS_TYPE_MASTER_OF_SHADOW))
{ {
int nShadow = GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWCASTER) int nShadow = GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWCASTER)
+ GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWSMITH); + GetHasFeat(FEAT_MASTERSHADOW_MYSTERY_SHADOWSMITH);

View File

@ -82,22 +82,26 @@ void main()
//:: Not being called from an event but from EvalPRCFeats. No non-good Saints. //:: Not being called from an event but from EvalPRCFeats. No non-good Saints.
if(nEvent == FALSE && GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD) if(nEvent == FALSE && GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{ {
//:: Any living creature of good alignment that is not an outsider or an elemental
//:: Add Darkvision int nRace = MyPRCGetRacialType(oPC);
if(!(nRace == RACIAL_TYPE_CONSTRUCT ||
nRace == RACIAL_TYPE_ELEMENTAL ||
nRace == RACIAL_TYPE_OOZE ||
nRace == RACIAL_TYPE_OUTSIDER ||
nRace == RACIAL_TYPE_UNDEAD))
{
//:: Add Darkvision
ipIP = ItemPropertyDarkvision(); ipIP = ItemPropertyDarkvision();
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Add Low-Light Vision
//:: Add Low-Light Vision
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_LOWLIGHT_VISION); ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_LOWLIGHT_VISION);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Wisdom based AC bonus
//:: Wisdom based AC bonus
SetCompositeBonus(oSkin, "Template_Saint_AC", iWISb, ITEM_PROPERTY_AC_BONUS); SetCompositeBonus(oSkin, "Template_Saint_AC", iWISb, ITEM_PROPERTY_AC_BONUS);
//:: Hit Die based Damage Reduction
//:: Hit Die based Damage Reduction
if (iHD >= 12) if (iHD >= 12)
{ {
ipIP = ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_5, IP_CONST_DAMAGESOAK_10_HP); ipIP = ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_5, IP_CONST_DAMAGESOAK_10_HP);
@ -118,46 +122,44 @@ void main()
else if (iHD <= 3) {/*:: you get nothing! */} else if (iHD <= 3) {/*:: you get nothing! */}
//:: Set HD based Fast Healing
//:: Set HD based Fast Healing //ebonfowl: I think this is supposed to be HD/2 to a max of 10
//ebonfowl: I think this is supposed to be HD/2 to a max of 10
int nFastHealing = iHD/2; int nFastHealing = iHD/2;
if (nFastHealing > 10) {nFastHealing == 10;} if (nFastHealing > 10) {nFastHealing == 10;}
SetCompositeBonus(oSkin, "Template_Saint_FastHealing", nFastHealing, ITEM_PROPERTY_REGENERATION); SetCompositeBonus(oSkin, "Template_Saint_FastHealing", nFastHealing, ITEM_PROPERTY_REGENERATION);
//:: Set racial type to Outsider (Native) //:: Set racial type to Outsider (Native)
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_OUTSIDER_RACIAL_TYPE); ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_OUTSIDER_RACIAL_TYPE);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
SetSubRace(oPC, "Outsider (Native)"); SetSubRace(oPC, "Outsider (Native)");
//:: Set Acid Immunity
//:: Set Acid Immunity
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ACID,IP_CONST_DAMAGEIMMUNITY_100_PERCENT); ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ACID,IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Set Cold Immunity //:: Set Cold Immunity
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGEIMMUNITY_100_PERCENT); ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Set Electrical Immunity //:: Set Electrical Immunity
ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ELECTRICAL,IP_CONST_DAMAGEIMMUNITY_100_PERCENT); ipIP = ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_ELECTRICAL,IP_CONST_DAMAGEIMMUNITY_100_PERCENT);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: +4 Save vs. Poison //:: +4 Save vs. Poison
ipIP = ItemPropertyBonusSavingThrowVsX(IP_CONST_SAVEVS_POISON, 4); ipIP = ItemPropertyBonusSavingThrowVsX(IP_CONST_SAVEVS_POISON, 4);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Resistance to Fire 10 //:: Resistance to Fire 10
ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGERESIST_10); ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGERESIST_10);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Set Petrification Immunity (has to be done per spell, thanks Bioware!) //:: Set Petrification Immunity (has to be done per spell, thanks Bioware!)
ipIP = ItemPropertySpellImmunitySpecific(216); //:: Flesh to Stone ipIP = ItemPropertySpellImmunitySpecific(216); //:: Flesh to Stone
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
ipIP = ItemPropertySpellImmunitySpecific(218); //:: Breath, Petrify ipIP = ItemPropertySpellImmunitySpecific(218); //:: Breath, Petrify
@ -177,15 +179,13 @@ void main()
ipIP = ItemPropertySpellImmunitySpecific(247); //:: Gorgon Mask ipIP = ItemPropertySpellImmunitySpecific(247); //:: Gorgon Mask
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Set Ability Score Bonuses
//:: Set Ability Score Bonuses
SetCompositeBonus(oSkin, "Template_Saint_con", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON); SetCompositeBonus(oSkin, "Template_Saint_con", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
SetCompositeBonus(oSkin, "Template_Saint_int", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT); SetCompositeBonus(oSkin, "Template_Saint_int", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
SetCompositeBonus(oSkin, "Template_Saint_wis", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS); SetCompositeBonus(oSkin, "Template_Saint_wis", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
SetCompositeBonus(oSkin, "Template_Saint_cha", 4, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA); SetCompositeBonus(oSkin, "Template_Saint_cha", 4, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
//:: Setup Spell-like abilities & Holy Power marker feat
//:: Setup Spell-like abilities & Holy Power marker feat
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_SAINT_SLA_BLESS); ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_SAINT_SLA_BLESS);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
@ -204,7 +204,7 @@ void main()
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_SAINT_HOLY_POWER); ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_SAINT_HOLY_POWER);
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
//:: Setup Holy Touch anti-evil damage shield. //:: Setup Holy Touch anti-evil damage shield.
itemproperty iHolyTouch = (ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1)); itemproperty iHolyTouch = (ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1));
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC); object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
if (GetIsObjectValid(oArmor)) if (GetIsObjectValid(oArmor))
@ -214,15 +214,13 @@ void main()
} }
else else
{ {
//ebonfowl: strange that it compiled with this object redefined here
//object oSkin = GetPCSkin(oPC);
IPSafeAddItemProperty(oSkin, iHolyTouch, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE); IPSafeAddItemProperty(oSkin, iHolyTouch, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
} }
//:: Keep property on armor or hide //:: Keep property on armor or hide
ExecuteScript ("prc_keep_onhit_a", oPC); ExecuteScript ("prc_keep_onhit_a", oPC);
//:: Setup Holy Touch extra damage vs evil //:: Setup Holy Touch extra damage vs evil
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC); object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
effect eEffect1 = VersusAlignmentEffect(EffectDamageIncrease(7, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL); effect eEffect1 = VersusAlignmentEffect(EffectDamageIncrease(7, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
@ -250,19 +248,20 @@ void main()
} }
//ebonfowl: this needed to be moved outside the while loop //ebonfowl: this needed to be moved outside the while loop
//:: check if equipped with a ranged weapon and apply effect again if not //:: check if equipped with a ranged weapon and apply effect again if not
if (!GetWeaponRanged(oItem)) if (!GetWeaponRanged(oItem))
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
//:: Hook in the events for Holy Touch //:: Hook in the events for Holy Touch
if(DEBUG) DoDebug("tmp_m_saint: Adding eventhooks"); if(DEBUG) DoDebug("tmp_m_saint: Adding eventhooks");
//AddEventScript(oPC, EVENT_ONPLAYEREQUIPITEM, "tmp_m_saint", TRUE, FALSE); //AddEventScript(oPC, EVENT_ONPLAYEREQUIPITEM, "tmp_m_saint", TRUE, FALSE);
//AddEventScript(oPC, EVENT_ONPLAYERUNEQUIPITEM, "tmp_m_saint", TRUE, FALSE); //AddEventScript(oPC, EVENT_ONPLAYERUNEQUIPITEM, "tmp_m_saint", TRUE, FALSE);
AddEventScript(oPC, EVENT_ONHIT, "tmp_m_saint", TRUE, FALSE); AddEventScript(oPC, EVENT_ONHIT, "tmp_m_saint", TRUE, FALSE);
} }
}
//:: We're being called from the OnHit eventhook //:: We're being called from the OnHit eventhook
else if(nEvent == EVENT_ONHIT) else if(nEvent == EVENT_ONHIT)
@ -299,86 +298,4 @@ void main()
} }
} }
//:: END IF - Running OnHit event //:: END IF - Running OnHit event
//:: We are called from the OnPlayerEquipItem eventhook. Add OnHitCast: Unique Power to oPC's weapon
/* else if(nEvent == EVENT_ONPLAYEREQUIPITEM)
{
oPC = GetItemLastEquippedBy();
oItem = GetItemLastEquipped();
if(DEBUG) DoDebug("tmp_m_gravetouch - OnEquip\n"
+ "oPC = " + DebugObject2Str(oPC) + "\n"
+ "oItem = " + DebugObject2Str(oItem) + "\n"
);
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
effect eEffect1 = VersusAlignmentEffect(EffectDamageIncrease(7, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
effect eEffect2 = VersusAlignmentEffect(EffectDamageIncrease(DAMAGE_BONUS_2, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
eEffect2 = VersusRacialTypeEffect(eEffect2, RACIAL_TYPE_OUTSIDER);
effect eEffect3 = VersusAlignmentEffect(EffectDamageIncrease(DAMAGE_BONUS_2, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
eEffect3 = VersusRacialTypeEffect(eEffect3, RACIAL_TYPE_UNDEAD);
effect eLink = EffectLinkEffects(eEffect1, eEffect2);
eLink = EffectLinkEffects(eLink, eEffect3);
eLink = SupernaturalEffect(eLink);
eLink = TagEffect(eLink, "EffectHolyTouch");
//:: Clear the effect to be safe and prevent stacking
effect eCheckEffect = GetFirstEffect(oPC);
while (GetIsEffectValid(eCheckEffect))
{
if (GetEffectTag(eCheckEffect) == "EffectHolyTouch")
{
RemoveEffect(oPC, eCheckEffect);
}
eCheckEffect = GetNextEffect(oPC);
}
//:: Check if equipped with a ranged weapon and apply effect again if not
if (!GetWeaponRanged(oWeapon))
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
}
//:: END IF - Running OnPlayerEquipItem event */
//:: We are called from the OnPlayerUnEquipItem eventhook. Remove OnHitCast: Unique Power from oPC's weapon
/* else if(nEvent == EVENT_ONPLAYERUNEQUIPITEM)
{
oPC = GetItemLastUnequippedBy();
oItem = GetItemLastUnequipped();
if(DEBUG) DoDebug("tmp_m_gravetouch - OnUnEquip\n"
+ "oPC = " + DebugObject2Str(oPC) + "\n"
+ "oItem = " + DebugObject2Str(oItem) + "\n"
);
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
effect eEffect1 = VersusAlignmentEffect(EffectDamageIncrease(7, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
effect eEffect2 = VersusAlignmentEffect(EffectDamageIncrease(DAMAGE_BONUS_2, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
eEffect2 = VersusRacialTypeEffect(eEffect2, RACIAL_TYPE_OUTSIDER);
effect eEffect3 = VersusAlignmentEffect(EffectDamageIncrease(DAMAGE_BONUS_2, DAMAGE_TYPE_DIVINE), 0, ALIGNMENT_EVIL);
eEffect3 = VersusRacialTypeEffect(eEffect3, RACIAL_TYPE_UNDEAD);
effect eLink = EffectLinkEffects(eEffect1, eEffect2);
eLink = EffectLinkEffects(eLink, eEffect3);
eLink = SupernaturalEffect(eLink);
eLink = TagEffect(eLink, "EffectHolyTouch");
//:: Clear the effect to be safe and prevent stacking
effect eCheckEffect = GetFirstEffect(oPC);
while (GetIsEffectValid(eCheckEffect))
{
if (GetEffectTag(eCheckEffect) == "EffectHolyTouch")
{
RemoveEffect(oPC, eCheckEffect);
}
eCheckEffect = GetNextEffect(oPC);
}
//:: Check if equipped with a ranged weapon and apply effect again if not
if (!GetWeaponRanged(oWeapon))
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
}
//:: END IF - Running OnPlayerUnEquipItem event */
} }