public static NetworkEntityManagerPlayerProxy UpdateTargetSelector(NetworkEntityManagerPlayerProxy[] players, NetworkEntityManagerPlayerOwner owner) { NetworkEntityManagerPlayerProxy target = null; var mouseDistance = Mathf.Infinity; // dystans myszki do gracza foreach (var player in players) { if (player == null) { continue; } var distance = Vector3.Distance(owner.transform.position, player.transform.position); if (distance > 500f) { continue; } var distanceVec3 = Vector2.Distance(Input.mousePosition, Camera.main.WorldToScreenPoint(player.transform.position)); Debug.Log($"{player.GetProxyName()} {distanceVec3}"); if (distanceVec3 < mouseDistance) { mouseDistance = distanceVec3; target = player; } } if (target != null) { Debug.Log($"{target.GetProxyName()} {mouseDistance}"); } return(target); }
public static void AimCorrection(NetworkEntityManagerPlayerProxy target, ref Vector3 vector, float distance, float bulletSpeed, float gravity = 10f) //9,81f // 10 in game { vector = vector + target.GetVelocity() * (distance / Math.Abs(bulletSpeed)); vector = vector - new Vector3(0f, 0f, 0f) * (distance / Math.Abs(bulletSpeed)); // vector to nasza predkosc var mDistanse = distance / Math.Abs(bulletSpeed); vector.y += 0.5f * Gravity * mDistanse * mDistanse; }
private void HuamnAimbot(NetworkEntityManagerPlayerProxy myTarget = null) { try { var target = myTarget ?? AimExtensions.UpdateTargetSelector(Players, ManagerPlayerOwner); if (target != null && target.IsNullOrDestroyed() == false) { var weapon = ManagerPlayerOwner.GetWeaponCode(); Vector3 bodyPosition; switch (weapon) { case ItemCode.Shotgun: bodyPosition = target.GetBone(EHitboxItem.Chest).transform.position; break; case ItemCode.Spear: bodyPosition = target.GetBone(EHitboxItem.Heart).transform.position; break; default: bodyPosition = target.GetBone(EHitboxItem.Head).transform.position; break; } if (weapon != ItemCode.None) { AimExtensions.AimCorrection(target, ref bodyPosition, Vector3.Distance(bodyPosition, ManagerPlayerOwner.transform.position), ManagerPlayerOwner.GetWeaponBulletSpeed()); } FpsInputController.AimAtVec3(bodyPosition); _frameAimKey = true; Target = target; } } catch (Exception e) { Debug.Log(e); } }
/// <summary> /// Get NetworkEntityManagerPlayerProxy velocity /// </summary> /// <param name="target">Target</param> /// <returns>Current velocity</returns> public static Vector3 GetVelocity(this NetworkEntityManagerPlayerProxy target) { try { var netMovementProxy = target.GetComponent <NetMovementProxy>(); var time = GetProxyTime(target); var delta = GetProxyTime(target) - time; HistoryBufferTimeContainerNonSeq <NetMovementProxyState> historyBufferTimeContainerNonSeq; HistoryBufferTimeContainerNonSeq <NetMovementProxyState> historyBufferTimeContainerNonSeq2; if (netMovementProxy._history.FindTime(time + delta, out historyBufferTimeContainerNonSeq, out historyBufferTimeContainerNonSeq2) || historyBufferTimeContainerNonSeq != null && historyBufferTimeContainerNonSeq2 != null) { var num3 = historyBufferTimeContainerNonSeq != historyBufferTimeContainerNonSeq2 ? historyBufferTimeContainerNonSeq.Time - historyBufferTimeContainerNonSeq2.Time : 1.0; return((historyBufferTimeContainerNonSeq.Data.Position - historyBufferTimeContainerNonSeq2.Data.Position) / (float)(num3 * 0.05f)); } return(new Vector3(0f, 0f, 0f)); } catch (Exception e) { Debug.LogException(e); throw; } }