예제 #1
0
        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);
            }
        }
예제 #2
0
        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));
                }
            }
        }