示例#1
0
 public override void DoWork()
 {
     GrindingEngine.Navigator.Stop();
     CombatHandler.StartCombat(_unit);
     GrindingEngine.UpdateStats(0, 1, 0);
     GrindingEngine.Navigation.UseNextNearestWaypoint();
 }
示例#2
0
        internal static void Pulse()
        {
            if (CorpsePosition.X == 0 && CorpsePosition.Y == 0 && CorpsePosition.Z == 0)
            {
                GrindingEngine.Navigator.Stop();
                MoveHelper.ReleaseKeys();
                CorpsePosition = ObjectManager.MyPlayer.Location;
                GrindingEngine.UpdateStats(0, 0, 1);
            }
            while (!ObjectManager.MyPlayer.IsGhost)
            {
                Thread.Sleep(1000);
                Frame staticPopup1Button1 = InterfaceHelper.GetFrameByName("StaticPopup1Button1");
                if (staticPopup1Button1 != null && staticPopup1Button1.IsVisible)
                {
                    staticPopup1Button1.LeftClick();
                    Thread.Sleep(2000);
                }
                Thread.Sleep(100);
            }
            if (GrindingEngine.Navigation.SpotToHit != CorpsePosition)
            {
                GrindingEngine.Navigation.SetNewSpot(CorpsePosition);
            }
            GrindingEngine.Navigation.Pulse();
            if (GrindingEngine.Navigation.IsLastWaypoints || CorpsePosition.DistanceToSelf2D < 20)
            {
                Logging.Write("Move to our corpse");
                GrindingEngine.Navigator.Stop();
                MoveHelper.ReleaseKeys();

                MoveHelper.MoveToLoc(CorpsePosition, 3);

                Logging.Write("Lets ress");

                Frame staticPopup1Button1 = InterfaceHelper.GetFrameByName("StaticPopup1Button1");
                var   clickTimeout        = new Ticker(5 * 1000);
                bool  firstClick          = false;
                while (ObjectManager.MyPlayer.IsGhost)
                {
                    if (!firstClick || clickTimeout.IsReady)
                    {
                        if (staticPopup1Button1 != null && staticPopup1Button1.IsVisible)
                        {
                            staticPopup1Button1.LeftClick();
                            firstClick = true;
                            clickTimeout.Reset();
                        }
                    }
                    Thread.Sleep(1000);
                }
                Logging.Write("Ress worked");
                Reset();
                GrindingEngine.Navigator.Stop();
                GrindingEngine.Navigation = new GrindingNavigation(GrindingEngine.CurrentProfile);
                return;
            }
            Thread.Sleep(10);
        }
示例#3
0
        internal static void RecompileAll()
        {
            Assemblys.Clear();
            var grindingEngine = new GrindingEngine();

            Assemblys.Add(grindingEngine.Name, grindingEngine);
            var flyingEngine = new FlyingEngine();

            Assemblys.Add(flyingEngine.Name, flyingEngine);
            // var FarmingEngine = new FarmingEngine();
            // Assemblys.Add(FarmingEngine.Name, FarmingEngine);
            try
            {
                if (!Directory.Exists(LazyForms.OurDirectory + "\\Engines"))
                {
                    return;
                }
                var di = new DirectoryInfo(LazyForms.OurDirectory + "\\Engines");
                foreach (FileInfo fi in di.GetFiles())
                {
                    if (fi.Extension.ToLower() == ".dll")
                    {
                        try
                        {
                            Assembly assembly = Assembly.LoadFrom(fi.FullName);
                            if (assembly != null)
                            {
                                String fName = fi.Name.Replace(fi.Extension, String.Empty);
                                if (Assemblys.ContainsKey(fName))
                                {
                                    Assemblys.Remove(fName);
                                }
                                foreach (Type t in assembly.GetTypes())
                                {
                                    if (t.GetInterface("ILazyEngine") != null && t.IsClass)
                                    {
                                        object obj          = Activator.CreateInstance(t);
                                        var    combatEngine = (ILazyEngine)obj;
                                        Assemblys.Add(fName, combatEngine);
                                        Logging.Write("[ECompiler] Loaded: " + fName);
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Logging.Write("[Compiler] Exception: " + ex);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logging.Write("[Compiler] Exception: " + ex);
            }
        }
示例#4
0
 public override void DoWork()
 {
     if (ObjectManager.ShouldDefend)
     {
         Logging.Write("Not pulling, 正在战斗状态");
         return;
     }
     GrindingEngine.Navigator.Stop();
     if (ObjectManager.ShouldDefend)
     {
         Logging.Write("Not pulling, 正在战斗状态");
         return;
     }
     CombatHandler.StartCombat(_unit);
     GrindingEngine.UpdateStats(0, 1, 0);
     GrindingEngine.Navigation.UseNextNearestWaypoint();
 }
示例#5
0
 public static void DoWork(PUnit unit)
 {
     MoveHelper.ReleaseKeys();
     if (!unit.IsLootable)
     {
         return;
     }
     Logging.Write("Looting: " + unit.Name);
     if (unit.DistanceToSelf > 5)
     {
         MoveHelper.MoveToLoc(unit.Location, 4, false, true);
     }
     if (ObjectManager.ShouldDefend)
     {
         Logging.Write("Skipping loot, we got into combat");
         return;
     }
     Thread.Sleep(200);
     if (ObjectManager.MyPlayer.HasLivePet)
     {
         Thread.Sleep(700);
     }
     if (ObjectManager.MyPlayer.Target != unit)
     {
         unit.Interact(false);
     }
     else
     {
         KeyHelper.SendKey("InteractTarget");
     }
     if (ObjectManager.ShouldDefend)
     {
         return;
     }
     TimeOut.Reset();
     while (!ObjectManager.MyPlayer.LootWinOpen && !TimeOut.IsReady)
     {
         Thread.Sleep(100);
     }
     TimeOut.Reset();
     if (GrindingSettings.Skin || GrindingSettings.WaitForLoot)
     {
         while (ObjectManager.MyPlayer.LootWinOpen && !TimeOut.IsReady)
         {
             Thread.Sleep(100);
         }
         Thread.Sleep(1300);
     }
     else
     {
         Thread.Sleep(200);
     }
     GrindingEngine.UpdateStats(1, 0, 0);
     PBlackList.Blacklist(unit, 300, false);
     if (unit.IsSkinnable && GrindingSettings.Skin)
     {
         Logging.Write("Skinning");
         KeyHelper.SendKey("TargetLastTarget");
         Thread.Sleep(1000);
         if (!ObjectManager.MyPlayer.Target.IsValid)
         {
             unit.Interact(false);
         }
         else
         {
             KeyHelper.SendKey("InteractTarget");
         }
         TimeOut.Reset();
         while (!ObjectManager.MyPlayer.LootWinOpen && !TimeOut.IsReady)
         {
             Thread.Sleep(100);
         }
         if (GrindingSettings.WaitForLoot)
         {
             Thread.Sleep(500);
         }
         GrindingEngine.UpdateStats(1, 0, 0);
     }
 }
示例#6
0
 public static void DoWork(PUnit unit)
 {
     MoveHelper.ReleaseKeys();
     if (unit.IsLootable)
     {
         Logging.Write("Looting: " + unit.Name, new object[0]);
         if (unit.DistanceToSelf > 5.0)
         {
             MoveHelper.MoveToLoc(unit.Location, 4.0, false, true);
         }
         if (LazyLib.Wow.ObjectManager.ShouldDefend)
         {
             Logging.Write("Skipping loot, we got into combat", new object[0]);
             return;
         }
         Thread.Sleep(200);
         if (LazyLib.Wow.ObjectManager.MyPlayer.HasLivePet)
         {
             Thread.Sleep(700);
         }
         if (LazyLib.Wow.ObjectManager.MyPlayer.Target != unit)
         {
             unit.Interact(false);
         }
         else
         {
             KeyHelper.SendKey("InteractTarget");
         }
         if (LazyLib.Wow.ObjectManager.ShouldDefend)
         {
             return;
         }
         TimeOut.Reset();
         while (!LazyLib.Wow.ObjectManager.MyPlayer.LootWinOpen && !TimeOut.IsReady)
         {
             Thread.Sleep(100);
         }
         if (GrindingSettings.WaitForLoot)
         {
             Latency.Sleep(500);
         }
         GrindingEngine.UpdateStats(1, 0, 0);
         if (!GrindingSettings.Skin)
         {
             PBlackList.Blacklist(unit, 300, false);
         }
     }
     if ((unit.IsSkinnable && GrindingSettings.Skin) && (unit.GetSkinnableType() == Constants.SkinnableType.Skining))
     {
         Logging.Write("Skinning: " + unit.Name, new object[0]);
         if (unit.DistanceToSelf > 5.0)
         {
             MoveHelper.MoveToLoc(unit.Location, 4.0, false, true);
         }
         KeyHelper.SendKey("TargetLastTarget");
         Thread.Sleep(0x3e8);
         if (!LazyLib.Wow.ObjectManager.MyPlayer.Target.IsValid)
         {
             unit.Interact(false);
         }
         else
         {
             KeyHelper.SendKey("InteractTarget");
         }
         TimeOut.Reset();
         while (!LazyLib.Wow.ObjectManager.MyPlayer.LootWinOpen && !TimeOut.IsReady)
         {
             Thread.Sleep(100);
         }
         if (GrindingSettings.WaitForLoot)
         {
             Latency.Sleep(500);
         }
         GrindingEngine.UpdateStats(1, 0, 0);
         PBlackList.Blacklist(unit, 300, false);
     }
 }