示例#1
0
 public static List <uint> DruidMountId()
 {
     try
     {
         if (DruidMountIdList.Count > 0)
         {
             return(DruidMountIdList);
         }
         DruidMountIdList.AddRange(SpellListManager.SpellIdByName("Swift Flight Form"));
         DruidMountIdList.AddRange(SpellListManager.SpellIdByName("Flight Form"));
         DruidMountIdList.AddRange(SpellListManager.SpellIdByName("Aquatic Form"));
         DruidMountIdList.AddRange(SpellListManager.SpellIdByName("Travel Form"));
         for (int i = DruidMountIdList.Count - 1; i >= 0; i--)
         {
             var u = DruidMountIdList[i];
             if (u == 159456)
             {
                 DruidMountIdList.RemoveAt(i);
             }
         }
         return(DruidMountIdList);
     }
     catch (Exception exception)
     {
         Logging.WriteError("DruidMountId(): " + exception);
     }
     return(new List <uint>());
 }
示例#2
0
 public static List <uint> AllInteractMountId()
 {
     try
     {
         if (AllInteractMountIdList.Count <= 0)
         {
             AllInteractMountIdList.AddRange(SpellListManager.SpellIdByName("Demonsteel Stirrups"));
         }
         return(AllInteractMountIdList);
     }
     catch (Exception exception)
     {
         Logging.WriteError("AllInteractMountId(): " + exception);
     }
     return(new List <uint>());
 }
示例#3
0
 public static List <uint> HerbsInteractMountId()
 {
     try
     {
         if (HerbsInteractMountIdList.Count <= 0)
         {
             HerbsInteractMountIdList.AddRange(SpellListManager.SpellIdByName("Travel Form"));
             HerbsInteractMountIdList.AddRange(SpellListManager.SpellIdByName("Sky Golem"));
         }
         return(HerbsInteractMountIdList);
     }
     catch (Exception exception)
     {
         Logging.WriteError("HerbsInteractMountId(): " + exception);
     }
     return(new List <uint>());
 }
示例#4
0
 public static List <uint> FlightFormsIds()
 {
     try
     {
         if (FlightFormsIdsList.Count <= 0)
         {
             FlightFormsIdsList.AddRange(SpellListManager.SpellIdByName("Swift Flight Form"));
             FlightFormsIdsList.AddRange(SpellListManager.SpellIdByName("Flight Form"));
             // Sky Golem is not a flight form, and wont cause trouble to farm underwater.
         }
         return(FlightFormsIdsList);
     }
     catch (Exception exception)
     {
         Logging.WriteError("MountDruidId(): " + exception);
     }
     return(new List <uint>());
 }
示例#5
0
 public static List <uint> MountDruidId()
 {
     try
     {
         if (MountDruidIdList.Count <= 0)
         {
             MountDruidIdList.AddRange(SpellListManager.SpellIdByName("Swift Flight Form"));
             MountDruidIdList.AddRange(SpellListManager.SpellIdByName("Flight Form"));
             MountDruidIdList.AddRange(SpellListManager.SpellIdByName("Aquatic Form"));
         }
         return(MountDruidIdList);
     }
     catch (Exception exception)
     {
         Logging.WriteError("MountDruidId(): " + exception);
     }
     return(new List <uint>());
 }
示例#6
0
    internal void CombatRotation()
    {
        if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && Fight.InFight)
        {
            if (Lua.LuaDoString <bool>(@"return (UnitIsTapped(""target"")) and (not UnitIsTappedByPlayer(""target""));"))
            {
                Fight.StopFight();
                Lua.LuaDoString("ClearTarget();");
                System.Threading.Thread.Sleep(400);
            }
        }
        if (ObjectManager.Me.HealthPercent <= 40 && !FlashHeal.KnownSpell)
        {
            LesserHeal.Launch();
        }

        if (ObjectManager.Me.HealthPercent <= 40 && FlashHeal.KnownSpell && !ObjectManager.Me.HaveBuff("Shadowform"))
        {
            FlashHeal.Launch();
        }

        if (ObjectManager.Me.HealthPercent <= 70 && Shield.KnownSpell && !ObjectManager.Me.HaveBuff("Power Word: Shield") && !ObjectManager.Me.HaveBuff("Weakened Soul"))
        {
            Shield.Launch();
        }

        if (VampiricEmbrace.KnownSpell && !ObjectManager.Target.HaveBuff("Vampiric Embrace") && ObjectManager.Target.GetDistance < 28)
        {
            VampiricEmbrace.Launch();
        }

        if (MindBlast.KnownSpell && ObjectManager.Me.ManaPercentage > 60 && ObjectManager.Target.GetDistance < 28)
        {
            this.MindBlast.Launch();
        }

        if (HolyFire.KnownSpell && !Shadowform.KnownSpell && ObjectManager.Me.ManaPercentage > 60 && ObjectManager.Target.GetDistance < 25 && ObjectManager.Target.GetDistance > 8 && ObjectManager.Target.HealthPercent >= 85)
        {
            this.HolyFire.Launch();
        }

        if (ShadowWordPain.KnownSpell && !ObjectManager.Target.HaveBuff("Shadow Word: Pain") && ObjectManager.Target.GetDistance < 28)
        {
            ShadowWordPain.Launch();
        }

        if (Mindflay.KnownSpell && ObjectManager.Me.ManaPercentage > 40 && ObjectManager.Target.GetDistance < 20 && ObjectManager.Me.HaveBuff("Power Word: Shield"))
        {
            Mindflay.Launch();
            Thread.Sleep(Usefuls.Latency);
            Usefuls.WaitIsCasting();
        }


        if (Smite.KnownSpell && ObjectManager.Me.ManaPercentage > 20 && ObjectManager.Me.HealthPercent >= 40 && ObjectManager.Me.Level < 5 && ObjectManager.Target.GetDistance < 25)
        {
            Smite.Launch();
        }

        if (DevouringPlague.KnownSpell && ObjectManager.Target.GetDistance < 25)
        {
            DevouringPlague.Launch();
        }

        if (!Lua.LuaDoString <bool>("return IsAutoRepeatAction(" + (SpellManager.GetSpellSlotId(SpellListManager.SpellIdByName("Shoot")) + 1) + ")") && ObjectManager.Me.HealthPercent >= 40)
        {
            if (Shoot.KnownSpell)
            {
                SpellManager.CastSpellByNameLUA("Shoot");
            }
            return;
        }
    }
示例#7
0
 private void EventsLua_OnEventLuaPlayerTargetChanged()
 {
     if (Lua.LuaDoString <bool>("return IsCurrentAction(" + (SpellManager.GetSpellSlotId(SpellListManager.SpellIdByName("Attack")) + 1) + ")"))
     {
         SpellManager.CastSpellByNameLUA("Attack");
     }
 }
示例#8
0
文件: Warlock.cs 项目: QiMata/WoWBot
    internal void CombatRotation()
    {
        // auto tag avoid
        if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && Fight.InFight)
        {
            if (Lua.LuaDoString <bool>(@"return (UnitIsTapped(""target"")) and (not UnitIsTappedByPlayer(""target""));"))
            {
                Fight.StopFight();
                Lua.LuaDoString("ClearTarget();");
                System.Threading.Thread.Sleep(400);
            }
        }
        if (ObjectManager.Pet.IsValid && ObjectManager.Me.IsAlive && HealthFunnel.KnownSpell && HealthFunnel.IsDistanceGood && ObjectManager.Pet.HealthPercent <= 30 && ObjectManager.Me.HealthPercent >= 60)
        {
            HealthFunnel.Launch();
            //channeling ?
        }
        if (ObjectManager.Target.HealthPercent >= 20 && ObjectManager.Me.HaveBuff("Shadow trance") && ObjectManager.Me.ManaPercentage > 15)
        {
            ShadowBolt.Launch();
            Thread.Sleep(Usefuls.Latency + 1000);
        }
        if (CurseofAgony.KnownSpell && ObjectManager.Target.HealthPercent >= 40 && !ObjectManager.Target.HaveBuff("Curse of Agony") && ObjectManager.Me.ManaPercentage > 15)
        {
            this.CurseofAgony.Launch();
            Thread.Sleep(Usefuls.Latency + 1200);
        }

        if (Corruption.KnownSpell && ObjectManager.Target.HealthPercent >= 40 && !ObjectManager.Target.HaveBuff("Corruption") && ObjectManager.Me.ManaPercentage > 15 && ObjectManager.Target.GetDistance < 25)
        {
            this.Corruption.Launch();
            Thread.Sleep(Usefuls.Latency + 1200);
        }

        if (SiphonLife.KnownSpell && ObjectManager.Target.GetDistance < 25 && ObjectManager.Target.HealthPercent >= 40 && !ObjectManager.Target.HaveBuff("Siphon Life") && ObjectManager.Me.ManaPercentage > 15)
        {
            this.SiphonLife.Launch();
            Thread.Sleep(Usefuls.Latency + 1200);
        }



        if (Immolate.KnownSpell && ObjectManager.Target.GetDistance < 25 && ObjectManager.Target.HealthPercent >= 50 && !ObjectManager.Target.HaveBuff("Immolate") && ObjectManager.Me.ManaPercentage > 15 && !SiphonLife.KnownSpell)
        {
            this.Immolate.Launch();
            Thread.Sleep(Usefuls.Latency + 1200);
        }

        if (DrainSoul.KnownSpell && ObjectManager.Target.GetDistance < 25 && ObjectManager.Target.HealthPercent <= 25 && ItemsManager.GetItemCountByNameLUA("Soul Shard") <= 3)
        {
            DrainSoul.Launch();
            Thread.Sleep(Usefuls.Latency + 500);
        }

        if (DrainLife.KnownSpell && ObjectManager.Target.GetDistance < 25 && ObjectManager.Me.ManaPercentage > 40 && ObjectManager.Me.HealthPercent <= 60 && ObjectManager.Target.HealthPercent >= 20 && ObjectManager.Target.GetDistance > 8)
        {
            DrainLife.Launch();
            Thread.Sleep(Usefuls.Latency + 500);
        }

        if (LifeTap.KnownSpell && ObjectManager.Me.HealthPercent >= 60 && ObjectManager.Me.ManaPercentage < 30)
        {
            LifeTap.Launch();
        }


        //low lvl showbolt
        if (!SummonVoid.KnownSpell && ObjectManager.Target.GetDistance < 25)
        {
            ShadowBolt.Launch();
            Thread.Sleep(Usefuls.Latency + 1000);
        }

        //shoot
        if (!Lua.LuaDoString <bool>("return IsAutoRepeatAction(" + (SpellManager.GetSpellSlotId(SpellListManager.SpellIdByName("Shoot")) + 1) + ")") && ObjectManager.Me.HealthPercent >= 60)
        {
            if (Shoot.KnownSpell)
            {
                SpellManager.CastSpellByNameLUA("Shoot");
                Thread.Sleep(Usefuls.Latency + 1000);
            }
            return;
        }
        //shoot
        if (!Lua.LuaDoString <bool>("return IsAutoRepeatAction(" + (SpellManager.GetSpellSlotId(SpellListManager.SpellIdByName("Shoot")) + 1) + ")") && ObjectManager.Target.GetDistance < 8)
        {
            if (Shoot.KnownSpell)
            {
                SpellManager.CastSpellByNameLUA("Shoot");
                Thread.Sleep(Usefuls.Latency + 1000);
            }
            return;
        }
    }