using UnityEngine; using Unity.Netcode; public class PitZone : NetworkBehaviour { // Индекс ямы. Игрок с таким же индексом — её "хозяин" (защитник). // Победа засчитывается тому, кто зашёл в ЧУЖУЮ яму (pitIndex != его индекс). [SerializeField] private int pitIndex; private void OnTriggerEnter(Collider _other) { if (!IsServer) return; if (RoundManager.Current == null || !RoundManager.Current.IsRoundActive) return; // Клон — засчитываем вход за его ОРИГИНАЛЬНОГО игрока. // Проверять надо ДО PlayerHealth: у клона он тоже есть, // но OwnerClientId клона — это сервер, а не игрок. GhostPlayer _ghost = _other.GetComponentInParent(); if (_ghost != null) { RoundManager.Current.OnPlayerEnteredPit(pitIndex, _ghost.OriginalOwnerId); _ghost.GetComponent().TakeDamage(999); return; } PlayerHealth _playerHealth = _other.GetComponentInParent(); if (_playerHealth == null) return; RoundManager.Current.OnPlayerEnteredPit(pitIndex, _playerHealth.OwnerClientId); _playerHealth.TakeDamage(999); } }