コード例 #1
0
 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();
                 }
             }
         }
     }
 }
コード例 #2
0
        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;
        }