Beispiel #1
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!W.IsReady(2000))
            {
                return;
            }
            if (!(sender is Obj_AI_Base))
            {
                return;
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null && target.IsMe)
            {
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy && target.IsValid && target.IsMe)
                {
                    if (Orbwalking.IsAutoAttack(args.SData.Name))
                    {
                        var dmg = (float)sender.GetAutoAttackDamage(player, true);
                        DamageTaken += dmg;
                    }
                    else
                    {
                        if (W.IsReady())
                        {
                            IncSpell = true;
                            Utility.DelayAction.Add(300, () => IncSpell = false);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                if (args.SData.Name == "SionQ")
                {
                    if (!justQ)
                    {
                        justQ    = true;
                        qStart   = System.Environment.TickCount;
                        lastQPos = player.Position.Extend(args.End, Q.Range);
                        Utility.DelayAction.Add(600, () => justQ = false);
                    }
                }
                if (args.SData.Name == "SionE")
                {
                    if (!justE)
                    {
                        justE = true;
                        Utility.DelayAction.Add(400, () => justE = false);
                    }
                }
            }
            if (!activatedW && W.IsReady() && args.Target is Obj_AI_Hero && sender is Obj_AI_Hero &&
                CombatHelper.isDangerousSpell(
                    args.SData.Name, (Obj_AI_Hero)args.Target, (Obj_AI_Hero)sender, args.End, W.Range, true))
            {
                W.Cast(config.Item("packets").GetValue <bool>());
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null && !activatedP)
            {
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy && target.IsValid && target.IsMe)
                {
                    if (Orbwalking.IsAutoAttack(args.SData.Name))
                    {
                        var dmg = (float)sender.GetAutoAttackDamage(player, true);
                        DamageTaken += dmg;
                        DamageCount++;
                    }
                    else
                    {
                        if (W.IsReady())
                        {
                            IncSpell = true;
                            Utility.DelayAction.Add(300, () => IncSpell = false);
                        }
                    }
                }
            }
            if (config.Item("userCC", true).GetValue <bool>() && sender is Obj_AI_Hero && sender.IsEnemy &&
                player.Distance(sender) < Q.Range &&
                CombatHelper.isDangerousSpell(
                    args.SData.Name, args.Target as Obj_AI_Hero, sender as Obj_AI_Hero, args.End, float.MaxValue, false) &&
                HeroManager.Enemies.FirstOrDefault(e => e.Distance(Game.CursorPos) < 300) != null)
            {
                R.Cast(Game.CursorPos, config.Item("packets").GetValue <bool>());
            }
        }
Beispiel #3
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (sender.IsMe)
            {
                switch (args.SData.Name)
                {
                case "UdyrTigerStance":
                    stance = Stance.Tiger;
                    break;

                case "UdyrTurtleStance":
                    stance = Stance.Turtle;
                    break;

                case "UdyrBearStance":
                    stance = Stance.Bear;
                    break;

                case "UdyrPhoenixStance":
                    stance = Stance.Phoenix;
                    break;
                }
            }
            if (!(sender is Obj_AI_Base))
            {
                return;
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null)
            {
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy && target.IsValid && target.IsMe)
                {
                    if (((config.Item("usewLC", true).GetValue <bool>() &&
                          orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) ||
                         (orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                          config.Item("usew", true).GetValue <bool>())))
                    {
                        /*var ShieldBuff = new Int32[] { 60, 100, 140, 180, 220 }[W.Level - 1] +
                         *                  0.5 * player.FlatMagicDamageMod;*/
                        if (Orbwalking.IsAutoAttack(args.SData.Name))
                        {
                            var dmg = (float)sender.GetAutoAttackDamage(player, true);
                            DamageTaken += dmg;
                        }
                        else
                        {
                            if (W.IsReady())
                            {
                                IncSpell = true;
                                Utility.DelayAction.Add(300, () => IncSpell = false);
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
 private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     if (enabled)
     {
         AIHeroClient target = args.Target as AIHeroClient;
         if (target != null && target.Team != sender.Team)
         {
             if (sender.IsValid && !sender.IsDead)
             {
                 var data =
                     IncomingDamagesAlly.Concat(IncomingDamagesEnemy)
                     .FirstOrDefault(i => i.Hero.NetworkId == target.NetworkId);
                 if (data != null)
                 {
                     var missileSpeed = (sender.LSDistance(target) / args.SData.MissileSpeed) +
                                        args.SData.SpellCastTime;
                     missileSpeed = missileSpeed > 1f ? 0.8f : missileSpeed;
                     if (Orbwalking.IsAutoAttack(args.SData.Name))
                     {
                         var dmg =
                             (float)(sender.LSGetAutoAttackDamage(target, true));
                         if (args.SData.Name.ToLower().Contains("crit"))
                         {
                             dmg = dmg * 2;
                         }
                         data.Damages.Add(
                             new Dmg(target, dmg, missileSpeed, !sender.Name.ToLower().Contains("turret")));
                     }
                     else
                     {
                         var hero = sender as AIHeroClient;
                         if (hero != null &&
                             !CombatHelper.BuffsList.Any(
                                 b => args.Slot == b.Slot && hero.ChampionName == b.ChampionName))
                         {
                             data.Damages.Add(
                                 new Dmg(
                                     target,
                                     (float)Damage.LSGetSpellDamage(hero, (Obj_AI_Base)args.Target, args.Slot),
                                     missileSpeed, false,
                                     SpellDatabase.CcList.Any(
                                         cc =>
                                         cc.Slot == args.Slot &&
                                         cc.Champion.ChampionName == hero.ChampionName)));
                         }
                     }
                 }
             }
         }
     }
 }
Beispiel #5
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!(sender is Obj_AI_Base))
            {
                return;
            }
            if (sender.IsMe && args.SData.Name == "GalioIdolOfDurand" && !justR)
            {
                justR = true;
                Utility.DelayAction.Add(200, () => justR = false);
            }
            if (sender.IsMe && args.SData.Name == "GalioResoluteSmite")
            {
                justQ = true;
                Utility.DelayAction.Add(getDelay(Q, args.End), () => justQ = false);
            }
            if (sender.IsMe && args.SData.Name == "GalioRighteousGust")
            {
                justE = true;
                Utility.DelayAction.Add(getDelay(E, args.End), () => justE = false);
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null && target.IsAlly)
            {
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy)
                {
                    var data = IncomingDamages.FirstOrDefault(i => i.Hero.NetworkId == target.NetworkId);
                    if (Orbwalking.IsAutoAttack(args.SData.Name))
                    {
                        var dmg = (float)sender.GetAutoAttackDamage(target, true);
                        data.DamageTaken += dmg;
                        data.DamageCount++;
                    }
                    else
                    {
                        data.DamageCount++;
                        Utility.DelayAction.Add(
                            300, () =>
                        {
                            if (data.DamageCount > 0)
                            {
                                data.DamageCount--;
                            }
                        });
                    }
                }
            }
        }
Beispiel #6
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!W.IsReady(2000))
            {
                return;
            }
            if (!(sender is Obj_AI_Base))
            {
                return;
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null && target.IsMe)
            {
                if (config.Item("usee").GetValue <bool>() && E.IsReady() &&
                    orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                    player.Distance(target.Position) < E.Range)
                {
                    return;
                }
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy && target.IsValid && target.IsMe)
                {
                    if (Orbwalking.IsAutoAttack(args.SData.Name))
                    {
                        var dmg = (float)sender.GetAutoAttackDamage(player, true);
                        DamageTaken += dmg;
                    }
                    else
                    {
                        if (W.IsReady())
                        {
                            IncSpell = true;
                            Utility.DelayAction.Add(300, () => IncSpell = false);
                        }
                    }
                }
            }
        }
Beispiel #7
0
        private void Game_ProcessSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!(sender is Obj_AI_Base))
            {
                return;
            }
            if (sender.IsMe && args.SData.Name == "MonkeyKingDoubleAttack")
            {
                justQ = true;
                Utility.DelayAction.Add(200, () => justQ = false);
            }
            if (sender.IsMe && args.SData.Name == "MonkeyKingNimbus")
            {
                justE = true;
                Utility.DelayAction.Add(500, () => justE = false);
            }
            if (sender.IsMe && args.SData.Name == "MonkeyKingDecoy")
            {
                justW = true;
                Utility.DelayAction.Add(config.Item("wMinTime", true).GetValue <Slider>().Value, () => justW = false);
            }
            Obj_AI_Hero target = args.Target as Obj_AI_Hero;

            if (target != null && target.IsMe)
            {
                if (sender.IsValid && !sender.IsDead && sender.IsEnemy)
                {
                    if (Orbwalking.IsAutoAttack(args.SData.Name) && DamageTakenLastId != sender.NetworkId)
                    {
                        var dmg = (float)sender.GetAutoAttackDamage(target, true);
                        DamageTaken += dmg;
                        DamageCount++;
                        DamageTakenLastId = sender.NetworkId;
                    }
                }
            }
        }
Beispiel #8
0
        public static void Game_ProcessSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args)
        {
            if (args == null || hero == null)
            {
                return;
            }
            Obj_AI_Hero targetW   = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
            var         spellName = args.SData.Name;
            Obj_AI_Hero target    = args.Target as Obj_AI_Hero;

            if (targetW != null)
            {
                hero = targetW;
            }
            if (target != null && (!hero.HasBuff("fiorarmark") || (hero.HasBuff("fiorarmark") && player.HealthPercent < 50)) &&
                (W.IsReady() && target.IsMe &&
                 (Orbwalking.IsAutoAttack(spellName) || CombatHelper.IsAutoattack(spellName)) &&
                 ((config.Item("usew", true).GetValue <bool>() && orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo &&
                   hero is Obj_AI_Hero &&
                   ((config.Item("usewDangerous", true).GetValue <bool>() &&
                     target.GetAutoAttackDamage(player, true) > player.Health * 0.1f) ||
                    !config.Item("usewDangerous", true).GetValue <bool>())) ||
                  config.Item("autoW", true).GetValue <bool>()) &&
                 !(hero is Obj_AI_Turret || hero.Name == "OdinNeutralGuardian") && player.Distance(hero) < 700))
            {
                var perc = config.Item("minmanaP", true).GetValue <Slider>().Value / 100f;
                if (player.Mana > player.MaxMana * perc && hero.TotalAttackDamage > 50 &&
                    ((player.UnderTurret(true) && orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) ||
                     !player.UnderTurret(true)))
                {
                    W.Cast(hero, config.Item("packets").GetValue <bool>());
                }
            }
            if (config.Item("usewCC", true).GetValue <bool>())
            {
                if (spellName == "CurseofTheSadMummy")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (CombatHelper.IsFacing(target, player.Position) &&
                    (spellName == "EnchantedCrystalArrow" || spellName == "rivenizunablade" ||
                     spellName == "EzrealTrueshotBarrage" || spellName == "JinxR" || spellName == "sejuaniglacialprison"))
                {
                    if (player.Distance(hero.Position) <= W.Range - 60)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "InfernalGuardian" || spellName == "UFSlash" ||
                    (spellName == "RivenW" && player.HealthPercent < 25))
                {
                    if (player.Distance(args.End) <= 270f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "BlindMonkRKick" || spellName == "SyndraR" || spellName == "VeigarPrimordialBurst" ||
                    spellName == "AlZaharNetherGrasp" || spellName == "LissandraR")
                {
                    if (args.Target.IsMe)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "TristanaR" || spellName == "ViR")
                {
                    if (args.Target.IsMe || player.Distance(args.Target.Position) <= 100f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (spellName == "GalioIdolOfDurand")
                {
                    if (player.Distance(hero.Position) <= 600f)
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
                if (target != null && target.IsMe)
                {
                    if (CombatHelper.isTargetedCC(spellName) && spellName != "NasusW" && spellName != "ZedUlt")
                    {
                        W.Cast(TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical));
                    }
                }
            }
        }