public override void Run() { if (ObjectManager.FreeBagSlots > 3) { StockadesContainer.done = false; Calls.DoString("ResetInstances();"); StockadesContainer.doOncePerRun = true; Ingame.Tele(StockadesContainer.posZoneIn1, 60, true); Ingame.setCoords(StockadesContainer.posZoneIn2); while (StockadesContainer.isOutside && ObjectManager.FreeBagSlots > 3 && !Ingame.IsDc()) { Thread.CurrentThread.Join(10); } } else { if (ObjectManager.isGhost) { Ingame.Tele(spiritHealerPos, 5, false); spiritHealer = ObjectManager.GetUnitByName("Spirit Healer"); if (spiritHealer.baseAdd != 0) { Calls.OnRightClickUnit(spiritHealer.baseAdd, 0); Thread.CurrentThread.Join(250); while (ObjectManager.isGhost && !Ingame.IsDc()) { Calls.OnRightClickUnit(spiritHealer.baseAdd, 0); Thread.CurrentThread.Join(500); Calls.DoString("AcceptXPLoss();"); Thread.CurrentThread.Join(500); } } } else { Ingame.Tele(StockadesContainer.posVendor, 60, false); vendor = ObjectManager.GetUnitByName(StockadesContainer.nameVendor); if (vendor.baseAdd != 0) { Calls.OnRightClickUnit(vendor.baseAdd, 1); if (Ingame.IsVendorFrameOpen()) { Ingame.SellAll(); } } } } }
private void Run() { int runCounter = 0; while (Running) { try { if (ObjectManager.isProcessOpen) { if (ObjectManager.IsWowCrashed()) { Process.GetProcessById(BmWrapper.memory.ProcessId).Kill(); continue; } if (ObjectManager.LoginState == "login") { Calls.DoString("DefaultServerLogin('" + Data.AccName + "', '" + Data.AccPw + "');"); int wait = 0; while (!ObjectManager.IsWowCrashed() && ObjectManager.characterCount() == 0) { Thread.Sleep(500); wait++; if (wait >= 120) { Process.GetProcessById(BmWrapper.memory.ProcessId).Kill(); break; } } afterDc = true; } else if (ObjectManager.LoginState == "charselect" && afterDc) { if (!ObjectManager.IsWowCrashed()) { // Enter -> Login SendMessage(BmWrapper.memory.WindowHandle, WM_KEYDOWN, 0x0D, 0); SendMessage(BmWrapper.memory.WindowHandle, WM_KEYUP, 0x0D, 0); } while (!ObjectManager.IsWowCrashed() && ObjectManager.playerPtr == 0 && Running) { Thread.Sleep(100); } while (!ObjectManager.IsWowCrashed() && ObjectManager.PlayerObject.Pos.x == 0 && Running) { Thread.Sleep(100); } if (!ObjectManager.IsWowCrashed()) { Ingame.Tele(Mailbox, 60, true); Calls.SendMovementUpdate(0xEE, (uint)Environment.TickCount); } } if (runCounter < 60) { if (ObjectManager.playerPtr != 0) { while (!ObjectManager.IsWowCrashed() && ObjectManager.PlayerObject.Pos.differenceTo(Mailbox) > 2) { Ingame.Tele(Mailbox, 60, true); } afterDc = false; Calls.AntiAfk(); Objects.GameObject mailbox = new Objects.GameObject(0, 0, 0); while (!ObjectManager.IsWowCrashed() && mailbox.baseAdd == 0 && Running && !(ObjectManager.LoginState == "login")) { mailbox = ObjectManager.GetGameObjectById(mbId); } if (!ObjectManager.IsWowCrashed()) { Calls.OnRightClickObject(mailbox.baseAdd, 0); } while (!ObjectManager.IsWowCrashed() && !(Calls.GetText(mailLua, "troll1", 10).Trim() == "true") && Running && !(ObjectManager.LoginState == "login")) { Thread.Sleep(100); } Thread.Sleep(1500); if (!ObjectManager.IsWowCrashed()) { //Calls.DoString("TakeInboxItem(1, 1) Logout()"); SendMessage(BmWrapper.memory.WindowHandle, WM_KEYDOWN, 0x31, 0); SendMessage(BmWrapper.memory.WindowHandle, WM_KEYUP, 0x31, 0); Calls.PacketZoneChange(); Calls.PacketSendLogout(); } while (!ObjectManager.IsWowCrashed() && ObjectManager.characterCount() == 0 && Running && !(ObjectManager.LoginState == "login")) { Thread.Sleep(100); } Thread.Sleep(250); if (!ObjectManager.IsWowCrashed()) { // Enter -> Login SendMessage(BmWrapper.memory.WindowHandle, WM_KEYDOWN, 0x0D, 0); SendMessage(BmWrapper.memory.WindowHandle, WM_KEYUP, 0x0D, 0); } while (!ObjectManager.IsWowCrashed() && ObjectManager.playerPtr == 0 && Running && !(ObjectManager.LoginState == "login")) { Thread.Sleep(100); } runCounter++; } } else { if (doVendor) { while (!ObjectManager.IsWowCrashed() && ObjectManager.PlayerObject.Pos.differenceTo(Vendor) > 2) { Ingame.Tele(Vendor, 60, true); } if (!ObjectManager.IsWowCrashed()) { Calls.SendMovementUpdate(0xEE, (uint)Environment.TickCount); } Objects.UnitObject vendorObject = new Objects.UnitObject(0, 0, 0); while (!ObjectManager.IsWowCrashed() && vendorObject.baseAdd == 0 && Running) { vendorObject = ObjectManager.GetUnitByName(vendorName); } if (!ObjectManager.IsWowCrashed()) { Calls.OnRightClickUnit(vendorObject.baseAdd, 0); } while (!ObjectManager.IsWowCrashed() && !(Calls.GetText(vendorLua, "troll1", 10).Trim() == "true") && Running) { Thread.Sleep(100); } if (!ObjectManager.IsWowCrashed()) { Ingame.SellAll(); } while (!ObjectManager.IsWowCrashed() && ObjectManager.PlayerObject.Pos.differenceTo(Mailbox) > 2) { Ingame.Tele(Mailbox, 60, true); } if (!ObjectManager.IsWowCrashed()) { Calls.SendMovementUpdate(0xEE, (uint)Environment.TickCount); } runCounter = 0; } else { break; } } } else { if (!ObjectManager.isProcessOpen) { ObjectManager.runThread = false; ChatReader.runThread = false; Inject.Restore(); BmWrapper.memory.Close(); Process WoW = Process.Start(@"C:\Users\Cody\Desktop\WoW 1.12.1\Feenix 1.12 client\WoW.exe"); Thread.Sleep(30000); BmWrapper.memory.OpenProcessAndThread(WoW.Id); Inject.Apply(); Inject.Init(); MoveWindow(BmWrapper.memory.WindowHandle, 0, 0, 153, 119, true); ObjectManager.getObjThread = new Thread(ObjectManager.getObj); ObjectManager.getObjThread.IsBackground = true; ObjectManager.runThread = true; ObjectManager.getObjThread.Start(); ChatReader.readChatThread = new Thread(ChatReader.readChat); ChatReader.readChatThread.IsBackground = true; ChatReader.runThread = true; ChatReader.readChatThread.Start(); } } } catch { } } Exchange.IsEngineRunning = false; Exchange.CurrentEngine = "None"; DupeEngine.engine = null; }