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_OnGameUpdate(EventArgs args) { ObjectCache.myHeroCache.UpdateInfo(); CheckHeroInDanger(); if (isChanneling && channelPosition.LSDistance(ObjectCache.myHeroCache.serverPos2D) > 50 ) //TODO: !myHero.IsChannelingImportantSpell() { isChanneling = false; } var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].Cast <Slider>().CurrentValue; //Tick limiter if (EvadeUtils.TickCount - lastTickCount > limitDelay && EvadeUtils.TickCount > lastStopEvadeTime && ObjectCache.menuCache.cache["DodgeSkillShots"].Cast <KeyBind>().CurrentValue) { DodgeSkillShots(); //walking ContinueLastBlockedCommand(); lastTickCount = EvadeUtils.TickCount; } if (ObjectCache.menuCache.cache["ActivateEvadeSpells"].Cast <KeyBind>().CurrentValue) { EvadeSpell.UseEvadeSpell(); //using spells } CheckDodgeOnlyDangerous(); RecalculatePath(); }
private void SpellDetector_OnProcessDetectedSpells() { GameData.HeroInfo.UpdateInfo(); if (!ConfigValue.DodgeSkillShots.GetBool()) { LastPosInfo = PositionInfo.SetAllUndodgeable(); EvadeSpell.UseEvadeSpell(); return; } if (GameData.HeroInfo.ServerPos2D.CheckDangerousPos(0) || GameData.HeroInfo.ServerPos2DExtra.CheckDangerousPos(0)) { if (EvadeSpell.PreferEvadeSpell()) { LastPosInfo = PositionInfo.SetAllUndodgeable(); } else { var calculationTimer = EvadeUtils.TickCount; var posInfo = EvadeHelper.GetBestPosition(); var caculationTime = EvadeUtils.TickCount - calculationTimer; if (NumCalculationTime > 0) { SumCalculationTime += caculationTime; AvgCalculationTime = SumCalculationTime / NumCalculationTime; } NumCalculationTime += 1; //ConsoleDebug.WriteLine("CalculationTime: " + caculationTime); /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo)) * { * return; * }*/ if (posInfo != null) { LastPosInfo = posInfo.CompareLastMovePos(); var travelTime = GameData.HeroInfo.ServerPos2DPing.Distance(LastPosInfo.Position) / GameData.MyHero.MoveSpeed; LastPosInfo.EndTime = EvadeUtils.TickCount + travelTime * 1000 - 100; } CheckHeroInDanger(); DodgeSkillShots(); //walking CheckLastMoveTo(); EvadeSpell.UseEvadeSpell(); //using spells } } else { LastPosInfo = PositionInfo.SetAllDodgeable(); CheckLastMoveTo(); } //ConsoleDebug.WriteLine("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count); }
public static bool CanHeroEvade(this Spell spell, Obj_AI_Base hero, out float rEvadeTime, out float rSpellHitTime) { var heroPos = hero.ServerPosition.To2D(); float evadeTime = 0; float spellHitTime = 0; float speed = hero.MoveSpeed; var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff); if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell)) { speed += speed * moveBuff.speedArray[ObjectManager.Player.GetSpell(moveBuff.spellKey).Level - 1] / 100; } if (spell.spellType == SpellType.Line) { var projection = heroPos.ProjectOn(spell.startPos, spell.endPos).SegmentPoint; evadeTime = 1000 * (spell.radius - heroPos.Distance(projection) + hero.BoundingRadius) / speed; spellHitTime = spell.GetSpellHitTime(projection); } else if (spell.spellType == SpellType.Circular) { evadeTime = 1000 * (spell.radius - heroPos.Distance(spell.endPos)) / speed; spellHitTime = spell.GetSpellHitTime(heroPos); } rEvadeTime = evadeTime; rSpellHitTime = spellHitTime; return(spellHitTime > evadeTime); }
private void Game_OnGameUpdate(EventArgs args) { try { if (Evade.GetTickCount() < lastTickCount) { Game.PrintChat("Time Error"); //lastTickCount = Evade.GetTickCount(); } CheckHeroInDanger(); ContinueLastBlockedCommand(); if (isChanneling && channelPosition.Distance(myHero.ServerPosition.To2D()) > 50) { isChanneling = false; } var limitDelay = Evade.menu.Item("TickLimiter").GetValue <Slider>().Value; //Tick limiter if (Evade.GetTickCount() - lastTickCount > limitDelay && Evade.GetTickCount() > lastStopEvadeTime) { DodgeSkillShots(); //walking EvadeSpell.UseEvadeSpell(); //using spells lastTickCount = Evade.GetTickCount(); } CheckDodgeOnlyDangerous(); } catch (Exception e) { Game.PrintChat(e.StackTrace); } }
private void Game_OnGameUpdate(EventArgs args) { try { ObjectCache.myHeroCache.UpdateInfo(); CheckHeroInDanger(); if (isChanneling && channelPosition.LSDistance(ObjectCache.myHeroCache.serverPos2D) > 50 && !myHero.IsChannelingImportantSpell()) { isChanneling = false; } var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].Cast <Slider>().CurrentValue; //Tick limiter if (EvadeHelper.fastEvadeMode || EvadeUtils.TickCount - lastTickCount > limitDelay && EvadeUtils.TickCount > lastStopEvadeTime) { DodgeSkillShots(); //walking ContinueLastBlockedCommand(); lastTickCount = EvadeUtils.TickCount; } EvadeSpell.UseEvadeSpell(); //using spells CheckDodgeOnlyDangerous(); RecalculatePath(); } catch (Exception e) { Console.WriteLine(e); } }
private void SpellDetector_OnProcessDetectedSpells() { ObjectCache.myHeroCache.UpdateInfo(); if (ObjectCache.menuCache.cache["DodgeSkillShots"].GetValue <KeyBind>().Active == false) { lastPosInfo = PositionInfo.SetAllUndodgeable(); EvadeSpell.UseEvadeSpell(); return; } if (ObjectCache.myHeroCache.serverPos2D.CheckDangerousPos(0) || ObjectCache.myHeroCache.serverPos2DExtra.CheckDangerousPos(0)) { if (EvadeSpell.PreferEvadeSpell()) { lastPosInfo = PositionInfo.SetAllUndodgeable(); } else { var calculationTimer = EvadeUtils.TickCount; var posInfo = EvadeHelper.GetBestPosition(); var caculationTime = EvadeUtils.TickCount - calculationTimer; if (numCalculationTime > 0) { sumCalculationTime += caculationTime; avgCalculationTime = sumCalculationTime / numCalculationTime; } numCalculationTime += 1; //Console.WriteLine("CalculationTime: " + caculationTime); /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo)) * { * return; * }*/ if (posInfo != null) { lastPosInfo = posInfo.CompareLastMovePos(); } CheckHeroInDanger(); DodgeSkillShots(); //walking CheckLastMoveTo(); EvadeSpell.UseEvadeSpell(); //using spells } } else { lastPosInfo = PositionInfo.SetAllDodgeable(); CheckLastMoveTo(); } //Console.WriteLine("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count); }
public static bool UseEkkoR(EvadeSpellData evadeSpell, bool process = true) { if ((from obj in ObjectManager.Get <Obj_AI_Minion>() where obj != null && obj.IsValid && !obj.IsDead && obj.Name == "Ekko" && obj.IsAlly select obj.ServerPosition.To2D()).Any(blinkPos => !blinkPos.CheckDangerousPos(10))) { EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process); //DelayAction.Add(50, () => myHero.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D())); return(true); } return(false); }
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); }
public static PositionInfo CanHeroWalkToPos(Vector2 pos, float speed, float delay, float extraDist, bool useServerPosition = true) { int posDangerLevel = 0; int posDangerCount = 0; float closestDistance = float.MaxValue; List <int> dodgeableSpells = new List <int>(); List <int> undodgeableSpells = new List <int>(); Vector2 heroPos = ObjectCache.myHeroCache.serverPos2D; var minComfortDistance = ObjectCache.menuCache.cache["MinComfortZone"].GetValue <Slider>().Value; if (useServerPosition == false) { heroPos = myHero.Position.To2D(); } foreach (KeyValuePair <int, Spell> entry in SpellDetector.spells) { Spell spell = entry.Value; var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff); if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell)) { speed += speed * moveBuff.speedArray[myHero.GetSpell(moveBuff.spellKey).Level - 1] / 100; } closestDistance = Math.Min(closestDistance, GetClosestDistanceApproach(spell, pos, speed, delay, heroPos, extraDist)); if (pos.InSkillShot(spell, ObjectCache.myHeroCache.boundingRadius - 6) || PredictSpellCollision(spell, pos, speed, delay, heroPos, extraDist, useServerPosition) || (spell.info.spellType != SpellType.Line && pos.isNearEnemy(minComfortDistance))) { posDangerLevel = Math.Max(posDangerLevel, spell.dangerlevel); posDangerCount += spell.dangerlevel; undodgeableSpells.Add(spell.spellID); } else { dodgeableSpells.Add(spell.spellID); } } return(new PositionInfo( pos, posDangerLevel, posDangerCount, posDangerCount > 0, closestDistance, dodgeableSpells, undodgeableSpells)); }
public static bool UseBrokenWings(EvadeSpellData evadeSpell, bool process = false) { var posInfo = EvadeHelper.GetBestPositionDash(evadeSpell); if (posInfo != null) { EvadeCommand.MoveTo(posInfo.position); DelayAction.Add(50, () => EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process)); return(true); } return(false); }
public static bool UsePounce(EvadeSpellData evadeSpell, bool process = true) { if (myHero.CharData.BaseSkinName != "Nidalee") { var posInfo = EvadeHelper.GetBestPositionDash(evadeSpell); if (posInfo != null) { EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process); return(true); } } return(false); }
public static bool UseEkkoE2(EvadeSpellData evadeSpell, bool process = true) { if (myHero.HasBuff("ekkoeattackbuff")) { var posInfo = EvadeHelper.GetBestPositionTargetedDash(evadeSpell); if (posInfo != null && posInfo.target != null) { EvadeSpell.CastEvadeSpell(() => EvadeCommand.Attack(evadeSpell, posInfo.target), process); //DelayAction.Add(50, () => myHero.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D())); return(true); } } return(false); }
public static bool CanHeroEvade(this Spell spell, Obj_AI_Base hero, out float rEvadeTime, out float rSpellHitTime) { var heroPos = hero.ServerPosition.To2D(); float evadeTime = 0; float spellHitTime = 0; float speed = hero.MoveSpeed; float delay = 0; var moveBuff = EvadeSpell.evadeSpells.OrderBy(s => s.dangerlevel).FirstOrDefault(s => s.evadeType == EvadeType.MovementSpeedBuff); if (moveBuff != null && EvadeSpell.ShouldUseMovementBuff(spell)) { speed += speed * moveBuff.speedArray[ObjectManager.Player.GetSpell(moveBuff.spellKey).Level - 1] / 100; //delay += moveBuff.spellDelay; delay += (moveBuff.spellDelay > 50 ? moveBuff.spellDelay : 0) + ObjectCache.gamePing; } if (spell.spellType == SpellType.Line) { var projection = heroPos.ProjectOn(spell.startPos, spell.endPos).SegmentPoint; evadeTime = 1000 * (spell.radius - heroPos.Distance(projection) + hero.BoundingRadius) / speed; spellHitTime = spell.GetSpellHitTime(projection); } else if (spell.spellType == SpellType.Circular) { evadeTime = 1000 * (spell.radius - heroPos.Distance(spell.endPos)) / speed; spellHitTime = spell.GetSpellHitTime(heroPos); } else if (spell.spellType == SpellType.Cone) { var sides = new[] { heroPos.ProjectOn(spell.cnStart, spell.cnLeft).SegmentPoint, heroPos.ProjectOn(spell.cnLeft, spell.cnRight).SegmentPoint, heroPos.ProjectOn(spell.cnRight, spell.cnStart).SegmentPoint }; var p = sides.OrderBy(x => x.Distance(x)).First(); evadeTime = 1000 * (spell.info.range / 2 - heroPos.Distance(p) + hero.BoundingRadius) / speed; spellHitTime = spell.GetSpellHitTime(heroPos); } rEvadeTime = evadeTime; rSpellHitTime = spellHitTime; return(spellHitTime > evadeTime + delay); }
public static bool UseEkkoR(EvadeSpellData evadeSpell, bool process = true) { foreach (var obj in ObjectManager.Get <Obj_AI_Minion>()) { if (obj != null && obj.IsValid && !obj.IsDead && obj.Name == "Ekko" && obj.IsAlly) { Vector2 blinkPos = obj.ServerPosition.To2D(); if (!blinkPos.CheckDangerousPos(10)) { EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell), process); //DelayAction.Add(50, () => EloBuddy.Player.IssueOrder(GameObjectOrder.MoveTo, posInfo.position.To3D())); return(true); } } } return(false); }
public static bool UseRappel(EvadeSpellData evadeSpell, bool process = true) { if (myHero.CharData.BaseSkinName != "Elise") { EvadeSpell.CastEvadeSpell(() => EvadeCommand.CastSpell(evadeSpell, myHero), process); return(true); } if (myHero.CharData.BaseSkinName == "Elise") { if (myHero.Spellbook.CanUseSpell(SpellSlot.R) == SpellState.Ready) { myHero.Spellbook.CastSpell(SpellSlot.R); } } return(false); }
private void Game_OnGameUpdate(EventArgs args) { try { CheckHeroInDanger(); CheckDodgeOnlyDangerous(); if (IsChanneling && ChannelPosition.Distance(GameData.HeroInfo.ServerPos2D) > 50) //TODO: !GameData.MyHero.IsChannelingImportantSpell() { IsChanneling = false; ConsoleDebug.WriteLineColor("Stopped Channeling.", ConsoleColor.Yellow); } //if (() Properties.Properties.Data["ResetConfig"].Cast<CheckBox>().CurrentValue) //{ // ResetConfig(); // menu["ResetConfig"].Cast<CheckBox>().CurrentValue = false; //} //if (() Properties.Properties.Data["ResetConfig200"].Cast<CheckBox>().CurrentValue) //{ // SetPatchConfig(); // menu["ResetConfig200"].Cast<CheckBox>().CurrentValue = false; //} var limitDelay = ConfigValue.TickLimiter.GetInt(); //Tick limiter if (EvadeUtils.TickCount - LastTickCount > limitDelay && EvadeUtils.TickCount > LastStopEvadeTime) { DodgeSkillShots(); //walking ContinueLastBlockedCommand(); LastTickCount = EvadeUtils.TickCount; } EvadeSpell.UseEvadeSpell(); //using spells RecalculatePath(); } catch (Exception e) { ConsoleDebug.WriteLine(e); } }
private void Game_OnGameUpdate(EventArgs args) { try { ObjectCache.myHeroCache.UpdateInfo(); CheckHeroInDanger(); if (isChanneling && channelPosition.Distance(ObjectCache.myHeroCache.serverPos2D) > 50 && !myHero.IsChannelingImportantSpell()) { isChanneling = false; } if (ObjectCache.menuCache.cache["ResetConfig"].GetValue <bool>()) { ResetConfig(); menu.Item("ResetConfig").SetValue(false); } if (ObjectCache.menuCache.cache["ResetConfig200"].GetValue <bool>()) { SetPatchConfig(); menu.Item("ResetConfig200").SetValue(false); } var limitDelay = ObjectCache.menuCache.cache["TickLimiter"].GetValue <Slider>().Value; //Tick limiter if (EvadeUtils.TickCount - lastTickCount > limitDelay && EvadeUtils.TickCount > lastStopEvadeTime) { DodgeSkillShots(); //walking ContinueLastBlockedCommand(); lastTickCount = EvadeUtils.TickCount; } EvadeSpell.UseEvadeSpell(); //using spells CheckDodgeOnlyDangerous(); } catch (Exception e) { Console.WriteLine(e); } }
private void RecalculatePath() { if (ObjectCache.menuCache.cache["RecalculatePosition"].Cast <CheckBox>().CurrentValue&& isDodging) //recheck path { if (lastPosInfo != null && !lastPosInfo.recalculatedPath) { var path = myHero.Path; if (path.Length > 0) { var movePos = path.Last().To2D(); if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking { var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0, false); if (posInfo.posDangerCount > lastPosInfo.posDangerCount) { lastPosInfo.recalculatedPath = true; if (EvadeSpell.PreferEvadeSpell()) { lastPosInfo = PositionInfo.SetAllUndodgeable(); } else { var newPosInfo = EvadeHelper.GetBestPosition(); if (newPosInfo.posDangerCount < posInfo.posDangerCount) { lastPosInfo = newPosInfo; CheckHeroInDanger(); DodgeSkillShots(); } } } } } } } }
private void SpellDetector_OnProcessDetectedSpells() { if (EvadeHelper.CheckDangerousPos(myHero.ServerPosition.To2D(), 0)) { if (Evade.menu.SubMenu("Main").Item("DodgeSkillShots").GetValue <KeyBind>().Active == false || EvadeSpell.PreferEvadeSpell()) { lastPosInfo = EvadeHelper.SetAllUndodgeable(); EvadeSpell.UseEvadeSpell(); //using spells } else { var posInfo = EvadeHelper.GetBestPosition(); /*if (EvadeHelper.GetHighestDetectedSpellID() > EvadeHelper.GetHighestSpellID(posInfo)) * { * return; * }*/ if (lastPosInfo != null && posInfo != null && lastPosInfo.posDangerCount < posInfo.posDangerCount) { return; } lastPosInfo = posInfo; CheckHeroInDanger(); DodgeSkillShots(); //walking EvadeSpell.UseEvadeSpell(); //using spells } } else { lastPosInfo = EvadeHelper.SetAllDodgeable(); } //Game.PrintChat("SkillsDodged: " + lastPosInfo.dodgeableSpells.Count + " DangerLevel: " + lastPosInfo.undodgeableSpells.Count); }
private void RecalculatePath() { if (ConfigValue.RecalculatePath.GetBool() && IsDodging) //recheck path { if (LastPosInfo != null && !LastPosInfo.RecalculatedPath) { var path = GameData.MyHero.Path; if (path.Length > 0) { var movePos = path.Last().To2D(); if (movePos.Distance(LastPosInfo.Position) < 5) //more strict checking { var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, GameData.HeroInfo.MoveSpeed, 0, 0, false); if (posInfo.PosDangerCount > LastPosInfo.PosDangerCount) { LastPosInfo.RecalculatedPath = true; if (EvadeSpell.PreferEvadeSpell()) { LastPosInfo = PositionInfo.SetAllUndodgeable(); } else { var newPosInfo = EvadeHelper.GetBestPosition(); if (newPosInfo.PosDangerCount < posInfo.PosDangerCount) { LastPosInfo = newPosInfo; CheckHeroInDanger(); DodgeSkillShots(); } } } } } } } }
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); }
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 DodgeSkillShots() { if (!Situation.ShouldDodge()) { isDodging = false; return; } /* * if (isDodging && playerInDanger == false) //serverpos test * { * myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false); * }*/ if (isDodging) { if (lastPosInfo != null) { /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells) * { * Spell spell = entry.Value; * * Game.PrintChat("" + (int)(GetTickCount()-spell.startTime)); * }*/ Vector2 lastBestPosition = lastPosInfo.position; if (menu.SubMenu("MiscSettings").Item("RecalculatePosition").GetValue <bool>())//recheck path { var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking { var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, myHero.MoveSpeed, 0, 0, false); if (EvadeHelper.isSamePosInfo(posInfo, lastPosInfo) && posInfo.posDangerCount > lastPosInfo.posDangerCount) { var newPosInfo = EvadeHelper.GetBestPosition(); if (newPosInfo.posDangerCount < posInfo.posDangerCount) { lastPosInfo = newPosInfo; CheckHeroInDanger(); } else if (EvadeSpell.PreferEvadeSpell()) { lastPosInfo = EvadeHelper.SetAllUndodgeable(); EvadeSpell.UseEvadeSpell(); //using spells) } } } } } EvadeCommand.MoveTo(lastBestPosition); } } else //if not dodging { //Check if hero will walk into a skillshot var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (EvadeHelper.CheckMovePath(movePos)) { var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos); if (posInfo != null) { EvadeCommand.MoveTo(posInfo.position); } return; } } } }
private void DodgeSkillShots() { if (!Situation.ShouldDodge()) { isDodging = false; return; } /* * if (isDodging && playerInDanger == false) //serverpos test * { * myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false); * }*/ if (isDodging) { if (lastPosInfo != null) { /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells) * { * Spell spell = entry.Value; * * Console.WriteLine("" + (int)(TickCount-spell.startTime)); * }*/ Vector2 lastBestPosition = lastPosInfo.position; if (ObjectCache.menuCache.cache["RecalculatePosition"].GetValue <bool>())//recheck path { var dodgeInterval = ObjectCache.menuCache.cache["DodgeInterval"].GetValue <Slider>().Value; if (lastPosInfo != null && !lastPosInfo.recalculatedPath && dodgeInterval <= EvadeUtils.TickCount - lastPosInfo.timestamp) { var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking { var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0, false); if (posInfo.isSamePosInfo(lastPosInfo) && posInfo.posDangerCount > lastPosInfo.posDangerCount) { var newPosInfo = EvadeHelper.GetBestPosition(); if (newPosInfo.posDangerCount < posInfo.posDangerCount) { lastPosInfo = newPosInfo; CheckHeroInDanger(); } else if (EvadeSpell.PreferEvadeSpell()) { lastPosInfo = PositionInfo.SetAllUndodgeable(); } else { lastPosInfo.recalculatedPath = true; } } } } } } if (ObjectCache.menuCache.cache["ClickOnlyOnce"].GetValue <bool>() == false || !(myHero.Path.Count() > 0 && lastPosInfo.position.Distance(myHero.Path.Last().To2D()) < 5)) //|| lastPosInfo.timestamp > lastEvadeOrderTime) { EvadeCommand.MoveTo(lastBestPosition); lastEvadeOrderTime = EvadeUtils.TickCount; } } } else //if not dodging { //Check if hero will walk into a skillshot var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (EvadeHelper.CheckMovePath(movePos)) { /*if (ObjectCache.menuCache.cache["AllowCrossing"].GetValue<bool>()) * { * var extraDelayBuffer = ObjectCache.menuCache.cache["ExtraPingBuffer"] * .GetValue<Slider>().Value + 30; * var extraDist = ObjectCache.menuCache.cache["ExtraCPADistance"] * .GetValue<Slider>().Value + 10; * * var tPosInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, extraDelayBuffer + ObjectCache.gamePing, extraDist); * * if (tPosInfo.posDangerLevel == 0) * { * lastPosInfo = tPosInfo; * return; * } * }*/ var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos); if (posInfo != null) { EvadeCommand.MoveTo(posInfo.position); } return; } } } }
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) { 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 { 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 DodgeSkillShots() { if (!Situation.ShouldDodge()) { isDodging = false; return; } /* * if (isDodging && playerInDanger == false) //serverpos test * { * myHero.IssueOrder(GameObjectOrder.HoldPosition, myHero, false); * }*/ if (isDodging) { if (lastPosInfo != null) { /*foreach (KeyValuePair<int, Spell> entry in SpellDetector.spells) * { * Spell spell = entry.Value; * * Console.WriteLine("" + (int)(TickCount-spell.startTime)); * }*/ Vector2 lastBestPosition = lastPosInfo.position; if (ObjectCache.menuCache.cache["RecalculatePosition"].GetValue <bool>())//recheck path { var dodgeInterval = ObjectCache.menuCache.cache["DodgeInterval"].GetValue <Slider>().Value; if (lastPosInfo != null && !lastPosInfo.recalculatedPath && dodgeInterval <= EvadeUtils.TickCount - lastPosInfo.timestamp) { var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (movePos.Distance(lastPosInfo.position) < 5) //more strict checking { var posInfo = EvadeHelper.CanHeroWalkToPos(movePos, ObjectCache.myHeroCache.moveSpeed, 0, 0, false); if (posInfo.isSamePosInfo(lastPosInfo) && posInfo.posDangerCount > lastPosInfo.posDangerCount) { var newPosInfo = EvadeHelper.GetBestPosition(); if (newPosInfo.posDangerCount < posInfo.posDangerCount) { lastPosInfo = newPosInfo; CheckHeroInDanger(); } else if (EvadeSpell.PreferEvadeSpell()) { lastPosInfo = PositionInfo.SetAllUndodgeable(); } else { lastPosInfo.recalculatedPath = true; } } } } } } EvadeCommand.MoveTo(lastBestPosition); if (Game.Time * 1000 - lastIssueOrderTime < 1) { DelayAction.Add(0, () => EvadeCommand.MoveTo(lastBestPosition)); } } } else //if not dodging { //return; //Check if hero will walk into a skillshot var path = myHero.Path; if (path.Length > 0) { var movePos = path[path.Length - 1].To2D(); if (EvadeHelper.CheckMovePath(movePos)) { var posInfo = EvadeHelper.GetBestPositionMovementBlock(movePos); if (posInfo != null) { EvadeCommand.MoveTo(posInfo.position); if (Game.Time * 1000 - lastIssueOrderTime < 1) { DelayAction.Add(0, () => EvadeCommand.MoveTo(posInfo.position)); } } return; } } } }
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) { 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 { 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; 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); } }
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 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...."); 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_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); } }