Beispiel #1
0
        private static bool ServerKillPlayerPatch(PlayableScps.Scp173 __instance, ReferenceHub target)
        {
            try
            {
                var scp    = __instance.GetPlayer();
                var player = target.GetPlayer();

                if (target == __instance.Hub || player.ClassManager.IsAnyScp() || player.ClassManager.CurClass == RoleType.Spectator)
                {
                    return(false);
                }

                if (!SynapseExtensions.GetHarmPermission(scp, player))
                {
                    return(false);
                }

                SynapseController.Server.Events.Scp.InvokeScpAttack(scp, player, Api.Enum.ScpAttackType.Scp173_Snap, out var allow);

                return(allow);
            }
            catch (Exception e)
            {
                Synapse.Api.Logger.Get.Error($"Synapse-Event: ScpAttackEvent(Scp173) failed!!\n{e}");
                return(true);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PlacingTantrumEventArgs"/> class.
 /// </summary>
 /// <param name="scp173"><inheritdoc cref="Scp173"/></param>
 /// <param name="player"><inheritdoc cref="Player"/></param>
 /// <param name="gameObject"><inheritdoc cref="GameObject"/></param>
 /// <param name="cooldown"><inheritdoc cref="Cooldown"/></param>
 /// <param name="isAllowed"><inheritdoc cref="IsAllowed"/></param>
 public PlacingTantrumEventArgs(PlayableScps.Scp173 scp173, Player player, GameObject gameObject, float cooldown, bool isAllowed = true)
 {
     Scp173     = scp173;
     Player     = player;
     GameObject = gameObject;
     Cooldown   = cooldown;
     IsAllowed  = isAllowed;
 }
Beispiel #3
0
        private static bool PlaceTantrum(PlayableScps.Scp173 __instance)
        {
            try
            {
                if (__instance._tantrumCooldownRemaining > 0.0f || __instance._isObserved)
                {
                    return(false);
                }

                Server.Get.Events.Scp.Scp173.InvokeScp173PlaceTantrumEvent(__instance.Hub.GetPlayer(), out var allow);
                return(allow);
            }
            catch (Exception ex)
            {
                Logger.Get.Error("Synapse-Event: Scp173PlaceTantrum(Scp173) failed!!\n" + ex);
                return(true);
            }
        }
        private static bool Blink(PlayableScps.Scp173 __instance, ref Vector3 blinkPos)
        {
            try
            {
                if (!__instance.BlinkReady)
                {
                    return(false);
                }
                if ((__instance.Hub.PlayerCameraReference.transform.position - blinkPos).magnitude > __instance.EffectiveBlinkDistance() * 1.05)
                {
                    return(false);
                }

                Server.Get.Events.Scp.Scp173.InvokeScp173BlinkEvent(__instance.GetPlayer(), ref blinkPos, out var allow);
                return(allow);
            }
            catch (System.Exception e)
            {
                Synapse.Api.Logger.Get.Error($"Synapse-Event: Scp173BlinkEvent(Scp173) failed!!\n{e}");
                return(true);
            }
        }