예제 #1
0
파일: Program.cs 프로젝트: Zypppy/AimTec
        private static void GameEvents_GameStart()
        {
            if (ObjectManager.GetLocalPlayer().ChampionName != "Ekko")
            {
                return;
            }

            var Ekko = new Ekko();
        }
예제 #2
0
        /// <summary>
        ///     OnUpdate event.
        /// </summary>
        /// <param name="args">
        ///     The event data
        /// </param>
        private static void OnUpdate(EventArgs args)
        {
            Ekko.Player.SetSkin(
                Ekko.Player.BaseSkinName,
                Ekko.Menu.Item("l33t.ekko.skinchanger.enable").GetValue <bool>()
                    ? Ekko.Menu.Item("l33t.ekko.skinchanger.list").GetValue <StringList>().SelectedIndex
                    : Ekko.Player.BaseSkinId);

            if (Ekko.Spells[SpellSlot.R].IsReady() && Ekko.Menu.Item("l33t.ekko.combo.rbackenable").GetValue <bool>())
            {
                if (!Ekko.OldHealthPercent.ContainsKey(Ekko.GameTime))
                {
                    Ekko.OldHealthPercent.Add(Ekko.GameTime, Ekko.Player.Health);
                }

                foreach (var contents in Ekko.OldHealthPercent.ToArray().Where(contents => contents.Key + 4000 < Ekko.GameTime))
                {
                    Ekko.OldHealthPercent.Remove(contents.Key);
                }
            }

            if (Ekko.Menu.Item("l33t.ekko.ks.use").GetValue <bool>())
            {
                Mechanics.ProcessKillsteal();
            }

            Orbwalking.AfterAttack += (unit, target) =>
            {
                if (Ekko.Orbwalker.ActiveMode.Equals(Orbwalking.OrbwalkingMode.LaneClear) && Ekko.GameTime - LastAfterAttackTick > Ekko.Player.AttackDelay * 1000)
                {
                    var targetBase = target as Obj_AI_Minion;
                    if (unit.IsMe && targetBase != null && Ekko.Spells[SpellSlot.E].IsReady())
                    {
                        if (!targetBase.BaseSkinName.Contains("minion") &&
                            !targetBase.BaseSkinName.Contains("Minion") &&
                            !targetBase.BaseSkinName.Contains("ward") &&
                            !targetBase.BaseSkinName.Contains("Ward") &&
                            !targetBase.BaseSkinName.Contains("trinket") &&
                            !targetBase.BaseSkinName.Contains("Trinket"))
                        {
                            if (targetBase.Health > Ekko.Player.GetAutoAttackDamage(targetBase) ||
                                (targetBase.GetAutoAttackDamage(Ekko.Player) < Ekko.Player.Health &&
                                 targetBase.Health < Ekko.Player.GetAutoAttackDamage(targetBase)))
                            {
                                var dashPosition = targetBase.Position;
                                for (var i = 0; i <= Ekko.Spells[SpellSlot.E].Range; ++i)
                                {
                                    var range = targetBase.Position.Extend(Ekko.Player.Position, i);
                                    if (range.Distance(targetBase.Position) < Ekko.Player.AttackRange)
                                    {
                                        dashPosition = range;
                                    }
                                }

                                if (dashPosition.IsValid())
                                {
                                    Utility.DelayAction.Add(
                                        (int)(Ekko.Spells[SpellSlot.E].Delay * 1000) + 500 + Game.Ping / 2,
                                        () =>
                                    {
                                        Ekko.Player.IssueOrder(GameObjectOrder.AttackUnit, target);
                                    });
                                    Ekko.Spells[SpellSlot.E].Cast(dashPosition);
                                }
                            }
                        }
                    }

                    LastAfterAttackTick = Ekko.GameTime;
                }
            };
            switch (Ekko.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Mechanics.ProcessSpells();
                break;

            case Orbwalking.OrbwalkingMode.LastHit:
            case Orbwalking.OrbwalkingMode.LaneClear:
                Mechanics.ProcessFarm();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Mechanics.ProcessSpells(true);
                break;

            case Orbwalking.OrbwalkingMode.None:
                if (Ekko.Menu.Item("l33t.ekko.flee.enable").GetValue <bool>() &&
                    Ekko.Menu.Item("l33t.ekko.flee.key").GetValue <KeyBind>().Active)
                {
                    Mechanics.ProcessFlee();
                    Ekko.MoveTo(Game.CursorPos, Ekko.Player.BoundingRadius);
                }

                break;
            }
        }