示例#1
0
        public static void CreateMenu()
        {
            Menu = MainMenu.AddMenu("Evade", "Evadesharp");

            //Create the evade spells submenus.
            EvadeSpellMenu = Menu.AddSubMenu("Evade spells", "evadeSpells");
            foreach (var spell in EvadeSpellDatabase.Spells)
            {
                EvadeSpellMenu.AddLabel(spell.Name);
                EvadeSpellMenu.Add("DangerLevel" + spell.Name, new Slider("Danger level", spell.DangerLevel, 1, 5));

                if (spell.IsTargetted && spell.ValidTargets.Contains(SpellValidTargets.AllyWards))
                {
                    EvadeSpellMenu.Add("WardJump" + spell.Name, new CheckBox("WardJump"));
                    EvadeSpellMenu.AddSeparator(3);
                }
                EvadeSpellMenu.Add("Enabled" + spell.Name, new CheckBox("Enabled"));
            }

            //Create the skillshots submenus.
            SkillShotsMenu = Menu.AddSubMenu("Skillshots", "SkillshotsMenu");

            foreach (var hero in ObjectManager.Get <AIHeroClient>())
            {
                if (hero.Team != ObjectManager.Player.Team || Config.TestOnAllies)
                {
                    foreach (var spell in SpellDatabase.Spells)
                    {
                        if (string.Equals(spell.ChampionName, hero.ChampionName, StringComparison.InvariantCultureIgnoreCase))
                        {
                            SkillShotsMenu.AddLabel(spell.MenuItemName);

                            SkillShotsMenu.Add("DangerLevel" + spell.MenuItemName,
                                               new Slider("Danger level", spell.DangerValue, 1, 5));

                            SkillShotsMenu.Add("IsDangerous" + spell.MenuItemName, new CheckBox("Is Dangerous", spell.IsDangerous));
                            SkillShotsMenu.Add("Draw" + spell.MenuItemName, new CheckBox("Draw"));
                            SkillShotsMenu.Add("Enabled" + spell.MenuItemName, new CheckBox("Enabled", !spell.DisabledByDefault));
                        }
                    }
                }
            }

            ShieldingMenu = Menu.AddSubMenu("Ally shielding", "Shielding");

            foreach (var ally in ObjectManager.Get <AIHeroClient>())
            {
                if (ally.IsAlly && !ally.IsMe)
                {
                    ShieldingMenu.Add("shield" + ally.ChampionName, new CheckBox("Shield " + ally.ChampionName));
                }
            }

            CollisionMenu = Menu.AddSubMenu("Collision", "Collision");
            CollisionMenu.Add("MinionCollision", new CheckBox("Minion collision", false));
            CollisionMenu.Add("HeroCollision", new CheckBox("Hero collision", false));
            CollisionMenu.Add("YasuoCollision", new CheckBox("Yasuo wall collision"));
            CollisionMenu.Add("EnableCollision", new CheckBox("Enabled", false));

            DrawingsMenu = Menu.AddSubMenu("Drawings", "DrawingsMenu");

            DrawingsMenu.Add("EnableDrawings", new CheckBox("Enable Drawings"));


            MiscMenu = Menu.AddSubMenu("Misc", "Miscmenu");
            MiscMenu.Add("BlockSpells",
                         new ComboBox("Block spells while evading", 1, "No", "Only dangerous", "Always"));
            MiscMenu.Add("DisableFow", new CheckBox("Disable fog of war dodging", false));
            MiscMenu.Add("ShowEvadeStatus", new CheckBox("Show Evade Status", false));

            if (Player.Instance.CharData.BaseSkinName == "Olaf")
            {
                MiscMenu.Add("DisableEvadeForOlafR", new CheckBox("Automatic disable Evade when Olaf's ulti is active!"));
            }

            Menu.Add("Enabled", new KeyBind("Enabled", true, KeyBind.BindTypes.PressToggle, 'K'));
            Menu.Add("OnlyDangerous", new KeyBind("Enabled", false, KeyBind.BindTypes.HoldActive, 32));
        }
示例#2
0
        public static void CreateMenu()
        {
            if (MainMenu != null)
            {
                return;
            }

            MainMenu = EloBuddy.SDK.Menu.MainMenu.AddMenu("MoonWalkEvade", "MoonWalkEvade");

            MainMenu.Add("fowDetection", new CheckBox("Enable FOW Detection"));
            MainMenu.Add("serverTimeBuffer", new Slider("Server Time Buffer", 50, -100, 100));
            MainMenu.AddSeparator();
            MainMenu.Add("processSpellDetection", new CheckBox("Enable Fast Spell Detection"));
            MainMenu.Add("limitDetectionRange", new CheckBox("Limit Spell Detection Range"));
            MainMenu.Add("recalculatePosition", new CheckBox("Allow Recalculation Of Evade Position", false));
            MainMenu.Add("moveToInitialPosition", new CheckBox("Move To Desired Position After Evade", false));
            MainMenu.Add("forceEvade", new CheckBox("Try To Evade If Impossible"));
            MainMenu.Add("extraRadius", new Slider("Extra Skillshot Radius", 0, 0, 50));
            MainMenu.AddSeparator();
            MainMenu.Add("minComfortDistance", new Slider("Minimum Comfort Distance To Enemies", 550, 0, 1000));
            MainMenu.Add("enemyComfortCount", new Slider("Minimum Amount of Enemies To Attend Comfort Distance", 3, 1, 5));

            HumanizerMenu = MainMenu.AddSubMenu("Humanizer");
            HumanizerMenu.Add("skillshotActivationDelay", new Slider("Reaction Delay", 0, 0, 400));
            HumanizerMenu.AddSeparator();

            HumanizerMenu.Add("extraEvadeRange", new Slider("Extra Evade Range", 0, 0, 300));
            HumanizerMenu.Add("randomizeExtraEvadeRange", new CheckBox("Randomize Extra Range", false));
            HumanizerMenu.AddSeparator();
            HumanizerMenu.Add("stutterDistanceTrigger", new Slider("Stutter Trigger Distance", 200, 0, 400));
            HumanizerMenu.AddLabel("When your evade point is 200 units or less from you away");
            HumanizerMenu.AddLabel("it will be changed to prevent you from standing still at the old point");
            HumanizerMenu.AddSeparator();
            HumanizerMenu.AddStringList("stutterPointFindType", "Anti Stutter Evade Point Search", new [] { "Mouse Position", "Same As Player Direction", "Farest Away" }, 0);
            HumanizerMenu.AddLabel("It's the kind of searching method to find a new point");

            SpellBlockerMenu = MainMenu.AddSubMenu("Spell Blocker");
            SpellBlockerMenu.AddGroupLabel("Spells to block while evading");
            SpellBlockerMenu.Add("blockDangerousDashes", new CheckBox("Block Dangerous Dashes"));
            SpellBlockerMenu.AddSeparator(10);
            for (int slot = 0; slot < 4; slot++)
            {
                var  currentSlot = (SpellSlot)slot;
                bool block       = SpellBlocker.ShouldBlock(currentSlot);
                SpellBlockerMenu.Add("block" + Player.Instance.ChampionName + "/" + currentSlot, new CheckBox("Block " + currentSlot, block));
            }

            var heroes     = Program.DeveloperMode ? EntityManager.Heroes.AllHeroes : EntityManager.Heroes.Enemies;
            var heroNames  = heroes.Select(obj => obj.ChampionName).ToArray();
            var skillshots =
                SkillshotDatabase.Database.Where(s => heroNames.Contains(s.OwnSpellData.ChampionName)).ToList();

            skillshots.AddRange(
                SkillshotDatabase.Database.Where(
                    s =>
                    s.OwnSpellData.ChampionName == "AllChampions" &&
                    heroes.Any(obj => obj.Spellbook.Spells.Select(c => c.Name).Contains(s.OwnSpellData.SpellName))));
            var evadeSpells =
                EvadeSpellDatabase.Spells.Where(s => Player.Instance.ChampionName.Contains(s.ChampionName)).ToList();

            evadeSpells.AddRange(EvadeSpellDatabase.Spells.Where(s => s.ChampionName == "AllChampions"));


            SkillshotMenu = MainMenu.AddSubMenu("Skillshots");

            foreach (var c in skillshots)
            {
                var skillshotString = c.ToString().ToLower();

                if (MenuSkillshots.ContainsKey(skillshotString))
                {
                    continue;
                }

                MenuSkillshots.Add(skillshotString, c);

                SkillshotMenu.AddGroupLabel(c.DisplayText);
                SkillshotMenu.Add(skillshotString + "/enable", new CheckBox("Dodge", c.OwnSpellData.EnabledByDefault));
                SkillshotMenu.Add(skillshotString + "/draw", new CheckBox("Draw"));

                var dangerous = new CheckBox("Dangerous", c.OwnSpellData.IsDangerous);
                dangerous.OnValueChange += delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    GetSkillshot(sender.SerializationId).OwnSpellData.IsDangerous = args.NewValue;
                };
                SkillshotMenu.Add(skillshotString + "/dangerous", dangerous);

                var dangerValue = new Slider("Danger Value", c.OwnSpellData.DangerValue, 1, 5);
                dangerValue.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args)
                {
                    GetSkillshot(sender.SerializationId).OwnSpellData.DangerValue = args.NewValue;
                };
                SkillshotMenu.Add(skillshotString + "/dangervalue", dangerValue);

                SkillshotMenu.AddSeparator();
            }

            // Set up spell menu
            EvadeSpellMenu = MainMenu.AddSubMenu("Evading Spells");

            foreach (var e in evadeSpells)
            {
                var evadeSpellString = e.SpellName;

                if (MenuEvadeSpells.Any(x => x.SpellName == evadeSpellString))
                {
                    continue;
                }

                MenuEvadeSpells.Add(e);

                EvadeSpellMenu.AddGroupLabel(evadeSpellString);
                EvadeSpellMenu.Add(evadeSpellString + "/enable", new CheckBox("Use " + (!e.isItem ? e.Slot.ToString() : "")));

                var dangerValueSlider = new Slider("Danger Value", e.DangerValue, 1, 5);
                dangerValueSlider.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args)
                {
                    MenuEvadeSpells.First(x =>
                                          x.SpellName.Contains(sender.SerializationId.Split('/')[0])).DangerValue = args.NewValue;
                };
                EvadeSpellMenu.Add(evadeSpellString + "/dangervalue", dangerValueSlider);

                EvadeSpellMenu.AddSeparator();
            }


            DrawMenu = MainMenu.AddSubMenu("Drawings");
            DrawMenu.Add("disableAllDrawings", new CheckBox("Disable All Drawings", false));
            DrawMenu.Add("drawEvadePoint", new CheckBox("Draw Evade Point"));
            DrawMenu.Add("drawEvadeStatus", new CheckBox("Draw Evade Status"));
            DrawMenu.Add("drawSkillshots", new CheckBox("Draw Skillshots"));
            DrawMenu.AddStringList("drawType", "Drawing Type", new [] { "Fancy", "Fast" }, 0);


            HotkeysMenu = MainMenu.AddSubMenu("KeyBinds");
            HotkeysMenu.Add("enableEvade", new KeyBind("Enable Evade", true, KeyBind.BindTypes.PressToggle, 'M'));
            HotkeysMenu.Add("dodgeOnlyDangerousH", new KeyBind("Dodge Only Dangerous (Hold)", false, KeyBind.BindTypes.HoldActive));
            HotkeysMenu.Add("dodgeOnlyDangerousT", new KeyBind("Dodge Only Dangerous (Toggle)", false, KeyBind.BindTypes.PressToggle));

            CollisionMenu = MainMenu.AddSubMenu("Collision");
            CollisionMenu.Add("minion", new CheckBox("Attend Minion Collision"));
            CollisionMenu.Add("yasuoWall", new CheckBox("Attend Yasuo Wall"));
            CollisionMenu.Add("useProj", new CheckBox("Use Spell Projection", false));

            DebugMenu = MainMenu.AddSubMenu("Debug");
            DebugMenu.Add("debugMode", new KeyBind("Debug Mode", false, KeyBind.BindTypes.PressToggle));
            DebugMenu.Add("debugModeIntervall", new Slider("Debug Skillshot Creation Intervall", 1000, 0, 12000));
            DebugMenu.AddStringList("debugMissile", "Selected Skillshot", SkillshotDatabase.Database.Select(x => x.OwnSpellData.SpellName).ToArray(), 0);
            DebugMenu.Add("isProjectile", new CheckBox("Is Projectile?"));
            DebugMenu.Add("manageMovementDelay", new CheckBox("Manage Orbwalker Movement Delay", false));
        }
示例#3
0
        public static void CreateMenu()
        {
            if (MainMenu != null)
            {
                return;
            }

            MainMenu = EloBuddy.SDK.Menu.MainMenu.AddMenu("MoonWalkEvade", "MoonWalkEvade");

            MainMenu.Add("evadeMode", new ComboBox("Kacma modu", new[] { "Puruzsuz", "Hizli" }));
            MainMenu.Add("fowDetection", new CheckBox("Aktif Savas sisi algilama"));
            //MainMenu.Add("serverTimeBuffer", new Slider("Server Time Buffer"));
            MainMenu.AddSeparator(50);
            MainMenu.AddGroupLabel("Misc");
            MainMenu.Add("processSpellDetection", new CheckBox("Hizli spell algilama Ekin"));
            MainMenu.Add("limitDetectionRange", new CheckBox("Spell algilama limit uzakligi"));
            MainMenu.Add("moveToInitialPosition", new CheckBox("Kactiktan sonra istenen yere git", false));
            MainMenu.Add("forceEvade", new CheckBox("Imkansizsa kacmak icin deneyin"));
            MainMenu.AddSeparator(50);
            MainMenu.AddGroupLabel("Recalculation");
            MainMenu.Add("recalculatePosition", new CheckBox("Kacma Pozisyonunun Yeniden Hesaplanmasina Izin Verin"));
            MainMenu.Add("recalculationSpeed", new Slider("Yeniden Hesaplama Gecikmesi", 500, 0, 1000));
            MainMenu.AddLabel("Low Delay is Cpu Intense");
            MainMenu.Add("minRecalculationAngle", new Slider("Yeniden hesaplama icin minimum Aci Degistirme [Derecelerde]", 2, 0, 50));
            MainMenu.AddSeparator(50);
            MainMenu.AddGroupLabel("Buffers");
            MainMenu.Add("minDangerTurretEvade", new Slider("Kule Altinda Kacmak Icin Minimum Tehlike Degeri", 4, 1, 5));
            MainMenu.Add("minComfortDistance", new Slider("Düşmana Minimum Rahatlik Mesafesi", 550, 0, 1000));
            MainMenu.Add("enemyComfortCount", new Slider("Rahatlik Mesafesine Katilmak Icin Dusmanlarin Minimum Miktarı", 3, 1, 5));
            MainMenu.AddSeparator();
            MainMenu.Add("dontEvadeComfort", new CheckBox("Rahatlik Noktasi Bulunmazsa kacma"));
            MainMenu.AddSeparator(0);
            MainMenu.Add("letAAPass", new CheckBox("Atak kacirdiktan Sonradan Kacinilmasi"));
            MainMenu.AddLabel("Otherwise forbid auto attacks if in danger");

            HumanizerMenu = MainMenu.AddSubMenu("Humanizer");
            HumanizerMenu.Add("skillshotActivationDelay", new Slider("Tepki Geciktirme", 0, 0, 400));
            HumanizerMenu.AddSeparator();

            HumanizerMenu.Add("useFastInSmooth", new CheckBox("Pürüzsüz Modda Hizli Kacinma Gerekirse"));
            HumanizerMenu.Add("extraEvadeRange", new Slider("Extra Kacma mesafesi", 0, 0, 300));
            HumanizerMenu.Add("randomizeExtraEvadeRange", new CheckBox("Ekstra Menzil Rastgele Olustur", false));
            HumanizerMenu.AddSeparator();
            HumanizerMenu.Add("stutterDistanceTrigger", new Slider("Stutter Tetikleme Mesafesi", 200, 0, 400));
            HumanizerMenu.AddLabel("Kacinma noktaniz senden 200 birim veya daha uzak oldugunda");
            HumanizerMenu.AddLabel("Eski noktada durmanizi önlemek icin değistirilecek");
            HumanizerMenu.AddSeparator();
            HumanizerMenu.AddStringList("stutterPointFindType", "Anti Stutter Evade Point Search", new [] { "Mouse Position", "Same As Player Direction", "Farest Away" }, 0);
            HumanizerMenu.AddLabel("Yeni bir nokta bulmak icin arama yontemi turudur");

            SpellBlockerMenu = MainMenu.AddSubMenu("Spell Blocker");
            SpellBlockerMenu.AddGroupLabel("Spells to block while evading");
            SpellBlockerMenu.Add("blockDangerousDashes", new CheckBox("Tehlikeli hamleleri Engelle"));
            SpellBlockerMenu.AddSeparator(10);
            for (int slot = 0; slot < 4; slot++)
            {
                var  currentSlot = (SpellSlot)slot;
                bool block       = SpellBlocker.ShouldBlock(currentSlot);
                SpellBlockerMenu.Add("block" + Player.Instance.ChampionName + "/" + currentSlot, new CheckBox("Block " + currentSlot, block));
            }

            var heroes     = Program.DeveloperMode ? EntityManager.Heroes.AllHeroes : EntityManager.Heroes.Enemies;
            var heroNames  = heroes.Select(obj => obj.ChampionName).ToArray();
            var skillshots =
                SkillshotDatabase.Database.Where(s => heroNames.Contains(s.OwnSpellData.ChampionName)).ToList();

            skillshots.AddRange(
                SkillshotDatabase.Database.Where(
                    s =>
                    s.OwnSpellData.ChampionName == "AllChampions" ||
                    heroes.Any(obj => obj.Spellbook.Spells.Select(c => c.Name).Contains(s.OwnSpellData.SpellName))));
            var evadeSpells =
                EvadeSpellDatabase.Spells.Where(s => Player.Instance.ChampionName.Contains(s.ChampionName)).ToList();

            evadeSpells.AddRange(EvadeSpellDatabase.Spells.Where(s => s.ChampionName == "AllChampions"));


            SkillshotMenu = MainMenu.AddSubMenu("Skillshots");

            foreach (var c in skillshots)
            {
                var skillshotString = c.ToString().ToLower();

                if (MenuSkillshots.ContainsKey(skillshotString))
                {
                    continue;
                }

                MenuSkillshots.Add(skillshotString, c);

                SkillshotMenu.AddGroupLabel(c.DisplayText);
                SkillshotMenu.Add(skillshotString + "/enable", new CheckBox("Kac", c.OwnSpellData.EnabledByDefault));
                SkillshotMenu.Add(skillshotString + "/draw", new CheckBox("Goster"));

                var dangerous = new CheckBox("Dangerous", c.OwnSpellData.IsDangerous);
                dangerous.OnValueChange += delegate(ValueBase <bool> sender, ValueBase <bool> .ValueChangeArgs args)
                {
                    GetSkillshot(sender.SerializationId).OwnSpellData.IsDangerous = args.NewValue;
                };
                SkillshotMenu.Add(skillshotString + "/dangerous", dangerous);

                var dangerValue = new Slider("Danger Value", c.OwnSpellData.DangerValue, 1, 5);
                dangerValue.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args)
                {
                    GetSkillshot(sender.SerializationId).OwnSpellData.DangerValue = args.NewValue;
                };
                SkillshotMenu.Add(skillshotString + "/dangervalue", dangerValue);

                SkillshotMenu.AddSeparator();
            }

            // Set up spell menu
            EvadeSpellMenu = MainMenu.AddSubMenu("Evading Spells");

            foreach (var e in evadeSpells)
            {
                var evadeSpellString = e.SpellName;

                if (MenuEvadeSpells.Any(x => x.SpellName == evadeSpellString))
                {
                    continue;
                }

                MenuEvadeSpells.Add(e);

                EvadeSpellMenu.AddGroupLabel(evadeSpellString);
                EvadeSpellMenu.Add(evadeSpellString + "/enable", new CheckBox("Kullan " + (!e.isItem ? e.Slot.ToString() : "")));

                var dangerValueSlider = new Slider("Tehlike Duzeyi", e.DangerValue, 1, 5);
                dangerValueSlider.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args)
                {
                    MenuEvadeSpells.First(x =>
                                          x.SpellName.Contains(sender.SerializationId.Split('/')[0])).DangerValue = args.NewValue;
                };
                EvadeSpellMenu.Add(evadeSpellString + "/dangervalue", dangerValueSlider);

                EvadeSpellMenu.AddSeparator();
            }


            DrawMenu = MainMenu.AddSubMenu("Drawings");
            DrawMenu.Add("disableAllDrawings", new CheckBox("Tum cizimleri kapat", false));
            DrawMenu.Add("drawEvadePoint", new CheckBox("Kacma noktasini goster", false));
            DrawMenu.Add("drawEvadeStatus", new CheckBox("Kacma durumunu goster"));
            DrawMenu.Add("drawSkillshots", new CheckBox("Goster gelen beceriler"));
            DrawMenu.AddStringList("drawType", "Drawing Type", new [] { "Fancy", "Fast" }, 1);


            HotkeysMenu = MainMenu.AddSubMenu("KeyBinds");
            HotkeysMenu.Add("enableEvade", new KeyBind("Kacma Aktif", true, KeyBind.BindTypes.PressToggle, 'M'));
            HotkeysMenu.Add("dodgeOnlyDangerousH", new KeyBind("Yanliz Tehlikeden Kac (Dur)", false, KeyBind.BindTypes.HoldActive));
            HotkeysMenu.Add("dodgeOnlyDangerousT", new KeyBind("Yanliz Tehlikeden Kac (Degistir)", false, KeyBind.BindTypes.PressToggle));

            CollisionMenu = MainMenu.AddSubMenu("Collision");
            CollisionMenu.Add("minion", new CheckBox("Minyonlara dikkat et"));
            CollisionMenu.Add("yasuoWall", new CheckBox("Dikkat Yasuo Duvari"));

            DebugMenu = MainMenu.AddSubMenu("Testings");
            DebugMenu.Add("debugMode", new KeyBind("Debug Mode", false, KeyBind.BindTypes.PressToggle));
            DebugMenu.Add("debugModeIntervall", new Slider("Debug Skillshot Creation Intervall", 1000, 0, 12000));
            DebugMenu.AddStringList("debugMissile", "Selected Skillshot",
                                    SkillshotDatabase.Database.Select(x => x.OwnSpellData.SpellName).ToArray(), 0);
            DebugMenu.Add("isProjectile", new CheckBox("Is Projectile?"));
            DebugMenu.Add("manageMovementDelay", new CheckBox("Orbwalker hareket gecikmesini yonet", false));
        }