Beispiel #1
0
        /// <summary>
        ///     Fired when a unit takes damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs" /> instance containing the event data.</param>
        private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            Game.PrintChat("ONDDAMAGE");
            if (args.SourceNetworkId != ObjectManager.Player.NetworkId)
            {
                Game.PrintChat("not me");
                return;
            }

            var spell = new Spell(SpellSlot.Unknown, lastSpellCast.CastRangeDisplayOverride);

            spell.SetSkillshot(
                lastSpellCast.CastFrame / 30f,
                Math.Abs(lastSpellCast.LineWidth) < float.Epsilon ? lastSpellCast.CastRadius : lastSpellCast.LineWidth,
                lastSpellCast.MissileSpeed,
                lastSpellCast.HaveHitBone,
                SkillshotType.SkillshotLine);

            var ingredients = new CupcakeIngredients(
                ObjectManager.GetUnitByNetworkId <Obj_AI_Hero>(args.TargetNetworkId),
                spell);

            ingredients.Waypoints = targetWaypoints;

            var x = ingredients.ToXIngredient();
            var y = ingredients.ToYIngredient();

            x.BakedX = lastSpellLocation.X;
            y.BakedY = lastSpellLocation.Y;

            pan.X.Add(x);
            pan.Y.Add(y);

            SaveJson();
        }
Beispiel #2
0
        public static void Damage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!(args.Target is AIHeroClient))
            {
                return;
            }

            var caster = sender;
            var target = (AIHeroClient)args.Target;

            if ((!(caster is AIHeroClient) && !(caster is Obj_AI_Turret)) || caster == null || target == null)
            {
                return;
            }

            var Rally  = Menu.UltMenu.Get <CheckBox>("Rally").CurrentValue&& Spells.R.IsReady();
            var Rallyh = Menu.UltMenu.Get <Slider>("Rallyh").CurrentValue;

            if (!target.IsAlly || !target.IsMe || !caster.IsEnemy || target.IsEnemy ||
                Menu.UltMenu["DontUlt" + target.BaseSkinName].Cast <CheckBox>().CurrentValue)
            {
                return;
            }

            if (!Player.Instance.IsInRange(target, Spells.R.Range))
            {
                return;
            }

            if (Rally && target.HealthPercent <= Rallyh)
            {
                Spells.R.Cast();
            }
        }
Beispiel #3
0
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if(args.Target == null || args.Source == null)
                return;

            if (args.Target.IsMe)
            {
                if (args.Source is Obj_AI_Minion)
                    DPSmobs.DamageOnMe += args.Damage;

                var hero = args.Source as AIHeroClient;
                if (hero != null && hero.IsEnemy)
                {
                    var edps = EnemiesDPS.FirstOrDefault(e => e.Hero.IdEquals(hero));
                    if(edps != null)
                        edps.DamageOnMe += args.Damage;
                }
            }

            if (args.Source.IsMe)
            {
                if (args.Target is AIHeroClient)
                    dps.DamageOnHeros += args.Damage;
                if (args.Target is Obj_AI_Minion)
                    dps.DamageOnMobs += args.Damage;
            }
        }
Beispiel #4
0
        protected override void Volatile_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!sender.IsMe) return;
            _lastSpells.RemoveAll(p => Environment.TickCount - p.tick > 2000);

            if (args.Source.NetworkId != Player.NetworkId ||
                !EntityManager.Heroes.Enemies.Exists(p => p.NetworkId == args.Target.NetworkId)) return;

            if (_lastSpells.Count == 0) return;

            var sremove = new LastSpells("", 0, 0, "");
            foreach (var spell in _lastSpells)
            {

                if (VolatileMenu["debug"].Cast<CheckBox>().CurrentValue)
                    Chat.Print(spell.name +
                               " & args dmg: " + args.Damage + " & preddmg: " + spell.dmg);

                if (spell.target != args.Target.Name) continue;
                if (!Champions.Exists(p => p.Name == spell.target)) continue;

                Champions.Find(p => p.Name == spell.target)
                    .Differences.Add(Math.Abs(spell.dmg - args.Damage));
                HitCount++;
                sremove = spell;
            }
            if (_lastSpells.Contains(sremove))
                _lastSpells.Remove(sremove);
        }
Beispiel #5
0
 private static void Riperino(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender.IsMe && args.Damage > ObjectManager.Player.Health && Config.Item("sad").GetValue <bool>())
     {
         OnDeath();
     }
 }
Beispiel #6
0
 private static void Opiskill(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender.IsEnemy && args.Damage > sender.Health && Config.Item("kill").GetValue <bool>() && sender.IsValid <Obj_AI_Hero>())
     {
         OnKill();
     }
 }
Beispiel #7
0
        public static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (Utils.TickCount - s_LastAATick < 300 + Game.Ping && s_CheckAA && args.SourceNetworkId == ObjectManager.Player.NetworkId)
            {
                var t = Target.Get(Program.Champion.Spells[0].Range + 50, true);
                if (s_DoAttack && Program.Champion.Spells[0].IsReady())
                {
                    if (t != null && (Program.Champion.OrbwalkingActiveMode == Program.Champion.OrbwalkingComboMode || Program.Champion.OrbwalkingActiveMode == Program.Champion.OrbwalkingHarassMode))
                    {
                        Program.Champion.Spells[0].Cast(t.ServerPosition, true);
                        ShineCommon.Orbwalking.ResetAutoAttackTimer();
                        Program.Champion.Orbwalker.ForceTarget(t);
                    }
                    else if (Program.Champion.OrbwalkingActiveMode == Program.Champion.OrbwalkingLaneClearMode)
                    {
                        var minion = MinionManager.GetMinions(400, MinionTypes.All, MinionTeam.NotAlly, MinionOrderTypes.MaxHealth).OrderBy(p => p.ServerPosition.Distance(ObjectManager.Player.ServerPosition)).FirstOrDefault();
                        if (minion != null)
                        {
                            Program.Champion.Spells[0].Cast(minion.ServerPosition, true);
                            ShineCommon.Orbwalking.ResetAutoAttackTimer();
                            Program.Champion.Orbwalker.ForceTarget(t);
                        }
                    }

                }
                else
                    SetAttack(false);

                CanCastAnimation = true;
                s_CheckAA = false;
            }
        }
Beispiel #8
0
 private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (Config.Item("pots").GetValue <bool>())
     {
         PotionManagement();
     }
 }
        private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            try
            {
                if (args.SourceNetworkId != MasterYi.player.NetworkId || !MasterYi.W.IsReady() || LXOrbwalker.CanAttack())
                {
                    return;
                }


                GameObject targ = ObjectManager.GetUnitByNetworkId <GameObject>(args.TargetNetworkId);

                if (targ == null)
                {
                    return;
                }
                // Console.WriteLine("dmg: " + args.Damage + " type " + args.Type + " dmg type: " + args.HitType + " pred dmg: "+ MasterYi.player.GetAutoAttackDamage(targ));

                // if (args.Type == DamageType.Physical)
                // {
                if (targ is Obj_AI_Hero)
                {
                    if (Config.Item("comboWreset").GetValue <bool>())
                    {
                        MasterYi.W.Cast();
                    }
                    LXOrbwalker.ResetAutoAttackTimer();
                }
                // }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Beispiel #10
0
        private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var caster = sender as AIHeroClient;
            var target = args.Target as AIHeroClient;

            if (caster == null || target == null || sender.Distance(Player.Instance) > 1500) return;

            HitMarkPosition = args.Target.Position.WorldToScreen();
            CanDrawHitMarker = true;
            HitMarkerSound.Play();

            var hero = AkbarSpells.Spells.FirstOrDefault(x => x.Hero == Player.Instance.Hero && !caster.Spellbook.GetSpell(x.Slot).IsReady);
            if (args.Source.IsMe && hero!= null && args.Target.IsEnemy)
            {
                AkbarSound.Play();
            }
  
            if (hero != null && sender.IsVisible && !caster.Spellbook.GetSpell(SpellSlot.R).IsReady)
            {
                if (hero.Hero == Champion.JarvanIV || hero.Hero == Champion.Darius || hero.Hero == Champion.Aatrox)
                {
                    DunkSound.Play();
                }
            }
            Core.DelayAction(() => CanDrawHitMarker = false, 200);
        }
Beispiel #11
0
        /// <summary>
        ///     Called when a <see cref="AttackableUnit" /> takes/gives damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs" /> instance containing the event data.</param>
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var source = ObjectManager.GetUnitByNetworkId <GameObject>((uint)args.Source.NetworkId);
            var obj    = ObjectManager.GetUnitByNetworkId <GameObject>((uint)args.Target.NetworkId);

            if (source == null || obj == null)
            {
                return;
            }

            if (obj.Type != GameObjectType.AIHeroClient || source.Type != GameObjectType.AIHeroClient)
            {
                return;
            }

            var hero = (AIHeroClient)obj;

            if (hero.IsEnemy || (!hero.IsMe && !W.IsInRange(obj)) || !Menu.Item($"{hero.ChampionName}").IsActive())
            {
                return;
            }

            if (((int)(args.Damage / hero.Health) > Menu.Item("ASDamagePercent").GetValue <Slider>().Value) ||
                (hero.HealthPercent < Menu.Item("ASHealthPercent").GetValue <Slider>().Value))
            {
                W.Cast(W.GetPrediction(hero).CastPosition);
            }
        }
Beispiel #12
0
 private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (ActiveAttacks.ContainsKey(args.Source.NetworkId))
     {
         ActiveAttacks[args.Source.NetworkId].Damaged = true;
     }
 }
Beispiel #13
0
        private void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!getCheckBoxItem(this.Menu, "Barrier.Activated"))
            {
                return;
            }

            var source = ObjectManager.GetUnitByNetworkId<GameObject>((uint)args.Source.NetworkId);
            var obj = ObjectManager.GetUnitByNetworkId<GameObject>((uint)args.Target.NetworkId);

            if (obj.Type != GameObjectType.AIHeroClient || source.Type != GameObjectType.AIHeroClient)
            {
                return;
            }

            var hero = (AIHeroClient)obj;

            if (!hero.IsMe)
            {
                return;
            }

            if (((int)(args.Damage / this.Player.MaxHealth * 100)
                 > getSliderItem(this.Menu, "Barrier.Damage")
                 || this.Player.HealthPercent < getSliderItem(this.Menu, "Barrier.HP"))
                && this.Player.LSCountEnemiesInRange(1000) >= 1)
            {
                this.BarrierSpell.Cast();
            }
        }
Beispiel #14
0
        internal static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!args.Target.IsMe || Player.Instance.IsInShopRange())
            {
                return;
            }
            if (Player.Instance.HasBuff("RegenerationPotion") ||
                Player.Instance.HasBuff("ItemMiniRegenPotion") ||
                Player.Instance.HasBuff("ItemCrystalFlask") ||
                Player.Instance.HasBuff("ItemDarkCrystalFlask") ||
                Player.Instance.HasBuff("ItemCrystalFlaskJungle"))
            {
                return;
            }
            if (!ItemList.Potions.Any(x => x.IsOwned() && x.IsReady()))
            {
                return;
            }
            var potions = ItemList.Potions.FirstOrDefault(x => x.IsOwned() && x.IsReady());

            if (Main.Potions[potions.Id.ToString()] == null || !Main.Potions.VChecked(potions.Id.ToString()) || Main.Potions.VSliderValue(potions.Id + ".HP") > Player.Instance.HealthPercent)
            {
                return;
            }
            if ((potions.Id.Equals(ItemId.Hunters_Potion) || potions.Id.Equals(ItemId.Corrupting_Potion)) && Player.Instance.Mana + 35 >= Player.Instance.MaxMana && Main.Potions.VChecked(potions.Id + ".MP") && !Variables.IsNomana)
            {
                return;
            }
            potions.Cast();
        }
Beispiel #15
0
 private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.SourceNetworkId != player.NetworkId)
     {
         return;
     }
 }
Beispiel #16
0
        private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var caster = sender as AIHeroClient;
            var target = args.Target as AIHeroClient;

            if (caster == null || target == null || sender.Distance(Player.Instance) > 1500)
            {
                return;
            }

            HitMarkPosition  = args.Target.Position.WorldToScreen();
            CanDrawHitMarker = true;
            HitMarkerSound.Play();

            var hero = AkbarSpells.Spells.FirstOrDefault(x => x.Hero == Player.Instance.Hero && !caster.Spellbook.GetSpell(x.Slot).IsReady);

            if (args.Source.IsMe && hero != null && args.Target.IsEnemy)
            {
                AkbarSound.Play();
            }

            if (hero != null && sender.IsVisible && !caster.Spellbook.GetSpell(SpellSlot.R).IsReady)
            {
                if (hero.Hero == Champion.JarvanIV || hero.Hero == Champion.Darius || hero.Hero == Champion.Aatrox)
                {
                    DunkSound.Play();
                }
            }
            Core.DelayAction(() => CanDrawHitMarker = false, 200);
        }
Beispiel #17
0
        private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!MenuManager.MenuValues["Activator.Enable"] ||
                !MenuManager.MenuValues["Activator.PotionsAndElixirsMenu.OnlyIfTakingDamage"] || !args.Target.IsMe ||
                (int)Player.Instance.HealthPercent >= MenuManager.MenuValues["Activator.PotionsAndElixirsMenu.BelowHealth", true] ||
                Player.Instance.IsUsingHealingPotion())
            {
                return;
            }

            if (Items[ItemsEnum.HealthPotion] != null)
            {
                Items[ItemsEnum.HealthPotion].UseItem();
            }
            else if (Items[ItemsEnum.RefillablePotion] != null)
            {
                Items[ItemsEnum.RefillablePotion].UseItem();
            }
            else if (Items[ItemsEnum.HuntersPotion] != null)
            {
                Items[ItemsEnum.HuntersPotion].UseItem();
            }
            else
            {
                Items[ItemsEnum.CorruptingPotion]?.UseItem();
            }
        }
Beispiel #18
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (GetValue <bool>("Combo", "W") && GetValue <bool>("Combo", "WHeal") && W.IsReady())
     {
         var obj = ObjectManager.GetUnitByNetworkId <AIHeroClient>((uint)args.Target.NetworkId);
         if (obj.IsValidTarget(W.Range, false) && obj.IsAlly && GetValue <bool>("Heal", MenuName(obj)) &&
             obj.HealthPercent < GetValue <Slider>("Heal", MenuName(obj) + "HpU").Value&& !obj.InFountain() &&
             !obj.HasBuff("JudicatorIntervention") && !obj.HasBuff("UndyingRage") &&
             W.CastOnUnit(obj))
         {
             return;
         }
     }
     if (GetValue <bool>("Combo", "R") && GetValue <bool>("Combo", "RSave") && R.IsReady())
     {
         var obj = ObjectManager.GetUnitByNetworkId <AIHeroClient>((uint)args.Target.NetworkId);
         if (obj.IsValidTarget(R.Range, false) && obj.IsAlly && GetValue <bool>("Save", MenuName(obj)) &&
             obj.HealthPercent < GetValue <Slider>("Save", MenuName(obj) + "HpU").Value&& !obj.InFountain() &&
             !obj.HasBuff("UndyingRage"))
         {
             R.CastOnUnit(obj);
         }
     }
 }
Beispiel #19
0
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var obj = ObjectManager.GetUnitByNetworkId <GameObject>((uint)args.Target.NetworkId);

            if (obj.Type != GameObjectType.AIHeroClient)
            {
                return;
            }

            var hero = (AIHeroClient)obj;

            if (hero.IsEnemy)
            {
                return;
            }

            if (getCheckBoxItem(comboMenu, "ElAlistar.Combo.R"))
            {
                if (ObjectManager.Get <AIHeroClient>().Any(x => x.IsAlly && x.IsMe && !x.IsDead && ((int)(args.Damage / x.MaxHealth * 100) > getSliderItem(comboMenu, "ElAlistar.Combo.RHeal.Damage") || x.HealthPercent < getSliderItem(comboMenu, "ElAlistar.Combo.RHeal.HP") && x.CountEnemiesInRange(1000) >= 1)))
                {
                    R.Cast();
                }
            }

            if (getCheckBoxItem(healMenu, "ElAlistar.Heal.E") && Player.ManaPercent > getSliderItem(healMenu, "ElAlistar.Heal.Mana"))
            {
                if (ObjectManager.Get <AIHeroClient>().Any(x => x.IsAlly && !x.IsDead && getCheckBoxItem(healMenu, string.Format("healon{0}", x.ChampionName)) && ((int)(args.Damage / x.MaxHealth * 100) > getSliderItem(healMenu, "Heal.Damage") || x.HealthPercent < getSliderItem(healMenu, "Heal.HP")) && x.Distance(Player) < E.Range && x.CountEnemiesInRange(1000) >= 1))
                {
                    E.Cast();
                }
            }
        }
Beispiel #20
0
        /// <summary>
        ///     Called when a <see cref="AttackableUnit" /> takes/gives damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs" /> instance containing the event data.</param>
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var source = ObjectManager.GetUnitByNetworkId <GameObject>((uint)args.Source.NetworkId);
            var obj    = ObjectManager.GetUnitByNetworkId <GameObject>((uint)args.Target.NetworkId);

            if (source == null || obj == null)
            {
                return;
            }

            if (obj.Type != GameObjectType.AIHeroClient || source.Type != GameObjectType.AIHeroClient)
            {
                return;
            }

            var hero = (AIHeroClient)obj;

            if (hero.IsEnemy || (!hero.IsMe && !W.IsInRange(obj)) ||
                !getCheckBoxItem(shieldMenu, hero.NetworkId + ""))
            {
                return;
            }

            if (((int)(args.Damage / hero.Health) > getSliderItem(shieldMenu, "ASDamagePercent")) ||
                (hero.HealthPercent < getSliderItem(shieldMenu, "ASHealthPercent")))
            {
                W.Cast(hero);
            }
        }
Beispiel #21
0
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (sender.IsEnemy)
            {
                var minion = sender as Obj_AI_Minion;
                if (minion != null && minion.MaxHealth >= 3500)
                {
                    if (!DamagesOnTime.ContainsKey(minion.NetworkId))
                    {
                        DamagesOnTime[minion.NetworkId] = new List <OnDamageEvent>();
                    }
                    DamagesOnTime[minion.NetworkId].Add(new OnDamageEvent(Environment.TickCount, args.Damage));
                }
                var sourceMinion = sender as Obj_AI_Minion;
                if (sourceMinion != null && sourceMinion.MaxHealth >= 3500)
                {
                    if (!DamagesOnTime.ContainsKey(sourceMinion.NetworkId))
                    {
                        DamagesOnTime[sourceMinion.NetworkId] = new List <OnDamageEvent>();
                    }

                    DamagesOnTime[sourceMinion.NetworkId].Add(new OnDamageEvent(Environment.TickCount, 0));
                }
            }
        }
Beispiel #22
0
        public static void Damage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!(args.Target is AIHeroClient))
            {
                return;
            }

            var caster = sender;
            var target = (AIHeroClient)args.Target;

            if ((!(caster is AIHeroClient) && !(caster is Obj_AI_Turret)) || caster == null || target == null)
            {
                return;
            }

            var Rally = Menu.UltMenu.Get<CheckBox>("Rally").CurrentValue && Spells.R.IsReady();
            var Rallyh = Menu.UltMenu.Get<Slider>("Rallyh").CurrentValue;

            if (!target.IsAlly || !target.IsMe || !caster.IsEnemy || target.IsEnemy
                || Menu.UltMenu["DontUlt" + target.BaseSkinName].Cast<CheckBox>().CurrentValue)
            {
                return;
            }

            if (!Player.Instance.IsInRange(target, Spells.R.Range))
            {
                return;
            }

            if (Rally && target.HealthPercent <= Rallyh)
            {
                Spells.R.Cast();
            }
        }
Beispiel #23
0
 private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender is Obj_AI_Hero)
     {
         float time = Game.Time - 2;
         IncomingDamageList.RemoveAll(damage => time < damage.Time || ((int)damage.Damage == (int)args.Damage && damage.TargetNetworkId == sender.NetworkId));
     }
 }
Beispiel #24
0
 private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.SourceNetworkId != player.NetworkId)
     {
         return;
     }
     Console.WriteLine("dmg: " + sender.Health + "  : " + player.GetAutoAttackDamage((Obj_AI_Base)sender));
 }
Beispiel #25
0
 private static void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender is AIHeroClient)
     {
         float time = Game.Time - 2;
         IncomingDamageList.RemoveAll(damage => time < damage.Time);
     }
 }
Beispiel #26
0
 /// <summary>
 /// OnDamage event for detect rengar leap's end
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.SourceNetworkId == ObjectManager.Player.NetworkId && ObjectManager.Player.CharData.BaseSkinName == "Rengar" && m_rengarAttack)
     {
         AfterAttack(m_lastTarget);
         m_rengarAttack = false;
     }
 }
Beispiel #27
0
 public static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender == null) return;
     if (args.TargetNetworkId == ObjectManager.Player.NetworkId && (sender is Obj_AI_Turret || sender is Obj_AI_Minion))
     {
             Orbwalker.ForceOrbwalkingPoint(Heroes.Player.Position.Extend(Wizard.GetFarthestMinion().Position, 500).RandomizePosition());
     }
 }
Beispiel #28
0
        private void AIHeroClient_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            return;

            if (ObjectManager.Player.NetworkId == args.Source.NetworkId)
            {
                Program.debug(sender.Name + " " + ObjectManager.Player.NetworkId + " SourceNetworkId " + args.Source.NetworkId + " TargetNetworkId " + args.Target.NetworkId + args.Type);
            }
        }
Beispiel #29
0
        private static void Game_OnDamage(AttackableUnit unit, AttackableUnitDamageEventArgs args)
        {
            if (unit.IsMe)
            {
                if (args.HitType == DamageHitType.Dodge ||
                    args.HitType == DamageHitType.Invulnerable ||
                    args.HitType == DamageHitType.Miss)
                {
                    return;
                }

                if (DamageTypePhysical != 70 && (int)args.Type == 70)
                {
                    DamageTypePhysical = 70;
                }

                CleanDamageCache();

                Obj_AI_Base source;

                if (objCache.TryGetValue(args.SourceNetworkId, out source))
                {
                    if (source.IsValid <Obj_AI_Hero>())
                    {
                        var hero = source as Obj_AI_Hero;

                        dmgCache.Add(new DamageInfo(args.SourceNetworkId, hero.ChampionName, args.Damage, args.Type));
                    }
                    else
                    {
                        dmgCache.Add(new DamageInfo(args.SourceNetworkId, source.BaseSkinName, args.Damage, args.Type));
                    }

                    //Console.WriteLine(target.ChampionName + " : " + args.Damage);
                    //Console.WriteLine("DamageType: " + args.Type);

                    if (menu.Item("RecalculateOnDamage").GetValue <bool>())
                    {
                        RecalculateFinalDamage();
                    }
                }
            }
            else if (args.SourceNetworkId == myHero.NetworkId) //if myHero is attacking another hero
            {
                Obj_AI_Hero target;

                if (heroCache.TryGetValue(args.TargetNetworkId, out target))
                {
                    myDmgCache.Add(new DamageInfo(args.TargetNetworkId, target.ChampionName, args.Damage, args.Type));

                    if (menu.Item("RecalculateOnDamage").GetValue <bool>())
                    {
                        RecalculateFinalDamage();
                    }
                }
            }
        }
        private void Player_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if(sender.IsMe || !args.Target.IsMe) return;
            if (args.Damage < DamageRecivedCount.CurrentValue) return;
            if (OnlyMoveOnCc.CurrentValue) return;
            if (args.Source is Obj_AI_Minion && IgnoreMinionDamage.CurrentValue) return;

            MoveCamera();

        }
Beispiel #31
0
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (args.SourceNetworkId != ObjectManager.Player.NetworkId ||
                !DamageDictionary.ContainsKey(args.TargetNetworkId))
            {
                return;
            }

            DamageDictionary[args.TargetNetworkId].Add(new UnitDamage(args.Damage, args.Type));
        }
Beispiel #32
0
        private static void AiHeroClientOnOnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!(args.Target is AIHeroClient) || !sender.IsMe)
                return;

            var enemySpawnPos = ObjectManager.Get<Obj_SpawnPoint>().First(x => x.IsEnemy).Position;
            if (args.Target.Distance(enemySpawnPos) <= 1000)
            {
                OnTargetHitInBase(args.Target as AIHeroClient, args.Damage);
            }
        }
Beispiel #33
0
        /// <summary>
        /// Called when unit takes damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs"/> instance containing the event data.</param>
        private void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var powderKeg = _powderKegs.FirstOrDefault(p => p.NetworkId == args.TargetNetworkId);

            if (powderKeg == null)
            {
                return;
            }

            powderKeg.ActivationTime = GetPowderKegActivationTime(powderKeg.CreationTime, powderKeg.Minion.Health - 2);
        }
Beispiel #34
0
 public static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender == null)
     {
         return;
     }
     if (args.TargetNetworkId == ObjectManager.Player.NetworkId && (sender is Obj_AI_Turret || sender is Obj_AI_Minion))
     {
         Orbwalker.ForceOrbwalkingPoint(Heroes.Player.Position.Extend(Wizard.GetFarthestMinion().Position, 500).RandomizePosition());
     }
 }
Beispiel #35
0
        protected static void AIHeroClient_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (!sender.IsMe || !R.IsReady() || args.Damage > 45)
                return;

            var safeNet = spell["R_Safe_Net2"].Cast<Slider>().CurrentValue;

            if (Player.HealthPercent <= safeNet)
            {
                R1.Cast();
            }
        }
Beispiel #36
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.Target.NetworkId != Player.NetworkId || Orbwalk.CurrentMode != Orbwalker.Mode.Combo)
     {
         return;
     }
     if (GetValue <bool>("Combo", "R") && R.IsReady() &&
         Player.HealthPercent < GetValue <Slider>("Combo", "RHpU").Value)
     {
         R.Cast(PacketCast);
     }
 }
Beispiel #37
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.Target.NetworkId != Player.NetworkId || Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
     {
         return;
     }
     if (GetValue <bool>("Combo", "Seraph") && Seraph.IsReady() &&
         Player.HealthPercent < GetValue <Slider>("Combo", "SeraphHpU").Value)
     {
         Seraph.Cast();
     }
 }
Beispiel #38
0
 /// <summary>
 /// OnDamage event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private static void AIHeroClient_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     LastSpells.RemoveAll(p => Environment.TickCount - p.Item2 > 2000);
     if (args.Source.NetworkId == ObjectManager.Player.NetworkId && HeroManager.Enemies.Exists(p => p.NetworkId == args.Target.NetworkId))
     {
         if (LastSpells.Count != 0)
         {
             LastSpells.RemoveAt(0);
             s_HitCount++;
         }
     }
 }
Beispiel #39
0
 /// <summary>
 ///     OnDamage event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private static void AIHeroClient_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     LastSpells.RemoveAll(p => Environment.TickCount - p.Item2 > 2000);
     if (args.Source.NetworkId == ObjectManager.Player.NetworkId &&
         HeroManager.Enemies.Exists(p => p.NetworkId == args.Target.NetworkId))
     {
         if (LastSpells.Count != 0)
         {
             LastSpells.RemoveAt(0);
             s_HitCount++;
         }
     }
 }
Beispiel #40
0
 public static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if ((sender is Obj_AI_Minion || sender is Obj_AI_Turret) && args.TargetNetworkId == Heroes.Player.NetworkId)
     {
         if (Heroes.Player.Position.CountNearbyAllies(1000) <
             Heroes.Player.Position.CountNearbyEnemies(1000) ||
             Heroes.Player.Position.CountNearbyAllies(1000) <= 1)
         {
             Program.Orbwalker.ActiveMode = MyOrbwalker.OrbwalkingMode.None;
             Wizard.MoveBehindClosestAllyMinion();
             Utility.DelayAction.Add(2500, () => Program.Orbwalker.ActiveMode = MyOrbwalker.OrbwalkingMode.Mixed);
         }
     }
 }
Beispiel #41
0
 private static void Player_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender != null)
     {
         if (sender.IsEnemy)
         {
             if (sender.Type == GameObjectType.obj_AI_Turret)
             {
                 LeaveTowerPls = true;
                 tower = (Obj_AI_Turret)sender;
             }
         }
     }
 }
Beispiel #42
0
 private static void Obj_AI_Hero_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     lock (LastSpells)
     {
         LastSpells.RemoveAll(p => Environment.TickCount - p.tick > 2000);
         if (args.SourceNetworkId == ObjectManager.Player.NetworkId && HeroManager.Enemies.Exists(p => p.NetworkId == sender.NetworkId))
         {
             if (LastSpells.Count != 0)
             {
                 LastSpells.RemoveAt(0);
                 hitCount++;
             }
         }
     }
 }
Beispiel #43
0
 private void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     var t = ObjectManager.Get<Obj_AI_Hero>().FirstOrDefault(h => h.NetworkId == args.SourceNetworkId);
     var s = ObjectManager.Get<Obj_AI_Hero>().FirstOrDefault(h => h.NetworkId == args.TargetNetworkId);
     if (t != null && s != null &&
         (t.IsMe &&
          ObjectManager.Get<Obj_AI_Turret>()
              .FirstOrDefault(tw => tw.Distance(t) < 750 && tw.Distance(s) < 750 && tw.IsAlly) != null))
     {
         if (config.Item("autotauntattower", true).GetValue<bool>() && E.CanCast(s))
         {
             E.Cast(s, config.Item("packets").GetValue<bool>());
         }
     }
 }
Beispiel #44
0
 private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.Source.IsEnemy)
     {
         var minion = args.Target as Obj_AI_Minion;
         if (minion != null && minion.IsMonster && minion.MaxHealth >= 3500)
         {
             if (!DamagesOnTime.ContainsKey(minion.NetworkId)) DamagesOnTime[minion.NetworkId] = new List<OnDamageEvent>();
             DamagesOnTime[minion.NetworkId].Add(new OnDamageEvent(Core.GameTickCount, args.Damage));
         }
         var sourceMinion = args.Source as Obj_AI_Minion;
         if (sourceMinion != null && sourceMinion.IsMonster && sourceMinion.MaxHealth >= 3500)
         {
             if (!DamagesOnTime.ContainsKey(sourceMinion.NetworkId)) DamagesOnTime[sourceMinion.NetworkId] = new List<OnDamageEvent>();
             DamagesOnTime[sourceMinion.NetworkId].Add(new OnDamageEvent(Core.GameTickCount, 0));
         }
     }
 }
Beispiel #45
0
 private void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     Volatile_OnDamage(sender,args);
 }
Beispiel #46
0
 /// <summary>
 /// OnDamage event for detect rengar leap's end
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void Obj_AI_Base_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.Source.NetworkId == ObjectManager.Player.NetworkId && ObjectManager.Player.CharData.BaseSkinName == "Rengar" && m_rengarAttack)
     {
         AfterAttack(m_lastTarget);
         m_rengarAttack = false;
     }
 }
Beispiel #47
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     var valcheck = MiscMenu["TUT"].Cast<CheckBox>().CurrentValue;
     var t = EntityManager.Heroes.AllHeroes.FirstOrDefault(h => h.NetworkId == args.Source.NetworkId);
     var s = EntityManager.Heroes.Enemies.FirstOrDefault(h => h.NetworkId == args.Target.NetworkId);
     if (valcheck && t != null && s != null &&
         (t.IsMe &&
          ObjectManager.Get<Obj_AI_Turret>()
              .FirstOrDefault(x => x.Distance(t) < 750 && x.Distance(s) < 750 && x.IsAlly) != null))
     {
         {
             E.Cast(s);
         }
     }
 }
Beispiel #48
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.TargetNetworkId == Player.NetworkId)
     {
         lastTimeAttacked = Game.Time + (2*Game.Ping / 1000f);
     }
 }
Beispiel #49
0
 static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (sender == null || args.TargetNetworkId != sender.NetworkId)
     return;
     
     var Sender = (Obj_AI_Base)sender;
     
     if ((int) args.Type != 70)
     return;
     
     if(Qtimer > Utils.GameTimeTickCount - 120)
     {
         Qmove = false;
         MotionCancle();
     }
 }
Beispiel #50
0
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var obj = ObjectManager.GetUnitByNetworkId<GameObject>((uint) args.Target.NetworkId);

            if (obj.Type != GameObjectType.AIHeroClient)
            {
                return;
            }

            var hero = (AIHeroClient) obj;

            if (hero.IsEnemy)
            {
                return;
            }

            if (getCheckBoxItem(comboMenu, "ElAlistar.Combo.R"))
            {
                if (
                    ObjectManager.Get<AIHeroClient>()
                        .Any(
                            x =>
                                x.IsAlly && x.IsMe && !x.IsDead &&
                                ((int) (args.Damage/x.MaxHealth*100) >
                                 getSliderItem(comboMenu, "ElAlistar.Combo.RHeal.Damage") ||
                                 x.HealthPercent < getSliderItem(comboMenu, "ElAlistar.Combo.RHeal.HP") &&
                                 x.LSCountEnemiesInRange(1000) >= 1)))
                {
                    R.Cast();
                }
            }

            if (getCheckBoxItem(healMenu, "ElAlistar.Heal.E") &&
                Player.ManaPercent > getSliderItem(healMenu, "ElAlistar.Heal.Mana"))
            {
                if (
                    ObjectManager.Get<AIHeroClient>()
                        .Any(
                            x =>
                                x.IsAlly && !x.IsDead &&
                                getCheckBoxItem(healMenu, string.Format("healon{0}", x.NetworkId)) &&
                                ((int) (args.Damage/x.MaxHealth*100) > getSliderItem(healMenu, "Heal.Damage") ||
                                 x.HealthPercent < getSliderItem(healMenu, "Heal.HP")) && x.LSDistance(Player) < E.Range &&
                                x.LSCountEnemiesInRange(1000) >= 1))
                {
                    E.Cast();
                }
            }
        }
        private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (args.SourceNetworkId != player.NetworkId)
                return;
            Console.WriteLine("dmg: "+sender.Health+"  : "+player.GetAutoAttackDamage((Obj_AI_Base)sender));


        }
Beispiel #52
0
        /// <summary>
        ///     Called when an Obj_AI_Base takes damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs" /> instance containing the event data.</param>
        private void ObjAiBaseOnOnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (args.TargetNetworkId != Player.NetworkId
                || !ObjectManager.GetUnitByNetworkId<GameObject>(args.TargetNetworkId).IsMe || !this.ZhonyaLowHp)
            {
                return;
            }

            if (Player.HealthPercent < this.ZhonyaBelowHp
                || (Player.Health - args.Damage) / Player.MaxHealth * 100 < this.ZhonyaBelowHp)
            {
                zhyonyaItem.Cast();
            }
        }
Beispiel #53
0
        private void Game_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            if (testMenu.Item("TestSpellEndTime").GetValue<bool>() == false)
            {
                return;
            }

            if (!sender.IsMe)
                return;

            ConsolePrinter.Print("Damage taken time: " + (EvadeUtils.TickCount - lastSpellCastTime));
        }
Beispiel #54
0
 protected virtual void ObjAiHeroOnOnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     //for champ use
 }
Beispiel #55
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (_target == null || args.TargetNetworkId != _target.NetworkId) return;
     if ((int) args.Type != 70) return;
     if (lastQCast != 0 && lastQCast + 100 > Utils.TickCount)
     {
         WaitForMove = true;
         CancelAnimation();
         Orbwalking.ResetAutoAttackTimer();
     }
     else if (lastSpellName.Contains("Attack"))
     {
         if (_Tiamat.IsReady())
         {
             nextSpell = null;
             UseTiamat = true;
         }
         else if (_Hydra.IsReady())
         {
             nextSpell = null;
             UseTiamat = true;
         }
         else if (_W.IsReady() && _target.IsValidTarget(_W.Range) && qCount != 0)
         {
             UseTiamat = false;
             nextSpell = _W;
         }
         else
         {
             UseTiamat = false;
             nextSpell = _Q;
         }
         UseAttack = false;
         _orbwalker.SetMovement(true);
     }
 }
Beispiel #56
0
        /// <summary>
        ///     Called when a <see cref="AttackableUnit" /> takes/gives damage.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="args">The <see cref="AttackableUnitDamageEventArgs" /> instance containing the event data.</param>
        private static void AttackableUnit_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            var source = ObjectManager.GetUnitByNetworkId<GameObject>((uint)args.Source.NetworkId);
            var obj = ObjectManager.GetUnitByNetworkId<GameObject>((uint)args.Target.NetworkId);

            if (source == null || obj == null)
            {
                return;
            }

            if (obj.Type != GameObjectType.AIHeroClient || source.Type != GameObjectType.AIHeroClient || !source.IsValid<AIHeroClient>() || !obj.IsValid<AIHeroClient>())
            {
                return;
            }

            var hero = (AIHeroClient)obj;

            if (hero.IsEnemy || (!hero.IsMe && !W.IsInRange(obj)) || !getCheckBoxItem(shieldMenu, hero.NetworkId + ""))
            {
                return;
            }

            if (((int)(args.Damage / hero.Health) > getSliderItem(shieldMenu, "ASDamagePercent"))
                || (hero.HealthPercent < getSliderItem(shieldMenu, "ASHealthPercent")))
            {
                W.Cast(hero);
            }
        }
Beispiel #57
0
 private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.SourceNetworkId != player.NetworkId)
         return;
 }
Beispiel #58
0
 private static void OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     if (args.TargetNetworkId != Player.NetworkId || Orbwalk.CurrentMode != Orbwalker.Mode.Combo)
     {
         return;
     }
     if (GetValue<bool>("Combo", "Seraph") && Seraph.IsReady() &&
         Player.HealthPercent < GetValue<Slider>("Combo", "SeraphHpU").Value)
     {
         Seraph.Cast();
     }
 }
Beispiel #59
0
        private static void Game_OnDamage(AttackableUnit unit, AttackableUnitDamageEventArgs args)
        {

            if (unit.IsMe)
            {
                if (args.HitType == DamageHitType.Dodge
                    || args.HitType == DamageHitType.Invulnerable
                    || args.HitType == DamageHitType.Miss)
                {
                    return;
                }

                if (DamageTypePhysical != 70 && (int)args.Type == 70)
                {
                    DamageTypePhysical = 70;
                }

                CleanDamageCache();

                Obj_AI_Base source;

                if (objCache.TryGetValue(args.SourceNetworkId, out source))
                {
                    if (source.IsValid<Obj_AI_Hero>())
                    {
                        var hero = source as Obj_AI_Hero;

                        dmgCache.Add(new DamageInfo(args.SourceNetworkId, hero.ChampionName, args.Damage, args.Type));
                    }
                    else
                    {
                        dmgCache.Add(new DamageInfo(args.SourceNetworkId, source.BaseSkinName, args.Damage, args.Type));
                    }

                    //Console.WriteLine(target.ChampionName + " : " + args.Damage);
                    //Console.WriteLine("DamageType: " + args.Type);

                    if (menu.Item("RecalculateOnDamage").GetValue<bool>())
                    {
                        RecalculateFinalDamage();
                    }
                }
            }
            else if (args.SourceNetworkId == myHero.NetworkId) //if myHero is attacking another hero
            {
                Obj_AI_Hero target;

                if (heroCache.TryGetValue(args.TargetNetworkId, out target))
                {
                    myDmgCache.Add(new DamageInfo(args.TargetNetworkId, target.ChampionName, args.Damage, args.Type));
                                        
                    if (menu.Item("RecalculateOnDamage").GetValue<bool>())
                    {
                        RecalculateFinalDamage();
                    }
                }
            }
        }
Beispiel #60
0
 protected virtual void Volatile_OnDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
 {
     //
 }