Example #1
1
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Obj_AI_Hero.OnIssueOrder += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate += Game_OnGameUpdate;

                Obj_AI_Hero.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalking.BeforeAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                   "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                */

                menu = new Menu("ezEvade VH", "ezEvade", true);

                Menu mainMenu = new Menu("Trang chính", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Né skill định hướng").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "Dùng skill để né").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "Chỉ né khi nguy hiểm").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Né skill từ sương mù").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Né skill diện rộng").SetValue(true));
                menu.AddSubMenu(mainMenu);

                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell = new EvadeSpell(menu);

                Menu keyMenu = new Menu("Cài đặt nút", "KeySettings");
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Kích hoạt phím chỉ né khi nguy hiểm").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Phím chỉ né khi nguy hiểm").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Phím chỉ né khi nguy hiểm 2").SetValue(new KeyBind('V', KeyBindType.Press)));

                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyDesc", "--    Chỉ né khi ấn phím Combo    --"));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "Kích hoạt phím chỉ né khi ấn Combo").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "Phím Combo").SetValue(new KeyBind(32, KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("Cài đặt nâng cao", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "Tăng cường né chính xác").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "Tính toán đường đi").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "Tiếp tục lần di chuyển cuối").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Tính toán độ trễ Windup").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "Kiểm tra vật che chắn").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "Ngăn né skill dưới trụ").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "Ngăn né skill khi gần kẻ địch").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "Phát hiện skill nâng cao").SetValue(false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

                Menu evadeModeMenu = new Menu("Chế độ", "EvadeModeSettings");
                evadeModeMenu.AddItem(new MenuItem("EvadeMode", "Chế độ Evade")
                    .SetValue(new StringList(new[] { "Mượt", "Rất Nhanh", "Rất Mượt" }, 0)));
                miscMenu.AddSubMenu(evadeModeMenu);

                miscMenu.Item("EvadeMode").ValueChanged += OnEvadeModeChange;

                Menu limiterMenu = new Menu("Nhân tính hóa", "Limiter");
                limiterMenu.AddItem(new MenuItem("ClickOnlyOnce", "Chỉ click 1 lần").SetValue(true));
                limiterMenu.AddItem(new MenuItem("EnableEvadeDistance", "Gia tăng tầm Evade").SetValue(false));
                limiterMenu.AddItem(new MenuItem("TickLimiter", "Giới hạn Tick").SetValue(new Slider(100, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "Thời gian phát hiện kĩ năng").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("ReactionTime", "Thời gian phản ứng").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "Khoảng thời gian né").SetValue(new Slider(0, 0, 2000)));

                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("Evade Nhanh", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "Khóa di chuyển nhanh").SetValue(false));
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "Thời gian kích hoạt Evade Nhanh").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Thời gian kích hoạt kĩ năng").SetValue(new Slider(200, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Buff khoảng cách vật che chắn").SetValue(new Slider(10, 0, 100)));

                miscMenu.AddSubMenu(fastEvadeMenu);

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));

                miscMenu.AddSubMenu(evadeSpellSettingsMenu);*/

                Menu bufferMenu = new Menu("Thêm Buffers", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Thêm Buffer Ping").SetValue(new Slider(65, 0, 200)));
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Thêm khoảng cách che chắn").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Thêm tầm kĩ năng").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Thêm khoảng cách Evade").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Thêm tránh xa").SetValue(new Slider(50, 0, 300)));

                bufferMenu.AddItem(new MenuItem("MinComfortZone", "Khoảng cách thấp nhất đến Champ").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                Menu resetMenu = new Menu("Đặt lại cài đặt", "ResetConfig");
                resetMenu.AddItem(new MenuItem("ResetConfig", "Đặt lại cài đặt").SetValue(false));
                resetMenu.AddItem(new MenuItem("ResetConfig200", "Vá cài đặt").SetValue(true));

                miscMenu.AddSubMenu(resetMenu);

                Menu loadTestMenu = new Menu("Kiểm tra", "LoadTests");

                loadTestMenu.AddItem(new MenuItem("LoadPingTester", "Mở kiểm tra ping").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("LoadSpellTester", "Mở kiểm tra kĩ năng").SetValue(false));
                loadTestMenu.Item("LoadPingTester").ValueChanged += OnLoadPingTesterChange;
                loadTestMenu.Item("LoadSpellTester").ValueChanged += OnLoadSpellTesterChange;

                miscMenu.AddSubMenu(loadTestMenu);

                menu.AddSubMenu(miscMenu);
                menu.AddToMainMenu();

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);

                Console.WriteLine("ezEvade Loaded");

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #2
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            ObjectCache.myHeroCache.UpdateInfo();
            CheckHeroInDanger();

            if (isChanneling && channelPosition.LSDistance(ObjectCache.myHeroCache.serverPos2D) > 50
                ) //TODO: !myHero.IsChannelingImportantSpell()
            {
                isChanneling = false;
            }
            var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].Cast <Slider>().CurrentValue;

            //Tick limiter
            if (EvadeUtils.TickCount - lastTickCount > limitDelay && EvadeUtils.TickCount > lastStopEvadeTime && ObjectCache.menuCache.cache["DodgeSkillShots"].Cast <KeyBind>().CurrentValue)
            {
                DodgeSkillShots(); //walking
                ContinueLastBlockedCommand();
                lastTickCount = EvadeUtils.TickCount;
            }

            if (ObjectCache.menuCache.cache["ActivateEvadeSpells"].Cast <KeyBind>().CurrentValue)
            {
                EvadeSpell.UseEvadeSpell(); //using spells
            }
            CheckDodgeOnlyDangerous();
            RecalculatePath();
        }
Example #3
0
        private void SpellDetector_OnProcessDetectedSpells()
        {
            GameData.HeroInfo.UpdateInfo();
            if (!ConfigValue.DodgeSkillShots.GetBool())
            {
                LastPosInfo = PositionInfo.SetAllUndodgeable();
                EvadeSpell.UseEvadeSpell();
                return;
            }
            if (GameData.HeroInfo.ServerPos2D.CheckDangerousPos(0) || GameData.HeroInfo.ServerPos2DExtra.CheckDangerousPos(0))
            {
                if (EvadeSpell.PreferEvadeSpell())
                {
                    LastPosInfo = PositionInfo.SetAllUndodgeable();
                }
                else
                {
                    var calculationTimer = EvadeUtils.TickCount;

                    var posInfo = EvadeHelper.GetBestPosition();

                    var caculationTime = EvadeUtils.TickCount - calculationTimer;

                    if (NumCalculationTime > 0)
                    {
                        SumCalculationTime += caculationTime;
                        AvgCalculationTime  = SumCalculationTime / NumCalculationTime;
                    }
                    NumCalculationTime += 1;

                    //ConsoleDebug.WriteLine("CalculationTime: " + caculationTime);

                    /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo))
                     * {
                     *  return;
                     * }*/
                    if (posInfo != null)
                    {
                        LastPosInfo = posInfo.CompareLastMovePos();

                        var travelTime = GameData.HeroInfo.ServerPos2DPing.Distance(LastPosInfo.Position) / GameData.MyHero.MoveSpeed;

                        LastPosInfo.EndTime = EvadeUtils.TickCount + travelTime * 1000 - 100;
                    }

                    CheckHeroInDanger();
                    DodgeSkillShots();          //walking
                    CheckLastMoveTo();
                    EvadeSpell.UseEvadeSpell(); //using spells
                }
            }
            else
            {
                LastPosInfo = PositionInfo.SetAllDodgeable();
                CheckLastMoveTo();
            }


            //ConsoleDebug.WriteLine("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count);
        }
Example #4
0
        public static bool CanHeroEvade(this Spell spell, Obj_AI_Base hero, out float rEvadeTime, out float rSpellHitTime)
        {
            var   heroPos      = hero.ServerPosition.To2D();
            float evadeTime    = 0;
            float spellHitTime = 0;
            float speed        = hero.MoveSpeed;

            var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff);

            if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell))
            {
                speed += speed * moveBuff.speedArray[ObjectManager.Player.GetSpell(moveBuff.spellKey).Level - 1] / 100;
            }

            if (spell.spellType == SpellType.Line)
            {
                var projection = heroPos.ProjectOn(spell.startPos, spell.endPos).SegmentPoint;
                evadeTime    = 1000 * (spell.radius - heroPos.Distance(projection) + hero.BoundingRadius) / speed;
                spellHitTime = spell.GetSpellHitTime(projection);
            }
            else if (spell.spellType == SpellType.Circular)
            {
                evadeTime    = 1000 * (spell.radius - heroPos.Distance(spell.endPos)) / speed;
                spellHitTime = spell.GetSpellHitTime(heroPos);
            }

            rEvadeTime    = evadeTime;
            rSpellHitTime = spellHitTime;

            return(spellHitTime > evadeTime);
        }
        private void Game_OnGameUpdate(EventArgs args)
        {
            try
            {
                if (Evade.GetTickCount() < lastTickCount)
                {
                    Game.PrintChat("Time Error");
                    //lastTickCount = Evade.GetTickCount();
                }

                CheckHeroInDanger();
                ContinueLastBlockedCommand();

                if (isChanneling && channelPosition.Distance(myHero.ServerPosition.To2D()) > 50)
                {
                    isChanneling = false;
                }

                var limitDelay = Evade.menu.Item("TickLimiter").GetValue <Slider>().Value; //Tick limiter
                if (Evade.GetTickCount() - lastTickCount > limitDelay &&
                    Evade.GetTickCount() > lastStopEvadeTime)
                {
                    DodgeSkillShots();          //walking
                    EvadeSpell.UseEvadeSpell(); //using spells
                    lastTickCount = Evade.GetTickCount();
                }

                CheckDodgeOnlyDangerous();
            }
            catch (Exception e)
            {
                Game.PrintChat(e.StackTrace);
            }
        }
Example #6
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            try
            {
                ObjectCache.myHeroCache.UpdateInfo();
                CheckHeroInDanger();

                if (isChanneling && channelPosition.LSDistance(ObjectCache.myHeroCache.serverPos2D) > 50 &&
                    !myHero.IsChannelingImportantSpell())
                {
                    isChanneling = false;
                }

                var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].Cast <Slider>().CurrentValue; //Tick limiter
                if (EvadeHelper.fastEvadeMode || EvadeUtils.TickCount - lastTickCount > limitDelay && EvadeUtils.TickCount > lastStopEvadeTime)
                {
                    DodgeSkillShots(); //walking
                    ContinueLastBlockedCommand();
                    lastTickCount = EvadeUtils.TickCount;
                }

                EvadeSpell.UseEvadeSpell(); //using spells
                CheckDodgeOnlyDangerous();
                RecalculatePath();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #7
0
        private void SpellDetector_OnProcessDetectedSpells()
        {
            ObjectCache.myHeroCache.UpdateInfo();

            if (ObjectCache.menuCache.cache["DodgeSkillShots"].GetValue <KeyBind>().Active == false)
            {
                lastPosInfo = PositionInfo.SetAllUndodgeable();
                EvadeSpell.UseEvadeSpell();
                return;
            }

            if (ObjectCache.myHeroCache.serverPos2D.CheckDangerousPos(0) ||
                ObjectCache.myHeroCache.serverPos2DExtra.CheckDangerousPos(0))
            {
                if (EvadeSpell.PreferEvadeSpell())
                {
                    lastPosInfo = PositionInfo.SetAllUndodgeable();
                }
                else
                {
                    var calculationTimer = EvadeUtils.TickCount;

                    var posInfo = EvadeHelper.GetBestPosition();

                    var caculationTime = EvadeUtils.TickCount - calculationTimer;

                    if (numCalculationTime > 0)
                    {
                        sumCalculationTime += caculationTime;
                        avgCalculationTime  = sumCalculationTime / numCalculationTime;
                    }
                    numCalculationTime += 1;

                    //Console.WriteLine("CalculationTime: " + caculationTime);

                    /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo))
                     * {
                     *  return;
                     * }*/
                    if (posInfo != null)
                    {
                        lastPosInfo = posInfo.CompareLastMovePos();
                    }

                    CheckHeroInDanger();
                    DodgeSkillShots();          //walking
                    CheckLastMoveTo();
                    EvadeSpell.UseEvadeSpell(); //using spells
                }
            }
            else
            {
                lastPosInfo = PositionInfo.SetAllDodgeable();
                CheckLastMoveTo();
            }


            //Console.WriteLine("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count);
        }
Example #8
0
        public static bool UseEkkoR(EvadeSpellData evadeSpell, bool process = true)
        {
            if ((from obj in ObjectManager.Get <Obj_AI_Minion>() where obj != null && obj.IsValid && !obj.IsDead && obj.Name == "Ekko" && obj.IsAlly select obj.ServerPosition.To2D()).Any(blinkPos => !blinkPos.CheckDangerousPos(10)))
            {
                EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process);
                //DelayAction.Add(50, () => myHero.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D()));
                return(true);
            }

            return(false);
        }
Example #9
0
        private void Game_OnGameLoad(EventArgs args)
        {
            Game.PrintChat("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
               "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");

            menu = new Menu("ezEvade", "ezEvade", true);

            Menu mainMenu = new Menu("Main", "Main");
            mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
            mainMenu.AddItem(new MenuItem("UseEvadeSpells", "Use Evade Spells").SetValue(true));
            mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
            mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
            mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(true));
            menu.AddSubMenu(mainMenu);

            spellDetector = new SpellDetector(menu);
            evadeSpell = new EvadeSpell(menu);

            Menu keyMenu = new Menu("Key Settings", "KeySettings");
            keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
            keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
            keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('V', KeyBindType.Press)));
            menu.AddSubMenu(keyMenu);

            Menu miscMenu = new Menu("Misc Settings", "MiscSettings");
            miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(true));
            miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
            //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

            Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");
            fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "Fast Evade Time").SetValue(new Slider(300, 0, 500)));
            fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(40, 0, 100)));

            miscMenu.AddSubMenu(fastEvadeMenu);

            Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");
            bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Extra Ping Buffer").SetValue(new Slider(10, 0, 150)));
            bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(30, 0, 150)));
            bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
            bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(20, 0, 100)));
            bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(0, 0, 100)));

            bufferMenu.AddItem(new MenuItem("MinComfortZone", "Minimum Comfort Zone").SetValue(new Slider(400, 0, 1000)));

            miscMenu.AddSubMenu(bufferMenu);
            menu.AddSubMenu(miscMenu);

            menu.AddToMainMenu();

            spellDrawer = new SpellDrawer(menu);
            //evadeTester = new EvadeTester(menu);
        }
Example #10
0
        public static PositionInfo CanHeroWalkToPos(Vector2 pos, float speed, float delay, float extraDist, bool useServerPosition = true)
        {
            int        posDangerLevel    = 0;
            int        posDangerCount    = 0;
            float      closestDistance   = float.MaxValue;
            List <int> dodgeableSpells   = new List <int>();
            List <int> undodgeableSpells = new List <int>();

            Vector2 heroPos = ObjectCache.myHeroCache.serverPos2D;

            var minComfortDistance = ObjectCache.menuCache.cache["MinComfortZone"].GetValue <Slider>().Value;

            if (useServerPosition == false)
            {
                heroPos = myHero.Position.To2D();
            }

            foreach (KeyValuePair <int, Spell> entry in SpellDetector.spells)
            {
                Spell spell = entry.Value;

                var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff);
                if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell))
                {
                    speed += speed * moveBuff.speedArray[myHero.GetSpell(moveBuff.spellKey).Level - 1] / 100;
                }

                closestDistance = Math.Min(closestDistance, GetClosestDistanceApproach(spell, pos, speed, delay, heroPos, extraDist));

                if (pos.InSkillShot(spell, ObjectCache.myHeroCache.boundingRadius - 6) ||
                    PredictSpellCollision(spell, pos, speed, delay, heroPos, extraDist, useServerPosition) ||
                    (spell.info.spellType != SpellType.Line && pos.isNearEnemy(minComfortDistance)))
                {
                    posDangerLevel  = Math.Max(posDangerLevel, spell.dangerlevel);
                    posDangerCount += spell.dangerlevel;
                    undodgeableSpells.Add(spell.spellID);
                }
                else
                {
                    dodgeableSpells.Add(spell.spellID);
                }
            }

            return(new PositionInfo(
                       pos,
                       posDangerLevel,
                       posDangerCount,
                       posDangerCount > 0,
                       closestDistance,
                       dodgeableSpells,
                       undodgeableSpells));
        }
Example #11
0
        public static bool UseBrokenWings(EvadeSpellData evadeSpell, bool process = false)
        {
            var posInfo = EvadeHelper.GetBestPositionDash(evadeSpell);

            if (posInfo != null)
            {
                EvadeCommand.MoveTo(posInfo.position);
                DelayAction.Add(50, () => EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process));
                return(true);
            }

            return(false);
        }
Example #12
0
        public static bool UsePounce(EvadeSpellData evadeSpell, bool process = true)
        {
            if (myHero.CharData.BaseSkinName != "Nidalee")
            {
                var posInfo = EvadeHelper.GetBestPositionDash(evadeSpell);
                if (posInfo != null)
                {
                    EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process);
                    return(true);
                }
            }

            return(false);
        }
Example #13
0
        public static bool UseEkkoE2(EvadeSpellData evadeSpell, bool process = true)
        {
            if (myHero.HasBuff("ekkoeattackbuff"))
            {
                var posInfo = EvadeHelper.GetBestPositionTargetedDash(evadeSpell);
                if (posInfo != null && posInfo.target != null)
                {
                    EvadeSpell.CastEvadeSpell(() => EvadeCommand.Attack(evadeSpell, posInfo.target), process);
                    //DelayAction.Add(50, () => myHero.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D()));
                    return(true);
                }
            }

            return(false);
        }
Example #14
0
        public static bool CanHeroEvade(this Spell spell, Obj_AI_Base hero, out float rEvadeTime, out float rSpellHitTime)
        {
            var   heroPos      = hero.ServerPosition.To2D();
            float evadeTime    = 0;
            float spellHitTime = 0;
            float speed        = hero.MoveSpeed;
            float delay        = 0;

            var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff);

            if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell))
            {
                speed += speed * moveBuff.speedArray[ObjectManager.Player.GetSpell(moveBuff.spellKey).Level - 1] / 100;
                //delay += moveBuff.spellDelay;
                delay += (moveBuff.spellDelay > 50 ? moveBuff.spellDelay : 0) + ObjectCache.gamePing;
            }

            if (spell.spellType == SpellType.Line)
            {
                var projection = heroPos.ProjectOn(spell.startPos, spell.endPos).SegmentPoint;
                evadeTime    = 1000 * (spell.radius - heroPos.Distance(projection) + hero.BoundingRadius) / speed;
                spellHitTime = spell.GetSpellHitTime(projection);
            }
            else if (spell.spellType == SpellType.Circular)
            {
                evadeTime    = 1000 * (spell.radius - heroPos.Distance(spell.endPos)) / speed;
                spellHitTime = spell.GetSpellHitTime(heroPos);
            }
            else if (spell.spellType == SpellType.Cone)
            {
                var sides = new[]
                {
                    heroPos.ProjectOn(spell.cnStart, spell.cnLeft).SegmentPoint,
                    heroPos.ProjectOn(spell.cnLeft, spell.cnRight).SegmentPoint,
                    heroPos.ProjectOn(spell.cnRight, spell.cnStart).SegmentPoint
                };

                var p = sides.OrderBy(x => x.Distance(x)).First();
                evadeTime    = 1000 * (spell.info.range / 2 - heroPos.Distance(p) + hero.BoundingRadius) / speed;
                spellHitTime = spell.GetSpellHitTime(heroPos);
            }

            rEvadeTime    = evadeTime;
            rSpellHitTime = spellHitTime;

            return(spellHitTime > evadeTime + delay);
        }
Example #15
0
        public static bool UseEkkoR(EvadeSpellData evadeSpell, bool process = true)
        {
            foreach (var obj in ObjectManager.Get <Obj_AI_Minion>())
            {
                if (obj != null && obj.IsValid && !obj.IsDead && obj.Name == "Ekko" && obj.IsAlly)
                {
                    Vector2 blinkPos = obj.ServerPosition.To2D();
                    if (!blinkPos.CheckDangerousPos(10))
                    {
                        EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process);
                        //DelayAction.Add(50, () => EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D()));
                        return(true);
                    }
                }
            }

            return(false);
        }
Example #16
0
        public static bool UseRappel(EvadeSpellData evadeSpell, bool process = true)
        {
            if (myHero.CharData.BaseSkinName != "Elise")
            {
                EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell, myHero), process);
                return(true);
            }

            if (myHero.CharData.BaseSkinName == "Elise")
            {
                if (myHero.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready)
                {
                    myHero.Spellbook.CastSpell(SpellSlot.R);
                }
            }

            return(false);
        }
Example #17
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            try
            {
                CheckHeroInDanger();
                CheckDodgeOnlyDangerous();
                if (IsChanneling && ChannelPosition.Distance(GameData.HeroInfo.ServerPos2D) > 50) //TODO: !GameData.MyHero.IsChannelingImportantSpell()
                {
                    IsChanneling = false;
                    ConsoleDebug.WriteLineColor("Stopped Channeling.", ConsoleColor.Yellow);
                }

                //if (() Properties.Properties.Data["ResetConfig"].Cast<CheckBox>().CurrentValue)
                //{
                //    ResetConfig();
                //    menu["ResetConfig"].Cast<CheckBox>().CurrentValue = false;
                //}

                //if (() Properties.Properties.Data["ResetConfig200"].Cast<CheckBox>().CurrentValue)
                //{
                //    SetPatchConfig();
                //    menu["ResetConfig200"].Cast<CheckBox>().CurrentValue = false;
                //}

                var limitDelay = ConfigValue.TickLimiter.GetInt();
                //Tick limiter
                if (EvadeUtils.TickCount - LastTickCount > limitDelay && EvadeUtils.TickCount > LastStopEvadeTime)
                {
                    DodgeSkillShots(); //walking


                    ContinueLastBlockedCommand();
                    LastTickCount = EvadeUtils.TickCount;
                }

                EvadeSpell.UseEvadeSpell(); //using spells
                RecalculatePath();
            }
            catch (Exception e)
            {
                ConsoleDebug.WriteLine(e);
            }
        }
Example #18
0
        private void Game_OnGameUpdate(EventArgs args)
        {
            try
            {
                ObjectCache.myHeroCache.UpdateInfo();
                CheckHeroInDanger();

                if (isChanneling && channelPosition.Distance(ObjectCache.myHeroCache.serverPos2D) > 50 &&
                    !myHero.IsChannelingImportantSpell())
                {
                    isChanneling = false;
                }

                if (ObjectCache.menuCache.cache["ResetConfig"].GetValue <bool>())
                {
                    ResetConfig();
                    menu.Item("ResetConfig").SetValue(false);
                }

                if (ObjectCache.menuCache.cache["ResetConfig200"].GetValue <bool>())
                {
                    SetPatchConfig();
                    menu.Item("ResetConfig200").SetValue(false);
                }

                var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].GetValue <Slider>().Value; //Tick limiter
                if (EvadeUtils.TickCount - lastTickCount > limitDelay &&
                    EvadeUtils.TickCount > lastStopEvadeTime)
                {
                    DodgeSkillShots(); //walking

                    ContinueLastBlockedCommand();
                    lastTickCount = EvadeUtils.TickCount;
                }

                EvadeSpell.UseEvadeSpell(); //using spells
                CheckDodgeOnlyDangerous();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #19
0
        private void RecalculatePath()
        {
            if (ObjectCache.menuCache.cache["RecalculatePosition"].Cast <CheckBox>().CurrentValue&& isDodging) //recheck path
            {
                if (lastPosInfo != null && !lastPosInfo.recalculatedPath)
                {
                    var path = myHero.Path;
                    if (path.Length > 0)
                    {
                        var movePos = path.Last().To2D();

                        if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking
                        {
                            var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0,
                                                                       false);
                            if (posInfo.posDangerCount > lastPosInfo.posDangerCount)
                            {
                                lastPosInfo.recalculatedPath = true;

                                if (EvadeSpell.PreferEvadeSpell())
                                {
                                    lastPosInfo = PositionInfo.SetAllUndodgeable();
                                }
                                else
                                {
                                    var newPosInfo = EvadeHelper.GetBestPosition();
                                    if (newPosInfo.posDangerCount < posInfo.posDangerCount)
                                    {
                                        lastPosInfo = newPosInfo;
                                        CheckHeroInDanger();
                                        DodgeSkillShots();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        private void SpellDetector_OnProcessDetectedSpells()
        {
            if (EvadeHelper.CheckDangerousPos(myHero.ServerPosition.To2D(), 0))
            {
                if (Evade.menu.SubMenu("Main").Item("DodgeSkillShots").GetValue <KeyBind>().Active == false ||
                    EvadeSpell.PreferEvadeSpell())
                {
                    lastPosInfo = EvadeHelper.SetAllUndodgeable();
                    EvadeSpell.UseEvadeSpell(); //using spells
                }
                else
                {
                    var posInfo = EvadeHelper.GetBestPosition();

                    /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo))
                     * {
                     *  return;
                     * }*/

                    if (lastPosInfo != null && posInfo != null && lastPosInfo.posDangerCount < posInfo.posDangerCount)
                    {
                        return;
                    }

                    lastPosInfo = posInfo;

                    CheckHeroInDanger();
                    DodgeSkillShots();          //walking
                    EvadeSpell.UseEvadeSpell(); //using spells
                }
            }
            else
            {
                lastPosInfo = EvadeHelper.SetAllDodgeable();
            }


            //Game.PrintChat("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count);
        }
Example #21
0
        private void RecalculatePath()
        {
            if (ConfigValue.RecalculatePath.GetBool() && IsDodging) //recheck path
            {
                if (LastPosInfo != null && !LastPosInfo.RecalculatedPath)
                {
                    var path = GameData.MyHero.Path;
                    if (path.Length > 0)
                    {
                        var movePos = path.Last().To2D();

                        if (movePos.Distance(LastPosInfo.Position) < 5) //more strict checking
                        {
                            var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, GameData.HeroInfo.MoveSpeed, 0, 0, false);
                            if (posInfo.PosDangerCount > LastPosInfo.PosDangerCount)
                            {
                                LastPosInfo.RecalculatedPath = true;

                                if (EvadeSpell.PreferEvadeSpell())
                                {
                                    LastPosInfo = PositionInfo.SetAllUndodgeable();
                                }
                                else
                                {
                                    var newPosInfo = EvadeHelper.GetBestPosition();
                                    if (newPosInfo.PosDangerCount < posInfo.PosDangerCount)
                                    {
                                        LastPosInfo = newPosInfo;
                                        CheckHeroInDanger();
                                        DodgeSkillShots();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Example #22
0
        private void Game_OnGameLoad(EventArgs args)
        {
            ConsoleDebug.WriteLineColor("Loading...", ConsoleColor.Blue, true);
            ConfigPluginControler.LoadConfigPresets();

            try
            {
                Menu = MainMenu.AddMenu("EzEvade", "ezEvade");
                ConsoleDebug.WriteLineColor("   Creating Menu...", ConsoleColor.Yellow, true);
                Menu.AddGroupLabel("EzEvade (EzEvade By Ka)");



                Menu.AddLabel("Last Update: " + LastUpdate);

                Menu mainMenu = Menu.AddSubMenu("Main", "Main");
                mainMenu.Add(ConfigValue.DodgeSkillShots.Name(), new DynamicKeyBind(ConfigValue.DodgeSkillShots, "Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K').KeyBind);
                mainMenu.Add(ConfigValue.ActivateEvadeSpells.Name(), new DynamicKeyBind(ConfigValue.ActivateEvadeSpells, "Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K').KeyBind);
                mainMenu.Add(ConfigValue.OnlyDodgeDangerous.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.OnlyDodgeDangerous, "Dodge Only Dangerous", false).CheckBox);
                mainMenu.Add(ConfigValue.DodgeFowSpells.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.DodgeFowSpells, "Dodge FOW SkillShots", true).CheckBox);
                mainMenu.Add(ConfigValue.DodgeCircularSpells.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.DodgeCircularSpells, "Dodge Circular SkillShots", true).CheckBox);
                mainMenu.AddSeparator();
                mainMenu.Add(ConfigValue.DodgeDangerousKeysEnabled.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.DodgeDangerousKeysEnabled, "Enable Dodge Only Dangerous Keys", false).CheckBox);

                mainMenu.Add(ConfigValue.DodgeDangerousKey1.Name(), new DynamicKeyBind(ConfigValue.DodgeDangerousKey1, "Dodge Only Dangerous Key", false, KeyBind.BindTypes.HoldActive, 32).KeyBind);
                mainMenu.Add(ConfigValue.DodgeDangerousKey2.Name(), new DynamicKeyBind(ConfigValue.DodgeDangerousKey2, "Dodge Only Dangerous Key 2", false, KeyBind.BindTypes.HoldActive, 'V').KeyBind);

                mainMenu.AddSeparator();
                mainMenu.AddGroupLabel("EzEvade Mode");

                var sliderEvadeMode = new StringSlider(ConfigDataType.Data, "EzEvade", "EzEvade By Ka", 1, SpellConfigProperty.None, Enum.GetNames(typeof(EvadeMode)));
                sliderEvadeMode.Slider.Slider.OnValueChange += OnEvadeModeChange;
                mainMenu.Add("EzEvade", sliderEvadeMode.Slider.Slider);

                ConsoleDebug.WriteLineColor("       Detecting Spells...", ConsoleColor.Yellow, true);
                SpellDetector = new SpellDetector(Menu);
                _evadeSpell   = new EvadeSpell(Menu);

                ConsoleDebug.WriteLineColor("       Adding Humanizer and Miscellaneous Menus...", ConsoleColor.Yellow, true);
                Menu miscMenu = Menu.AddSubMenu("Misc Settings", "MiscSettings");
                miscMenu.Add(ConfigValue.HighPrecision.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.HighPrecision, "Enhanced Dodge Precision", false).CheckBox);
                miscMenu.Add(ConfigValue.RecalculatePath.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.RecalculatePath, "Recalculate Path", true).CheckBox);
                miscMenu.Add(ConfigValue.ContinueMovement.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.ContinueMovement, "Continue Last Movement", true).CheckBox);
                miscMenu.Add(ConfigValue.CalculateWindupDelay.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.CalculateWindupDelay, "Calculate Windup Delay", true).CheckBox);
                miscMenu.Add(ConfigValue.CheckSpellCollision.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.CheckSpellCollision, "Check Spell Collision", false).CheckBox);
                miscMenu.Add(ConfigValue.PreventDodgingUnderTower.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.PreventDodgingUnderTower, "Prevent Dodging Under Tower", false).CheckBox);
                miscMenu.Add(ConfigValue.PreventDodgingNearEnemy.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.PreventDodgingNearEnemy, "Prevent Dodging Near Enemies", false).CheckBox);
                miscMenu.Add(ConfigValue.AdvancedSpellDetection.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.AdvancedSpellDetection, "Advanced Spell Detection", false).CheckBox);
                miscMenu.Add(ConfigValue.ExtraDetectionRange.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraDetectionRange, "Extra Detection Range", 500, 500, 5000).Slider);
                //TODO: Add Reset
                //miscMenu.AddSeparator(100);
                //miscMenu.AddGroupLabel("Reset");
                //miscMenu.Add("ResetConfig", new DynamicCheckBox(ConfigDataType.Data, "ResetConfig", "Reset Properties", false).CheckBox);

                Menu fastEvadeMenu = Menu.AddSubMenu("Fast EzEvade", "FastEvade");
                fastEvadeMenu.Add(ConfigValue.FastMovementBlock.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.FastMovementBlock, "Fast Movement Block", true).CheckBox);
                fastEvadeMenu.Add(ConfigValue.FastEvadeActivationTime.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.FastEvadeActivationTime, "FastEzEvade Activation Time", 65, 0, 500).Slider);
                fastEvadeMenu.Add(ConfigValue.SpellActivationTime.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.SpellActivationTime, "Spell Activation Time", 200, 0, 1000).Slider);
                fastEvadeMenu.Add(ConfigValue.RejectMinDistance.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.RejectMinDistance, "Collision Distance Buffer", 10, 0, 100).Slider);

                Menu limiterMenu = Menu.AddSubMenu("Humanizer", "Limiter");
                limiterMenu.Add(ConfigValue.ClickOnlyOnce.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.ClickOnlyOnce, "Click Only Once", true).CheckBox);
                limiterMenu.Add(ConfigValue.EnableEvadeDistance.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.EnableEvadeDistance, "Extended EzEvade", false).CheckBox);
                limiterMenu.Add(ConfigValue.TickLimiter.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.TickLimiter, "Tick Limiter", 100, 0, 500).Slider);
                limiterMenu.Add(ConfigValue.SpellDetectionTime.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.SpellDetectionTime, "Spell Detection Time", 0, 0, 1000).Slider);
                limiterMenu.Add(ConfigValue.ReactionTime.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ReactionTime, "Reaction Time", 0, 0, 500).Slider);
                limiterMenu.Add(ConfigValue.DodgeInterval.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.DodgeInterval, "Dodge Interval", 0, 0, 2000).Slider);

                Menu bufferMenu = Menu.AddSubMenu("ExtraBuffers", "ExtraBuffers");
                bufferMenu.Add(ConfigValue.ExtraPingBuffer.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraPingBuffer, "Extra Ping Buffer(hit by a lot of spells:increase)", 65, 0, 200).Slider);
                bufferMenu.Add(ConfigValue.ExtraCpaDistance.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraCpaDistance, "Extra Collision Distance", 10, 0, 150).Slider);
                bufferMenu.Add(ConfigValue.ExtraSpellRadius.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraSpellRadius, "Extra Spell Radius", 0, 0, 100).Slider);
                bufferMenu.Add(ConfigValue.ExtraEvadeDistance.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraEvadeDistance, "Extra EzEvade Distance", 100, 0, 500).Slider);
                //bufferMenu.Add(ConfigValue.ExtraSpellRadius.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.ExtraSpellRadius, "Extra Avoid Distance", 50, 0, 300).Slider);
                bufferMenu.Add(ConfigValue.MinimumComfortZone.Name(), new DynamicSlider(ConfigDataType.Data, ConfigValue.MinimumComfortZone, "Minimum Distance to Champions", 550, 0, 1000).Slider);


                Menu debugMenu = Menu.AddSubMenu("Debug", "DebugMenu");

                debugMenu.AddGroupLabel("Debug");
                debugMenu.Add(ConfigValue.ShowDebugInfo.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.ShowDebugInfo, "Show Debug Info (Console)", false).CheckBox).OnValueChange +=
                    (sender, changeArgs) =>
                {
                    ConsoleDebug.Enabled = sender.CurrentValue;
                };
                //debugMenu.Add("DebugWithMySpells", new DynamicCheckBox(ConfigDataType.Data, "DebugWithMySpells", "Detect and draw my spells", false).CheckBox); //TODO: Remove From Addon

                debugMenu.AddSeparator();
                //debugMenu.Add(ConfigValue.EnableSpellTester.Name(), new DynamicCheckBox(ConfigDataType.Data, ConfigValue.EnableSpellTester, "Enable Spell Tester", false).CheckBox);
                //debugMenu.AddLabel("Press F5 after enabling / disabling the Spell Tester to load / unload it.");
                _spellDrawer = new SpellDrawer(Menu);

                ConsoleDebug.WriteLineColor("   Hooking Events...", ConsoleColor.Yellow, true);
                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                ConsoleDebug.WriteLineColor("   Loading Spells...", ConsoleColor.Yellow, true);
                SpellDetector.LoadSpellDictionary();
                SpellDetector.InitChannelSpells();

                AIHeroClient.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                Chat.Print(
                    "<font color='#23ADDB'>ezEvade Loading....</font><font color='#E81A0C'>Enjoy your game :-))");

                ConsoleDebug.WriteLineColor("   Setting Loaded Presets Values...", ConsoleColor.Yellow, true);
                ConfigPluginControler.SelectedPreset.LoadConfig();
            }
            catch (Exception)
            {
                Chat.Print("EzEvade Loading", Color.Red);
            }
            ConsoleDebug.WriteLineColor("Successfully Loaded!", ConsoleColor.Green, true);
        }
        private void Game_OnGameLoad(EventArgs args)
        {
            Obj_AI_Hero.OnIssueOrder += Game_OnIssueOrder;
            Spellbook.OnCastSpell    += Game_OnCastSpell;
            Game.OnUpdate            += Game_OnGameUpdate;
            Game.OnSendPacket        += Game_OnSendPacket;
            Game.OnEnd += Game_OnGameEnd;
            SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;

            Game.PrintChat("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                           "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");

            menu = new Menu("ezEvade", "ezEvade", true);

            Menu mainMenu = new Menu("Main", "Main");

            mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
            mainMenu.AddItem(new MenuItem("UseEvadeSpells", "Use Evade Spells").SetValue(true));
            mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
            mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
            mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(true));
            menu.AddSubMenu(mainMenu);

            //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
            //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

            spellDetector = new SpellDetector(menu);
            evadeSpell    = new EvadeSpell(menu);

            Menu keyMenu = new Menu("Key Settings", "KeySettings");

            keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
            keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
            keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('V', KeyBindType.Press)));
            menu.AddSubMenu(keyMenu);

            Menu miscMenu = new Menu("Misc Settings", "MiscSettings");

            miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(true));
            miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
            miscMenu.AddItem(new MenuItem("ContinueMovement", "Continue Last Movement").SetValue(true));
            miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Calculate Windup Delay").SetValue(true));
            miscMenu.AddItem(new MenuItem("LoadPingTester", "Load Ping Tester").SetValue(true));
            //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

            Menu limiterMenu = new Menu("Limiter", "Limiter");

            limiterMenu.AddItem(new MenuItem("TickLimiter", "Tick Limiter").SetValue(new Slider(50, 0, 200)));
            miscMenu.AddSubMenu(limiterMenu);

            Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");

            fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "FastEvade Activation Time").SetValue(new Slider(200, 0, 500)));
            fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Spell Activation Time").SetValue(new Slider(100, 0, 500)));
            fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(10, 0, 100)));

            miscMenu.AddSubMenu(fastEvadeMenu);

            /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
             * evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));
             *
             * miscMenu.AddSubMenu(evadeSpellSettingsMenu);*/

            Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");

            bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Extra Ping Buffer").SetValue(new Slider(65, 0, 200)));
            bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(10, 0, 150)));
            bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
            bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(100, 0, 200)));
            bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(0, 0, 300)));

            bufferMenu.AddItem(new MenuItem("MinComfortZone", "Minimum Comfort Zone").SetValue(new Slider(400, 0, 1000)));

            miscMenu.AddSubMenu(bufferMenu);
            menu.AddSubMenu(miscMenu);

            menu.AddToMainMenu();

            spellDrawer = new SpellDrawer(menu);

            if (menu.Item("LoadPingTester").GetValue <bool>())
            {
                pingTester = new PingTester(menu);
            }

            SetCastSpellPacketID();

            //evadeTester = new EvadeTester(menu);
        }
        private void DodgeSkillShots()
        {
            if (!Situation.ShouldDodge())
            {
                isDodging = false;
                return;
            }

            /*
             * if (isDodging && playerInDanger == false) //serverpos test
             * {
             *  myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false);
             * }*/

            if (isDodging)
            {
                if (lastPosInfo != null)
                {
                    /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells)
                     * {
                     *  Spell spell = entry.Value;
                     *
                     *  Game.PrintChat("" + (int)(GetTickCount()-spell.startTime));
                     * }*/


                    Vector2 lastBestPosition = lastPosInfo.position;

                    if (menu.SubMenu("MiscSettings").Item("RecalculatePosition").GetValue <bool>())//recheck path
                    {
                        var path = myHero.Path;
                        if (path.Length > 0)
                        {
                            var movePos = path[path.Length - 1].To2D();

                            if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking
                            {
                                var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, myHero.MoveSpeed, 0, 0, false);
                                if (EvadeHelper.isSamePosInfo(posInfo, lastPosInfo) && posInfo.posDangerCount > lastPosInfo.posDangerCount)
                                {
                                    var newPosInfo = EvadeHelper.GetBestPosition();
                                    if (newPosInfo.posDangerCount < posInfo.posDangerCount)
                                    {
                                        lastPosInfo = newPosInfo;
                                        CheckHeroInDanger();
                                    }
                                    else if (EvadeSpell.PreferEvadeSpell())
                                    {
                                        lastPosInfo = EvadeHelper.SetAllUndodgeable();
                                        EvadeSpell.UseEvadeSpell(); //using spells)
                                    }
                                }
                            }
                        }
                    }

                    EvadeCommand.MoveTo(lastBestPosition);
                }
            }
            else //if not dodging
            {
                //Check if hero will walk into a skillshot
                var path = myHero.Path;
                if (path.Length > 0)
                {
                    var movePos = path[path.Length - 1].To2D();

                    if (EvadeHelper.CheckMovePath(movePos))
                    {
                        var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos);
                        if (posInfo != null)
                        {
                            EvadeCommand.MoveTo(posInfo.position);
                        }
                        return;
                    }
                }
            }
        }
Example #25
0
        private void DodgeSkillShots()
        {
            if (!Situation.ShouldDodge())
            {
                isDodging = false;
                return;
            }

            /*
             * if (isDodging && playerInDanger == false) //serverpos test
             * {
             *  myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false);
             * }*/

            if (isDodging)
            {
                if (lastPosInfo != null)
                {
                    /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells)
                     * {
                     *  Spell spell = entry.Value;
                     *
                     *  Console.WriteLine("" + (int)(TickCount-spell.startTime));
                     * }*/


                    Vector2 lastBestPosition = lastPosInfo.position;

                    if (ObjectCache.menuCache.cache["RecalculatePosition"].GetValue <bool>())//recheck path
                    {
                        var dodgeInterval = ObjectCache.menuCache.cache["DodgeInterval"].GetValue <Slider>().Value;
                        if (lastPosInfo != null && !lastPosInfo.recalculatedPath &&
                            dodgeInterval <= EvadeUtils.TickCount - lastPosInfo.timestamp)
                        {
                            var path = myHero.Path;
                            if (path.Length > 0)
                            {
                                var movePos = path[path.Length - 1].To2D();

                                if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking
                                {
                                    var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0, false);
                                    if (posInfo.isSamePosInfo(lastPosInfo) &&
                                        posInfo.posDangerCount > lastPosInfo.posDangerCount)
                                    {
                                        var newPosInfo = EvadeHelper.GetBestPosition();
                                        if (newPosInfo.posDangerCount < posInfo.posDangerCount)
                                        {
                                            lastPosInfo = newPosInfo;
                                            CheckHeroInDanger();
                                        }
                                        else if (EvadeSpell.PreferEvadeSpell())
                                        {
                                            lastPosInfo = PositionInfo.SetAllUndodgeable();
                                        }
                                        else
                                        {
                                            lastPosInfo.recalculatedPath = true;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (ObjectCache.menuCache.cache["ClickOnlyOnce"].GetValue <bool>() == false ||
                        !(myHero.Path.Count() > 0 && lastPosInfo.position.Distance(myHero.Path.Last().To2D()) < 5))
                    //|| lastPosInfo.timestamp > lastEvadeOrderTime)
                    {
                        EvadeCommand.MoveTo(lastBestPosition);
                        lastEvadeOrderTime = EvadeUtils.TickCount;
                    }
                }
            }
            else //if not dodging
            {
                //Check if hero will walk into a skillshot
                var path = myHero.Path;
                if (path.Length > 0)
                {
                    var movePos = path[path.Length - 1].To2D();

                    if (EvadeHelper.CheckMovePath(movePos))
                    {
                        /*if (ObjectCache.menuCache.cache["AllowCrossing"].GetValue<bool>())
                         * {
                         *  var extraDelayBuffer = ObjectCache.menuCache.cache["ExtraPingBuffer"]
                         *      .GetValue<Slider>().Value + 30;
                         *  var extraDist = ObjectCache.menuCache.cache["ExtraCPADistance"]
                         *      .GetValue<Slider>().Value + 10;
                         *
                         *  var tPosInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, extraDelayBuffer + ObjectCache.gamePing, extraDist);
                         *
                         *  if (tPosInfo.posDangerLevel == 0)
                         *  {
                         *      lastPosInfo = tPosInfo;
                         *      return;
                         *  }
                         * }*/

                        var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos);
                        if (posInfo != null)
                        {
                            EvadeCommand.MoveTo(posInfo.position);
                        }
                        return;
                    }
                }
            }
        }
Example #26
0
        private void Game_OnGameLoad(EventArgs args)
        {
            Console.Write("ezEvade loading....");

            Player.OnIssueOrder += Game_OnIssueOrder;
            Spellbook.OnCastSpell += Game_OnCastSpell;
            Game.OnUpdate += Game_OnGameUpdate;

            Obj_AI_Base.OnProcessSpellCast += Game_OnProcessSpell;

            Game.OnEnd += Game_OnGameEnd;
            SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
            Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

            menu = MainMenu.AddMenu("ezEvade", "ezEvade");
            ObjectCache.menuCache.AddMenuToCache(menu);

            Menu mainMenu = menu.AddSubMenuEx("Main", "Main");
            mainMenu.Add("DodgeSkillShots", new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
            mainMenu.Add("ActivateEvadeSpells", new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
            mainMenu.AddSeparator();
            mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
            mainMenu.Add("ChaseModeMinHP", new CheckBox("Check Ignored HP %(ChaseMode)"));
            mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots"));
            mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots"));
            mainMenu.AddSeparator();
            mainMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
            mainMenu.Add("DodgeDangerousKey", new KeyBind("Dodge Only Dangerous Key", false, KeyBind.BindTypes.HoldActive, 32));
            mainMenu.Add("DodgeDangerousKey2", new KeyBind("Dodge Only Dangerous Key 2", false, KeyBind.BindTypes.HoldActive, 'V'));
            mainMenu.AddSeparator();
            mainMenu.AddGroupLabel("Evade Mode");
            var sliderEvadeMode = mainMenu.Add("EvadeMode", new Slider("Smooth", 0, 0, 2));
            var modeArray = new[] { "Smooth", "Fastest", "Very Smooth" };
            sliderEvadeMode.DisplayName = modeArray[sliderEvadeMode.CurrentValue];
            sliderEvadeMode.OnValueChange +=
                delegate(ValueBase<int> sender, ValueBase<int>.ValueChangeArgs changeArgs)
                {
                    sender.DisplayName = modeArray[changeArgs.NewValue];
                    OnEvadeModeChange(sender, changeArgs);
                };

            spellDetector = new SpellDetector(menu);
            evadeSpell = new EvadeSpell(menu);

            Menu miscMenu = menu.AddSubMenuEx("Misc Settings", "MiscSettings");
            miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
            miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path"));
            miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement", false));
            miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay"));
            miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
            miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
            miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies", false));
            miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));

            Menu limiterMenu = menu.AddSubMenuEx("Humanizer", "Limiter");
            limiterMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", false));
            limiterMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
            limiterMenu.Add("TickLimiter", new Slider("Tick Limiter", 0, 0, 500));
            limiterMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
            limiterMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
            limiterMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));

            Menu fastEvadeMenu = menu.AddSubMenuEx("Fast Evade", "FastEvade");
            fastEvadeMenu.Add("FastMovementBlock", new CheckBox("Fast Movement Block", false));
            fastEvadeMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
            fastEvadeMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
            fastEvadeMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10));

            Menu bufferMenu = menu.AddSubMenuEx("Extra Buffers", "ExtraBuffers");
            bufferMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
            bufferMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
            bufferMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius"));
            bufferMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 0, 0, 300));
            bufferMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
            bufferMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 1000, 0, 1000));

            spellDrawer = new SpellDrawer(menu);

            var initCache = ObjectCache.myHeroCache;

            Console.WriteLine("ezEvade Loaded");
        }
Example #27
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                //devModeOn = true;

                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                AIHeroClient.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalking.BeforeAttack += Orbwalking_BeforeAttack;


                Chat.Print(devModeOn ? "<b>ezEvade: Developer Mode On</b>" : "<b>ezEvade: Loaded!</b>");

                menu = new Menu("ezEvade", "ezEvade", true);

                Menu mainMenu = new Menu("Main", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.Item("DodgeSkillShots").Permashow();
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "Use Evade Spells").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.Item("ActivateEvadeSpells").Permashow();
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(true));
                menu.AddSubMenu(mainMenu);

                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell    = new EvadeSpell(menu);

                Menu keyMenu = new Menu("Key Settings", "KeySettings");
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('V', KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "Enable Dodge Only On Combo Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "Dodge Only Combo Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DontDodgeKeyEnabled", "Enable Don't Dodge Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DontDodgeKey", "Don't Dodge Key").SetValue(new KeyBind('Z', KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("Misc Settings", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "Continue Last Movement").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Calculate Windup Delay").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "Check Spell Collision").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "Prevent Dodging Under Tower").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "Prevent Dodging Near Enemies").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "Advanced Spell Detection").SetValue(false));
                miscMenu.AddItem(new MenuItem("ClickRemove", "Allow Left Click Removal")
                                 .SetValue(true).SetTooltip("Left Click to Remove Traps and Globals"));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));
                miscMenu.AddItem(new MenuItem("EvadeMode", "Evade Profile")
                                 .SetValue(new StringList(new[] { "Smooth", "Very Smooth", "Fastest", "Hawk", "Kurisu", "GuessWho" }, 0)));
                miscMenu.Item("EvadeMode").ValueChanged += OnEvadeModeChange;
                miscMenu.AddItem(new MenuItem("ResetConfig", "Reset Evade Config").SetValue(false));

                Menu limiterMenu = new Menu("Humanizer", "Limiter");
                limiterMenu.AddItem(new MenuItem("ClickOnlyOnce", "Click Only Once").SetValue(true));
                limiterMenu.AddItem(new MenuItem("EnableEvadeDistance", "Extended Evade").SetValue(false));
                limiterMenu.AddItem(new MenuItem("TickLimiter", "Tick Limiter").SetValue(new Slider(100, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "Spell Detection Time").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("ReactionTime", "Reaction Time").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "Dodge Interval").SetValue(new Slider(0, 0, 2000)));

                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "Fast Movement Block")).SetValue(false);
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "FastEvade Activation Time").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Spell Activation Time").SetValue(new Slider(400, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(10, 0, 100)));

                miscMenu.AddSubMenu(fastEvadeMenu);

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                 * evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));
                 *
                 * miscMenu.AddSubMenu(evadeSpellSettingsMenu);*/

                Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Extra Ping Buffer").SetValue(new Slider(65, 0, 200)));
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(50, 0, 300)));

                bufferMenu.AddItem(new MenuItem("MinComfortZone", "Min Distance to Champion").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                Menu loadTestMenu = new Menu("Tests", "LoadTests");

                loadTestMenu.AddItem(new MenuItem("LoadPingTester", "Load Ping Tester").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("LoadSpellTester", "Load Spell Tester").SetValue(false));
                loadTestMenu.Item("LoadPingTester").ValueChanged  += OnLoadPingTesterChange;
                loadTestMenu.Item("LoadSpellTester").ValueChanged += OnLoadSpellTesterChange;

                miscMenu.AddSubMenu(loadTestMenu);

                menu.AddSubMenu(miscMenu);
                menu.AddToMainMenu();

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                if (devModeOn)
                {
                    var evadeTester = new Menu("ezEvade: Test", "ezEvadeTest", true);
                    var o           = new EvadeTester(evadeTester);
                    evadeTester.AddToMainMenu();
                    //Utility.DelayAction.Add(100, () => loadTestMenu.Item("LoadSpellTester").SetValue(true));
                }

                Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #28
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Obj_AI_Hero.OnIssueOrder += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate += Game_OnGameUpdate;

                Obj_AI_Hero.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalking.BeforeAttack += Orbwalking_BeforeAttack;

                menu = new Menu("ezEvade", "ezEvade", true);

                Menu mainMenu = new Menu("Main", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "Use Evade Spells").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(false));
                menu.AddSubMenu(mainMenu);

                spellDetector = new SpellDetector(menu);
                evadeSpell = new EvadeSpell(menu);

                Menu keyMenu = new Menu("Key Settings", "KeySettings");
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('P', KeyBindType.Press)));

                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyDesc", "--    Dodge Only On Combo Key    --"));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "Enable Dodge Only On Combo Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "Combo Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("Misc Settings", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "Continue Last Movement").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Calculate Windup Delay").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "Check Spell Collision").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "Prevent Dodging Under Tower").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "Prevent Dodging Near Enemies").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "Advanced Spell Detection").SetValue(false));

                Menu limiterMenu = new Menu("Humanizer", "Limiter");
                limiterMenu.AddItem(new MenuItem("TickLimiter", "Tick Limiter").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "Spell Detection Time").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "Dodge Interval").SetValue(new Slider(0, 0, 2000)));

                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "Fast Movement Block").SetValue(false));
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "FastEvade Activation Time").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Spell Activation Time").SetValue(new Slider(100, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(10, 0, 100)));

                miscMenu.AddSubMenu(fastEvadeMenu);

                Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(50, 0, 300)));

                bufferMenu.AddItem(new MenuItem("MinComfortZone", "Min Distance to Champion").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                menu.AddSubMenu(miscMenu);
                menu.AddToMainMenu();

                spellDrawer = new SpellDrawer(menu);
                var initCache = ObjectCache.myHeroCache;
                Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #29
0
        private void DodgeSkillShots()
        {
            if (!Situation.ShouldDodge())
            {
                isDodging = false;
                return;
            }

            /*
             * if (isDodging && playerInDanger == false) //serverpos test
             * {
             *  myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false);
             * }*/

            if (isDodging)
            {
                if (lastPosInfo != null)
                {
                    /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells)
                     * {
                     *  Spell spell = entry.Value;
                     *
                     *  Console.WriteLine("" + (int)(TickCount-spell.startTime));
                     * }*/


                    Vector2 lastBestPosition = lastPosInfo.position;

                    if (ObjectCache.menuCache.cache["RecalculatePosition"].GetValue <bool>())//recheck path
                    {
                        var dodgeInterval = ObjectCache.menuCache.cache["DodgeInterval"].GetValue <Slider>().Value;
                        if (lastPosInfo != null && !lastPosInfo.recalculatedPath &&
                            dodgeInterval <= EvadeUtils.TickCount - lastPosInfo.timestamp)
                        {
                            var path = myHero.Path;
                            if (path.Length > 0)
                            {
                                var movePos = path[path.Length - 1].To2D();

                                if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking
                                {
                                    var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0, false);
                                    if (posInfo.isSamePosInfo(lastPosInfo) &&
                                        posInfo.posDangerCount > lastPosInfo.posDangerCount)
                                    {
                                        var newPosInfo = EvadeHelper.GetBestPosition();
                                        if (newPosInfo.posDangerCount < posInfo.posDangerCount)
                                        {
                                            lastPosInfo = newPosInfo;
                                            CheckHeroInDanger();
                                        }
                                        else if (EvadeSpell.PreferEvadeSpell())
                                        {
                                            lastPosInfo = PositionInfo.SetAllUndodgeable();
                                        }
                                        else
                                        {
                                            lastPosInfo.recalculatedPath = true;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    EvadeCommand.MoveTo(lastBestPosition);

                    if (Game.Time * 1000 - lastIssueOrderTime < 1)
                    {
                        DelayAction.Add(0, () => EvadeCommand.MoveTo(lastBestPosition));
                    }
                }
            }
            else //if not dodging
            {
                //return;
                //Check if hero will walk into a skillshot
                var path = myHero.Path;
                if (path.Length > 0)
                {
                    var movePos = path[path.Length - 1].To2D();

                    if (EvadeHelper.CheckMovePath(movePos))
                    {
                        var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos);
                        if (posInfo != null)
                        {
                            EvadeCommand.MoveTo(posInfo.position);

                            if (Game.Time * 1000 - lastIssueOrderTime < 1)
                            {
                                DelayAction.Add(0, () => EvadeCommand.MoveTo(posInfo.position));
                            }
                        }
                        return;
                    }
                }
            }
        }
Example #30
0
        private void Game_OnGameLoad(EventArgs args)
        {
            //Console.Write("ezEvade loading....");

            try
            {
                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                Obj_AI_Base.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                Chat.Print("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade </font><font color=\"#66CCFF\" >loaded Kappa</font>");

                menu = MainMenu.AddMenu("CH汉化-EZ躲避", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                Menu mainMenu = menu.AddSubMenuEx("核心", "Main");
                mainMenu.Add("DodgeSkillShots", new KeyBind("开启躲避", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells", new KeyBind("使用技能躲避", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.AddSeparator();
                mainMenu.Add("DodgeDangerous", new CheckBox("只躲避危险技能", false));
                mainMenu.Add("ChaseModeMinHP", new CheckBox("血量% 不躲避(追击模式)"));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("探测战争迷雾的指向性技能", true));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("躲避圈形指向性技能", true));
                mainMenu.AddSeparator();
                mainMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("开启只躲避危险 按键", false));
                mainMenu.Add("DodgeDangerousKey", new KeyBind("只躲避危险的", false, KeyBind.BindTypes.HoldActive, 32));
                mainMenu.Add("DodgeDangerousKey2", new KeyBind("只躲避危险的 2", false, KeyBind.BindTypes.HoldActive, 'V'));
                mainMenu.AddSeparator();
                //   mainMenu.Add("ChaseMode.MinHP", new Slider("Chase Mode enable if my health >= (&)", 20, 0, 100));
                mainMenu.AddGroupLabel("躲避模式");
                var sliderEvadeMode = mainMenu.Add("EvadeMode", new Slider("Smooth", 0, 0, 2));
                var modeArray       = new[] { "Smooth", "Fastest", "Very Smooth" };
                sliderEvadeMode.DisplayName    = modeArray[sliderEvadeMode.CurrentValue];
                sliderEvadeMode.OnValueChange +=
                    delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs)
                {
                    sender.DisplayName = modeArray[changeArgs.NewValue];
                    OnEvadeModeChange(sender, changeArgs);
                };
                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell    = new EvadeSpell(menu);



                Menu miscMenu = menu.AddSubMenuEx("杂项设置", "MiscSettings");
                miscMenu.Add("HigherPrecision", new CheckBox("增强躲避精密度", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("重新计算路径", true));
                miscMenu.Add("ContinueMovement", new CheckBox("继续躲避前的移动", false));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("计算延迟", true));
                miscMenu.Add("CheckSpellCollision", new CheckBox("检查技能弹道阻挡", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("防止塔下躲避", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("防止在敌人附近躲避", false));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("进阶技能探测", false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));



                Menu limiterMenu = menu.AddSubMenuEx("人性化", "Limiter");
                limiterMenu.Add("ClickOnlyOnce", new CheckBox("只点击一次", false));
                limiterMenu.Add("EnableEvadeDistance", new CheckBox("延长躲避", false));
                limiterMenu.Add("TickLimiter", new Slider("点击限制", 0, 0, 500));
                limiterMenu.Add("SpellDetectionTime", new Slider("技能探测时间", 0, 0, 1000));
                limiterMenu.Add("ReactionTime", new Slider("反应时间", 0, 0, 500));
                limiterMenu.Add("DodgeInterval", new Slider("躲避间隔时间", 0, 0, 2000));

                Menu fastEvadeMenu = menu.AddSubMenuEx("快速躲避", "FastEvade");
                fastEvadeMenu.Add("FastMovementBlock", new CheckBox("阻挡快速移动", false));
                fastEvadeMenu.Add("FastEvadeActivationTime", new Slider("快速移动激活时间", 65, 0, 500));
                fastEvadeMenu.Add("SpellActivationTime", new Slider("技能激活时间", 200, 0, 1000));
                fastEvadeMenu.Add("RejectMinDistance", new Slider("碰撞缓冲距离", 10, 0, 100));

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                 * evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));
                 *
                 * miscMenu.AddSubMenuEx(evadeSpellSettingsMenu);*/

                Menu bufferMenu = menu.AddSubMenuEx("高级人性化", "ExtraBuffers");
                bufferMenu.Add("ExtraPingBuffer", new Slider("额外网络延迟缓冲", 65, 0, 200));
                bufferMenu.Add("ExtraCPADistance", new Slider("额外体积碰撞距离", 10, 0, 150));
                bufferMenu.Add("ExtraSpellRadius", new Slider("额外技能半径", 0, 0, 100));
                bufferMenu.Add("ExtraEvadeDistance", new Slider("额外躲避距离", 0, 0, 300));
                bufferMenu.Add("ExtraAvoidDistance", new Slider("额外防止距离", 50, 0, 300));
                bufferMenu.Add("MinComfortZone", new Slider("最低英雄安全范围", 1000, 0, 1000));


                //     Menu resetMenu = menu.AddSubMenuEx("Reset Config", "ResetConfig");
                //    resetMenu.Add("ResetConfig", new CheckBox("Reset Config", false));
                //     resetMenu.Add("ResetConfig200", new CheckBox("Set Patch Config", true));


                //   Menu loadTestMenu = menu.AddSubMenuEx("Tests", "LoadTests");
                //     loadTestMenu.Add("LoadPingTester", new CheckBox("Load Ping Tester", false)).OnValueChange += OnLoadPingTesterChange;
                //    loadTestMenu.Add("LoadSpellTester", new CheckBox("Load Spell Tester", false)).OnValueChange += OnLoadSpellTesterChange;

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);

                //Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                //Console.WriteLine(e);
            }
        }
Example #31
0
        private void Game_OnGameLoad(EventArgs args)
        {
            Console.Write("ezEvade loading....");

            Player.OnIssueOrder   += Game_OnIssueOrder;
            Spellbook.OnCastSpell += Game_OnCastSpell;
            Game.OnUpdate         += Game_OnGameUpdate;

            Obj_AI_Base.OnProcessSpellCast += Game_OnProcessSpell;

            Game.OnEnd += Game_OnGameEnd;
            SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
            Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

            menu = MainMenu.AddMenu("ezEvade", "ezEvade");
            ObjectCache.menuCache.AddMenuToCache(menu);

            Menu mainMenu = menu.AddSubMenuEx("Main", "Main");

            mainMenu.Add("DodgeSkillShots", new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
            mainMenu.Add("ActivateEvadeSpells", new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
            mainMenu.AddSeparator();
            mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
            mainMenu.Add("ChaseModeMinHP", new CheckBox("Check Ignored HP %(ChaseMode)"));
            mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots"));
            mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots"));
            mainMenu.AddSeparator();
            mainMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
            mainMenu.Add("DodgeDangerousKey", new KeyBind("Dodge Only Dangerous Key (Toggle)", false, KeyBind.BindTypes.PressToggle, 'Z'));
            mainMenu.Add("DodgeDangerousKey2", new KeyBind("Dodge Only Dangerous Key (Hold active)", false, KeyBind.BindTypes.HoldActive, 'V'));
            mainMenu.AddSeparator();
            mainMenu.AddGroupLabel("Evade Mode");
            var sliderEvadeMode = mainMenu.Add("EvadeMode", new Slider("Smooth", 0, 0, 2));
            var modeArray       = new[] { "Smooth", "Fastest", "Very Smooth" };

            sliderEvadeMode.DisplayName    = modeArray[sliderEvadeMode.CurrentValue];
            sliderEvadeMode.OnValueChange +=
                delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs)
            {
                sender.DisplayName = modeArray[changeArgs.NewValue];
                OnEvadeModeChange(sender, changeArgs);
            };

            spellDetector = new SpellDetector(menu);
            evadeSpell    = new EvadeSpell(menu);

            Menu miscMenu = menu.AddSubMenuEx("Misc Settings", "MiscSettings");

            miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
            miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path", true));
            miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement", true));
            miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay", true));
            miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
            miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
            miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies", true));
            miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));

            Menu limiterMenu = menu.AddSubMenuEx("Humanizer", "Limiter");

            limiterMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", true));
            limiterMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
            limiterMenu.Add("TickLimiter", new Slider("Tick Limiter", 100, 0, 500));
            limiterMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
            limiterMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
            limiterMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));

            Menu fastEvadeMenu = menu.AddSubMenuEx("Fast Evade", "FastEvade");

            fastEvadeMenu.Add("FastMovementBlock", new CheckBox("Fast Movement Block", false));
            fastEvadeMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
            fastEvadeMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
            fastEvadeMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10));

            Menu bufferMenu = menu.AddSubMenuEx("Extra Buffers", "ExtraBuffers");

            bufferMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
            bufferMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
            bufferMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius", 0, 0, 100));
            bufferMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 100, 0, 300));
            bufferMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
            bufferMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 550, 0, 1000));

            spellDrawer = new SpellDrawer(menu);

            var initCache = ObjectCache.myHeroCache;

            Console.WriteLine("ezEvade Loaded");
        }
Example #32
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Player.OnIssueOrder += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate += Game_OnGameUpdate;

                AIHeroClient.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                   "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                */

                menu = MainMenu.AddMenu("ezEvade", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                mainMenu = menu.AddSubMenu("Main", "Main");
                ObjectCache.menuCache.AddMenuToCache(mainMenu);
                mainMenu.Add("DodgeSkillShots", new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells", new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots"));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots"));

                spellDetector = new SpellDetector(menu);
                evadeSpell = new EvadeSpell(menu);

                keyMenu = menu.AddSubMenu("Key Settings", "KeySettings");
                ObjectCache.menuCache.AddMenuToCache(keyMenu);
                keyMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
                keyMenu.Add("DodgeDangerousKey", new KeyBind("Dodge Only Dangerous Key (On Hold)", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.Add("DodgeDangerousKey2", new KeyBind("Dodge Only Dangerous Key 2 (Toggle)", false, KeyBind.BindTypes.PressToggle, 'V'));
                keyMenu.AddSeparator();
                keyMenu.Add("DodgeOnlyOnComboKeyEnabled", new CheckBox("Enable Dodge Only On Combo Key", false));
                keyMenu.Add("DodgeComboKey", new KeyBind("Dodge Only Combo Key", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.AddSeparator();
                keyMenu.Add("DontDodgeKeyEnabled", new CheckBox("Enable Don't Dodge Key", false));
                keyMenu.Add("DontDodgeKey", new KeyBind("Don't Dodge Key", false, KeyBind.BindTypes.HoldActive, 'Z'));

                miscMenu = menu.AddSubMenu("Misc Settings", "MiscSettings");
                ObjectCache.menuCache.AddMenuToCache(miscMenu);
                miscMenu.AddGroupLabel("Misc : ");
                miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path"));
                miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement"));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay"));
                miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
                miscMenu.Add("DodgeCheckHP", new CheckBox("Check My Hero HP%", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies"));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Profile : ");
                miscMenu.Add("EvadeMode", new ComboBox("Evade Mode", 0, "Smooth", "Fastest", "Very Smooth", "Hawk", "Kurisu"));
                miscMenu["EvadeMode"].Cast<ComboBox>().OnValueChange += OnEvadeModeChange;
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Humanizer");
                miscMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", true));
                miscMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
                miscMenu.Add("TickLimiter", new Slider("Tick Limiter", 100, 0, 500));
                miscMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
                miscMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
                miscMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Fast Evade");
                miscMenu.Add("FastMovementBlock", new CheckBox("Fast Movement Block", false));
                miscMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
                miscMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
                miscMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10, 0, 100));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Extra Buffers");
                miscMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
                miscMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
                miscMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius", 0, 0, 100));
                miscMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 100, 0, 300));
                miscMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
                miscMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 550, 0, 1000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Tests");
                miscMenu.Add("LoadPingTester", new CheckBox("Load Ping Tester", false));
                miscMenu["LoadPingTester"].Cast<CheckBox>().OnValueChange += OnLoadPingTesterChange;

                spellDrawer = new SpellDrawer(menu);

                var initCache = ObjectCache.myHeroCache;

                Console.WriteLine("ezEvade Loaded");

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #33
0
        private void Game_OnGameLoad(EventArgs args)
        {
            //Console.Write("ezEvade loading....");

            try
            {
                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                Obj_AI_Base.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                Chat.Print("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade </font><font color=\"#66CCFF\" >loaded Kappa</font>");

                menu = MainMenu.AddMenu("ezEvade", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                Menu mainMenu = menu.AddSubMenuEx("Main", "Main");
                mainMenu.Add("DodgeSkillShots", new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells", new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.AddSeparator();
                mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
                mainMenu.Add("ChaseModeMinHP", new CheckBox("Check Ignored HP %(ChaseMode)"));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots", true));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots", true));
                mainMenu.AddSeparator();
                mainMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
                mainMenu.Add("DodgeDangerousKey", new KeyBind("Dodge Only Dangerous Key", false, KeyBind.BindTypes.HoldActive, 32));
                mainMenu.Add("DodgeDangerousKey2", new KeyBind("Dodge Only Dangerous Key 2", false, KeyBind.BindTypes.HoldActive, 'V'));
                mainMenu.AddSeparator();
                //   mainMenu.Add("ChaseMode.MinHP", new Slider("Chase Mode enable if my health >= (&)", 20, 0, 100));
                mainMenu.AddGroupLabel("Evade Mode");
                var sliderEvadeMode = mainMenu.Add("EvadeMode", new Slider("Smooth", 0, 0, 2));
                var modeArray       = new[] { "Smooth", "Fastest", "Very Smooth" };
                sliderEvadeMode.DisplayName    = modeArray[sliderEvadeMode.CurrentValue];
                sliderEvadeMode.OnValueChange +=
                    delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs changeArgs)
                {
                    sender.DisplayName = modeArray[changeArgs.NewValue];
                    OnEvadeModeChange(sender, changeArgs);
                };
                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell    = new EvadeSpell(menu);



                Menu miscMenu = menu.AddSubMenuEx("Misc Settings", "MiscSettings");
                miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path", true));
                miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement", false));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay", true));
                miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies", false));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));



                Menu limiterMenu = menu.AddSubMenuEx("Humanizer", "Limiter");
                limiterMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", false));
                limiterMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
                limiterMenu.Add("TickLimiter", new Slider("Tick Limiter", 0, 0, 500));
                limiterMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
                limiterMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
                limiterMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));

                Menu fastEvadeMenu = menu.AddSubMenuEx("Fast Evade", "FastEvade");
                fastEvadeMenu.Add("FastMovementBlock", new CheckBox("Fast Movement Block", false));
                fastEvadeMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
                fastEvadeMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
                fastEvadeMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10, 0, 100));

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                 * evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));
                 *
                 * miscMenu.AddSubMenuEx(evadeSpellSettingsMenu);*/

                Menu bufferMenu = menu.AddSubMenuEx("Extra Buffers", "ExtraBuffers");
                bufferMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
                bufferMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
                bufferMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius", 0, 0, 100));
                bufferMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 0, 0, 300));
                bufferMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
                bufferMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 1000, 0, 1000));


                //     Menu resetMenu = menu.AddSubMenuEx("Reset Config", "ResetConfig");
                //    resetMenu.Add("ResetConfig", new CheckBox("Reset Config", false));
                //     resetMenu.Add("ResetConfig200", new CheckBox("Set Patch Config", true));


                //   Menu loadTestMenu = menu.AddSubMenuEx("Tests", "LoadTests");
                //     loadTestMenu.Add("LoadPingTester", new CheckBox("Load Ping Tester", false)).OnValueChange += OnLoadPingTesterChange;
                //    loadTestMenu.Add("LoadSpellTester", new CheckBox("Load Spell Tester", false)).OnValueChange += OnLoadSpellTesterChange;

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);

                //Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                //Console.WriteLine(e);
            }
        }
Example #34
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Obj_AI_Hero.OnIssueOrder += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate += Game_OnGameUpdate;

                Obj_AI_Hero.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalking.BeforeAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                   "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                */

                menu = new Menu("ezEvade", "ezEvade", true);

                Menu mainMenu = new Menu("Main", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "Use Evade Spells").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(true));
                menu.AddSubMenu(mainMenu);

                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell = new EvadeSpell(menu);

                Menu keyMenu = new Menu("Key Settings", "KeySettings");                
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('V', KeyBindType.Press)));

                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyDesc", "--    Dodge Only On Combo Key    --"));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "Enable Dodge Only On Combo Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "Combo Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("Misc Settings", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "Continue Last Movement").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Calculate Windup Delay").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "Check Spell Collision").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "Prevent Dodging Under Tower").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "Prevent Dodging Near Enemies").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "Advanced Spell Detection").SetValue(false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

                Menu evadeModeMenu = new Menu("Mode", "EvadeModeSettings");
                evadeModeMenu.AddItem(new MenuItem("EvadeMode", "Evade Mode")
                    .SetValue(new StringList(new[] { "Smooth", "Fastest", "Very Smooth" }, 0)));
                miscMenu.AddSubMenu(evadeModeMenu);

                miscMenu.Item("EvadeMode").ValueChanged += OnEvadeModeChange;

                Menu limiterMenu = new Menu("Humanizer", "Limiter");
                limiterMenu.AddItem(new MenuItem("ClickOnlyOnce", "Click Only Once").SetValue(true));
                limiterMenu.AddItem(new MenuItem("EnableEvadeDistance", "Extended Evade").SetValue(false));            
                limiterMenu.AddItem(new MenuItem("TickLimiter", "Tick Limiter").SetValue(new Slider(100, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "Spell Detection Time").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("ReactionTime", "Reaction Time").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "Dodge Interval").SetValue(new Slider(0, 0, 2000)));
                                
                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "Fast Movement Block")).SetValue(false);
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "FastEvade Activation Time").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Spell Activation Time").SetValue(new Slider(200, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(10, 0, 100)));

                miscMenu.AddSubMenu(fastEvadeMenu);

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));

                miscMenu.AddSubMenu(evadeSpellSettingsMenu);*/

                Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Extra Ping Buffer").SetValue(new Slider(65, 0, 200)));
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(50, 0, 300)));

                bufferMenu.AddItem(new MenuItem("MinComfortZone", "Min Distance to Champion").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                Menu resetMenu = new Menu("Reset Config", "ResetConfig");
                resetMenu.AddItem(new MenuItem("ResetConfig", "Reset Config").SetValue(false));
                resetMenu.AddItem(new MenuItem("ResetConfig200", "Set Patch Config").SetValue(true));

                miscMenu.AddSubMenu(resetMenu);

                Menu loadTestMenu = new Menu("Tests", "LoadTests");

                loadTestMenu.AddItem(new MenuItem("LoadPingTester", "Load Ping Tester").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("LoadSpellTester", "Load Spell Tester").SetValue(false));
                loadTestMenu.Item("LoadPingTester").ValueChanged += OnLoadPingTesterChange;
                loadTestMenu.Item("LoadSpellTester").ValueChanged += OnLoadSpellTesterChange;

                miscMenu.AddSubMenu(loadTestMenu);

                menu.AddSubMenu(miscMenu);
                menu.AddToMainMenu();

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);

                Console.WriteLine("ezEvade Loaded");

            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #35
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                AIHeroClient.OnSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalking.BeforeAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                 * "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                 */

                menu = new Menu("ezEvade", "ezEvade", true);

                Menu mainMenu = new Menu("Main", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "Dodge SkillShots").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "Use Evade Spells").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "Dodge Only Dangerous").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "Dodge FOW SkillShots").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "Dodge Circular SkillShots").SetValue(true));
                menu.AddSubMenu(mainMenu);

                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell    = new EvadeSpell(menu);

                Menu keyMenu = new Menu("Key Settings", "KeySettings");
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "Enable Dodge Only Dangerous Keys").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "Dodge Only Dangerous Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "Dodge Only Dangerous Key 2").SetValue(new KeyBind('V', KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "Enable Dodge Only On Combo Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "Dodge Only Combo Key").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DontDodgeKeyEnabled", "Enable Don't Dodge Key").SetValue(false));
                keyMenu.AddItem(new MenuItem("DontDodgeKey", "Don't Dodge Key").SetValue(new KeyBind('Z', KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("Misc Settings", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "Enhanced Dodge Precision").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "Recalculate Path").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "Continue Last Movement").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "Calculate Windup Delay").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "Check Spell Collision").SetValue(false));
                miscMenu.AddItem(new MenuItem("DodgeCheckHP", "Check My Hero HP%").SetValue(false)).SetTooltip("Enabling this will check if above X HP % and ignore spells.");
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "Prevent Dodging Under Tower").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "Prevent Dodging Near Enemies").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "Advanced Spell Detection").SetValue(false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

                Menu evadeModeMenu = new Menu("Mode", "EvadeModeSettings");
                evadeModeMenu.AddItem(new MenuItem("EvadeMode", "Evade Profile")
                                      .SetValue(new StringList(new[] { "Smooth", "Fastest", "Very Smooth", "Hawk", "Kurisu" }, 0)));
                miscMenu.AddSubMenu(evadeModeMenu);

                miscMenu.Item("EvadeMode").ValueChanged += OnEvadeModeChange;

                Menu limiterMenu = new Menu("Humanizer", "Limiter");
                limiterMenu.AddItem(new MenuItem("ClickOnlyOnce", "Click Only Once").SetValue(true));
                limiterMenu.AddItem(new MenuItem("EnableEvadeDistance", "Extended Evade").SetValue(false));
                limiterMenu.AddItem(new MenuItem("TickLimiter", "Tick Limiter").SetValue(new Slider(100, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "Spell Detection Time").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("ReactionTime", "Reaction Time").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "Dodge Interval").SetValue(new Slider(0, 0, 2000)));

                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("Fast Evade", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "Fast Movement Block")).SetValue(false);
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "FastEvade Activation Time").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "Spell Activation Time").SetValue(new Slider(200, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "Collision Distance Buffer").SetValue(new Slider(10, 0, 100)));

                miscMenu.AddSubMenu(fastEvadeMenu);

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                 * evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));
                 *
                 * miscMenu.AddSubMenu(evadeSpellSettingsMenu);*/

                Menu bufferMenu = new Menu("Extra Buffers", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "Extra Ping Buffer").SetValue(new Slider(65, 0, 200)));
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "Extra Collision Distance").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "Extra Spell Radius").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "Extra Evade Distance").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "Extra Avoid Distance").SetValue(new Slider(50, 0, 300)));

                bufferMenu.AddItem(new MenuItem("MinComfortZone", "Min Distance to Champion").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                Menu resetMenu = new Menu("Reset Config", "ResetConfig");
                resetMenu.AddItem(new MenuItem("ResetConfig", "Reset Config").SetValue(false));
                resetMenu.AddItem(new MenuItem("ResetConfig200", "Set Patch Config").SetValue(true));

                miscMenu.AddSubMenu(resetMenu);

                Menu loadTestMenu = new Menu("Tests", "LoadTests");

                loadTestMenu.AddItem(new MenuItem("LoadPingTester", "Load Ping Tester").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("LoadSpellTester", "Load Spell Tester").SetValue(false));
                loadTestMenu.Item("LoadPingTester").ValueChanged  += OnLoadPingTesterChange;
                loadTestMenu.Item("LoadSpellTester").ValueChanged += OnLoadSpellTesterChange;

                miscMenu.AddSubMenu(loadTestMenu);

                menu.AddSubMenu(miscMenu);
                menu.AddToMainMenu();

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);
                //Utility.DelayAction.Add(100, () => loadTestMenu.Item("LoadSpellTester").SetValue(true));

                Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Example #36
0
        private void Game_OnGameLoad(EventArgs args)
        {
            //Console.Write("ezEvade loading....");

            try
            {
                Player.OnIssueOrder += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate += Game_OnGameUpdate;

                AIHeroClient.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                   "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                */

                menu = MainMenu.AddMenu("ezEvade", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                Menu mainMenu = menu.AddSubMenuEx("Main", "Main");
                mainMenu.Add("DodgeSkillShots",
                    new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells",
                    new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots", true));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots", true));

                //var keyBind = mainMenu.Item("DodgeSkillShots").GetValue<KeyBind>();
                //mainMenu.Item("DodgeSkillShots").SetValue(new KeyBind(keyBind.Key, KeyBindType.Toggle, true));

                spellDetector = new SpellDetector(menu);
                evadeSpell = new EvadeSpell(menu);

                Menu keyMenu = menu.AddSubMenuEx("Key Settings", "KeySettings");
                keyMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
                keyMenu.Add("DodgeDangerousKey",
                    new KeyBind("Dodge Only Dangerous Key", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.Add("DodgeDangerousKey2",
                    new KeyBind("Dodge Only Dangerous Key 2", false, KeyBind.BindTypes.HoldActive, 'V'));

                Menu miscMenu = menu.AddSubMenuEx("Misc Settings", "MiscSettings");
                miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path", true));
                miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement", true));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay", true));
                miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies", false));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));

                Menu evadeModeMenu = menu.AddSubMenuEx("Mode", "EvadeModeSettings");
                evadeModeMenu.AddGroupLabel("Evade Mode");
                var sliderEvadeMode = evadeModeMenu.Add("EvadeMode", new Slider("Smooth", 0, 0, 2));
                var modeArray = new[] { "Smooth", "Fastest", "Very Smooth" };
                sliderEvadeMode.DisplayName = modeArray[sliderEvadeMode.CurrentValue];
                sliderEvadeMode.OnValueChange +=
                    delegate(ValueBase<int> sender, ValueBase<int>.ValueChangeArgs changeArgs)
                    {
                        sender.DisplayName = modeArray[changeArgs.NewValue];
                        OnEvadeModeChange(sender, changeArgs);
                    };

                Menu limiterMenu = menu.AddSubMenuEx("Humanizer", "Limiter");
                limiterMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", true));
                limiterMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
                limiterMenu.Add("TickLimiter", new Slider("Tick Limiter", 100, 0, 500));
                limiterMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
                limiterMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
                limiterMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));

                Menu fastEvadeMenu = menu.AddSubMenuEx("Fast Evade", "FastEvade");
                fastEvadeMenu.Add("FastMovementBlock", new CheckBox("EFast Movement Block", false));
                fastEvadeMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
                fastEvadeMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
                fastEvadeMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10, 0, 100));

                /*Menu evadeSpellSettingsMenu = new Menu("Evade Spell", "EvadeSpellMisc");
                evadeSpellSettingsMenu.AddItem(new MenuItem("EvadeSpellActivationTime", "Evade Spell Activation Time").SetValue(new Slider(150, 0, 500)));

                miscMenu.AddSubMenuEx(evadeSpellSettingsMenu);*/

                Menu bufferMenu = menu.AddSubMenuEx("Extra Buffers", "ExtraBuffers");
                bufferMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
                bufferMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
                bufferMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius", 0, 0, 100));
                bufferMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 100, 0, 300));
                bufferMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
                bufferMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 550, 0, 1000));

                Menu resetMenu = menu.AddSubMenuEx("Reset Config", "ResetConfig");
                resetMenu.Add("ResetConfig", new CheckBox("Reset Config", false));
                resetMenu.Add("ResetConfig200", new CheckBox("Set Patch Config", true));

                Menu loadTestMenu = menu.AddSubMenuEx("Tests", "LoadTests");
                loadTestMenu.Add("LoadPingTester", new CheckBox("Load Ping Tester", false)).OnValueChange += OnLoadPingTesterChange;
                loadTestMenu.Add("LoadSpellTester", new CheckBox("Load Spell Tester", false)).OnValueChange += OnLoadSpellTesterChange;

                spellDrawer = new SpellDrawer(menu);

                //autoSetPing = new AutoSetPing(menu);

                var initCache = ObjectCache.myHeroCache;

                //evadeTester = new EvadeTester(menu);

                //Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                //Console.WriteLine(e);
            }
        }
Example #37
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                Player.OnIssueOrder   += Game_OnIssueOrder;
                Spellbook.OnCastSpell += Game_OnCastSpell;
                Game.OnUpdate         += Game_OnGameUpdate;

                AIHeroClient.OnProcessSpellCast += Game_OnProcessSpell;

                Game.OnEnd += Game_OnGameEnd;
                SpellDetector.OnProcessDetectedSpells += SpellDetector_OnProcessDetectedSpells;
                Orbwalker.OnPreAttack += Orbwalking_BeforeAttack;

                /*Console.WriteLine("<font color=\"#66CCFF\" >Yomie's </font><font color=\"#CCFFFF\" >ezEvade</font> - " +
                 * "<font color=\"#FFFFFF\" >Version " + Assembly.GetExecutingAssembly().GetName().Version + "</font>");
                 */

                menu = MainMenu.AddMenu("ezEvade", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                mainMenu = menu.AddSubMenu("Main", "Main");
                ObjectCache.menuCache.AddMenuToCache(mainMenu);
                mainMenu.Add("DodgeSkillShots", new KeyBind("Dodge SkillShots", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells", new KeyBind("Use Evade Spells", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("DodgeDangerous", new CheckBox("Dodge Only Dangerous", false));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("Dodge FOW SkillShots"));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("Dodge Circular SkillShots"));

                spellDetector = new SpellDetector(menu);
                evadeSpell    = new EvadeSpell(menu);

                keyMenu = menu.AddSubMenu("Key Settings", "KeySettings");
                ObjectCache.menuCache.AddMenuToCache(keyMenu);
                keyMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("Enable Dodge Only Dangerous Keys", false));
                keyMenu.Add("DodgeDangerousKey", new KeyBind("Dodge Only Dangerous Key (On Hold)", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.Add("DodgeDangerousKey2", new KeyBind("Dodge Only Dangerous Key 2 (Toggle)", false, KeyBind.BindTypes.PressToggle, 'V'));
                keyMenu.AddSeparator();
                keyMenu.Add("DodgeOnlyOnComboKeyEnabled", new CheckBox("Enable Dodge Only On Combo Key", false));
                keyMenu.Add("DodgeComboKey", new KeyBind("Dodge Only Combo Key", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.AddSeparator();
                keyMenu.Add("DontDodgeKeyEnabled", new CheckBox("Enable Don't Dodge Key", false));
                keyMenu.Add("DontDodgeKey", new KeyBind("Don't Dodge Key", false, KeyBind.BindTypes.HoldActive, 'Z'));

                miscMenu = menu.AddSubMenu("Misc Settings", "MiscSettings");
                ObjectCache.menuCache.AddMenuToCache(miscMenu);
                miscMenu.AddGroupLabel("Misc : ");
                miscMenu.Add("HigherPrecision", new CheckBox("Enhanced Dodge Precision", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("Recalculate Path"));
                miscMenu.Add("ContinueMovement", new CheckBox("Continue Last Movement"));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("Calculate Windup Delay"));
                miscMenu.Add("CheckSpellCollision", new CheckBox("Check Spell Collision", false));
                miscMenu.Add("DodgeCheckHP", new CheckBox("Check My Hero HP%", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("Prevent Dodging Under Tower", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("Prevent Dodging Near Enemies"));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("Advanced Spell Detection", false));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Profile : ");
                miscMenu.Add("EvadeMode", new ComboBox("Evade Mode", 0, "Smooth", "Fastest", "Very Smooth", "Hawk", "Kurisu"));
                miscMenu["EvadeMode"].Cast <ComboBox>().OnValueChange += OnEvadeModeChange;
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Humanizer");
                miscMenu.Add("ClickOnlyOnce", new CheckBox("Click Only Once", true));
                miscMenu.Add("EnableEvadeDistance", new CheckBox("Extended Evade", false));
                miscMenu.Add("TickLimiter", new Slider("Tick Limiter", 100, 0, 500));
                miscMenu.Add("SpellDetectionTime", new Slider("Spell Detection Time", 0, 0, 1000));
                miscMenu.Add("ReactionTime", new Slider("Reaction Time", 0, 0, 500));
                miscMenu.Add("DodgeInterval", new Slider("Dodge Interval", 0, 0, 2000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Fast Evade");
                miscMenu.Add("FastMovementBlock", new CheckBox("Fast Movement Block", false));
                miscMenu.Add("FastEvadeActivationTime", new Slider("FastEvade Activation Time", 65, 0, 500));
                miscMenu.Add("SpellActivationTime", new Slider("Spell Activation Time", 200, 0, 1000));
                miscMenu.Add("RejectMinDistance", new Slider("Collision Distance Buffer", 10, 0, 100));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Extra Buffers");
                miscMenu.Add("ExtraPingBuffer", new Slider("Extra Ping Buffer", 65, 0, 200));
                miscMenu.Add("ExtraCPADistance", new Slider("Extra Collision Distance", 10, 0, 150));
                miscMenu.Add("ExtraSpellRadius", new Slider("Extra Spell Radius", 0, 0, 100));
                miscMenu.Add("ExtraEvadeDistance", new Slider("Extra Evade Distance", 100, 0, 300));
                miscMenu.Add("ExtraAvoidDistance", new Slider("Extra Avoid Distance", 50, 0, 300));
                miscMenu.Add("MinComfortZone", new Slider("Min Distance to Champion", 550, 0, 1000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("Tests");
                miscMenu.Add("LoadPingTester", new CheckBox("Load Ping Tester", false));
                miscMenu["LoadPingTester"].Cast <CheckBox>().OnValueChange += OnLoadPingTesterChange;

                spellDrawer = new SpellDrawer(menu);

                var initCache = ObjectCache.myHeroCache;

                Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }