예제 #1
0
        private static void PositionHelper()
        {
            if (Player.CharacterName == "Draven" || !Config["extraSet"]["antimelee"].GetValue <MenuBool>("positioningAssistant").Enabled)
            {
                return;
            }

            if (Player.IsMelee)
            {
                Orbwalker.SetOrbwalkerPosition(Vector3.Zero);
                return;
            }

            foreach (var enemy in GameObjects.EnemyHeroes.Where(enemy => enemy.IsMelee && enemy.IsValidTarget(dodgeRange) && enemy.IsFacing(Player) && Config["extraSet"]["antimelee"]["antimeleeassist"].GetValue <MenuBool>("posAssistant" + enemy.CharacterName).Enabled))
            {
                var points = OktwCommon.CirclePoints(20, 250, Player.Position);

                if (Player.FlatMagicDamageMod > Player.FlatPhysicalDamageMod)
                {
                    OktwCommon.blockAttack = true;
                }

                var bestPoint = Vector3.Zero;

                foreach (var point in points)
                {
                    if (point.IsWall() || point.IsUnderEnemyTurret())
                    {
                        Orbwalker.SetOrbwalkerPosition(Vector3.Zero);
                        return;
                    }

                    if (enemy.Distance(point) > dodgeRange && (bestPoint == Vector3.Zero || point.DistanceToCursor() < bestPoint.DistanceToCursor()))
                    {
                        bestPoint = point;
                    }
                }

                if (enemy.Distance(bestPoint) > dodgeRange)
                {
                    Orbwalker.SetOrbwalkerPosition(bestPoint);
                }
                else
                {
                    var fastPoint = enemy.PreviousPosition.Extend(Player.PreviousPosition, dodgeRange);
                    if (fastPoint.CountEnemyHeroesInRange(dodgeRange) <= Player.CountEnemyHeroesInRange(dodgeRange))
                    {
                        Orbwalker.SetOrbwalkerPosition(fastPoint);
                    }
                }

                dodgeTime = Game.Time;
                return;
            }

            Orbwalker.SetOrbwalkerPosition(Vector3.Zero);
            OktwCommon.blockAttack = false;
        }
예제 #2
0
        private static void PositionHelper()
        {
            if (Player.ChampionName == "Draven" || !Config.Item("positioningAssistant").GetValue <bool>() || AIOmode == 2)
            {
                return;
            }

            if (Player.IsMelee)
            {
                Orbwalker.SetOrbwalkingPoint(new Vector3());
                return;
            }

            foreach (var enemy in Enemies.Where(enemy => enemy.IsMelee && enemy.IsValidTarget(dodgeRange) && enemy.IsFacing(Player) && Config.Item("posAssistant" + enemy.ChampionName).GetValue <bool>()))
            {
                if (Player.FlatMagicDamageMod > Player.FlatPhysicalDamageMod)
                {
                    OktwCommon.blockAttack = true;
                }

                var     points    = OktwCommon.CirclePoints(20, 200, Player.Position);
                Vector3 bestPoint = Vector3.Zero;

                foreach (var point in points)
                {
                    if (enemy.Distance(point) > dodgeRange && (bestPoint == Vector3.Zero || Game.CursorPos.Distance(point) < Game.CursorPos.Distance(bestPoint)))
                    {
                        bestPoint = point;
                    }
                }

                if (enemy.Distance(bestPoint) > dodgeRange)
                {
                    Orbwalker.SetOrbwalkingPoint(bestPoint);
                }
                else
                {
                    var fastPoint = enemy.ServerPosition.Extend(Player.ServerPosition, dodgeRange);
                    if (fastPoint.CountEnemiesInRange(dodgeRange) <= Player.CountEnemiesInRange(dodgeRange))
                    {
                        Orbwalker.SetOrbwalkingPoint(fastPoint);
                    }
                }
                dodgeTime = Game.Time;
                return;
            }

            Orbwalker.SetOrbwalkingPoint(new Vector3());
            if (OktwCommon.blockAttack == true)
            {
                OktwCommon.blockAttack = false;
            }
        }
예제 #3
0
파일: Caitlyn.cs 프로젝트: happymaj00r/Port
        private void LogicW()
        {
            if (Player.Mana > RMANA + WMANA)
            {
                if (Program.Combo)
                {
                    return;
                }
                if (Config.Item("autoW", true).GetValue <bool>())
                {
                    foreach (var enemy in HeroManager.Enemies.Where(enemy => enemy.IsValidTarget(W.Range) && !OktwCommon.CanMove(enemy) && !enemy.HasBuff("caitlynyordletrapinternal")))
                    {
                        if (Utils.TickCount - W.LastCastAttemptT > 1000)
                        {
                            W.Cast(enemy);
                            LastW = enemy;
                        }
                        else if (LastW.NetworkId != enemy.NetworkId)
                        {
                            W.Cast(enemy);
                            LastW = enemy;
                        }
                    }
                }

                if (Config.Item("telE", true).GetValue <bool>())
                {
                    var trapPos = OktwCommon.GetTrapPos(W.Range);
                    if (!trapPos.IsZero)
                    {
                        W.Cast(trapPos);
                    }
                }
                if ((int)(Game.Time * 10) % 2 == 0 && Config.Item("bushW2", true).GetValue <bool>())
                {
                    if (Player.Spellbook.GetSpell(SpellSlot.W).Ammo == new int[] { 0, 3, 3, 4, 4, 5 }[W.Level] && Player.CountEnemiesInRange(1000) == 0)
                    {
                        var points = OktwCommon.CirclePoints(8, W.Range, Player.Position);
                        foreach (var point in points)
                        {
                            if (NavMesh.IsWallOfGrass(point, 0) || point.UnderTurret(true))
                            {
                                if (!OktwCommon.CirclePoints(8, 150, point).Any(x => x.IsWall()))
                                {
                                    W.Cast(point);
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        }