Esempio n. 1
0
 public static bool Prefix(Scp096 __instance)
 {
     __instance.PlayerState     = Scp096PlayerState.Enraged;
     __instance._attackCooldown = SCP096Re.instance.Config.re096_attack_cooldown;
     __instance._attacking      = false;
     return(false);
 }
        private static bool Prefix(Scp096 __instance, DoorVariant door)
        {
            if (door.GetExactState() >= 1f)
            {
                return(false);
            }
            IDamageableDoor damageableDoor;
            PryableDoor     gate;

            if ((damageableDoor = (door as IDamageableDoor)) != null)
            {
                if (!damageableDoor.IsDestroyed && door.GetExactState() < 1f && __instance._lastChargedDamageableDoor != damageableDoor && MainClass.singleton.Cfg.Scp.canScp096destroyDoor)
                {
                    damageableDoor.ServerDamage(250f, DoorDamageType.Scp096);
                    __instance._lastChargedDamageableDoor = damageableDoor;
                    return(false);
                }
            }
            else if ((gate = (door as PryableDoor)) != null && door.GetExactState() == 0f && !door.TargetState)
            {
                __instance.Hub.fpc.NetworkmovementOverride = Vector2.zero;
                __instance._chargeCooldown = 0f;
                __instance.PryGate(gate);
            }
            return(false);
        }
Esempio n. 3
0
        private static bool Prefix(Scp096 __instance)
        {
            var ev = new EnragingEventArgs(__instance, API.Features.Player.Get(__instance.Hub.gameObject));

            Handlers.Scp096.OnEnraging(ev);

            if (!ev.IsAllowed)
            {
                return(false);
            }

            if (__instance.Enraged)
            {
                __instance.AddReset();
            }
            else
            {
                __instance.SetMovementSpeed(12f);
                __instance.SetJumpHeight(10f);
                __instance.PlayerState    = Scp096PlayerState.Enraged;
                __instance.EnrageTimeLeft = __instance.EnrageTime;
            }

            return(false);
        }
Esempio n. 4
0
        private static bool Prefix(Scp096 __instance)
        {
            var ev = new EnragingEventArgs(__instance, API.Features.Player.Get(__instance.Hub));

            Handlers.Scp096.OnEnraging(ev);

            return(ev.IsAllowed);
        }
Esempio n. 5
0
        private static bool Prefix(Scp096 __instance)
        {
            var ev = new CalmingDownEventArgs(__instance, API.Features.Player.Get(__instance.Hub.gameObject));

            Handlers.Scp096.OnCalmingDown(ev);

            return(ev.IsAllowed);
        }
Esempio n. 6
0
 public static bool Prefix(Scp096 __instance)
 {
     __instance.EndCharge();
     __instance.SetMovementSpeed(0f);
     __instance.SetJumpHeight(4f);
     __instance.ResetShield();
     __instance.PlayerState  = Scp096PlayerState.Calming;
     __instance._calmingTime = SCP096Re.instance.Config.re096_calm_time;
     __instance._targets.Clear();
     return(false);
 }
Esempio n. 7
0
 public static bool Prefix(Scp096 __instance, bool force)
 {
     if (!force && (__instance.IsPreWindup || !__instance.CanEnrage))
     {
         return(false);
     }
     __instance.SetMovementSpeed(0f);
     __instance.SetJumpHeight(4f);
     __instance.PlayerState            = Scp096PlayerState.Enraging;
     __instance._enrageWindupRemaining = SCP096Re.instance.Config.re096_enrage_windup_time;
     return(false);
 }
Esempio n. 8
0
 public static bool Prefix(Scp096 __instance)
 {
     if (!__instance.CanCharge)
     {
         return(false);
     }
     __instance.SetMovementSpeed(25f);
     __instance._chargeTimeRemaining            = SCP096Re.instance.Config.re096_charge_time;
     __instance._chargeCooldown                 = SCP096Re.instance.Config.re096_charge_cooldown;
     __instance.PlayerState                     = Scp096PlayerState.Charging;
     __instance.Hub.fpc.NetworkmovementOverride = new Vector2(1f, 0f);
     return(false);
 }
Esempio n. 9
0
        private static bool Prefix(Scp096 __instance, PryableDoor gate)
        {
            if (__instance.Charging && __instance.Enraged && (!gate.TargetState /* && gate.doorType == Door.DoorTypes.HeavyGate */))
            {
                var ev = new StartPryingGateEventArgs(API.Features.Player.Get(__instance.Hub), gate);

                Handlers.Scp096.OnStartPryingGate(ev);

                return(ev.IsAllowed);
            }

            return(false);
        }
Esempio n. 10
0
 public static bool Prefix(Scp096 __instance, PlayerStats.HitInfo info)
 {
     if (info.GetDamageType().isWeapon&& SCP096Re.instance.Config.re096_damage_add_target)
     {
         GameObject playerObject = info.GetPlayerObject();
         if (playerObject != null && __instance.CanEnrage)
         {
             __instance.AddTarget(playerObject);
             __instance.Windup(false);
         }
     }
     __instance.TimeUntilShieldRecharge = 10f;
     return(false);
 }
Esempio n. 11
0
 public static bool Prefix(Scp096 __instance, PlayerStats.HitInfo info)
 {
     try
     {
         var allow = true;
         Events.InvokeScp096AddTarget(info.RHub.GetPlayer(), __instance.GetPlayer(), __instance.PlayerState, ref allow);
         return(allow);
     }
     catch (Exception e)
     {
         Log.Info($"Scp096AddTarget Event Error: {e}");
         return(true);
     }
 }
Esempio n. 12
0
        public static bool Prefix(Scp096 __instance)
        {
            if (__instance._flash.IsEnabled)
            {
                return(false);
            }

            Vector3 vector = __instance.Hub.transform.TransformPoint(Scp096._headOffset);

            foreach (KeyValuePair <GameObject, ReferenceHub> keyValuePair in ReferenceHub.GetAllHubs())
            {
                ReferenceHub          value = keyValuePair.Value;
                CharacterClassManager characterClassManager = value.characterClassManager;
                if (characterClassManager.CurClass != RoleType.Spectator &&
                    !value.isDedicatedServer &&
                    !(value == __instance.Hub) &&
                    !characterClassManager.IsAnyScp() &&
                    Vector3.Dot((value.PlayerCameraReference.position - vector).normalized, __instance.Hub.PlayerCameraReference.forward) >= 0.1f)
                {
                    VisionInformation visionInformation = VisionInformation.GetVisionInformation(value, vector, -0.1f, 60f, true, true, __instance.Hub.localCurrentRoomEffects, 0);
                    bool toEnrage = visionInformation.IsLooking;

                    //Add touch check
                    if (!toEnrage && SanyaPlugin.Instance.Config.Scp096TouchEnrageDistance > visionInformation.Distance)
                    {
                        toEnrage = !Physics.Linecast(value.PlayerCameraReference.position, vector, VisionInformation.VisionLayerMask);
                    }

                    if (toEnrage)
                    {
                        float delay = visionInformation.LookingAmount / 0.25f * (visionInformation.Distance * 0.1f);
                        if (!__instance.Calming)
                        {
                            __instance.AddTarget(value.gameObject);
                        }
                        if (__instance.CanEnrage && value.gameObject != null)
                        {
                            __instance.PreWindup(delay);
                        }
                    }
                }
            }

            return(false);
        }
Esempio n. 13
0
        public static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (!__instance.CanReceiveTargets || hub == null || __instance._targets.Contains(hub))
            {
                return(false);
            }
            if (!__instance._targets.IsEmpty <ReferenceHub>())
            {
                __instance.EnrageTimeLeft += SCP096Re.instance.Config.re096_target_enrage_add;
            }
            hub.hints.Show(new TextHint(SCP096Re.instance.Config.re096_target_hint, new HintParameter[]
            {
                new StringHintParameter("")
            }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f), 5f));
            __instance._targets.Add(hub);
            __instance.AdjustShield(SCP096Re.instance.Config.re096_shield_per_target);
            return(false);
        }
Esempio n. 14
0
        private static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (!__instance.CanReceiveTargets || hub == null || __instance._targets.Contains(hub))
            {
                return(false);
            }

            if (!__instance._targets.IsEmpty())
            {
                __instance.AddReset();
            }

            __instance._targets.Add(hub);
            __instance.AdjustShield(Instance.Config.EnableCustomScp096Shield
                ? Instance.Config.Scp096Ahp
                : 200);
            return(false);
        }
Esempio n. 15
0
        public static bool Prefix(Scp096 __instance, ReferenceHub player)
        {
            if (player.characterClassManager.IsAnyScp())
            {
                return(false);
            }
            bool flag = __instance._targets.Contains(player);

            if (__instance.Hub.playerStats.HurtPlayer(new PlayerStats.HitInfo(flag ? 9696f : 35f, player.LoggedNameFromRefHub(), DamageTypes.Scp096, __instance.Hub.queryProcessor.PlayerId), player.gameObject))
            {
                __instance._targets.Remove(player);
                NetworkServer.SendToClientOfPlayer <Scp096HitmarkerMessage>(__instance.Hub.characterClassManager.netIdentity, new Scp096HitmarkerMessage(1.35f));
                NetworkServer.SendToAll <Scp096OnKillMessage>(default(Scp096OnKillMessage), 0);
            }
            if (flag && !SCP096Re.instance.Config.re096_charge_targets_only)
            {
                //if (Plugin.Config.GetBool("096_charge_stop_by_player", false))
                __instance.EndChargeNextFrame();
            }
            return(false);
        }
        public static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (__instance.CanReceiveTargets && hub != null && !__instance._targets.Contains(hub))
            {
                if (!__instance._targets.IsEmpty <ReferenceHub>())
                {
                    __instance.EnrageTimeLeft += __instance.EnrageTimePerReset;
                }
                __instance._targets.Add(hub);
                if (CreativeToolbox.ConfigRef.Config.EnableCustomScp096Shield)
                {
                    __instance.AdjustShield(CreativeToolbox.ConfigRef.Config.Scp096Ahp);
                }
                else
                {
                    __instance.AdjustShield(250);
                }
            }
            return(false);
        }
        public static bool Prefix(Scp096 __instance, GameObject target)
        {
            ReferenceHub hub = ReferenceHub.GetHub(target);

            if (!__instance.CanReceiveTargets || hub == null || __instance._targets.Contains(hub))
            {
                return(false);
            }
            if (!__instance._targets.IsEmpty <ReferenceHub>())
            {
                __instance.AddReset();
            }
            __instance._targets.Add(hub);
            if (CreativeToolbox.ConfigRef.Config.EnableCustomScp096Shield)
            {
                __instance.AdjustShield(CreativeToolbox.ConfigRef.Config.Scp096Ahp);
            }
            else
            {
                __instance.AdjustShield(200);
            }
            return(false);
        }
Esempio n. 18
0
        private static bool Prefix(Scp096 __instance)
        {
            if (__instance._flash.Enabled)
            {
                return(false);
            }
            Exiled.API.Features.Player scp096 = Exiled.API.Features.Player.Get(__instance.Hub);
            if (scp096.IsNPC() && !NPCS.Npc.Dictionary[__instance.Hub.gameObject].ProcessSCPLogic)
            {
                return(false);
            }
            Vector3 vector = __instance.Hub.transform.TransformPoint(Scp096._headOffset);

            foreach (System.Collections.Generic.KeyValuePair <GameObject, global::ReferenceHub> keyValuePair in global::ReferenceHub.GetAllHubs())
            {
                global::ReferenceHub          value = keyValuePair.Value;
                global::CharacterClassManager characterClassManager = value.characterClassManager;
                NPCS.Npc npc = NPCS.Npc.Dictionary.ContainsKey(keyValuePair.Key) ? NPCS.Npc.Dictionary[keyValuePair.Key] : null;
                if (characterClassManager.CurClass != global::RoleType.Spectator && !(value == __instance.Hub) && !characterClassManager.IsAnyScp() && Vector3.Dot((value.PlayerCameraReference.position - vector).normalized, __instance.Hub.PlayerCameraReference.forward) >= 0.1f && (npc == null || npc.ShouldTrigger096))
                {
                    VisionInformation visionInformation = VisionInformation.GetVisionInformation(value, vector, -0.1f, 60f, true, true, __instance.Hub.localCurrentRoomEffects);
                    if (visionInformation.IsLooking)
                    {
                        float delay = visionInformation.LookingAmount / 0.25f * (visionInformation.Distance * 0.1f);
                        if (!__instance.Calming)
                        {
                            __instance.AddTarget(value.gameObject);
                        }
                        if (__instance.CanEnrage && value.gameObject != null)
                        {
                            __instance.PreWindup(delay);
                        }
                    }
                }
            }
            return(false);
        }
Esempio n. 19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CalmingDownEventArgs"/> class.
 /// </summary>
 /// <param name="scp096">The <see cref="Scp096"/> instance.</param>
 /// <param name="player">The player who's controlling SCP-096.</param>
 /// <param name="isAllowed">Indicates whether the event can be executed or not.</param>
 public CalmingDownEventArgs(Scp096 scp096, Player player, bool isAllowed = true)
     : base(scp096, player, isAllowed)
 {
 }
Esempio n. 20
0
        private static bool Prefix(PlayerPositionManager __instance)
        {
            try
            {
                ++__instance._frame;
                if (__instance._frame != __instance._syncFrequency)
                {
                    return(false);
                }
                __instance._frame = 0;
                List <GameObject> players = PlayerManager.players;
                __instance._usedData = players.Count;
                if (__instance._receivedData == null || __instance._receivedData.Length < __instance._usedData)
                {
                    __instance._receivedData = new PlayerPositionData[__instance._usedData * 2];
                }
                for (int index = 0; index < __instance._usedData; ++index)
                {
                    __instance._receivedData[index] = new PlayerPositionData(ReferenceHub.GetHub(players[index]));
                }
                if (__instance._transmitBuffer == null || __instance._transmitBuffer.Length < __instance._usedData)
                {
                    __instance._transmitBuffer = new PlayerPositionData[__instance._usedData * 2];
                }

                foreach (GameObject gameObject in players)
                {
                    Player player = Player.Get(gameObject);
                    Array.Copy(__instance._receivedData, __instance._transmitBuffer, __instance._usedData);

                    if (player.Role.Is939())
                    {
                        for (int index = 0; index < __instance._usedData; ++index)
                        {
                            if (__instance._transmitBuffer[index].position.y < 800.0)
                            {
                                ReferenceHub hub2 = ReferenceHub.GetHub(players[index]);
                                if (hub2.characterClassManager.CurRole.team != Team.SCP &&
                                    hub2.characterClassManager.CurRole.team != Team.RIP && !players[index]
                                    .GetComponent <Scp939_VisionController>()
                                    .CanSee(player.ReferenceHub.characterClassManager.Scp939))
                                {
                                    __instance._transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance._transmitBuffer[index].playerID);
                                }
                            }
                        }
                    }
                    else if (player.Role != RoleType.Spectator && player.Role != RoleType.Scp079)
                    {
                        for (int index = 0; index < __instance._usedData; ++index)
                        {
                            PlayerPositionData ppd           = __instance._transmitBuffer[index];
                            Player             currentTarget = Player.Get(players[index]);
                            Scp096             scp096        = player.ReferenceHub.scpsController.CurrentScp as Scp096;
                            bool canSee = true;

                            if (currentTarget?.ReferenceHub == null)
                            {
                                continue;
                            }

                            if (currentTarget.IsInvisible || player.TargetGhosts.Contains(ppd.playerID))
                            {
                                canSee = false;
                            }

                            Vector3 vector3 = __instance._transmitBuffer[index].position - player.ReferenceHub.playerMovementSync.RealModelPosition;
                            if (Math.Abs(vector3.y) > 35.0)
                            {
                                canSee = false;
                            }
                            else
                            {
                                float sqrMagnitude = vector3.sqrMagnitude;
                                if (player.ReferenceHub.playerMovementSync.RealModelPosition.y < 800.0)
                                {
                                    if (sqrMagnitude >= 1764.0)
                                    {
                                        canSee = false;
                                        continue;
                                    }
                                }
                                else if (sqrMagnitude >= 7225.0)
                                {
                                    canSee = false;
                                    continue;
                                }

                                if (ReferenceHub.TryGetHub(__instance._transmitBuffer[index].playerID, out ReferenceHub hub2))
                                {
                                    if (player.ReferenceHub.scpsController.CurrentScp is Scp096 currentScp && currentScp.Enraged && (!currentScp.HasTarget(hub2) && hub2.characterClassManager.CurRole.team != Team.SCP))
                                    {
                                        canSee = false;
                                    }
                                    else if (hub2.playerEffectsController.GetEffect <Scp268>().Enabled)
                                    {
                                        bool flag = false;
                                        if (scp096 != null)
                                        {
                                            flag = scp096.HasTarget(hub2);
                                        }

                                        if (player.ReferenceHub.characterClassManager.CurClass != RoleType.Scp079 &&
                                            player.ReferenceHub.characterClassManager.CurClass != RoleType.Spectator &&
                                            !flag)
                                        {
                                            canSee = false;
                                        }
                                    }
                                }

                                if (!canSee)
                                {
                                    ppd = new PlayerPositionData(Vector3.up * 6000f, 0.0f, ppd.playerID);
                                }

                                __instance._transmitBuffer[index] = ppd;
                            }
                        }
                    }

                    NetworkConnection networkConnection = player.ReferenceHub.characterClassManager.netIdentity.isLocalPlayer
                        ? NetworkServer.localConnection
                        : player.ReferenceHub.characterClassManager.netIdentity.connectionToClient;
                    if (__instance._usedData <= 20)
                    {
                        networkConnection.Send(
                            new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, (byte)__instance._usedData, 0), 1);
                    }
                    else
                    {
                        byte part;
                        for (part = 0; part < __instance._usedData / 20; ++part)
                        {
                            networkConnection.Send(new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, 20, part), 1);
                        }
                        byte count = (byte)(__instance._usedData % (part * 20));
                        if (count > 0)
                        {
                            networkConnection.Send(new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, count, part), 1);
                        }
                    }
                }

                return(false);
            }
Esempio n. 21
0
        public static bool Prefix(Scp096 __instance)
        {
            if (!__instance.CanAttack)
            {
                return(false);
            }
            __instance._leftAttack = !__instance._leftAttack;
            __instance._attacking  = true;
            __instance.PlayerState = Scp096PlayerState.Attacking;
            Transform playerCameraReference = __instance.Hub.PlayerCameraReference;

            Collider[] array = Physics.OverlapSphere(playerCameraReference.position + playerCameraReference.forward * 1.25f, SCP096Re.instance.Config.re096_attack_radius, LayerMask.GetMask(new string[]
            {
                "PlyCenter",
                "Door",
                "Glass"
            }));
            HashSet <GameObject> hashSet = new HashSet <GameObject>();
            float num = 0f;

            foreach (Collider collider in array)
            {
                Door componentInParent = collider.GetComponentInParent <Door>();
                if (componentInParent != null)
                {
                    componentInParent.DestroyDoor(true);
                    if (componentInParent.destroyed && num < 0.5f)
                    {
                        num = 1f;
                    }
                }
                else
                {
                    BreakableWindow componentInParent2 = collider.GetComponentInParent <BreakableWindow>();
                    if (componentInParent2 != null && num < 0.25f)
                    {
                        componentInParent2.ServerDamageWindow(500f);
                        num = 0.5f;
                        break;
                    }
                    ReferenceHub componentInParent3 = collider.GetComponentInParent <ReferenceHub>();
                    if (!(componentInParent3 == null) && !(componentInParent3 == __instance.Hub) && hashSet.Add(componentInParent3.gameObject) && !Physics.Linecast(__instance.Hub.transform.position, componentInParent3.transform.position, LayerMask.GetMask(new string[]
                    {
                        "Default",
                        "Door",
                        "Glass"
                    })))
                    {
                        num = 1.2f;
                        if ((__instance._targets.Contains(componentInParent3) && SCP096Re.instance.Config.re096_hurt_targets_only) || !SCP096Re.instance.Config.re096_hurt_targets_only)
                        {
                            if (__instance.Hub.playerStats.HurtPlayer(new PlayerStats.HitInfo(9696f, __instance.Hub.LoggedNameFromRefHub(), DamageTypes.Scp096, componentInParent3.queryProcessor.PlayerId), componentInParent3.gameObject))
                            {
                                num = 1.35f;
                                __instance._targets.Remove(componentInParent3);
                                NetworkServer.SendToAll <Scp096OnKillMessage>(default(Scp096OnKillMessage), 0);
                            }
                        }
                    }
                }
            }
            if (num > 0f)
            {
                NetworkServer.SendToClientOfPlayer <Scp096HitmarkerMessage>(__instance.Hub.characterClassManager.netIdentity, new Scp096HitmarkerMessage(num));
            }
            __instance._attackDuration = 0.5f;
            return(false);
        }
Esempio n. 22
0
 public static bool Prefix(Scp096 __instance, ref float __result)
 {
     __result = SCP096Re.instance.Config.re096_max_shield;
     return(false);
 }
Esempio n. 23
0
        private static bool Prefix(PlayerPositionManager __instance)
        {
            try
            {
                ++__instance._frame;
                if (__instance._frame != __instance._syncFrequency)
                {
                    return(false);
                }
                __instance._frame = 0;
                List <GameObject> players = PlayerManager.players;
                __instance._usedData = players.Count;
                if (__instance._receivedData == null || __instance._receivedData.Length < __instance._usedData)
                {
                    __instance._receivedData = new PlayerPositionData[__instance._usedData * 2];
                }
                for (int index = 0; index < __instance._usedData; ++index)
                {
                    __instance._receivedData[index] = new PlayerPositionData(ReferenceHub.GetHub(players[index]));
                }
                if (__instance._transmitBuffer == null || __instance._transmitBuffer.Length < __instance._usedData)
                {
                    __instance._transmitBuffer = new PlayerPositionData[__instance._usedData * 2];
                }

                foreach (GameObject gameObject in players)
                {
                    Player player = Player.Get(gameObject);

                    if (player == null)
                    {
                        continue;
                    }

                    Array.Copy(__instance._receivedData, __instance._transmitBuffer, __instance._usedData);
                    for (int index = 0; index < __instance._usedData; ++index)
                    {
                        PlayerPositionData ppd           = __instance._transmitBuffer[index];
                        Player             currentTarget = Player.Get(players[index]);
                        Scp096             scp096        = player.ReferenceHub.scpsController.CurrentScp as Scp096;
                        bool canSee = true;
                        if (currentTarget == null)
                        {
                            continue;
                        }

                        if (currentTarget.IsInvisible || player.TargetGhosts.Contains(ppd.playerID))
                        {
                            canSee = false;
                        }
                        else if (player.Role.Is939() && ppd.position.y < 800.0)
                        {
                            if (currentTarget.Team != Team.SCP && currentTarget.Team != Team.RIP && !currentTarget.GameObject.GetComponent <Scp939_VisionController>().CanSee(player.ReferenceHub.characterClassManager.Scp939))
                            {
                                canSee = false;
                            }
                        }
                        else if (player.Role != RoleType.Scp079 && player.Role != RoleType.Spectator)
                        {
                            if (Math.Abs(ppd.position.y - player.Position.y) > 35)
                            {
                                canSee = false;
                            }
                            else
                            {
                                if (ReferenceHub.TryGetHub(ppd.playerID, out ReferenceHub hub))
                                {
                                    if (scp096 != null && scp096.Enraged && !scp096.HasTarget(hub) && hub.characterClassManager.CurRole.team != Team.SCP)
                                    {
                                        canSee = false;
                                    }
                                    else if (hub.playerEffectsController.GetEffect <Scp268>().Enabled&& (scp096 == null || !scp096.HasTarget(hub)))
                                    {
                                        canSee = false;
                                    }
                                }
                            }
                        }

                        if (!canSee)
                        {
                            ppd = new PlayerPositionData(Vector3.up * 6000f, 0.0f, ppd.playerID);
                        }

                        __instance._transmitBuffer[index] = ppd;
                    }

                    NetworkConnection networkConnection = player.ReferenceHub.characterClassManager.netIdentity.isLocalPlayer ? NetworkServer.localConnection : player.ReferenceHub.characterClassManager.netIdentity.connectionToClient;
                    if (__instance._usedData <= 20)
                    {
                        networkConnection.Send(new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, (byte)__instance._usedData, 0), 1);
                    }
                    else
                    {
                        byte part;
                        for (part = 0; part < __instance._usedData / 20; ++part)
                        {
                            networkConnection.Send(new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, 20, part), 1);
                        }
                        byte count = (byte)(__instance._usedData % (part * 20));
                        if (count > 0)
                        {
                            networkConnection.Send(new PlayerPositionManager.PositionMessage(__instance._transmitBuffer, count, part), 1);
                        }
                    }
                }

                return(false);
            }
            catch (Exception exception)
            {
                Log.Error($"GhostMode error: {exception}");
                return(true);
            }
        }
Esempio n. 24
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EnragingEventArgs"/> class.
 /// </summary>
 /// <param name="scp096"><inheritdoc cref="Scp096"/></param>
 /// <param name="player"><inheritdoc cref="Player"/></param>
 /// <param name="isAllowed"><inheritdoc cref="IsAllowed"/></param>
 public EnragingEventArgs(Scp096 scp096, Player player, bool isAllowed = true)
 {
     Scp096    = scp096;
     Player    = player;
     IsAllowed = isAllowed;
 }