62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: Draconic Aura Exit
|
||
|
//:: prc_dracaura_out.nss
|
||
|
//::///////////////////////////////////////////////
|
||
|
/*
|
||
|
Handles PCs leaving the Aura AoE for all
|
||
|
draconic auras.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Created By: xwarren
|
||
|
//:: Created On: Apr 2, 2011
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
#include "prc_alterations"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
//Declare major variables
|
||
|
object oAura = OBJECT_SELF;
|
||
|
object oTarget = GetExitingObject();
|
||
|
object oShaman = GetAreaOfEffectCreator();
|
||
|
int nAuraID = GetLocalInt(oAura, "SpellID");
|
||
|
int nDamageType = GetLocalInt(oAura, "DamageType");
|
||
|
|
||
|
if(GetHasSpellEffect(nAuraID, oTarget))
|
||
|
{
|
||
|
if(nAuraID == SPELL_SECOND_AURA_MAGICPOWER && GetLocalInt(oTarget, "MagicPowerAura") == GetLocalInt(oShaman, "MagicPowerAura"))
|
||
|
DeleteLocalInt(oTarget,"MagicPowerAura");
|
||
|
else if(nAuraID == SPELL_SECOND_AURA_ENERGY)
|
||
|
{
|
||
|
if((GetLocalInt(oTarget, "AcidEnergyAura") == GetLocalInt(oShaman, "AcidEnergyAura"))
|
||
|
&& nDamageType == DAMAGE_TYPE_ACID)
|
||
|
DeleteLocalInt(oTarget, "AcidEnergyAura");
|
||
|
if((GetLocalInt(oTarget, "ColdEnergyAura") == GetLocalInt(oShaman, "ColdEnergyAura"))
|
||
|
&& nDamageType == DAMAGE_TYPE_COLD)
|
||
|
DeleteLocalInt(oTarget, "ColdEnergyAura");
|
||
|
if((GetLocalInt(oTarget, "ElecEnergyAura") == GetLocalInt(oShaman, "ElecEnergyAura"))
|
||
|
&& nDamageType == DAMAGE_TYPE_ELECTRICAL)
|
||
|
DeleteLocalInt(oTarget, "ElecEnergyAura");
|
||
|
if((GetLocalInt(oTarget, "FireEnergyAura") == GetLocalInt(oShaman, "FireEnergyAura"))
|
||
|
&& nDamageType == DAMAGE_TYPE_FIRE)
|
||
|
DeleteLocalInt(oTarget, "FireEnergyAura");
|
||
|
}
|
||
|
|
||
|
//Search through the valid effects on the target.
|
||
|
effect eAOE = GetFirstEffect(oTarget);
|
||
|
while (GetIsEffectValid(eAOE))
|
||
|
{
|
||
|
if (GetEffectCreator(eAOE) == oShaman)
|
||
|
{
|
||
|
//If the effect was created by the AOE then remove it
|
||
|
if(GetEffectSpellId(eAOE) == nAuraID)
|
||
|
{
|
||
|
RemoveEffect(oTarget, eAOE);
|
||
|
}
|
||
|
}
|
||
|
//Get next effect on the target
|
||
|
eAOE = GetNextEffect(oTarget);
|
||
|
}
|
||
|
}
|
||
|
}
|