private void Drawing_OnDraw(EventArgs args) { if (!configMenu.Item("RandomUltDrawings").GetValue <bool>() || !enabled) { return; } foreach (var enemy in Enemies.Where( x => x.Player.IsValid <AIHeroClient>() && !x.Player.IsDead && x.RecallData.Recall.Status == Packet.S2C.Teleport.Status.Start && x.RecallData.Recall.Type == Packet.S2C.Teleport.Type.Recall) .OrderBy(x => x.RecallData.GetRecallTime())) { var trueDist = Math.Abs(enemy.LastSeen - enemy.RecallData.RecallStartTime) / 1000 * enemy.Player.MoveSpeed; var dist = (Math.Abs(enemy.LastSeen - enemy.RecallData.RecallStartTime) / 1000 * enemy.Player.MoveSpeed) - enemy.Player.MoveSpeed / 3; if (dist > 1500) { return; } if (dist < 50) { dist = 50; } var line = getpos(enemy, dist); dist = enemy.Player.Distance(line); Vector3 pos = line; if (enemy.Player.IsVisible) { pos = enemy.Player.Position; } else { pos = CombatHelper.PointsAroundTheTarget(enemy.Player.Position, trueDist) .Where( p => !p.IsWall() && line.Distance(p) < dist && Environment.Map.GetPath(enemy.Player, p) < trueDist) .OrderByDescending(p => NavMesh.IsWallOfGrass(p, 10)) .ThenBy(p => line.Distance(p)) .FirstOrDefault(); } if (pos != null) { Drawing.DrawCircle(pos, 50, Color.Red); } Drawing.DrawCircle(line, dist, Color.LawnGreen); } }
private void Game_OnUpdate(EventArgs args) { float time = System.Environment.TickCount; foreach (Positions enemyInfo in Enemies.Where(x => x.Player.IsVisible && !x.Player.IsDead && !player.IsDead) ) { enemyInfo.LastSeen = time; var prediction = Prediction.GetPrediction(enemyInfo.Player, 4); if (prediction != null) { enemyInfo.predictedpos = prediction.UnitPosition; } } if (!configMenu.Item("UseR").GetValue <bool>() || !R.IsReady() || !enabled) { return; } foreach (Positions enemy in Enemies.Where( x => x.Player.IsValid <AIHeroClient>() && !x.Player.IsDead && !configMenu.Item(x.Player.ChampionName + "DontUltRandomUlt").GetValue <bool>() && x.RecallData.Recall.Status == Packet.S2C.Teleport.Status.Start && x.RecallData.Recall.Type == Packet.S2C.Teleport.Type.Recall) .OrderBy(x => x.RecallData.GetRecallTime())) { if (!checkdmg(enemy.Player)) { continue; } var dist = (Math.Abs(enemy.LastSeen - enemy.RecallData.RecallStartTime) / 1000 * enemy.Player.MoveSpeed) - enemy.Player.MoveSpeed / 3; var line = getpos(enemy, dist); Vector3 pos = line; if (enemy.Player.IsVisible) { pos = enemy.Player.Position; } else { var trueDist = Math.Abs(enemy.LastSeen - enemy.RecallData.RecallStartTime) / 1000 * enemy.Player.MoveSpeed; if (dist > 1500) { return; } pos = CombatHelper.PointsAroundTheTarget(enemy.Player.Position, trueDist) .Where( p => !p.IsWall() && line.Distance(p) < dist && Environment.Map.GetPath(enemy.Player, p) < trueDist) .OrderByDescending(p => NavMesh.IsWallOfGrass(p, 10)) .ThenBy(p => line.Distance(p)) .FirstOrDefault(); } if (pos != null) { kill(enemy, new Vector3(pos.X, pos.Y, 0)); } } }