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);
 }
 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;
 }
        public override void Run()
        {
            Objects.UnitObject tmpMob = ObjectManager.GetNextLoot();

            if (tmpMob.baseAdd != 0)
            {
                CurLootMob = tmpMob.guid;
                if (CurLootMob != OldLootMob)
                {
                    OldLootMob  = CurLootMob;
                    LootTryOuts = 0;
                }

                if (LootTryOuts < 10)
                {
                    if (ObjectManager.PlayerObject.targetGuid != tmpMob.guid)
                    {
                        Calls.SetTarget(tmpMob.guid);
                    }
                    else
                    {
                        float diff = ObjectManager.PlayerObject.Pos.differenceTo(tmpMob.Pos);
                        if (diff > 3)
                        {
                            Calls.TurnCharacter(tmpMob.Pos);
                            if (!Calls.MovementContainsFlag((uint)Offsets.movementFlags.Forward))
                            {
                                Ingame.moveForward();
                            }
                        }
                        else
                        {
                            Calls.DoString("DoEmote('stand')");
                            Calls.StopRunning();
                        }

                        if (LootClickTimer.IsReady())
                        {
                            if (diff <= 5)
                            {
                                Calls.OnRightClickUnit(tmpMob.baseAdd, 1);
                            }
                            LootTryOuts = LootTryOuts + 1;
                        }
                    }
                }
                else
                {
                    if (!ObjectManager.BlacklistedLoot.Contains(tmpMob.guid))
                    {
                        ObjectManager.BlacklistedLoot.Add(tmpMob.guid);
                    }
                }
            }
        }
 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();
                 }
             }
         }
     }
 }
        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();
                    }

                }
            }
        }
        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();
            }
        }
Exemple #7
0
 internal static string process(string content)
 {
     lock (locker)
     {
         try
         {
             if (content == "coords")
             {
                 if (ObjectManager.isDeath || ObjectManager.isGhost || !returnCoords || Ingame.IsDc())
                 {
                     return("0|0|0");
                 }
                 else
                 {
                     Objects.UnitObject tmp = ObjectManager.PlayerObject;
                     return(tmp.Pos.x + "|" + tmp.Pos.y + "|" + tmp.Pos.z);
                 }
             }
             else
             {
                 string[] cont   = content.Split('|');
                 int      tmpNum = Convert.ToInt32(cont[0]);
                 guid = Convert.ToUInt64(cont[1]);
                 if (guid == ObjectManager.party1Guid)
                 {
                     if (num1 < tmpNum)
                     {
                         num1 = tmpNum;
                         if (cont[2] == "wait")
                         {
                             party1Ready = false;
                         }
                         else if (cont[2] == "resume")
                         {
                             party1Ready = true;
                         }
                         File.AppendAllText(@".\\socketLog.txt", DateTime.Now.ToString("HH:mm:ss") + " | Listener: Setting party 1 to " + cont[2] + Environment.NewLine);
                         return(cont[2]);
                     }
                 }
                 else if (guid == ObjectManager.party2Guid)
                 {
                     if (num2 < tmpNum)
                     {
                         num2 = tmpNum;
                         if (cont[2] == "wait")
                         {
                             party2Ready = false;
                         }
                         else if (cont[2] == "resume")
                         {
                             party2Ready = true;
                         }
                         File.AppendAllText(@".\\socketLog.txt", DateTime.Now.ToString("HH:mm:ss") + " | Listener: Setting party 2 to " + cont[2] + Environment.NewLine);
                         return(cont[2]);
                     }
                 }
                 else if (guid == ObjectManager.party3Guid)
                 {
                     if (num3 < tmpNum)
                     {
                         num3 = tmpNum;
                         if (cont[2] == "wait")
                         {
                             party3Ready = false;
                         }
                         else if (cont[2] == "resume")
                         {
                             party3Ready = true;
                         }
                         File.AppendAllText(@".\\socketLog.txt", DateTime.Now.ToString("HH:mm:ss") + " | Listener: Setting party 3 to " + cont[2] + Environment.NewLine);
                         return(cont[2]);
                     }
                 }
                 else if (guid == ObjectManager.party4Guid)
                 {
                     if (num4 < tmpNum)
                     {
                         num4 = tmpNum;
                         if (cont[2] == "wait")
                         {
                             party4Ready = false;
                         }
                         else if (cont[2] == "resume")
                         {
                             party4Ready = true;
                         }
                         File.AppendAllText(@".\\socketLog.txt", DateTime.Now.ToString("HH:mm:ss") + " | Listener: Setting party 4 to " + cont[2] + Environment.NewLine);
                         return(cont[2]);
                     }
                 }
             }
         }
         catch (Exception e)
         {
             File.AppendAllText(@".\\socketLog.txt", DateTime.Now.ToString("HH:mm:ss") + " | Listener Exception: " + e.ToString() + Environment.NewLine);
         }
         return("invalid");
     }
 }
Exemple #8
0
        private void Run()
        {
            while (Running)
            {
                Calls.DoString("GetNumRaidMembers() InviteByName('" + groupGuy + "')");
                while (Running && ObjectManager.party1Guid == 0)
                {
                    Thread.Sleep(100);
                }
                //Calls.DoString("for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do link = GetContainerItemLink(bag,slot) if link then name = gsub(link,'^.*%[(.*)%].*$','%1') if '1' == '1' and string.find(name, 'Bijou') == nil then PickupContainerItem(bag,slot) if (CursorHasItem()) then DeleteCursorItem(); end end end end end");
                Thread.Sleep(1000);
                Calls.DoString("ConvertToRaid()");
                while (Running && Calls.GetText("troll1 = GetNumRaidMembers()", "troll1", 10).Trim() == "0")
                {
                    Calls.DoString("ConvertToRaid()");
                    Thread.Sleep(100);
                }
                Calls.DoString("SetLootMethod('freeforall');");
                Thread.Sleep(250);
                if (Running)
                {
                    Ingame.TeleNoZFake(Entrance, 50, true);
                    Ingame.setCoords(ZoneIn);
                }

                while (Running && ObjectManager.MapId == 0)
                {
                    Thread.Sleep(100);
                }
                if (Running)
                {
                    Thread.Sleep(250);
                    //Ingame.TeleNoZFake(PullSpot3, 50, true);
                    //Thread.Sleep(500);
                    //Calls.SetTarget(pullMobGuid3);
                    //Thread.Sleep(10);
                    //Calls.TurnCharacter(ObjectManager.TargetObject.Pos);
                    //Thread.Sleep(250);
                    //Calls.DoString("CastSpellByName('Frostbolt(rank 1)')");
                    //Thread.Sleep(10);
                    //while (Running && ObjectManager.IsCasting)
                    //{
                    //    Thread.Sleep(100);
                    //}

                    //Ingame.TeleNoZFake(PullSpot2, 50, true);
                    //Thread.Sleep(3000);
                    //Calls.SetTarget(pullMobGuid2);
                    //Thread.Sleep(10);
                    //Calls.TurnCharacter(ObjectManager.TargetObject.Pos);
                    //Thread.Sleep(250);
                    //Calls.DoString("CastSpellByName('Frostbolt(rank 1)')");
                    //Thread.Sleep(10);
                    //while (Running && ObjectManager.IsCasting)
                    //{
                    //    Thread.Sleep(100);
                    //}

                    Ingame.TeleNoZFake(PullSpot1, 50, true);
                    Thread.Sleep(500);
                    Calls.SetTarget(pullMobGuid1);
                    Thread.Sleep(10);
                    Calls.TurnCharacter(ObjectManager.TargetObject.Pos);
                    Thread.Sleep(250);
                    Calls.DoString("CastSpellByName('Frostbolt(rank 1)')");
                    Thread.Sleep(10);
                    while (Running && ObjectManager.IsCasting)
                    {
                        Thread.Sleep(100);
                    }
                }
                if (Running)
                {
                    Ingame.TeleNoZFake(SafeSpot, 50, true);
                }

                while (Running && ObjectManager.TargetObject.Pos.differenceToPlayer() >= 15)
                {
                    Thread.Sleep(250);
                }
                if (Running)
                {
                    Calls.TurnCharacter(ObjectManager.TargetObject.Pos);
                }

                while (Running && ObjectManager.aggroCountPlain() != 0)
                {
                    if (ObjectManager.PlayerObject.isChanneling == 0)
                    {
                        Calls.CastAoe("Blizzard", AoePos);
                    }
                    Thread.Sleep(500);
                }
                Thread.Sleep(500);
                List <Objects.UnitObject> lootMobs = ObjectManager.AllLootableMobs();
                if (Running)
                {
                    Ingame.TeleNoZFake(lootMobs[0].Pos, 50, true);
                    Thread.Sleep(250);
                }
                foreach (Objects.UnitObject u in lootMobs)
                {
                    if (Running)
                    {
                        Calls.DoString("for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do link = GetContainerItemLink(bag,slot) if link then name = gsub(link,'^.*%[(.*)%].*$','%1') if string.find(name, 'Coin') ~= nil or string.find(name, 'Totem') ~= nil or string.find(name, 'Libram') ~= nil or string.find(name, 'Idol') ~= nil or string.find(name, 'Blood Scythe') ~= nil or string.find(name, 'Voodoo') ~= nil or string.find(name, 'Sceptre') ~= nil then PickupContainerItem(bag,slot) if (CursorHasItem()) then DeleteCursorItem(); end end end end end");
                        Calls.OnRightClickUnit(u.baseAdd, 0);
                        while (Running && Calls.IsLooting() == 0)
                        {
                            ;
                        }
                        Thread.Sleep(100);
                        while (Running && Calls.IsLooting() == 1)
                        {
                            Calls.AutoLoot();
                            Thread.Sleep(250);
                        }
                        Thread.Sleep(100);
                    }
                }
                Thread.Sleep(750);
                if (Running)
                {
                    Ingame.TeleNoZFake(Exit, 50, true);
                    Ingame.setCoords(ZoneOut);
                }
                while (Running && ObjectManager.MapId == 309)
                {
                    Thread.Sleep(100);
                }
                if (Running)
                {
                    Thread.Sleep(250);
                    Calls.DoString("LeaveParty()");
                }

                if (ObjectManager.FreeBagSlots < 10)
                {
                    Ingame.TeleHb(new Objects.Location(-14377.8f, 411.6882f, 6.626376f), 60, true);

                    Objects.UnitObject vendorObject = new Objects.UnitObject(0, 0, 0);
                    while (vendorObject.baseAdd == 0 && Running)
                    {
                        vendorObject = ObjectManager.GetUnitByName("Zarena Cromwind");
                    }

                    Calls.OnRightClickUnit(vendorObject.baseAdd, 0);

                    while (!(Calls.GetText("troll1 = 'false' if MerchantFrame:IsVisible() then troll1 = 'true' end;", "troll1", 10).Trim() == "true") && Running)
                    {
                        Thread.Sleep(100);
                    }

                    string[] items = new string[] { "Bloodvine", "Bijou", "Major Mana Potion", "Zulian Ceremonial Staff", "Zulian Hacker of the Tiger", "Traveler\\'s Backpack" };
                    Ingame.SellAllBut(items);
                }
            }

            Exchange.IsEngineRunning = false;
            Exchange.CurrentEngine   = "None";
            DupeEngine.engine        = null;
        }
Exemple #9
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;
        }