int GetIsSupernaturalCurse(effect eEff); void main() { object oPC = GetLastUsedBy(); if (!GetIsPC(oPC)) return; AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 1.0f, 7.0f)); object oTarget; oTarget = oPC; int nInt; nInt = GetObjectType(oTarget); effect eEffect; eEffect = EffectVisualEffect(VFX_IMP_TORNADO); if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(7.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget)); else DelayCommand(7.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget))); object oCaster; oCaster = GetObjectByTag("mystatue"); effect eBad = GetFirstEffect(oTarget); //Search for negative effects while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE || GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS || GetEffectType(eBad) == EFFECT_TYPE_DEAF || GetEffectType(eBad) == EFFECT_TYPE_CURSE || GetEffectType(eBad) == EFFECT_TYPE_DISEASE || GetEffectType(eBad) == EFFECT_TYPE_POISON || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_CHARMED || GetEffectType(eBad) == EFFECT_TYPE_DOMINATED || GetEffectType(eBad) == EFFECT_TYPE_DAZED || GetEffectType(eBad) == EFFECT_TYPE_CONFUSED || GetEffectType(eBad) == EFFECT_TYPE_FRIGHTENED || GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL || GetEffectType(eBad) == EFFECT_TYPE_PARALYZE || GetEffectType(eBad) == EFFECT_TYPE_SLOW || GetEffectType(eBad) == EFFECT_TYPE_STUNNED) { DelayCommand(8.0, RemoveEffect(oTarget, eBad)); } eBad = GetNextEffect(oTarget); } int nHeal = GetMaxHitPoints(oTarget)- GetCurrentHitPoints(oTarget); effect eHeal = EffectHeal(nHeal); DelayCommand(8.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget)); }