Пример #1
0
    public override void _Ready()
    {
        aimTarget = GetNode <AimTarget>("AimTarget");
        if (aimTarget == null)
        {
            GD.PushError("AimTarget reference not found!");
        }


        aimRay = GetNode <RayCast>("InterpolatedCamera/AimRay");
        if (aimRay == null)
        {
            GD.PushError("AimRay reference not found!");
        }

        camera = GetNode <InterpolatedCamera>("InterpolatedCamera");
        if (camera == null)
        {
            GD.PushError("InterpolatedCamera reference not found!");
        }

        springArm = GetNode <SpringArm>("SpringArm");
        if (springArm == null)
        {
            GD.PushError("SpringArm reference not found!");
        }

        _positionStart = this.Translation;

        // node transformations only in Global Space
        SetAsToplevel(true);

        WaitForParentNode();
    }
Пример #2
0
    public void SetTarget(AimTarget target, float distance)
    {
        switch (target)
        {
        case AimTarget.None:
            SetColor(none);
            break;

        case AimTarget.Enemy:
            SetColor(enemy);
            break;

        case AimTarget.Friend:
            SetColor(friend);
            break;

        case AimTarget.Neutral:
            SetColor(neutral);
            break;
        }
        if (target != AimTarget.None)
        {
            distanceText.text = distance.ToString();
        }
        else
        {
            distanceText.text = "";
        }
    }
Пример #3
0
    private void OnSceneGUI()
    {
                #if UNITY_EDITOR
        selectedAimTarget = target as AimTarget;

        if (null == selectedAimTarget)
        {
            return;
        }

        if (null == selectedAimTarget.actor)
        {
            selectedAimTarget.actor = Actor.GetActor <Transform> (selectedAimTarget.transform);
        }

        Handles.color = new Color(0.5f, 0.25f, 0.25f, 0.15f);
        Handles.DrawSolidArc(
            selectedAimTarget.actor.bodyCollider.bounds.center,
            Vector3.up,
            selectedAimTarget.targetAimVector,
            45f,
            selectedAimTarget.actor.armLength
            );
        Handles.DrawSolidArc(
            selectedAimTarget.actor.bodyCollider.bounds.center,
            Vector3.down,
            selectedAimTarget.targetAimVector,
            45f,
            selectedAimTarget.actor.armLength
            );


        Handles.color = new Color(0.25f, 0.25f, 0.5f, 0.15f);
        Handles.DrawSolidArc(
            selectedAimTarget.actor.bodyCollider.bounds.center,
            Vector3.up,
            selectedAimTarget.nowAimVector,
            45f,
            selectedAimTarget.actor.armLength * 1.5f
            );
        Handles.DrawSolidArc(
            selectedAimTarget.actor.bodyCollider.bounds.center,
            Vector3.down,
            selectedAimTarget.nowAimVector,
            45f,
            selectedAimTarget.actor.armLength * 1.5f
            );
                #endif
    }
Пример #4
0
        private static void FlatSDK_DrawGraphics(object sender, DrawGraphicsEventArgs e)
        {
            var gfx = e.Graphics;

            if (AimOptions.bSaveBTN == 1)
            {
                SerializeStatic.Serialize(typeof(AimOptions), "AimCFG.xml");
                AimOptions.bSaveBTN = 0;
            }
            if (AimOptions.bLoadBTN == 1)
            {
                SerializeStatic.Deserialize(typeof(AimOptions), "AimCFG.xml");
                AimOptions.bLoadBTN = 0;
            }

            LocalPlayer = FlatSDK.GetLocalPlayer();

            if (LocalPlayer == null)
            {
                return;
            }
            if (LocalPlayer.extra == null)
            {
                return;
            }

            var entList = GetEntitiesAsArray();

            var AimTargets = new AimTarget[entList.Length];

            float fClosestDist = -1;

            float ScreenCenterX = FlatSDK.Overlay.Width / 2.0f;
            float ScreenCenterY = FlatSDK.Overlay.Height / 2.0f;


            if (AimOptions.bDrawFow == 1)
            {
                gfx.DrawCircle(FlatSDKInternal.IRenderer._opakwhite, ScreenCenterX, ScreenCenterY, AimOptions.bFovArray[AimOptions.bFovInt], 2);
            }



            for (int i = 0; i < entList.Length; i++)
            {
                var current = entList[i];
                if (current.type != 82)
                {
                    continue;
                }


                var clampPos = current.HeadBone.position - current.position;


                bool w2sHead = FlatSDK.WorldToScreen(FlatSDK.Overlay.Width, FlatSDK.Overlay.Height, new Vector3(current.HeadBone.position.X, current.HeadBone.position.Y - (AimOptions.bPredict * 2), current.HeadBone.position.Z - (AimOptions.bYAxis * 8)), out Vector2 HeadPosition);
                AimTargets[i]                   = new AimTarget();
                AimTargets[i].Screen2D          = HeadPosition;
                AimTargets[i].uniqueID          = current.uniqueID;
                AimTargets[i].CrosshairDistance = Vector2.Distance(HeadPosition, new Vector2(ScreenCenterX, ScreenCenterY));



                // isInFov
                if (BestTargetUniqID == -1)
                {
                    if (isInside(ScreenCenterX, ScreenCenterY, AimOptions.bFovArray[AimOptions.bFovInt], AimTargets[i].Screen2D.X, AimTargets[i].Screen2D.Y))
                    {
                        fClosestDist     = AimTargets[i].CrosshairDistance;
                        BestTargetUniqID = AimTargets[i].uniqueID;
                    }
                }

                //if (BestTargetUniqID == -1)
                //{
                //    if (w2sHead)
                //    {
                //        gfx.FillCircle(FlatSDKInternal.IRenderer._opakwhite, HeadPosition.X, HeadPosition.Y, 5);
                //    }
                //}
                //else
                //{
                //    if (w2sHead)
                //    {
                //        gfx.FillCircle(FlatSDKInternal.IRenderer._red, HeadPosition.X, HeadPosition.Y, 5);
                //    }
                //}
            }


            if (FlatSDK.IsKeyPushedDown(AimOptions.bAimKeys[AimOptions.bAimKeyINT]))
            {
                if (BestTargetUniqID != -1)
                {
                    var best = FindAimTargetByUniqueID(AimTargets, BestTargetUniqID);

                    if (best != null)
                    {
                        // kek

                        {
                            var roundPos = new Vector2((float)Math.Round(best.Screen2D.X), (float)Math.Round(best.Screen2D.Y));
                            AimAtPosV2(roundPos.X, roundPos.Y, false);
                        }
                    }
                }
            }
            else
            {
                BestTargetUniqID = -1;
            }
        }
Пример #5
0
 // Update the aim target
 public void SetAimTarget(AimTarget newTarget)
 {
     aimTarget = newTarget;
 }
Пример #6
0
 // Update the aim target
 public void SetAimTarget(AimTarget newTarget)
 {
     aimTarget = newTarget;
 }