Exemplo n.º 1
0
        public void Awake()
        {
            Log.Error("Aimbot awake.");
            try
            {
                hub    = gameObject.GetPlayer();
                script = gameObject.GetComponent <Scp049PlayerScript>();
                obj    = Instantiate(
                    NetworkManager.singleton.spawnPrefabs.FirstOrDefault(p => p.gameObject.name == "Player"));
                CharacterClassManager ccm = obj.GetComponent <CharacterClassManager>();
                ccm.CurClass = RoleType.ClassD;
                ccm.RefreshPlyModel();
                List <ReferenceHub> players = Player.GetHubs().ToList();
                int r = EventPlugin.Gen.Next(players.Count);
                obj.GetComponent <NicknameSync>().Network_myNickSync = players[r].GetNickname();
                obj.GetComponent <QueryProcessor>().PlayerId         = players[r].GetPlayerId();
                obj.transform.localScale *= 0.0000001f;
                obj.transform.position    = hub.GetPosition();
                NetworkServer.Spawn(obj);
                sync  = obj.GetComponent <PlyMovementSync>();
                ident = obj.GetComponent <NetworkIdentity>();
                ReferenceHub fakeHub = obj.GetComponent <ReferenceHub>();
                if (fakeHub != null)
                {
                    Destroy(hub);
                }

                Timing.RunCoroutine(RefreshAimbotLocation(), gameObject);
            }
            catch (Exception e)
            {
                Log.Error(e.ToString());
            }
        }
    private void Attack()
    {
        RaycastHit raycastHit;

        if (this.iAm049 && Physics.Raycast(this.plyCam.transform.position, this.plyCam.transform.forward, out raycastHit, this.distance))
        {
            Scp049PlayerScript component = raycastHit.transform.GetComponent <Scp049PlayerScript>();
            if (component != null && !component.sameClass)
            {
                this.InfectPlayer(component.gameObject, base.GetComponent <HlapiPlayer>().PlayerId);
            }
        }
    }
Exemplo n.º 3
0
        public static void Postfix(Scp049PlayerScript __instance, ref GameObject target)
        {
            Log.Debug($"[Recall049Patch] SCP049:{Player.GetPlayer(__instance.gameObject).GetNickname()} Target:{Player.GetPlayer(target).GetNickname()} TargetRole:{Player.GetPlayer(target).GetRole()}");

            if (Player.GetPlayer(target)?.GetRole() != RoleType.Scp0492)
            {
                return;
            }

            if (Configs.recovery_amount_scp049 > 0)
            {
                ReferenceHub.GetHub(__instance.gameObject).playerStats.HealHPAmount(Configs.recovery_amount_scp049);
            }
            if (Configs.scp049_reset_ragdoll_after_recall)
            {
                foreach (var player in Player.GetHubs())
                {
                    __instance.RpcSetDeathTime(player.gameObject);
                }
            }
        }
Exemplo n.º 4
0
        public static bool Prefix(PlayerPositionManager __instance)
        {
            try
            {
                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(players[index]);
                }
                if (__instance.transmitBuffer == null || __instance.transmitBuffer.Length < __instance.usedData)
                {
                    __instance.transmitBuffer = new PlayerPositionData[__instance.usedData * 2];
                }
                foreach (GameObject gameObject in players)
                {
                    CharacterClassManager component1 = gameObject.GetComponent <CharacterClassManager>();
                    Array.Copy(__instance.receivedData, __instance.transmitBuffer, __instance.usedData);

                    if (component1.CurClass == RoleType.Scp096 || component1.CurClass == RoleType.Scp173)
                    {
                        for (int i = 0; i < __instance.usedData; i++)
                        {
                            ReferenceHub hub = Plugin.GetPlayer(__instance.transmitBuffer[i].playerID.ToString());
                            if (hub.characterClassManager.CurClass != RoleType.Tutorial)
                            {
                                continue;
                            }
                            Scp049PlayerScript script   = hub.GetComponent <Scp049PlayerScript>();
                            Vector3            fwd      = script.plyCam.transform.forward;
                            Vector3            pos      = script.gameObject.transform.position;
                            Vector3            position = component1.gameObject.transform.position;
                            float angle = Vector3.Angle(fwd,
                                                        (pos - position).normalized);
                            Vector3    dir = (pos - position).normalized;
                            Quaternion rot = Quaternion.LookRotation(dir);
                            if (angle <= 80f)
                            {
                                __instance.transmitBuffer[i] = new PlayerPositionData(__instance.transmitBuffer[i].position, Quaternion.Inverse(rot).y, __instance.transmitBuffer[i].playerID, __instance.transmitBuffer[i].uses268);
                            }
                        }
                    }

                    if (component1.CurClass.Is939())
                    {
                        for (int index = 0; index < __instance.usedData; ++index)
                        {
                            if (__instance.transmitBuffer[index].position.y < 800.0)
                            {
                                CharacterClassManager component2 = players[index].GetComponent <CharacterClassManager>();
                                if (component2.Classes.SafeGet(component2.CurClass).team != Team.SCP &&
                                    component2.Classes.SafeGet(component2.CurClass).team != Team.RIP && !players[index]
                                    .GetComponent <Scp939_VisionController>()
                                    .CanSee(component1.GetComponent <Scp939PlayerScript>()))
                                {
                                    __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f,
                                                                                              __instance.transmitBuffer[index].playerID);
                                }
                            }
                        }
                    }
                    else if (component1.CurClass == RoleType.Scp096)
                    {
                        Scp096PlayerScript script = component1.GetComponent <Scp096PlayerScript>();
                        if (script.Networkenraged == Scp096PlayerScript.RageState.Enraged || script.Networkenraged == Scp096PlayerScript.RageState.Panic)
                        {
                            for (int i = 0; i < __instance.usedData; i++)
                            {
                                if (!Plugin.Scp096Targets.Contains(__instance.transmitBuffer[i].playerID))
                                {
                                    __instance.transmitBuffer[i] = new PlayerPositionData(Vector3.up * 6000f, 0f, __instance.transmitBuffer[i].playerID);
                                }
                            }
                        }
                    }
                    else if (component1.CurClass != RoleType.Scp079 && component1.CurClass != RoleType.Spectator)
                    {
                        for (int index = 0; index < __instance.usedData; ++index)
                        {
                            if (__instance.transmitBuffer[index].uses268 || EXILED.EventPlugin.GhostedIds.Contains(__instance.transmitBuffer[index].playerID))
                            {
                                __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f,
                                                                                          __instance.transmitBuffer[index].playerID);
                            }
                        }
                    }

                    NetworkConnection networkConnection = component1.netIdentity.isLocalPlayer
                                                ? NetworkServer.localConnection
                                                : component1.netIdentity.connectionToClient;
                    if (__instance.usedData <= 20)
                    {
                        networkConnection.Send(
                            new PlayerPositionManager.PositionMessage(__instance.transmitBuffer,
                                                                      (byte)__instance.usedData, 0), 1);
                    }
                    else
                    {
                        byte part;
                        for (part = (byte)0; (int)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 e)
            {
                Plugin.Info($"TransmitData Error. {e}");
                return(true);
            }
        }
Exemplo n.º 5
0
        public static bool Prefix(PlayerPositionManager __instance)
        {
            if (EventPlugin.GhostmodePatchDisable)
            {
                return(true);
            }

            try
            {
                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(players[index]);
                }
                if (__instance.transmitBuffer == null || __instance.transmitBuffer.Length < __instance.usedData)
                {
                    __instance.transmitBuffer = new PlayerPositionData[__instance.usedData * 2];
                }

                foreach (GameObject gameObject in players)
                {
                    CharacterClassManager component1 = gameObject.GetComponent <CharacterClassManager>();
                    Array.Copy(__instance.receivedData, __instance.transmitBuffer, __instance.usedData);

                    if (component1.CurClass == RoleType.Scp096 || component1.CurClass == RoleType.Scp173)
                    {
                        for (int i = 0; i < __instance.usedData; i++)
                        {
                            ReferenceHub hub = Player.GetPlayer(__instance.transmitBuffer[i].playerID);
                            if (hub.characterClassManager.CurClass != RoleType.Tutorial)
                            {
                                continue;
                            }
                            Scp049PlayerScript script   = hub.GetComponent <Scp049PlayerScript>();
                            Vector3            fwd      = script.plyCam.transform.forward;
                            Vector3            pos      = script.gameObject.transform.position;
                            Vector3            position = component1.gameObject.transform.position;
                            float      angle            = Vector3.Angle(fwd, (pos - position).normalized);
                            Vector3    dir = (pos - position).normalized;
                            Quaternion rot = Quaternion.LookRotation(dir);

                            if (angle >= 100f)
                            {
                                float newAngle = Vector3.Angle(new Vector3(fwd.x, fwd.y + 180f, fwd.z),
                                                               (pos - position).normalized);
                                if (component1.CurClass == RoleType.Scp096 && EventPlugin.Scp096Fix || component1.CurClass == RoleType.Scp173 && EventPlugin.Scp173Fix)
                                {
                                    __instance.transmitBuffer[i] = new PlayerPositionData(__instance.transmitBuffer[i].position, newAngle, __instance.transmitBuffer[i].playerID);
                                }
                            }
                        }
                    }

                    if (component1.CurClass.Is939())
                    {
                        for (int index = 0; index < __instance.usedData; ++index)
                        {
                            if (__instance.transmitBuffer[index].position.y < 800.0)
                            {
                                CharacterClassManager component2 = players[index].GetComponent <CharacterClassManager>();
                                if (component2.Classes.SafeGet(component2.CurClass).team != Team.SCP &&
                                    component2.Classes.SafeGet(component2.CurClass).team != Team.RIP && !players[index]
                                    .GetComponent <Scp939_VisionController>()
                                    .CanSee(component1.GetComponent <Scp939PlayerScript>()))
                                {
                                    __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f,
                                                                                              __instance.transmitBuffer[index].playerID);
                                }
                            }
                        }
                    }
                    else if (component1.CurClass != RoleType.Scp079 && component1.CurClass != RoleType.Spectator)
                    {
                        for (int index = 0; index < __instance.usedData; ++index)
                        {
                            if (__instance.transmitBuffer[index].uses268 || EventPlugin.GhostedIds.Contains(__instance.transmitBuffer[index].playerID))
                            {
                                __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f,
                                                                                          __instance.transmitBuffer[index].playerID);
                            }
                        }
                    }

                    if (EventPlugin.TargetGhost.ContainsKey(gameObject.GetPlayer()))
                    {
                        for (int i = 0; i < __instance.usedData; i++)
                        {
                            if (EventPlugin.TargetGhost[gameObject.GetPlayer()]
                                .Contains(__instance.transmitBuffer[i].playerID))
                            {
                                __instance.transmitBuffer[i] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[i].playerID);
                            }
                        }
                    }

                    NetworkConnection networkConnection = component1.netIdentity.isLocalPlayer
                                                ? NetworkServer.localConnection
                                                : component1.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($"GhostmodePatch error: {exception}");
                return(true);
            }
        }
Exemplo n.º 6
0
        private static void SCPMode()
        {
            var ccm = PlayerManager.localPlayer.GetComponent <CharacterClassManager>();
            Scp173PlayerScript   peanut   = ccm.GetComponent <Scp173PlayerScript>();
            Scp049PlayerScript   doctor   = ccm.GetComponent <Scp049PlayerScript>();
            Scp049_2PlayerScript zombie   = ccm.GetComponent <Scp049_2PlayerScript>();
            Scp939PlayerScript   dogo     = ccm.GetComponent <Scp939PlayerScript>();
            Scp096PlayerScript   shyguy   = ccm.GetComponent <Scp096PlayerScript>();
            Scp106PlayerScript   larry    = ccm.GetComponent <Scp106PlayerScript>();
            Scp079PlayerScript   computer = ccm.GetComponent <Scp079PlayerScript>();


            if (peanut.iAm173)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    if (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 4f + peanut.boost_teleportDistance.Evaluate(PlayerManager.localPlayer.GetComponent <PlayerStats>().GetHealthPercent()))
                    {
                        peanut.GetType().GetMethod("HurtPlayer", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(peanut, new object[]
                        {
                            player,
                            "123"
                        });
                    }
                }
            }
            if (doctor.iAm049)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    if ((player != PlayerManager.localPlayer) && (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 3.5f))
                    {
                        doctor.GetType().GetMethod("InfectPlayer", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(doctor, new object[]
                        {
                            player,
                            "123"
                        });
                    }
                }
            }
            if (zombie.iAm049_2)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    if ((player != PlayerManager.localPlayer) && (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 4f))
                    {
                        zombie.CallCmdHurtPlayer(player, "123");
                    }
                }
            }
            if (dogo.iAm939)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    // ccm.klasy[player.GetComponent<CharacterClassManager>().curClass].team != Team.SCP
                    if ((player != PlayerManager.localPlayer) && (Vector3.Distance(Camera.main.transform.position, player.transform.position) < 1.3 * dogo.attackDistance))
                    {
                        dogo.CallCmdShoot(player);
                    }
                }
            }
            if (shyguy.iAm096)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    if ((Vector3.Distance(Camera.main.transform.position, player.transform.position) < 3.5f))
                    {
                        shyguy.GetType().GetMethod("CallCmdHurtPlayer", BindingFlags.Instance | BindingFlags.Public).Invoke(shyguy, new object[]
                        {
                            player
                        });
                    }
                }
            }
            if (larry.iAm106)
            {
                foreach (GameObject player in PlayerManager.singleton.players)
                {
                    if (Vector3.Distance(Camera.main.transform.position, player.transform.position) < 3.5f)
                    {
                        larry.CallCmdMovePlayer(player, ServerTime.time);
                    }
                }
            }
            if (computer.iAm079)
            {
            }
        }