Initial upload.
Adding base PRC 4.19a files to repository.
This commit is contained in:
89
trunk/spells/x2_s0_hellfire.nss
Normal file
89
trunk/spells/x2_s0_hellfire.nss
Normal file
@@ -0,0 +1,89 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Aura of Fire
|
||||
//:: NW_S1_AuraFire.nss
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Upon entering the aura of the creature the player
|
||||
must make a will save or be stunned.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Preston Watamaniuk
|
||||
//:: Created On: May 25, 2001
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_alterations"
|
||||
|
||||
//:: altered by mr_bumpkin Dec 4, 2003 for prc stuff
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_add_spell_dc"
|
||||
|
||||
void BurstWeapon(object oWeapon, float fDur)
|
||||
{
|
||||
itemproperty ipFlames = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEBONUS_2d8);
|
||||
DelayCommand(2.0, AddItemProperty(DURATION_TYPE_TEMPORARY, ipFlames, oWeapon, fDur));
|
||||
|
||||
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||||
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_EVOCATION);
|
||||
|
||||
/*//Set and apply AOE object
|
||||
if (!X2PreSpellCastCode())
|
||||
{
|
||||
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
|
||||
return;
|
||||
} */
|
||||
|
||||
//Declare major variables
|
||||
effect eVis = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
|
||||
int CasterLvl = PRCGetCasterLevel(OBJECT_SELF);
|
||||
int nDuration = CasterLvl;
|
||||
int nMetaMagic = PRCGetMetaMagicFeat();
|
||||
object oTarget = OBJECT_SELF;
|
||||
int nDamageType = ChangedElementalDamage(OBJECT_SELF, DAMAGE_TYPE_FIRE);
|
||||
|
||||
effect eShield = EffectDamageShield(nDuration, DAMAGE_BONUS_2d6, nDamageType);
|
||||
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
|
||||
effect eFire = EffectDamageImmunityIncrease(nDamageType, 100);
|
||||
|
||||
//Link effects
|
||||
effect eLink = EffectLinkEffects(eShield, eFire);
|
||||
eLink = EffectLinkEffects(eLink, eDur);
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
|
||||
//Fire cast spell at event for the specified target
|
||||
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, 761, FALSE));
|
||||
|
||||
//Enter Metamagic conditions
|
||||
if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
|
||||
{
|
||||
nDuration = nDuration * 2; //Duration is +100%
|
||||
}
|
||||
//Apply the VFX impact and effects
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration),TRUE,-1,CasterLvl);
|
||||
effect eAOE = EffectAreaOfEffect(AOE_MOB_FIRE, "x2_s0_hellfirea", "x2_s0_hellfirec");
|
||||
|
||||
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAOE, OBJECT_SELF, RoundsToSeconds(nDuration),TRUE,-1,CasterLvl);
|
||||
//ExecuteScript(, OBJECT_SELF);
|
||||
|
||||
object oAoE = GetAreaOfEffectObject(GetLocation(OBJECT_SELF), "VFX_MOB_FIRE");
|
||||
SetAllAoEInts(761, oAoE, PRCGetSpellSaveDC(761, SPELL_SCHOOL_EVOCATION), 0, CasterLvl);
|
||||
|
||||
// weapon burst into flames... (with a little delay so enemies can see the weapon bursting).
|
||||
object oWeaponRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, OBJECT_SELF);
|
||||
object oWeaponLeft = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, OBJECT_SELF);
|
||||
if(oWeaponRight != OBJECT_INVALID)
|
||||
BurstWeapon(oWeaponRight, RoundsToSeconds(nDuration));
|
||||
if(oWeaponLeft != OBJECT_INVALID)
|
||||
BurstWeapon(oWeaponLeft, RoundsToSeconds(nDuration));
|
||||
|
||||
|
||||
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
||||
// Erasing the variable used to store the spell's spell school
|
||||
}
|
Reference in New Issue
Block a user