private static void OnTargetSpellDetection(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                // TODO: add menu check
                //Cassiopeia_Base_E_TwinFang_tar.troy
                //Cassiopeia_Base_E_TwinFang_mis.troy

                /* foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(args.SData))
                 * {
                 *   string name = descriptor.Name;
                 *   object value = descriptor.GetValue(args.SData);
                 *  // if (value == "Cassiopeia_Base_E_TwinFang_mis.troy")
                 *    Console.WriteLine("{0}={1}", name, value);
                 * }*/

                var caster = sender as AIHeroClient;
                var target = args.Target as Obj_AI_Base;
                if (caster == null || target == null)
                {
                    return;
                }

                var data = TargetSpellDatabase.GetByName(args.SData.Name);
                if (Orbwalking.IsAutoAttack(args.SData.Name))
                {
                    data = new TargetSpellData(
                        caster.ChampionName.ToLower(),
                        args.SData.Name.ToLower(),
                        SpellSlot.Unknown,
                        SpellType.AutoAttack,
                        CcType.No,
                        caster.AttackRange,
                        caster.AttackDelay,
                        caster.BasicAttack.MissileSpeed); // TODO: check melee
                }
                return;

                /*if (data == null)
                 * {
                 *  Console.WriteLine("Target Spell not Found: " + args.SData.Name);
                 *  return;
                 * }*/

                ActiveTargeted.Add(new TargetSpell
                {
                    Caster        = caster,
                    Target        = target,
                    Spell         = data,
                    StartTick     = Environment.TickCount,
                    StartPosition = args.Start.To2D(),
                    blockBelow    = TargetedSpellManager.blockSpellOnHP(caster.ChampionName, args.SData.Name),
                    spellArgs     = args,
                    particleName  = getParticleName(args.SData.MissileEffectName)
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #2
0
        private static void onLoad(EventArgs args)
        {
            if (ObjectManager.Player.ChampionName != CharName)
            {
                return;
            }

            Yasuo.setSkillShots();
            Yasuo.setDashes();
            Yasuo.point1 = Yasuo.Player.Position;
            Game.PrintChat("YasuoSharpV2 by DeTuKs");

            Console.WriteLine("YasuoSharpV2 by DeTuKs");

            try
            {
                Config = new Menu("YasuoSharp", "Yasuo", true);
                //Orbwalker
                Config.AddSubMenu(new Menu("Orbwalker", "Orbwalker"));
                Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker"));
                //TS
                var TargetSelectorMenu = new Menu("Target Selector", "Target Selector");
                TargetSelector.AddToMenu(TargetSelectorMenu);
                Config.AddSubMenu(TargetSelectorMenu);
                //Combo
                Config.AddSubMenu(new Menu("Combo Sharp", "combo"));
                Config.SubMenu("combo").AddItem(new MenuItem("comboItems", "Use Items")).SetValue(true);
                //SmartR
                Config.SubMenu("combo").AddItem(new MenuItem("smartR", "Smart R")).SetValue(true);
                Config.SubMenu("combo").AddItem(new MenuItem("useRHit", "Use R if hit")).SetValue(new Slider(3, 5, 1));
                Config.SubMenu("combo").AddItem(new MenuItem("useRHitTime", "Use R when they land")).SetValue(true);
                Config.SubMenu("combo").AddItem(new MenuItem("useEWall", "use E to safe")).SetValue(true);
                //Flee away
                Config.SubMenu("combo").AddItem(new MenuItem("flee", "E away")).SetValue(new KeyBind('Z', KeyBindType.Press, false));
                Config.SubMenu("combo").AddItem(new MenuItem("fleeStack", "Stack Q while flee")).SetValue(true);


                //LastHit
                Config.AddSubMenu(new Menu("LastHit Sharp", "lHit"));
                Config.SubMenu("lHit").AddItem(new MenuItem("useQlh", "Use Q")).SetValue(true);
                Config.SubMenu("lHit").AddItem(new MenuItem("useElh", "Use E")).SetValue(true);
                //LaneClear
                Config.AddSubMenu(new Menu("LaneClear Sharp", "lClear"));
                Config.SubMenu("lClear").AddItem(new MenuItem("useQlc", "Use Q")).SetValue(true);
                Config.SubMenu("lClear").AddItem(new MenuItem("useEmpQHit", "Emp Q Min hit")).SetValue(new Slider(3, 6, 1));
                Config.SubMenu("lClear").AddItem(new MenuItem("useElc", "Use E")).SetValue(true);
                //Harass
                Config.AddSubMenu(new Menu("Harass Sharp", "harass"));
                Config.SubMenu("harass").AddItem(new MenuItem("harassTower", "Harass under tower")).SetValue(false);
                Config.SubMenu("harass").AddItem(new MenuItem("harassOn", "Harass enemies")).SetValue(true);
                Config.SubMenu("harass").AddItem(new MenuItem("harQ3Only", "Use only Q3")).SetValue(false);
                //Drawings
                Config.AddSubMenu(new Menu("Drawing Sharp", "drawing"));
                Config.SubMenu("drawing").AddItem(new MenuItem("disDraw", "Dissabel drawing")).SetValue(false);
                Config.SubMenu("drawing").AddItem(new MenuItem("drawQ", "Draw Q range")).SetValue(true);
                Config.SubMenu("drawing").AddItem(new MenuItem("drawE", "Draw E range")).SetValue(true);
                Config.SubMenu("drawing").AddItem(new MenuItem("drawR", "Draw R range")).SetValue(true);
                Config.SubMenu("drawing").AddItem(new MenuItem("drawWJ", "Draw Wall Jumps")).SetValue(true);

                //Extra
                Config.AddSubMenu(new Menu("Extra Sharp", "extra"));
                Config.SubMenu("extra").AddItem(new MenuItem("djTur", "Dont Jump turrets")).SetValue(true);
                Config.SubMenu("extra").AddItem(new MenuItem("autoLevel", "Auto Level")).SetValue(true);
                Config.SubMenu("extra").AddItem(new MenuItem("levUpSeq", "")).SetValue(new StringList(new string[2] {
                    "Q E W Q start", "Q E Q W start"
                }));

                //LastHit
                Config.AddSubMenu(new Menu("Wall Usage", "aShots"));
                //SmartW
                Config.SubMenu("aShots").AddItem(new MenuItem("smartW", "Smart WW")).SetValue(true);
                Config.SubMenu("aShots").AddItem(new MenuItem("smartEDogue", "E use dogue")).SetValue(true);
                Config.SubMenu("aShots").AddItem(new MenuItem("wwDanger", "WW only dangerous")).SetValue(false);
                Config.SubMenu("aShots").AddItem(new MenuItem("wwDmg", "WW if does proc HP")).SetValue(new Slider(0, 100, 1));
                skillShotMenu = getSkilshotMenu();
                Config.SubMenu("aShots").AddSubMenu(skillShotMenu);

                Config.SubMenu("aShots").AddSubMenu(TargetedSpellManager.setUp());
                //Streaming
                Config.AddSubMenu(new Menu("Stream Sharp", "stream"));
                Config.SubMenu("stream").AddItem(new MenuItem("streamMouse", "SimulateMouse")).SetValue(false);

                //Debug
                Config.AddSubMenu(new Menu("Debug", "debug"));
                Config.SubMenu("debug").AddItem(new MenuItem("WWLast", "Print last ww blocked")).SetValue(new KeyBind('T', KeyBindType.Press, false));
                Config.SubMenu("debug").AddItem(new MenuItem("saveDash", "saveDashd")).SetValue(new KeyBind('O', KeyBindType.Press, false));
                Config.SubMenu("debug").AddItem(new MenuItem("exportDash", "export dashes")).SetValue(new KeyBind('P', KeyBindType.Press, false));
                Config.SubMenu("debug").AddItem(new MenuItem("deleteDash", "deleteLastDash")).SetValue(new KeyBind('I', KeyBindType.Press, false));

                Config.AddToMainMenu();

                TargetSpellDetector.init();

                Drawing.OnDraw += onDraw;
                Game.OnUpdate  += OnGameUpdate;

                GameObject.OnCreate            += OnCreateObject;
                GameObject.OnDelete            += OnDeleteObject;
                Obj_AI_Base.OnProcessSpellCast += OnProcessSpell;
                Spellbook.OnStopCast           += onStopCast;
                CustomEvents.Unit.OnLevelUp    += OnLevelUp;

                SkillshotDetector.OnDetectSkillshot += OnDetectSkillshot;
                SkillshotDetector.OnDeleteMissile   += OnDeleteMissile;
            }
            catch
            {
                Game.PrintChat("Oops. Something went wrong with Yasuo - Sharpino");
            }
        }
        private static void OnTargetSpellDetection(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            try
            {
                //MissileEffect=Cassiopeia_Base_E_TwinFang_mis.troy
                if (sender.Position.Distance(ObjectManager.Player.Position) > DetectionRange)
                {
                    return; // only detect spells in range
                }
                if (!sender.IsValid <Obj_AI_Hero>())
                {
                    return; // only hero
                }
                if (!args.Target.IsValid <Obj_AI_Base>())
                {
                    return; // only targeted
                }
                if (args.SData.Name.ToLower().Contains("summoner") || args.SData.Name.ToLower().Contains("recall"))
                {
                    return; // ignore summoners TODO: add summoners to database
                }
                // TODO: add menu check
                //Cassiopeia_Base_E_TwinFang_tar.troy
                //Cassiopeia_Base_E_TwinFang_mis.troy

                /* foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(args.SData))
                 * {
                 *   string name = descriptor.Name;
                 *   object value = descriptor.GetValue(args.SData);
                 *  // if (value == "Cassiopeia_Base_E_TwinFang_mis.troy")
                 *    Console.WriteLine("{0}={1}", name, value);
                 * }*/

                var caster = (Obj_AI_Hero)sender;
                var target = (Obj_AI_Base)args.Target;
                var data   = TargetSpellDatabase.GetByName(args.SData.Name);


                if (Orbwalking.IsAutoAttack(args.SData.Name))
                {
                    data = new TargetSpellData(
                        caster.ChampionName.ToLower(),
                        args.SData.Name.ToLower(),
                        SpellSlot.Unknown,
                        SpellType.AutoAttack,
                        CcType.No,
                        caster.AttackRange,
                        caster.AttackDelay,
                        caster.BasicAttack.MissileSpeed); // TODO: check melee
                }

                /*if (data == null)
                 * {
                 *  Console.WriteLine("Target Spell not Found: " + args.SData.Name);
                 *  return;
                 * }*/

                ActiveTargeted.Add(new TargetSpell
                {
                    Caster        = caster,
                    Target        = target,
                    Spell         = data,
                    StartTick     = Environment.TickCount,
                    StartPosition = args.Start.To2D(),
                    blockBelow    = TargetedSpellManager.blockSpellOnHP(caster.ChampionName, args.SData.Name),
                    spellArgs     = args,
                    particleName  = getParticleName(args.SData.MissileEffect)
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemple #4
0
        private static void onLoad(EventArgs args)
        {
            if (ObjectManager.Player.ChampionName != CharName)
            {
                return;
            }

            Yasuo.setSkillShots();
            Yasuo.setDashes();
            Yasuo.point1 = Yasuo.Player.Position;
            Chat.Print("YasuoSharpV2 by DeTuKs");

            Console.WriteLine("YasuoSharpV2 by DeTuKs");

            try
            {
                Config = MainMenu.AddMenu("YasuoSharp", "YasuoASHARP");

                //Combo
                comboMenu = Config.AddSubMenu("Combo Sharp", "combo");
                comboMenu.Add("comboItems", new CheckBox("Use Items"));

                //SmartR
                smartR = Config.AddSubMenu("Smart R");
                smartR.Add("smartR", new CheckBox("Smart R"));
                smartR.Add("useRHit", new Slider("Use R if hit", 3, 1, 5));
                smartR.Add("useRHitTime", new CheckBox("Use R when they land"));
                smartR.Add("useEWall", new CheckBox("use E to safe"));

                //Flee away
                flee = Config.AddSubMenu("Flee");
                //flee.Add("flee", new KeyBind("E away", false, KeyBind.BindTypes.HoldActive, 'Z'));
                flee.Add("fleeStack", new CheckBox("Stack Q while flee"));

                //LastHit
                lasthit = Config.AddSubMenu("LastHit Sharp", "lHit");
                lasthit.Add("useQlh", new CheckBox("Use Q"));
                lasthit.Add("useElh", new CheckBox("Use E"));

                //LaneClear
                laneclear = Config.AddSubMenu("LaneClear Sharp", "lClear");
                laneclear.Add("useQlc", new CheckBox("Use Q"));
                laneclear.Add("useEmpQHit", new Slider("Emp Q Min hit", 3, 1, 6));
                laneclear.Add("useElc", new CheckBox("Use E"));

                //Harass
                harass = Config.AddSubMenu("Harass Sharp", "harass");
                harass.Add("harassTower", new CheckBox("Harass under tower", false));
                harass.Add("harassOn", new CheckBox("Harass enemies"));
                harass.Add("harQ3Only", new CheckBox("Use only Q3", false));

                //Drawings
                drawings = Config.AddSubMenu("Drawing Sharp", "drawing");
                drawings.Add("disDraw", new CheckBox("Dissabel drawing", false));
                drawings.Add("drawQ", new CheckBox("Draw Q range"));
                drawings.Add("drawE", new CheckBox("Draw E range"));
                drawings.Add("drawR", new CheckBox("Draw R range"));
                drawings.Add("drawWJ", new CheckBox("Draw Wall Jumps"));

                //Extra
                extra = Config.AddSubMenu("Extra Sharp", "extra");
                extra.Add("djTur", new CheckBox("Dont Jump turrets"));
                extra.Add("autoLevel", new CheckBox("Auto Level"));
                extra.Add("levUpSeq", new ComboBox("Sequence : ", 0, "Q E W Q start", "Q E Q W start"));

                //SmartW
                smartW = Config.AddSubMenu("Wall Usage", "aShots");
                smartW.Add("smartW", new CheckBox("Smart WW"));
                smartW.Add("smartEDogue", new CheckBox("E use dogue"));
                smartW.Add("wwDanger", new CheckBox("WW only dangerous", false));
                smartW.Add("wwDmg", new Slider("WW if does proc HP", 0, 1, 100));
                getSkilshotMenu(smartW);
                TargetedSpellManager.setUp(smartW);

                //Debug
                debug = Config.AddSubMenu("Debug", "debug");
                debug.Add("WWLast", new KeyBind("Print last ww blocked", false, KeyBind.BindTypes.HoldActive, 'T'));
                debug.Add("saveDash", new KeyBind("saveDashd", false, KeyBind.BindTypes.HoldActive, 'O'));
                debug.Add("exportDash", new KeyBind("export dashes", false, KeyBind.BindTypes.HoldActive, 'P'));
                debug.Add("deleteDash", new KeyBind("deleteLastDash", false, KeyBind.BindTypes.HoldActive, 'I'));

                TargetSpellDetector.init();

                Drawing.OnDraw += onDraw;
                Game.OnUpdate  += OnGameUpdate;

                GameObject.OnCreate            += OnCreateObject;
                GameObject.OnDelete            += OnDeleteObject;
                Obj_AI_Base.OnProcessSpellCast += OnProcessSpell;
                Spellbook.OnStopCast           += onStopCast;
                CustomEvents.Unit.OnLevelUp    += OnLevelUp;

                Game.OnSendPacket    += OnGameSendPacket;
                Game.OnProcessPacket += OnGameProcessPacket;

                SkillshotDetector.OnDetectSkillshot += OnDetectSkillshot;
                SkillshotDetector.OnDeleteMissile   += OnDeleteMissile;
            }
            catch
            {
                Chat.Print("Oops. Something went wrong with Yasuo - Sharpino");
            }
        }