コード例 #1
0
        private void bAttach_Click(object sender, EventArgs e)
        {
            if (!ObjectManager.getObjThread.IsAlive)
            {
                AttachForm att = new AttachForm();
                att.ShowDialog();

                if (AttachForm.isAttached)
                {
                    if (!Inject.isHookApplied)
                    {
                        if (Inject.Apply())
                        {
                            Inject.Init();
                            ObjectManager.ExecuteOnce = true;
                            ChatReader.ClearChat      = true;
                            startObjectManager();
                        }
                        else
                        {
                            Forms.Log.Add("Endscene is already modified, not attaching!");
                        }
                    }
                }
            }
            else
            {
                Forms.Log.Add("Bot is already attached!");
            }
        }
コード例 #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;
        }