Пример #1
0
        private void Run()
        {
            Ingame.Tele(spawnObject, 50, true);
            while (Running)
            {
                Objects.GameObject spawner = new Objects.GameObject(0, 0, 0);
                while (spawner.baseAdd == 0 && Running)
                {
                    spawner = ObjectManager.GetGameObjectById(spawnObjectId);
                }

                Calls.OnRightClickObject(spawner.baseAdd, 0);

                while (!(Calls.GetText(gossipOpenLua, "troll1", 10).Trim() == "true") && Running)
                {
                    Thread.Sleep(100);
                }
                Thread.Sleep(250);

                while ((Calls.GetText(gossipOpenLua, "troll1", 10).Trim() == "true") && Running)
                {
                    Calls.DoString("GossipTitleButton1:Click() QuestFrameCompleteQuestButton:Click()");
                }
            }

            Exchange.IsEngineRunning = false;
            Exchange.CurrentEngine   = "None";
            DupeEngine.engine        = null;
        }
Пример #2
0
 internal static bool teleToMaster()
 {
     try
     {
         leader = ObjectManager.leader;
         if (leader.Pos.differenceToPlayer() > 30 || forceTele)
         {
             Objects.Location tmp = clientConnect.requestCoords();
             if (tmp.x != 0 && tmp.y != 0 && tmp.z != 0)
             {
                 Calls.StopRunning();
                 Ingame.DismissPet();
                 Thread.CurrentThread.Join(2000);
                 Ingame.Tele(tmp, 60, false);
                 forceTele = false;
                 return(true);
             }
         }
     }
     catch
     {
     }
     forceTele = false;
     return(false);
 }
Пример #3
0
 internal void GoBack()
 {
     IsVendoring   = false;
     locationSaved = false;
     Ingame.Tele(curPoint, 60, false);
     GrindbotContainer.StuckTimer.Reset();
     GrindbotContainer.IsStuck = false;
 }
Пример #4
0
 internal void GoBack()
 {
     IsVendoring   = false;
     locationSaved = false;
     Ingame.Tele(curPoint, 60, false);
     MasterContainer.StuckTimer.Reset();
     MasterContainer.IsStuck  = false;
     slaveStates.returnCoords = true;
 }
Пример #5
0
 private void objectGrid_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex != -1)
     {
         Ingame.Tele(
             new Objects.Location(
                 Convert.ToSingle(objectGrid.Rows[e.RowIndex].Cells[startCoord].Value),
                 Convert.ToSingle(objectGrid.Rows[e.RowIndex].Cells[startCoord + 1].Value),
                 Convert.ToSingle(objectGrid.Rows[e.RowIndex].Cells[startCoord + 2].Value)
                 ), 60, false);
     }
 }
Пример #6
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();
                 }
             }
         }
     }
 }
Пример #7
0
        internal static bool Init()
        {
            bool ccLoaded      = CCManager.ChooseCustomClassByWowClass(ObjectManager.playerClass);
            bool profileLoaded = Data.getProfile();

            if (ccLoaded && profileLoaded)
            {
                string       txt          = "Port to first waypoint?";
                DialogResult dialogResult = MessageBox.Show(txt, "Port", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    Ingame.Tele(Data.Profile[0], 60, false);
                }

                MasterContainer.Reset();
                Calls.DoString("ConsoleExec('Autointeract 0')");
                Calls.DoString("CameraZoomIn(50)");
                Data.curWp = MasterFunctions.GetClosestWaypoint(0);
                engine     = new Engine();
                engine.States.Add(new stateMasterIdle());
                engine.States.Add(new stateMasterWalk());
                engine.States.Add(new stateMasterGetTarget());
                engine.States.Add(new stateGrindEngage());
                engine.States.Add(new stateMasterNeedRest());
                engine.States.Add(new stateMasterLoot());
                engine.States.Add(new stateMasterFight());
                engine.States.Add(new stateMasterUnstuck());
                engine.States.Add(new stateMasterDc());
                engine.States.Add(new stateMasterBuff());
                engine.States.Add(new stateMasterDeath());
                engine.States.Add(new stateMasterVendor());
                engine.States.Add(new stateMasterWaitForSlaves());
                return(true);
            }
            else
            {
                MessageBox.Show("No CC found");
            }
            return(false);
        }
Пример #8
0
        public override void Run()
        {
            MasterContainer.IsStuck = false;
            if (!ObjectManager.isGhost)
            {
                Calls.DoString("RepopMe();");
            }
            else
            {
                if (ObjectManager.CorpseLocation.differenceToPlayer() > 3)
                {
                    WaitAfterRelease.Reset();
                    while (!WaitAfterRelease.IsReady())
                    {
                        Thread.CurrentThread.Join(100);
                    }
                    Ingame.Tele(ObjectManager.CorpseLocation, 60, false);
                }
                else
                {
                    RezzTimer.Reset();
                    while (!RezzTimer.IsReady())
                    {
                        Thread.CurrentThread.Join(100);
                    }

                    while (ObjectManager.isGhost && ObjectManager.playerPtr != 0)
                    {
                        Calls.DoString("RetrieveCorpse();");
                        RezzTimer2.Reset();
                        while (!RezzTimer2.IsReady())
                        {
                            Thread.CurrentThread.Join(100);
                        }
                    }
                    MasterContainer.Reset();
                }
            }
        }
Пример #9
0
 private void bPort_Click(object sender, EventArgs e)
 {
     if (ObjectManager.getObjThread.IsAlive)
     {
         if (!Exchange.IsEngineRunning)
         {
             if (ObjectManager.playerPtr != 0)
             {
                 try
                 {
                     Ingame.Tele(new Objects.Location(
                                     Convert.ToSingle(mtbX.Text.Replace('.', ',')),
                                     Convert.ToSingle(mtbY.Text.Replace('.', ',')),
                                     Convert.ToSingle(mtbZ.Text.Replace('.', ','))),
                                 60,
                                 false);
                 }
                 catch { }
             }
         }
     }
 }
Пример #10
0
        public override void Run()
        {
            if (Calls.MovementIsOnly(0x0))
            {
                if (!locationSaved)
                {
                    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)
                                {
                                    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)
                            {
                                GoBack();
                            }
                        }
                    }
                }
            }
            else
            {
                Calls.StopRunning();
            }
        }
Пример #11
0
 internal void GoBack()
 {
     IsVendoring   = false;
     locationSaved = false;
     Ingame.Tele(curPoint, 60, false);
 }
Пример #12
0
 private void Run()
 {
     while (runThread)
     {
         if (gotJob)
         {
             if (Environment.TickCount - lastPort >= 500)
             {
                 Ingame.Tele(curLoc, 60, true);
                 gotJob   = false;
                 lastPort = Environment.TickCount;
             }
         }
         else
         {
             if (cbHotKey.Checked)
             {
                 if (GetForegroundWindow() == BmWrapper.memory.WindowHandle) // has the attached wow focus?
                 {
                     if (BmWrapper.memory.ReadUInt(Inject.click2PortToggle) == 1)
                     {
                         loc.x = BmWrapper.memory.ReadFloat(Inject.click2PortCoords);
                         loc.y = BmWrapper.memory.ReadFloat(Inject.click2PortCoords + 4);
                         loc.z = BmWrapper.memory.ReadFloat(Inject.click2PortCoords + 8);
                         BmWrapper.memory.WriteUInt(Inject.click2PortToggle, 0);
                         Ingame.Tele(loc, 60, false);
                     }
                     else
                     {
                         float seconds = (float)nudTeleSpeed.Value;
                         float speed   = 7f * seconds;
                         if ((GetKeyState(0x68) & 0x0000FF80) == 0x0000FF80) // Numpad 8 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x + (float)speed * (float)Math.Cos(ObjectManager.Facing);
                             loc.y = ObjectManager.PlayerObject.Pos.y + (float)speed * (float)Math.Sin(ObjectManager.Facing);
                             loc.z = ObjectManager.PlayerObject.Pos.z;
                             Console.WriteLine("Difference: " + loc.differenceTo(ObjectManager.PlayerObject.Pos));
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                         else if ((GetKeyState(0x67) & 0x0000FF80) == 0x0000FF80) // Numpad 7 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x;
                             loc.y = ObjectManager.PlayerObject.Pos.y;
                             loc.z = ObjectManager.PlayerObject.Pos.z + (float)speed;
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                         else if ((GetKeyState(0x69) & 0x0000FF80) == 0x0000FF80) // Numpad 9 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x;
                             loc.y = ObjectManager.PlayerObject.Pos.y;
                             loc.z = ObjectManager.PlayerObject.Pos.z - (float)speed;
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                         else if ((GetKeyState(0x65) & 0x0000FF80) == 0x0000FF80) // Numpad 5 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x + (float)speed * (float)-Math.Cos(ObjectManager.Facing);
                             loc.y = ObjectManager.PlayerObject.Pos.y + (float)speed * (float)-Math.Sin(ObjectManager.Facing);
                             loc.z = ObjectManager.PlayerObject.Pos.z;
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                         else if ((GetKeyState(0x64) & 0x0000FF80) == 0x0000FF80) // Numpad 4 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x + (float)speed * (float)Math.Cos(ObjectManager.Facing + (Math.PI / 2));
                             loc.y = ObjectManager.PlayerObject.Pos.y + (float)speed * (float)Math.Sin(ObjectManager.Facing + (Math.PI / 2));
                             loc.z = ObjectManager.PlayerObject.Pos.z;
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                         else if ((GetKeyState(0x66) & 0x0000FF80) == 0x0000FF80) // Numpad 6 pressed?
                         {
                             loc.x = ObjectManager.PlayerObject.Pos.x + (float)speed * (float)Math.Cos(ObjectManager.Facing - (Math.PI / 2));
                             loc.y = ObjectManager.PlayerObject.Pos.y + (float)speed * (float)Math.Sin(ObjectManager.Facing - (Math.PI / 2));
                             loc.z = ObjectManager.PlayerObject.Pos.z;
                             Ingame.hotKeyTele(loc, (float)seconds);
                         }
                     }
                 }
                 else
                 {
                     //BmWrapper.memory.WriteUInt(Inject.timeStampMdofier, 0);
                 }
             }
         }
     }
 }
Пример #13
0
        public override void Run()
        {
            if (!StockadesContainer.done && !ObjectManager.isDeath)
            {
                if (StockadesContainer.doOncePerRun)
                {
                    waitTollerance = 0;
                    Calls.DoString("ResetInstances()");
                }
                Thread.Sleep(250);
                List <Objects.GameObject> chestList = ObjectManager.GetGameObjectsByName("Large Solid Chest");
                int i = 0;
                while (i < chestList.Count)
                {
                    if (Ingame.IsDc())
                    {
                        return;
                    }
                    if (ObjectManager.FreeBagSlots >= 3)
                    {
                        if (chestList[i].baseAdd != 0)
                        {
                            if (chestList[i].Pos.differenceToPlayer() > 2)
                            {
                                Objects.Location tmpPos = new Objects.Location();
                                tmpPos.x = chestList[i].Pos.x;
                                tmpPos.y = chestList[i].Pos.y;
                                tmpPos.z = chestList[i].Pos.z - 4;
                                Ingame.Tele(tmpPos, 60, false);
                                waitTollerance = 0;
                            }
                            else
                            {
                                try
                                {
                                    int tmp = Environment.TickCount;
                                    Calls.OnRightClickObject(chestList[i].baseAdd, 1);
                                    Thread.CurrentThread.Join(1000);
                                    while (ObjectManager.PlayerObject.IsCasting != 0 && Environment.TickCount - tmp <= 8000)
                                    {
                                        Thread.CurrentThread.Join(10);
                                    }
                                    tmp = Environment.TickCount;
                                    while (Calls.IsLooting() == 1 && Environment.TickCount - tmp <= 1000)
                                    {
                                        Thread.CurrentThread.Join(10);
                                    }
                                    Console.WriteLine("WAITING");
                                    i++;
                                }
                                catch
                                {
                                    break;
                                }
                            }
                        }
                        else
                        {
                            waitTollerance += 1;
                            if (waitTollerance == 3)
                            {
                                StockadesContainer.done = true;
                                i = int.MaxValue;
                                break;
                            }
                        }
                    }
                    else
                    {
                        StockadesContainer.done = true;
                        i = int.MaxValue;
                        break;
                    }
                }
                StockadesContainer.done = true;
            }

            if (!ObjectManager.isDeath)
            {
                Ingame.KillPlayer();
                while (StockadesContainer.isInside && !Ingame.IsDc())
                {
                    Thread.CurrentThread.Join(10);
                }
            }
            else
            {
                Calls.DoString("RepopMe();");
            }
        }
Пример #14
0
 private void bMc_Click(object sender, EventArgs e)
 {
     Ingame.Tele(new Objects.Location(41.8915f, -285.414f, 105.958f), 60, false);
 }
Пример #15
0
        private void Run()
        {
            if (Running)
            {
                float x         = 0;
                float y         = 0;
                float z         = 0;
                float xStepDown = 0;
                float yStep     = 0;

                if (ObjectManager.MapId == 1)
                {
                    x = 10808.122f;
                    y = 3186.583f;
                    z = 1327.806f;

                    xStepDown = 20308f;
                    yStep     = 289f;
                }

                if (ObjectManager.MapId == 0)
                {
                    x = 3079.523f;
                    y = 1776.130f;
                    z = 73.872f;

                    xStepDown = 17000f;
                    yStep     = 250f;
                }

                bool increase = false;
                Ingame.Tele(new Objects.Location(x, y, z), 5, true);
                int i = 0;
                int k = 0;
                while (k < 30 && ObjectManager.playerPtr != 0 && Running)
                {
                    if (i % 2 == 0)
                    {
                        if (!increase)
                        {
                            Calls.AntiAfk();
                            x        = x - xStepDown;
                            increase = true;
                            Ingame.Tele(new Objects.Location(x, y, z), 5, true);
                        }
                        else
                        {
                            x        = x + xStepDown;
                            increase = false;
                            Ingame.Tele(new Objects.Location(x, y, z), 5, true);
                        }
                    }
                    else
                    {
                        y = y - yStep;
                        Ingame.Tele(new Objects.Location(x, y, z), 5, true);
                        k = k + 1;
                    }
                    i = i + 1;
                }
            }
            Exchange.IsEngineRunning = false;
            Exchange.CurrentEngine   = "None";
            ExplorerEngine.engine    = null;
        }
Пример #16
0
 private void bOrb_Click(object sender, EventArgs e)
 {
     Ingame.Tele(new Objects.Location(41.8915f, -285.414f, 105.958f), 60, false);
     Calls.OnRightClickObject(ObjectManager.GetGameObjectByName("Drakkisath's Brand").baseAdd, 1);
 }
Пример #17
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;
        }
Пример #18
0
        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;
                }
            }
        }