Beispiel #1
0
        public void Execute()
        {
            ulong   targetGuid = ObjectManager.TargetGuid;
            WowUnit target     = ObjectManager.WowObjects.OfType <WowUnit>().FirstOrDefault(t => t.Guid == targetGuid);

            SearchNewTarget(ref target, false);
            if (target != null)
            {
                bool targetDistanceChanged = false;
                if (!LastPlayerPosition.Equals(ObjectManager.Player.Position))
                {
                    LastPlayerPosition    = new Vector3(ObjectManager.Player.Position.X, ObjectManager.Player.Position.Y, ObjectManager.Player.Position.Z);
                    targetDistanceChanged = true;
                }
                if (!LastTargetPosition.Equals(target.Position))
                {
                    hasTargetMoved        = true;
                    LastTargetPosition    = new Vector3(target.Position.X, target.Position.Y, target.Position.Z);
                    targetDistanceChanged = true;
                }
                else if (hasTargetMoved)
                {
                    hasTargetMoved  = false;
                    computeNewRoute = true;
                }
                if (targetDistanceChanged)
                {
                    distanceToTarget = LastPlayerPosition.GetDistance2D(LastTargetPosition);
                    Console.WriteLine("distanceToTarget: " + distanceToTarget);
                }
                HandleMovement(target);
                HandleAttacking(target);
            }
        }
Beispiel #2
0
 public void OutOfCombatExecute()
 {
     if (!HookManager.GetBuffs(WowLuaUnit.Player).Any(e => e.Contains("tealth")))
     {
         HookManager.CastSpell("Stealth");
         Spells.ResetAfterTargetDeath();
     }
     if (!LastPlayerPosition.Equals(ObjectManager.Player.Position))
     {
         distanceTraveled   = ObjectManager.Player.Position.GetDistance2D(LastPlayerPosition);
         LastPlayerPosition = new Vector3(ObjectManager.Player.Position.X, ObjectManager.Player.Position.Y, ObjectManager.Player.Position.Z);
     }
     if (distanceTraveled < 0.001)
     {
         ulong   leaderGuid = ObjectManager.ReadPartyLeaderGuid();
         WowUnit target     = null;
         if (leaderGuid == ObjectManager.PlayerGuid && SearchNewTarget(ref target, true))
         {
             if (!LastTargetPosition.Equals(target.Position))
             {
                 hasTargetMoved     = true;
                 LastTargetPosition = new Vector3(target.Position.X, target.Position.Y, target.Position.Z);
                 distanceToTarget   = LastPlayerPosition.GetDistance2D(LastTargetPosition);
             }
             else
             {
                 computeNewRoute = true;
                 hasTargetMoved  = false;
             }
             Dancing = false;
             HandleMovement(target);
             HandleAttacking(target);
         }
         else if (!Dancing || standing)
         {
             standing = false;
             HookManager.ClearTarget();
             HookManager.SendChatMessage(standingEmotes[new Random().Next(standingEmotes.Length)]);
             Dancing = true;
         }
     }
     else
     {
         if (!Dancing || !standing)
         {
             standing = true;
             HookManager.ClearTarget();
             HookManager.SendChatMessage(runningEmotes[new Random().Next(runningEmotes.Length)]);
             Dancing = true;
         }
     }
 }
Beispiel #3
0
        public void Execute()
        {
            ulong targetGuid = ObjectManager.TargetGuid;

            /*Character.Inventory.Objects.IWowItem weapon;
             * if(CharacterManager.Equipment.Equipment.TryGetValue(Character.Inventory.Enums.EquipmentSlot.INVSLOT_MAINHAND, out weapon))
             * {
             *  if(mainhandSpeed != 1 && weapon != null && weapon.Stats != null && weapon.Stats.Keys != null)
             *  {
             *      foreach (string stat in weapon.Stats.Keys)
             *      {
             *          Console.WriteLine(stat);
             *          mainhandSpeed = 1;
             *      }
             *  }
             *  //mainhandSpeed = weapon.Stats["ITEM_MOD_SPEED_SHORT"];
             * }*/
            WowUnit target = ObjectManager.WowObjects.OfType <WowUnit>().FirstOrDefault(t => t.Guid == targetGuid);

            SearchNewTarget(ref target, false);
            if (target != null)
            {
                bool targetDistanceChanged = false;
                if (!LastPlayerPosition.Equals(ObjectManager.Player.Position))
                {
                    distanceTraveled      = ObjectManager.Player.Position.GetDistance2D(LastPlayerPosition);
                    LastPlayerPosition    = new Vector3(ObjectManager.Player.Position.X, ObjectManager.Player.Position.Y, ObjectManager.Player.Position.Z);
                    targetDistanceChanged = true;
                }
                if (!LastTargetPosition.Equals(target.Position))
                {
                    hasTargetMoved        = true;
                    LastTargetPosition    = new Vector3(target.Position.X, target.Position.Y, target.Position.Z);
                    targetDistanceChanged = true;
                }
                else if (hasTargetMoved)
                {
                    hasTargetMoved  = false;
                    computeNewRoute = true;
                }
                if (targetDistanceChanged)
                {
                    distanceToTarget = LastPlayerPosition.GetDistance2D(LastTargetPosition);
                }
                HandleMovement(target);
                HandleAttacking(target);
            }
        }
Beispiel #4
0
 public void OutOfCombatExecute()
 {
     if (!LastPlayerPosition.Equals(ObjectManager.Player.Position))
     {
         distanceTraveled   = ObjectManager.Player.Position.GetDistance2D(LastPlayerPosition);
         LastPlayerPosition = new Vector3(ObjectManager.Player.Position.X, ObjectManager.Player.Position.Y, ObjectManager.Player.Position.Z);
     }
     if (distanceTraveled < 0.001)
     {
         ulong   leaderGuid = ObjectManager.ReadPartyLeaderGuid();
         WowUnit target     = null;
         if (leaderGuid == ObjectManager.PlayerGuid && SearchNewTarget(ref target, true))
         {
             if (!LastTargetPosition.Equals(target.Position))
             {
                 hasTargetMoved     = true;
                 LastTargetPosition = new Vector3(target.Position.X, target.Position.Y, target.Position.Z);
                 distanceToTarget   = LastPlayerPosition.GetDistance2D(LastTargetPosition);
             }
             else
             {
                 computeNewRoute = true;
                 hasTargetMoved  = false;
             }
             HandleMovement(target);
             HandleAttacking(target);
         }
         else if (!Dancing)
         {
             HookManager.ClearTarget();
             HookManager.SendChatMessage("/dance");
             Dancing = true;
         }
     }
     else
     {
         Dancing = false;
     }
 }
Beispiel #5
0
        public void Execute()
        {
            ulong targetGuid = ObjectManager.TargetGuid;

            /*Character.Inventory.Objects.IWowItem weapon;
             * if(CharacterManager.Equipment.Equipment.TryGetValue(Character.Inventory.Enums.EquipmentSlot.INVSLOT_MAINHAND, out weapon))
             * {
             *  if(mainhandSpeed != 1 && weapon != null && weapon.Stats != null && weapon.Stats.Keys != null)
             *  {
             *      foreach (string stat in weapon.Stats.Keys)
             *      {
             *          Console.WriteLine(stat);
             *          mainhandSpeed = 1;
             *      }
             *  }
             *  //mainhandSpeed = weapon.Stats["ITEM_MOD_SPEED_SHORT"];
             * }*/
            WowUnit target = ObjectManager.WowObjects.OfType <WowUnit>().FirstOrDefault(t => t.Guid == targetGuid);

            SearchNewTarget(ref target, false);
            if (target != null)
            {
                Dancing = false;
                bool targetDistanceChanged = false;
                if (!LastPlayerPosition.Equals(ObjectManager.Player.Position))
                {
                    distanceTraveled      = ObjectManager.Player.Position.GetDistance2D(LastPlayerPosition);
                    LastPlayerPosition    = new Vector3(ObjectManager.Player.Position.X, ObjectManager.Player.Position.Y, ObjectManager.Player.Position.Z);
                    targetDistanceChanged = true;
                }
                if (LastTargetRotation != target.Rotation)
                {
                    hasTargetMoved     = true;
                    LastTargetRotation = target.Rotation;
                }
                if (!LastTargetPosition.Equals(target.Position))
                {
                    hasTargetMoved           = true;
                    LastTargetPosition       = new Vector3(target.Position.X, target.Position.Y, target.Position.Z);
                    LastBehindTargetPosition = new Vector3(LastTargetPosition.X - (9 * (float)Math.Cos(LastTargetRotation)), LastTargetPosition.Y, LastTargetPosition.Z - (9 * (float)Math.Sin(LastTargetRotation)));
                    targetDistanceChanged    = true;
                }
                else if (hasTargetMoved)
                {
                    hasTargetMoved  = false;
                    computeNewRoute = true;
                }
                if (targetDistanceChanged)
                {
                    distanceToTarget       = LastPlayerPosition.GetDistance2D(LastTargetPosition);
                    distanceToBehindTarget = LastPlayerPosition.GetDistance2D(LastBehindTargetPosition);
                }
                HandleMovement(target);
                HandleAttacking(target);
            }
            else if (!Dancing)
            {
                if (distanceTraveled < 0.001)
                {
                    HookManager.ClearTarget();
                    HookManager.SendChatMessage(standingEmotes[new Random().Next(standingEmotes.Length)]);
                    Dancing = true;
                }
                else
                {
                    HookManager.ClearTarget();
                    HookManager.SendChatMessage(runningEmotes[new Random().Next(runningEmotes.Length)]);
                    Dancing = true;
                }
            }
        }