No, I will look in the include hak again and double check through. And yes I have all the files in the include directory.
Why would you remove includes from inside the script itself? or it just attaches as necessary from all the include directory if functions don't exist?
//::///////////////////////////////////////////////
//:: Dragon Disciple Immunities
//:: prc_dradis.nss
//::///////////////////////////////////////////////
/*
Applies a variety of immunities to the multiple dragon disciple types.
*/
//:://////////////////////////////////////////////
//:: Created By: Silver
//:: Created On: Apr 27, 2005
//:://////////////////////////////////////////////
#include "prc_inc_natweap"
#include "prc_ip_srcost"
#include "pnp_shft_poly"
#include "prc_compan_inc"
//Adds total elemental immunity for the majority of dragon types.
void ElImmune(object oPC ,object oSkin ,int bResisEle ,int iType)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyDamageImmunity(iType,bResisEle),oSkin));
}
//Adds poison immunity for certain dragon types.
//also adds immunity to level drain for shadow dragons.
void PoisImmu(object oPC ,object oSkin ,int bResisEle ,int pImmune)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyImmunityMisc(pImmune),oSkin));
}
//Adds disease immunity for certain dragon types.
void DisImmu(object oPC ,object oSkin ,int bResisEle ,int dImmune)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyImmunityMisc(dImmune),oSkin));
}
//Adds specific spell immunities for certain dragon types.
void SpellImmu(object oPC ,object oSkin ,int bResisEle ,int iSpell)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertySpellImmunitySpecific(iSpell),oSkin));
}
//Adds more spell immunities for certain dragon types.
void SpellImmu2(object oPC ,object oSkin ,int bResisEle ,int iSpel2)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertySpellImmunitySpecific(iSpel2),oSkin));
}
//Adds resistance 10 to cold and fire damage.
void SmallResist(object oPC ,object oSkin ,int bResisEle ,int sResis)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE,sResis),oSkin));
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD,sResis),oSkin));
}
//Adds immunity 50% to sonic and fire damage.
void LargeResist(object oPC ,object oSkin ,int bResisEle ,int lResis)
{
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_FIRE,lResis),oSkin));
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyDamageImmunity(IP_CONST_DAMAGETYPE_SONIC,lResis),oSkin));
}
//Adds Spell Resistance of 20+Level to all Dragon Disciples at level 18.
void SpellResis(object oPC ,object oSkin ,int nLevel)
{
int nSR = 20+nLevel;
nSR = GetSRByValue(nSR);
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyBonusSpellResistance(nSR),oSkin));
}
//Adds True Seeing to all Dragon Disciples at level 20.
void SeeTrue(object oPC ,object oSkin ,int nLevel)
{
if(GetPRCSwitch(PRC_PNP_TRUESEEING))
{
effect eSight = EffectSeeInvisible();
int nSpot = GetPRCSwitch(PRC_PNP_TRUESEEING_SPOT_BONUS);
if(nSpot == 0)
nSpot = 15;
effect eSpot = EffectSkillIncrease(SKILL_SPOT, nSpot);
effect eUltra = EffectUltravision();
eSight = EffectLinkEffects(eSight, eSpot);
eSight = EffectLinkEffects(eSight, eUltra);
eSight = SupernaturalEffect(eSight);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSight, oPC);
}
else
DelayCommand(0.1, AddItemProperty(DURATION_TYPE_PERMANENT,ItemPropertyTrueSeeing(),oSkin));
}
void main()
{
//Declare main variables.
object oPC = OBJECT_SELF;
object oSkin = GetPCSkin(oPC);
//Elemental Immunities for various dragon types.
int iType = GetHasFeat(FEAT_BLACK_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ACID :
GetHasFeat(FEAT_BROWN_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ACID :
GetHasFeat(FEAT_COPPER_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ACID :
GetHasFeat(FEAT_GREEN_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ACID :
GetHasFeat(FEAT_BRASS_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_FIRE :
GetHasFeat(FEAT_GOLD_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_FIRE :
GetHasFeat(FEAT_RED_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_FIRE :
GetHasFeat(FEAT_LUNG_WANG_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_FIRE :
GetHasFeat(FEAT_BATTLE_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_SONIC :
GetHasFeat(FEAT_EMERALD_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_SONIC :
GetHasFeat(FEAT_HOWLING_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_SONIC :
GetHasFeat(FEAT_BLUE_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_BRONZE_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_OCEANUS_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_SAPPHIRE_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_SONG_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_SHEN_LUNG_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_ELECTRICAL :
GetHasFeat(FEAT_CRYSTAL_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_COLD :
GetHasFeat(FEAT_TOPAZ_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_COLD :
GetHasFeat(FEAT_SILVER_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_COLD :
GetHasFeat(FEAT_WHITE_DRAGON, oPC) ? IP_CONST_DAMAGETYPE_COLD :
-1; // If none match, make the itemproperty invalid
int lResis = GetHasFeat(FEAT_PYROCLASTIC_DRAGON, oPC) ? IP_CONST_DAMAGEIMMUNITY_50_PERCENT :
-1; // If none match, make the itemproperty invalid
//Random Immunities for various Dragon types.
int pImmune = GetHasFeat(FEAT_AMETHYST_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_POISON :
GetHasFeat(FEAT_SONG_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_POISON :
GetHasFeat(FEAT_STYX_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_POISON :
GetHasFeat(FEAT_SHEN_LUNG_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_POISON :
GetHasFeat(FEAT_SHADOW_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_LEVEL_ABIL_DRAIN :
-1; // If none match, make the itemproperty invalid
int dImmune = GetHasFeat(FEAT_STYX_DRAGON, oPC) ? IP_CONST_IMMUNITYMISC_DISEASE :
-1; // If none match, make the itemproperty invalid
int iSpell = GetHasFeat(FEAT_DEEP_DRAGON, oPC) ? IP_CONST_IMMUNITYSPELL_CHARM_PERSON_OR_ANIMAL :
GetHasFeat(FEAT_CHAOS_DRAGON, oPC) ? IP_CONST_IMMUNITYSPELL_CONFUSION :
GetHasFeat(FEAT_TIEN_LUNG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_LUNG_WANG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_CHIANG_LUNG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_PAN_LUNG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_SHEN_LUNG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_TUN_MI_LUNG_DRAGON, oPC) ? SPELL_DROWN :
GetHasFeat(FEAT_YU_LUNG_DRAGON, oPC) ? SPELL_DROWN :
-1; // If none match, make the itemproperty invalid
int iSpel2 = GetHasFeat(FEAT_TIEN_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_LUNG_WANG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_CHIANG_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_PAN_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_SHEN_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_TUN_MI_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
GetHasFeat(FEAT_YU_LUNG_DRAGON, oPC) ? SPELL_MASS_DROWN :
-1; // If none match, make the itemproperty invalid
int sResis = GetHasFeat(FEAT_DEEP_DRAGON, oPC) ? IP_CONST_DAMAGERESIST_10 :
-1; // If none match, make the itemproperty invalid
int sCale1 = GetHasFeat(FAST_HEALING_1,oPC);
int sCale2 = GetHasFeat(FAST_HEALING_2,oPC);
int nWingType = GetHasFeat(FEAT_BLACK_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLACK :
GetHasFeat(FEAT_BLUE_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_AMETHYST_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_SAPPHIRE_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_TOPAZ_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_BRASS_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BRASS :
GetHasFeat(FEAT_BRONZE_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BRONZE :
GetHasFeat(FEAT_COPPER_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_GOLD_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_GOLD :
GetHasFeat(FEAT_GREEN_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_GREEN :
GetHasFeat(FEAT_EMERALD_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_GREEN :
GetHasFeat(FEAT_SILVER_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_SILVER :
GetHasFeat(FEAT_CRYSTAL_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_SILVER :
GetHasFeat(FEAT_WHITE_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_WHITE :
GetHasFeat(FEAT_RED_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_RED :
GetHasFeat(FEAT_BATTLE_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_COPPER2 :
GetHasFeat(FEAT_CHAOS_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_COPPER2 :
GetHasFeat(FEAT_FANG_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_COPPER2 :
GetHasFeat(FEAT_HOWLING_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_COPPER2 :
GetHasFeat(FEAT_BROWN_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BRONZE2 :
GetHasFeat(FEAT_DEEP_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BRONZE2 :
GetHasFeat(FEAT_RUST_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BRONZE2 :
GetHasFeat(FEAT_ETHEREAL_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_WHITE2 :
GetHasFeat(FEAT_OCEANUS_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE2 :
GetHasFeat(FEAT_SONG_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLUE2 :
GetHasFeat(FEAT_PYROCLASTIC_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_RED2 :
GetHasFeat(FEAT_RADIANT_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_GOLD2 :
GetHasFeat(FEAT_SHADOW_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_BLACK2 :
GetHasFeat(FEAT_STYX_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_GREEN2 :
GetHasFeat(FEAT_TARTIAN_DRAGON, oPC) ? PRC_WING_TYPE_DRAGON_SILVER2 :
PRC_WING_TYPE_DRAGON_RED;
int nTailType = GetHasFeat(FEAT_BLACK_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLACK :
GetHasFeat(FEAT_SHADOW_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLACK :
GetHasFeat(FEAT_BLUE_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_AMETHYST_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_SAPPHIRE_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_TOPAZ_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_OCEANUS_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_SONG_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BLUE :
GetHasFeat(FEAT_BRASS_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BRASS :
GetHasFeat(FEAT_BRONZE_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BRONZE :
GetHasFeat(FEAT_BROWN_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BRONZE :
GetHasFeat(FEAT_DEEP_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BRONZE :
GetHasFeat(FEAT_RUST_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_BRONZE :
GetHasFeat(FEAT_COPPER_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_BATTLE_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_CHAOS_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_FANG_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_HOWLING_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_COPPER :
GetHasFeat(FEAT_GOLD_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_GOLD :
GetHasFeat(FEAT_RADIANT_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_GOLD :
GetHasFeat(FEAT_GREEN_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_GREEN :
GetHasFeat(FEAT_EMERALD_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_GREEN :
GetHasFeat(FEAT_STYX_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_GREEN :
GetHasFeat(FEAT_SILVER_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_SILVER :
GetHasFeat(FEAT_CRYSTAL_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_SILVER :
GetHasFeat(FEAT_TARTIAN_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_SILVER :
GetHasFeat(FEAT_WHITE_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_WHITE :
GetHasFeat(FEAT_ETHEREAL_DRAGON, oPC) ? PRC_TAIL_TYPE_DRAGON_WHITE :
PRC_TAIL_TYPE_DRAGON_RED;
int nLevel = GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE,oPC);
//natural weapons
//bite at level 2
//2 claws at level 2
//2 wing slam at level 12
//tail slam at level 17
if(nLevel >= 2)
{
int nSize = PRCGetCreatureSize(oPC);
if(GetHasFeat(DRACONIC_BITE, oPC))
{
string sResRef = "prc_rdd_bite_";
sResRef += GetAffixForSize(nSize);
AddNaturalSecondaryWeapon(oPC, sResRef);
//claw here
sResRef = "prc_claw_1d6l_";
sResRef += GetAffixForSize(nSize);
AddNaturalPrimaryWeapon(oPC, sResRef, 2);
}
if(GetHasFeat(DRACONIC_WINGSLAMS, oPC))
{
string sResRef = "prc_rdd_wing_";
sResRef += GetAffixForSize(nSize);
if(nSize >= CREATURE_SIZE_MEDIUM)
AddNaturalSecondaryWeapon(oPC, sResRef, 2);
}
if(GetHasFeat(DRACONIC_TAILSLAP, oPC))
{
string sResRef = "prc_rdd_tail_";
sResRef += GetAffixForSize(nSize);
if(nSize >= CREATURE_SIZE_LARGE)
AddNaturalSecondaryWeapon(oPC, sResRef);
}
}
int thickScale = -1;
if(GetHasFeat(DRACONIC_ARMOR_AUG_2,oPC))
thickScale = 2;
else if(GetHasFeat(DRACONIC_ARMOR_AUG_1,oPC))
thickScale = 1;
SetCompositeBonus(oSkin, "ScaleThicken", thickScale, ITEM_PROPERTY_AC_BONUS);
int bResisEle = GetHasFeat(FEAT_DRACONIC_IMMUNITY, oPC) ? IP_CONST_DAMAGEIMMUNITY_100_PERCENT : 0;
if (bResisEle>0) ElImmune(oPC,oSkin,bResisEle,iType);
if (bResisEle>0) PoisImmu(oPC,oSkin,bResisEle,pImmune);
if (bResisEle>0) DisImmu(oPC,oSkin,bResisEle,dImmune);
if (bResisEle>0) SpellImmu(oPC,oSkin,bResisEle,iSpell);
if (bResisEle>0) SpellImmu2(oPC,oSkin,bResisEle,iSpel2);
if (bResisEle>0) SmallResist(oPC,oSkin,bResisEle,sResis);
if (bResisEle>0) LargeResist(oPC,oSkin,bResisEle,lResis);
if (nLevel>17) SpellResis(oPC,oSkin,nLevel);
if (nLevel>16 && GetPersistantLocalInt(oPC, "DragonDiscipleTailApplied") == 0)
{
SetPersistantLocalInt(oPC, "DragonDiscipleTailApplied", 1);
SetCreatureTailType(nTailType, oPC);
}
//if (nLevel>8) DelayCommand(1.0f, SetCreatureWingType(nWingType, oPC));
if (nLevel>8)
{
//we don't use default RDD wings to make sure this will work
if(GetCreatureWingType(oPC) == CREATURE_WING_TYPE_DRAGON)
SetCreatureWingType(nWingType, oPC);
}
if (nLevel>19) SeeTrue(oPC,oSkin,nLevel);
//dragon disciple lichs get (almost) draco-lich wings and bony tail at lich 4 ;)
if(nLevel>8 && GetLevelByClass(CLASS_TYPE_LICH, oPC) >= 4) SetCreatureWingType(PRC_WING_TYPE_DRAGON_BRONZE2, oPC);
if(nLevel>16 && GetLevelByClass(CLASS_TYPE_LICH, oPC) >= 4) SetCreatureTailType(CREATURE_TAIL_TYPE_BONE, oPC);
}
File as extracted from PRC_scripts.