private void OnEntityEnter(TriggerSafeZone triggerSafeZone, BasePlayer player) { if (player.IsNpc || triggerSafeZone.GetComponentInParent <SafeCart>() == null || !player.IsHostile()) { return; } var hostileTimeRemaining = player.State.unHostileTimestamp - Network.TimeEx.currentTimestamp; if (hostileTimeRemaining < 0) { return; } float lastWarningTime; if (_playersLastWarnedTime.TryGetValue(player.userID, out lastWarningTime) && lastWarningTime + SafeZoneWarningCooldown > Time.realtimeSinceStartup) { return; } ChatMessage(player, "Warning.Hostile", TimeSpan.FromSeconds(Math.Ceiling(hostileTimeRemaining)).ToString("g")); _playersLastWarnedTime[player.userID] = Time.realtimeSinceStartup; }
public bool InSafeZone() { float num = 0f; if (triggers != null) { for (int i = 0; i < triggers.Count; i++) { TriggerSafeZone triggerSafeZone = triggers[i] as TriggerSafeZone; if (!(triggerSafeZone == null)) { float safeLevel = triggerSafeZone.GetSafeLevel(base.transform.position); if (safeLevel > num) { num = safeLevel; } } } } return(num > 0f); }