Exemplo n.º 1
0
    IEnumerator MakeJoint()
    {
        yield return(new WaitForSeconds(0.05f));

        joint = gameObject.AddComponent <FixedJoint>();
        joint.connectedBody = player.GetComponent <Rigidbody>();
    }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        // 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>();
            }
        }
Exemplo n.º 4
0
    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);
            }
        }
    }
Exemplo n.º 5
0
    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;
            }
        }
    }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
            }
        }