IEnumerator MakeJoint() { yield return(new WaitForSeconds(0.05f)); joint = gameObject.AddComponent <FixedJoint>(); joint.connectedBody = player.GetComponent <Rigidbody>(); }
public static bool Prefix(PlayerInteract __instance) { if (EventPlugin.WarheadStartEventPatchDisable) { return(true); } try { if (!__instance._playerInteractRateLimit.CanExecute(true) || (__instance._hc.CufferId > 0 && !__instance.CanDisarmedInteract)) { return(false); } GameObject gameObject = GameObject.Find("OutsitePanelScript"); if (!__instance.ChckDis(gameObject.transform.position) || !AlphaWarheadOutsitePanel.nukeside.enabled) { return(false); } if (!gameObject.GetComponent <AlphaWarheadOutsitePanel>().keycardEntered || Recontainer079.isLocked) { return(false); } AlphaWarheadController.Host.doorsOpen = false; ServerLogs.AddLog(ServerLogs.Modules.Warhead, "Countdown started.", ServerLogs.ServerLogType.GameEvent); if ((AlphaWarheadController._resumeScenario == -1 && AlphaWarheadController.Host.scenarios_start[AlphaWarheadController._startScenario].SumTime() == AlphaWarheadController.Host.timeToDetonation) || (AlphaWarheadController._resumeScenario != -1 && AlphaWarheadController.Host.scenarios_resume[AlphaWarheadController._resumeScenario].SumTime() == AlphaWarheadController.Host.timeToDetonation)) { bool allow = true; Events.InvokeWarheadStart(__instance.gameObject, ref allow); if (!allow) { return(false); } AlphaWarheadController.Host.NetworkinProgress = true; } ServerLogs.AddLog(ServerLogs.Modules.Warhead, __instance.GetComponent <NicknameSync>().MyNick + " (" + __instance.GetComponent <CharacterClassManager>().UserId + ") started the Alpha Warhead detonation.", ServerLogs.ServerLogType.GameEvent); __instance.OnInteract(); return(false); } catch (Exception exception) { Log.Error($"WarheadStartEvent error: {exception}"); return(true); } }
// show a bunch of corruption public void callBackMethod(PlayerInteract playerInteract, ABox_PlayerInteraction interactee) { SceneLevelVars.MetBlue = true; var existingBabble = playerInteract.GetComponent <BabbleCorruptionScript>(); if (existingBabble == null) { playerInteract.gameObject.AddComponent <BabbleCorruptionScript>(); } }
IEnumerator DelayLoot() { yield return(new WaitForSeconds(1.5f)); if (!PlayerManager.s.IsGrabbed) { player.isinteracting = false; playerinteract.GetComponent <PlayerInteract>().enabled = true; if (chance <= 20) { money.mcurrentMoney += generate.CalculateAmount(2, 5); } } }
IEnumerator DelayLoot() { yield return(new WaitForSeconds(1.5f)); // player.GetComponent<PlayerController>().enabled = true; if (!PlayerManager.s.IsGrabbed) { player.isinteracting = false; playerinteract.GetComponent <PlayerInteract>().enabled = true; if (chance <= 10 && chance > 5) { money.mcurrentMoney += generate.CalculateAmount(1, 2); } else if (chance <= 5) { money.mcurrentMoney += 3; } } }
private static bool Prefix(PlayerInteract __instance) { if (!__instance._playerInteractRateLimit.CanExecute(true) || (__instance._hc.CufferId > 0 && !PlayerInteract.CanDisarmedInteract)) { return(false); } GameObject gameObject = GameObject.Find("OutsitePanelScript"); if (!__instance.ChckDis(gameObject.transform.position) || !AlphaWarheadOutsitePanel.nukeside.enabled) { return(false); } if (!gameObject.GetComponent <AlphaWarheadOutsitePanel>().keycardEntered || Recontainer079.isLocked) { return(false); } AlphaWarheadController.Host.doorsOpen = false; ServerLogs.AddLog(ServerLogs.Modules.Warhead, "Countdown started.", ServerLogs.ServerLogType.GameEvent); if ((AlphaWarheadController._resumeScenario == -1 && AlphaWarheadController.Host.scenarios_start[AlphaWarheadController._startScenario].SumTime() == AlphaWarheadController.Host.timeToDetonation) || (AlphaWarheadController._resumeScenario != -1 && AlphaWarheadController.Host.scenarios_resume[AlphaWarheadController._resumeScenario].SumTime() == AlphaWarheadController.Host.timeToDetonation)) { var ev = new StartingEventArgs(API.Features.Player.Get(__instance.gameObject) ?? API.Features.Server.Host); Warhead.OnStarting(ev); if (!ev.IsAllowed) { return(false); } AlphaWarheadController.Host.NetworkinProgress = true; } ServerLogs.AddLog(ServerLogs.Modules.Warhead, __instance.GetComponent <NicknameSync>().MyNick + " (" + __instance.GetComponent <CharacterClassManager>().UserId + ") started the Alpha Warhead detonation.", ServerLogs.ServerLogType.GameEvent); __instance.OnInteract(); return(false); }
public static bool Prefix(PlayerInteract __instance, GameObject doorId) { if (EventPlugin.DoorInteractionEventPatchDisable) { return(true); } try { bool allow = true; if (!__instance._playerInteractRateLimit.CanExecute() || __instance._hc.CufferId > 0 && !__instance.CanDisarmedInteract || (doorId == null || __instance._ccm.CurClass == RoleType.None || __instance._ccm.CurClass == RoleType.Spectator)) { return(false); } Door component1 = doorId.GetComponent <Door>(); if (component1 == null || (component1.buttons.Count == 0 ? (__instance.ChckDis(doorId.transform.position) ? 1 : 0) : (component1.buttons.Any(item => __instance.ChckDis(item.transform.position)) ? 1 : 0)) == 0) { return(false); } Scp096PlayerScript component2 = __instance.GetComponent <Scp096PlayerScript>(); if (component1.destroyedPrefab != null && (!component1.isOpen || component1.curCooldown > 0.0) && (component2.iAm096 && component2.enraged == Scp096PlayerScript.RageState.Enraged)) { if (!__instance._096DestroyLockedDoors && component1.locked && !__instance._sr.BypassMode) { return(false); } component1.DestroyDoor(true); } else { __instance.OnInteract(); if (__instance._sr.BypassMode) { try { Events.InvokeDoorInteract(__instance.gameObject, component1, ref allow); if (allow == false) { __instance.RpcDenied(doorId); return(false); } component1.ChangeState(); } catch (Exception e) { Log.Error($"Door interaction error: {e}"); if (allow) { component1.ChangeState(); } else { __instance.RpcDenied(doorId); } return(false); } } else if (string.Equals(component1.permissionLevel, "CHCKPOINT_ACC", StringComparison.OrdinalIgnoreCase) && __instance.GetComponent <CharacterClassManager>() .Classes.SafeGet(__instance.GetComponent <CharacterClassManager>().CurClass).team == Team.SCP) { try { Events.InvokeDoorInteract(__instance.gameObject, component1, ref allow); if (allow == false) { __instance.RpcDenied(doorId); return(false); } component1.ChangeState(); } catch (Exception e) { Log.Error($"Door interaction error: {e}"); if (allow) { component1.ChangeState(); } else { __instance.RpcDenied(doorId); } } } else { if (string.IsNullOrEmpty(component1.permissionLevel)) { if (component1.locked) { __instance.RpcDenied(doorId); return(false); } try { Events.InvokeDoorInteract(__instance.gameObject, component1, ref allow); if (allow == false) { __instance.RpcDenied(doorId); return(false); } component1.ChangeState(); return(false); } catch (Exception e) { Log.Error($"Door interaction error: {e}"); if (allow) { component1.ChangeState(); } else { __instance.RpcDenied(doorId); } return(false); } } Item item = __instance._inv.GetItemByID(__instance._inv.curItem); if (item != null && item.permissions.Contains(component1.permissionLevel)) { if (!component1.locked) { try { Events.InvokeDoorInteract(__instance.gameObject, component1, ref allow); if (allow == false) { __instance.RpcDenied(doorId); return(false); } component1.ChangeState(); } catch (Exception e) { Log.Error($"Door interaction error: {e}"); if (allow) { component1.ChangeState(); } else { __instance.RpcDenied(doorId); } } } else { __instance.RpcDenied(doorId); } } else { // Let the plugins decide in case the default options to open the door weren't met if (!component1.locked) { // Instead of passing allow as true, pass it as false allow = false; try { Events.InvokeDoorInteract(__instance.gameObject, component1, ref allow); if (allow == false) { __instance.RpcDenied(doorId); return(false); } component1.ChangeState(); } catch (Exception e) { Log.Error($"Door interaction error: {e}"); if (allow) { component1.ChangeState(); } else { __instance.RpcDenied(doorId); } } } else { __instance.RpcDenied(doorId); } } } } return(false); } catch (Exception e) { Log.Error($"DoorInteraction Error: {e}"); return(true); } }
public static bool Prefix(PlayerInteract __instance, GameObject doorId) { if (EventPlugin.DoorInteractionEventPatchDisable) { return(true); } bool allow = true; Door door = doorId.GetComponent <Door>(); try { if (!__instance._playerInteractRateLimit.CanExecute() || __instance._hc.CufferId > 0 && !__instance.CanDisarmedInteract || (doorId == null || __instance._ccm.CurClass == RoleType.None || __instance._ccm.CurClass == RoleType.Spectator)) { return(false); } if (door == null || (door.buttons.Count == 0 ? (__instance.ChckDis(doorId.transform.position) ? 1 : 0) : (door.buttons.Any(item => __instance.ChckDis(item.transform.position)) ? 1 : 0)) == 0) { return(false); } Scp096PlayerScript component2 = __instance.GetComponent <Scp096PlayerScript>(); if (door.destroyedPrefab != null && (!door.isOpen || door.curCooldown > 0.0) && (component2.iAm096 && component2.enraged == Scp096PlayerScript.RageState.Enraged)) { if (!__instance._096DestroyLockedDoors && door.locked && !__instance._sr.BypassMode) { return(false); } door.DestroyDoor(true); } else { __instance.OnInteract(); if (__instance._sr.BypassMode) { allow = true; } else if (string.Equals(door.permissionLevel, "CHCKPOINT_ACC", StringComparison.OrdinalIgnoreCase) && __instance.GetComponent <CharacterClassManager>().Classes.SafeGet(__instance.GetComponent <CharacterClassManager>().CurClass).team == Team.SCP) { allow = true; } else { Item item = __instance._inv.GetItemByID(__instance._inv.curItem); if (string.IsNullOrEmpty(door.permissionLevel)) { allow = !door.locked; } else if (item != null && item.permissions.Contains(door.permissionLevel)) { allow = !door.locked; } else { allow = false; } } Events.InvokeDoorInteract(__instance.gameObject, door, ref allow); if (!allow) { __instance.RpcDenied(doorId); return(false); } door.ChangeState(); } return(false); } catch (Exception exception) { Log.Error($"DoorInteractionEvent error: {exception}"); if (allow) { door.ChangeState(); } else { __instance.RpcDenied(doorId); } return(false); } }