Esempio n. 1
0
        private static void Combo()
        {
            Ulti();
            float       perc   = (float)config.Item("minmana").GetValue <Slider>().Value / 100f;
            var         minHit = config.Item("useemin").GetValue <Slider>().Value;
            Obj_AI_Hero target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            UseItems(target);
            if (W.IsReady() && config.Item("usew").GetValue <bool>() && me.CountEnemysInRange((int)me.AttackRange) > 0 && me.Spellbook.GetSpell(SpellSlot.W).ManaCost <= me.Mana)
            {
                W.Cast();
            }
            if (E.IsReady() && me.Distance(target.Position) < E.Range && CountBuff(E.Range) > 0 && (
                    (CountBuff(E.Range) >= minHit) ||
                    (Damage.GetSpellDamage(me, target, SpellSlot.E) >= target.Health) ||
                    (me.Distance(target) > config.Item("useEminr").GetValue <Slider>().Value&& me.Distance(target) < E.Range && CountBuff(E.Range) == 1)))
            {
                if (!(Q.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.Q).ManaCost < me.MaxMana * perc) || !(W.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.W).ManaCost < me.MaxMana * perc))
                {
                    E.Cast();
                }
            }
            if (Q.IsReady() && config.Item("useq").GetValue <bool>() && me.Spellbook.GetSpell(SpellSlot.Q).ManaCost <= me.Mana)
            {
                Q.Cast(target, config.Item("packets").GetValue <bool>());
            }
        }
Esempio n. 2
0
 private static void Game_OnGameUpdate(EventArgs args)
 {
     Config.Item("Small").ValueChanged += resetSmallText;
     if (Config.Item("Default").GetValue <bool>())
     {
         Config.Item("Y-pos").SetValue(new Slider(0, 200, -1080));
         Config.Item("X-pos").SetValue(new Slider(0, -1500, 400));
         Config.Item("Range").SetValue(new Slider(2200, 0, 20000));
         Config.Item("Default").SetValue(false);
     }
     range = Config.Item("Range").GetValue <Slider>().Value;
     try
     {
         if (Config.Item("Enabled").GetValue <bool>() && refresh && player.CountEnemysInRange(range) > 0 &&
             countAllies(range) > 0)
         {
             teams   = new Teams();
             refresh = false;
         }
     }
     catch (Exception d)
     {
         Console.Write(d.ToString());
     }
 }
Esempio n. 3
0
 private static bool Checkinrange(Obj_AI_Hero i)
 {
     if (i.CountEnemysInRange(750) >= 1 && i.CountEnemysInRange(750) < 3)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 4
0
        private static void Game_OnGameUpdate(EventArgs args)
        {
            //Checks
            MegaGnar   = player.HasBuff("gnartransform");
            PacketCast = SKOMenu.Item("UsePacket").GetValue <bool>();
            YMG        = new Items.Item(3142, player.AttackRange + player.BoundingRadius);



            if (SKOMenu.Item("activeClear").GetValue <KeyBind>().Active)
            {
                Clear();
            }

            var target = TargetSelector.GetTarget(MegaQ.Range, TargetSelector.DamageType.Physical);

            if (SKOMenu.Item("activeCombo").GetValue <KeyBind>().Active)
            {
                Combo(target);
            }
            if (SKOMenu.Item("activeHarass").GetValue <KeyBind>().Active)
            {
                Harass(target);
            }

            if (SKOMenu.Item("AutoR").GetValue <bool>() && player.CountEnemysInRange(500) >= SKOMenu.Item("MinRenemys").GetValue <Slider>().Value)
            {
                CastR();
            }

            KillSteal(target);
        }
Esempio n. 5
0
        private static void Ulti()
        {
            if (!R.IsReady() || PingCasted || me.IsDead)
            {
                return;
            }

            foreach (var allyObj in ObjectManager.Get <Obj_AI_Hero>().Where(i => i.IsAlly && !i.IsMe && !i.IsDead && ((Checkinrange(i) && ((i.Health * 100 / i.MaxHealth) <= config.Item("atpercent").GetValue <Slider>().Value)) || (CheckCriticalBuffs(i) && i.CountEnemysInRange(600) < 1))))
            {
                if (config.Item("user").GetValue <bool>() && R.IsReady() && me.CountEnemysInRange((int)E.Range) < 1 && !config.Item("ult" + allyObj.SkinName).GetValue <bool>())
                {
                    R.Cast(allyObj);
                    return;
                }
                else
                {
                    Game.PrintChat("<font color='#ff0000'> Use Ultimate (R) to help: {0}</font>", allyObj.ChampionName);
                    for (Int32 i = 0; i < 2; i++)
                    {
                        Packet.S2C.Ping.Encoded(new Packet.S2C.Ping.Struct(allyObj.Position.X, allyObj.Position.Y, allyObj.NetworkId, 0, Packet.PingType.Fallback)).Process();
                    }
                }
                PingCasted = true;
                Utility.DelayAction.Add(5000, () => PingCasted = false);
            }
        }
Esempio n. 6
0
        private static void Combo()
        {
            Obj_AI_Hero target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (target == null)
            {
                return;
            }
            if (config.Item("useItems").GetValue <bool>())
            {
                CF.UseSpells(target);
            }
            bool hasFlash = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerFlash")) == SpellState.Ready;

            //bool hasIgnite = player.Spellbook.CanUseSpell(player.GetSpellSlot("SummonerDot")) == SpellState.Ready;

            if (config.Item("usew").GetValue <bool>() && player.Distance(target.Position) < R.Range && W.IsReady())
            {
                W.Cast(config.Item("packets").GetValue <bool>());
            }

            if (config.Item("usee").GetValue <bool>() && E.IsReady())
            {
                if (config.Item("useewall").GetValue <bool>())
                {
                    var   bestpos  = CF.bestVectorToPoppyFlash(target);
                    float damage   = (float)(CF.ComboDamage(target) + Damage.CalcDamage(player, target, Damage.DamageType.Magical, (eSecond[E.Level - 1] + 0.8f * player.FlatMagicDamageMod)) + (player.GetAutoAttackDamage(target) * 4));
                    float damageno = (float)(CF.ComboDamage(target) + (player.GetAutoAttackDamage(target) * 4));
                    if (config.Item("useeflash").GetValue <bool>() && hasFlash && !CheckWalls(player, target) && damage > target.Health && target.Health > damageno && CF.bestVectorToPoppyFlash(target).IsValid())
                    {
                        player.Spellbook.CastSpell(player.GetSpellSlot("SummonerFlash"), bestpos);
                        Utility.DelayAction.Add(100, () => E.CastOnUnit(target, config.Item("packets").GetValue <bool>()));
                    }
                    if (E.CanCast(target) && CheckWalls(player, target))
                    {
                        E.CastOnUnit(target, config.Item("packets").GetValue <bool>());
                    }
                }
                else
                {
                    if (E.CanCast(target))
                    {
                        E.CastOnUnit(target, config.Item("packets").GetValue <bool>());
                    }
                }
            }
            if (config.Item("user").GetValue <bool>())
            {
                if (R.IsReady() && player.Distance(target.Position) < E.Range && CF.ComboDamage(target) + player.GetAutoAttackDamage(target) * 5 < target.Health && (CF.ComboDamage(target) + player.GetAutoAttackDamage(target) * 3) * ultMod[R.Level - 1] > target.Health)
                {
                    R.CastOnUnit(target, config.Item("packets").GetValue <bool>());
                }
            }
            if (config.Item("userindanger").GetValue <Slider>().Value < player.CountEnemysInRange(R.Range))
            {
                R.CastOnUnit(target, config.Item("packets").GetValue <bool>());
            }
        }
Esempio n. 7
0
        public static void UseSpells(Obj_AI_Hero target)
        {
            if (player.Distance(target) < 400)
            {
                //tiamat
                if (Items.HasItem(3077) && Items.CanUseItem(3077))
                {
                    Items.UseItem(3077);
                }
                if (Items.HasItem(3074) && Items.CanUseItem(3074))
                {
                    Items.UseItem(3074);
                }
            }
            if (player.Distance(target) < 500 && player.Distance(target) > player.AttackRange + 100)
            {
                //randuin
                if (Items.HasItem(3143) && Items.CanUseItem(3143))
                {
                    Items.UseItem(3143);
                }
            }
            if (Items.HasItem(3180) && Items.CanUseItem(3180))
            {
                if (player.Distance(target) < 525 && (player.CountEnemysInRange(525) > 1 || target.Health < Damage.GetItemDamage(player, target, Damage.DamageItems.OdingVeils)))
                {
                    Items.UseItem(3180);
                }
            }

            if (Items.HasItem(3144) && Items.CanUseItem(3144))
            {
                bilgewater.Cast(target);
            }
            if (Items.HasItem(3153) && Items.CanUseItem(3153) && player.Health < player.MaxHealth / 2)
            {
                botrk.Cast(target);
            }
            if (Items.HasItem(3146) && Items.CanUseItem(3146))
            {
                hexgun.Cast(target);
            }
            if (Items.HasItem(Dfg.Id) && Items.CanUseItem(Dfg.Id))
            {
                Dfg.Cast(target);
            }
            if (Items.HasItem(Bft.Id) && Items.CanUseItem(Bft.Id))
            {
                Bft.Cast(target);
            }
            if (player.Spellbook.CanUseSpell(player.GetSpellSlot("summonerdot")) == SpellState.Ready)
            {
                if (player.Distance(target) < 650 && ComboDamage(target) >= target.Health)
                {
                    player.Spellbook.CastSpell(player.GetSpellSlot("SummonerDot"), target);
                }
            }
        }
Esempio n. 8
0
 private static void Combo()
 {
     if (GetBool("UseQ") && Q.IsReady() && Q.InRange(Target.Position))
     {
         Q.Cast(Target, GetBool("Packets"));
     }
     if (GetBool("UseW") && W.IsReady() && Player.Spellbook.GetSpell(SpellSlot.W).ToggleState == 1 && Player.CountEnemysInRange((int)W.Range) >= 1 &&
         (Player.Mana / Player.MaxMana * 100) > GetSlider("ManaW"))
     {
         W.CastOnUnit(Player, GetBool("Packets"));
     }
     if (GetBool("UseE") && E.IsReady() && Player.CountEnemysInRange((int)E.Range) >= 1)
     {
         E.CastOnUnit(Player, GetBool("Packets"));
     }
     if (GetBool("UseR") && Player.CountEnemysInRange((int)R.Range) >= GetSlider("REnemies"))
     {
         R.CastOnUnit(Player, GetBool("Packets"));
     }
 }
Esempio n. 9
0
        private static void SwitchNoEn()
        {
            if (!IsMenuEnabled("SwitchQNoEn"))
            {
                return;
            }

            var range = IsFishBone()
                ? 525f + ObjectManager.Player.BoundingRadius + 65f
                : 525f + ObjectManager.Player.BoundingRadius + 65f + GetFishboneRange() + 20f;

            if (Player.CountEnemysInRange((int)range) != 0)
            {
                return;
            }

            if (IsFishBone())
            {
                Q.Cast();
            }
        }
Esempio n. 10
0
 public static void UseItems(Obj_AI_Hero target)
 {
     if (player.Distance(target) < hydra.Range)
     {
         if (Items.HasItem(tiamat.Id) && Items.CanUseItem(tiamat.Id))
         {
             Items.UseItem(tiamat.Id);
         }
         if (Items.HasItem(hydra.Id) && Items.CanUseItem(hydra.Id))
         {
             Items.UseItem(hydra.Id);
         }
     }
     if (Items.HasItem(randuins.Id) && Items.CanUseItem(randuins.Id))
     {
         if (player.Distance(target) < randuins.Range && player.Distance(target) > player.AttackRange + 100)
         {
             Items.UseItem(randuins.Id);
         }
     }
     if (Items.HasItem(odins.Id) && Items.CanUseItem(odins.Id))
     {
         if (player.Distance(target) < odins.Range &&
             (player.CountEnemysInRange(odins.Range) > 1 ||
              target.Health < Damage.GetItemDamage(player, target, Damage.DamageItems.OdingVeils)))
         {
             Items.UseItem(odins.Id);
         }
     }
     if (Items.HasItem(bilgewater.Id) && Items.CanUseItem(bilgewater.Id))
     {
         bilgewater.Cast(target);
     }
     if (Items.HasItem(botrk.Id) && Items.CanUseItem(botrk.Id) && (player.Health < player.MaxHealth / 2 || Damage.GetItemDamage(player, target, Damage.DamageItems.Botrk) < target.Health))
     {
         botrk.Cast(target);
     }
     if (Items.HasItem(hexgun.Id) && Items.CanUseItem(hexgun.Id))
     {
         hexgun.Cast(target);
     }
     if (Items.HasItem(Dfg.Id) && Items.CanUseItem(Dfg.Id))
     {
         Dfg.Cast(target);
     }
     if (Items.HasItem(Bft.Id) && Items.CanUseItem(Bft.Id))
     {
         Bft.Cast(target);
     }
 }
Esempio n. 11
0
        private static void Combo(Obj_AI_Hero target)
        {
            if (Player.HasBuff("GalioIdolOfDurand"))
            {
                Orbwalker.SetMovement(false);
            }

            if (target.IsValidTarget())
            {
                if (Q.IsReady() && Player.Distance(target) <= Q.Range && Config.Item("UseQCombo").GetValue <bool>())
                {
                    var qPred = Q.GetPrediction(target);

                    if (qPred.Hitchance >= HitChance.High)
                    {
                        Q.Cast(qPred.CastPosition);
                    }
                }
                if (E.IsReady() && Player.Distance(target) <= E.Range && Config.Item("UseECombo").GetValue <bool>())
                {
                    var ePred = E.GetPrediction(target);

                    if (ePred.Hitchance >= HitChance.High)
                    {
                        E.Cast(ePred.CastPosition);
                    }
                }
                if (Config.Item("UseWCombo").GetValue <bool>() && Config.Item("WMode").GetValue <StringList>().SelectedIndex == 0 && W.IsReady())
                {
                    W.Cast(Player);
                }

                if (R.IsReady() && Player.CountEnemysInRange(560) >= Config.Item("MinEnemys").GetValue <Slider>().Value&& Config.Item("UseRCombo").GetValue <bool>())
                {
                    if (Config.Item("UseWCombo").GetValue <bool>() && Config.Item("WMode").GetValue <StringList>().SelectedIndex == 1 && W.IsReady())
                    {
                        W.Cast(Player);
                    }
                    R.Cast(target, PacketCast, true);
                }
            }
        }
Esempio n. 12
0
        private static void Combo()
        {
            Ulti();
            float       perc   = (float)config.Item("minmana").GetValue <Slider>().Value / 100f;
            var         minHit = config.Item("useemin").GetValue <Slider>().Value;
            Obj_AI_Hero target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Magical);

            if (config.Item("useItems").GetValue <bool>())
            {
                ItemHandler.UseItems(target);
            }

            if (W.IsReady() && config.Item("usew").GetValue <bool>() && me.CountEnemysInRange((int)me.AttackRange) > 0 && me.Spellbook.GetSpell(SpellSlot.W).ManaCost <= me.Mana)
            {
                W.Cast();
            }

            var buffs = CombatHelper.SejuaniCountFrostHero(E.Range);

            if (E.IsReady() && me.Distance(target.Position) < E.Range && buffs > 0 && (
                    (buffs > minHit) ||
                    (Damage.GetSpellDamage(me, target, SpellSlot.E) >= target.Health) ||
                    (me.Distance(target) > config.Item("useEminr").GetValue <Slider>().Value&& me.Distance(target) < E.Range && buffs == 1)))
            {
                if (!(Q.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.Q).ManaCost < me.MaxMana * perc) || !(W.IsReady() && me.Mana - me.Spellbook.GetSpell(SpellSlot.W).ManaCost < me.MaxMana * perc))
                {
                    E.Cast();
                }
            }
            if (Q.IsReady() && config.Item("useq").GetValue <bool>() && me.Spellbook.GetSpell(SpellSlot.Q).ManaCost <= me.Mana)
            {
                Q.Cast(target, config.Item("packets").GetValue <bool>());
            }
            bool hasIgnite = me.Spellbook.CanUseSpell(me.GetSpellSlot("SummonerDot")) == SpellState.Ready;
            var  ignitedmg = (float)me.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite);

            if (ignitedmg > target.Health && hasIgnite && !E.CanCast(target) && !W.CanCast(target) && !Q.CanCast(target))
            {
                me.Spellbook.CastSpell(me.GetSpellSlot("SummonerDot"), target);
            }
        }
Esempio n. 13
0
        private static void Combo(Obj_AI_Hero vTarget)
        {
            if (Config.SubMenu("Escape").Item("fizz").GetValue <bool>())
            {
                if (ObjectManager.Get <Obj_AI_Hero>().Any(hero => vTarget != hero && hero.BaseSkinName == "Fizz" && !hero.IsTargetable && hero.Distance(_player) < E.Range && vTarget.Health > CalcDamage(vTarget)))
                {
                    return;
                }
            }

            if (_igniteSlot != SpellSlot.Unknown && _player.Spellbook.CanUseSpell(_igniteSlot) == SpellState.Ready)
            {
                _player.Spellbook.CastSpell(_igniteSlot, vTarget);
            }
            if (CalcDamage(vTarget) > vTarget.Health && W.IsReady() && vTarget.CountEnemysInRange(700) < 3 && !vTarget.Position.UnderTurret(true) && Config.SubMenu("Combo").Item("UseW").GetValue <bool>())
            {
                W.Cast(vTarget.ServerPosition, UsePackets());
            }

            if (Config.Item("UseR").GetValue <bool>() && R.IsReady() && vTarget.Distance(_player.Position) <= R.Range)
            {
                if (R.GetDamage(vTarget) > vTarget.Health)
                {
                    R.CastOnUnit(vTarget, UsePackets());
                }
            }
            if (Config.SubMenu("Escape").Item("Zed").GetValue <bool>())
            {
                if (!_player.HasBuff("zedulttargetmark", true))
                {
                    return;
                }
                foreach (var hero in ObjectManager.Get <Obj_AI_Hero>().Where(hero => hero.BaseSkinName == "Zed" && hero.IsTargetable && !W.IsReady() && _player.Distance(hero) <= hero.AttackRange + hero.BoundingRadius + _player.BoundingRadius + 50 && Game.Time - _zedTime > 3))
                {
                    R.CastOnUnit(hero, UsePackets());
                }
            }
        }
Esempio n. 14
0
 public static void saveSould()
 {
     if (soul == null)
     {
         foreach (var ally in
                  from ally in ObjectManager.Get <Obj_AI_Hero>().Where(tx => tx.IsAlly && !tx.IsDead && !tx.IsMe)
                  where ObjectManager.Player.Distance(ally) <= SkillHandler.R.Range
                  from buff in ally.Buffs
                  where ally.HasBuff("kalistacoopstrikeally")
                  select ally)
         {
             soul = ally;
             break;
         }
     }
     else
     {
         if ((soul.Health / soul.MaxHealth) > MenuHandler.Config.Item("soulHP").GetValue <Slider>().Value &&
             soul.CountEnemysInRange((int)Orbwalking.GetRealAutoAttackRange(soul)) >= MenuHandler.Config.Item("soulEnemyCount").GetValue <Slider>().Value)
         {
             SkillHandler.R.Cast(Kalista.packetCast);
         }
     }
 }
Esempio n. 15
0
        private static void ComboMixed()
        {
            var UseR      = Config.Item("UseR").GetValue <bool>();
            var UseIgnite = Config.Item("UseIgnite").GetValue <bool>();
            var UsePacket = Config.Item("UsePacket").GetValue <bool>();

            if (target == null)
            {
                return;
            }

            if (UseIgnite && (IgniteKillable(target) || GetComboDamage(target) > target.Health))
            {
                if (IgniteSlot != SpellSlot.Unknown && myHero.SummonerSpellbook.CanUseSpell(IgniteSlot) == SpellState.Ready && Vector3.Distance(myHero.Position, target.Position) <= 600)
                {
                    myHero.SummonerSpellbook.CastSpell(IgniteSlot, target);
                }
            }

            if (Environment.TickCount - LastFlashTime < 1 && W.IsReady())
            {
                W.CastOnUnit(target, UsePacket);
            }
            else
            {
                if (Q.IsKillable(target) && Q.IsReady())
                {
                    Q.CastOnUnit(target, UsePacket);
                }
                else if (E.IsKillable(target) && E.IsReady())
                {
                    E.CastOnUnit(target, UsePacket);
                }
                else if (W.IsKillable(target) && W.IsReady())
                {
                    W.CastOnUnit(target, UsePacket);
                }
                else if (Vector3.Distance(myHero.Position, target.Position) >= 575 && !myHero.IsFacing(target) && W.IsReady())
                {
                    W.CastOnUnit(target, UsePacket);
                }
                else
                {
                    if (Q.IsReady() && W.IsReady() && E.IsReady() && GetComboDamage(target) > target.Health)
                    {
                        if (Q.IsReady())
                        {
                            Q.CastOnUnit(target, UsePacket);
                        }
                        else if (R.IsReady() && UseR)
                        {
                            R.CastOnUnit(myHero, UsePacket);
                        }
                        else if (W.IsReady())
                        {
                            W.CastOnUnit(target, UsePacket);
                        }
                        else if (E.IsReady())
                        {
                            E.CastOnUnit(target, UsePacket);
                        }
                    }
                    else if (Math.Abs(myHero.PercentCooldownMod) >= 0.2)
                    {
                        if (myHero.CountEnemysInRange(300) > 1)
                        {
                            if (LastCast == "Q")
                            {
                                if (Q.IsReady())
                                {
                                    Q.CastOnUnit(target, UsePacket);
                                }
                                if (R.IsReady() && UseR)
                                {
                                    R.CastOnUnit(myHero, UsePacket);
                                }
                                if (!R.IsReady())
                                {
                                    W.CastOnUnit(target, UsePacket);
                                }
                                if (!R.IsReady() && !W.IsReady())
                                {
                                    E.CastOnUnit(target, UsePacket);
                                }
                            }
                            else
                            {
                                Q.CastOnUnit(target, UsePacket);
                            }
                        }
                        else
                        {
                            if (LastCast == "Q")
                            {
                                if (Q.IsReady())
                                {
                                    Q.CastOnUnit(target, UsePacket);
                                }
                                if (W.IsReady())
                                {
                                    W.CastOnUnit(target, UsePacket);
                                }
                                if (!W.IsReady())
                                {
                                    E.CastOnUnit(target, UsePacket);
                                }
                                if (!W.IsReady() && !E.IsReady() && UseR)
                                {
                                    R.CastOnUnit(myHero, UsePacket);
                                }
                            }
                            else
                            if (Q.IsReady())
                            {
                                Q.CastOnUnit(target, UsePacket);
                            }
                        }
                    }
                    else
                    {
                        if (Q.IsReady())
                        {
                            Q.CastOnUnit(target, UsePacket);
                        }
                        else if (R.IsReady() && UseR)
                        {
                            R.CastOnUnit(myHero, UsePacket);
                        }
                        else if (E.IsReady())
                        {
                            E.CastOnUnit(target, UsePacket);
                        }
                        else if (W.IsReady())
                        {
                            W.CastOnUnit(target, UsePacket);
                        }
                    }
                }
            }
        }
Esempio n. 16
0
        private static void MoveTo(Vector3 position)
        {
            var delay = Menu.Item("orb_Misc_Humanizer").GetValue <Slider>().Value;

            if ((MyHero.ChampionName == "Katarina" || MyHero.ChampionName == "Velkoz") && delay < 400 && (R.IsReady() || MyHero.Spellbook.GetSpell(SpellSlot.R).State == SpellState.Surpressed) && MyHero.CountEnemysInRange(1000) > 0)
            {
                delay = 400;
            }
            if (Environment.TickCount - _lastMovement < delay)
            {
                return;
            }
            _lastMovement = Environment.TickCount;

            var holdAreaRadius = Menu.Item("orb_Misc_Holdzone").GetValue <Slider>().Value;

            if (MyHero.ServerPosition.Distance(position) < holdAreaRadius)
            {
                if (MyHero.Path.Count() > 1)
                {
                    MyHero.IssueOrder(GameObjectOrder.HoldPosition, MyHero.Position);
                }
                return;
            }
            var point = MyHero.ServerPosition +
                        300 * (position.To2D() - MyHero.ServerPosition.To2D()).Normalized().To3D();

            MyHero.IssueOrder(GameObjectOrder.MoveTo, point);
        }
Esempio n. 17
0
        public static void AntiGapcloser_OnEnemyGapcloser(ActiveGapcloser gapcloser)
        {
            if (!Config.SubMenu("Escape").Item("gapcloser").GetValue <bool>() || gapcloser.Sender.Distance(_player.Position) > 700 || !Config.SubMenu("Combo").Item("UseW").GetValue <bool>())
            {
                return;
            }

            if (W.IsReady())
            {
                _time = Game.Time;
                if (CalcDamage(gapcloser.Sender) > gapcloser.Sender.Health && gapcloser.End.CountEnemysInRange(700) < 2 && !gapcloser.End.UnderTurret(true)) //NO YOU DONT.. run away ^^
                {
                    W.Cast(gapcloser.End);
                    return;
                }
                foreach (var hero in ObjectManager.Get <Obj_AI_Hero>())
                {
                    if (W.GetDamage(hero) > hero.Health + 50 && hero.Distance(_player) < W.Range && hero.Position.CountEnemysInRange(700) < 3) // if anyone else is killable
                    {
                        W.Cast(hero.Position);
                        return;
                    }
                }
                var dada = new Vector2(gapcloser.End.Extend(
                                           _player.Position, _player.Distance(gapcloser.End) + W.Range).X, gapcloser.End.Extend(
                                           _player.Position, _player.Distance(gapcloser.End) + W.Range).Y);
                dada.Normalize();
                if (!dada.IsWall() && !dada.To3D().UnderTurret(true) && dada.To3D().CountEnemysInRange(700) <= 1) //try to find better escape
                {
                    W.Cast(dada);
                }
                else
                {
                    Escape(); //use full escape mechanism
                }
            }
            else //if not killable or more then 2 enemies around..
            {
                if (R.IsReady() && (Game.Time - _time > 1) && (CalcDamage(gapcloser.Sender) < gapcloser.Sender.Health) || _player.CountEnemysInRange(R.Range) > 2)
                {
                    R.CastOnUnit(gapcloser.Sender, UsePackets());
                }
            }
        }