Пример #1
0
        private static bool Prefix(WorkStation __instance, GameObject taker)
        {
            try
            {
                if (!__instance.CanTake(taker) || __instance._animationCooldown > 0f)
                {
                    return(false);
                }

                var player  = taker.GetPlayer();
                var station = __instance.GetWorkStation();

                try
                {
                    Event.Get.Player.InvokePlayerUnonnectWorkstation(player, station, out var allow);

                    if (!allow)
                    {
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    Synapse.Api.Logger.Get.Error($"Synapse-Event: PlayerConnectWorkstation Event failed!!\n{e}\nStackTrace:\n{e.StackTrace}");
                }

                station.TabletOwner       = player;
                station.IsTabletConnected = false;
            }
            catch (Exception e)
            {
                Logger.Get.Error($"Synapse-Item: Disconnect Workstation Tablet failed!!\n{e}\nStackTrace:\n{e.StackTrace}");
            }
            return(false);
        }
Пример #2
0
        private static bool Prefix(WorkStation __instance, GameObject taker)
        {
            try
            {
                if (!__instance.CanTake(taker) || __instance._animationCooldown > 0f)
                {
                    return(false);
                }

                DeactivatingWorkstationEventArgs ev = new DeactivatingWorkstationEventArgs(Exiled.API.Features.Player.Get(taker), __instance);
                Player.OnDeactivatingWorkstation(ev);

                if (ev.IsAllowed)
                {
                    taker.GetComponent <Inventory>().AddNewItem(ItemType.WeaponManagerTablet, -4.65664672E+11f, 0, 0, 0);
                    __instance.Network_playerConnected  = null;
                    __instance.NetworkisTabletConnected = false;
                    __instance._animationCooldown       = 3.5f;
                }

                return(false);
            }
            catch (Exception exception)
            {
                API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.DeactivatingWorkstation: {exception}\n{exception.StackTrace}");
                return(true);
            }
        }