2026/01/08 Update
Hexblade shouldn't get Medium Armor prof. Weapon Specialization Whip isn't a Warblade bonus feat. Reorganized packages.2da. Fixed potential issue with SetCompositeBonusT(). Added materials iprops to material based crafting. Fixed bug w/ DoTrip(). Added heartbeat script to Monk to properly handle monk sizes. Cleaned up PRCGetCreatureSize(). Set Shielded Casting to use TagItemProperty(). Archivist now has a Lore check to learn spells from scrolls. Set Dragonfire Strike to use TagItemProperty(). Setup Forsaker to use TagItemProperty(). Fixed distance mismatch with Necrocarnum Shroud. Added too much debugging for the unarmed stuff. Cloudkill now obeys Mastery of Shapes.
This commit is contained in:
@@ -63,9 +63,9 @@
|
|||||||
59 Marshal 16790546 16828255 16828256 16828257 16828258 IR_MARSH 8 CLS_ATK_2 CLS_FEAT_MARSH CLS_SAVTHR_DRU CLS_SKILL_MARSH CLS_BFEAT_MARSH 4 **** **** 1 0 14 12 12 8 14 16 CHA 0X00 0X0 0 CLASS_TYPE_MARSHAL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MARSH 0 1 0 0 -1 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
59 Marshal 16790546 16828255 16828256 16828257 16828258 IR_MARSH 8 CLS_ATK_2 CLS_FEAT_MARSH CLS_SAVTHR_DRU CLS_SKILL_MARSH CLS_BFEAT_MARSH 4 **** **** 1 0 14 12 12 8 14 16 CHA 0X00 0X0 0 CLASS_TYPE_MARSHAL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MARSH 0 1 0 0 -1 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
60 Swashbuckler 16790547 16828217 16828218 16828219 16828220 IR_SWASH 10 CLS_ATK_1 CLS_FEAT_SWASH CLS_SAVTHR_FIGHT CLS_SKILL_SWASH CLS_BFEAT_SWASH 4 **** **** 1 0 12 14 12 8 16 14 DEX 0X00 0X0 0 CLASS_TYPE_SWASHBUCKLER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SWASH 0 1 0 0 -1 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
60 Swashbuckler 16790547 16828217 16828218 16828219 16828220 IR_SWASH 10 CLS_ATK_1 CLS_FEAT_SWASH CLS_SAVTHR_FIGHT CLS_SKILL_SWASH CLS_BFEAT_SWASH 4 **** **** 1 0 12 14 12 8 16 14 DEX 0X00 0X0 0 CLASS_TYPE_SWASHBUCKLER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SWASH 0 1 0 0 -1 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
61 Hexblade 16790548 16823462 16823463 16823464 16823465 IR_ELDKNI 10 CLS_ATK_1 CLS_FEAT_HEXBL CLS_SAVTHR_CLER CLS_SKILL_HEXBL CLS_BFEAT_HEXBL 2 CLS_SPGN_HEXBL CLS_SPKN_HEXBL 1 1 14 14 14 10 12 14 CHA 0X08 0X2 0 CLASS_TYPE_HEXBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HEXBL 0 1 0 0 -1 5 131 **** **** **** **** **** **** **** **** **** Hexblade **** **** **** **** ****
|
61 Hexblade 16790548 16823462 16823463 16823464 16823465 IR_ELDKNI 10 CLS_ATK_1 CLS_FEAT_HEXBL CLS_SAVTHR_CLER CLS_SKILL_HEXBL CLS_BFEAT_HEXBL 2 CLS_SPGN_HEXBL CLS_SPKN_HEXBL 1 1 14 14 14 10 12 14 CHA 0X08 0X2 0 CLASS_TYPE_HEXBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HEXBL 0 1 0 0 -1 5 131 **** **** **** **** **** **** **** **** **** Hexblade **** **** **** **** ****
|
||||||
62 Duskblade 16790549 16824168 16824169 16824170 16824171 IR_HAVOCMAGE 8 CLS_ATK_1 CLS_FEAT_DUSKBL CLS_SAVTHR_CLER CLS_SKILL_DUSKBL CLS_BFEAT_DUSKBL 2 CLS_SPGN_DUSKBL CLS_SPKN_DUSKBL 1 1 15 12 14 10 15 10 STR 0X00 0X0 0 CLASS_TYPE_DUSKBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DUSKBL 0 1 0 0 -1 710 131 **** **** **** **** **** **** **** **** **** Duskblade **** **** **** **** ****
|
62 Duskblade 16790549 16824168 16824169 16824170 16824171 IR_HAVOCMAGE 8 CLS_ATK_1 CLS_FEAT_DUSKBL CLS_SAVTHR_CLER CLS_SKILL_DUSKBL CLS_BFEAT_DUSKBL 2 CLS_SPGN_DUSKBL CLS_SPKN_DUSKBL 1 1 15 12 14 10 15 10 STR 0X00 0X0 0 CLASS_TYPE_DUSKBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DUSKBL 0 1 0 0 -1 735 131 **** **** **** **** **** **** **** **** **** Duskblade **** **** **** **** ****
|
||||||
63 Scout 16790550 16822486 16822513 16822514 16822515 IR_ARCHER 8 CLS_ATK_2 CLS_FEAT_SCOUT CLS_SAVTHR_ROG CLS_SKILL_SCOUT CLS_BFEAT_SCOUT 8 **** **** 1 0 12 16 12 14 12 10 DEX 0X00 0X0 0 CLASS_TYPE_SCOUT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SCOUT 0 1 0 0 -1 7 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
63 Scout 16790550 16822486 16822513 16822514 16822515 IR_ARCHER 8 CLS_ATK_2 CLS_FEAT_SCOUT CLS_SAVTHR_ROG CLS_SKILL_SCOUT CLS_BFEAT_SCOUT 8 **** **** 1 0 12 16 12 14 12 10 DEX 0X00 0X0 0 CLASS_TYPE_SCOUT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SCOUT 0 1 0 0 -1 7 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
64 Healer 16790551 16822656 16822657 16822658 16822659 IR_CBTMEDIC 8 CLS_ATK_3 CLS_FEAT_HEALER CLS_SAVTHR_CLER CLS_SKILL_HEALER CLS_BFEAT_HEALER 4 CLS_SPGN_HEALER **** 1 1 10 12 12 15 10 16 WIS 0X11 0X2 0 CLASS_TYPE_HEALER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HEALER 0 1 0 0 -1 895 0 **** 1 0 0 0 0 0 0 WIS Healer 1 1 255 0 0
|
64 Healer 16790551 16822656 16822657 16822658 16822659 IR_CBTMEDIC 8 CLS_ATK_3 CLS_FEAT_HEALER CLS_SAVTHR_CLER CLS_SKILL_HEALER CLS_BFEAT_HEALER 4 CLS_SPGN_HEALER **** 1 1 10 12 12 15 10 16 WIS 0X11 0X2 0 CLASS_TYPE_HEALER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HEALER 0 1 0 0 -1 750 0 **** 1 0 0 0 0 0 0 WIS Healer 1 1 255 0 0
|
||||||
65 Mage_Killer 16790552 16822219 16822220 16822221 16822222 IR_MAGEKILL 4 CLS_ATK_3 CLS_FEAT_MAGEK CLS_SAVTHR_WIZ CLS_SKILL_MAGEK CLS_BFEAT_MAGEK 2 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_MAGEKILLER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MAGEK 40 0 1 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
65 Mage_Killer 16790552 16822219 16822220 16822221 16822222 IR_MAGEKILL 4 CLS_ATK_3 CLS_FEAT_MAGEK CLS_SAVTHR_WIZ CLS_SKILL_MAGEK CLS_BFEAT_MAGEK 2 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_MAGEKILLER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MAGEK 40 0 1 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
66 Harper_Mage 16790553 16822223 16822224 16822225 16822226 IEF_HARPWIZ 4 CLS_ATK_3 CLS_FEAT_HMAGE CLS_SAVTHR_WIZ CLS_SKILL_HMAGE CLS_BFEAT_HMAGE 4 **** **** 1 0 12 16 14 8 14 12 INT 0X10 0X2 0 CLASS_TYPE_HARPERMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HMAGE 5 0 1 0 5 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
66 Harper_Mage 16790553 16822223 16822224 16822225 16822226 IEF_HARPWIZ 4 CLS_ATK_3 CLS_FEAT_HMAGE CLS_SAVTHR_WIZ CLS_SKILL_HMAGE CLS_BFEAT_HMAGE 4 **** **** 1 0 12 16 14 8 14 12 INT 0X10 0X2 0 CLASS_TYPE_HARPERMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HMAGE 5 0 1 0 5 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
67 Spell_Sword 16790554 16822227 16822228 16822229 16822230 IR_SPELLS 8 CLS_ATK_1 CLS_FEAT_SPELLS CLS_SAVTHR_CLER CLS_SKILL_SPELLS CLS_BFEAT_SPELLS 2 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_SPELLSWORD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SPELLS 40 0 2 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
67 Spell_Sword 16790554 16822227 16822228 16822229 16822230 IR_SPELLS 8 CLS_ATK_1 CLS_FEAT_SPELLS CLS_SAVTHR_CLER CLS_SKILL_SPELLS CLS_BFEAT_SPELLS 2 **** **** 1 0 12 16 14 8 14 12 INT 0X00 0X0 0 CLASS_TYPE_SPELLSWORD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SPELLS 40 0 2 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
76 Incarnate 16790563 16836706 16836707 16836708 16836709 IR_PSION 6 CLS_ATK_3 CLS_FEAT_INCARN CLS_SAVTHR_CLER CLS_SKILL_INCARN CLS_BFEAT_INCARN 2 **** **** 1 0 10 14 14 12 16 10 INT 0X01 0X3 1 CLASS_TYPE_INCARNATE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_INCARN 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
76 Incarnate 16790563 16836706 16836707 16836708 16836709 IR_PSION 6 CLS_ATK_3 CLS_FEAT_INCARN CLS_SAVTHR_CLER CLS_SKILL_INCARN CLS_BFEAT_INCARN 2 **** **** 1 0 10 14 14 12 16 10 INT 0X01 0X3 1 CLASS_TYPE_INCARNATE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_INCARN 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
77 Soulborn 16790564 16836718 16836719 16836720 16836721 IR_SOULKNIFE 10 CLS_ATK_1 CLS_FEAT_SOULBN CLS_SAVTHR_FIGHT CLS_SKILL_SOULBN CLS_BFEAT_SOULBN 2 **** **** 1 0 16 13 16 10 10 9 STR 0X01 0X3 0 CLASS_TYPE_SOULBORN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SOULBN 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
77 Soulborn 16790564 16836718 16836719 16836720 16836721 IR_SOULKNIFE 10 CLS_ATK_1 CLS_FEAT_SOULBN CLS_SAVTHR_FIGHT CLS_SKILL_SOULBN CLS_BFEAT_SOULBN 2 **** **** 1 0 16 13 16 10 10 9 STR 0X01 0X3 0 CLASS_TYPE_SOULBORN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SOULBN 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
78 Totemist 16790565 16836722 16836723 16836724 16836725 IR_PSYWARRIOR 8 CLS_ATK_2 CLS_FEAT_TOTEM CLS_SAVTHR_RANG CLS_SKILL_TOTEM CLS_BFEAT_TOTEM 4 **** **** 1 0 16 13 16 10 10 9 STR 0X00 0X0 0 CLASS_TYPE_TOTEMIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TOTEM 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
78 Totemist 16790565 16836722 16836723 16836724 16836725 IR_PSYWARRIOR 8 CLS_ATK_2 CLS_FEAT_TOTEM CLS_SAVTHR_RANG CLS_SKILL_TOTEM CLS_BFEAT_TOTEM 4 **** **** 1 0 16 13 16 10 10 9 STR 0X00 0X0 0 CLASS_TYPE_TOTEMIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TOTEM 0 1 0 0 -1 8 130 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
79 Beguiler 16790566 16789870 16789871 16789872 16789873 IR_BEGUIL 6 CLS_ATK_3 CLS_FEAT_BEGUIL CLS_SAVTHR_WIZ CLS_SKILL_BEGUIL CLS_BFEAT_BEGUIL 6 CLS_SPGN_BEGUIL CLS_SPKN_BEGUIL 1 1 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_BEGUILER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BEGUIL 20 1 0 0 -1 700 130 **** **** **** **** **** **** **** **** **** Beguiler **** **** **** **** ****
|
79 Beguiler 16790566 16789870 16789871 16789872 16789873 IR_BEGUIL 6 CLS_ATK_3 CLS_FEAT_BEGUIL CLS_SAVTHR_WIZ CLS_SKILL_BEGUIL CLS_BFEAT_BEGUIL 6 CLS_SPGN_BEGUIL CLS_SPKN_BEGUIL 1 1 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_BEGUILER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BEGUIL 20 1 0 0 -1 705 130 **** **** **** **** **** **** **** **** **** Beguiler **** **** **** **** ****
|
||||||
80 Duelist 16790567 16822716 16822717 16822718 16822719 IR_DUEL 10 CLS_ATK_1 CLS_FEAT_DUEL CLS_SAVTHR_ROG CLS_SKILL_DUEL CLS_BFEAT_DUEL 4 **** **** 1 0 14 16 14 8 14 10 DEX 0X00 0X0 0 CLASS_TYPE_DUELIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DUEL 40 0 0 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
80 Duelist 16790567 16822716 16822717 16822718 16822719 IR_DUEL 10 CLS_ATK_1 CLS_FEAT_DUEL CLS_SAVTHR_ROG CLS_SKILL_DUEL CLS_BFEAT_DUEL 4 **** **** 1 0 14 16 14 8 14 10 DEX 0X00 0X0 0 CLASS_TYPE_DUELIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DUEL 40 0 0 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
81 Hierophant 16790568 16822744 16822745 16822746 16822747 IR_HIERO 8 CLS_ATK_2 CLS_FEAT_HIERO CLS_SAVTHR_CLER CLS_SKILL_HIERO CLS_BFEAT_HIERO 2 **** **** 1 0 14 8 14 16 10 14 WIS 0X00 0X0 0 CLASS_TYPE_HIEROPHANT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HIERO 5 0 0 0 5 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
81 Hierophant 16790568 16822744 16822745 16822746 16822747 IR_HIERO 8 CLS_ATK_2 CLS_FEAT_HIERO CLS_SAVTHR_CLER CLS_SKILL_HIERO CLS_BFEAT_HIERO 2 **** **** 1 0 14 8 14 16 10 14 WIS 0X00 0X0 0 CLASS_TYPE_HIEROPHANT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HIERO 5 0 0 0 5 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
82 RedAvenger 16790569 16822765 16822766 16822767 16822768 IR_REDAVNG 8 CLS_ATK_2 CLS_FEAT_REDAV CLS_SAVTHR_MONK CLS_SKILL_REDAV CLS_BFEAT_REDAV 4 **** **** 1 0 14 14 14 15 10 10 DEX 0X00 0X0 0 CLASS_TYPE_RED_AVENGER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_REDAV 40 0 0 0 10 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
82 RedAvenger 16790569 16822765 16822766 16822767 16822768 IR_REDAVNG 8 CLS_ATK_2 CLS_FEAT_REDAV CLS_SAVTHR_MONK CLS_SKILL_REDAV CLS_BFEAT_REDAV 4 **** **** 1 0 14 14 14 15 10 10 DEX 0X00 0X0 0 CLASS_TYPE_RED_AVENGER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_REDAV 40 0 0 0 10 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
109 Umbral_Disciple 16790596 16837827 16837828 16837829 16837830 IR_ASASIN 6 CLS_ATK_2 CLS_FEAT_UMBRAL CLS_SAVTHR_BARD CLS_SKILL_UMBRAL CLS_BFEAT_UMBRAL 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_UMBRAL_DISCIPLE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_UMBRAL 40 0 0 0 10 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
109 Umbral_Disciple 16790596 16837827 16837828 16837829 16837830 IR_ASASIN 6 CLS_ATK_2 CLS_FEAT_UMBRAL CLS_SAVTHR_BARD CLS_SKILL_UMBRAL CLS_BFEAT_UMBRAL 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_UMBRAL_DISCIPLE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_UMBRAL 40 0 0 0 10 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
110 Alienist 16790597 16789710 16789711 16789712 16789713 IR_ALIEN 4 CLS_ATK_3 CLS_FEAT_ALIEN CLS_SAVTHR_WIZ CLS_SKILL_ALIEN CLS_BFEAT_ALIEN 2 **** **** 1 0 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_ALIENIST 1 1 1 2 2 4 6 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ALIEN 40 0 1 0 10 10 0 cls_stat_alien **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
110 Alienist 16790597 16789710 16789711 16789712 16789713 IR_ALIEN 4 CLS_ATK_3 CLS_FEAT_ALIEN CLS_SAVTHR_WIZ CLS_SKILL_ALIEN CLS_BFEAT_ALIEN 2 **** **** 1 0 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_ALIENIST 1 1 1 2 2 4 6 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ALIEN 40 0 1 0 10 10 0 cls_stat_alien **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
111 BlackBloodCultist 16790598 16823068 16823077 16823078 16823079 IR_WILDWOLF 12 CLS_ATK_2 CLS_FEAT_BBC CLS_SAVTHR_BARB CLS_SKILL_BBC CLS_BFEAT_BBC 4 **** **** 1 0 16 14 14 14 10 8 STR 0X0A 0X3 0 CLASS_TYPE_BLACK_BLOOD_CULTIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BBC 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
111 BlackBloodCultist 16790598 16823068 16823077 16823078 16823079 IR_WILDWOLF 12 CLS_ATK_2 CLS_FEAT_BBC CLS_SAVTHR_BARB CLS_SKILL_BBC CLS_BFEAT_BBC 4 **** **** 1 0 16 14 14 14 10 8 STR 0X0A 0X3 0 CLASS_TYPE_BLACK_BLOOD_CULTIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BBC 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
112 Warlock 16790599 16827934 16827935 16827936 16827937 IR_WARLOCK 6 CLS_ATK_2 CLS_FEAT_WARLOK CLS_SAVTHR_WIZ CLS_SKILL_WARLOK CLS_BFEAT_WARLOK 2 **** **** 1 1 12 14 14 10 12 15 CHA 0X14 0X3 1 CLASS_TYPE_WARLOCK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARLOK 0 1 0 0 -1 900 0 **** **** **** **** **** **** **** **** **** Warlock **** **** **** **** ****
|
112 Warlock 16790599 16827934 16827935 16827936 16827937 IR_WARLOCK 6 CLS_ATK_2 CLS_FEAT_WARLOK CLS_SAVTHR_WIZ CLS_SKILL_WARLOK CLS_BFEAT_WARLOK 2 **** **** 1 1 12 14 14 10 12 15 CHA 0X14 0X3 1 CLASS_TYPE_WARLOCK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARLOK 0 1 0 0 -1 865 0 **** **** **** **** **** **** **** **** **** Warlock **** **** **** **** ****
|
||||||
113 Fochlucan_Lyrist 16852476 16825142 16825143 16825144 16825145 IR_DRUID 6 CLS_ATK_1 CLS_FEAT_FOCLYR CLS_SAVTHR_BARD CLS_SKILL_FOCLYR CLS_BFEAT_FOCLYR 6 **** **** 1 0 10 12 12 14 12 16 CHA 0X02 0X0 0 CLASS_TYPE_FOCHLUCAN_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_FOCLYR 40 0 1 1 10 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
113 Fochlucan_Lyrist 16852476 16825142 16825143 16825144 16825145 IR_DRUID 6 CLS_ATK_1 CLS_FEAT_FOCLYR CLS_SAVTHR_BARD CLS_SKILL_FOCLYR CLS_BFEAT_FOCLYR 6 **** **** 1 0 10 12 12 14 12 16 CHA 0X02 0X0 0 CLASS_TYPE_FOCHLUCAN_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_FOCLYR 40 0 1 1 10 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
114 Dragonsong_Lyrist 16790600 16825459 16825460 16825461 16825462 IR_DRSLYR 6 CLS_ATK_2 CLS_FEAT_DRSLYR CLS_SAVTHR_BARD CLS_SKILL_DRSLYR CLS_BFEAT_DRSLYR 4 **** **** 1 0 12 14 14 10 12 15 CHA 0X10 0X2 0 CLASS_TYPE_DRAGONSONG_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 CLS_PRES_DSLYR 5 0 2 0 5 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
114 Dragonsong_Lyrist 16790600 16825459 16825460 16825461 16825462 IR_DRSLYR 6 CLS_ATK_2 CLS_FEAT_DRSLYR CLS_SAVTHR_BARD CLS_SKILL_DRSLYR CLS_BFEAT_DRSLYR 4 **** **** 1 0 12 14 14 10 12 15 CHA 0X10 0X2 0 CLASS_TYPE_DRAGONSONG_LYRIST 1 2 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 CLS_PRES_DSLYR 5 0 2 0 5 1 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
115 SpinemeldWarrior 16790601 16836998 16836999 16837000 16837001 IR_TEMPEST 10 CLS_ATK_1 CLS_FEAT_SPNMLD CLS_SAVTHR_FIGHT CLS_SKILL_SPNMLD CLS_BFEAT_SPNMLD 4 **** **** 1 0 16 14 14 14 10 8 STR 0X02 0X1 1 CLASS_TYPE_SPINEMELD_WARRIOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SPNMLD 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
115 SpinemeldWarrior 16790601 16836998 16836999 16837000 16837001 IR_TEMPEST 10 CLS_ATK_1 CLS_FEAT_SPNMLD CLS_SAVTHR_FIGHT CLS_SKILL_SPNMLD CLS_BFEAT_SPNMLD 4 **** **** 1 0 16 14 14 14 10 8 STR 0X02 0X1 1 CLASS_TYPE_SPINEMELD_WARRIOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SPNMLD 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
140 Totem_Rager 16790626 16825977 16825978 16825979 16825980 IR_PSYWARRIOR 10 CLS_ATK_2 CLS_FEAT_TOTRAG CLS_SAVTHR_RANG CLS_SKILL_TOTRAG CLS_BFEAT_TOTRAG 4 **** **** 1 0 16 15 14 10 10 10 CON 0X00 0X0 0 CLASS_TYPE_TOTEM_RAGER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TOTRAG 40 0 0 0 10 142 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
140 Totem_Rager 16790626 16825977 16825978 16825979 16825980 IR_PSYWARRIOR 10 CLS_ATK_2 CLS_FEAT_TOTRAG CLS_SAVTHR_RANG CLS_SKILL_TOTRAG CLS_BFEAT_TOTRAG 4 **** **** 1 0 16 15 14 10 10 10 CON 0X00 0X0 0 CLASS_TYPE_TOTEM_RAGER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TOTRAG 40 0 0 0 10 142 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
141 Ninja_CA 16790627 16832316 16832317 16832318 16832319 IR_NINJCA 6 CLS_ATK_2 CLS_FEAT_NINJCA CLS_SAVTHR_ROG CLS_SKILL_NINJCA CLS_BFEAT_NINJCA 6 **** **** 1 0 12 16 12 14 14 8 DEX 0X00 0X0 0 CLASS_TYPE_NINJA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_NINJCA 0 1 0 0 -1 7 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
141 Ninja_CA 16790627 16832316 16832317 16832318 16832319 IR_NINJCA 6 CLS_ATK_2 CLS_FEAT_NINJCA CLS_SAVTHR_ROG CLS_SKILL_NINJCA CLS_BFEAT_NINJCA 6 **** **** 1 0 12 16 12 14 14 8 DEX 0X00 0X0 0 CLASS_TYPE_NINJA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_NINJCA 0 1 0 0 -1 7 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
142 Shadowblade 16790628 16847410 16847411 16847412 16847413 IR_SHADOWBLADE 8 CLS_ATK_2 CLS_FEAT_SHDBLD CLS_SAVTHR_FIGHT CLS_SKILL_SHDBLD CLS_BFEAT_SHDBLD 2 **** **** 1 0 14 15 14 12 12 10 DEX 0X00 0X0 0 CLASS_TYPE_SHADOWBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SHDBLD 40 0 0 0 10 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
142 Shadowblade 16790628 16847410 16847411 16847412 16847413 IR_SHADOWBLADE 8 CLS_ATK_2 CLS_FEAT_SHDBLD CLS_SAVTHR_FIGHT CLS_SKILL_SHDBLD CLS_BFEAT_SHDBLD 2 **** **** 1 0 14 15 14 12 12 10 DEX 0X00 0X0 0 CLASS_TYPE_SHADOWBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SHDBLD 40 0 0 0 10 8 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
143 DragonShaman 16790629 16832703 16832704 16832705 16832706 IR_DRAGSHMN 10 CLS_ATK_2 CLS_FEAT_DRGSHM CLS_SAVTHR_CLER CLS_SKILL_DRGSHM CLS_BFEAT_DRGSHM 2 **** **** 1 0 12 14 16 10 14 10 CON 0X00 0X0 0 CLASS_TYPE_DRAGON_SHAMAN 1 1 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 CLS_PRES_DRGSHM 40 1 0 0 -1 705 0 cls_stat_drgshm **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
143 DragonShaman 16790629 16832703 16832704 16832705 16832706 IR_DRAGSHMN 10 CLS_ATK_2 CLS_FEAT_DRGSHM CLS_SAVTHR_CLER CLS_SKILL_DRGSHM CLS_BFEAT_DRGSHM 2 **** **** 1 0 12 14 16 10 14 10 CON 0X00 0X0 0 CLASS_TYPE_DRAGON_SHAMAN 1 1 3 4 5 6 7 8 9 10 11 12 12 14 15 16 17 18 19 20 CLS_PRES_DRGSHM 40 1 0 0 -1 725 0 cls_stat_drgshm **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
144 Dragonfire_Adept 16790630 16832914 16832915 16832916 16832917 IR_DRGNFIREADPT 8 CLS_ATK_3 CLS_FEAT_DFA CLS_SAVTHR_CLER CLS_SKILL_DFA CLS_BFEAT_DFA 4 **** **** 1 1 10 14 16 12 10 14 CON 0X00 0X0 0 CLASS_TYPE_DRAGONFIRE_ADEPT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DFA 40 1 0 0 -1 1 0 **** **** **** **** **** **** **** **** **** Dragonfire **** **** **** **** ****
|
144 Dragonfire_Adept 16790630 16832914 16832915 16832916 16832917 IR_DRGNFIREADPT 8 CLS_ATK_3 CLS_FEAT_DFA CLS_SAVTHR_CLER CLS_SKILL_DFA CLS_BFEAT_DFA 4 **** **** 1 1 10 14 16 12 10 14 CON 0X00 0X0 0 CLASS_TYPE_DRAGONFIRE_ADEPT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DFA 40 1 0 0 -1 1 0 **** **** **** **** **** **** **** **** **** Dragonfire **** **** **** **** ****
|
||||||
145 Psion 16790631 16823566 16823567 16823568 16823569 IR_PSION 4 CLS_ATK_3 CLS_FEAT_PSION CLS_SAVTHR_WIZ CLS_SKILL_PSION CLS_BFEAT_PSION 2 **** **** 1 0 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_PSION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PSION 0 1 0 0 -1 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
145 Psion 16790631 16823566 16823567 16823568 16823569 IR_PSION 4 CLS_ATK_3 CLS_FEAT_PSION CLS_SAVTHR_WIZ CLS_SKILL_PSION CLS_BFEAT_PSION 2 **** **** 1 0 10 14 14 12 16 10 INT 0X00 0X0 0 CLASS_TYPE_PSION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PSION 0 1 0 0 -1 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
146 Psychic_Warrior 16790632 16823570 16823571 16823572 16823573 IR_PSYWARRIOR 8 CLS_ATK_2 CLS_FEAT_PSYWAR CLS_SAVTHR_FIGHT CLS_SKILL_PSYWAR CLS_BFEAT_PSYWAR 2 **** **** 1 0 14 12 14 16 10 10 WIS 0X00 0X0 0 CLASS_TYPE_PSYWAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PSYWAR 0 1 0 0 -1 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
146 Psychic_Warrior 16790632 16823570 16823571 16823572 16823573 IR_PSYWARRIOR 8 CLS_ATK_2 CLS_FEAT_PSYWAR CLS_SAVTHR_FIGHT CLS_SKILL_PSYWAR CLS_BFEAT_PSYWAR 2 **** **** 1 0 14 12 14 16 10 10 WIS 0X00 0X0 0 CLASS_TYPE_PSYWAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PSYWAR 0 1 0 0 -1 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
@@ -239,7 +239,7 @@
|
|||||||
235 Swordsage 16790718 16829706 16829707 16829708 16829709 IR_MONK 8 CLS_ATK_2 CLS_FEAT_SWDSGE CLS_SAVTHR_BARD CLS_SKILL_SWDSGE CLS_BFEAT_SWDSGE 6 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_SWORDSAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SWDSGE 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
235 Swordsage 16790718 16829706 16829707 16829708 16829709 IR_MONK 8 CLS_ATK_2 CLS_FEAT_SWDSGE CLS_SAVTHR_BARD CLS_SKILL_SWDSGE CLS_BFEAT_SWDSGE 6 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_SWORDSAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SWDSGE 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
236 Warblade 16790719 16829710 16829711 16829712 16829713 IR_FIGHTER 12 CLS_ATK_1 CLS_FEAT_WARBLD CLS_SAVTHR_FIGHT CLS_SKILL_WARBLD CLS_BFEAT_WARBLD 4 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_WARBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARBLD 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
236 Warblade 16790719 16829710 16829711 16829712 16829713 IR_FIGHTER 12 CLS_ATK_1 CLS_FEAT_WARBLD CLS_SAVTHR_FIGHT CLS_SKILL_WARBLD CLS_BFEAT_WARBLD 4 **** **** 1 0 16 14 14 10 12 10 STR 0X00 0X0 0 CLASS_TYPE_WARBLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WARBLD 0 1 0 0 -1 5 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
237 Warmage 16790720 16827604 16827605 16827606 16827607 IR_HAVOCMAGE 6 CLS_ATK_3 CLS_FEAT_WRMAGE CLS_SAVTHR_WIZ CLS_SKILL_WRMAGE CLS_BFEAT_WRMAGE 2 CLS_SPGN_WRMAGE CLS_SPKN_WRMAGE 1 1 10 14 12 10 14 16 INT 0X00 0X0 0 CLASS_TYPE_WARMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WRMAGE 0 1 0 0 -1 10 130 **** **** **** **** **** **** **** **** **** Warmage **** **** **** **** ****
|
237 Warmage 16790720 16827604 16827605 16827606 16827607 IR_HAVOCMAGE 6 CLS_ATK_3 CLS_FEAT_WRMAGE CLS_SAVTHR_WIZ CLS_SKILL_WRMAGE CLS_BFEAT_WRMAGE 2 CLS_SPGN_WRMAGE CLS_SPKN_WRMAGE 1 1 10 14 12 10 14 16 INT 0X00 0X0 0 CLASS_TYPE_WARMAGE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WRMAGE 0 1 0 0 -1 10 130 **** **** **** **** **** **** **** **** **** Warmage **** **** **** **** ****
|
||||||
238 Knight 16790721 16827632 16827633 16827634 16827635 IR_PALADIN 12 CLS_ATK_1 CLS_FEAT_KNIGHT CLS_SAVTHR_WIZ CLS_SKILL_KNIGHT CLS_BFEAT_KNIGHT 2 **** **** 1 0 16 10 16 10 10 12 STR 0X05 0X1 0 CLASS_TYPE_KNIGHT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_KNIGHT 20 1 0 0 -1 715 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
238 Knight 16790721 16827632 16827633 16827634 16827635 IR_PALADIN 12 CLS_ATK_1 CLS_FEAT_KNIGHT CLS_SAVTHR_WIZ CLS_SKILL_KNIGHT CLS_BFEAT_KNIGHT 2 **** **** 1 0 16 10 16 10 10 12 STR 0X05 0X1 0 CLASS_TYPE_KNIGHT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_KNIGHT 20 1 0 0 -1 765 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
239 FistOfDalQuor 16790722 16827033 16827034 16827035 16827036 IR_SHOUDISC 10 CLS_ATK_2 CLS_FEAT_DALQUR CLS_SAVTHR_CLER CLS_SKILL_DALQUR CLS_BFEAT_DALQUR 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_FIST_DAL_QUOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DALQUR 5 0 0 0 5 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
239 FistOfDalQuor 16790722 16827033 16827034 16827035 16827036 IR_SHOUDISC 10 CLS_ATK_2 CLS_FEAT_DALQUR CLS_SAVTHR_CLER CLS_SKILL_DALQUR CLS_BFEAT_DALQUR 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_FIST_DAL_QUOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_DALQUR 5 0 0 0 5 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
240 HandOfTheWingedMasters 16790723 16832694 16832695 16832696 16832697 IR_HOTWM 8 CLS_ATK_2 CLS_FEAT_HOTWM CLS_SAVTHR_BARD CLS_SKILL_HOTWM CLS_BFEAT_HOTWM 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_HANDOTWM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HOTWM 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
240 HandOfTheWingedMasters 16790723 16832694 16832695 16832696 16832697 IR_HOTWM 8 CLS_ATK_2 CLS_FEAT_HOTWM CLS_SAVTHR_BARD CLS_SKILL_HOTWM CLS_BFEAT_HOTWM 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_HANDOTWM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HOTWM 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
241 Talon_of_Tiamat 16790724 16832629 16832630 16832631 16832632 IR_TALON_TIAMAT 8 CLS_ATK_2 CLS_FEAT_TALTIA CLS_SAVTHR_FIGHT CLS_SKILL_TALTIA CLS_BFEAT_TALTIA 2 **** **** 1 0 15 9 14 13 10 15 STR 0X09 0X2 0 CLASS_TYPE_TALON_OF_TIAMAT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TALTIA 40 0 2 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
241 Talon_of_Tiamat 16790724 16832629 16832630 16832631 16832632 IR_TALON_TIAMAT 8 CLS_ATK_2 CLS_FEAT_TALTIA CLS_SAVTHR_FIGHT CLS_SKILL_TALTIA CLS_BFEAT_TALTIA 2 **** **** 1 0 15 9 14 13 10 15 STR 0X09 0X2 0 CLASS_TYPE_TALON_OF_TIAMAT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_TALTIA 40 0 2 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -144,7 +144,7 @@
|
|||||||
140 WEAP_SPEC_ELVEN_LIGHTBLADE 24699 0 -1 0
|
140 WEAP_SPEC_ELVEN_LIGHTBLADE 24699 0 -1 0
|
||||||
141 WEAP_SPEC_ELVEN_THINBLADE 24707 0 -1 0
|
141 WEAP_SPEC_ELVEN_THINBLADE 24707 0 -1 0
|
||||||
142 WEAP_SPEC_ELVEN_COURTBLADE 24715 0 -1 0
|
142 WEAP_SPEC_ELVEN_COURTBLADE 24715 0 -1 0
|
||||||
143 FEAT_WEAPON_SPECIALIZATION_WHIP 994 1 -1 0
|
143 FEAT_WEAPON_SPECIALIZATION_WHIP 994 0 -1 0
|
||||||
144 VitalRecovery 3636 1 -1 0
|
144 VitalRecovery 3636 1 -1 0
|
||||||
145 StonePower 5294 0 -1 1
|
145 StonePower 5294 0 -1 1
|
||||||
146 RisingPhoenix_FullAttack 5204 0 99 1
|
146 RisingPhoenix_FullAttack 5204 0 99 1
|
||||||
|
|||||||
@@ -701,191 +701,191 @@
|
|||||||
697 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
697 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
698 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
698 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
699 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
699 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
700 Beguiler_Controller 16988617 16988618 79 INT 20 **** **** **** **** **** packftbeg1 packskbeg1 packeqbeg1 0 1
|
700 Archivist1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
701 Beguiler_Investigator 16988619 16988620 79 INT 23 **** **** **** **** **** packftbeg2 packskbeg2 packeqbeg2 0 1
|
701 Archivist2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
702 Beguiler_Trickster 16988621 16988622 79 INT 40 **** **** **** **** **** packftbeg3 packskbeg3 packeqbeg3 0 1
|
702 Archivist3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
703 BeguilerReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
703 Archivist4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
704 BeguilerReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
704 Archivist5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
705 DragonShaman_Defender 16988627 16988628 143 CON 15 **** **** **** **** **** packftdrgshm1 packskdrgshm1 packeqdrgshm1 0 1
|
705 Beguiler_Controller 16988617 16988618 79 INT 20 **** **** **** **** **** packftbeg1 packskbeg1 packeqbeg1 0 1
|
||||||
706 DragonShaman_Destroyer 16988629 16988630 143 STR 10 **** **** **** **** **** packftdrgshm2 packskdrgshm2 packeqdrgshm2 0 1
|
706 Beguiler_Investigator 16988619 16988620 79 INT 23 **** **** **** **** **** packftbeg2 packskbeg2 packeqbeg2 0 1
|
||||||
707 DragonShaman_SecondRank 16988631 16988632 143 CHA 8 **** **** **** **** **** packftdrgshm3 packskdrgshm3 packeqdrgshm3 0 1
|
707 Beguiler_Trickster 16988621 16988622 79 INT 40 **** **** **** **** **** packftbeg3 packskbeg3 packeqbeg3 0 1
|
||||||
708 DragonShamanReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
708 BeguilerReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
709 DragonShamanReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
709 BeguilerReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
710 Duskblade_Blaster 16988637 16988638 62 INT 10 **** **** **** **** **** packftduskb1 packskduskb1 packeqduskb1 0 1
|
710 Binder1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
711 Duskblade_Defender 16988639 16988640 62 INT 22 **** **** **** **** **** packftduskb2 packskduskb2 packeqduskb2 0 1
|
711 Binder2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
712 Duskblade_Skirmisher 16988641 16988642 62 INT 42 **** **** **** **** **** packftduskb3 packskduskb3 packeqduskb3 0 1
|
712 Binder3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
713 DuskbladeReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
713 Binder4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
714 DuskbladeReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
714 Binder5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
715 Knight_Cavalier 16988647 16988648 238 STR 11 **** **** **** **** **** packftknight1 packskknight1 packeqknight1 0 1
|
715 Crusader1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
716 Knight_Defender 16988649 16988650 238 STR 18 **** **** **** **** **** packftknight2 packskknight2 packeqknight2 0 1
|
716 Crusader2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
717 Knight_Destroyer 16988651 16988652 238 STR 50 **** **** **** **** **** packftknight3 packskknight2 packeqknight3 0 1
|
717 Crusader3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
718 KnightReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
718 Crusader4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
719 KnightReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
719 Crusader5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
720 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
720 DragonFireAdept1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
721 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
721 DragonFireAdept2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
722 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
722 DragonFireAdept3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
723 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
723 DragonFireAdept4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
724 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
724 DragonFireAdept5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
725 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
725 DragonShaman_Defender 16988627 16988628 143 CON 15 **** **** **** **** **** packftdrgshm1 packskdrgshm1 packeqdrgshm1 0 1
|
||||||
726 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
726 DragonShaman_Destroyer 16988629 16988630 143 STR 10 **** **** **** **** **** packftdrgshm2 packskdrgshm2 packeqdrgshm2 0 1
|
||||||
727 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
727 DragonShaman_SecondRank 16988631 16988632 143 CHA 8 **** **** **** **** **** packftdrgshm3 packskdrgshm3 packeqdrgshm3 0 1
|
||||||
728 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
728 DragonShamanReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
729 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
729 DragonShamanReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
730 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
730 DreadNecromancer1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
731 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
731 DreadNecromancer2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
732 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
732 DreadNecromancer3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
733 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
733 DreadNecromancer4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
734 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
734 DreadNecromancer5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
735 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
735 Duskblade_Blaster 16988637 16988638 62 INT 10 **** **** **** **** **** packftduskb1 packskduskb1 packeqduskb1 0 1
|
||||||
736 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
736 Duskblade_Defender 16988639 16988640 62 INT 22 **** **** **** **** **** packftduskb2 packskduskb2 packeqduskb2 0 1
|
||||||
737 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
737 Duskblade_Skirmisher 16988641 16988642 62 INT 42 **** **** **** **** **** packftduskb3 packskduskb3 packeqduskb3 0 1
|
||||||
738 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
738 DuskbladeReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
739 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
739 DuskbladeReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
740 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
740 Factotum1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
741 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
741 Factotum2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
742 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
742 Factotum3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
743 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
743 Factotum4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
744 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
744 Factotum5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
745 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
745 FavouredSoul1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
746 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
746 FavouredSoul2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
747 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
747 FavouredSoul3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
748 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
748 FavouredSoul4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
749 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
749 FavouredSoul5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
750 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
750 Healer_Default 16988709 16988710 64 WIS 20 **** **** **** **** packpsheal1 packftheal1 packskheal1 packeqheal1 0 1
|
||||||
751 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
751 Healer_Reserve2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
752 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
752 Healer_Reserve3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
753 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
753 Healer_Reserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
754 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
754 Healer_Reserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
755 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
755 Hexblade1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
756 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
756 Hexblade2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
757 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
757 Hexblade3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
758 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
758 Hexblade4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
759 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
759 Hexblade5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
760 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
760 Incarnate1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
761 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
761 Incarnate2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
762 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
762 Incarnate3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
763 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
763 Incarnate4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
764 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
764 Incarnate5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
765 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
765 Knight_Cavalier 16988647 16988648 238 STR 11 **** **** **** **** **** packftknight1 packskknight1 packeqknight1 0 1
|
||||||
766 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
766 Knight_Defender 16988649 16988650 238 STR 18 **** **** **** **** **** packftknight2 packskknight2 packeqknight2 0 1
|
||||||
767 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
767 Knight_Destroyer 16988651 16988652 238 STR 50 **** **** **** **** **** packftknight3 packskknight2 packeqknight3 0 1
|
||||||
768 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
768 KnightReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
769 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
769 KnightReserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
770 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
770 Marshal1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
771 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
771 Marshal2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
772 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
772 Marshal3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
773 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
773 Marshal4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
774 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
774 Marshal5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
775 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
775 Ninja1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
776 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
776 Ninja2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
777 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
777 Ninja3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
778 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
778 Ninja4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
779 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
779 Ninja5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
780 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
780 Psion_Egoist **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
781 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
781 Psion_Nomad **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
782 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
782 Psion_Savant **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
783 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
783 Psion_Seer **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
784 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
784 Psion_Shaper **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
785 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
785 Psion_Telepath **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
786 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
786 PsionReserve1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
787 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
787 PsionReserve2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
788 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
788 PsionReserve3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
789 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
789 PsionReserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
790 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
790 PsychicRogue1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
791 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
791 PsychicRogue2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
792 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
792 PsychicRogue3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
793 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
793 PsychicRogue4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
794 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
794 PsychicRogue5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
795 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
795 PsychicWarrior1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
796 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
796 PsychicWarrior2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
797 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
797 PsychicWarrior3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
798 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
798 PsychicWarrior4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
799 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
799 PsychicWarrior5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
800 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
800 Samurai1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
801 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
801 Samurai2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
802 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
802 Samurai3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
803 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
803 Samurai4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
804 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
804 Samurai5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
805 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
805 SamuraiCW1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
806 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
806 SamuraiCW2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
807 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
807 SamuraiCW3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
808 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
808 SamuraiCW4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
809 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
809 SamuraiCW5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
810 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
810 Scout1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
811 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
811 Scout2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
812 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
812 Scout3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
813 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
813 Scout4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
814 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
814 Scout5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
815 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
815 Shadowcaster1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
816 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
816 Shadowcaster2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
817 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
817 Shadowcaster3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
818 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
818 Shadowcaster4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
819 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
819 Shadowcaster5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
820 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
820 Shaman1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
821 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
821 Shaman2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
822 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
822 Shaman3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
823 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
823 Shaman4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
824 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
824 Shaman5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
825 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
825 Sohei1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
826 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
826 Sohei2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
827 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
827 Sohei3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
828 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
828 Sohei4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
829 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
829 Sohei5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
830 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
830 Soulborn1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
831 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
831 Soulborn2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
832 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
832 Soulborn3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
833 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
833 Soulborn4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
834 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
834 Soulborn5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
835 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
835 Soulknife1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
836 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
836 Soulknife2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
837 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
837 Soulknife3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
838 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
838 Soulknife4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
839 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
839 Soulknife5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
840 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
840 Swashbuckler1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
841 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
841 Swashbuckler2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
842 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
842 Swashbuckler3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
843 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
843 Swashbuckler4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
844 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
844 Swashbuckler5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
845 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
845 Swordsage1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
846 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
846 Swordsage2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
847 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
847 Swordsage3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
848 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
848 Swordsage4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
849 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
849 Swordsage5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
850 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
850 Totemist1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
851 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
851 Totemist2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
852 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
852 Totemist3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
853 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
853 Totemist4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
854 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
854 Totemist5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
855 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
855 Truenamer1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
856 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
856 Truenamer2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
857 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
857 Truenamer3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
858 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
858 Truenamer4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
859 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
859 Truenamer5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
860 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
860 Warblade1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
861 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
861 Warblade2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
862 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
862 Warblade3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
863 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
863 Warblade4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
864 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
864 Warblade5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
865 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
865 Warlock_Blaster 16988717 16988718 112 CHA 50 **** **** **** **** **** packftwr1 packftwr1 packeqwr1 0 1
|
||||||
866 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
866 Warlock_RESERVE2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
867 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
867 Warlock_RESERVE3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
868 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
868 Warlock_RESERVE4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
869 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
869 Warlock_RESERVE5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
870 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
870 Warmage1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
871 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
871 Warmage2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
872 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
872 Warmage3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
873 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
873 Warmage4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
874 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
874 Warmage5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
875 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
875 Wilder1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
876 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
876 Wilder2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
877 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
877 Wilder3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
878 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
878 Wilder4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
879 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
879 Wilder5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
880 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
880 Warmage1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
881 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
881 Warmage2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
882 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
882 Warmage3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
883 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
883 Warmage4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
884 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
884 Warmage5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
885 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
885 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
886 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
886 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
887 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
887 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
@@ -896,16 +896,16 @@
|
|||||||
892 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
892 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
893 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
893 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
894 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
894 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
895 Healer_Default 16988709 16988710 64 WIS 20 **** **** **** **** packpsheal1 packftheal1 packskheal1 packeqheal1 0 1
|
895 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
896 Healer_Reserve2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
896 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
897 Healer_Reserve3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
897 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
898 Healer_Reserve4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
898 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
899 Healer_Reserve5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
899 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
900 Warlock_Blaster_Default 16988717 16988718 112 CHA 50 **** **** **** **** **** packftwr1 packftwr1 packeqwr1 0 1
|
900 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
901 Warlock_RESERVE2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
901 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
902 Warlock_RESERVE3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
902 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
903 Warlock_RESERVE4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
903 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
904 Warlock_RESERVE5 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
904 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
905 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
905 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
906 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
906 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
907 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
907 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
@echo on
|
@echo off
|
||||||
|
tools\nwn_script_comp.exe -c -j4 -y --verbose --max-include-depth=32 -d ".\epicspellobjs" --dirs ".\epicspellscripts,.\include" ".\epicspellscripts"
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "epicspellobjs" "epicspellscripts\*.nss"
|
REM tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "epicspellobjs" "epicspellscripts\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_epicspells.hak .\epicspellscripts .\epicspellobjs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_epicspells.hak .\epicspellscripts .\epicspellobjs
|
||||||
pause
|
pause
|
||||||
:end
|
:end
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@echo on
|
@echo on
|
||||||
|
REM tools\nwn_script_comp.exe -c -j4 -y --max-include-depth=32 -d ".\newspellbookobjs" --dirs ".\newspellbook,.\include" ".\newspellbook"
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "newspellbookobjs" "newspellbook\*.nss"
|
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "newspellbookobjs" "newspellbook\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_nsb.hak .\newspellbook .\newspellbookobjs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_nsb.hak .\newspellbook .\newspellbookobjs
|
||||||
:end
|
:end
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
@echo on
|
@echo on
|
||||||
|
REM tools\nwn_script_comp.exe -c -j4 -y --max-include-depth=32 -d ".\ocfixerfobjs" --dirs ".\ocfixerf,.\include" ".\ocfixerf"
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "ocfixerfobjs" "ocfixerf\*.nss"
|
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "ocfixerfobjs" "ocfixerf\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_ocfix.erf .\ocfixerf .\ocfixerfobjs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_ocfix.erf .\ocfixerf .\ocfixerfobjs
|
||||||
pause
|
pause
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@echo on
|
@echo on
|
||||||
|
REM tools\nwn_script_comp.exe -c -j4 -y --max-include-depth=32 -d ".\psionicsobjs" --dirs ".\psionics,.\include" ".\psionics"
|
||||||
|
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "psionicsobjs" "psionics\*.nss"
|
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "psionicsobjs" "psionics\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_psionics.hak .\psionics .\psionicsobjs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_psionics.hak .\psionics .\psionicsobjs
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
@echo on
|
@echo off
|
||||||
|
tools\nwn_script_comp.exe -c -j4 -y --verbose --max-include-depth=32 -d ".\raceobjs" --dirs ".\racescripts,.\include" ".\racescripts"
|
||||||
|
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "raceobjs" "racescripts\*.nss"
|
REM tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "raceobjs" "racescripts\*.nss"
|
||||||
pause
|
pause
|
||||||
:end
|
:end
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@echo on
|
@echo on
|
||||||
|
REM tools\nwn_script_comp.exe -c -j4 -y --max-include-depth=32 -d ".\objs" --dirs ".\scripts,.\include" ".\scripts"
|
||||||
|
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "objs" "scripts\*.nss"
|
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "objs" "scripts\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_scripts.hak .\scripts .\objs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_scripts.hak .\scripts .\objs
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@echo on
|
@echo on
|
||||||
|
REM tools\nwn_script_comp.exe -c -j4 -y --max-include-depth=32 -d ".\spellobjs" --dirs ".\spells,.\include" ".\spells"
|
||||||
|
|
||||||
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "spellobjs" "spells\*.nss"
|
tools\nwnsc -w -i "include" -n "C:\Games\Steam\steamapps\common\Neverwinter Nights" -b "spellobjs" "spells\*.nss"
|
||||||
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_spells.hak .\spells .\spellobjs
|
tools\nwn_erf.exe -e hak --quiet -c -f CompiledResources\prc8_spells.hak .\spells .\spellobjs
|
||||||
|
|||||||
@@ -880,7 +880,8 @@ void SetCompositeBonusT(object oItem, string sBonus, int iVal, int iType, int iS
|
|||||||
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyAttackBonusVsSAlign(iSubType, iCurVal + iChange), oItem,9999.0);
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyAttackBonusVsSAlign(iSubType, iCurVal + iChange), oItem,9999.0);
|
||||||
break;
|
break;
|
||||||
case ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP:
|
case ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP:
|
||||||
iCurVal = TotalAndRemoveProperty(oItem, iType, iSubType);
|
//iCurVal = TotalAndRemoveProperty(oItem, iType, iSubType);
|
||||||
|
iCurVal = TotalAndRemovePropertyT(oItem, iType, iSubType);
|
||||||
if ((iCurVal + iChange) > 20)
|
if ((iCurVal + iChange) > 20)
|
||||||
{
|
{
|
||||||
iVal -= iCurVal + iChange - 20;
|
iVal -= iCurVal + iChange - 20;
|
||||||
@@ -888,7 +889,8 @@ void SetCompositeBonusT(object oItem, string sBonus, int iVal, int iType, int iS
|
|||||||
iChange = 0;
|
iChange = 0;
|
||||||
}
|
}
|
||||||
if(iCurVal+iChange > 0)
|
if(iCurVal+iChange > 0)
|
||||||
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonusVsRace(iSubType, DAMAGE_TYPE_SLASHING, iCurVal + iChange), oItem);
|
//AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyDamageBonusVsRace(iSubType, DAMAGE_TYPE_SLASHING, iCurVal + iChange), oItem);
|
||||||
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyDamageBonusVsRace(iSubType, DAMAGE_TYPE_SLASHING, iCurVal + iChange), oItem);
|
||||||
break;
|
break;
|
||||||
case ITEM_PROPERTY_DECREASED_ABILITY_SCORE:
|
case ITEM_PROPERTY_DECREASED_ABILITY_SCORE:
|
||||||
iCurVal = TotalAndRemovePropertyT(oItem, iType, iSubType);
|
iCurVal = TotalAndRemovePropertyT(oItem, iType, iSubType);
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ struct ipstruct GetIpStructFromString(string sIp);
|
|||||||
//#include "prc_inc_listener"
|
//#include "prc_inc_listener"
|
||||||
#include "prc_inc_chat"
|
#include "prc_inc_chat"
|
||||||
#include "prc_x2_craft"
|
#include "prc_x2_craft"
|
||||||
|
#include "prc_inc_material"
|
||||||
|
|
||||||
const int NUM_MAX_PROPERTIES = 200;
|
const int NUM_MAX_PROPERTIES = 200;
|
||||||
const int NUM_MAX_SUBTYPES = 256;
|
const int NUM_MAX_SUBTYPES = 256;
|
||||||
@@ -1861,6 +1862,9 @@ void MakeAdamantine(object oItem)
|
|||||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nBonus), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING, nBonus), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
|
|
||||||
|
itemproperty ipAdamantine = ItemPropertyMaterial(IP_MATERIAL_ADAMANTINE);
|
||||||
|
IPSafeAddItemProperty(oItem, ipAdamantine, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1883,6 +1887,9 @@ void MakeDarkwood(object oItem)
|
|||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_SET_TRAP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_SET_TRAP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_TUMBLE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_TUMBLE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_JUMP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_JUMP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
|
|
||||||
|
itemproperty ipDarkwood = ItemPropertyMaterial(IP_MATERIAL_WOOD_DARKWOOD_ZALANTAR);
|
||||||
|
IPSafeAddItemProperty(oItem, ipDarkwood, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1911,33 +1918,44 @@ void MakeMithral(object oItem)
|
|||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_SET_TRAP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_SET_TRAP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_TUMBLE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_TUMBLE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_JUMP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_JUMP, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_BALANCE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_BALANCE, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_CLIMB, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertySkillBonus(SKILL_CLIMB, nBonus) , 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
if(GetItemBaseAC(oItem) == 1)
|
if(GetItemBaseAC(oItem) == 1)
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertyArcaneSpellFailure(IP_CONST_ARCANE_SPELL_FAILURE_MINUS_5_PERCENT), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertyArcaneSpellFailure(IP_CONST_ARCANE_SPELL_FAILURE_MINUS_5_PERCENT), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
else
|
else
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertyArcaneSpellFailure(IP_CONST_ARCANE_SPELL_FAILURE_MINUS_10_PERCENT), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
IPSafeAddItemProperty(oItem, ItemPropertyArcaneSpellFailure(IP_CONST_ARCANE_SPELL_FAILURE_MINUS_10_PERCENT), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
|
|
||||||
|
itemproperty ipMithral = ItemPropertyMaterial(IP_MATERIAL_MITHRAL);
|
||||||
|
IPSafeAddItemProperty(oItem, ipMithral, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeColdIron(object oItem)
|
void MakeColdIron(object oItem)
|
||||||
{
|
{
|
||||||
//Does nothing so far
|
//Does nothing so far
|
||||||
|
itemproperty ipColdIron = ItemPropertyMaterial(IP_MATERIAL_COLD_IRON);
|
||||||
|
IPSafeAddItemProperty(oItem, ipColdIron, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeSilver(object oItem)
|
void MakeSilver(object oItem)
|
||||||
{
|
{
|
||||||
//Does nothing so far
|
//Does nothing so far
|
||||||
|
itemproperty ipSilver = ItemPropertyMaterial(IP_MATERIAL_SILVER);
|
||||||
|
IPSafeAddItemProperty(oItem, ipSilver, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeMundaneCrystal(object oItem)
|
void MakeMundaneCrystal(object oItem)
|
||||||
{
|
{
|
||||||
//Does nothing so far
|
//Does nothing so far
|
||||||
|
itemproperty ipCrystal = ItemPropertyMaterial(IP_MATERIAL_GEM_CRYSTAL_MUNDANE);
|
||||||
|
IPSafeAddItemProperty(oItem, ipCrystal, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeDeepCrystal(object oItem)
|
void MakeDeepCrystal(object oItem)
|
||||||
{
|
{
|
||||||
//Does nothing so far
|
//Does nothing so far
|
||||||
|
itemproperty ipDeepCrystal = ItemPropertyMaterial(IP_MATERIAL_GEM_CRYSTAL_DEEP);
|
||||||
|
IPSafeAddItemProperty(oItem, ipDeepCrystal, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Creates an item on oOwner, from the baseitemtype and base AC (for armour)
|
//Creates an item on oOwner, from the baseitemtype and base AC (for armour)
|
||||||
|
|||||||
@@ -1324,7 +1324,7 @@ int DoTrip(object oPC, object oTarget, int nExtraBonus, int nGenerateAoO = TRUE,
|
|||||||
}
|
}
|
||||||
else // If you fail, enemy gets a counter trip attempt, using Strength
|
else // If you fail, enemy gets a counter trip attempt, using Strength
|
||||||
{
|
{
|
||||||
if(!nCounterTrip)
|
if(nCounterTrip)
|
||||||
{
|
{
|
||||||
nTargetStat = GetAbilityModifier(ABILITY_STRENGTH, oTarget) + GetCombatMoveCheckBonus(oTarget, COMBAT_MOVE_TRIP, FALSE, TRUE);
|
nTargetStat = GetAbilityModifier(ABILITY_STRENGTH, oTarget) + GetCombatMoveCheckBonus(oTarget, COMBAT_MOVE_TRIP, FALSE, TRUE);
|
||||||
FloatingTextStringOnCreature("You have failed on your Trip attempt",oPC, FALSE);
|
FloatingTextStringOnCreature("You have failed on your Trip attempt",oPC, FALSE);
|
||||||
|
|||||||
@@ -187,6 +187,7 @@ void SetupCharacterData(object oPC)
|
|||||||
case CLASS_TYPE_MASTER_OF_SHADOW: sScript = "shd_mastershadow"; break;
|
case CLASS_TYPE_MASTER_OF_SHADOW: sScript = "shd_mastershadow"; break;
|
||||||
case CLASS_TYPE_MIGHTY_CONTENDER_KORD: sScript = "prc_contendkord"; break;
|
case CLASS_TYPE_MIGHTY_CONTENDER_KORD: sScript = "prc_contendkord"; break;
|
||||||
case CLASS_TYPE_MORNINGLORD: sScript = "prc_morninglord"; break;
|
case CLASS_TYPE_MORNINGLORD: sScript = "prc_morninglord"; break;
|
||||||
|
case CLASS_TYPE_MONK: sScript = "prc_monk"; break;
|
||||||
case CLASS_TYPE_NIGHTSHADE: sScript = "prc_nightshade"; break;
|
case CLASS_TYPE_NIGHTSHADE: sScript = "prc_nightshade"; break;
|
||||||
case CLASS_TYPE_NINJA: sScript = "prc_ninjca"; break;
|
case CLASS_TYPE_NINJA: sScript = "prc_ninjca"; break;
|
||||||
case CLASS_TYPE_OLLAM: sScript = "prc_ollam"; break;
|
case CLASS_TYPE_OLLAM: sScript = "prc_ollam"; break;
|
||||||
|
|||||||
@@ -493,6 +493,29 @@ int PRCGetCreatureSize(object oObject = OBJECT_SELF, int nSizeMask = PRC_SIZEMAS
|
|||||||
int nSize = StringToInt(Get2DAString("appearance", "SizeCategory", GetAppearanceType(oObject)));
|
int nSize = StringToInt(Get2DAString("appearance", "SizeCategory", GetAppearanceType(oObject)));
|
||||||
if (DEBUG) DoDebug("Appearance-based GetCreatureSize, returning size: "+IntToString(nSize));
|
if (DEBUG) DoDebug("Appearance-based GetCreatureSize, returning size: "+IntToString(nSize));
|
||||||
if (DEBUG) DoDebug("Bioware GetCreatureSize, returning size: "+IntToString(GetCreatureSize(oObject)));
|
if (DEBUG) DoDebug("Bioware GetCreatureSize, returning size: "+IntToString(GetCreatureSize(oObject)));
|
||||||
|
|
||||||
|
// Check for racial size feats FIRST - these override appearance size
|
||||||
|
if(GetHasFeat(FEAT_TINY, oObject))
|
||||||
|
nSize = 3; // PRC Tiny
|
||||||
|
else if(GetHasFeat(FEAT_SMALL, oObject))
|
||||||
|
nSize = 4; // PRC Small
|
||||||
|
else if(GetHasFeat(FEAT_LARGE, oObject))
|
||||||
|
nSize = 6; // PRC Large
|
||||||
|
else if(GetHasFeat(FEAT_HUGE, oObject))
|
||||||
|
nSize = 7; // PRC Huge
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Map appearance sizes to PRC sizes when no racial feat present
|
||||||
|
if(nSize == 1) nSize = 3; // Tiny creatures
|
||||||
|
else if(nSize == 2) nSize = 4; // Small creatures
|
||||||
|
else if(nSize == 3) nSize = 5; // Medium creatures
|
||||||
|
else if(nSize == 4) nSize = 6; // Large creatures
|
||||||
|
else if(nSize == 5) nSize = 7; // Huge creatures
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("Has FEAT_LARGE: " + IntToString(GetHasFeat(FEAT_LARGE, oObject)));
|
||||||
|
if (DEBUG) DoDebug("PRCGetCreatureSize: After racial feats, nSize = " + IntToString(nSize));
|
||||||
|
|
||||||
//CEP adds other sizes, take them into account too
|
//CEP adds other sizes, take them into account too
|
||||||
if(nSize == 20)
|
if(nSize == 20)
|
||||||
nSize = CREATURE_SIZE_DIMINUTIVE;
|
nSize = CREATURE_SIZE_DIMINUTIVE;
|
||||||
|
|||||||
@@ -276,7 +276,11 @@ void ApplyUnarmedAttackEffects(object oCreature)
|
|||||||
// Frostrager: 1d6 at level 1, 1d8 at level 4
|
// Frostrager: 1d6 at level 1, 1d8 at level 4
|
||||||
int FindUnarmedDamage(object oCreature)
|
int FindUnarmedDamage(object oCreature)
|
||||||
{
|
{
|
||||||
int iDamage = 0;
|
DoDebug("FindUnarmedDamage: FUNCTION CALLED AT ALL");
|
||||||
|
if (DEBUG) DoDebug("=== FindUnarmedDamage DEBUG START ===");
|
||||||
|
if (DEBUG) DoDebug("Creature: " + GetName(oCreature));
|
||||||
|
|
||||||
|
int iDamage = 0;
|
||||||
int iMonk = GetLevelByClass(CLASS_TYPE_MONK, oCreature) + GetLocalInt(oCreature, "LiPengMonk");
|
int iMonk = GetLevelByClass(CLASS_TYPE_MONK, oCreature) + GetLocalInt(oCreature, "LiPengMonk");
|
||||||
int iShou = GetLevelByClass(CLASS_TYPE_SHOU, oCreature);
|
int iShou = GetLevelByClass(CLASS_TYPE_SHOU, oCreature);
|
||||||
int iBrawler = GetLevelByClass(CLASS_TYPE_BRAWLER, oCreature);
|
int iBrawler = GetLevelByClass(CLASS_TYPE_BRAWLER, oCreature);
|
||||||
@@ -299,7 +303,46 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
if (GetHasSpellEffect(VESTIGE_RONOVE, oCreature) && GetLevelByClass(CLASS_TYPE_BINDER, oCreature))
|
if (GetHasSpellEffect(VESTIGE_RONOVE, oCreature) && GetLevelByClass(CLASS_TYPE_BINDER, oCreature))
|
||||||
iRonove = GetLocalInt(oCreature, "RonovesFists");
|
iRonove = GetLocalInt(oCreature, "RonovesFists");
|
||||||
|
|
||||||
//:: Determine creature size
|
//:: Determine creature size
|
||||||
|
if( GetIsPolyMorphedOrShifted(oCreature) || GetPRCSwitch(PRC_APPEARANCE_SIZE))
|
||||||
|
{
|
||||||
|
iSize = PRCGetCreatureSize(oCreature) - CREATURE_SIZE_MEDIUM + 5;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: Before size adjustment, iSize = " + IntToString(iSize));
|
||||||
|
|
||||||
|
// Start with feat-based size calculation
|
||||||
|
iSize = 5; // medium
|
||||||
|
if (GetHasFeat(FEAT_TINY, oCreature)) iSize = 3;
|
||||||
|
if (GetHasFeat(FEAT_SMALL, oCreature)) iSize = 4;
|
||||||
|
if (GetHasFeat(FEAT_LARGE, oCreature)) iSize = 6;
|
||||||
|
if (GetHasFeat(FEAT_HUGE, oCreature)) iSize = 7;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: After size adjustment, iSize = " + IntToString(iSize));
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("Has FEAT_LARGE: " + IntToString(GetHasFeat(FEAT_LARGE, oCreature)));
|
||||||
|
if (DEBUG) DoDebug("Size adjustment value: " + IntToString(PRCGetCreatureSize(oCreature) - PRCGetCreatureSize(oCreature, PRC_SIZEMASK_NONE)));
|
||||||
|
|
||||||
|
// Only apply size adjustment if no explicit size feat is present
|
||||||
|
// This prevents overriding racial size feats like Centaur's FEAT_LARGE
|
||||||
|
if (!GetHasFeat(FEAT_TINY, oCreature) &&
|
||||||
|
!GetHasFeat(FEAT_SMALL, oCreature) &&
|
||||||
|
!GetHasFeat(FEAT_LARGE, oCreature) &&
|
||||||
|
!GetHasFeat(FEAT_HUGE, oCreature))
|
||||||
|
{
|
||||||
|
iSize += PRCGetCreatureSize(oCreature) - PRCGetCreatureSize(oCreature, PRC_SIZEMASK_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iSize < 1) iSize = 1;
|
||||||
|
if (iSize > 9) iSize = 9;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: Final iSize = " + IntToString(iSize));
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: iMonkDamage = " + IntToString(iMonkDamage));
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: 2DA lookup result = " + IntToString(StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage))));
|
||||||
|
|
||||||
|
}
|
||||||
|
/* //:: Determine creature size
|
||||||
if( GetIsPolyMorphedOrShifted(oCreature) || GetPRCSwitch(PRC_APPEARANCE_SIZE))
|
if( GetIsPolyMorphedOrShifted(oCreature) || GetPRCSwitch(PRC_APPEARANCE_SIZE))
|
||||||
{
|
{
|
||||||
iSize = PRCGetCreatureSize(oCreature) - CREATURE_SIZE_MEDIUM + 5;
|
iSize = PRCGetCreatureSize(oCreature) - CREATURE_SIZE_MEDIUM + 5;
|
||||||
@@ -314,7 +357,7 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
iSize += PRCGetCreatureSize(oCreature) - PRCGetCreatureSize(oCreature, PRC_SIZEMASK_NONE);
|
iSize += PRCGetCreatureSize(oCreature) - PRCGetCreatureSize(oCreature, PRC_SIZEMASK_NONE);
|
||||||
if (iSize < 1) iSize = 1;
|
if (iSize < 1) iSize = 1;
|
||||||
if (iSize > 9) iSize = 9;
|
if (iSize > 9) iSize = 9;
|
||||||
}
|
} */
|
||||||
|
|
||||||
// Sacred Fist code break protection
|
// Sacred Fist code break protection
|
||||||
if (GetHasFeat(FEAT_SF_CODE, oCreature)) iSacredFist = 0;
|
if (GetHasFeat(FEAT_SF_CODE, oCreature)) iSacredFist = 0;
|
||||||
@@ -347,6 +390,7 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
|
|
||||||
// Monk damage calculation (2DA row)
|
// Monk damage calculation (2DA row)
|
||||||
if (iMonk > 0) iMonkDamage = iMonk / 4 + 3;
|
if (iMonk > 0) iMonkDamage = iMonk / 4 + 3;
|
||||||
|
if (DEBUG) DoDebug("iMonkDamage row = " + IntToString(iMonkDamage));
|
||||||
if (iSize == 5 && iMonkDamage == 7 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
if (iSize == 5 && iMonkDamage == 7 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
||||||
iMonkDamage = 8;
|
iMonkDamage = 8;
|
||||||
|
|
||||||
@@ -403,6 +447,7 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
|
|
||||||
// Lookup monk damage in 2DA
|
// Lookup monk damage in 2DA
|
||||||
iMonkDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage));
|
iMonkDamage = StringToInt(Get2DACache("unarmed_dmg","size" + IntToString(iSize), iMonkDamage));
|
||||||
|
if (DEBUG) DoDebug("FindUnarmedDamage: Final damage value = " + IntToString(iMonkDamage));
|
||||||
|
|
||||||
// 3.0e monk special cases
|
// 3.0e monk special cases
|
||||||
if (iSize <= 5 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
if (iSize <= 5 && !GetPRCSwitch(PRC_3_5e_FIST_DAMAGE))
|
||||||
@@ -426,8 +471,10 @@ int FindUnarmedDamage(object oCreature)
|
|||||||
iDamage = (DamageAvg(iBrawlerDamage) > DamageAvg(iDamage)) ? iBrawlerDamage : iDamage;
|
iDamage = (DamageAvg(iBrawlerDamage) > DamageAvg(iDamage)) ? iBrawlerDamage : iDamage;
|
||||||
|
|
||||||
if (DEBUG) DoDebug("prc_inc_unarmed: iDamage "+IntToString(iDamage));
|
if (DEBUG) DoDebug("prc_inc_unarmed: iDamage "+IntToString(iDamage));
|
||||||
|
|
||||||
return iDamage;
|
return iDamage;
|
||||||
|
|
||||||
|
if (DEBUG) DoDebug("=== FindUnarmedDamage DEBUG END ===");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,17 +10,13 @@ Saving Throw: See text
|
|||||||
|
|
||||||
A deadening field of necrocarnum radiates from you, filling the air around you with faint, shadowy tendrils.
|
A deadening field of necrocarnum radiates from you, filling the air around you with faint, shadowy tendrils.
|
||||||
|
|
||||||
You gain a +1 profane bonus on attack rolls and damage rolls any time a living creature takes damage while adjacent to you. This bonus lasts for 1 round. If a living creature dies while adjacent to you, the
|
You gain a +1 profane bonus on attack rolls and damage rolls any time a living creature takes damage while adjacent to you. This bonus lasts for 1 round. If a living creature dies while adjacent to you, the bonus instead lasts for a number of rounds equal to the creature<72>s Hit Dice.
|
||||||
bonus instead lasts for a number of rounds equal to the creature<72>s Hit Dice.
|
|
||||||
|
|
||||||
Essentia: If you invest essentia in the necrocarnum shroud, the area encompassed by the life-draining field expands. Any living creature who takes damage (or dies) within 5 feet plus 5 feet per point of
|
Essentia: If you invest essentia in the necrocarnum shroud, the area encompassed by the life-draining field expands. Any living creature who takes damage (or dies) within 5 feet plus 5 feet per point of essentia invested triggers the bonus.
|
||||||
essentia invested triggers the bonus.
|
|
||||||
|
|
||||||
Chakra Bind (Soul)
|
Chakra Bind (Soul)
|
||||||
|
|
||||||
While you have necrocarnum shroud bound to your soul chakra, you can take a standard action to strike a living foe with the raw evil of necrocarnum. When you use this ability, you must make a
|
While you have necrocarnum shroud bound to your soul chakra, you can take a standard action to strike a living foe with the raw evil of necrocarnum. When you use this ability, you must make a successful melee touch attack against the intended victim. If successful, your touch bestows 1d4 negative levels on the target (Fortitude half). For each negative level bestowed, you gain 1 temporary point of essentia and 5 temporary hit points. The temporary essentia lasts until the end of your next turn. The temporary hit points fade after 1 hour.
|
||||||
successful melee touch attack against the intended victim. If successful, your touch bestows 1d4 negative levels on the target (Fortitude half). For each negative level bestowed, you gain 1 temporary point of essentia
|
|
||||||
and 5 temporary hit points. The temporary essentia lasts until the end of your next turn. The temporary hit points fade after 1 hour.
|
|
||||||
|
|
||||||
Chakra Bind (Waist)
|
Chakra Bind (Waist)
|
||||||
|
|
||||||
|
|||||||
@@ -781,15 +781,25 @@ void main()
|
|||||||
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
IPSafeAddItemProperty(oItem, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 99999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||||
AddEventScript(oItem, EVENT_ITEM_ONHIT, "tob_feats", TRUE, FALSE);
|
AddEventScript(oItem, EVENT_ITEM_ONHIT, "tob_feats", TRUE, FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
||||||
|
{
|
||||||
|
int nBase = GetBaseItemType(oItem);
|
||||||
|
if (nBase == BASE_ITEM_SMALLSHIELD || nBase == BASE_ITEM_LARGESHIELD || nBase == BASE_ITEM_TOWERSHIELD)
|
||||||
|
{
|
||||||
|
itemproperty ip = PRCItemPropertyBonusFeat(IP_CONST_IMP_CC);
|
||||||
|
ip = TagItemProperty(ip, "ShieldedCasting");
|
||||||
|
IPSafeAddItemProperty(oSkin, ip, 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
||||||
{
|
{
|
||||||
int nBase = GetBaseItemType(oItem);
|
int nBase = GetBaseItemType(oItem);
|
||||||
if (nBase == BASE_ITEM_SMALLSHIELD || nBase == BASE_ITEM_LARGESHIELD || nBase == BASE_ITEM_TOWERSHIELD)
|
if (nBase == BASE_ITEM_SMALLSHIELD || nBase == BASE_ITEM_LARGESHIELD || nBase == BASE_ITEM_TOWERSHIELD)
|
||||||
{
|
{
|
||||||
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_IMP_CC), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
IPSafeAddItemProperty(oSkin, PRCItemPropertyBonusFeat(IP_CONST_IMP_CC), 0.0f, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
if (GetRacialType(oInitiator) == RACIAL_TYPE_RETH_DEKALA && GetIsWeapon(oItem))
|
if (GetRacialType(oInitiator) == RACIAL_TYPE_RETH_DEKALA && GetIsWeapon(oItem))
|
||||||
{
|
{
|
||||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(4), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(4), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||||||
@@ -882,8 +892,26 @@ void main()
|
|||||||
// Remove the temporary OnHitCastSpell: Unique
|
// Remove the temporary OnHitCastSpell: Unique
|
||||||
RemoveSpecificProperty(oItem, ITEM_PROPERTY_ONHITCASTSPELL, IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 0, 1, "", 1, DURATION_TYPE_TEMPORARY);
|
RemoveSpecificProperty(oItem, ITEM_PROPERTY_ONHITCASTSPELL, IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 0, 1, "", 1, DURATION_TYPE_TEMPORARY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
||||||
|
{
|
||||||
|
// If you don't have a shield in your left hand, no benefit
|
||||||
|
int nBase = GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oInitiator));
|
||||||
|
if (nBase != BASE_ITEM_SMALLSHIELD && nBase != BASE_ITEM_LARGESHIELD && nBase != BASE_ITEM_TOWERSHIELD)
|
||||||
|
{
|
||||||
|
// Only remove the tagged property, not the actual feat
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oSkin);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == "ShieldedCasting")
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oSkin, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oSkin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* if (GetHasFeat(FEAT_SHIELDED_CASTING, oInitiator))
|
||||||
{
|
{
|
||||||
// If you don't have a shield in your left hand, no benefit
|
// If you don't have a shield in your left hand, no benefit
|
||||||
int nBase = GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oInitiator));
|
int nBase = GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oInitiator));
|
||||||
@@ -891,7 +919,7 @@ void main()
|
|||||||
{
|
{
|
||||||
RemoveSpecificProperty(oSkin, ITEM_PROPERTY_BONUS_FEAT, IP_CONST_IMP_CC);
|
RemoveSpecificProperty(oSkin, ITEM_PROPERTY_BONUS_FEAT, IP_CONST_IMP_CC);
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
if (GetRacialType(oInitiator) == RACIAL_TYPE_RETH_DEKALA && GetIsWeapon(oItem))
|
if (GetRacialType(oInitiator) == RACIAL_TYPE_RETH_DEKALA && GetIsWeapon(oItem))
|
||||||
{
|
{
|
||||||
// Remove the attack bonus
|
// Remove the attack bonus
|
||||||
|
|||||||
@@ -96,7 +96,36 @@ void main()
|
|||||||
SendMessageToPC(oPC, GetStringByStrRef(53308));//"You already have that spell in your spellbook."
|
SendMessageToPC(oPC, GetStringByStrRef(53308));//"You already have that spell in your spellbook."
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make a Lore check to learn the spell
|
||||||
|
string sSpellLevel = Get2DACache("spells", "Cleric", nSpellID);
|
||||||
|
nSpellLevel = StringToInt(sSpellLevel);
|
||||||
|
// If no cleric level, check innate level
|
||||||
|
if (nSpellLevel == 0)
|
||||||
|
nSpellLevel = StringToInt(Get2DACache("spells", "Innate", nSpellID));
|
||||||
|
|
||||||
|
int nDC = 15 + nSpellLevel;
|
||||||
|
|
||||||
|
// Check for previous failed attempts
|
||||||
|
string sFailVar = "PRC_Archivist_Fail_" + IntToString(nSpellID);
|
||||||
|
int nFailedLore = GetPersistantLocalInt(oPC, sFailVar);
|
||||||
|
int nCurrentLore = GetSkillRank(SKILL_LORE, oPC);
|
||||||
|
|
||||||
|
// If failed before and Lore hasn't improved, deny attempt
|
||||||
|
if (nFailedLore > 0 && nCurrentLore <= nFailedLore)
|
||||||
|
{
|
||||||
|
FloatingTextStringOnCreature("You must improve your Lore skill before attempting to learn this spell again.", oPC, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!GetPRCIsSkillSuccessful(oPC, SKILL_LORE, nDC))
|
||||||
|
{
|
||||||
|
// Store the Lore rank at time of failure
|
||||||
|
SetPersistantLocalInt(oPC, sFailVar, nCurrentLore);
|
||||||
|
FloatingTextStringOnCreature("Lore check failed (DC " + IntToString(nDC) + "). You cannot learn this spell.", oPC, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//destroy the scroll
|
//destroy the scroll
|
||||||
int nStack = GetNumStackedItems(oScroll);
|
int nStack = GetNumStackedItems(oScroll);
|
||||||
if (nStack > 1)
|
if (nStack > 1)
|
||||||
|
|||||||
@@ -1,20 +1,236 @@
|
|||||||
//::///////////////////////////////////////////////
|
//::///////////////////////////////////////////////
|
||||||
//:: Dragonfire Strike
|
//:: Dragonfire Strike
|
||||||
//:: prc_dragfire_atk.nss
|
//:: prc_dragfire_atk.nss
|
||||||
//::///////////////////////////////////////////////
|
//::///////////////////////////////////////////////
|
||||||
/*
|
/*
|
||||||
Handles converting the damage on Dragonfire Strike
|
Handles converting the damage on Dragonfire Strike
|
||||||
and similar feats
|
and similar feats
|
||||||
*/
|
*/
|
||||||
//:://////////////////////////////////////////////
|
//:://////////////////////////////////////////////
|
||||||
//:: Created By: Fox
|
//:: Created By: Fox
|
||||||
//:: Created On: Nov 23, 2007
|
//:: Created On: Nov 23, 2007
|
||||||
//:://////////////////////////////////////////////
|
//::
|
||||||
|
//:: Updated by: Jaysyn
|
||||||
|
//:: Updated on: 2026-01-08 10:03:33
|
||||||
|
//::
|
||||||
|
//:: Added ItemProperty tagging and constants.
|
||||||
|
//:://////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "prc_inc_combat"
|
||||||
|
#include "prc_inc_sneak"
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
const float DRAGONFIRE_DURATION = 99999.0;
|
||||||
|
const string DRAGONFIRE_TAG = "DragonfireStrike";
|
||||||
|
|
||||||
|
// Helper function for consistent weapon detection
|
||||||
|
int IsDragonfireWeapon(object oItem, object oPC)
|
||||||
|
{
|
||||||
|
return (oItem == GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC) ||
|
||||||
|
(oItem == GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC) && !GetIsShield(oItem)) ||
|
||||||
|
GetWeaponRanged(oItem));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to safely add properties to ammo
|
||||||
|
void AddAmmoProperties(object oPC, int nPropertyType, int nPropertyParam1)
|
||||||
|
{
|
||||||
|
if (!GetWeaponRanged(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)))
|
||||||
|
return; // Only add ammo for ranged weapons
|
||||||
|
|
||||||
|
object oAmmo;
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ip = ItemPropertyOnHitCastSpell(nPropertyType, nPropertyParam1);
|
||||||
|
ip = TagItemProperty(ip, DRAGONFIRE_TAG);
|
||||||
|
IPSafeAddItemProperty(oAmmo, ip, DRAGONFIRE_DURATION, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ip = ItemPropertyOnHitCastSpell(nPropertyType, nPropertyParam1);
|
||||||
|
ip = TagItemProperty(ip, DRAGONFIRE_TAG);
|
||||||
|
IPSafeAddItemProperty(oAmmo, ip, DRAGONFIRE_DURATION, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ip = ItemPropertyOnHitCastSpell(nPropertyType, nPropertyParam1);
|
||||||
|
ip = TagItemProperty(ip, DRAGONFIRE_TAG);
|
||||||
|
IPSafeAddItemProperty(oAmmo, ip, DRAGONFIRE_DURATION, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to safely remove properties from ammo
|
||||||
|
void RemoveAmmoProperties(object oPC)
|
||||||
|
{
|
||||||
|
object oAmmo;
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oAmmo);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == DRAGONFIRE_TAG)
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oAmmo, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oAmmo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oAmmo);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == DRAGONFIRE_TAG)
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oAmmo, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oAmmo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oAmmo = GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC);
|
||||||
|
if (GetIsObjectValid(oAmmo))
|
||||||
|
{
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oAmmo);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == DRAGONFIRE_TAG)
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oAmmo, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oAmmo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to add Dragonfire property to weapon
|
||||||
|
void AddDragonfireProperty(object oItem)
|
||||||
|
{
|
||||||
|
itemproperty ip = ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1);
|
||||||
|
ip = TagItemProperty(ip, DRAGONFIRE_TAG);
|
||||||
|
IPSafeAddItemProperty(oItem, ip, DRAGONFIRE_DURATION, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to remove Dragonfire property from weapon
|
||||||
|
void RemoveDragonfireProperty(object oItem)
|
||||||
|
{
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oItem);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == DRAGONFIRE_TAG)
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oItem, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoDragonfireSneak(object oPC, object oTarget, object oWeapon)
|
||||||
|
{
|
||||||
|
if(DEBUG) DoDebug("Performing Strike");
|
||||||
|
effect eStrike;
|
||||||
|
int nType = GetDragonfireDamageType(oPC);
|
||||||
|
int nDice = GetTotalSneakAttackDice(oPC);
|
||||||
|
int nSneakDamage = GetSneakAttackDamage(nDice);
|
||||||
|
int nDamage = nSneakDamage;
|
||||||
|
|
||||||
|
struct DamageReducers drTotalReduced = GetTotalReduction(oPC, oTarget, oWeapon);
|
||||||
|
nDamage = nDamage * (100 - drTotalReduced.nPercentReductions) / 100;
|
||||||
|
nDamage -= drTotalReduced.nStaticReductions;
|
||||||
|
if(nDamage < 0) nDamage = 0;
|
||||||
|
effect eHealed = EffectHeal(nDamage);
|
||||||
|
|
||||||
|
if(GetHasFeat(FEAT_DRAGONFIRE_STRIKE, oPC) && GetLocalInt(oPC, "DragonFireOn"))
|
||||||
|
nSneakDamage += d6();
|
||||||
|
if(GetHasFeat(FEAT_IMP_DRAGONFIRE_STRIKE, oPC) && GetLocalInt(oPC, "DragonFireOn"))
|
||||||
|
nSneakDamage += nDice;
|
||||||
|
|
||||||
|
effect eSneakDamage = EffectDamage(nSneakDamage, nType);
|
||||||
|
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_CRITICAL_HIT))
|
||||||
|
eStrike = EffectLinkEffects(eSneakDamage, eHealed);
|
||||||
|
else
|
||||||
|
eStrike = eSneakDamage;
|
||||||
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eStrike, oTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int nEvent = GetRunningEvent();
|
||||||
|
if(DEBUG) DoDebug("prc_dragfire_atk running, event: " + IntToString(nEvent));
|
||||||
|
|
||||||
|
object oPC;
|
||||||
|
switch(nEvent)
|
||||||
|
{
|
||||||
|
case EVENT_ONPLAYEREQUIPITEM: oPC = GetItemLastEquippedBy(); break;
|
||||||
|
case EVENT_ONPLAYERUNEQUIPITEM: oPC = GetItemLastUnequippedBy(); break;
|
||||||
|
default: oPC = OBJECT_SELF;
|
||||||
|
}
|
||||||
|
|
||||||
|
object oItem;
|
||||||
|
|
||||||
|
if(nEvent == EVENT_ONPLAYEREQUIPITEM)
|
||||||
|
{
|
||||||
|
oItem = GetItemLastEquipped();
|
||||||
|
if(DEBUG) DoDebug("prc_dragfire_atk - OnEquip");
|
||||||
|
|
||||||
|
if(IsDragonfireWeapon(oItem, oPC))
|
||||||
|
{
|
||||||
|
// Add eventhook to the item
|
||||||
|
AddEventScript(oItem, EVENT_ITEM_ONHIT, "prc_dragfire_atk", TRUE, FALSE);
|
||||||
|
|
||||||
|
// Add the OnHitCastSpell: Unique needed to trigger the event
|
||||||
|
AddDragonfireProperty(oItem);
|
||||||
|
|
||||||
|
// Add properties to ammo only for ranged weapons
|
||||||
|
AddAmmoProperties(oPC, IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(nEvent == EVENT_ONPLAYERUNEQUIPITEM)
|
||||||
|
{
|
||||||
|
oItem = GetItemLastUnequipped();
|
||||||
|
if(DEBUG) DoDebug("prc_dragfire_atk - OnUnEquip");
|
||||||
|
|
||||||
|
if(IsDragonfireWeapon(oItem, oPC))
|
||||||
|
{
|
||||||
|
// Remove eventhook from the item
|
||||||
|
RemoveEventScript(oItem, EVENT_ITEM_ONHIT, "prc_dragfire_atk", TRUE, FALSE);
|
||||||
|
|
||||||
|
// Remove the temporary OnHitCastSpell: Unique
|
||||||
|
RemoveDragonfireProperty(oItem);
|
||||||
|
|
||||||
|
// Remove properties from ammo
|
||||||
|
RemoveAmmoProperties(oPC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(nEvent == EVENT_ITEM_ONHIT)
|
||||||
|
{
|
||||||
|
object oTarget = PRCGetSpellTargetObject();
|
||||||
|
oItem = GetSpellCastItem();
|
||||||
|
|
||||||
|
if(!IsDragonfireWeapon(oItem, oPC))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(DEBUG) DoDebug("Weapon Used: " + GetName(oItem));
|
||||||
|
if(DEBUG) DoDebug("CanSneakAttack: " + IntToString(GetCanSneakAttack(oTarget, oPC)));
|
||||||
|
if(DEBUG) DoDebug("Dice: " + IntToString(GetTotalSneakAttackDice(oPC)));
|
||||||
|
|
||||||
|
if(GetCanSneakAttack(oTarget, oPC)
|
||||||
|
&& GetTotalSneakAttackDice(oPC)
|
||||||
|
&& GetLocalInt(oPC, "DragonFireOn"))
|
||||||
|
DoDragonfireSneak(oPC, oTarget, oItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#include "prc_inc_combat"
|
/* void DoDragonfireSneak(object oPC, object oTarget, object oWeapon)
|
||||||
#include "prc_inc_sneak"
|
|
||||||
|
|
||||||
void DoDragonfireSneak(object oPC, object oTarget, object oWeapon)
|
|
||||||
{
|
{
|
||||||
if(DEBUG) DoDebug("Performing Strike");
|
if(DEBUG) DoDebug("Performing Strike");
|
||||||
effect eStrike;
|
effect eStrike;
|
||||||
@@ -132,4 +348,4 @@ void main()
|
|||||||
&& GetLocalInt(oPC, "DragonFireOn"))
|
&& GetLocalInt(oPC, "DragonFireOn"))
|
||||||
DoDragonfireSneak(oPC, oTarget, oItem);
|
DoDragonfireSneak(oPC, oTarget, oItem);
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
@@ -1,15 +1,211 @@
|
|||||||
//::///////////////////////////////////////////////
|
//::///////////////////////////////////////////////
|
||||||
//:: Name Forsaker
|
//:: Name Forsaker
|
||||||
//:: FileName prc_forsaker.nss
|
//:: FileName prc_forsaker.nss
|
||||||
//:: Created By: Stratosvarious
|
//:: Created By: Stratosvarious
|
||||||
//:: Edited By: Fencas
|
//:: Edited By: Fencas
|
||||||
//:://////////////////////////////////////////////
|
//:://////////////////////////////////////////////
|
||||||
#include "prc_inc_function"
|
|
||||||
#include "prc_inc_combat"
|
#include "prc_inc_function"
|
||||||
#include "inc_dynconv"
|
#include "prc_inc_combat"
|
||||||
#include "prc_alterations"
|
#include "inc_dynconv"
|
||||||
|
#include "prc_alterations"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int nEvent = GetRunningEvent();
|
||||||
|
if(DEBUG) DoDebug("prc_forsaker running, event: " + IntToString(nEvent));
|
||||||
|
|
||||||
|
// Get the PC. This is event-dependent
|
||||||
|
object oPC;
|
||||||
|
switch(nEvent)
|
||||||
|
{
|
||||||
|
case EVENT_ITEM_ONHIT: oPC = OBJECT_SELF; break;
|
||||||
|
case EVENT_ONPLAYEREQUIPITEM: oPC = GetItemLastEquippedBy(); break;
|
||||||
|
case EVENT_ONPLAYERUNEQUIPITEM: oPC = GetItemLastUnequippedBy(); break;
|
||||||
|
case EVENT_ONHEARTBEAT: oPC = OBJECT_SELF; break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
oPC = OBJECT_SELF;
|
||||||
|
}
|
||||||
|
object oItem;
|
||||||
|
object oArmor;
|
||||||
|
object oShield;
|
||||||
|
object oSkin = GetPCSkin(oPC);
|
||||||
|
|
||||||
|
int nSlot;
|
||||||
|
int nForsakerLvl = GetLevelByClass(CLASS_TYPE_FORSAKER, oPC);
|
||||||
|
int nForsakerLvlCheck;
|
||||||
|
int nBonus = nForsakerLvl/2;
|
||||||
|
int nRegen = 1 + nForsakerLvl/4;
|
||||||
|
int nSR = 10 + nForsakerLvl;
|
||||||
|
|
||||||
|
if(nEvent == FALSE)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Check if level up bonus has already been chosen and given for any of past Forsaker levels
|
||||||
|
for(nForsakerLvlCheck=1; nForsakerLvlCheck <= nForsakerLvl; nForsakerLvlCheck++)
|
||||||
|
{
|
||||||
|
if(!GetPersistantLocalInt(oPC, "ForsakerBoost"+IntToString(nForsakerLvlCheck)))
|
||||||
|
{
|
||||||
|
//Level up box for stat bonus
|
||||||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||||||
|
SetPersistantLocalInt(oPC,"ForsakerBoostCheck",nForsakerLvlCheck);
|
||||||
|
StartDynamicConversation("prc_forsake_abil", oPC, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oPC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fast healing 1 (+1 each 4 levels)
|
||||||
|
SetCompositeBonus(oSkin,"ForsakerFH",nRegen,ITEM_PROPERTY_REGENERATION);
|
||||||
|
|
||||||
|
//SR = 10 + Forsaker level
|
||||||
|
IPSafeAddItemProperty(oSkin, ItemPropertyBonusSpellResistance(GetSRByValue(nSR)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
|
||||||
|
//DR starting on level 2 = (level+1)/(Level/2)
|
||||||
|
if (nForsakerLvl >=2) ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectDamageReduction((nForsakerLvl+1),(nForsakerLvl/2)),oPC);
|
||||||
|
|
||||||
|
//Natural AC increase by CON starting on level 3
|
||||||
|
if (nForsakerLvl >= 3)
|
||||||
|
{
|
||||||
|
effect eEffect1 = EffectACIncrease(GetAbilityModifier(ABILITY_CONSTITUTION, oPC), AC_NATURAL_BONUS);
|
||||||
|
eEffect1 = ExtraordinaryEffect(eEffect1);
|
||||||
|
eEffect1 = TagEffect(eEffect1, "EffectToughDefense");
|
||||||
|
|
||||||
|
//Remove any prior bonus to avoid duplication
|
||||||
|
effect eCheckEffect = GetFirstEffect(oPC);
|
||||||
|
while (GetIsEffectValid(eCheckEffect))
|
||||||
|
{
|
||||||
|
if(GetEffectTag(eCheckEffect) == "EffectToughDefense") RemoveEffect(oPC, eCheckEffect);
|
||||||
|
eCheckEffect = GetNextEffect(oPC);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Give player the bonus
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect1, oPC);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!GetHasFeat(FEAT_VOWOFPOVERTY,oPC))
|
||||||
|
{
|
||||||
|
// REMOVED: Aggressive inventory scanning that was removing all magical items
|
||||||
|
// This was causing permanent property loss for players
|
||||||
|
// The Forsaker class should still prevent magical item usage through equip events
|
||||||
|
|
||||||
|
if(GetIsUnarmed(oPC) && (nForsakerLvl >= 3)) //If it is unarmed, give DR bypass
|
||||||
|
{
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAttackIncrease(nBonus),oPC);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAttackDecrease(nBonus),oPC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Hook in the events, needed from level 1 for Magic Hatred
|
||||||
|
if(DEBUG) DoDebug("prc_forsaker: Adding eventhooks");
|
||||||
|
AddEventScript(oPC, EVENT_ONPLAYEREQUIPITEM, "prc_forsaker", TRUE, FALSE);
|
||||||
|
AddEventScript(oPC, EVENT_ONPLAYERUNEQUIPITEM, "prc_forsaker", TRUE, FALSE);
|
||||||
|
}
|
||||||
|
// We are called from the OnPlayerEquipItem eventhook. Handle magical item restriction
|
||||||
|
else if(nEvent == EVENT_ONPLAYEREQUIPITEM)
|
||||||
|
{
|
||||||
|
oPC = GetItemLastEquippedBy();
|
||||||
|
oItem = GetItemLastEquipped();
|
||||||
|
if(DEBUG) DoDebug("prc_forsaker - OnEquip\n"
|
||||||
|
+ "oPC = " + DebugObject2Str(oPC) + "\n"
|
||||||
|
+ "oItem = " + DebugObject2Str(oItem) + "\n");
|
||||||
|
|
||||||
|
if(!GetHasFeat(FEAT_VOWOFPOVERTY,oPC))
|
||||||
|
{
|
||||||
|
// Check if item is a creature item - if so, skip magical item check
|
||||||
|
int nItemType = GetBaseItemType(oItem);
|
||||||
|
if(nItemType == BASE_ITEM_CBLUDGWEAPON ||
|
||||||
|
nItemType == BASE_ITEM_CPIERCWEAPON ||
|
||||||
|
nItemType == BASE_ITEM_CREATUREITEM ||
|
||||||
|
nItemType == BASE_ITEM_CSLASHWEAPON ||
|
||||||
|
nItemType == BASE_ITEM_CSLSHPRCWEAP)
|
||||||
|
{
|
||||||
|
// Item is a creature weapon, allow it
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the item being equipped is magical
|
||||||
|
// Only check the item being equipped, not entire inventory
|
||||||
|
int bIsMagical = FALSE;
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oItem);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
// Skip protected properties
|
||||||
|
if(GetItemPropertyTag(ipCheck) != "Tag_PRC_OnHitKeeper")
|
||||||
|
{
|
||||||
|
bIsMagical = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If item is magical and not a torch, unequip it
|
||||||
|
if(bIsMagical && GetResRef(oItem) != "nw_it_torch001")
|
||||||
|
{
|
||||||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||||||
|
AssignCommand(oPC, ActionUnequipItem(oItem));
|
||||||
|
FloatingTextStringOnCreature(GetName(oItem)+" is a magical item!", oPC, FALSE);
|
||||||
|
}
|
||||||
|
// If non-magical weapon and Forsaker has DR bypass, add bonuses
|
||||||
|
else if(!bIsMagical && (IPGetIsMeleeWeapon(oItem) || GetWeaponRanged(oItem)) && (nForsakerLvl >= 3))
|
||||||
|
{
|
||||||
|
// Add DR bypass bonuses to non-magical weapons
|
||||||
|
itemproperty ipAttack = ItemPropertyAttackBonus(nBonus);
|
||||||
|
ipAttack = TagItemProperty(ipAttack, "ForsakerDRBypass");
|
||||||
|
IPSafeAddItemProperty(oItem, ipAttack, 99999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
|
||||||
|
itemproperty ipPenalty = ItemPropertyAttackPenalty(nBonus);
|
||||||
|
ipPenalty = TagItemProperty(ipPenalty, "ForsakerDRBypass");
|
||||||
|
IPSafeAddItemProperty(oItem, ipPenalty, 99999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||||||
|
|
||||||
|
// Remove unarmed bonus
|
||||||
|
effect eLoop = GetFirstEffect(oPC);
|
||||||
|
while(GetIsEffectValid(eLoop))
|
||||||
|
{
|
||||||
|
if(GetEffectType(eLoop) == EFFECT_TYPE_ATTACK_INCREASE
|
||||||
|
|| GetEffectType(eLoop) == EFFECT_TYPE_ATTACK_DECREASE) RemoveEffect(oPC,eLoop);
|
||||||
|
eLoop = GetNextEffect(oPC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// We are called from the OnPlayerUnEquipItem eventhook. Clean up Forsaker properties
|
||||||
|
else if(nEvent == EVENT_ONPLAYERUNEQUIPITEM)
|
||||||
|
{
|
||||||
|
oPC = GetItemLastUnequippedBy();
|
||||||
|
oItem = GetItemLastUnequipped();
|
||||||
|
if(DEBUG) DoDebug("prc_forsaker - OnUnEquip\n"
|
||||||
|
+ "oPC = " + DebugObject2Str(oPC) + "\n"
|
||||||
|
+ "oItem = " + DebugObject2Str(oItem) + "\n"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Only remove properties that Forsaker actually added
|
||||||
|
if(IPGetIsMeleeWeapon(oItem) || GetWeaponRanged(oItem))
|
||||||
|
{
|
||||||
|
if (nForsakerLvl >= 3)
|
||||||
|
{
|
||||||
|
// Remove only tagged Forsaker properties
|
||||||
|
itemproperty ipCheck = GetFirstItemProperty(oItem);
|
||||||
|
while (GetIsItemPropertyValid(ipCheck))
|
||||||
|
{
|
||||||
|
if (GetItemPropertyTag(ipCheck) == "ForsakerDRBypass")
|
||||||
|
{
|
||||||
|
RemoveItemProperty(oItem, ipCheck);
|
||||||
|
}
|
||||||
|
ipCheck = GetNextItemProperty(oItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If now unarmed, give DR bypass back to player
|
||||||
|
if(GetIsUnarmed(oPC) && (nForsakerLvl >= 3))
|
||||||
|
{
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAttackIncrease(nBonus),oPC);
|
||||||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAttackDecrease(nBonus),oPC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void main()
|
|
||||||
|
/* void main()
|
||||||
{
|
{
|
||||||
int nEvent = GetRunningEvent();
|
int nEvent = GetRunningEvent();
|
||||||
if(DEBUG) DoDebug("prc_forsaker running, event: " + IntToString(nEvent));
|
if(DEBUG) DoDebug("prc_forsaker running, event: " + IntToString(nEvent));
|
||||||
@@ -173,7 +369,7 @@ void main()
|
|||||||
if (nForsakerLvl >= 3) RemoveSpecificProperty(oItem, ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER, -1, -1, 1, "", -1, DURATION_TYPE_TEMPORARY);
|
if (nForsakerLvl >= 3) RemoveSpecificProperty(oItem, ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER, -1, -1, 1, "", -1, DURATION_TYPE_TEMPORARY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} */
|
||||||
|
|
||||||
|
|
||||||
/* // We aren't being called from any event, instead from EvalPRCFeats
|
/* // We aren't being called from any event, instead from EvalPRCFeats
|
||||||
|
|||||||
12
nwn/nwnprc/trunk/scripts/prc_monk.nss
Normal file
12
nwn/nwnprc/trunk/scripts/prc_monk.nss
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#include "prc_inc_unarmed"
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
object oPC = OBJECT_SELF;
|
||||||
|
|
||||||
|
if(GetLevelByClass(CLASS_TYPE_MONK, oPC) > 0)
|
||||||
|
{
|
||||||
|
SetLocalInt(oPC, CALL_UNARMED_FEATS, TRUE);
|
||||||
|
SetLocalInt(oPC, CALL_UNARMED_FISTS, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,8 +17,9 @@ void main()
|
|||||||
if (GetIsObjectValid(oMeldshaper) && PRCGetIsAliveCreature(OBJECT_SELF))
|
if (GetIsObjectValid(oMeldshaper) && PRCGetIsAliveCreature(OBJECT_SELF))
|
||||||
{
|
{
|
||||||
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_NECROCARNUM_SHROUD);
|
int nEssentia = GetEssentiaInvested(oMeldshaper, MELD_NECROCARNUM_SHROUD);
|
||||||
float fDist = MetersToFeet(GetDistanceBetween(oMeldshaper, OBJECT_SELF));
|
float fDist = GetDistanceBetween(oMeldshaper, OBJECT_SELF);
|
||||||
float nCheck = 5.0 + nEssentia * 5.0;
|
//float fDist = MetersToFeet(GetDistanceBetween(oMeldshaper, OBJECT_SELF));
|
||||||
|
float nCheck = FeetToMeters(5.0 + nEssentia * 5.0);
|
||||||
if (nCheck >= fDist && GetHasSpellEffect(MELD_NECROCARNUM_SHROUD, oMeldshaper))
|
if (nCheck >= fDist && GetHasSpellEffect(MELD_NECROCARNUM_SHROUD, oMeldshaper))
|
||||||
{
|
{
|
||||||
if(PRCGetIsAliveCreature(OBJECT_SELF))
|
if(PRCGetIsAliveCreature(OBJECT_SELF))
|
||||||
|
|||||||
@@ -15,19 +15,24 @@
|
|||||||
|
|
||||||
#include "prc_inc_unarmed"
|
#include "prc_inc_unarmed"
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
//PrintString("Executing unarmed_caller");
|
DoDebug("unarmed_caller: FUNCTION STARTED");
|
||||||
int bCont = FALSE;
|
DoDebug("unarmed_caller: CALL_UNARMED_FEATS = " + IntToString(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FEATS)));
|
||||||
if(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FEATS))
|
DoDebug("unarmed_caller: CALL_UNARMED_FISTS = " + IntToString(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FISTS)));
|
||||||
{
|
|
||||||
UnarmedFeats(OBJECT_SELF);
|
int bCont = FALSE;
|
||||||
bCont = TRUE;
|
if(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FEATS))
|
||||||
}
|
{
|
||||||
if(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FISTS))
|
DoDebug("unarmed_caller: CALLING UnarmedFeats");
|
||||||
{
|
UnarmedFeats(OBJECT_SELF);
|
||||||
UnarmedFists(OBJECT_SELF);
|
bCont = TRUE;
|
||||||
bCont = TRUE;
|
}
|
||||||
|
if(GetLocalInt(OBJECT_SELF, CALL_UNARMED_FISTS))
|
||||||
|
{
|
||||||
|
DoDebug("unarmed_caller: CALLING UnarmedFists");
|
||||||
|
UnarmedFists(OBJECT_SELF);
|
||||||
|
bCont = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(bCont)
|
if(bCont)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
//:: modified by mr_bumpkin Dec 4, 2003
|
//:: modified by mr_bumpkin Dec 4, 2003
|
||||||
//:: modified by Ornedan Dec 22, 2004 to PnP rules
|
//:: modified by Ornedan Dec 22, 2004 to PnP rules
|
||||||
#include "prc_inc_spells"
|
#include "prc_inc_spells"
|
||||||
|
#include "prcsp_archmaginc"
|
||||||
#include "prc_add_spell_dc"
|
#include "prc_add_spell_dc"
|
||||||
|
|
||||||
|
|
||||||
@@ -59,7 +59,12 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
|||||||
|
|
||||||
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, aoeCreator))
|
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, aoeCreator))
|
||||||
{
|
{
|
||||||
//Fire cast spell at event for the specified target
|
// Check for Mastery of Shaping protection
|
||||||
|
if(CheckMasteryOfShapes(aoeCreator, oTarget))
|
||||||
|
{
|
||||||
|
return; // Target is protected, exit
|
||||||
|
}
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
|
||||||
|
|
||||||
//Concealement by fog happens no matter what
|
//Concealement by fog happens no matter what
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
//:: modified by Ornedan Dec 22, 2004 to PnP rules
|
//:: modified by Ornedan Dec 22, 2004 to PnP rules
|
||||||
#include "prc_inc_spells"
|
#include "prc_inc_spells"
|
||||||
#include "prc_add_spell_dc"
|
#include "prc_add_spell_dc"
|
||||||
|
#include "prcsp_archmaginc"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -71,7 +72,14 @@ SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
|||||||
fDelay = PRCGetRandomDelay();
|
fDelay = PRCGetRandomDelay();
|
||||||
if(spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE , aoeCreator) )
|
if(spellsIsTarget(oTarget,SPELL_TARGET_STANDARDHOSTILE , aoeCreator) )
|
||||||
{
|
{
|
||||||
//Fire cast spell at event for the specified target
|
if(CheckMasteryOfShapes(aoeCreator, oTarget))
|
||||||
|
{
|
||||||
|
// Target is protected by Mastery of Shaping, skip damage
|
||||||
|
oTarget = GetNextInPersistentObject();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fire cast spell at event for the specified target
|
||||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
|
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_CLOUDKILL));
|
||||||
|
|
||||||
nHD = GetHitDice(oTarget);
|
nHD = GetHitDice(oTarget);
|
||||||
|
|||||||
BIN
nwn/nwnprc/trunk/tools/nwn_script_comp.exe
Normal file
BIN
nwn/nwnprc/trunk/tools/nwn_script_comp.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user