private void Player_InteractingDoor(Exiled.Events.EventArgs.InteractingDoorEventArgs ev) { var door = ev.Door; var doorType = door.Type(); var player = ev.Player; // If door closed and access denied and they are an SCP and they aren't already trying to escape. if (door.IsConsideredOpen() || ev.IsAllowed || (Config.SCPOnly && (!Config.SCPOnly || player.Team != Team.SCP)) || player.Role == RoleType.Scp079 || player.Role == RoleType.Scp106 || ScpTryingToEscape.ContainsKey(doorType)) { return; } if (_fixedPoints.TryGetValue(doorType, out var point)) { var roomCheckPos = point.Position; var playerDistanceToRoom = Vector3.Distance(roomCheckPos, player.Position); var doorDistanceToRoom = Vector3.Distance(roomCheckPos, door.transform.position); if (playerDistanceToRoom < doorDistanceToRoom) { ScpTryingToEscape.Add(doorType, StuckInRoom.SetPlayerStuck(ev.Player, door, this)); } } }
private void Player_InteractingDoor(Exiled.Events.EventArgs.InteractingDoorEventArgs ev) { if (!RecorderCore.isRecording) { return; } RecorderCore.OnReceiveEvent(new DoorData() { State = !ev.Door.TargetState, Position = ev.Door.transform.position.GetData() }); }