示例#1
0
    private void UpdateSprites()
    {
        currentAimAngle = AimHelper.GetCurrentAimAngle(targetPosition, transform.position);

        if (currentAimAngle != lastAimAngle)
        {
            if (currentAimAngle.y == Enums.Angles.Y.Top)
            {
                mySpriteRenderer.sprite = lookingUpSprite;
            }
            else
            {
                mySpriteRenderer.sprite = lookingDownSprite;
            }

            if (currentAimAngle.x == Enums.Angles.X.Left)
            {
                myGun.SetBehindEntity(true, mySpriteRenderer);
            }
            else
            {
                myGun.SetBehindEntity(false, mySpriteRenderer);
            }

            if ((lastAimAngle == null && currentAimAngle.x == Enums.Angles.X.Left) || (lastAimAngle != null && currentAimAngle.x != lastAimAngle.x))
            {
                Flip();
            }
        }
    }
示例#2
0
文件: Bot.cs 项目: pedrosales/CSGOBot
        static void targetBestEnemyViaScore()
        {
            byte    currentTeam     = GameHelper.getPlayerTeam(localEntityIndex);
            Vector3 currentPosition = GameHelper.getPlayerPositon(localEntityIndex);

            float[] targetScores = new float[Botv2.Bot.numPlayers];

            if (!waited && lastTargetIndex != -1 && GameHelper.getPlayerHealth(lastTargetIndex) <= 0)
            {
                Thread.Sleep(800);
                waited = true;
                return;
            }

            for (int i = 0; i < Botv2.Bot.numPlayers; i++)
            {
                Vector3 position = GameHelper.getPlayerPositon(i);
                byte    team     = GameHelper.getPlayerTeam(i);
                byte    health   = GameHelper.getPlayerHealth(i);

                targetScores[i] = 1000000;

                if (team != currentTeam && !position.isZero() && health > 0 && i != localEntityIndex)
                {
                    Vector2 angleDifference = AimHelper.getAngleDifference(position);

                    if (angleDifference.x <= angleConeLimit && angleDifference.y <= 15)
                    {
                        targetScores[i] = 0;

                        targetScores[i] += angleDifference.x * 7;
                        targetScores[i] += angleDifference.y / 1.5f;
                        targetScores[i] += position.distance(currentPosition) / 10;
                    }
                }
            }

            float winnerScore = targetScores.Min();
            int   winnerIndex = targetScores.ToList().IndexOf(winnerScore);

            if (winnerIndex != 0)
            {
                Vector3 vecToAim = GameHelper.getPlayerBonePosition(winnerIndex, 10);
                //if (vecToAim.z < GameHelper.getPlayerPositon(winnerIndex).z) vecToAim = GameHelper.getPlayerPositon(winnerIndex);

                AimHelper.setCameraPosition(vecToAim);
                lastTargetIndex = winnerIndex;
                waited          = false;
            }

            Console.WriteLine("Winner has index of {0} with a score of {1}", winnerIndex, winnerScore);
        }
示例#3
0
文件: Bot.cs 项目: pedrosales/CSGOBot
        /*
         *      Least obvious method, will only snap to enemies within <CONFIG:angleConeLimit> degrees of your view angle and will wait a second and a half before aiming to another enemy after killing
         */
        static void targetBestEnemy()
        {
            byte    currentTeam         = GameHelper.getPlayerTeam(localEntityIndex);
            Vector3 currentPosition     = GameHelper.getPlayerPositon(localEntityIndex);
            Vector2 bestAngleDifference = null;
            int     target = -1;

            if (!waited && lastTargetIndex != -1 && GameHelper.getPlayerHealth(lastTargetIndex) <= 0)
            {
                Thread.Sleep(800);
                waited = true;
                return;
            }

            for (int i = 0; i < 32; i++)
            {
                Vector3 position = GameHelper.getPlayerPositon(i);
                byte    team     = GameHelper.getPlayerTeam(i);
                byte    health   = GameHelper.getPlayerHealth(i);

                if (team != currentTeam && !position.isZero() && health > 0)
                {
                    Vector2 angleDifference = AimHelper.getAngleDifference(position);
                    if ((bestAngleDifference == null || angleDifference.x < bestAngleDifference.x) && angleDifference.x <= angleConeLimit && angleDifference.y <= 15)
                    {
                        target = i;
                        bestAngleDifference = angleDifference;
                    }
                }
            }

            if (bestAngleDifference == null)
            {
                return;
            }
            if (target >= 0)
            {
                Vector3 vecToAim = GameHelper.getPlayerBonePosition(target, 10);
                //if (vecToAim.z < GameHelper.getPlayerPositon(target).z) vecToAim = GameHelper.getPlayerPositon(target);
                //if (vecToAim.z > GameHelper.getPlayerPositon(target).z + 40) vecToAim = GameHelper.getPlayerPositon(target);


                AimHelper.setCameraPosition(vecToAim);
                lastTargetIndex = target;
                waited          = false;
            }
        }
示例#4
0
    private void UpdateSprites()
    {
        if (!isDead)
        {
            currentAimAngle = AimHelper.GetCurrentAimAngle(targetPosition, transform.position);

            if (currentAimAngle != lastAimAngle)
            {
                isLookingUp = currentAimAngle.y == Enums.Angles.Y.Top;

                if ((lastAimAngle == null && currentAimAngle.x == Enums.Angles.X.Left) || (lastAimAngle != null && currentAimAngle.x != lastAimAngle.x))
                {
                    Flip();
                }
            }
        }
    }
示例#5
0
文件: Bot.cs 项目: pedrosales/CSGOBot
        static void targetClosestEnemy()
        {
            byte    currentTeam = GameHelper.getPlayerTeam(localEntityIndex);
            Vector3 target      = null;

            for (int i = 0; i < 32; i++)
            {
                if (GameHelper.getPlayerTeam(i) != currentTeam)
                {
                    if (GameHelper.getPlayerPositon(i).distance(GameHelper.getCurrentPosition()) <= 9999)
                    {
                        if (GameHelper.getPlayerHealth(i) > 0)
                        {
                            if (GameHelper.getPlayerPositon(i).x == 0 && GameHelper.getPlayerPositon(i).y == 0)
                            {
                                continue;
                            }
                            if (target == null)
                            {
                                target = GameHelper.getPlayerPositon(i);
                            }
                            else if (target.distance(GameHelper.getCurrentPosition()) > GameHelper.getPlayerPositon(i).distance(GameHelper.getCurrentPosition()))
                            {
                                target = GameHelper.getPlayerPositon(i);
                            }
                        }
                    }
                }
            }

            if (target != null)
            {
                AimHelper.setCameraPosition(target);
                Console.WriteLine("Distance: {0}", target.distance(GameHelper.getCurrentPosition()));
            }
        }