コード例 #1
0
 public static void Unit_OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     if (_inTp)
         return;
     var name = args.Modifier.Name;
     if (name.Contains("teleporting"))
     {
         //Printer.Print($"{sender.Name}: teleporting");
         if (sender.ClassID == ClassID.CDOTA_Unit_Hero_Tinker)
         {
             _teleportCaster = sender;
         }
     }
     else if (name.Contains("modifier_boots_of_travel_incoming"))
     {
         //Printer.Print($"{sender.Name}: boots");
         if (sender.Team==Members.MyTeam)
         DelayAction.Add(new DelayActionItem(100, () =>
         {
             if (_teleportCaster != null)
             {
                 var blink = Members.MyHero.FindItem("item_blink", true);
                 if (blink != null)
                 {
                     var effect =
                         sender.AddParticleEffect("materials/ensage_ui/particles/range_display_mod.vpcf");
                     var lense = Members.MyHero.FindItem("item_aether_lens", true);
                     var range = 1150 + (lense != null ? 200 : 0);
                     effect.SetControlPoint(0, sender.Position);
                     effect.SetControlPoint(1, new Vector3(range, 255, 0));
                     effect.SetControlPoint(2, new Vector3(255, 255, 255));
                     Members.TowerRangEffectHelper.AddEffect(sender, effect);
                     //if (sender is Building)
                     //{
                         effect =
                             sender.AddParticleEffect("materials/ensage_ui/particles/line.vpcf");
                         var frontPoint = Helper.InFront(Members.MyHero, sender, range);
                         effect.SetControlPoint(1, sender.Position);
                         effect.SetControlPoint(2, frontPoint);
                         effect.SetControlPoint(3, new Vector3(255, 50, 0));
                         effect.SetControlPoint(4, new Vector3(255, 255, 255));
                         Members.TowerRangEffectHelper2.AddEffect(sender, effect,range);
                     //}
                     _inTp = true;
                 }
             }
         }, CancellationToken.None));
     }
 }
コード例 #2
0
        private void HeroOnOnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            if (!sender.Equals(Owner))
            {
                return;
            }
            var name = args.Modifier.Name;

            switch (name)
            {
            case "modifier_invoker_quas_instance":
                SpCounter.Q++;
                break;

            case "modifier_invoker_wex_instance":
                SpCounter.W++;
                break;

            case "modifier_invoker_exort_instance":
                SpCounter.E++;
                break;
            }
            //Game.PrintMessage($"q->{SpCounter.q} w->{SpCounter.w} e->{SpCounter.e}");
        }
コード例 #3
0
        public static void UnitOnOnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
        {
            var name = args.Modifier.Name;

            if (name.Contains("teleporting"))
            {
                if (sender.ClassId == ClassId.CDOTA_Unit_Hero_Tinker)
                {
                    DelayAction.Add(new DelayActionItem(100, () =>
                    {
                        _teleportCaster = null;
                        _inTp           = false;
                    }, CancellationToken.None));
                }
            }
            else if (name.Contains("boots"))
            {
                if (_teleportCaster != null)
                {
                    Members.TowerRangEffectHelper.RemoveEffect(sender);
                    Members.TowerRangEffectHelper2.RemoveEffect(sender);
                }
            }
        }
コード例 #4
0
 // Token: 0x06000875 RID: 2165 RVA: 0x000264E4 File Offset: 0x000246E4
 private void OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     try
     {
         if (sender.Handle == base.Ability.Owner.Handle && !(args.Modifier.Name != "modifier_item_hurricane_pike_range"))
         {
             foreach (OrbAbility orbAbility in base.Ability.Owner.Abilities.OfType <OrbAbility>())
             {
                 if (!orbAbility.Enabled && orbAbility.CanBeCasted(true))
                 {
                     this.enabledOrbs.Add(orbAbility.Id);
                     orbAbility.Enabled = true;
                 }
             }
             Unit.OnModifierRemoved += this.OnModifierRemoved;
             Unit.OnModifierAdded   -= this.OnModifierAdded;
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex, null);
         Unit.OnModifierAdded -= this.OnModifierAdded;
     }
 }
コード例 #5
0
        public static void UnitOnOnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
        {
            var name = args.Modifier.Name;
            if (name.Contains("teleporting"))
            {
                if (sender.ClassID == ClassID.CDOTA_Unit_Hero_Tinker)
                {
                    DelayAction.Add(new DelayActionItem(100, () =>
                    {
                        _teleportCaster = null;
                        _inTp = false;
                    }, CancellationToken.None));

                }
            }
            else if (name.Contains("boots"))
            {
                if (_teleportCaster != null)
                {
                    Members.TowerRangEffectHelper.RemoveEffect(sender);
                    Members.TowerRangEffectHelper2.RemoveEffect(sender);
                }
            }
        }
コード例 #6
0
ファイル: SplitEarth.cs プロジェクト: vana41203/O9K
        private void OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            try
            {
                if (sender.Team == this.OwnerTeam)
                {
                    return;
                }

                if (args.Modifier.Name != "modifier_leshrac_split_earth_thinker")
                {
                    return;
                }

                var effect = new ParticleEffect("particles/units/heroes/hero_leshrac/leshrac_split_projected.vpcf", sender.Position);
                effect.SetControlPoint(1, this.radius);

                effect.Release();
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: g9gg/EnsageSharp
        static void ModifierRemoved(Unit unit, ModifierChangedEventArgs args)
        {
            var mod = args.Modifier;

            if (IgnoreList.Contains(mod.Name) ||
                ((mod.Name.Contains("item") || mod.Name.Contains("truesight") || mod.Name.Contains("glyph")) &&
                 !((mod.Name.Contains("item_pipe_barrier") || (mod.Name.Contains("windwalk"))))))
            {
                return;
            }

            try
            {
                var r = cake.FirstOrDefault(x => x.Unit.Name == unit.Name && x.Modifier.Name == mod.Name);

                if (r != null)
                {
                    cake.Remove(r);
                }
            }
            catch (Exception)
            {
            }
        }
コード例 #8
0
 private void UnitOnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     kunkka.OnModifierRemoved(sender, args);
 }
コード例 #9
0
ファイル: Modifiers.cs プロジェクト: Moones/EnsageSharp-5
        public void ModifierAlly(Unit sender, ModifierChangedEventArgs args)
        {
            if (MenuManager.SpellsItem.Value)
            {
                var HeroTexturName = sender.Name.Substring("npc_dota_hero_".Length);
                var HeroName       = sender.GetDisplayName();
                var Hero           = sender as Hero;
                var TextureName    = args.Modifier.TextureName;
                var Vector3        = Colors.Vector3ToID[Hero.Player.Id] * 255;
                var HeroColor      = Color.FromArgb((int)Vector3.X, (int)Vector3.Y, (int)Vector3.Z);
                var DangerousSpell = Dangerous.DangerousSpellList.Contains(TextureName);
                var GameTime       = Game.GameTime;

                if (Utils.SleepCheck(HeroTexturName))
                {
                    if (MenuManager.DangerousSpellsMSG.Value &&
                        DangerousSpell)
                    {
                        MessageCreator.MessageAllyCreator(
                            HeroTexturName,
                            TextureName,
                            GameTime);
                    }

                    if (MenuManager.DangerousSpellsSound.Value &&
                        DangerousSpell)
                    {
                        try
                        {
                            SoundPlayer.Play(TextureName);
                        }
                        catch
                        {
                            SoundPlayer.Play("default");
                        }
                    }

                    Utils.Sleep(5000, HeroTexturName);
                }

                GlobalMiniMap.MiniMapList.RemoveAll(
                    x =>
                    x.GetHeroName.Contains(HeroName));

                GlobalMiniMap.MiniMapList.Add(new GlobalMiniMap.MiniMap(
                                                  true,
                                                  false,
                                                  "",
                                                  sender.Position.WorldToMinimap(),
                                                  HeroName,
                                                  HeroColor));

                UpdateManager.BeginInvoke(
                    () =>
                {
                    GlobalMiniMap.MiniMapList.RemoveAll(
                        x =>
                        x.GetRemoveTime == GameTime);
                },
                    MenuManager.TimerItem.Value * 1000);

                GlobalWorld.WorldList.RemoveAll(
                    x =>
                    x.GetHeroTexturName.Contains(HeroTexturName));

                GlobalWorld.WorldList.Add(new GlobalWorld.World(
                                              "",
                                              sender.Position,
                                              HeroTexturName,
                                              TextureName));

                UpdateManager.BeginInvoke(
                    () =>
                {
                    GlobalWorld.WorldList.RemoveAll(
                        x =>
                        x.GetRemoveTime == GameTime);
                },
                    MenuManager.TimerItem.Value * 1000);
            }
        }
コード例 #10
0
 private void Unit_OnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     evader.OnModifierRemoved(args.Modifier);
 }
コード例 #11
0
ファイル: Bootstrap.cs プロジェクト: IdcNoob/Ensage
 private void Unit_OnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     evader.OnModifierRemoved(args.Modifier);
 }
コード例 #12
0
ファイル: Kunkka.cs プロジェクト: IdcNoob/Ensage
        public void OnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
        {
            var modifierHero = sender as Hero;
            if (modifierHero == null || modifierHero.Team == heroTeam || !xReturn.Casted)
            {
                return;
            }

            if (args.Modifier.Name == "modifier_kunkka_x_marks_the_spot")
            {
                xMark.Position = new Vector3();
                targetLocked = false;
                target = null;
            }
        }
コード例 #13
0
ファイル: Kunkka.cs プロジェクト: IdcNoob/Ensage
        public void OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            var modifierHero = sender as Hero;
            if (modifierHero == null || modifierHero.Team == heroTeam || !xMark.Casted)
            {
                return;
            }

            if (args.Modifier.Name == "modifier_kunkka_x_marks_the_spot")
            {
                targetLocked = true;
                target = modifierHero;
            }
        }
コード例 #14
0
 public static void OnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     var modifier = args.Modifier;
     var handle = sender.Handle;
     if (Members.Menu.Item("charge.Enable").GetValue<bool>() && Members.BaraIsHere && sender.Team == Members.MyPlayer.Team)
     {
         if (modifier.Name == "modifier_spirit_breaker_charge_of_darkness_vision")
         {
             ParticleEffect effect;
             if (BaraEffect.TryGetValue(handle, out effect))
             {
                 if (effect != null && effect.IsValid)
                     effect.Dispose();
                 BaraEffect.Remove(handle);
                 return;
             }
         }
     }
     if (Members.Menu.Item("lifestealer.Enable").GetValue<bool>() && Members.LifeStealer != null && Members.LifeStealer.IsValid)
     {
         if (modifier.Name == "modifier_life_stealer_infest_effect")
         {
             ParticleEffect effect;
             if (LifeStealerEffect.TryGetValue(handle, out effect))
             {
                 if (effect != null && effect.IsValid)
                     effect.Dispose();
                 LifeStealerEffect.Remove(handle);
                 return;
             }
         }
     }
 }
コード例 #15
0
 public static void OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     if (!Checker.IsActive())
         return;
     var modifier = args.Modifier;
     var handle = sender.Handle;
     if (Members.Menu.Item("charge.Enable").GetValue<bool>() && Members.BaraIsHere && sender.Team == Members.MyPlayer.Team)
     {
         if (modifier.Name == "modifier_spirit_breaker_charge_of_darkness_vision")
         {
             ParticleEffect effect;
             if (!BaraEffect.TryGetValue(handle, out effect))
             {
                 var effectName = "materials/ensage_ui/particles/spirit_breaker_charge_target.vpcf";
                 if (!(sender is Hero))
                 {
                     effectName = "particles/units/heroes/hero_spirit_breaker/spirit_breaker_charge_target.vpcf";
                 }
                 BaraEffect.Add(handle,
                     new ParticleEffect(effectName, sender, ParticleAttachment.OverheadFollow));
                 return;
             }
         }
     }
     if (Members.Menu.Item("lifestealer.Enable").GetValue<bool>() && Members.LifeStealer != null && Members.LifeStealer.IsValid)
     {
         if (modifier.Name == "modifier_life_stealer_infest_effect")
         {
             ParticleEffect effect;
             if (!LifeStealerEffect.TryGetValue(handle, out effect))
             {
                 var effectName = "materials/ensage_ui/particles/life_stealer_infested_unit.vpcf";
                 if (!(sender is Hero))
                 {
                     effectName = "particles/units/heroes/hero_life_stealer/life_stealer_infested_unit.vpcf";
                 }
                 LifeStealerEffect.Add(handle,
                     new ParticleEffect(effectName, sender, ParticleAttachment.OverheadFollow));
                 return;
             }
         }
     }
 }
コード例 #16
0
ファイル: ShowMeMore.cs プロジェクト: rivaillle/EnsageSharp
        public static void init(Unit Sender, ModifierChangedEventArgs args)
        {
            var            Modifier = args.Modifier;
            ParticleEffect Display  = null;

            switch (Modifier.Name)
            {
            // NEW MODIFIERS NINJAMAN
            // ARC wARDEN
            case "modifier_arc_warden_spark_wraith_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(375 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            case "modifier_arc_warden_magnetic_field_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(275 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            // AXE
            //ALCH
            case "modifier_alchemist_acid_spray_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(625 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            //CLOCKWERK
            case "modifier_rattletrap_rocket_flare":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(575 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            // ENIGMA
            case "modifier_enigma_black_hole_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(420 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            // NOVA MODIFIERS
            case "modifier_lina_light_strike_array":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(225 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            case "modifier_kunkka_torrent_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(225 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            case "modifier_leshrac_split_earth_thinker":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    var lesh = ObjectMgr.GetEntities <Hero>()
                               .FirstOrDefault(x => x.ClassID == ClassID.CDOTA_Unit_Hero_Leshrac);
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(lesh.Spellbook.SpellQ.AbilityData.FirstOrDefault(x => x.Name == "radius").GetValue(lesh.Spellbook.SpellQ.Level - 1) + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;

            case "modifier_invoker_sun_strike":
                if (!Effects.TryGetValue(Sender, out Display))
                {
                    Display = Sender.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                    Display.SetControlPoint(2, new Vector3(175 + 50, 255, 0));
                    Display.SetControlPoint(1, new Vector3(255, 0, 0));
                    Effects.Add(Sender, Display);
                }
                break;
            }
        }
コード例 #17
0
ファイル: Bootstrap.cs プロジェクト: IdcNoob/Ensage
 private void Unit_OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     evader.OnModifierAdded(sender, args.Modifier);
 }
コード例 #18
0
ファイル: ModifierMonitor.cs プロジェクト: vana41203/O9K
        private void OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            try
            {
                var modifier = args.Modifier;
                var name     = modifier.Name;

                if (this.abilityObstacleModifiers.TryGetValue(name, out var id))
                {
                    if (!(this.evadable.Find(x => x.Ability.Id == id) is IModifierObstacle modifierObstacleAbility))
                    {
                        return;
                    }

                    if (sender.Team == this.owner.Team && !modifierObstacleAbility.AllyModifierObstacle)
                    {
                        return;
                    }

                    modifierObstacleAbility.AddModifierObstacle(modifier, sender);
                    return;
                }

                if (!this.settingsMenu.ModifierCounter || (modifier.IsHidden && !this.forcedHiddenModifiers.Contains(modifier.Name)))
                {
                    return;
                }

                var modifierOwner = EntityManager9.GetUnit(sender.Handle);
                if (modifierOwner == null)
                {
                    return;
                }

                if ((!modifierOwner.IsHero || !modifierOwner.IsImportant) && name != "modifier_boots_of_travel_incoming")
                {
                    return;
                }

                var abilityId = this.GetAbilityId(name, modifier.TextureName);
                if (abilityId == null)
                {
                    return;
                }

                //todo can be improved ?
                var ability = this.evadable.Where(x => x.Ability.Id == abilityId.Value)
                              .OfType <IModifierCounter>()
                              .OrderBy(x => x.Owner.Distance(modifierOwner))
                              .FirstOrDefault();

                if (ability?.ModifierCounterEnabled?.IsEnabled != true)
                {
                    return;
                }

                if ((ability.ModifierAllyCounter && !modifierOwner.IsAlly(ability.Owner)) ||
                    (ability.ModifierEnemyCounter && modifierOwner.IsAlly(ability.Owner)))
                {
                    ability.AddModifier(modifier, modifierOwner);
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
コード例 #19
0
 private void Unit_OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     evader.OnModifierAdded(sender, args.Modifier);
 }
コード例 #20
0
ファイル: Bootstrap.cs プロジェクト: IdcNoob/Ensage
 private void UnitOnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     kunkka.OnModifierRemoved(sender, args);
 }
コード例 #21
0
ファイル: Program.cs プロジェクト: Co6aKaDJ/EnsageSharp
        static void ModifierAdded(Unit unit, ModifierChangedEventArgs args)
        {
            var modif = args.Modifier;

            try
            {
                if (IgnoreList.Contains(args.Modifier.Name) ||
                    ((args.Modifier.Name.Contains("item") || args.Modifier.Name.Contains("truesight") || args.Modifier.Name.Contains("glyph") || args.Modifier.Name.Contains("aura")) &&
                     !((args.Modifier.Name.Contains("item_pipe_barrier") || (args.Modifier.Name.Contains("windwalk"))))))
                {
                    return;
                }

                if (args.Modifier.RemainingTime < 150 && (args.Modifier.RemainingTime > 0.1 || SpecialCases.Contains(args.Modifier.Name)) &&
                    (SpecialCases.Contains(args.Modifier.Name) || unit.ClassID == ClassID.CDOTA_BaseNPC || args.Modifier.IsDebuff || args.Modifier.RemainingTime >= GetCurrentTime(unit)) &&
                    unit.ClassID != ClassID.CDOTA_BaseNPC_Creep &&
                    unit.ClassID != ClassID.CDOTA_BaseNPC_Creep_Lane &&
                    unit.ClassID != ClassID.CDOTA_BaseNPC_Creep_Neutral &&
                    unit.ClassID != ClassID.CDOTA_BaseNPC_Creep_Siege &&
                    unit.ClassID != ClassID.CDOTA_BaseNPC_Tower)
                {
                    if (SpecialCases.Contains(args.Modifier.Name) && Menu.Item("showmemore").GetValue <bool>())
                    {
                        // Circle Display for spells.
                        var            Modifier = args.Modifier;
                        ParticleEffect Display  = null;
                        switch (Modifier.Name)
                        {
                        case "modifier_lina_light_strike_array":
                            if (!Effects.TryGetValue(unit, out Display))
                            {
                                Display = unit.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                                Display.SetControlPoint(2, new Vector3(225 + 50, 255, 0));
                                Display.SetControlPoint(1, new Vector3(255, 255, 0));
                                Effects.Add(unit, Display);
                            }
                            break;

                        case "modifier_kunkka_torrent_thinker":
                            if (!Effects.TryGetValue(unit, out Display))
                            {
                                Display = unit.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                                Display.SetControlPoint(2, new Vector3(225 + 50, 255, 0));
                                Display.SetControlPoint(1, new Vector3(255, 255, 0));
                                Effects.Add(unit, Display);
                            }
                            break;

                        case "modifier_leshrac_split_earth_thinker":
                            if (!Effects.TryGetValue(unit, out Display))
                            {
                                var lesh = ObjectMgr.GetEntities <Hero>()
                                           .FirstOrDefault(x => x.ClassID == ClassID.CDOTA_Unit_Hero_Leshrac);
                                Display = unit.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                                Display.SetControlPoint(2, new Vector3(lesh.Spellbook.SpellQ.AbilityData.FirstOrDefault(x => x.Name == "radius").GetValue(lesh.Spellbook.SpellQ.Level - 1) + 50, 255, 0));
                                Display.SetControlPoint(1, new Vector3(255, 255, 0));
                                Effects.Add(unit, Display);
                            }
                            break;

                        case "modifier_invoker_sun_strike":
                            if (!Effects.TryGetValue(unit, out Display))
                            {
                                Display = unit.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                                Display.SetControlPoint(2, new Vector3(175 + 50, 255, 0));
                                Display.SetControlPoint(1, new Vector3(255, 255, 0));
                                Effects.Add(unit, Display);
                            }
                            break;
                        }

                        switch (modif.Name)
                        {
                        case "modifier_lina_light_strike_array":
                            linaTime = Game.GameTime;
                            break;

                        case "modifier_kunkka_torrent_thinker":
                            torrentTime = Game.GameTime;
                            break;

                        case "modifier_skywrath_mage_mystic_flare_thinker":
                            mysticFlareTime = Game.GameTime;
                            break;

                        case "modifier_enigma_black_hole_thinker":
                            bhTime = Game.GameTime;
                            break;

                        case "modifier_storm_spirit_static_remnant_thinker":
                            stormTime = Game.GameTime;
                            break;

                        case "modifier_leshrac_split_earth_thinker":
                            leshTime = Game.GameTime;
                            break;
                        }
                    }

                    var r = cake.FirstOrDefault(x => x.Unit.Name == unit.Name);

                    if (unit.Name != "npc_dota_thinker" && r != null && GetCurrentTime(unit) >= 0 && !SpecialCases.Contains(args.Modifier.Name))
                    {
                        cake.Remove(r);
                    }

                    cake.Add(new ModifierInfo(modif, unit, new Vector2(0, 0)));
                }
            }
            catch (Exception)
            {
                cake.Clear();
                cake.Add(new ModifierInfo(modif, unit, new Vector2(0, 0)));
            }
        }
コード例 #22
0
 private void OnModifierRemoved(Unit sender, ModifierChangedEventArgs args)
 {
     Messenger <ModifierChangedEventArgs> .Publish(args);
 }
コード例 #23
0
ファイル: Program.cs プロジェクト: NadeHouse/Pudge-Plus
 private static void Unit_OnModifierAdded(Unit sender, ModifierChangedEventArgs args)
 {
     Print.Info(sender.Name + "|" + args.Modifier.Name);
     if (sender.Name == "npc_dota_hero_antimage")
     {
         Print.Success("using other method");
         HookHandler.QueueCombo(sender);
     }
 }
コード例 #24
0
        private static void HeroOnOnModifierAdded(Unit sender, ModifierChangedEventArgs args)
        {
            //Invoker Sun Strike
            if (args.Modifier.Name.Contains("modifier_invoker_sun_strike") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("invoker_sun_strike").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("invoker_sun_strike_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("invoker", "invoker_sun_strike");
                }
                if (MenuManager.Menu.Item("invoker_sun_strike_sound").GetValue <bool>())
                {
                    Sound.PlaySound("invoker_sun_strike_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("invoker_sun_strike_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_invoker";
                    Helper.Hero();
                }
            }

            //Kunkka Torrent
            if (args.Modifier.Name.Contains("modifier_kunkka_torrent_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("kunkka_torrent").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("kunkka_torrent_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("kunkka", "kunkka_torrent");
                }
                if (MenuManager.Menu.Item("kunkka_torrent_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("kunkka_torrent_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_kunkka";
                    Helper.Hero();
                }
            }

            //Monkey King Primal Spring
            if (args.Modifier.Name.Contains("modifier_monkey_king_spring_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("monkey_king_primal_spring").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("monkey_king_primal_spring_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("monkey_king", "monkey_king_primal_spring");
                }
                if (MenuManager.Menu.Item("monkey_king_primal_spring_sound").GetValue <bool>())
                {
                    Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("monkey_king_primal_spring_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    HeroColor       = "npc_dota_hero_monkey_king";
                    Helper.Hero();
                }
            }

            //Radar
            if (args.Modifier.Name.Contains("modifier_radar_thinker") && args.Modifier.Owner.Team != me.Team && MenuManager.Menu.Item("radar_scan").GetValue <bool>())
            {
                if (MenuManager.Menu.Item("radar_scan_msg").GetValue <bool>())
                {
                    MessageCreator.MessageEnemyCreator("radar", "radar_scan");
                }
                if (MenuManager.Menu.Item("radar_scan_sound").GetValue <bool>())
                {
                    Sound.PlaySound("radar_scan_" + Addition[GetLangId] + ".wav");
                }
                if (MenuManager.Menu.Item("radar_scan_minimap").GetValue <bool>())
                {
                    MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                    Helper.Item();
                }
            }

            if (!(sender is Hero))
            {
                return;
            }
            if (sender.IsIllusion)
            {
                return;
            }
            string index;

            if (sender.Team == me.Team)
            {
                //Ignor Ally TP
                if (args.Modifier.Name.Contains("modifier_teleporting"))
                {
                    IgnorAllyTP = false;
                }

                //Spirit Breaker Charge of Darkness
                if (args.Modifier.Name.Contains("modifier_spirit_breaker_charge_of_darkness_vision") && MenuManager.Menu.Item("spirit_breaker_charge_of_darkness").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "spirit_breaker_charge_of_darkness");
                    }
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("spirit_breaker_charge_of_darkness_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("spirit_breaker_charge_of_darkness_minimap_end").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_spirit_breaker";
                        Helper.Hero();
                    }
                }

                //Shadow Fiend Dark Lord
                if (args.Modifier.Name.Contains("modifier_nevermore_presence") && HeroChecker.Nevermore_IsHere && Utils.SleepCheck("nevermore_dark_lord") && MenuManager.Menu.Item("nevermore_dark_lord").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("nevermore_dark_lord_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "nevermore_dark_lord");
                    }
                    if (MenuManager.Menu.Item("nevermore_dark_lord_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(5000, "nevermore_dark_lord");
                }

                //Sniper Assassinate
                if (args.Modifier.Name.Contains("modifier_sniper_assassinate") && MenuManager.Menu.Item("sniper_assassinate").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("sniper_assassinate_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "sniper_assassinate");
                    }
                    if (MenuManager.Menu.Item("sniper_assassinate_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("sniper_assassinate_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("sniper_assassinate_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_sniper";
                        Helper.Hero();
                    }
                }

                //Bounty Hunter Track
                if (args.Modifier.Name.Contains("modifier_bounty_hunter_track") && HeroChecker.Bounty_Hunter_IsHere && MenuManager.Menu.Item("bounty_hunter_track").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("bounty_hunter_track_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bounty_hunter_track");
                    }
                    if (MenuManager.Menu.Item("bounty_hunter_track_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("bounty_hunter_track_" + Addition[GetLangId] + ".wav");
                    }
                }

                //Invoker Ghost Walk
                if (args.Modifier.Name.Contains("modifier_invoker_ghost_walk_enemy") && Utils.SleepCheck("invoker_ghost_walk") && MenuManager.Menu.Item("invoker_ghost_walk").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("invoker_ghost_walk_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "invoker_ghost_walk");
                    }
                    if (MenuManager.Menu.Item("invoker_ghost_walk_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("invoker_ghost_walk_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(3000, "invoker_ghost_walk");
                }

                //Bloodseeker Thirst
                if (args.Modifier.Name.Contains("modifier_bloodseeker_thirst_vision") && Utils.SleepCheck("bloodseeker_thirst") && MenuManager.Menu.Item("bloodseeker_thirst").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("bloodseeker_thirst_msg").GetValue <bool>())
                    {
                        MessageCreator.MessageAllyCreator(sender.Name.Substring(14), "bloodseeker_thirst");
                    }
                    if (MenuManager.Menu.Item("bloodseeker_thirst_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("bloodseeker_thirst_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("bloodseeker_thirst_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        HeroColor       = "npc_dota_hero_bloodseeker";
                        Helper.Hero();
                    }
                    Utils.Sleep(10000, "bloodseeker_thirst");
                }
            }
            else
            {
                //Rune Haste
                if (args.Modifier.Name.Contains("modifier_rune_haste") && Utils.SleepCheck("rune_haste") && MenuManager.Menu.Item("rune_haste").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_haste_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_haste");
                    }
                    if (MenuManager.Menu.Item("rune_haste_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_haste_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_haste");
                }

                //Rune Regen
                if (args.Modifier.Name.Contains("modifier_rune_regen") && Utils.SleepCheck("rune_regen") && MenuManager.Menu.Item("rune_regen").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_regen_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_regen");
                    }
                    if (MenuManager.Menu.Item("rune_regen_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_regen_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_regen");
                }

                //Rune Arcane
                if (args.Modifier.Name.Contains("modifier_rune_arcane") && Utils.SleepCheck("rune_arcane") && MenuManager.Menu.Item("rune_arcane").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_arcane_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_arcane");
                    }
                    if (MenuManager.Menu.Item("rune_arcane_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_arcane");
                }

                //Rune Doubledamage
                if (args.Modifier.Name.Contains("modifier_rune_doubledamage") && Utils.SleepCheck("rune_doubledamage") && MenuManager.Menu.Item("rune_doubledamage").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_doubledamage_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_doubledamage");
                    }
                    if (MenuManager.Menu.Item("rune_doubledamage_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_doubledamage_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(10000, "rune_doubledamage");
                }

                //Rune Invis
                if (args.Modifier.Name.Contains("modifier_rune_invis") && Utils.SleepCheck("rune_invis") && MenuManager.Menu.Item("rune_invis").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rune_invis_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageRuneCreator(index, "rune_invis");
                    }
                    if (MenuManager.Menu.Item("rune_invis_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("rune_invis_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(3000, "rune_invis");
                }

                //Shadow Blade
                if (args.Modifier.Name.Contains("modifier_item_invisibility_edge_windwalk") && Utils.SleepCheck("invis_sword") && MenuManager.Menu.Item("invis_sword").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("invis_sword_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "invis_sword");
                    }
                    if (MenuManager.Menu.Item("invis_sword_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("invis_sword_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("invis_sword_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "invis_sword");
                }

                //Shadow Amulet
                if (args.Modifier.Name.Contains("modifier_item_shadow_amulet_fade") && Utils.SleepCheck("shadow_amulet") && MenuManager.Menu.Item("shadow_amulet").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("shadow_amulet_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "shadow_amulet");
                    }
                    if (MenuManager.Menu.Item("shadow_amulet_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("shadow_amulet_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("shadow_amulet_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "shadow_amulet");
                }

                //Glimmer Cape
                if (args.Modifier.Name.Contains("modifier_item_glimmer_cape_fade") && Utils.SleepCheck("glimmer_cape") && MenuManager.Menu.Item("glimmer_cape").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("glimmer_cape_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "glimmer_cape");
                    }
                    if (MenuManager.Menu.Item("glimmer_cape_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("glimmer_cape_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("glimmer_cape_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "glimmer_cape");
                }

                //Silver Edge
                if (args.Modifier.Name.Contains("modifier_item_silver_edge_windwalk") && Utils.SleepCheck("silver_edge") && MenuManager.Menu.Item("silver_edge").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("silver_edge_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "silver_edge");
                    }
                    if (MenuManager.Menu.Item("silver_edge_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("silver_edge_" + Addition[GetLangId] + ".wav");
                    }
                    if (MenuManager.Menu.Item("silver_edge_minimap").GetValue <bool>())
                    {
                        MiniMapPosition = HUDInfo.WorldToMinimap(args.Modifier.Owner.Position);
                        Helper.Item();
                    }
                    Utils.Sleep(3000, "silver_edge");
                }

                //Gem of True Sight
                if (args.Modifier.Name.Contains("modifier_item_gem_of_true_sight") && Utils.SleepCheck("gem") && MenuManager.Menu.Item("gem").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("gem_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "gem");
                    }
                    if (MenuManager.Menu.Item("gem_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(15000, "gem");
                }

                //Divine Rapier
                if (args.Modifier.Name.Contains("modifier_item_divine_rapier") && Utils.SleepCheck("rapier") && MenuManager.Menu.Item("rapier").GetValue <bool>())
                {
                    if (MenuManager.Menu.Item("rapier_msg").GetValue <bool>())
                    {
                        index = sender.Name.Remove(0, 14);
                        MessageCreator.MessageItemCreator(index, "rapier");
                    }
                    if (MenuManager.Menu.Item("rapier_sound").GetValue <bool>())
                    {
                        Sound.PlaySound("default_" + Addition[GetLangId] + ".wav");
                    }
                    Utils.Sleep(15000, "rapier");
                }
            }
        }