当前位置: 首页>>代码示例>>C#>>正文


C# Hero.Distance2D方法代码示例

本文整理汇总了C#中Hero.Distance2D方法的典型用法代码示例。如果您正苦于以下问题:C# Hero.Distance2D方法的具体用法?C# Hero.Distance2D怎么用?C# Hero.Distance2D使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Hero的用法示例。


在下文中一共展示了Hero.Distance2D方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Game_OnUpdate

        public static void Game_OnUpdate(EventArgs args)
        {
            me = ObjectManager.LocalHero;

            if (me.ClassID != ClassID.CDOTA_Unit_Hero_Axe)
                return;
            if (me == null)
                return;

            if (Blink == null)
                Blink = me.FindItem("item_blink");

            if (Chop == null)
                Chop = me.Spellbook.Spell4;

            if (me.HasItem(ClassID.CDOTA_Item_UltimateScepter))
            {
                _chopDmg = new int[3] { 300, 425, 550 };
            }
            else
            {
                _chopDmg = new int[3] { 250, 325, 400 };
            }

            var ChopDmg = _chopDmg[Chop.Level - 1];

            if (Menu.Item("toggle").GetValue<bool>())
            {
                var enemies = ObjectMgr.GetEntities<Hero>().Where(x => x.IsVisible && x.IsAlive && !x.IsIllusion && x.Team != me.Team && x.Health <= ChopDmg).ToList();

                foreach (var hero in enemies)
                {
                    var distance = me.Distance2D(hero);
                    if (target == null || distance < minimumDistance)
                    {
                        target = hero;
                    }
                }

                if (target != null && Utils.SleepCheck("chop") && Chop.CanBeCasted() && me.IsAlive && target.IsAlive)
                {
                    if (Blink != null && me.Distance2D(target) > 400 && me.Distance2D(target) < Blink.CastRange && Utils.SleepCheck("blink") && Blink.CanBeCasted() && me.Health > 250)
                    {
                        Blink.UseAbility(target.Position);
                        Utils.Sleep(150 + Game.Ping, "blink");
                    }
                    else
                    {
                        if (target != null && Chop != null)
                        {
                            Chop.UseAbility(target);
                            target = null;
                            Utils.Sleep(150 + Game.Ping, "chop");
                        }
                    }
                }
            }
        }
开发者ID:Evervolv1337,项目名称:EnsageSharp,代码行数:58,代码来源:Program.cs

示例2: Game_OnUpdate

        private static void Game_OnUpdate(EventArgs args)
        {
            if (target == null) return;
            if (!_loaded)
            {
                if (!Game.IsInGame || me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_PhantomAssassin)
                {
                    return;
                }
            }
                _loaded = true;

                Game.PrintMessage(
                "<font face='Comic Sans MS, cursive'><font color='#00aaff'>" + Menu.DisplayName + " By Bopby" +
                " loaded!</font> <font color='#aa0000'>v" + Assembly.GetExecutingAssembly().GetName().Version,
                MessageType.LogMessage);

            me = ObjectMgr.LocalHero;
            target = me.ClosestToMouseTarget(Menu.Item("targetsearchrange").GetValue<Slider>().Value);
            var handle = me.Handle;
            var distance = me.Distance2D(target);
            var inv = me.Inventory.Items;
            var enumerable = inv as Item[] ?? inv.ToArray();
            var dagger = enumerable.Any(x => x.Name == "item_blink" && x.Cooldown == 0);
            if (!me.IsAlive) return
                    ;
            if (target != null && Menu.Item("keyBind").GetValue<KeyBind>().Active == true)
            {
                SpellsUsage(me, target, distance, dagger);
            }
        }
开发者ID:binhbumpro,项目名称:ensagexxx,代码行数:31,代码来源:Program.cs

示例3: Game_OnUpdate

        public static void Game_OnUpdate(EventArgs args)
        {
            if (!Game.IsInGame)
            return;
            me = ObjectMgr.LocalHero;
            if (Menu.Item("toggle").GetValue<bool>())
            {
                var dagon = me.Inventory.Items.FirstOrDefault(x => x.Name.Contains("item_dagon"));
                var enemy = ObjectMgr.GetEntities<Hero>()
                    .Where(x => x.Team != me.Team && x.IsAlive && x.IsVisible && !x.IsIllusion && !x.UnitState.HasFlag(UnitState.MagicImmune))
                    .ToList();
                foreach (var i in enemy)
                {
                    var linken = i.Inventory.Items.FirstOrDefault(x => x.Name == "item_sphere");
                    var sphere = i.Modifiers.Any(x => x.Name == "modifier_item_sphere_target");
                    var ta = i.Modifiers.Any(x => x.Name == "modifier_templar_assassin_refraction_damage");
                    var dazzle = i.Modifiers.Any(x => x.Name == "modifier_dazzle_shallow_grave");
                    var abaddon = i.Modifiers.Any(x => x.Name == "modifier_abaddon_borrowed_time");
                    var bm = i.Modifiers.Any(x => x.Name == "modifier_item_blade_mail_reflect");
                    var pipe = i.Modifiers.Any(x => x.Name == "modifier_item_pipe_barrier");

                    if (dagon.CanBeCasted() && Utils.SleepCheck("dagon"))
                    {
                        if ((linken != null && linken.Cooldown == 0) || (sphere || ta || dazzle || abaddon || bm || pipe || i.IsMagicImmune()))
                            return;
                        var range = DagonRange[dagon.Level - 1];
                        var damage = Math.Floor(DagonRange[dagon.Level - 1] * (1 - i.MagicDamageResist));
                        if (me.Distance2D(i) < range && i.Health < damage)
                            dagon.UseAbility(i);
                    }
                }
            }
        }
开发者ID:dendimonster,项目名称:Ensage,代码行数:33,代码来源:Program.cs

示例4: GetComplexDamage

 private static double GetComplexDamage(uint level, Hero enemy, Hero me, double damage)
 {
     switch (me.ClassID)
     {
         case ClassID.CDOTA_Unit_Hero_AntiMage:
             return Math.Floor((enemy.MaximumMana - enemy.Mana)*damage);
         case ClassID.CDOTA_Unit_Hero_DoomBringer:
             var lvldeath = new[] {new[] { 6, 125 }, new[] { 5, 175 }, new[] { 4, 225 }, new[] { 3, 275 }};
             return Math.Floor((enemy.Level == 25 || enemy.Level % lvldeath[level][0] == 0) ? (enemy.MaximumHealth * 0.20 + lvldeath[level][1]) : (lvldeath[level][1]));
         case ClassID.CDOTA_Unit_Hero_Mirana:
             if (me.Distance2D(enemy) < 200)
                 return (damage * 1.75);
             return damage;
         case ClassID.CDOTA_Unit_Hero_Necrolyte:
             return Math.Floor((enemy.MaximumHealth - enemy.Health) * damage);
         case ClassID.CDOTA_Unit_Hero_Nyx_Assassin:
             var tempBurn = damage*Math.Floor(enemy.TotalIntelligence);
             return enemy.Mana < tempBurn ? enemy.Mana : tempBurn;
         case ClassID.CDOTA_Unit_Hero_Obsidian_Destroyer:
             if (me.TotalIntelligence > enemy.TotalIntelligence)
                 return ((Math.Floor(me.TotalIntelligence) - Math.Floor(enemy.TotalIntelligence))*damage);
             return 0;
         case ClassID.CDOTA_Unit_Hero_Elder_Titan:
             var pasDmg = new[] {1.12, 1.19, 1.25, 1.25};
             var pas = me.Spellbook.Spell3.Level;
             if (pas != 0)
             {
                 if (enemy.Modifiers.FirstOrDefault(modifier => modifier.Name == "modifier_elder_titan_natural_order") == null)
                     return (pasDmg[pas] * damage);
                 return damage;
             }
             return damage;
         case ClassID.CDOTA_Unit_Hero_Shadow_Demon:
             var actDmg = new[] {1, 2, 4, 8, 16};
             var poison = enemy.Modifiers.FirstOrDefault(modifier => modifier.Name == "modifier_shadow_demon_shadow_poison");
             if (poison != null)
             {
                 var poisonStack = poison.StackCount;
                 if (poisonStack != 0 && poisonStack < 6)
                     return (actDmg[poisonStack])*damage;
                 if (poisonStack > 5)
                     return (damage * 16) + ((poisonStack - 5) * 50);
             }
             return 0;
         case ClassID.CDOTA_Unit_Hero_Legion_Commander:
             var bonusCreep = new[] {14, 16, 18, 20};
             var bonusHero = new[] {20, 35, 50, 65};
             var heroDmg = ObjectMgr.GetEntities<Hero>().Where(hero => hero.IsAlive && hero.Team == me.GetEnemyTeam() && hero.IsVisible && hero.Health > 0 && enemy.Distance2D(hero) < 330).ToList().Count * bonusHero[level];
             var creepDmg = ObjectMgr.GetEntities<Unit>().Where(unit => ((unit.ClassID == ClassID.CDOTA_BaseNPC_Creep && unit.ClassID != ClassID.CDOTA_BaseNPC_Creature && !unit.IsAncient) || unit.ClassID == ClassID.CDOTA_Unit_VisageFamiliar || unit.ClassID == ClassID.CDOTA_Unit_Undying_Zombie || unit.ClassID == ClassID.CDOTA_Unit_SpiritBear || unit.ClassID == ClassID.CDOTA_Unit_Broodmother_Spiderling || unit.ClassID == ClassID.CDOTA_Unit_Hero_Beastmaster_Boar || unit.ClassID == ClassID.CDOTA_Unit_Hero_Beastmaster_Hawk || unit.ClassID == ClassID.CDOTA_BaseNPC_Invoker_Forged_Spirit) && unit.Team != me.Team && unit.IsAlive && unit.IsVisible && unit.Health > 0 && enemy.Distance2D(unit) < 350).ToList().Count * bonusCreep[level];
             return  Math.Floor((damage + heroDmg + creepDmg));
         case ClassID.CDOTA_Unit_Hero_Zuus:
             var hp = new[] {.05, .07, .09, .11};
             if (me.Spellbook.Spell3.Level > 0 && me.Distance2D(enemy) < 1000)
                 damage = (damage + ((hp[me.Spellbook.Spell3.Level]) * enemy.Health));
             return damage;
     }
     return damage;
 }
开发者ID:YukinoAguria,项目名称:ensagesharp,代码行数:58,代码来源:Program.cs

示例5: Game_OnUpdate

 public static void Game_OnUpdate(EventArgs args)
 {
     if (!Game.IsInGame) return;
     _me = ObjectMgr.LocalHero;
     if (_me == null || _me.ClassID != ClassID.CDOTA_Unit_Hero_Morphling)
     {
         return;
     }
     if (!_activated) return;
     if ((_target == null || !_target.IsVisible) && !_me.IsChanneling())
         _me.Move(Game.MousePosition);
     if (_target == null || _me.Distance2D(_target) > 500)
         _target = _me.ClosestToMouseTarget(1000);
     //Skills & Items
     waveform = _me.Spellbook.Spell1;
     adapt = _me.Spellbook.Spell2;
     eblade = _me.FindItem("item_ethereal_blade");
     bkb = _me.FindItem("item_black_king_bar");
     if (_target != null && _target.IsAlive && !_target.IsInvul())
     {
         if (!Utils.SleepCheck("Morph_Wait")) return;
         var targetDistance = _me.Distance2D(_target);
         var attackRange = 1000;
         if (targetDistance <= attackRange && waveform != null && waveform.CanBeCasted() && Utils.SleepCheck("waveform"))
         {
             waveform.UseAbility(_target.Position);
             Utils.Sleep(150 + Game.Ping, "waveform");
         }
         else if (bkb !=null && _bkbToggle && Utils.SleepCheck("BKB"))
         {
             bkb.UseAbility();
             Utils.Sleep(150 + Game.Ping, "BKB");
         }
         else if (eblade != null && eblade.CanBeCasted() && Utils.SleepCheck("eblade"))
         {
             eblade.UseAbility(_target);
             Utils.Sleep(150 + Game.Ping, "eblade");
         }
         else if (adapt != null && adapt.CanBeCasted() && Utils.SleepCheck("adapt"))
         {
             adapt.UseAbility(_target);
             Utils.Sleep(150 + Game.Ping, "adapt");
         }
     }
 }
开发者ID:potassiumsquare,项目名称:Morph,代码行数:45,代码来源:Program.cs

示例6: CheckTree

        public bool CheckTree(Hero hero, Vector3 position, TimberChain timberChain)
        {
            var distance = Math.Max(timberChain.GetCastRange(), hero.Distance2D(position));
            var endPoint = hero.Position.Extend(position, distance);
            var delay = Game.RawGameTime + timberChain.CastPoint + Game.Ping / 1000;

            return
                GetAvailableTrees(hero, endPoint, distance, delay, timberChain.Speed)
                    .Any(x => IsPointOnLine(x.Position, hero.Position, endPoint, 20));
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:10,代码来源:TreeFactory.cs

示例7: Execute

        /// <summary>
        ///     The execute.
        /// </summary>
        /// <param name="hero">
        ///     The hero.
        /// </param>
        /// <returns>
        ///     The <see cref="bool" />.
        /// </returns>
        public bool Execute(Hero hero)
        {
            if (!Variables.Damage.GetSuicideDamage().ContainsKey(hero.ClassID))
            {
                return false;
            }

            if (!Utils.SleepCheck(hero.ClassID + "Techies.AutoDetonate"))
            {
                return false;
            }

            if (Variables.Damage.GetSuicideDamage()[hero.ClassID] >= hero.Health)
            {
                var pos = hero.NetworkPosition;
                if (hero.NetworkActivity == NetworkActivity.Move)
                {
                    pos = Prediction.InFront(
                        hero, 
                        (float)((Game.Ping / 1000 + Variables.Techies.GetTurnTime(hero)) * hero.MovementSpeed));
                }

                if (pos.Distance2D(Variables.Techies) < hero.Distance2D(Variables.Techies))
                {
                    pos = hero.Position;
                }

                if (!(pos.Distance2D(Variables.Techies) < this.SuicideRadius))
                {
                    return false;
                }

                if (Variables.Techies.Distance2D(pos) > 100)
                {
                    pos = (pos - Variables.Techies.Position) * 99 / pos.Distance2D(Variables.Techies)
                          + Variables.Techies.Position;
                }

                Variables.SuicideAbility.UseAbility(pos);
                Utils.Sleep(500, "Techies.Suicide");
                return true;
            }

            return false;
        }
开发者ID:Ray0fHope,项目名称:EnsageSharp,代码行数:54,代码来源:AutoSuicide.cs

示例8: TeleportCancel

            //(float dist, Modifier mod, Hero friendly)
            public static void TeleportCancel(Hero friendly)
            {
                var dist = friendly.Distance2D(ObjectMgr.LocalHero); //Distance from team mate to 'me'
                if (dist <= Variables.me.Spellbook.Spell1.CastRange && friendly.Name != Variables.me.Name) //Within hook range
                    foreach (var mod in friendly.Modifiers)
                        if (mod.Name.Contains("teleporting")) //Affected by teleport
                        {
                            var distance = dist;
                            var speed = 1600;
                            var time = distance / speed;
                            var hookAirTime = time * 2;

                            var remainingTime = mod.RemainingTime;
                            if (!(remainingTime - hookAirTime >= 0))
                                Drawing.DrawText("HOOK NOW", Drawing.WorldToScreen(friendly.Position), Color.Red, FontFlags.AntiAlias | FontFlags.Outline);
                            else
                                Drawing.DrawText("WAIT " + Math.Round((remainingTime - hookAirTime), 1, MidpointRounding.AwayFromZero), Drawing.WorldToScreen(friendly.Position), Color.Cyan, FontFlags.AntiAlias | FontFlags.Outline);
                        }
            }
开发者ID:rockeytony,项目名称:Pudge-Plus,代码行数:20,代码来源:ESP.cs

示例9: Heal

        private static void Heal(Hero self, Ability healSpell, float[] amount, uint range, int targettingType,
            bool targetSelf = true)
        {
            if (healSpell != null && healSpell.CanBeCasted() && !self.IsChanneling())
            {
                if (self.IsAlive && !self.IsChanneling() &&
                    (!self.IsInvisible() || !me.Modifiers.Any(x => x.Name == "modifier_treant_natures_guise")) &&
                    self.Distance2D(fountain) > 2000)
                {
                    var heroes = targetSelf
                        ? ObjectMgr.GetEntities<Hero>()
                            .Where(
                                entity =>
                                    entity.Team == self.Team && self.Distance2D(entity) <= range && !entity.IsIllusion &&
                                    entity.IsAlive)
                            .ToList()
                        : ObjectMgr.GetEntities<Hero>()
                            .Where(
                                entity =>
                                    entity.Team == self.Team && self.Distance2D(entity) <= range && !entity.IsIllusion &&
                                    entity.IsAlive && !Equals(entity, me)).ToList();

                    if (heroes.Any())
                    {
                        foreach (var ally in heroes)
                        {
                            if (ally.Health <= (ally.MaximumHealth*0.7) && healSpell.CanBeCasted() &&
                                self.Distance2D(fountain) > 2000 && IsInDanger(ally) &&
                                ally.Health + amount[healSpell.Level - 1] <= ally.MaximumHealth && (me.ClassID != ClassID.CDOTA_Unit_Hero_WitchDoctor || !me.Spellbook.SpellW.IsToggled))
                            {
                                if (targettingType == 1)
                                    CastHeal(healSpell, ally);
                                else if (targettingType == 2)
                                    CastHeal(healSpell);
                                else if (targettingType == 3 && Utils.SleepCheck("ToggleHeal"))
                                {
                                    /*if (healSpell.CanBeCasted() && Utils.SleepCheck("ToggleHeal"))
                                    {
                                        if (!healSpell.IsToggled)
                                        {
                                            CastHeal(healSpell);
                                            Utils.Sleep(1000 + Game.Ping, "ToggleHeal");
                                        }
                                    }*/

                                    CastHeal(healSpell, null, true);
                                    Utils.Sleep(1000 + Game.Ping, "ToggleHeal");
                                }
                            }
                            else if (targettingType == 3 && ally.Health > (ally.MaximumHealth*0.7) && healSpell.IsToggled &&
                                     Utils.SleepCheck("ToggleHeal"))
                            {
                                healSpell.ToggleAbility();
                                Utils.Sleep(1000 + Game.Ping, "ToggleHeal");
                            }
                        }
                    }
                }
            }
        }
开发者ID:evezus,项目名称:EnsageSharp,代码行数:60,代码来源:Program.cs

示例10: GetSmartDamage

 private static double GetSmartDamage(uint level, Hero me, IReadOnlyList<double> damage)
 {
     var baseDmg = damage[(int)level];
     switch (me.ClassID)
     {
         case ClassID.CDOTA_Unit_Hero_Alchemist:
             var stun = me.Modifiers.FirstOrDefault(modifier => modifier.Name == "modifier_alchemist_unstable_concoction");
             if (stun == null) return 0;
             if (stun.ElapsedTime < 4.8)
                 return Math.Floor(stun.ElapsedTime * baseDmg);
             return (float)Math.Floor(4.8 * baseDmg);
         case ClassID.CDOTA_Unit_Hero_Morphling:
             var agi = Math.Floor(me.TotalAgility);
             var dmg = agi / Math.Floor(me.TotalStrength);
             if (dmg > 1.5)
                 return Math.Floor(0.5 * level * agi + baseDmg);
             if (dmg < 0.5)
                 return Math.Floor(0.25 * agi + baseDmg);
             if (dmg >= 0.5 && dmg <= 1.5)
                 return Math.Floor(0.25 + ((dmg - 0.5) * (0.5 * level - 0.25)) * agi + baseDmg);
             break;
         case ClassID.CDOTA_Unit_Hero_Visage:
             var soul = me.Modifiers.FirstOrDefault(modifier => modifier.Name == "modifier_visage_soul_assumption");
             if (soul != null)
                 return 20 + 65 * soul.StackCount;
             return 20;
         case ClassID.CDOTA_Unit_Hero_Undying:
             var count = ObjectMgr.GetEntities<Unit>().Where(unit => ((unit.ClassID == ClassID.CDOTA_BaseNPC_Creep && unit.ClassID != ClassID.CDOTA_BaseNPC_Creature && !unit.IsAncient) || unit.ClassID == ClassID.CDOTA_Unit_Undying_Zombie || unit.ClassID == ClassID.CDOTA_Unit_SpiritBear || unit.ClassID == ClassID.CDOTA_Unit_Broodmother_Spiderling || unit.ClassID == ClassID.CDOTA_Unit_Hero_Beastmaster_Boar || unit.ClassID == ClassID.CDOTA_Unit_Hero_Beastmaster_Hawk || unit.ClassID == ClassID.CDOTA_BaseNPC_Invoker_Forged_Spirit || unit.ClassID == ClassID.CDOTA_Unit_Courier || unit.ClassID == ClassID.CDOTA_BaseNPC_Hero) && unit.IsAlive && unit.IsVisible && unit.Health > 0 && me.Distance2D(unit) < 1300);
             var num = count.Count() - 2;
             var bonus = new uint[] { 18, 22, 26, 30 };
             if (num < baseDmg)
                 return num * bonus[level];
             return baseDmg * bonus[level];
     }
     return baseDmg;
 }
开发者ID:YukinoAguria,项目名称:ensagesharp,代码行数:36,代码来源:Program.cs

示例11: LetsTryCastSpell

        private static void LetsTryCastSpell(Hero me, Hero target, Ability spellForCast, bool nextSpell=false)
        {
            var ss = me.FindSpell("invoker_sun_strike");
            var icewall = me.FindSpell("invoker_ice_wall");
            var blast = me.FindSpell("invoker_deafening_blast");
            var tornado = me.FindSpell("invoker_tornado");
            var emp = me.FindSpell("invoker_emp");
            /*
            var coldsnap = me.FindSpell("invoker_cold_snap");
            var ghostwalk = me.FindSpell("invoker_ghost_walk");
            
            var forge = me.FindSpell("invoker_forge_spirit");
            var emp = me.FindSpell("invoker_emp");
            var alacrity = me.FindSpell("invoker_alacrity");
            */
            var meteor = me.FindSpell("invoker_chaos_meteor");
            var eulmodif = target.Modifiers.FirstOrDefault(x => x.Name == "modifier_eul_cyclone" || x.Name == "modifier_invoker_tornado");
            /*foreach (var source in target.Modifiers.ToList())
            {
                PrintInfo(source.Name+": "+source.RemainingTime);
            }*/
            var timing = Equals(spellForCast, ss)
                ? 1.7
                : Equals(spellForCast, meteor)
                    ? 1.3
                    : Equals(spellForCast, blast)
                        ? me.Distance2D(target)/1100 + Game.Ping/1000
                        : (Equals(spellForCast, icewall))
                            ? 2.5
                            : Equals(spellForCast, emp) ? 2.9 : 0;

            if (eulmodif!=null && eulmodif.RemainingTime<=timing)
            {
                if (icewall != null && Equals(spellForCast, icewall))
                {
                    CastIceWall(me, target, me.Distance2D(target) <= 250,icewall);
                }
                else
                {
                    UseSpell(spellForCast, target,me);
                    //Game.PrintMessage(spellForCast.Name+" (2)", MessageType.ChatMessage);
                    //PrintInfo("caster "+spellForCast.Name+" with timing "+timing);
                    Utils.Sleep(250, "StageCheck");
                    _stage++;
                }
            }
            else if (eulmodif == null /*&& !Equals(spellForCast, ss)*/)
            {
                if (icewall != null && Equals(spellForCast, icewall))
                {
                    CastIceWall(me, target, me.Distance2D(target) <= 300, icewall);
                }
                else
                {
                    var time = 250f;
                    if (Equals(spellForCast, tornado))
                    {
                        if (nextSpell) time += me.Distance2D(target)/spellForCast.GetProjectileSpeed()*1000 + Game.Ping;

                        spellForCast.CastSkillShot(target, me.Position,spellForCast.Name);
                        //Game.PrintMessage("CastSkillShot "+spellForCast.CastSkillShot(target, me.Position,spellForCast.Name),MessageType.ChatMessage);
                    }
                    else
                    {
                        //Game.PrintMessage("suka: " + spellForCast.Name,MessageType.ChatMessage);
                        UseSpell(spellForCast, target,me);
                    }
                    Utils.Sleep(time, "StageCheck");
                    _stage++;
                }
            }
        }
开发者ID:dendimonster,项目名称:EnsageSharp-1,代码行数:72,代码来源:Program.cs

示例12: Game_OnUpdate

        public static void Game_OnUpdate(EventArgs args)
        {
            me = ObjectManager.LocalHero;
            if (!Game.IsInGame || me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_BountyHunter) return;
            if (!Menu.Item("enabled").IsActive())
                return;

            Active = Game.IsKeyDown(Menu.Item("keyBind").GetValue<KeyBind>().Key);

            RActive = Menu.Item("KeyR").GetValue<KeyBind>().Active;
            Q = me.Spellbook.SpellQ;
            R = me.Spellbook.SpellR;

            var enemies = ObjectManager.GetEntities<Hero>()
                    .Where(x => x.Team != me.Team && x.IsAlive && x.IsVisible && !x.IsIllusion && !x.IsMagicImmune())
                    .ToList();
            if (Active)
            {
                e = me.ClosestToMouseTarget(1800);
                if (e == null)
                    return;
                mom = me.FindItem("item_mask_of_madness");
                urn = me.FindItem("item_urn_of_shadows");
                dagon = me.Inventory.Items.FirstOrDefault(x => x.Name.Contains("item_dagon"));
                ethereal = me.FindItem("item_ethereal_blade");
                halberd = me.FindItem("item_heavens_halberd");
                mjollnir = me.FindItem("item_mjollnir");
                orchid = me.FindItem("item_orchid") ?? me.FindItem("item_bloodthorn");
                abyssal = me.FindItem("item_abyssal_blade");
                mail = me.FindItem("item_blade_mail");
                bkb = me.FindItem("item_black_king_bar");
                satanic = me.FindItem("item_satanic");
                medall = me.FindItem("item_medallion_of_courage") ?? me.FindItem("item_solar_crest");
                Shiva = me.FindItem("item_shivas_guard");

                if (Menu.Item("orbwalk").GetValue<bool>() && me.Distance2D(e) <= 1900)
                {
                    Orbwalking.Orbwalk(e, 0, 1600, true, true);
                }
                if (Active && me.Distance2D(e) <= 1400 && e != null && e.IsAlive && !me.IsInvisible())
                {
                    if (
                        Q != null && Q.CanBeCasted() && me.Distance2D(e) <= 1500
                        && Menu.Item("Skills").GetValue<AbilityToggler>().IsEnabled(Q.Name)
                        && Utils.SleepCheck("Q")
                        )
                    {
                        Q.UseAbility(e);
                        Utils.Sleep(200, "Q");
                    }
                    if (
                        R != null && R.CanBeCasted() && me.Distance2D(e) <= 1500
                        && Menu.Item("Skills").GetValue<AbilityToggler>().IsEnabled(R.Name)
                        && !me.HasModifier("modifier_bounty_hunter_wind_walk")
                        && !me.IsChanneling()
                        && Utils.SleepCheck("R")
                        )
                    {
                        R.UseAbility(e);
                        Utils.Sleep(200, "R");
                    }

                    if ( // MOM
                        mom != null
                        && mom.CanBeCasted()
                        && me.CanCast()
                        && Menu.Item("Items").GetValue<AbilityToggler>().IsEnabled(mom.Name)
                        && Utils.SleepCheck("mom")
                        && me.Distance2D(e) <= 700
                        )
                    {
                        mom.UseAbility();
                        Utils.Sleep(250, "mom");
                    }
                    if ( // Mjollnir
                        mjollnir != null
                        && mjollnir.CanBeCasted()
                        && me.CanCast()
                        && !e.IsMagicImmune()
                        && Menu.Item("Items").GetValue<AbilityToggler>().IsEnabled(mjollnir.Name)
                        && Utils.SleepCheck("mjollnir")
                        && me.Distance2D(e) <= 900
                        )
                    {
                        mjollnir.UseAbility(me);
                        Utils.Sleep(250, "mjollnir");
                    } // Mjollnir Item end
                    if ( // Medall
                        medall != null
                        && medall.CanBeCasted()
                        && Utils.SleepCheck("Medall")
                        && Menu.Item("Items").GetValue<AbilityToggler>().IsEnabled(medall.Name)
                        && me.Distance2D(e) <= 700
                        )
                    {
                        medall.UseAbility(e);
                        Utils.Sleep(250, "Medall");
                    } // Medall Item end
                    if ( // Hellbard
                        halberd != null
//.........这里部分代码省略.........
开发者ID:VickTheRock,项目名称:ReworkAllScripts,代码行数:101,代码来源:Program.cs

示例13: TryToDispell

 private static void TryToDispell(Hero me, List<Item> toList, bool both, bool main, bool tempest)
 {
     var target = main ? _mainHero : tempest ? me : null;
     if (both)
     {
         var underShit = me.IsSilenced() || me.IsHexed() /*|| me.DebuffState*/;
         var isSilenced2 = _mainHero.IsSilenced();
         if (isSilenced2)
         {
             foreach (var item in toList.Where(item => me.Distance2D(_mainHero) <= 600))
             {
                 item.UseAbility(_mainHero);
                 Utils.Sleep(500, item.Name + me.Handle);
             }
         }
         if (underShit)
         {
             foreach (var item in toList)
             {
                 item.UseAbility(me);
                 Utils.Sleep(500, item.Name + me.Handle);
             }
         }
         foreach (var hero in Ensage.Common.Objects.Heroes.GetByTeam(me.Team).Where(x=>x.IsAlive && x.Distance2D(me)<=600 && (x.IsHexed() || x.IsSilenced())))
         {
             foreach (var item in toList)
             {
                 item.UseAbility(hero);
                 Utils.Sleep(500, item.Name + me.Handle);
             }
         }
     }
     else
     {
         var isSilenced = target.IsSilenced();
         if (!isSilenced) return;
         foreach (var item in toList.Where(x => me.Distance2D(target) <= 600))
         {
             item.UseAbility(target);
             Utils.Sleep(500, item.Name + me.Handle);
         }
     }
 }
开发者ID:DevGdos,项目名称:EnsageSharp,代码行数:43,代码来源:Program.cs

示例14: CalculateDamage


//.........这里部分代码省略.........
                        (float)(bonusDamage + agi * multi), 
                        DamageType.Magical, 
                        source, 
                        false, 
                        minusMagicResistancePerc: minusMagicResistancePerc);
                    break;
                case "mirana_starfall":
                    var radiusMax = ability.GetAbilityData("starfall_secondary_radius");
                    if (!DamageDictionary.TryGetValue(ability, out bonusDamage))
                    {
                        bonusDamage =
                            Convert.ToSingle(
                                Game.FindKeyValues(name + "/AbilityDamage", KeyValueSource.Ability)
                                    .StringValue.Split(' ')[level - 1]);
                        DamageDictionary.Add(ability, bonusDamage);
                        LevelDictionary.Add(ability, level);
                    }
                    else if (LevelDictionary[ability] != level)
                    {
                        LevelDictionary[ability] = level;
                        bonusDamage =
                            Convert.ToSingle(
                                Game.FindKeyValues(name + "/AbilityDamage", KeyValueSource.Ability)
                                    .StringValue.Split(' ')[level - 1]);
                        DamageDictionary[ability] = bonusDamage;
                    }

                    outgoingDamage = target.DamageTaken(
                        bonusDamage, 
                        DamageType.Magical, 
                        source, 
                        data.MagicImmunityPierce, 
                        minusMagicResistancePerc: minusMagicResistancePerc);
                    if (source.Distance2D(target) < radiusMax)
                    {
                        outgoingDamage *= 2;
                    }

                    break;
                case "item_ethereal_blade":
                    hero = source;
                    var primaryAtt = hero.PrimaryAttribute;
                    if (primaryAtt == Attribute.Agility)
                    {
                        bonusDamage = 2 * hero.TotalAgility;
                    }
                    else if (primaryAtt == Attribute.Intelligence)
                    {
                        bonusDamage = 2 * hero.TotalIntelligence;
                    }
                    else if (primaryAtt == Attribute.Strength)
                    {
                        bonusDamage = 2 * hero.TotalStrength;
                    }

                    if (!DamageDictionary.TryGetValue(ability, out tempDmg))
                    {
                        tempDmg = ability.GetAbilityData(data.DamageString);
                        DamageDictionary.Add(ability, tempDmg);
                        LevelDictionary.Add(ability, level);
                    }
                    else if (LevelDictionary[ability] != level)
                    {
                        LevelDictionary[ability] = level;
                        tempDmg = ability.GetAbilityData(data.DamageString);
                        DamageDictionary[ability] = tempDmg;
开发者ID:nbIxMaN,项目名称:Ensage.Common,代码行数:67,代码来源:AbilityDamage.cs

示例15: Combo

		//public readonly Menu farm = new Menu("FarmMode", "FarmMode");
		

		public void Combo()
		{
			if (me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Meepo || !Game.IsInGame) return;
            if(!me.IsAlive) return;

            activated = Game.IsKeyDown(Menu.Item("keyBind").GetValue<KeyBind>().Key);
            PoofKey = Game.IsKeyDown(Menu.Item("poofKey").GetValue<KeyBind>().Key);
            PoofAutoMode = Menu.Item("poofAutoMod").GetValue<KeyBind>().Active;
            SafePoof = Menu.Item("poofSafe").IsActive();
            dodge = Menu.Item("Dodge").GetValue<KeyBind>().Active;
            var checkObj = ObjectManager.GetEntities<Unit>().Where(x => (x.ClassID == ClassID.CDOTA_BaseNPC_Creep_Lane
                        || x.ClassID == ClassID.CDOTA_BaseNPC_Creep_Siege
                        || x.ClassID == ClassID.CDOTA_BaseNPC_Creep
                        || x.ClassID == ClassID.CDOTA_BaseNPC_Creep_Neutral
                        || x.HasInventory
                        || x.ClassID == ClassID.CDOTA_Unit_SpiritBear) && x.IsAlive && x.Team != me.Team && x.IsValid).ToList();
            var meepos = ObjectManager.GetEntities<Hero>().Where(x => x.IsControllable && x.IsAlive && x.ClassID == ClassID.CDOTA_Unit_Hero_Meepo).ToList();





            List<Unit> fount = ObjectManager.GetEntities<Unit>().Where(x => x.Team == me.Team && x.ClassID == ClassID.CDOTA_Unit_Fountain).ToList();
            //blink = me.FindItem("item_blink");



            e = ObjectManager.GetEntities<Hero>()
                        .Where(x => x.IsAlive && x.Team != me.Team && !x.IsIllusion)
                        .OrderBy(x => GetDistance2D(x.Position, meepos.OrderBy(y => GetDistance2D(x.Position, y.Position)).FirstOrDefault().Position))
                        .FirstOrDefault();


            /**************************************************DODGE*************************************************************/

            var f = ObjectManager.GetEntities<Hero>()
                        .Where(x => x.IsAlive && x.Team == me.Team && !x.IsIllusion && x.IsControllable && x.ClassID == ClassID.CDOTA_Unit_Hero_Meepo)
                        .OrderBy(x => GetDistance2D(x.Position, fount.OrderBy(y => GetDistance2D(x.Position, y.Position)).FirstOrDefault().Position))
                        .FirstOrDefault();
		    var meeposCount = meepos.Count();
            Ability[] q = new Ability[meeposCount];
            for (int i = 0; i < meeposCount; ++i) q[i] = meepos[i].Spellbook.SpellQ;
            Ability[] w = new Ability[meeposCount];
            for (int i = 0; i < meeposCount; ++i) w[i] = meepos[i].Spellbook.SpellW;
            if (dodge && me.IsAlive)
            {
                var baseDota =
                  ObjectManager.GetEntities<Unit>().Where(unit => unit.Name == "npc_dota_base" && unit.Team != me.Team).ToList();
                if (baseDota != null)
                {
                    for (int t = 0; t < baseDota.Count(); ++t)
                    {
                        for (int i = 0; i < meeposCount; ++i)
                        {
                            float angle = meepos[i].FindAngleBetween(baseDota[t].Position, true);
                            Vector3 pos = new Vector3((float)(baseDota[t].Position.X - 710 * Math.Cos(angle)), (float)(baseDota[t].Position.Y - 710 * Math.Sin(angle)), 0);
                            if (meepos[i].Distance2D(baseDota[t]) <= 700 && !meepos[i].HasModifier("modifier_bloodseeker_rupture") && Utils.SleepCheck(meepos[i].Handle + "MoveDodge"))
                            {
                                meepos[i].Move(pos);
                                Utils.Sleep(120, meepos[i].Handle + "MoveDodge");
                                //	Console.WriteLine("Name: " + baseDota[t].Name);
                                //	Console.WriteLine("Speed: " + baseDota[t].Speed);
                                //	Console.WriteLine("ClassID: " + baseDota[t].ClassID);
                                //	Console.WriteLine("Handle: " + baseDota[t].Handle);
                                //	Console.WriteLine("UnitState: " + baseDota[t].UnitState);
                            }
                        }
                    }
                }

                var thinker =
                   ObjectManager.GetEntities<Unit>().Where(unit => unit.Name == "npc_dota_thinker" && unit.Team != me.Team).ToList();
                if (thinker != null)
                {
                    for (int i = 0; i < thinker.Count(); ++i)
                    {
                        for (int j = 0; j < meeposCount; ++j)
                        {
                            float angle = meepos[j].FindAngleBetween(thinker[i].Position, true);
                            Vector3 pos = new Vector3((float)(thinker[i].Position.X - 360 * Math.Cos(angle)), (float)(thinker[i].Position.Y - 360 * Math.Sin(angle)), 0);
                            if (meepos[j].Distance2D(thinker[i]) <= 350 && !meepos[j].HasModifier("modifier_bloodseeker_rupture"))
                            {

                                if (Utils.SleepCheck(meepos[j].Handle + "MoveDodge"))
                                {
                                    meepos[j].Move(pos);
                                    Utils.Sleep(350, meepos[j].Handle + "MoveDodge");
                                }

                            }
                        }
                    }
                }
                foreach (var v in meepos)
                {
                    if (Utils.SleepCheck(v.Handle + "_move") && v.Health <= v.MaximumHealth / 100 * Menu.Item("healh").GetValue<Slider>().Value
                        && !v.HasModifier("modifier_bloodseeker_rupture")
//.........这里部分代码省略.........
开发者ID:VickTheRock,项目名称:ReworkAllScripts,代码行数:101,代码来源:MeepoController.cs


注:本文中的Hero.Distance2D方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。