Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
138 lines
5.5 KiB
Plaintext
138 lines
5.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
||
//:: Name Fiendish template script
|
||
//:: FileName tmp_m_fiend
|
||
//:: Copyright (c) 2001 Bioware Corp.
|
||
//:://////////////////////////////////////////////
|
||
/*
|
||
|
||
Fiendish Creature
|
||
|
||
Fiendish creatures dwell on the lower planes, the realms of evil, although they resemble beings found on
|
||
the Material Plane. They are more fearsome in appearance than their earthly counterparts.
|
||
|
||
Creating A Fiendish Creature
|
||
|
||
"Fiendish" is an inherited template that can be added to any corporeal aberration, animal, dragon, fey,
|
||
giant, humanoid, magical beast, monstrous humanoid, ooze, plant, or vermin of nongood alignment
|
||
(referred to hereafter as the base creature).
|
||
|
||
A fiendish creature uses all the base creature’s statistics and abilities except as noted here. Do not
|
||
recalculate the creature’s Hit Dice, base attack bonus, saves, or skill points if its type changes.
|
||
Size and Type
|
||
|
||
Animals or vermin with this template become magical beasts, but otherwise the creature type is unchanged.
|
||
Size is unchanged. Fiendish creatures encountered on the Material Plane have the extraplanar subtype.
|
||
Special Attacks
|
||
|
||
A fiendish creature retains all the special attacks of the base creature and also gains the following
|
||
special attack.
|
||
|
||
Smite Good (Su)
|
||
Once per day the creature can make a normal melee attack to deal extra damage equal to its HD total
|
||
(maximum of +20) against a good foe.
|
||
|
||
Special Qualities
|
||
A fiendish creature retains all the special qualities of the base creature and also gains the following.
|
||
|
||
Hit Dice Resistance to Cold and Fire Damage Reduction
|
||
1-3 5
|
||
4-7 5 5/magic
|
||
8-11 10 5/magic
|
||
12 or more 10 10/magic
|
||
|
||
* Darkvision out to 60 feet.
|
||
* Damage reduction (see table).
|
||
* Resistance to cold and fire (see table).
|
||
* Spell resistance equal to the creature’s HD + 5 (maximum 25).
|
||
|
||
If the base creature already has one or more of these special qualities, use the better value.
|
||
|
||
If a fiendish creature gains damage reduction, its natural weapons are treated as magic weapons for
|
||
the purpose of overcoming damage reduction.
|
||
|
||
Abilities
|
||
Same as the base creature, but Intelligence is at least 3.
|
||
|
||
Environment
|
||
Any evil-aligned plane.
|
||
|
||
Challenge Rating
|
||
HD 3 or less, as base creature; HD 4 to 7, as base creature +1; HD 8 or more, as base creature +2.
|
||
|
||
Alignment
|
||
Always evil (any).
|
||
|
||
Level Adjustment
|
||
Same as the base creature +2.
|
||
|
||
*/
|
||
//:://////////////////////////////////////////////
|
||
//:: Created By: Primogenitor
|
||
//:: Created On: 18/04/06
|
||
//:://////////////////////////////////////////////
|
||
|
||
#include "prc_inc_template"
|
||
#include "inc_nwnx_funcs"
|
||
|
||
void main()
|
||
{
|
||
object oPC = OBJECT_SELF;
|
||
object oSkin = GetPCSkin(oPC);
|
||
int nHD = GetHitDice(oPC);
|
||
itemproperty ipIP;
|
||
int bFuncs = GetPRCSwitch(PRC_NWNX_FUNCS);
|
||
|
||
//darkvision
|
||
ipIP = ItemPropertyDarkvision();
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
//SR
|
||
int nSR = nHD+5;
|
||
if(nSR > 25)
|
||
nSR = 25;
|
||
ipIP = ItemPropertyBonusSpellResistance(GetSRByValue(nSR));
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
//DR
|
||
if(nHD >= 4 && nHD <= 11)
|
||
{
|
||
ipIP = ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_1, IP_CONST_DAMAGESOAK_5_HP);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
}
|
||
else if(nHD >= 12)
|
||
{
|
||
ipIP = ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_1, IP_CONST_DAMAGESOAK_10_HP);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
}
|
||
//elemental resist
|
||
if(nHD <= 7)
|
||
{
|
||
ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGERESIST_5);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGERESIST_5);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
}
|
||
else if(nHD >= 8)
|
||
{
|
||
ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD, IP_CONST_DAMAGERESIST_10);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
ipIP = ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGERESIST_10);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
}
|
||
if(bFuncs)
|
||
{
|
||
//smite good
|
||
if(!PRC_Funcs_GetFeatKnown(oPC, FEAT_TEMPLATE_FIENDISH_SMITE_GOOD))
|
||
PRC_Funcs_AddFeat(oPC, FEAT_TEMPLATE_FIENDISH_SMITE_GOOD);
|
||
//marker feat
|
||
if(!PRC_Funcs_GetFeatKnown(oPC, FEAT_TEMPLATE_FIENDISH_MARKER))
|
||
PRC_Funcs_AddFeat(oPC, FEAT_TEMPLATE_FIENDISH_MARKER);
|
||
}
|
||
else
|
||
{
|
||
//smite good
|
||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_FIENDISH_SMITE_GOOD);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
//marker feat
|
||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_FIENDISH_MARKER);
|
||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, FALSE);
|
||
}
|
||
} |