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); } }
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); }
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)); } } } } } }
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); } } } } }
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); } }
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); } }
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); } }
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"); }
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); } }
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]作者</font> <font color='#E6CAFF'>By: Kurisu</font>"); Chat.Print("<font size='27'>[ezEvade]作者</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); } }
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); * }*/ } } }
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); }
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); }
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); }
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); } }
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; } }
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"); }
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); } }
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); } }
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); } }
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); }
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); }
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()); }
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); } }
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); }
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); } }
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); } }
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; } } } } }