public void DeadCheckPulse() { Thread.Sleep(5000); fl.Lock(); IsDead = isxwow.Me.Dead || isxwow.Me.IsGhost || isxwow.Me.Buff("Ressurection Sickness").IsValid; // we are dead, a ghost or have res sickness if (IsDead) LavishScript.Events.ExecuteEvent("GUI_BUTTON_HANDLE", "Resume"); else { fl.Unlock(); return; } int locks = fl.Locks; ta.Suspend(); for (int i = 1; i < fl.Locks; i++) // remove all framelocks - 1 fl.Unlock(); while (!isxwow.Me.IsGhost) // spirit not released yet { fl.Unlock(); Thread.Sleep(500); fl.Lock(); } if (isxwow.Me.IsGhost) // spirit released, lets walk to the spirit healer { LavishScript.Events.ExecuteEvent("GUI_BUTTON_HANDLE", "Resume"); } while (isxwow.Me.IsGhost) // not revived yet { fl.Unlock(); Thread.Sleep(500); fl.Lock(); } fl.Unlock(); Mount(); FlyTo(vendor); // we are there ApproachObject(new WoWObject("-units", "-repair", "-nearest")); // fly down to vendor and dismount LavishScript.Events.ExecuteEvent("GUI_BUTTON_HANDLE", "Resume"); // repair, sell and stuff fl.Lock(); while (isxwow.Me.Buff("Resurrection Sickness").IsValid) // wait for rezz sickness to wear off { fl.Unlock(); Thread.Sleep(500); fl.Lock(); } fl.Unlock(); while (fl.Locks < locks) // re-set lock count fl.Lock(); ta.Resume(); }