void main() { object oPC; object oTarget; oPC = GetItemActivator(); int nInt; nInt = GetObjectType(oPC); effect eEffect; eEffect = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL); if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC)); else DelayCommand(4.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oPC))); nInt = GetObjectType(oPC); eEffect = EffectVisualEffect(VFX_IMP_TORNADO); if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(8.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC)); else DelayCommand(9.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oPC))); location lTarget; oTarget = GetWaypointByTag("startpoint"); lTarget = GetLocation(oTarget); if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return; SetLocalLocation(oPC, "ls_stored_loc", GetLocation(oPC)); DelayCommand(10.0, AssignCommand(oPC, ClearAllActions())); DelayCommand(13.0, AssignCommand(oPC, ActionJumpToLocation(lTarget))); eEffect = EffectVisualEffect(VFX_IMP_UNSUMMON); DelayCommand(10.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC)); }