Jaysyn904 d1c309ae63 Initial commit
Initial commit
2024-09-13 09:10:39 -04:00

62 lines
2.2 KiB
Plaintext

#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
//Declare major variables
//Get the object that is exiting the AOE
object oTarget = GetExitingObject();
int bValid = FALSE;
int bAttack = FALSE;
int bDamage = FALSE;
int bHP = FALSE;
int bSaves = FALSE;
int bVis = FALSE;
effect eAOE;
int nEffectType;
if(GetLocalInt(oTarget,"DEAura"))
{
//Search through the valid effects on the target.
eAOE = GetFirstEffect(oTarget);
while (GetIsEffectValid(eAOE) && bValid == FALSE)
{
// SendMessageToPC(oPC,"EffectCreator is "+ GetName(GetEffectCreator(eAOE)));
if (GetEffectCreator(eAOE) == GetAreaOfEffectCreator(OBJECT_SELF))
{
nEffectType = GetEffectType(eAOE);
if ( (nEffectType == EFFECT_TYPE_ATTACK_INCREASE) ||
(nEffectType == EFFECT_TYPE_DAMAGE_INCREASE) ||
(nEffectType == EFFECT_TYPE_SAVING_THROW_INCREASE) ||
(nEffectType == EFFECT_TYPE_VISUALEFFECT) ||
(nEffectType == EFFECT_TYPE_TEMPORARY_HITPOINTS) )
{
//If the effect was created by the Acid_Fog then remove it
if(GetEffectSpellId(eAOE) == -1)
{
RemoveEffect(oTarget, eAOE);
if ( nEffectType == EFFECT_TYPE_ATTACK_INCREASE )
bAttack = TRUE;
if ( nEffectType == EFFECT_TYPE_DAMAGE_INCREASE )
bDamage = TRUE;
if ( nEffectType == EFFECT_TYPE_SAVING_THROW_INCREASE )
bSaves = TRUE;
if ( nEffectType == EFFECT_TYPE_TEMPORARY_HITPOINTS )
bHP = TRUE;
if ( nEffectType == EFFECT_TYPE_VISUALEFFECT )
bVis = TRUE;
if ( bAttack && bDamage && bSaves && bHP && bVis )
bValid = TRUE;
}
}
}
//Get next effect on the target
eAOE = GetNextEffect(oTarget);
}
SetLocalInt(oTarget,"DEAura",0);
}
}