public override void Run() { if (firstBool) { tmpTimer = new cTimer(10000); while (!tmpTimer.IsReady() && ObjectManager.playerPtr == 0) Thread.CurrentThread.Join(100); Ingame.BackToLogin(); tmpTimer = new cTimer(10000); while (!tmpTimer.IsReady() && ObjectManager.playerPtr == 0) Thread.CurrentThread.Join(100); firstBool = false; failTrys = 0; } if (Ingame.IsDc()) { if (ObjectManager.LoginState == "login") { Calls.DoString("DefaultServerLogin('" + Data.AccName + "', '" + Data.AccPw + "');"); tmpTimer = new cTimer(600000); while (!tmpTimer.IsReady() && ObjectManager.playerPtr == 0 && ObjectManager.LoginState == "login") Thread.CurrentThread.Join(100); failTrys = failTrys + 1; if (failTrys >= 2) { firstBool = true; } } if (ObjectManager.LoginState == "charselect") { Calls.DoString("EnterWorld();"); EnterWorldTimer.Reset(); while (!EnterWorldTimer.IsReady() && ObjectManager.playerPtr == 0) Thread.CurrentThread.Join(100); } gotDc = true; } else { if (ObjectManager.playerPtr != 0) { Thread.CurrentThread.Join(3000); Calls.SetMovementFlags(0); gotDc = false; firstBool = true; Data.curWp = 0; Ingame.Tele(Data.Profile[0], 60, false); GrindbotContainer.StuckTimer.Reset(); GrindbotContainer.IsStuck = false; ObjectManager.ExecuteOnce = true; ChatReader.ClearChat = true; GrindbotContainer.resetEngage = true; } } }
public override void Run() { slaveStates.returnCoords = false; MasterContainer.StuckTimer.Reset(); MasterContainer.IsStuck = false; MasterContainer.resetEngage = true; Calls.StopRunning(); Thread.CurrentThread.Join(1000); if (Calls.MovementIsOnly(0x0)) { if (!locationSaved) { MasterContainer.StuckTimer.Reset(); curPoint = new Objects.Location(ObjectManager.PlayerObject.Pos.x, ObjectManager.PlayerObject.Pos.y, ObjectManager.PlayerObject.Pos.z); locationSaved = true; IsVendoring = true; failCounter = 0; failCounter2 = 0; } else { if (Data.VendorLocation.differenceToPlayer() > 2) { if (ObjectManager.playerClass == (uint)Constants.Offsets.classIds.Warlock || ObjectManager.playerClass == (uint)Constants.Offsets.classIds.Hunter) { if (Ingame.GotPet()) { Ingame.DismissPet(); } else { Ingame.Tele(Data.VendorLocation, 60, false); } } else { Ingame.Tele(Data.VendorLocation, 60, false); } } else { if (ObjectManager.playerClass == (byte)Constants.Offsets.classIds.Druid) { SpellManager.CheckSpells(); if (Ingame.druidIsBear()) Ingame.Cast("Bear Form", false); if (Ingame.druidIsCat()) Ingame.Cast("Cat Form", false); Ingame.CastFinal(); } if (Ingame.IsVendorFrameOpen()) { Ingame.SellAllBut(Data.ProtectedItems); cTimer waitTimer = new cTimer(1000); while (!waitTimer.IsReady()) Thread.CurrentThread.Join(100); failCounter2 = failCounter2 + 1; if (Data.gotVendor && ObjectManager.FreeBagSlots <= Data.LeaveFreeSlots) { if (failCounter2 >= 20) { MasterContainer.StopVendor = true; if (Data.StopOnVendorFail) { Master.engine.StopEngine(); Master.Dispose(); } else { GoBack(); } } } else { GoBack(); } } else { Objects.UnitObject tmpObj = ObjectManager.GetUnitByName(Data.VendorName); if (tmpObj.baseAdd != 0) { Calls.OnRightClickUnit(tmpObj.baseAdd, 1); } else { failCounter = failCounter + 1; } cTimer waitTimer = new cTimer(1000); while (!waitTimer.IsReady()) Thread.CurrentThread.Join(100); if (failCounter >= 6) { MasterContainer.StopVendor = true; GoBack(); } } } } } else { Calls.StopRunning(); } }