public void OnDoorAccess(ref DoorInteractionEvent ev) { if (Methods.BlackoutMode) { ev.Allow = true; } }
public void OnReceived(EBEvent e) { switch (e.type) { case EBEventType.InteractionWithDoor: { DoorInteractionEvent die = e as DoorInteractionEvent; if (!isDoorTriggered && (die.door == door)) { isDoorTriggered = true; monster.SetActive(true); monster.GetComponent <CameraVisibilityChecker>().SetCamera(camera); monster.GetComponent <MonsterBehaviour>().SetMainTarget(controller.transform); NoiseEffectsManager noiseEffectsManager = controller.gameObject.GetComponentInChildren <NoiseEffectsManager>(); noiseEffectsManager.SetMonster(monster.transform); noiseEffectsManager.enabled = true; dispatcher.Subscribe(EBEventType.CaughtByMonster, address, gameObject); dispatcher.Subscribe(EBEventType.MonsterInFrustum, address, gameObject); } } break; case EBEventType.CaughtByMonster: StartCoroutine(EndingAnimation()); break; case EBEventType.MonsterInFrustum: controller.SetMouseLookEnabled(false); controller.SetHeadBobEnabled(false); controller.enabled = false; director.StartAnimating(camera, rotationTarget, camera.transform); break; } }
public void DoorInteract(ref DoorInteractionEvent ev) { try { if (ev.Player.GetRole() == RoleType.Scp0492 && ev.Door.doorType == 2 && !ev.Door.Networklocked) { if ((!plugin.canClose && ev.Door.NetworkisOpen) || (plugin.griefProtection && ev.Door.DoorName.StartsWith("106"))) { return; } int amount = 0; Door d = ev.Door; foreach (ReferenceHub hub in Player.GetHubs(RoleType.Scp0492)) { if (Vector3.Distance(d.transform.position, hub.GetPosition()) <= plugin.distanceNeeded) { amount++; } } if (amount >= plugin.amountNeeded) { ev.Allow = true; if (plugin.currentMode != Mode.OPEN && !ev.Door.NetworkisOpen && plugin.canClose) { d.DestroyDoor(plugin.currentMode == Mode.LOCK_BREAK); if (plugin.forceDestroy) { d.destroyed = true; d.Networkdestroyed = true; return; } Timing.CallDelayed(0.5f, () => { d.Networklocked = true; d.locked = true; }); if (plugin.unlockLater) { Timing.CallDelayed(plugin.unlockAfter, () => { d.Networklocked = false; d.locked = false; }); } } } else { if (plugin.neededBroadcastDuration <= 0) { ev.Player.ClearBroadcasts(); ev.Player.Broadcast(plugin.neededBroadcastDuration, plugin.neededBroadcast.Replace("%amount", $"{plugin.amountNeeded - amount}"), false); } } } } catch (Exception e) { Log.Error("ZDB DoorInteract error: " + e.StackTrace); } }
public void OnReceived(EBEvent e) { if (e.type == EBEventType.InteractionWithDoor) { DoorInteractionEvent die = e as DoorInteractionEvent; if (die.door == door) { StartCoroutine(Animation()); } } }
public void OnPlayerDoorInteract(ref DoorInteractionEvent ev) { if (SCP_ROLES.Contains(ev.Player.GetRole())) { return; } if (ev.Allow) { return; } ev.Allow = hasPermission(ev.Player, ev.Door.permissionLevel); }
private void OnDoorInteract(ref DoorInteractionEvent ev) { try { var inv = ev.Player.inventory; var item = inv.GetItemInHand().id; if (string.Equals(ev.Door.permissionLevel, "CHCKPOINT_ACC", StringComparison.OrdinalIgnoreCase) && !AllowCheckpoint) { return; } if (item == ItemType.Coin && MaxUses == 0) { Coroutines.Add(Timing.RunCoroutine(LockDoor(ev.Door), Segment.Update)); if (!ev.Door.locked) { inv.items.RemoveAt(inv.GetItemIndex()); } ev.Allow = false; return; } if (Doors.Contains(new DoorItem(ev.Door, 0))) { var temp = ev.Door; var door = Doors.Find((d) => d.Door.GetInstanceID() == temp.GetInstanceID()); door.Used++; if (door.Used == door.MaxUses) { Doors.Remove(door); } else { ev.Allow = false; } } else if (item == ItemType.Coin) { var random = (MinUses > 0) ? (MinUses < MaxUses) ? UnityEngine.Random.Range(MinUses, MaxUses) : (MinUses == MaxUses) ? MinUses : MinUses : 1; var door = new DoorItem(ev.Door, random); Doors.Add(door); inv.items.RemoveAt(inv.GetItemIndex()); ev.Allow = false; } } catch (Exception ex) { Log.Error(ex.ToString()); } }
public void OnDoorAccess(ref DoorInteractionEvent ev) { if (ev.Allow == true) { return; } foreach (var item in ev.Player.inventory.items) { if (ev.Player.inventory.GetItemByID(item.id).permissions.Contains(ev.Door.permissionLevel)) { ev.Allow = true; return; } } }
public void OnPlayerDoorInteract(ref DoorInteractionEvent ev) { Door attackedDoor = ev.Door; if (ev.Player.GetRole() == RoleType.Scp0492) { if (_attackHandler.AddAttack(attackedDoor, ev.Player)) { attackedDoor.DestroyDoor(true); if (Configs.BreakUnbreakable) { attackedDoor.Networkdestroyed = true; } } } }