コード例 #1
0
 internal void OnDeactivateWorkstation(DeactivatingWorkstationEventArgs ev)
 {
     if (!config.Workstation.canDeactivateWorkstationGlobal && !config.Workstation.canDeactivateWorkstation[ev.Player.Role])
     {
         ev.IsAllowed = 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);
            }
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: somebofy/EXILED
 /// <summary>
 /// Called before a workstation is deactivated.
 /// </summary>
 /// <param name="ev">The <see cref="DeactivatingWorkstationEventArgs"/> instance.</param>
 public static void OnDeactivatingWorkstation(DeactivatingWorkstationEventArgs ev) => DeactivatingWorkstation.InvokeSafely(ev);