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(); }
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 = ""; } }
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 }
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; } }
// Update the aim target public void SetAimTarget(AimTarget newTarget) { aimTarget = newTarget; }
// Update the aim target public void SetAimTarget(AimTarget newTarget) { aimTarget = newTarget; }