private static bool Prefix(PlayerMovementSync __instance, Vector3 pos, float rot, bool forceGround) { if (__instance.gameObject.GetComponent <ReplayPlayer>() == null) { return(true); } RaycastHit raycastHit; if (forceGround && Physics.Raycast(pos, Vector3.down, out raycastHit, 100f, __instance.CollidableSurfaces)) { pos = raycastHit.point + Vector3.up; pos = new Vector3(pos.x, pos.y - (1f - __instance._hub.transform.localScale.y), pos.z); } __instance.ForcePosition(pos); __instance.PlayScp173SoundIfTeleported(); return(false); }
private static bool Prefix(PlayerMovementSync __instance, Vector3 pos, float rot, bool forceGround) { if (!Npc.Dictionary.ContainsKey(__instance.gameObject)) { return(true); } RaycastHit raycastHit; if (forceGround && Physics.Raycast(pos, Vector3.down, out raycastHit, 100f, __instance.CollidableSurfaces)) { pos = raycastHit.point + Vector3.up * Plugin.Instance.Config.NpcSizePositionMultiplier; pos = new Vector3(pos.x, pos.y - (1f - __instance._hub.transform.localScale.y) * Plugin.Instance.Config.NpcSizePositionMultiplier, pos.z); } __instance.ForcePosition(pos); __instance.PlayScp173SoundIfTeleported(); return(false); }