Beispiel #1
0
        public static void LoadOKTW()
        {
            Q = new Spell(SpellSlot.Q, 870);
            W = new Spell(SpellSlot.W, 580);
            E = new Spell(SpellSlot.E, 950);
            R = new Spell(SpellSlot.R, 600);

            Q.SetSkillshot(0.25f, 90, 1550, false, SkillshotType.SkillshotLine);
            E.SetSkillshot(0.25f, 60, 1550, true, SkillshotType.SkillshotLine);

            missileManager = new MissileReturn("AhriOrbMissile", "AhriOrbReturn", Q);

            drawMenu = Config.AddSubMenu("Drawings");
            drawMenu.Add("noti", new CheckBox("Show notification & line"));
            drawMenu.Add("onlyRdy", new CheckBox("Draw only ready spells"));
            drawMenu.Add("qRange", new CheckBox("Q range", false));
            drawMenu.Add("wRange", new CheckBox("W range", false));
            drawMenu.Add("eRange", new CheckBox("E range", false));
            drawMenu.Add("rRange", new CheckBox("R range", false));
            drawMenu.Add("Qhelp", new CheckBox("Show Q helper"));

            QMenu = Config.AddSubMenu("Q Config");
            QMenu.Add("autoQ", new CheckBox("Auto Q"));
            QMenu.Add("harrasQ", new CheckBox("Harass Q"));
            QMenu.Add("aimQ", new CheckBox("Auto aim Q missile"));

            WMenu = Config.AddSubMenu("W Config");
            WMenu.Add("autoW", new CheckBox("Auto W"));
            WMenu.Add("harrasW", new CheckBox("Harass W"));

            EMenu = Config.AddSubMenu("E Config");
            EMenu.Add("autoE", new CheckBox("Auto E"));
            EMenu.Add("harrasE", new CheckBox("Harras E"));
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                EMenu.Add("Eon" + enemy.NetworkId, new CheckBox("E : " + enemy.ChampionName));
            }
            EMenu.AddSeparator();
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                EMenu.Add("Egapcloser" + enemy.NetworkId, new CheckBox("Gapclose : " + enemy.ChampionName));
            }

            RMenu = Config.AddSubMenu("R Config");
            RMenu.Add("autoR", new CheckBox("R KS "));
            RMenu.Add("autoR2", new CheckBox("auto R fight logic + aim Q"));

            harassMenu = Config.AddSubMenu("Harass");
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                harassMenu.Add("harras" + enemy.NetworkId, new CheckBox(enemy.ChampionName));
            }

            FarmMenu = Config.AddSubMenu("Farm");
            FarmMenu.Add("farmQ", new CheckBox("Lane clear Q"));
            FarmMenu.Add("farmW", new CheckBox("Lane clear W", false));
            FarmMenu.Add("Mana", new Slider("LaneClear Mana", 80));
            FarmMenu.Add("LCminions", new Slider("LaneClear minimum minions", 2, 0, 10));
            FarmMenu.Add("jungleQ", new CheckBox("Jungle clear Q"));
            FarmMenu.Add("jungleW", new CheckBox("Jungle clear W"));

            Game.OnUpdate += Game_OnGameUpdate;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser     += AntiGapcloser_OnEnemyGapcloser;
            Drawing.OnDraw      += Drawing_OnDraw;
            GameObject.OnCreate += SpellMissile_OnCreateOld;
            GameObject.OnDelete += Obj_SpellMissile_OnDelete;
        }
Beispiel #2
0
        void LoadMenu
            ()
        {
            Menu = MainMenu.AddMenu("Ezrealthetroll", "Ezrealthetroll");
            Menu.AddGroupLabel("EzreaL the Troll!");
            Menu.AddGroupLabel("Made by MeLoSenpai!");
            Menu.AddGroupLabel("Version 1 Hf Gl and dont troll!");

            ComboMenu = Menu.AddSubMenu("Combo Settings", "Combo");
            ComboMenu.AddGroupLabel("Combo Settigns:");
            ComboMenu.Add("Qlogic", new ComboBox("Mystic Shot Logic ", 0, "Normal", "After AA"));
            ComboMenu.Add("Wlogic", new ComboBox("Essence Flux Logic ", 0, "Normal", "After AA"));
            ComboMenu.AddLabel("R Settings:");
            ComboMenu.Add("useRCombo", new CheckBox("Use Trueshot Barrage", false));
            ComboMenu.Add("Rlogic", new ComboBox("Trueshot Barrage", 0, "EnemyHp", "HitCountEnemys"));
            ComboMenu.Add("Hp", new Slider("Use Trueshot Barrage if Enemy Health {0}(%)", 45, 0, 100));
            ComboMenu.Add("Rcount", new Slider("If Trueshot Barrage Hit {0} Enemy ", 2, 1, 5));
            ComboMenu.AddLabel("Use Trueshot Barrage Range Settigs For all Logic:");
            ComboMenu.Add("useRRange", new Slider("Use Trueshot Barrage Max Range", 1800, 500, 2000));
            ComboMenu.AddGroupLabel("Combo preferences:");
            ComboMenu.Add("E", new CheckBox("Use Arcane Shift"));
            ComboMenu.Add("CCQ", new CheckBox("Auto Mystic Shot on Enemy CC"));
            ComboMenu.Add("CCW", new CheckBox("Auto Essence Flux on Enemy CC"));
            ComboMenu.Add("ForceR",
                          new KeyBind("Force R On Target Selector", false, KeyBind.BindTypes.HoldActive, "H".ToCharArray()[0]));

            EMenu = Menu.AddSubMenu("Arcane Shift");
            EMenu.AddGroupLabel("Arcane Shift Settings");
            ESafe    = EMenu.Add("Esafe", new CheckBox("Safe Point Check E"));
            EWall    = EMenu.Add("Ewall", new CheckBox("Check Wall"));
            ECorrect = EMenu.Add("Ecorrect", new CheckBox("Allow Correct to better"));
            ERange   = EMenu.Add("Erange", new Slider("Range eliminate {0}", 35, 0, 75));
            EMenu.Add("label",
                      new Label("The more value, the more easier for next a.a, the more dangerous, recommended 20~40"));
            EPath  = EMenu.Add("Epath", new CheckBox("Anti Enemy Path"));
            EKite  = EMenu.Add("Ekite", new CheckBox("Try to kite champ"));
            EGap   = EMenu.Add("Etogap", new CheckBox("Use Arcane Shift to Gapclose taget"));
            EGrass = EMenu.Add("Egrass", new CheckBox("Try Arcane Shift to Grass"));
            EMenu.AddSeparator();
            EMenu.AddGroupLabel("Arcane Shift Style Settings");
            var EStyle = EMenu.Add("E",
                                   new ComboBox("Arcane Shift Logic", 1, "Don't use E", "Auto Adc Kappa", "CursorPos", "Cursor (Smart)"));

            EStyle.OnValueChange += delegate(ValueBase <int> sender, ValueBase <int> .ValueChangeArgs args)
            {
                switch (args.NewValue)
                {
                case 1:
                {
                    ESafe.IsVisible          = true;
                    ESafe.CurrentValue       = true;
                    EWall.IsVisible          = true;
                    EWall.CurrentValue       = true;
                    ECorrect.IsVisible       = true;
                    ERange.IsVisible         = true;
                    EMenu["label"].IsVisible = true;
                    EPath.CurrentValue       = true;
                    EPath.IsVisible          = true;
                    EKite.CurrentValue       = true;
                    EKite.IsVisible          = true;
                    EGap.IsVisible           = true;
                    EGrass.IsVisible         = false;
                }
                break;

                case 2:
                {
                    ESafe.IsVisible          = false;
                    EWall.IsVisible          = false;
                    ECorrect.IsVisible       = false;
                    ERange.IsVisible         = false;
                    EMenu["label"].IsVisible = false;
                    EPath.IsVisible          = false;
                    EKite.IsVisible          = false;
                    EGap.IsVisible           = false;
                    EGrass.IsVisible         = false;
                }
                break;

                case 3:
                {
                    ESafe.CurrentValue       = true;
                    EWall.CurrentValue       = false;
                    ECorrect.IsVisible       = true;
                    ECorrect.CurrentValue    = true;
                    ERange.IsVisible         = false;
                    EMenu["label"].IsVisible = false;
                    EPath.IsVisible          = false;
                    EKite.IsVisible          = true;
                    EGap.IsVisible           = true;
                    EGrass.IsVisible         = true;
                }
                break;
                }
            };


            PredictionMenu = Menu.AddSubMenu("Prediction Settings", "Prediction");
            PredictionMenu.AddGroupLabel("Prediction Settings:");
            PredictionMenu.Add("Qpred", new Slider("Select Mystic Shot {0}(%) Hitchance", 80, 0, 100));
            PredictionMenu.Add("Wpred", new Slider("Select Essence Flux {0}(%) Hitchance", 80, 0, 100));
            PredictionMenu.Add("rpred", new Slider("Select Trueshot Barrage {0}(%) Hitchance", 80, 0, 100));
            PredictionMenu.AddLabel("Work Only For Normal Q/W And All R Logic");
            PredictionMenu.AddLabel(
                "Higher % ->Higher chance of spell landing on target but takes more time to get casted");
            PredictionMenu.AddLabel(
                "Lower % ->Faster casting but lower chance that the spell will land on your target. ");

            HarassMenu = Menu.AddSubMenu("Harass Settings", "Harass");
            HarassMenu.AddGroupLabel("Harass Settings:");
            HarassMenu.Add("useQHarass", new CheckBox("Use Mystic Shot"));
            HarassMenu.Add("useWHarass", new CheckBox("Use Essence Flux"));
            HarassMenu.Add("useWHarassMana", new Slider("Min Mana {0}(%)", 70, 0, 100));
            HarassMenu.AddLabel("AutoHarass Settings:");
            HarassMenu.Add("autoQHarass", new CheckBox("Auto Mystic Shot for Harass", false));
            HarassMenu.Add("autoWHarass", new CheckBox("Auto Essence Flux for Harass", false));
            HarassMenu.Add("autoWHarassMana", new Slider("Min Mana {0}(%)", 70, 0, 100));

            JungleLaneMenu = Menu.AddSubMenu("Lane Clear Settings", "FarmSettings");
            JungleLaneMenu.AddGroupLabel("Lane Clear Settings:");
            JungleLaneMenu.Add("useQFarm", new CheckBox("Use Mystic Shot Last Hit"));
            JungleLaneMenu.Add("useQManalane", new Slider("Min Mana {0}(%)", 70, 0, 100));
            JungleLaneMenu.Add("UseQUnkillableMinion", new CheckBox("Use Mystic Shot Unkillable Minion"));
            JungleLaneMenu.Add("Unkillablemana", new Slider("Min Mana {0}(%)", 70, 0, 100));
            JungleLaneMenu.AddLabel("Jungle Clear Settings:");
            JungleLaneMenu.Add("useQJungle", new CheckBox("Use Mystic Shot"));
            JungleLaneMenu.Add("useQMana", new Slider("Min Mana {0}(%)", 70, 0, 100));

            FleEMenu = Menu.AddSubMenu("Flee Settings", "FleEMenu");
            FleEMenu.Add("FleeE", new CheckBox("Use E"));

            KillsecureMenu = Menu.AddSubMenu("KillSecure Settings", "MiscSettings");
            KillsecureMenu.AddLabel("KillSecure Settings:");
            KillsecureMenu.Add("UseQks", new CheckBox("Use Mystic Shot ks"));
            KillsecureMenu.Add("UseWks", new CheckBox("Use Essence Flux ks"));
            KillsecureMenu.Add("UseRks", new CheckBox("Use Trueshot Barrage ks"));


            AutoPotHealMenu = Menu.AddSubMenu("Potion & HeaL", "Potion & HeaL");
            AutoPotHealMenu.AddGroupLabel("Auto pot usage");
            AutoPotHealMenu.Add("potion", new CheckBox("Use potions"));
            AutoPotHealMenu.Add("potionminHP", new Slider("Minimum Health {0}(%) to use potion", 40));
            AutoPotHealMenu.Add("potionMinMP", new Slider("Minimum Mana {0}(%) to use potion", 20));
            AutoPotHealMenu.AddLabel("AUto Heal Usage");
            AutoPotHealMenu.Add("UseHeal", new CheckBox("Use Heal"));
            AutoPotHealMenu.Add("useHealHP", new Slider("Minimum Health {0}(%) to use Heal", 20));

            ItemMenu = Menu.AddSubMenu("Item Settings", "ItemMenuettings");
            ItemMenu.AddGroupLabel("Item Settings");
            ItemMenu.Add("StackTear", new CheckBox("Auto stack tear in Base", true));
            ItemMenu.AddLabel("Botrk settings");
            ItemMenu.Add("useBOTRK", new CheckBox("Use BOTRK"));
            ItemMenu.Add("useBotrkMyHP", new Slider("My Health {0}(%) ", 60, 1, 100));
            ItemMenu.Add("useBotrkEnemyHP", new Slider("Enemy Health {0}(%) ", 60, 1, 100));
            ItemMenu.Add("useYoumu", new CheckBox("Use Youmu"));
            ItemMenu.AddLabel("QQs Settings");
            ItemMenu.Add("useQSS", new CheckBox("Use QSS"));
            ItemMenu.Add("Qssmode", new ComboBox(" ", 0, "Auto", "Combo"));
            foreach (var debuff in DeBuffsList)
            {
                ItemMenu.Add(debuff.ToString(), new CheckBox(debuff.ToString()));
            }

            ItemMenu.Add("QssDelay", new Slider("Use QSS Delay(ms)", 250, 0, 1000));


            SkinMenu = Menu.AddSubMenu("Skin Changer", "SkinChanger");
            SkinMenu.Add("checkSkin", new CheckBox("Use Skin Changer"));
            SkinMenu.Add("skin.Id", new Slider("Skin", 1, 0, 9));

            DrawMenu = Menu.AddSubMenu("Drawing Settings");
            DrawMenu.Add("drawQ", new CheckBox("Draw Mystic Shot Range"));
            DrawMenu.Add("drawW", new CheckBox("Draw Essence Flux Range"));
            DrawMenu.Add("drawR", new CheckBox("Draw Trueshot Barrage Range"));
            DrawMenu.AddLabel("Recall Tracker");
            DrawMenu.Add("draw.Recall", new CheckBox("Chat Print"));
            DrawMenu.AddLabel("Damage indicators");
            DrawMenu.Add("healthbar", new CheckBox("Healthbar overlay"));
            DrawMenu.Add("percent", new CheckBox("Damage percent info"));
            DrawMenu.Add("howaa", new CheckBox("How Many AA"));
            DrawMenu.Add("Rkill", new CheckBox("Trueshot Barrage kill "));
        }
Beispiel #3
0
        private static void OnLoaded(EventArgs args)
        {
            if (Player.Instance.ChampionName != "Shen")
            {
                return;
            }
            Bootstrap.Init(null);
            Q = new Spell.Targeted(SpellSlot.Q, 475);
            W = new Spell.Active(SpellSlot.W);
            E = new Spell.Skillshot(SpellSlot.E, 600, SkillShotType.Linear, 250, 1600, 50);
            R = new Spell.Targeted(SpellSlot.R, 31000);
            if (HasSpell("summonerdot"))
            {
                Ignite = new Spell.Targeted(ObjectManager.Player.GetSpellSlotFromName("summonerdot"), 600);
            }
            Exhaust = new Spell.Targeted(ObjectManager.Player.GetSpellSlotFromName("summonerexhaust"), 650);
            var FlashSlot = Shen.GetSpellSlotFromName("summonerflash");

            Flash           = new Spell.Skillshot(FlashSlot, 32767, SkillShotType.Linear);
            Randuin         = new Item((int)ItemId.Randuins_Omen);
            AbilitySequence = new int[] { 1, 3, 2, 1, 1, 4, 1, 2, 1, 2, 4, 2, 2, 3, 3, 4, 3, 3 };

            ShenMenu = MainMenu.AddMenu("BloodimirShen", "bloodimirshen");
            ShenMenu.AddGroupLabel("Bloodimir Shen");
            ShenMenu.AddSeparator();
            ShenMenu.AddLabel("Bloodimir Shen v1.0.0.0");

            ComboMenu = ShenMenu.AddSubMenu("Combo", "sbtw");
            ComboMenu.AddGroupLabel("Combo Settings");
            ComboMenu.AddSeparator();
            ComboMenu.Add("usecomboq", new CheckBox("Use Q"));
            ComboMenu.Add("usecombow", new CheckBox("Use W"));
            ComboMenu.Add("usecomboe", new CheckBox("Use E"));
            ComboMenu.Add("useignite", new CheckBox("Use Ignite"));

            SkinMenu = ShenMenu.AddSubMenu("Skin Changer", "skin");
            SkinMenu.AddGroupLabel("Choose the desired skin");

            var skinchange = SkinMenu.Add("sID", new Slider("Skin", 5, 0, 6));
            var sID        = new[]
            {
                "Default", "Frozen", "Yellow Jacket", "Surgeon", "Blood Moon", "Warlord", "TPA"
            };

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

            EMenu = ShenMenu.AddSubMenu("Taunt", "etaunt");
            EMenu.AddGroupLabel("E Settings");
            EMenu.Add("eslider", new Slider("Minimum Enemy to Taunt", 1, 0, 5));
            EMenu.Add("fleee", new CheckBox("Use E Flee"));
            EMenu.AddSeparator();
            foreach (var obj in ObjectManager.Get <AIHeroClient>().Where(obj => obj.Team != Shen.Team))
            {
                EMenu.Add("taunt" + obj.ChampionName.ToLower(), new CheckBox("Taunt " + obj.ChampionName));
            }
            EMenu.Add("flashe", new KeyBind("Flash E", false, KeyBind.BindTypes.HoldActive, 'Y'));
            EMenu.Add("e", new KeyBind("E", false, KeyBind.BindTypes.HoldActive, 'E'));

            UltMenu = ShenMenu.AddSubMenu("ULT", "ultmenu");
            UltMenu.AddGroupLabel("ULT");
            UltMenu.AddSeparator();
            UltMenu.Add("autoult", new CheckBox("Auto Ult on Key Press"));
            UltMenu.Add("rslider", new Slider("Health Percent for Ult", 20));
            UltMenu.AddSeparator();
            UltMenu.Add("ult", new KeyBind("ULT", false, KeyBind.BindTypes.HoldActive, 'R'));

            MiscMenu = ShenMenu.AddSubMenu("Misc", "misc");
            MiscMenu.AddGroupLabel("Misc");
            MiscMenu.AddSeparator();
            MiscMenu.Add("ksq", new CheckBox("KS with Q"));
            MiscMenu.Add("LHQ", new CheckBox("Last Hit Q"));
            MiscMenu.Add("LCQ", new CheckBox("LaneClear Q"));
            MiscMenu.Add("int", new CheckBox("Interrupt Spells"));
            MiscMenu.AddSeparator();
            MiscMenu.Add("support", new CheckBox("Support Mode", false));
            MiscMenu.Add("useexhaust", new CheckBox("Use Exhaust"));
            MiscMenu.Add("randuin", new CheckBox("Use Randuin"));
            MiscMenu.Add("autow", new CheckBox("Auto W"));
            MiscMenu.AddSeparator();
            MiscMenu.Add("WHPPercent", new Slider("Auto W HP %", 45));
            MiscMenu.AddSeparator();
            MiscMenu.Add("lvlup", new CheckBox("Auto Level Up Spells", false));
            foreach (var source in ObjectManager.Get <AIHeroClient>().Where(a => a.IsEnemy))
            {
                MiscMenu.Add(source.ChampionName + "exhaust",
                             new CheckBox("Exhaust " + source.ChampionName, false));
            }


            DrawMenu = ShenMenu.AddSubMenu("Drawings", "drawings");
            DrawMenu.AddGroupLabel("Drawings");
            DrawMenu.AddSeparator();
            DrawMenu.Add("drawq", new CheckBox("Draw Q"));
            DrawMenu.Add("drawe", new CheckBox("Draw E"));
            DrawMenu.Add("drawfq", new CheckBox("Draw FlashQ"));

            Interrupter.OnInterruptableSpell += Interrupter_OnInterruptableSpell;
            Game.OnUpdate                  += OnUpdate;
            Drawing.OnDraw                 += OnDraw;
            Orbwalker.OnPreAttack          += Orbwalker_OnPreAttack;
            Obj_AI_Base.OnProcessSpellCast += Auto_WOnProcessSpell;
            Core.DelayAction(FlashE, 60);
        }
Beispiel #4
0
        public static void LoadOKTW()
        {
            Q = new Spell(SpellSlot.Q, 870);
            W = new Spell(SpellSlot.W, 580);
            E = new Spell(SpellSlot.E, 950);
            R = new Spell(SpellSlot.R, 600);

            Q.SetSkillshot(0.25f, 90, 1550, false, SkillshotType.SkillshotLine);
            E.SetSkillshot(0.25f, 60, 1550, true, SkillshotType.SkillshotLine);

            missileManager = new MissileReturn("AhriOrbMissile", "AhriOrbReturn", Q);

            missileManager = new MissileReturn("AhriOrbMissile", "AhriOrbReturn", Q);

            drawMenu = Config.AddSubMenu("线圈");
            drawMenu.Add("noti", new CheckBox("显示提示 & 线"));
            drawMenu.Add("onlyRdy", new CheckBox("只显示无冷却技能"));
            drawMenu.Add("qRange", new CheckBox("Q 范围", false));
            drawMenu.Add("wRange", new CheckBox("W 范围", false));
            drawMenu.Add("eRange", new CheckBox("E 范围", false));
            drawMenu.Add("rRange", new CheckBox("R 范围", false));
            drawMenu.Add("Qhelp", new CheckBox("显示 Q助手"));

            QMenu = Config.AddSubMenu("Q 设置");
            QMenu.Add("autoQ", new CheckBox("自动 Q"));
            QMenu.Add("harrasQ", new CheckBox("骚扰 Q"));
            QMenu.Add("aimQ", new CheckBox("自动校准 Q 物体"));

            WMenu = Config.AddSubMenu("W 设置");
            WMenu.Add("autoW", new CheckBox("自动 W"));
            WMenu.Add("harrasW", new CheckBox("骚扰 W"));

            EMenu = Config.AddSubMenu("E 设置");
            EMenu.Add("autoE", new CheckBox("自动 E"));
            EMenu.Add("harrasE", new CheckBox("骚扰 E"));
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                EMenu.Add("Eon" + enemy.NetworkId, new CheckBox("E : " + enemy.ChampionName));
            }
            EMenu.AddSeparator();
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                EMenu.Add("Egapcloser" + enemy.NetworkId, new CheckBox("Gapclose : " + enemy.ChampionName));
            }

            RMenu = Config.AddSubMenu("R 设置");
            RMenu.Add("autoR", new CheckBox("R 抢头 "));
            RMenu.Add("autoR2", new CheckBox("自动 团战R逻辑 + Q 校准"));

            harassMenu = Config.AddSubMenu("骚扰");
            foreach (var enemy in ObjectManager.Get <AIHeroClient>().Where(enemy => enemy.IsEnemy))
            {
                harassMenu.Add("harras" + enemy.NetworkId, new CheckBox(enemy.ChampionName));
            }

            FarmMenu = Config.AddSubMenu("农兵");
            FarmMenu.Add("farmQ", new CheckBox("清线 Q"));
            FarmMenu.Add("farmW", new CheckBox("清线 W", false));
            FarmMenu.Add("Mana", new Slider("清线蓝量", 80));
            FarmMenu.Add("LCminions", new Slider("清线最低小兵数量", 2, 0, 10));
            FarmMenu.Add("jungleQ", new CheckBox("清野 Q"));
            FarmMenu.Add("jungleW", new CheckBox("清野 W"));

            Game.OnUpdate += Game_OnGameUpdate;
            Interrupter2.OnInterruptableTarget += Interrupter2_OnInterruptableTarget;
            AntiGapcloser.OnEnemyGapcloser     += AntiGapcloser_OnEnemyGapcloser;
            Drawing.OnDraw      += Drawing_OnDraw;
            GameObject.OnCreate += SpellMissile_OnCreateOld;
            GameObject.OnDelete += Obj_SpellMissile_OnDelete;
        }