コード例 #1
0
ファイル: Program.cs プロジェクト: qazji3/LeagueSharp-4
        private static void Game_OnGameLoad(object obj)
        {
            if (!Player.IsChampion("Fiora"))
            {
                return;
            }

            Bootstrap.Initialize();

            Menu = new Menu("jesuisFiora", "je suis Fiora", true);
            Menu.SetFontStyle(FontStyle.Regular, ScriptColor);

            Orbwalker = Menu.AddOrbwalker();

            var hr = Menu.SubMenu("Orbwalker").Item("HoldPosRadius").GetValue <Slider>();

            if (hr.Value < 60)
            {
                hr.Value = 60;
                Menu.SubMenu("Orbwalker").Item("HoldPosRadius").SetValue(hr);
            }

            var spells  = Menu.AddMenu("Spells", "Spells");
            var passive = Menu.AddMenu("Passive", "Vital Settings");
            var wMenu   = Menu.AddMenu("W", "W (SpellBlock)");

            var orbwalker = passive.AddMenu("Orbwalker", "Orbwalk Vital");

            orbwalker.AddKeyBind("OrbwalkPassive", "Orbwalk to Target Vital", 'N', KeyBindType.Toggle, true);
            orbwalker.Item("OrbwalkPassive").SetTooltip("Attempt to orbwalk to AA enemy vital.", ScriptColor);

            orbwalker.AddBool("OrbwalkCombo", "In Combo");
            orbwalker.Item("OrbwalkCombo").SetTooltip("Only orbwalk to vital in Combo mode.", ScriptColor);

            orbwalker.AddBool("OrbwalkHarass", "In Harass");
            orbwalker.Item("OrbwalkHarass").SetTooltip("Only orbwalk to vital in Harass mode.", ScriptColor);

            orbwalker.AddBool("OrbwalkPrepassive", "Orbwalk PreVital");
            orbwalker.Item("OrbwalkPrepassive")
            .SetTooltip("Orbwalk to a vital before it has been identified.", ScriptColor);

            orbwalker.AddBool("OrbwalkUltPassive", "Orbwalk Ultimate Vital");
            orbwalker.Item("OrbwalkUltPassive").SetTooltip("Orbwalk to ultimate vitals.", ScriptColor);

            orbwalker.AddBool("OrbwalkPassiveTimeout", "Orbwalk Near Timeout Vital");
            orbwalker.Item("OrbwalkPassiveTimeout")
            .SetTooltip("Orbwalk to  to vital as it is being timed out.", ScriptColor);

            orbwalker.AddBool("OrbwalkSelected", "Only Selected Target", true);
            orbwalker.Item("OrbwalkSelected")
            .SetTooltip("Target must be manually left clicked to orbwalk to vitals.", ScriptColor);

            orbwalker.AddBool("OrbwalkTurret", "Block Under Turret", false);
            orbwalker.Item("OrbwalkTurret").SetTooltip("In order to avoid walking under turrets.", ScriptColor);

            orbwalker.AddBool("OrbwalkQ", "Only if Q Down", false);
            orbwalker.Item("OrbwalkQ").SetTooltip("To avoid orbwalking to a vital that will be Q'ed to.", ScriptColor);

            orbwalker.AddBool("OrbwalkAARange", "Only in AA Range", false);
            orbwalker.Item("OrbwalkAARange").SetTooltip("Only orbwalk to vital if it is in AA range.", ScriptColor);

            orbwalker.AddBool("OrbwalkAA", "Only if not able to AA", false);
            orbwalker.Item("OrbwalkAA")
            .SetTooltip("Only orbwalk to vital if not able to AA, in order to avoid loss of dps.", ScriptColor);

            var qVital = passive.AddMenu("QVital", "Q Vital");

            qVital.AddBool("QPassive", "Only Q to Vitals", true);
            qVital.Item("QPassive").SetTooltip("Attempt to only Q to Fiora's vital passive.", ScriptColor);

            qVital.AddBool("QUltPassive", "Q to Ultimate Vital");
            qVital.Item("QUltPassive").SetTooltip("Q to ultimate vital passive.", ScriptColor);

            qVital.AddBool("QPrepassive", "Q to PreVital", false);
            qVital.Item("QPrepassive")
            .SetTooltip("Attempt to Q to vital before it has been identified. May not proc vital.", ScriptColor);

            qVital.AddBool("QPassiveTimeout", "Q to Near Timeout Vital");
            qVital.Item("QPassiveTimeout")
            .SetTooltip("Q to vital as it is being timed out. May not proc vital.", ScriptColor);

            qVital.AddBool("QInVitalBlock", "Block Q inside Vital Polygon");
            qVital.Item("QInVitalBlock").SetTooltip("Block Q if player is inside of enemy vital polygon.", ScriptColor);

            passive.AddBool("DrawCenter", "Draw Vital Center");
            passive.Item("DrawCenter").SetTooltip("Draw the center of vital polygon. No FPS drops.", ScriptColor);

            passive.AddBool("DrawPolygon", "Draw Vital Polygon", false);
            passive.Item("DrawPolygon").SetTooltip("Draw the vital polygon. Possibly causes FPS drops.", ScriptColor);

            passive.AddSlider("SectorMaxRadius", "Vital Polygon Range", 310, 300, 400);
            passive.Item("SectorMaxRadius")
            .SetTooltip("The max range of vital polygon. Draw polygon to understand what this is.", ScriptColor);

            passive.AddSlider("SectorAngle", "Vital Polygon Angle", 70, 60, 90);
            passive.Item("SectorAngle")
            .SetTooltip("The angle of vital polygon. Draw polygon to understand what this is.", ScriptColor);

            var qMenu = spells.AddMenu("Q", "Q");

            qMenu.AddBool("QCombo", "Use in Combo");
            qMenu.AddBool("QHarass", "Use in Harass");
            qMenu.AddSlider("QRangeDecrease", "Decrease Q Range", 10, 0, 150);
            Q.Range = 750 - qMenu.Item("QRangeDecrease").GetValue <Slider>().Value;
            qMenu.Item("QRangeDecrease").ValueChanged += (sender, eventArgs) =>
            {
                Q.Range = 750 - eventArgs.GetNewValue <Slider>().Value;
                var qDraw = Menu.Item("QDraw");
                if (qDraw == null)
                {
                    return;
                }
                var qCircle = qDraw.GetValue <Circle>();
                qDraw.SetValue(new Circle(qCircle.Active, qCircle.Color, Q.Range));
            };

            qMenu.AddBool("QBlockTurret", "Block Q Under Turret", false);
            qMenu.Item("QBlockTurret").SetTooltip("Don't Q under turret in combo/harass.", ScriptColor);

            qMenu.AddKeyBind("QFlee", "Q Flee", 'T');
            qMenu.Item("QFlee").SetTooltip("Flees towards cursor position.", ScriptColor);
            //qMenu.AddInfo("FleeInfo", " --> Flees towards cursor position.", ScriptColor);

            qMenu.AddBool("QKillsteal", "Use for Killsteal");

            var wSpells = wMenu.AddMenu("BlockSpells", "Blocked Spells");

            wMenu.AddKeyBind("WSpells", "Enabled", 'U', KeyBindType.Toggle, true);

            wMenu.AddList("WMode", "W Spellblock to: ", new[] { "Spell Caster", "Target" });
            wMenu.Item("WMode").SetTooltip("TR", ScriptColor);
            wMenu.AddBool("WKillsteal", "Use for Killsteal");
            wMenu.AddBool("WSmart", "Smart W");
            wMenu.Item("WSmart").SetTooltip("Don't W when Morg E or Edge of Darkness shield.", ScriptColor);
            wMenu.AddBool("WTurret", "Block W Under Enemy Turret", false);
            SpellBlock.Initialize(wSpells);
            Dispeller.Initialize(wSpells);

            var eMenu = spells.AddMenu("E", "E");

            eMenu.AddBool("ECombo", "Use in Combo");
            eMenu.AddBool("EHarass", "Use in Harass");

            var rMenu = spells.AddMenu("R", "R");

            var duelistMenu = rMenu.AddMenu("Duelist Champion", "Duelist Mode Champions");

            foreach (var enemy in Enemies)
            {
                duelistMenu.AddBool("Duelist" + enemy.ChampionName, "Use on " + enemy.ChampionName);
            }

            rMenu.AddBool("RCombo", "Use R");

            rMenu.AddList("RMode", "Cast Mode", new[] { "Duelist", "Combo" });
            rMenu.Item("RMode")
            .SetTooltip("Duelist: Only cast when killable. Combo: Cast during normal combo.", ScriptColor);

            rMenu.AddKeyBind("RToggle", "Toggle Mode", 'L');
            rMenu.Item("RToggle").SetTooltip("Toggles cast mode between Duelist and Combo.", ScriptColor);

            rMenu.Item("RToggle").ValueChanged += (sender, eventArgs) =>
            {
                if (!eventArgs.GetNewValue <KeyBind>().Active)
                {
                    return;
                }
                var mode  = Menu.Item("RMode");
                var index = mode.GetValue <StringList>().SelectedIndex == 0 ? 1 : 0;
                mode.SetValue(new StringList(new[] { "Duelist", "Combo" }, index));
            };

            rMenu.AddSlider("RKillVital", "Duelist Mode Min Vitals", 2, 0, 4);
            rMenu.Item("RKillVital").SetTooltip("Used for damage calculation in Duelist Mode", ScriptColor);

            rMenu.AddBool("RComboSelected", "Use R Selected on Selected Unit Only");
            rMenu.Item("RComboSelected")
            .SetTooltip("Only cast R when enemy has been left clicked or selected.", ScriptColor);
            rMenu.AddBool("RSmartQ", "Use Smart Q in Ult");

            var items = spells.AddMenu("Items", "Items");

            items.AddBool("ItemsCombo", "Use in Combo");
            items.AddBool("ItemsHarass", "Use in Harass");

            spells.AddSlider("ManaHarass", "Harass Min Mana Percent", 40);

            var farm = Menu.AddMenu("Farm", "Farm");

            var qFarm = farm.AddMenu("Farm", "Q");

            qFarm.AddBool("QFarm", "Use Q in Farm");
            qFarm.AddBool("QLastHit", "Q Last Hit (Only Killable)", false);
            qFarm.AddBool("QFarmAA", "Only Q out of AA Range", false);
            qFarm.AddSlider("QFarmMana", "Q Min Mana Percent", 40);

            var eFarm = farm.AddMenu("E", "E");

            eFarm.AddBool("ELaneClear", "Use in LaneClear");

            farm.AddKeyBind("FarmEnabled", "Farm Enabled", 'J', KeyBindType.Toggle);
            farm.Item("FarmEnabled").SetTooltip("Enabled in LastHit and LaneClear mode.", ScriptColor);

            farm.AddBool("ItemsLaneClear", "Use Items in LaneClear");

            var draw = Menu.AddMenu("Drawing", "Drawing");

            draw.AddCircle(
                "QVitalDraw", "Draw Q Vital Range", System.Drawing.Color.Purple, SpellManager.QSkillshotRange, false);
            draw.Item("QVitalDraw")
            .SetTooltip(
                "Must be in this range to hit vital. If force vital enabled, then it can only cast Q to target in this range.",
                ScriptColor);

            draw.AddCircle("QDraw", "Draw Q Max Range", System.Drawing.Color.Purple, Q.Range, false);
            draw.Item("QDraw").SetTooltip("The max range that Q can be cast and hit the target.", ScriptColor);

            draw.AddCircle("1Draw", "Draw W", System.Drawing.Color.DeepPink, W.Range, false);
            draw.AddCircle("3Draw", "Draw R", System.Drawing.Color.White, R.Range, false);
            draw.AddBool("DuelistDraw", "Duelist Mode: Killable Target");
            draw.AddBool("WPermashow", "Permashow W Spellblock");
            draw.AddBool("RPermashow", "Permashow R Mode");
            draw.AddBool("FarmPermashow", "Permashow Farm Enabled");
            draw.AddBool("OrbwalkPermashow", "Permashow Orbwalk Vital");

            if (draw.Item("WPermashow").IsActive())
            {
                wMenu.Item("WSpells").Permashow(true, "W SpellBlock", ScriptColor);
            }

            draw.Item("WPermashow").ValueChanged +=
                (sender, eventArgs) =>
            {
                wMenu.Item("WSpells").Permashow(eventArgs.GetNewValue <bool>(), "W SpellBlock", ScriptColor);
            };

            if (draw.Item("RPermashow").IsActive())
            {
                rMenu.Item("RMode").Permashow(true, null, ScriptColor);
            }

            draw.Item("RPermashow").ValueChanged +=
                (sender, eventArgs) =>
            {
                rMenu.Item("RMode").Permashow(eventArgs.GetNewValue <bool>(), null, ScriptColor);
            };

            if (draw.Item("FarmPermashow").IsActive())
            {
                farm.Item("FarmEnabled").Permashow(true, null, ScriptColor);
            }

            draw.Item("FarmPermashow").ValueChanged +=
                (sender, eventArgs) =>
            {
                farm.Item("FarmEnabled").Permashow(eventArgs.GetNewValue <bool>(), null, ScriptColor);
            };

            if (draw.Item("OrbwalkPermashow").IsActive())
            {
                orbwalker.Item("OrbwalkPassive").Permashow(true, null, ScriptColor);
            }

            draw.Item("OrbwalkPermashow").ValueChanged +=
                (sender, eventArgs) =>
            {
                orbwalker.Item("OrbwalkPassive").Permashow(eventArgs.GetNewValue <bool>(), null, ScriptColor);
            };

            var dmg = draw.AddMenu("DamageIndicator", "Damage Indicator");

            dmg.AddBool("DmgEnabled", "Draw Damage Indicator");
            dmg.AddCircle("HPColor", "Predicted Health Color", System.Drawing.Color.White);
            dmg.AddCircle("FillColor", "Damage Color", System.Drawing.Color.HotPink);
            dmg.AddBool("Killable", "Killable Text");

            var misc = Menu.AddMenu("Misc", "Misc");

            /*ManaManager.Initialize(misc);
             * Q.SetManaCondition(ManaManager.ManaMode.Combo, 5);
             * Q.SetManaCondition(ManaManager.ManaMode.Harass, 5);
             * Q.SetManaCondition(ManaManager.ManaMode.Farm, 30);
             * E.SetManaCondition(ManaManager.ManaMode.Combo, 15);
             * E.SetManaCondition(ManaManager.ManaMode.Harass, 15);
             * E.SetManaCondition(ManaManager.ManaMode.Farm, 40);
             * R.SetManaCondition(ManaManager.ManaMode.Combo, 10);
             */

            misc.AddList("TargetSelector", "Target Selector: ", new[] { "Normal", "Locked" });
            misc.Item("TargetSelector").SetTooltip("Locked TS attempts to stick to the same target.", ScriptColor);
            misc.AddInfo("TSInfo", "Locked TS attempts to lock to the same target.", ScriptColor);
            misc.AddBool("Sounds", "Sounds");

            Menu.AddInfo("Info", "By Trees and Lilith!", ScriptColor);
            Menu.AddToMainMenu();

            if (Menu.Item("Sounds").IsActive())
            {
                new SoundObject(Resources.OnLoad).Play();
            }

            DamageIndicator.DamageToUnit = GetComboDamage;
            PassiveManager.Initialize();

            Game.OnUpdate += Game_OnGameUpdate;
            //Orbwalking.BeforeAttack += BeforeAttack;
            Orbwalking.AfterAttack         += AfterAttack;
            Obj_AI_Base.OnProcessSpellCast += Obj_AI_Hero_OnProcessSpellCast;
            Drawing.OnDraw += Drawing_OnDraw;
            Game.PrintChat(
                "<font color=\"{0}\">jesuisFiora Loaded!</font>", System.Drawing.Color.DeepPink.ToHexString());
        }
コード例 #2
0
        public static void Game_OnGameLoad()
        {
            if (!Player.IsChampion("Fiora"))
            {
                return;
            }

            TreeLib.SpellData.Evade.Init();

            Menu = MainMenu.AddMenu("jesuisFiora", "je suis Fiora");

            passiveM = Menu.AddSubMenu("Passive", "Vital Settings");
            passiveM.AddGroupLabel("Orbwalker Vital");
            passiveM.Add("OrbwalkPassive", new KeyBind("Orbwalk to Target Vital", true, KeyBind.BindTypes.PressToggle, 'N'));
            passiveM.Add("OrbwalkCombo", new CheckBox("In Combo"));
            passiveM.Add("OrbwalkHarass", new CheckBox("In Harass"));
            passiveM.Add("OrbwalkPrepassive", new CheckBox("Orbwalk PreVital"));
            passiveM.Add("OrbwalkUltPassive", new CheckBox("Orbwalk Ultimate Vital"));
            passiveM.Add("OrbwalkPassiveTimeout", new CheckBox("Orbwalk Near Timeout Vital"));
            passiveM.Add("OrbwalkSelected", new CheckBox("Only Selected Target", true));
            passiveM.Add("OrbwalkTurret", new CheckBox("Block Under Turret", false));
            passiveM.Add("OrbwalkQ", new CheckBox("Only if Q Down", false));
            passiveM.Add("OrbwalkAARange", new CheckBox("Only in AA Range", false));
            passiveM.Add("OrbwalkAA", new CheckBox("Only if not able to AA", false));
            passiveM.AddSeparator();
            passiveM.AddGroupLabel("Q Vital");
            passiveM.Add("QPassive", new CheckBox("Only Q to Vitals", true));
            passiveM.Add("QUltPassive", new CheckBox("Q to Ultimate Vital"));
            passiveM.Add("QPrepassive", new CheckBox("Q to PreVital", false));
            passiveM.Add("QPassiveTimeout", new CheckBox("Q to Near Timeout Vital"));
            passiveM.Add("QInVitalBlock", new CheckBox("Block Q inside Vital Polygon"));
            passiveM.AddSeparator();
            passiveM.Add("DrawCenter", new CheckBox("Draw Vital Center"));
            passiveM.Add("DrawPolygon", new CheckBox("Draw Vital Polygon", false));
            passiveM.Add("SectorMaxRadius", new Slider("Vital Polygon Range", 310, 300, 400));
            passiveM.Add("SectorAngle", new Slider("Vital Polygon Angle", 70, 60, 90));
            passiveM.AddSeparator();

            qMenu = Menu.AddSubMenu("Q", "Q");
            qMenu.Add("QCombo", new CheckBox("Use in Combo"));
            qMenu.Add("QHarass", new CheckBox("Use in Harass"));
            qMenu.Add("QRangeDecrease", new Slider("Decrease Q Range", 10, 0, 150));
            Q.Range = 750 - qMenu["QRangeDecrease"].Cast <Slider>().CurrentValue;
            qMenu["QRangeDecrease"].Cast <Slider>().OnValueChange += (sender, eventArgs) =>
            {
                Q.Range = 750 - eventArgs.NewValue;
            };
            qMenu.Add("QBlockTurret", new CheckBox("Block Q Under Turret", false));
            qMenu.Add("QFlee", new KeyBind("Q Flee", false, KeyBind.BindTypes.HoldActive, 'T'));
            qMenu.Add("QKillsteal", new CheckBox("Use for Killsteal"));

            wSpells = Menu.AddSubMenu("Blocked Spells");
            wSpells.Add("WSpells", new KeyBind("Enabled", true, KeyBind.BindTypes.PressToggle, 'U'));
            wSpells.Add("WMode", new ComboBox("W Spellblock to: ", 0, "Spell Caster", "Target"));
            wSpells.Add("WKillsteal", new CheckBox("Use for Killsteal"));
            wSpells.Add("WTurret", new CheckBox("Block W Under Enemy Turret", false));

            SpellBlock.Initialize(wSpells);
            Dispeller.Initialize(wSpells);

            eMenu = Menu.AddSubMenu("E", "E");
            eMenu.Add("ECombo", new CheckBox("Use in Combo"));
            eMenu.Add("EHarass", new CheckBox("Use in Harass"));

            rMenu = Menu.AddSubMenu("R", "R");
            rMenu.AddGroupLabel("Duelist Mode Champions");
            foreach (var enemy in Enemies)
            {
                rMenu.Add("Duelist" + enemy.ChampionName, new CheckBox("Use on " + enemy.ChampionName));
            }
            rMenu.AddSeparator();
            rMenu.Add("RCombo", new CheckBox("Use R"));
            rMenu.Add("RMode", new ComboBox("Cast Mode", 0, "Duelist", "Combo"));
            rMenu.Add("RToggle", new KeyBind("Toggle Mode", false, KeyBind.BindTypes.HoldActive, 'L'));
            rMenu["RToggle"].Cast <KeyBind>().OnValueChange += (sender, eventArgs) =>
            {
                if (!eventArgs.NewValue)
                {
                    return;
                }
                var mode  = rMenu["RMode"].Cast <ComboBox>().CurrentValue;
                var index = mode == 0 ? 1 : 0;
                mode = index;
            };
            rMenu.Add("RKillVital", new Slider("Duelist Mode Min Vitals", 2, 0, 4));
            rMenu.Add("RComboSelected", new CheckBox("Use R Selected on Selected Unit Only"));
            rMenu.Add("RSmartQ", new CheckBox("Use Smart Q in Ult"));

            items = Menu.AddSubMenu("Items", "Items");
            items.Add("ItemsCombo", new CheckBox("Use in Combo"));
            items.Add("ItemsHarass", new CheckBox("Use in Harass"));

            farm = Menu.AddSubMenu("Farm", "Farm");
            farm.AddGroupLabel("Q");
            farm.Add("QFarm", new CheckBox("Use Q in Farm"));
            farm.Add("QLastHit", new CheckBox("Q Last Hit (Only Killable)", false));
            farm.Add("QFarmAA", new CheckBox("Only Q out of AA Range", false));
            farm.Add("QFarmMana", new Slider("Q Min Mana Percent", 40));
            farm.AddSeparator();
            farm.AddGroupLabel("E");
            farm.Add("ELaneClear", new CheckBox("Use in LaneClear"));
            farm.AddSeparator();
            farm.Add("FarmEnabled", new KeyBind("Farm Enabled", false, KeyBind.BindTypes.PressToggle, 'J'));
            farm.Add("ItemsLaneClear", new CheckBox("Use Items in LaneClear"));

            draw = Menu.AddSubMenu("Drawing", "Drawing");
            draw.Add("QVitalDraw", new CheckBox("Draw Q Vital Range")); //, System.Drawing.Color.Purple, SpellManager.QSkillshotRange, false);
            draw.Add("QDraw", new CheckBox("Draw Q Max Range"));        //, System.Drawing.Color.Purple, Q.Range, false);
            draw.Add("1Draw", new CheckBox("Draw W"));                  //, System.Drawing.Color.DeepPink, W.Range, false);
            draw.Add("3Draw", new CheckBox("Draw R"));                  //, System.Drawing.Color.White, R.Range, false);
            draw.Add("DuelistDraw", new CheckBox("Duelist Mode: Killable Target"));

            misc = Menu.AddSubMenu("Misc", "Misc");
            misc.Add("ManaHarass", new Slider("Harass Min Mana Percent", 40));

            PassiveManager.Initialize();

            Game.OnUpdate                  += Game_OnGameUpdate;
            Orbwalker.OnPostAttack         += AfterAttack;
            Obj_AI_Base.OnProcessSpellCast += AIHeroClient_OnProcessSpellCast;
            Drawing.OnDraw                 += Drawing_OnDraw;
            Chat.Print("<font color=\"{0}\">jesuisFiora Loaded!</font>", System.Drawing.Color.DeepPink);
        }