Exemplo n.º 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);
            }
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        private void Drawing_OnDraw(EventArgs args)
        {
            foreach (var spell in SpellDetector.drawSpells.Values)
            {
                Vector2 spellPos = spell.currentSpellPosition;

                if (spell.heroID == myHero.NetworkId)
                {
                    if (spell.spellType == SpellType.Line)
                    {
                        if (spellPos.Distance(myHero) <= myHero.BoundingRadius + spell.radius &&
                            EvadeUtils.TickCount - spell.startTime > spell.info.spellDelay &&
                            spell.startPos.Distance(myHero) < spell.info.range)
                        {
                            Draw.RenderObjects.Add(new Draw.RenderCircle(spellPos, 1000, Color.Red,
                                                                         (int)spell.radius, 10));
                            DelayAction.Add(1, () => SpellDetector.DeleteSpell(spell.spellID));
                        }
                        else
                        {
                            Render.Circle.DrawCircle(new Vector3(spellPos.X, spellPos.Y, myHero.Position.Z), (int)spell.radius, Color.White, 5);
                        }
                    }
                    else if (spell.spellType == SpellType.Circular)
                    {
                        if (EvadeUtils.TickCount - spell.startTime >= spell.endTime - spell.startTime)
                        {
                            if (myHero.ServerPosition.To2D().InSkillShot(spell, myHero.BoundingRadius))
                            {
                                Draw.RenderObjects.Add(new Draw.RenderCircle(spellPos, 1000, Color.Red, (int)spell.radius, 5));
                                DelayAction.Add(1, () => SpellDetector.DeleteSpell(spell.spellID));
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
        private static void ProcessSpell_LuluQ(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData,
                                               SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.spellName == "LuluQ")
            {
                foreach (KeyValuePair <int, ObjectTrackerInfo> entry in objTracker)
                {
                    var info = entry.Value;

                    if (entry.Value.Name == "RobotBuddy")
                    {
                        if (info.obj == null || !info.obj.IsValid || info.obj.IsDead || info.obj.IsVisible)
                        {
                            continue;
                        }
                        else
                        {
                            Vector3 endPos2 = info.obj.Position.Extend(args.End, spellData.range);
                            SpellDetector.CreateSpellData(hero, info.obj.Position, endPos2, spellData, null, 0, false);
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        private static void OnCreateObj_ViktorDeathRay3(GameObject obj, EventArgs args)
        {
            if (!obj.IsValid <MissileClient>())
            {
                return;
            }

            MissileClient missile = (MissileClient)obj;

            SpellData spellData;

            if (missile.SpellCaster != null && missile.SpellCaster.Team != myHero.Team &&
                missile.SData.Name != null && missile.SData.Name == "viktoreaugmissile" &&
                SpellDetector.onMissileSpells.TryGetValue("ViktorDeathRay3", out spellData) &&
                missile.StartPosition != null && missile.EndPosition != null)
            {
                var missileDist = missile.EndPosition.To2D().Distance(missile.StartPosition.To2D());
                var delay       = missileDist / 1.5f + 600;

                spellData.spellDelay = delay;

                SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData);
            }
        }
Exemplo n.º 6
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);
            }
        }
Exemplo n.º 7
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);
            }
        }
Exemplo n.º 8
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");
        }
Exemplo n.º 9
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);
            }
        }
Exemplo n.º 10
0
        private void Game_OnGameLoad(EventArgs args)
        {
            try
            {
                devModeOn = true;

                EloBuddy.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;

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

                Chat.Print("<font size='27'>[ezEvade]&#x4F5C;&#x8005;</font> <font color='#E6CAFF'>By: Kurisu</font>");
                Chat.Print("<font size='27'>[ezEvade]&#x4F5C;&#x8005;</font> <font color='#E6CAFF'>By: Soulcaliber</font>");

                menu = new Menu("ezEvade \u4e2d\u6587\u7248", "ezEvade", true);

                Menu mainMenu = new Menu("\u4e3b\u83dc\u55ae", "Main");
                mainMenu.AddItem(new MenuItem("DodgeSkillShots", "\u8eb2\u907f\u6280\u80fd").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.Item("DodgeSkillShots").Permashow();
                mainMenu.AddItem(new MenuItem("ActivateEvadeSpells", "\u4f7f\u7528\u6280\u80fd \u8eb2\u907f").SetValue(new KeyBind('K', KeyBindType.Toggle, true)));
                mainMenu.Item("ActivateEvadeSpells").Permashow();
                mainMenu.AddItem(new MenuItem("DodgeDangerous", "\u53ea\u8eb2\u907f\u5371\u96aa \u6280\u80fd").SetValue(false));
                mainMenu.AddItem(new MenuItem("DodgeFOWSpells", "\u8eb2\u907f \u6230\u722d\u8ff7\u9727 \u4e2d\u7684\u6280\u80fd").SetValue(true));
                mainMenu.AddItem(new MenuItem("DodgeCircularSpells", "\u8eb2\u907f\u5713\u5f62\u6280\u80fd").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("\u6309\u9375 \u8a2d\u7f6e", "KeySettings");
                keyMenu.AddItem(new MenuItem("DodgeDangerousKeyEnabled", "\u555f\u52d5 \u5371\u96aa\u6280\u80fd\u6309\u9375 \u529f\u80fd").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey", "\u53ea\u9583\u8eb2\u5371\u96aa\u6280\u80fd\u7684 \u6309\u9375").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeDangerousKey2", "\u53ea\u9583\u8eb2\u5371\u96aa\u6280\u80fd\u7684 \u6309\u9375 2").SetValue(new KeyBind('V', KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DodgeOnlyOnComboKeyEnabled", "\u555f\u52d5 \u8eb2\u907f\u53ea\u5728\u9023\u62db \u529f\u80fd").SetValue(false));
                keyMenu.AddItem(new MenuItem("DodgeComboKey", "\u53ea\u5728\u9023\u62db\u4e2d\u8eb2\u907f \u6309\u9375").SetValue(new KeyBind(32, KeyBindType.Press)));
                keyMenu.AddItem(new MenuItem("DontDodgeKeyEnabled", "\u555f\u52d5 \u4e0d\u8981\u8eb2\u907f \u529f\u80fd").SetValue(false));
                keyMenu.AddItem(new MenuItem("DontDodgeKey", "\u4e0d\u8981\u8eb2\u907f \u6309\u9375").SetValue(new KeyBind('Z', KeyBindType.Press)));
                menu.AddSubMenu(keyMenu);

                Menu miscMenu = new Menu("\u5176\u4ed6 \u8a2d\u5b9a", "MiscSettings");
                miscMenu.AddItem(new MenuItem("HigherPrecision", "\u63d0\u9ad8 \u8eb2\u907f \u6e96\u78ba\u5ea6").SetValue(false));
                miscMenu.AddItem(new MenuItem("RecalculatePosition", "\u91cd\u65b0\u8a08\u7b97 \u8def\u5f91").SetValue(true));
                miscMenu.AddItem(new MenuItem("ContinueMovement", "\u5ef6\u7e8c\u6700\u5f8c\u7684 \u79fb\u52d5").SetValue(true));
                miscMenu.AddItem(new MenuItem("CalculateWindupDelay", "\u8a08\u7b97 \u666e\u653b\u52d5\u756b \u5ef6\u9072").SetValue(true));
                miscMenu.AddItem(new MenuItem("CheckSpellCollision", "\u6aa2\u67e5\u6280\u80fd \u78b0\u649e").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingUnderTower", "\u907f\u514d\u8eb2\u907f\u5230 \u9632\u79a6\u5854\u4e0b").SetValue(false));
                miscMenu.AddItem(new MenuItem("PreventDodgingNearEnemy", "\u907f\u514d\u56e0\u8eb2\u907f \u63a5\u8fd1\u6575\u4eba").SetValue(true));
                miscMenu.AddItem(new MenuItem("AdvancedSpellDetection", "\u9ad8\u7d1a\u6cd5\u8853 \u6aa2\u6e2c").SetValue(false));
                //miscMenu.AddItem(new MenuItem("AllowCrossing", "Allow Crossing").SetValue(false));
                //miscMenu.AddItem(new MenuItem("CalculateHeroPos", "Calculate Hero Position").SetValue(false));
                miscMenu.AddItem(new MenuItem("ResetConfig", "\u91cd\u7f6e \u8eb2\u907f \u8a2d\u5b9a").SetValue(false));
                miscMenu.AddItem(new MenuItem("EvadeMode", "\u8eb2\u907f \u6a21\u5f0f")
                                 .SetValue(new StringList(new[] { "\u9806\u66a2", "\u975e\u5e38\u9806\u66a2", "\u6700\u5feb\u8eb2\u907f", "Hawk \u6a21\u5f0f", "Kurisu \u6a21\u5f0f", "GuessWho \u6a21\u5f0f" }, 0)));
                miscMenu.Item("EvadeMode").ValueChanged += OnEvadeModeChange;

                Menu limiterMenu = new Menu("\u4eba\u6027\u5316\u8a2d\u5b9a", "Limiter");
                limiterMenu.AddItem(new MenuItem("ClickOnlyOnce", "\u53ea\u9ede\u64ca\u4e00\u6b21").SetValue(true));
                limiterMenu.AddItem(new MenuItem("EnableEvadeDistance", "\u555f\u52d5\u8eb2\u907f \u8ddd\u96e2").SetValue(false));
                limiterMenu.AddItem(new MenuItem("TickLimiter", "\u6642\u9593 \u9650\u5236\u5668").SetValue(new Slider(100, 0, 500)));
                limiterMenu.AddItem(new MenuItem("SpellDetectionTime", "\u6aa2\u6e2c \u6280\u80fd \u6642\u9593").SetValue(new Slider(0, 0, 1000)));
                limiterMenu.AddItem(new MenuItem("ReactionTime", "\u53cd\u61c9 \u6642\u9593").SetValue(new Slider(0, 0, 500)));
                limiterMenu.AddItem(new MenuItem("DodgeInterval", "\u8eb2\u907f \u9593\u9694").SetValue(new Slider(0, 0, 2000)));
                limiterMenu.AddItem(new MenuItem("L11", "\u6642\u9593 (1000 = 1\u79d2) \u6beb\u79d2\u8a08\u7b97 | \u8eb2\u907f \u4e00\u500b \u6280\u80fd\u6642\u9593"));
                limiterMenu.AddItem(new MenuItem("L12", "\u9593\u9694 (1000 = 1\u79d2) \u6beb\u79d2\u8a08\u7b97 | \u8eb2\u907f \u4e0b\u4e00\u6b21 \u7684\u6280\u80fd \u9593\u9694\u6642\u9593"));
                limiterMenu.AddItem(new MenuItem("L13", "\u6aa2\u6e2c (1000 = 1\u79d2) \u6beb\u79d2\u8a08\u7b97 | \u9810\u5148\u6aa2\u67e5\u6575\u4eba \u6280\u80fd\u4f4d\u7f6e \u6642\u9593"));
                limiterMenu.AddItem(new MenuItem("L14", "\u9650\u5236\u5668 (500 = 0.5) \u6beb\u79d2\u8a08\u7b97 | \u9650\u5236\u59b3\u5728\u8207 \u81ea\u52d5\u8eb2\u907f\u6642 \u53cd\u61c9\u6642\u9593"));
                miscMenu.AddSubMenu(limiterMenu);

                Menu fastEvadeMenu = new Menu("\u5feb\u901f\u8eb2\u907f\u8a2d\u5b9a", "FastEvade");
                fastEvadeMenu.AddItem(new MenuItem("FastMovementBlock", "\u555f\u52d5 \u53ef\u4ee5\u5de6\u9375 \u963b\u6b62\u79fb\u52d5")).SetValue(false);
                fastEvadeMenu.AddItem(new MenuItem("FastEvadeActivationTime", "\u5feb\u901f\u8eb2\u907f \u6fc0\u6d3b \u6642\u9593").SetValue(new Slider(65, 0, 500)));
                fastEvadeMenu.AddItem(new MenuItem("SpellActivationTime", "\u6280\u80fd \u6fc0\u6d3b \u6642\u9593").SetValue(new Slider(400, 0, 1000)));
                fastEvadeMenu.AddItem(new MenuItem("RejectMinDistance", "\u78b0\u649e \u8ddd\u96e2 \u7de9\u885d").SetValue(new Slider(10, 0, 100)));
                fastEvadeMenu.AddItem(new MenuItem("F11", "\u6642\u9593 (1000 = 1 \u79d2) \u6beb\u79d2\u8a08\u7b97"));
                fastEvadeMenu.AddItem(new MenuItem("F12", "\u8ddd\u96e2\u7de9\u885d (\u8207\u6575\u65b9\u6700\u4f4e\u8ddd\u96e2)"));
                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("\u984d\u5916\u7de9\u885d\u8a2d\u5b9a", "ExtraBuffers");
                bufferMenu.AddItem(new MenuItem("ExtraPingBuffer", "\u984d\u5916 Ping \u7de9\u885d").SetValue(new Slider(65, 0, 200)));
                bufferMenu.AddItem(new MenuItem("ExtraCPADistance", "\u984d\u5916 \u78b0\u649e \u8ddd\u96e2").SetValue(new Slider(10, 0, 150)));
                bufferMenu.AddItem(new MenuItem("ExtraSpellRadius", "\u984d\u5916 \u6280\u80fd \u534a\u5f91").SetValue(new Slider(0, 0, 100)));
                bufferMenu.AddItem(new MenuItem("ExtraEvadeDistance", "\u984d\u5916 \u8eb2\u907f \u8ddd\u96e2").SetValue(new Slider(100, 0, 300)));
                bufferMenu.AddItem(new MenuItem("ExtraAvoidDistance", "\u984d\u5916 \u8ff4\u907f \u8ddd\u96e2").SetValue(new Slider(50, 0, 300)));
                bufferMenu.AddItem(new MenuItem("MinComfortZone", "\u6700\u4f4e \u8ddd\u96e2 \u8207 \u82f1\u96c4").SetValue(new Slider(550, 0, 1000)));

                miscMenu.AddSubMenu(bufferMenu);

                Menu loadTestMenu = new Menu("\u6e2c\u8a66\u6a21\u5f0f\u8a2d\u5b9a", "LoadTests");

                loadTestMenu.AddItem(new MenuItem("LoadPingTester", "\u6ce8\u5165 Ping \u6e2c\u8a66").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("LoadSpellTester", "\u6ce8\u5165 \u6280\u80fd \u6e2c\u8a66").SetValue(false));
                loadTestMenu.AddItem(new MenuItem("Load11", "\u6c92\u4e8b\u7684\u4eba\u8acb\u4e0d\u8981\u96a8\u610f\u4e82\u958b"));
                loadTestMenu.AddItem(new MenuItem("Load12", "\u9664\u975e\u59b3\u6703\u770b\u4ee3\u78bc\u80fd\u5920\u5e6b\u52a9\u6211\u7684\u4eba\u60f3\u66f4\u597d\u7684\u8eb2\u907f\u5728\u6253\u958b"));
                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);
                //LeagueSharp.Common.Utility.DelayAction.Add(100, () => loadTestMenu.Item("LoadSpellTester").SetValue(true));

                Console.WriteLine("ezEvade Loaded");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemplo n.º 11
0
        private void Drawing_OnDraw(EventArgs args)
        {
            //PrintTimers();

            //EvadeHelper.GetBestPositionTest();

            var path = myHero.Path;

            if (path.Length > 0)
            {
                var heroPos2 = path[path.Length - 1].To2D();//EvadeHelper.GetRealHeroPos();

                Render.Circle.DrawCircle(new Vector3(heroPos2.X, heroPos2.Y, myHero.ServerPosition.Z), myHero.BoundingRadius, Color.White, 3);
                //Render.Circle.DrawCircle(new Vector3(myHero.ServerPosition.X, myHero.ServerPosition.Y, myHero.ServerPosition.Z), myHero.BoundingRadius, Color.White, 3);
                Render.Circle.DrawCircle(new Vector3(circleRenderPos.X, circleRenderPos.Y, myHero.ServerPosition.Z), 10, Color.Red, 3);
            }

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

                if (spell.info.spellType == SpellType.Line)
                {
                    Vector2 spellPos = SpellDetector.GetCurrentSpellPosition(spell);

                    Render.Circle.DrawCircle(new Vector3(spellPos.X, spellPos.Y, myHero.Position.Z), spell.info.radius, Color.White, 3);

                    /*spellPos = spellPos + spell.direction * spell.info.projectileSpeed * (60 / 1000); //move the spellPos by 50 miliseconds forwards
                     * spellPos = spellPos + spell.direction * 200; //move the spellPos by 50 units forwards
                     *
                     * Render.Circle.DrawCircle(new Vector3(spellPos.X, spellPos.Y, myHero.Position.Z), spell.info.radius, Color.White, 3);*/
                }
            }

            if (testMenu.Item("DrawHeroPos").GetValue <bool>())
            {
                Render.Circle.DrawCircle(new Vector3(myHero.ServerPosition.X, myHero.ServerPosition.Y, myHero.ServerPosition.Z), myHero.BoundingRadius, Color.White, 3);
            }

            if (testMenu.Item("TestPath").GetValue <bool>())
            {
                var     tPath     = myHero.GetPath(Game.CursorPos);
                Vector2 lastPoint = Vector2.Zero;

                foreach (Vector3 point in tPath)
                {
                    var point2D = point.To2D();
                    Render.Circle.DrawCircle(new Vector3(point.X, point.Y, point.Z), myHero.BoundingRadius, Color.Violet, 3);

                    lastPoint = point2D;
                }
            }

            if (testMenu.Item("TestPath").GetValue <bool>())
            {
                var     tPath     = myHero.GetPath(Game.CursorPos);
                Vector2 lastPoint = Vector2.Zero;

                foreach (Vector3 point in tPath)
                {
                    var point2D = point.To2D();
                    Render.Circle.DrawCircle(new Vector3(point.X, point.Y, point.Z), myHero.BoundingRadius, Color.Violet, 3);

                    lastPoint = point2D;
                }
            }

            if (testMenu.Item("TestWall").GetValue <bool>())
            {
                foreach (var posInfo in sortedBestPos)
                {
                    var posOnScreen = Drawing.WorldToScreen(posInfo.position.To3D());
                    //Drawing.DrawText(posOnScreen.X, posOnScreen.Y, Color.Aqua, "" + (int)posInfo.closestDistance);

                    if (!posInfo.rejectPosition)
                    {
                        Drawing.DrawText(posOnScreen.X, posOnScreen.Y, Color.Aqua, "" + (int)posInfo.closestDistance);
                    }

                    /*if (posInfo.posDangerCount <= 0)
                     * {
                     *  var pos = posInfo.position;
                     *  Render.Circle.DrawCircle(new Vector3(pos.X, pos.Y, myHero.Position.Z), (float)25, Color.White, 3);
                     * }*/
                }
            }
        }
Exemplo n.º 12
0
        public static PositionInfo GetBestPositionDash(EvadeSpellData spell)
        {
            int posChecked    = 0;
            int maxPosToCheck = 100;
            int posRadius     = 50;
            int radiusIndex   = 0;

            var extraDelayBuffer   = ObjectCache.menuCache.cache["ExtraPingBuffer"].Cast <Slider>().CurrentValue;
            var extraEvadeDistance = 100;// Evade.menu.SubMenu("MiscSettings").SubMenu("ExtraBuffers").Item("ExtraEvadeDistance").GetValue<Slider>().Value;
            var extraDist          = ObjectCache.menuCache.cache["ExtraCPADistance"].Cast <Slider>().CurrentValue;

            Vector2 heroPoint   = ObjectCache.myHeroCache.serverPos2DPing;
            Vector2 lastMovePos = Game.CursorPos.LSTo2D();

            List <PositionInfo> posTable  = new List <PositionInfo>();
            List <int>          spellList = SpellDetector.GetSpellList();

            int minDistance = 50; //Math.Min(spell.range, minDistance)
            int maxDistance = int.MaxValue;

            if (spell.fixedRange)
            {
                minDistance = maxDistance = (int)spell.range;
            }

            while (posChecked < maxPosToCheck)
            {
                radiusIndex++;

                int curRadius       = radiusIndex * (2 * posRadius) + (minDistance - 2 * posRadius);
                int curCircleChecks = (int)Math.Ceiling((2 * Math.PI * (double)curRadius) / (2 * (double)posRadius));

                for (int i = 1; i < curCircleChecks; i++)
                {
                    posChecked++;
                    var cRadians = (2 * Math.PI / (curCircleChecks - 1)) * i; //check decimals
                    var pos      = new Vector2((float)Math.Floor(heroPoint.X + curRadius * Math.Cos(cRadians)), (float)Math.Floor(heroPoint.Y + curRadius * Math.Sin(cRadians)));

                    var posInfo = CanHeroWalkToPos(pos, spell.speed, extraDelayBuffer + ObjectCache.gamePing, extraDist);
                    posInfo.isDangerousPos   = pos.CheckDangerousPos(6);
                    posInfo.hasExtraDistance = extraEvadeDistance > 0 ? pos.CheckDangerousPos(extraEvadeDistance) : false;// ? 1 : 0;
                    posInfo.distanceToMouse  = pos.GetPositionValue();
                    posInfo.spellList        = spellList;

                    posInfo.posDistToChamps = pos.GetDistanceToChampions();

                    posTable.Add(posInfo);
                }

                if (curRadius >= maxDistance)
                {
                    break;
                }
            }

            var sortedPosTable =
                posTable.OrderBy(p => p.isDangerousPos)
                .ThenBy(p => p.posDangerLevel)
                .ThenBy(p => p.posDangerCount)
                .ThenBy(p => p.hasExtraDistance)
                .ThenBy(p => p.distanceToMouse);

            foreach (var posInfo in sortedPosTable)
            {
                if (CheckPathCollision(myHero, posInfo.position) == false)
                {
                    if (PositionInfoStillValid(posInfo, spell.speed))
                    {
                        return(posInfo);
                    }
                }
            }

            return(null);
        }
Exemplo n.º 13
0
        public static IOrderedEnumerable <PositionInfo> GetBestPositionTest()
        {
            int posChecked    = 0;
            int maxPosToCheck = 50;
            int posRadius     = 50;
            int radiusIndex   = 0;

            Vector2 heroPoint   = ObjectCache.myHeroCache.serverPos2D;
            Vector2 lastMovePos = Game.CursorPos.LSTo2D();

            var extraDelayBuffer   = ObjectCache.menuCache.cache["ExtraPingBuffer"].Cast <Slider>().CurrentValue;
            var extraEvadeDistance = ObjectCache.menuCache.cache["ExtraEvadeDistance"].Cast <Slider>().CurrentValue;

            if (ObjectCache.menuCache.cache["HigherPrecision"].Cast <CheckBox>().CurrentValue)
            {
                maxPosToCheck = 150;
                posRadius     = 25;
            }

            var posTable         = new List <PositionInfo>();
            var fastestPositions = GetFastestPositions();

            Spell lowestEvadeTimeSpell;
            var   lowestEvadeTime = SpellDetector.GetLowestEvadeTime(out lowestEvadeTimeSpell);

            foreach (var pos in fastestPositions) //add the fastest positions into list of candidates
            {
                posTable.Add(InitPositionInfo(pos, extraDelayBuffer, extraEvadeDistance, lastMovePos, lowestEvadeTimeSpell));
            }

            while (posChecked < maxPosToCheck)
            {
                radiusIndex++;

                int curRadius       = radiusIndex * (2 * posRadius);
                int curCircleChecks = (int)Math.Ceiling((2 * Math.PI * (double)curRadius) / (2 * (double)posRadius));

                for (int i = 1; i < curCircleChecks; i++)
                {
                    posChecked++;
                    var cRadians = (2 * Math.PI / (curCircleChecks - 1)) * i; //check decimals
                    var pos      = new Vector2((float)Math.Floor(heroPoint.X + curRadius * Math.Cos(cRadians)), (float)Math.Floor(heroPoint.Y + curRadius * Math.Sin(cRadians)));


                    posTable.Add(InitPositionInfo(pos, extraDelayBuffer, extraEvadeDistance, lastMovePos, lowestEvadeTimeSpell));


                    if (pos.LSIsWall())
                    {
                        //Render.Circle.DrawCircle(new Vector3(pos.X, pos.Y, myHero.Position.Z), (float)25, Color.White, 3);
                    }

                    /*
                     * if (posDangerLevel > 0)
                     * {
                     *  Render.Circle.DrawCircle(new Vector3(pos.X, pos.Y, myHero.Position.Z), (float) posRadius, Color.White, 3);
                     * }*/


                    var path = myHero.GetPath(pos.To3D());

                    //Render.Circle.DrawCircle(path[path.Length - 1], (float)posRadius, Color.White, 3);
                    //Render.Circle.DrawCircle(new Vector3(pos.X, pos.Y, myHero.Position.Z), (float)posRadius, Color.White, 3);

                    //var posOnScreen = Drawing.WorldToScreen(path[path.Length - 1]);
                    //Drawing.DrawText(posOnScreen.X, posOnScreen.Y, Color.Aqua, "" + path.Length);
                }
            }

            var sortedPosTable =
                posTable.OrderBy(p => p.isDangerousPos)
                .ThenBy(p => p.posDangerLevel)
                .ThenBy(p => p.posDangerCount)
                .ThenBy(p => p.distanceToMouse);

            return(sortedPosTable);
        }
Exemplo n.º 14
0
        public static bool PredictSpellCollision(Spell spell, Vector2 pos, float speed, float delay, Vector2 heroPos, float extraDist)
        {
            var walkDir = (pos - heroPos).Normalized();
            var zVector = new Vector2(0, 0);

            /*
             * if (Evade.menu.SubMenu("MiscSettings").Item("CalculateHeroPos").GetValue<bool>())
             *  heroPos = GetRealHeroPos(); //testing*/

            /*if (!myHero.IsMoving)
             *  walkDir = zVector;*/

            if (spell.info.spellType == SpellType.Line)
            {
                //zVector


                if (spell.info.projectileSpeed == float.MaxValue)
                {
                }

                var spellPos = SpellDetector.GetCurrentSpellPosition(spell, true);

                //Using triple checks
                //Check if skillshot will hit pos if hero is standing still
                bool isCollision = false;

                float standingCollisionTime = MathUtils.GetCollisionTime(pos, spellPos, zVector, spell.direction * spell.info.projectileSpeed, myHero.BoundingRadius, GetSpellRadius(spell), out isCollision);
                if (isCollision && standingCollisionTime > 0)
                {
                    if (spellPos.Distance(spell.endPos) / spell.info.projectileSpeed > standingCollisionTime)
                    {
                        return(true); //if collision happens when the skillshot is in flight
                    }
                }

                return(GetClosestDistanceApproach(spell, pos, speed, delay, heroPos, extraDist) == 0);

                /*
                 * //Check if skillshot will hit hero if hero is moving
                 * float movingCollisionTime = MathUtils.GetCollisionTime(heroPos, spellPos, walkDir * speed, spell.direction * spell.info.projectileSpeed, myHero.BoundingRadius, GetSpellRadius(spell) + 5, out isCollision);
                 * if (isCollision && movingCollisionTime > 0)
                 * {
                 *  if (spellPos.Distance(spell.endPos) / spell.info.projectileSpeed > movingCollisionTime)
                 *      return true; //if collision happens when the skillshot is in flight
                 * }
                 *
                 *
                 * //Check if skillshot will hit hero if hero is moving and the skillshot is moved forwards by 50 units
                 *
                 * spellPos = spellPos + spell.direction * spell.info.projectileSpeed * (delay / 1000); //move the spellPos by 50 miliseconds forwards
                 * spellPos = spellPos + spell.direction * 50; //move the spellPos by 50 units forwards
                 *
                 * var finalExtraDelay = (50 / spell.info.projectileSpeed) + (delay / 1000);
                 *
                 * float extraCollisionTime = MathUtils.GetCollisionTime(heroPos, spellPos, walkDir * speed, spell.direction * spell.info.projectileSpeed, myHero.BoundingRadius, GetSpellRadius(spell) + 5, out isCollision);
                 * if (isCollision && extraCollisionTime > -finalExtraDelay)
                 * {
                 *  if (spellPos.Distance(spell.endPos) / spell.info.projectileSpeed > extraCollisionTime)
                 *      return true; //if collision happens when the skillshot is in flight
                 *  else
                 *      return false;
                 * }*/
            }
            else if (spell.info.spellType == SpellType.Circular)
            {
                var spellHitTime   = Math.Max(0, spell.endTime - Evade.GetTickCount()); //extraDelay
                var walkRange      = heroPos.Distance(pos);
                var predictedRange = speed * (spellHitTime / 1000);
                var tHeroPos       = heroPos + walkDir * Math.Min(predictedRange, walkRange);             //Hero predicted pos

                return(tHeroPos.Distance(spell.endPos) <= GetSpellRadius(spell) + myHero.BoundingRadius); //+ dodgeBuffer
            }
            else if (spell.info.spellType == SpellType.Cone)
            {
                var spellHitTime = Math.Max(0, spell.endTime - Evade.GetTickCount());  //extraDelay
                var tHeroPos     = heroPos + walkDir * speed * (spellHitTime / 1000);

                return(inSkillShot(spell, tHeroPos, myHero.BoundingRadius));
            }

            return(false);
        }
Exemplo n.º 15
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);
            }
        }
Exemplo n.º 16
0
        private static void ProcessSpell_OrianaIzunaCommand(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData,
                                                            SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.spellName == "OrianaIzunaCommand")
            {
                foreach (KeyValuePair <int, ObjectTrackerInfo> entry in objTracker)
                {
                    var info = entry.Value;

                    if (entry.Value.Name == "TheDoomBall")
                    {
                        if (info.usePosition)
                        {
                            SpellDetector.CreateSpellData(hero, info.position, args.End, spellData, null, 0);
                        }
                        else
                        {
                            if (info.obj == null)
                            {
                                return;
                            }

                            SpellDetector.CreateSpellData(hero, info.obj.Position, args.End, spellData, null, 0);
                        }

                        info.position    = args.End;
                        info.usePosition = true;
                    }
                }

                specialSpellArgs.noProcess = true;
            }

            if (spellData.spellName == "OrianaDetonateCommand" || spellData.spellName == "OrianaDissonanceCommand")
            {
                foreach (KeyValuePair <int, ObjectTrackerInfo> entry in objTracker)
                {
                    var info = entry.Value;

                    if (entry.Value.Name == "TheDoomBall")
                    {
                        if (info.usePosition)
                        {
                            Vector3 endPos2 = info.position;
                            SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData, null, 0);
                        }
                        else
                        {
                            if (info.obj == null)
                            {
                                return;
                            }

                            Vector3 endPos2 = info.obj.Position;
                            SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData, null, 0);
                        }
                    }
                }

                specialSpellArgs.noProcess = true;
            }
        }
Exemplo n.º 17
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");
        }
Exemplo n.º 18
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);
            }
        }
Exemplo n.º 19
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);
            }
        }
Exemplo n.º 20
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("CH汉化-EZ躲避", "ezEvade");
                ObjectCache.menuCache.AddMenuToCache(menu);

                mainMenu = menu.AddSubMenu("核心", "Main");
                ObjectCache.menuCache.AddMenuToCache(mainMenu);
                mainMenu.Add("DodgeSkillShots", new KeyBind("开启躲避", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("ActivateEvadeSpells", new KeyBind("使用技能躲避", true, KeyBind.BindTypes.PressToggle, 'K'));
                mainMenu.Add("DodgeDangerous", new CheckBox("只躲避危险技能", false));
                mainMenu.Add("DodgeFOWSpells", new CheckBox("躲避战争迷雾技能"));
                mainMenu.Add("DodgeCircularSpells", new CheckBox("躲避圈形指向性技能"));

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

                keyMenu = menu.AddSubMenu("按键设置", "KeySettings");
                ObjectCache.menuCache.AddMenuToCache(keyMenu);
                keyMenu.Add("DodgeDangerousKeyEnabled", new CheckBox("开启只躲避危险技能按键", false));
                keyMenu.Add("DodgeDangerousKey", new KeyBind("只躲避危险技能按键", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.Add("DodgeDangerousKey2", new KeyBind("只躲避危险技能按键 2", false, KeyBind.BindTypes.HoldActive, 'V'));
                keyMenu.AddSeparator();
                keyMenu.Add("DodgeOnlyOnComboKeyEnabled", new CheckBox("开启只在连招中躲避", false));
                keyMenu.Add("DodgeComboKey", new KeyBind("只在连招中躲避按键", false, KeyBind.BindTypes.HoldActive, 32));
                keyMenu.AddSeparator();
                keyMenu.Add("DontDodgeKeyEnabled", new CheckBox("开启不躲避按键", false));
                keyMenu.Add("DontDodgeKey", new KeyBind("不躲避按键", false, KeyBind.BindTypes.HoldActive, 'Z'));

                miscMenu = menu.AddSubMenu("杂项设置", "MiscSettings");
                ObjectCache.menuCache.AddMenuToCache(miscMenu);
                miscMenu.AddGroupLabel("Misc : ");
                miscMenu.Add("HigherPrecision", new CheckBox("增强躲避精密度", false));
                miscMenu.Add("RecalculatePosition", new CheckBox("重新计算路径"));
                miscMenu.Add("ContinueMovement", new CheckBox("继续躲避前的移动", false));
                miscMenu.Add("CalculateWindupDelay", new CheckBox("计算延迟", true));
                miscMenu.Add("CheckSpellCollision", new CheckBox("检查技能弹道阻挡", false));
                miscMenu.Add("DodgeCheckHP", new CheckBox("检查血量 %时无视", false));
                miscMenu.Add("PreventDodgingUnderTower", new CheckBox("防止塔下躲避", false));
                miscMenu.Add("PreventDodgingNearEnemy", new CheckBox("防止在敌人附近躲避"));
                miscMenu.Add("AdvancedSpellDetection", new CheckBox("进阶技能探测", false));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("模式 : ");
                miscMenu.Add("EvadeMode", new ComboBox("躲避模式", 0, "Smooth", "Fastest", "Very Smooth"));
                miscMenu["EvadeMode"].Cast <ComboBox>().OnValueChange += OnEvadeModeChange;
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("人性化");
                miscMenu.Add("ClickOnlyOnce", new CheckBox("只点击一次", true));
                miscMenu.Add("EnableEvadeDistance", new CheckBox("延长躲避", false));
                miscMenu.Add("TickLimiter", new Slider("点击限制", 100, 0, 500));
                miscMenu.Add("SpellDetectionTime", new Slider("技能探测时间", 0, 0, 1000));
                miscMenu.Add("ReactionTime", new Slider("反应时间", 0, 0, 500));
                miscMenu.Add("DodgeInterval", new Slider("躲避间隔时间", 0, 0, 2000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("快速躲避");
                miscMenu.Add("FastMovementBlock", new CheckBox("阻挡快速移动", false));
                miscMenu.Add("FastEvadeActivationTime", new Slider("快速移动激活时间", 65, 0, 500));
                miscMenu.Add("SpellActivationTime", new Slider("技能激活时间", 200, 0, 1000));
                miscMenu.Add("RejectMinDistance", new Slider("碰撞缓冲距离", 10, 0, 100));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("高级人性化");
                miscMenu.Add("ExtraPingBuffer", new Slider("额外网络延迟缓冲", 65, 0, 200));
                miscMenu.Add("ExtraCPADistance", new Slider("额外体积碰撞距离", 10, 0, 150));
                miscMenu.Add("ExtraSpellRadius", new Slider("额外技能半径", 0, 0, 100));
                miscMenu.Add("ExtraEvadeDistance", new Slider("额外躲避距离", 100, 0, 300));
                miscMenu.Add("ExtraAvoidDistance", new Slider("额外防止距离", 50, 0, 300));
                miscMenu.Add("MinComfortZone", new Slider("最低英雄安全范围", 550, 0, 1000));
                miscMenu.AddSeparator();
                miscMenu.AddGroupLabel("测试");
                miscMenu.Add("LoadPingTester", new CheckBox("载入网络延迟测试", 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);
            }
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 23
0
        public static PositionInfo GetBestPosition()
        {
            int posChecked    = 0;
            int maxPosToCheck = 50;
            int posRadius     = 50;
            int radiusIndex   = 0;

            var extraDelayBuffer   = ObjectCache.menuCache.cache["ExtraPingBuffer"].Cast <Slider>().CurrentValue;
            var extraEvadeDistance = ObjectCache.menuCache.cache["ExtraEvadeDistance"].Cast <Slider>().CurrentValue;

            SpellDetector.UpdateSpells();
            CalculateEvadeTime();

            if (ObjectCache.menuCache.cache["CalculateWindupDelay"].Cast <CheckBox>().CurrentValue)
            {
                var extraWindupDelay = Evade.lastWindupTime - EvadeUtils.TickCount;
                if (extraWindupDelay > 0)
                {
                    extraDelayBuffer += (int)extraWindupDelay;
                }
            }

            extraDelayBuffer += (int)(Evade.avgCalculationTime);

            if (ObjectCache.menuCache.cache["HigherPrecision"].Cast <CheckBox>().CurrentValue)
            {
                maxPosToCheck = 150;
                posRadius     = 25;
            }

            Vector2 heroPoint   = ObjectCache.myHeroCache.serverPos2D;
            Vector2 lastMovePos = Game.CursorPos.LSTo2D();

            List <PositionInfo> posTable = new List <PositionInfo>();

            Spell lowestEvadeTimeSpell;
            var   lowestEvadeTime = SpellDetector.GetLowestEvadeTime(out lowestEvadeTimeSpell);

            List <Vector2> fastestPositions = GetFastestPositions();

            foreach (var pos in fastestPositions) //add the fastest positions into list of candidates
            {
                posTable.Add(InitPositionInfo(pos, extraDelayBuffer, extraEvadeDistance, lastMovePos, lowestEvadeTimeSpell));
            }


            /*if (SpellDetector.spells.Count() == 1)
             * {
             *  var sortedFastestTable =
             *  posTable.OrderBy(p => p.posDangerLevel);
             *
             *  if (sortedFastestTable.First() != null && sortedFastestTable.First().posDangerLevel > 0)
             *  {
             *      //use fastest
             *  }
             * }*/

            while (posChecked < maxPosToCheck)
            {
                radiusIndex++;

                int curRadius       = radiusIndex * (2 * posRadius);
                int curCircleChecks = (int)Math.Ceiling((2 * Math.PI * (double)curRadius) / (2 * (double)posRadius));

                for (int i = 1; i < curCircleChecks; i++)
                {
                    posChecked++;
                    var cRadians = (2 * Math.PI / (curCircleChecks - 1)) * i; //check decimals
                    var pos      = new Vector2((float)Math.Floor(heroPoint.X + curRadius * Math.Cos(cRadians)), (float)Math.Floor(heroPoint.Y + curRadius * Math.Sin(cRadians)));


                    posTable.Add(InitPositionInfo(pos, extraDelayBuffer, extraEvadeDistance, lastMovePos, lowestEvadeTimeSpell));
                }
            }

            IOrderedEnumerable <PositionInfo> sortedPosTable;

            if (ObjectCache.menuCache.cache["EvadeMode"].Cast <ComboBox>().CurrentValue == 1)
            {
                sortedPosTable =
                    posTable.OrderBy(p => p.isDangerousPos)
                    .ThenByDescending(p => p.intersectionTime)
                    .ThenBy(p => p.posDangerLevel)
                    .ThenBy(p => p.posDangerCount);

                fastEvadeMode = true;
            }
            else if (ObjectCache.menuCache.cache["FastEvadeActivationTime"].Cast <Slider>().CurrentValue > 0 &&
                     ObjectCache.menuCache.cache["FastEvadeActivationTime"].Cast <Slider>().CurrentValue + ObjectCache.gamePing + extraDelayBuffer > lowestEvadeTime)
            {
                sortedPosTable =
                    posTable.OrderBy(p => p.isDangerousPos)
                    .ThenByDescending(p => p.intersectionTime)
                    .ThenBy(p => p.posDangerLevel)
                    .ThenBy(p => p.posDangerCount);

                fastEvadeMode = true;
            }
            else
            {
                sortedPosTable =
                    posTable.OrderBy(p => p.rejectPosition)
                    .ThenBy(p => p.posDangerLevel)
                    .ThenBy(p => p.posDangerCount)
                    .ThenBy(p => p.distanceToMouse);

                if (sortedPosTable.First().posDangerCount != 0) //if can't dodge smoothly, dodge fast
                {
                    var sortedPosTableFastest =
                        posTable.OrderBy(p => p.isDangerousPos)
                        .ThenByDescending(p => p.intersectionTime)
                        .ThenBy(p => p.posDangerLevel)
                        .ThenBy(p => p.posDangerCount);

                    if (sortedPosTableFastest.First().posDangerCount == 0)
                    {
                        sortedPosTable = sortedPosTableFastest;
                        fastEvadeMode  = true;
                    }
                }
            }

            foreach (var posInfo in sortedPosTable)
            {
                if (CheckPathCollision(myHero, posInfo.position) == false)
                {
                    if (fastEvadeMode)
                    {
                        posInfo.position = GetExtendedSafePosition(ObjectCache.myHeroCache.serverPos2D, posInfo.position, extraEvadeDistance);
                        return(CanHeroWalkToPos(posInfo.position, ObjectCache.myHeroCache.moveSpeed, ObjectCache.gamePing, 0));
                    }

                    if (PositionInfoStillValid(posInfo))
                    {
                        if (posInfo.position.CheckDangerousPos(extraEvadeDistance)) //extra evade distance, no multiple skillshots
                        {
                            posInfo.position = GetExtendedSafePosition(ObjectCache.myHeroCache.serverPos2D, posInfo.position, extraEvadeDistance);
                        }

                        return(posInfo);
                    }
                }
            }

            return(PositionInfo.SetAllUndodgeable());
        }
Exemplo n.º 24
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);
            }
        }
Exemplo n.º 25
0
        public static PositionInfo GetBestPositionTargetedDash(EvadeSpellData spell)
        {
            /*if (spell.spellDelay > 0)
             * {
             *  if (CheckWindupTime(spell.spellDelay))
             *  {
             *      return null;
             *  }
             * }*/

            var extraDelayBuffer = ObjectCache.menuCache.cache["ExtraPingBuffer"].Cast <Slider>().CurrentValue;
            var extraDist        = ObjectCache.menuCache.cache["ExtraCPADistance"].Cast <Slider>().CurrentValue;

            Vector2 heroPoint   = ObjectCache.myHeroCache.serverPos2DPing;
            Vector2 lastMovePos = Game.CursorPos.LSTo2D();

            List <PositionInfo> posTable  = new List <PositionInfo>();
            List <int>          spellList = SpellDetector.GetSpellList();

            int minDistance = 50; //Math.Min(spell.range, minDistance)
            int maxDistance = int.MaxValue;

            if (spell.fixedRange)
            {
                minDistance = maxDistance = (int)spell.range;
            }

            List <Obj_AI_Base> collisionCandidates = new List <Obj_AI_Base>();

            if (spell.spellTargets.Contains(SpellTargets.Targetables))
            {
                foreach (var obj in ObjectManager.Get <Obj_AI_Base>()
                         .Where(h => !h.IsMe && h.LSIsValidTarget(spell.range, false)))
                {
                    if (!obj.IsValid <Obj_AI_Turret>())
                    {
                        collisionCandidates.Add(obj);
                    }
                }
            }
            else
            {
                List <AIHeroClient> heroList = new List <AIHeroClient>();

                if (spell.spellTargets.Contains(SpellTargets.EnemyChampions) &&
                    spell.spellTargets.Contains(SpellTargets.AllyChampions))
                {
                    heroList = HeroManager.AllHeroes;
                }
                else if (spell.spellTargets.Contains(SpellTargets.EnemyChampions))
                {
                    heroList = HeroManager.Enemies;
                }
                else if (spell.spellTargets.Contains(SpellTargets.AllyChampions))
                {
                    heroList = HeroManager.Allies;
                }


                foreach (var hero in heroList.Where(h => !h.IsMe && h.LSIsValidTarget(spell.range)))
                {
                    collisionCandidates.Add(hero);
                }

                List <Obj_AI_Base> minionList = new List <Obj_AI_Base>();

                if (spell.spellTargets.Contains(SpellTargets.EnemyMinions) &&
                    spell.spellTargets.Contains(SpellTargets.AllyMinions))
                {
                    minionList = MinionManager.GetMinions(spell.range, MinionTypes.All, MinionTeam.All);
                }
                else if (spell.spellTargets.Contains(SpellTargets.EnemyMinions))
                {
                    minionList = MinionManager.GetMinions(spell.range, MinionTypes.All, MinionTeam.Enemy);
                }
                else if (spell.spellTargets.Contains(SpellTargets.AllyMinions))
                {
                    minionList = MinionManager.GetMinions(spell.range, MinionTypes.All, MinionTeam.Ally);
                }

                foreach (var minion in minionList.Where(h => h.LSIsValidTarget(spell.range)))
                {
                    collisionCandidates.Add(minion);
                }
            }

            foreach (var candidate in collisionCandidates)
            {
                var pos = candidate.ServerPosition.LSTo2D();

                PositionInfo posInfo;

                if (spell.spellName == "YasuoDashWrapper")
                {
                    bool hasDashBuff = false;

                    foreach (var buff in candidate.Buffs)
                    {
                        if (buff.Name == "YasuoDashWrapper")
                        {
                            hasDashBuff = true;
                            break;
                        }
                    }

                    if (hasDashBuff)
                    {
                        continue;
                    }
                }

                if (spell.behindTarget)
                {
                    var dir = (pos - heroPoint).LSNormalized();
                    pos = pos + dir * (candidate.BoundingRadius + ObjectCache.myHeroCache.boundingRadius);
                }

                if (spell.infrontTarget)
                {
                    var dir = (pos - heroPoint).LSNormalized();
                    pos = pos - dir * (candidate.BoundingRadius + ObjectCache.myHeroCache.boundingRadius);
                }

                if (spell.fixedRange)
                {
                    var dir = (pos - heroPoint).LSNormalized();
                    pos = heroPoint + dir * spell.range;
                }

                if (spell.evadeType == EvadeType.Dash)
                {
                    posInfo = CanHeroWalkToPos(pos, spell.speed, extraDelayBuffer + ObjectCache.gamePing, extraDist);
                    posInfo.isDangerousPos  = pos.CheckDangerousPos(6);
                    posInfo.distanceToMouse = pos.GetPositionValue();
                    posInfo.spellList       = spellList;
                }
                else
                {
                    bool isDangerousPos = pos.CheckDangerousPos(6);
                    var  dist           = pos.GetPositionValue();

                    posInfo = new PositionInfo(pos, isDangerousPos, dist);
                }

                posInfo.target = candidate;
                posTable.Add(posInfo);
            }

            if (spell.evadeType == EvadeType.Dash)
            {
                var sortedPosTable =
                    posTable.OrderBy(p => p.isDangerousPos)
                    .ThenBy(p => p.posDangerLevel)
                    .ThenBy(p => p.posDangerCount)
                    .ThenBy(p => p.distanceToMouse);

                var first = sortedPosTable.FirstOrDefault();
                if (first != null && Evade.lastPosInfo != null && first.isDangerousPos == false &&
                    Evade.lastPosInfo.posDangerLevel > first.posDangerLevel)
                {
                    return(first);
                }
            }
            else
            {
                var sortedPosTable =
                    posTable.OrderBy(p => p.isDangerousPos)
                    //.ThenByDescending(p => p.hasComfortZone)
                    //.ThenBy(p => p.hasExtraDistance)
                    .ThenBy(p => p.distanceToMouse);

                var first = sortedPosTable.FirstOrDefault();

                return(first);
            }

            return(null);
        }
Exemplo n.º 26
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);
            }
        }
Exemplo n.º 27
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);
            }
        }
Exemplo n.º 28
0
        private void Game_OnIssueOrder(Obj_AI_Base hero, GameObjectIssueOrderEventArgs args)
        {
            if (!hero.IsMe)
            {
                return;
            }

            if (args.Order == GameObjectOrder.HoldPosition)
            {
                var path      = myHero.Path;
                var heroPoint = myHero.ServerPosition.To2D();


                if (path.Length > 0)
                {
                    var movePos = path[path.Length - 1].To2D();
                    var walkDir = (movePos - heroPoint).Normalized();

                    //circleRenderPos = EvadeHelper.GetRealHeroPos();
                    //heroPoint;// +walkDir * myHero.MoveSpeed * (((float)Game.Ping) / 1000);
                }
            }

            /*
             * if (args.Order == GameObjectOrder.MoveTo)
             * {
             *  if (testingCollision)
             *  {
             *      if (args.TargetPosition.To2D().Distance(testCollisionPos) < 3)
             *      {
             *          //var path = myHero.GetPath();
             *          //circleRenderPos
             *
             *          args.Process = false;
             *      }
             *  }
             * }*/

            if (args.Order == GameObjectOrder.MoveTo)
            {
                Vector2 heroPos = myHero.ServerPosition.To2D();
                Vector2 pos     = args.TargetPosition.To2D();
                float   speed   = myHero.MoveSpeed;

                startWalkPos  = heroPos;
                startWalkTime = Evade.GetTickCount();

                foreach (KeyValuePair <int, Spell> entry in SpellDetector.spells)
                {
                    Spell spell    = entry.Value;
                    var   spellPos = SpellDetector.GetCurrentSpellPosition(spell);
                    var   walkDir  = (pos - heroPos).Normalized();


                    float spellTime = (Evade.GetTickCount() - spell.startTime) - spell.info.spellDelay;
                    spellPos = spell.startPos + spell.direction * spell.info.projectileSpeed * (spellTime / 1000);
                    //Game.PrintChat("aaaa" + spellTime);


                    bool  isCollision         = false;
                    float movingCollisionTime = MathUtils.GetCollisionTime(heroPos, spellPos, walkDir * (speed - 25), spell.direction * (spell.info.projectileSpeed - 200), myHero.BoundingRadius, EvadeHelper.GetSpellRadius(spell), out isCollision);
                    if (isCollision)
                    {
                        //Game.PrintChat("aaaa" + spellPos.Distance(spell.endPos) / spell.info.projectileSpeed);
                        if (true)//spellPos.Distance(spell.endPos) / spell.info.projectileSpeed > movingCollisionTime)
                        {
                            Game.PrintChat("movingCollisionTime: " + movingCollisionTime);
                            //circleRenderPos = heroPos + walkDir * speed * movingCollisionTime;
                        }
                    }
                }
            }
        }