Пример #1
0
            public void RunME(Vector3 point)
            {
                SteamChannel channel = Player.player.channel;

                base.write(channel);
                channel.write(32);   //Think these need to be right I just tried 32 coz space
                channel.write(3332); //No f*****g clue so
                channel.write(point);
                channel.write(Player.player.look.yaw);
                channel.write(Player.player.look.pitch);

                for (int i = 0; i < 20; i++)
                {
                    channel.write(0);
                }
            }
Пример #2
0
        public static IEnumerator TakeScreenshot()
        {
            Player       plr     = OptimizationVariables.MainPlayer;
            SteamChannel channel = plr.channel;

            switch (MiscOptions.AntiSpyMethod)
            {
            case 0:
            {
                if (Time.realtimeSinceStartup - LastSpy < MiscOptions.MinTimeBetweenSpy || IsSpying)                         // Checks for spam spy
                {
                    yield break;
                }

                IsSpying = true;

                LastSpy = Time.realtimeSinceStartup;

                if (!MiscOptions.PanicMode)
                {
                    DisableAllVisuals();
                }

                yield return(new WaitForFixedUpdate());

                yield return(new WaitForEndOfFrame());

                Texture2D screenshotRaw =
                    new Texture2D(Screen.width, Screen.height, (TextureFormat)3, false)
                {
                    name      = "Screenshot_Raw",
                    hideFlags = (HideFlags)61
                };

                screenshotRaw.ReadPixels(new Rect(0f, 0f, Screen.width, Screen.height), 0, 0, false);

                Texture2D screenshotFinal = new Texture2D(640, 480, (TextureFormat)3, false)
                {
                    name      = "Screenshot_Final",
                    hideFlags = (HideFlags)61
                };

                Color[] oldColors   = screenshotRaw.GetPixels();
                Color[] newColors   = new Color[screenshotFinal.width * screenshotFinal.height];
                float   widthRatio  = screenshotRaw.width / (float)screenshotFinal.width;
                float   heightRatio = screenshotRaw.height / (float)screenshotFinal.height;

                for (int i = 0; i < screenshotFinal.height; i++)
                {
                    int num  = (int)(i * heightRatio) * screenshotRaw.width;
                    int num2 = i * screenshotFinal.width;
                    for (int j = 0; j < screenshotFinal.width; j++)
                    {
                        int num3 = (int)(j * widthRatio);
                        newColors[num2 + j] = oldColors[num + num3];
                    }
                }

                screenshotFinal.SetPixels(newColors);
                byte[] data = screenshotFinal.EncodeToJPG(33);

                if (data.Length < 30000)
                {
                    channel.longBinaryData = true;
                    channel.openWrite();
                    channel.write(data);
                    channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER,
                                       ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                    channel.longBinaryData = false;
                }

                yield return(new WaitForFixedUpdate());

                yield return(new WaitForEndOfFrame());

                IsSpying = false;
                if (!MiscOptions.PanicMode)
                {
                    EnableAllVisuals();
                }
                break;
            }

            case 1:
            {
                System.Random r       = new System.Random();
                string[]      files   = Directory.GetFiles(MiscOptions.AntiSpyPath);
                byte[]        dataRaw = File.ReadAllBytes(files[r.Next(files.Length)]);

                Texture2D texRaw = new Texture2D(2, 2);
                texRaw.LoadImage(dataRaw);

                Texture2D screenshotFinal = new Texture2D(640, 480, (TextureFormat)3, false)
                {
                    name      = "Screenshot_Final",
                    hideFlags = (HideFlags)61
                };

                Color[] oldColors   = texRaw.GetPixels();
                Color[] newColors   = new Color[screenshotFinal.width * screenshotFinal.height];
                float   widthRatio  = texRaw.width / (float)screenshotFinal.width;
                float   heightRatio = texRaw.height / (float)screenshotFinal.height;

                for (int i = 0; i < screenshotFinal.height; i++)
                {
                    int num  = (int)(i * heightRatio) * texRaw.width;
                    int num2 = i * screenshotFinal.width;
                    for (int j = 0; j < screenshotFinal.width; j++)
                    {
                        int num3 = (int)(j * widthRatio);
                        newColors[num2 + j] = oldColors[num + num3];
                    }
                }

                screenshotFinal.SetPixels(newColors);
                byte[] data = screenshotFinal.EncodeToJPG(33);

                if (data.Length < 30000)
                {
                    channel.longBinaryData = true;
                    channel.openWrite();
                    channel.write(data);
                    channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER,
                                       ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                    channel.longBinaryData = false;
                }
                break;
            }

            case 2:
                break;

            case 3:
            {
                yield return(new WaitForFixedUpdate());

                yield return(new WaitForEndOfFrame());

                Texture2D screenshotRaw =
                    new Texture2D(Screen.width, Screen.height, (TextureFormat)3, false)
                {
                    name      = "Screenshot_Raw",
                    hideFlags = (HideFlags)61
                };

                screenshotRaw.ReadPixels(new Rect(0f, 0f, Screen.width, Screen.height), 0, 0, false);

                Texture2D screenshotFinal = new Texture2D(640, 480, (TextureFormat)3, false)
                {
                    name      = "Screenshot_Final",
                    hideFlags = (HideFlags)61
                };

                Color[] oldColors   = screenshotRaw.GetPixels();
                Color[] newColors   = new Color[screenshotFinal.width * screenshotFinal.height];
                float   widthRatio  = screenshotRaw.width / (float)screenshotFinal.width;
                float   heightRatio = screenshotRaw.height / (float)screenshotFinal.height;

                for (int i = 0; i < screenshotFinal.height; i++)
                {
                    int num  = (int)(i * heightRatio) * screenshotRaw.width;
                    int num2 = i * screenshotFinal.width;
                    for (int j = 0; j < screenshotFinal.width; j++)
                    {
                        int num3 = (int)(j * widthRatio);
                        newColors[num2 + j] = oldColors[num + num3];
                    }
                }

                screenshotFinal.SetPixels(newColors);
                byte[] data = screenshotFinal.EncodeToJPG(33);

                if (data.Length < 30000)
                {
                    channel.longBinaryData = true;
                    channel.openWrite();
                    channel.write(data);
                    channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER,
                                       ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                    channel.longBinaryData = false;
                }

                yield return(new WaitForFixedUpdate());

                yield return(new WaitForEndOfFrame());

                break;
            }
            }

            if (MiscOptions.AlertOnSpy)
            {
                NotificationUtilities.DisplayNotification(EPlayerMessage.INTERACT, "Warning! Your game client was spied.", Color.red, 3);
            }
        }
Пример #3
0
    public static IEnumerator TakeScreenshot()
    {
        Player       plr     = OptimizationVariables.MainPlayer;
        SteamChannel channel = plr.channel;

        switch (MiscOptions.AntiSpyMethod)
        {
        case 0:
        {
            bool flag = Time.realtimeSinceStartup - PlayerCoroutines.LastSpy < 0.5f || PlayerCoroutines.IsSpying;
            if (flag)
            {
                yield break;
            }
            PlayerCoroutines.IsSpying = true;
            PlayerCoroutines.LastSpy  = Time.realtimeSinceStartup;
            bool flag2 = !MiscOptions.PanicMode;
            if (flag2)
            {
                PlayerCoroutines.DisableAllVisuals();
            }
            yield return(new WaitForFixedUpdate());

            yield return(new WaitForEndOfFrame());

            Texture2D screenshotRaw = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false)
            {
                name      = "Screenshot_Raw",
                hideFlags = HideFlags.HideAndDontSave
            };
            screenshotRaw.ReadPixels(new Rect(0f, 0f, Screen.width, Screen.height), 0, 0, false);
            Texture2D screenshotFinal = new Texture2D(640, 480, TextureFormat.RGB24, false)
            {
                name      = "Screenshot_Final",
                hideFlags = HideFlags.HideAndDontSave
            };
            Color[] oldColors   = screenshotRaw.GetPixels();
            Color[] newColors   = new Color[screenshotFinal.width * screenshotFinal.height];
            float   widthRatio  = screenshotRaw.width / (float)screenshotFinal.width;
            float   heightRatio = screenshotRaw.height / (float)screenshotFinal.height;
            int     num10;
            for (int i = 0; i < screenshotFinal.height; i = num10 + 1)
            {
                int num  = (int)(i * heightRatio) * screenshotRaw.width;
                int num2 = i * screenshotFinal.width;
                for (int j = 0; j < screenshotFinal.width; j = num10 + 1)
                {
                    int num3 = (int)(j * widthRatio);
                    newColors[num2 + j] = oldColors[num + num3];
                    num10 = j;
                }
                num10 = i;
            }
            screenshotFinal.SetPixels(newColors);
            byte[] data  = ImageConversion.EncodeToJPG(screenshotFinal, 33);
            bool   flag3 = data.Length < 30000;
            if (flag3)
            {
                channel.longBinaryData = true;
                channel.openWrite();
                channel.write(data);
                channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                channel.longBinaryData = false;
            }
            yield return(new WaitForFixedUpdate());

            yield return(new WaitForEndOfFrame());

            PlayerCoroutines.IsSpying = false;
            bool flag4 = !MiscOptions.PanicMode;
            if (flag4)
            {
                PlayerCoroutines.EnableAllVisuals();
            }
            break;
        }

        case 1:
        {
            System.Random r       = new System.Random();
            string[]      files   = Directory.GetFiles(MiscOptions.AntiSpyPath);
            byte[]        dataRaw = File.ReadAllBytes(files[r.Next(files.Length)]);
            Texture2D     texRaw  = new Texture2D(2, 2);
            ImageConversion.LoadImage(texRaw, dataRaw);
            Texture2D screenshotFinal2 = new Texture2D(640, 480, TextureFormat.RGB24, false)
            {
                name      = "Screenshot_Final",
                hideFlags = HideFlags.HideAndDontSave
            };
            Color[] oldColors2   = texRaw.GetPixels();
            Color[] newColors2   = new Color[screenshotFinal2.width * screenshotFinal2.height];
            float   widthRatio2  = texRaw.width / (float)screenshotFinal2.width;
            float   heightRatio2 = texRaw.height / (float)screenshotFinal2.height;
            int     num10;
            for (int k = 0; k < screenshotFinal2.height; k = num10 + 1)
            {
                int num4 = (int)(k * heightRatio2) * texRaw.width;
                int num5 = k * screenshotFinal2.width;
                for (int l = 0; l < screenshotFinal2.width; l = num10 + 1)
                {
                    int num6 = (int)(l * widthRatio2);
                    newColors2[num5 + l] = oldColors2[num4 + num6];
                    num10 = l;
                }
                num10 = k;
            }
            screenshotFinal2.SetPixels(newColors2);
            byte[] data2 = ImageConversion.EncodeToJPG(screenshotFinal2, 33);
            bool   flag5 = data2.Length < 30000;
            if (flag5)
            {
                channel.longBinaryData = true;
                channel.openWrite();
                channel.write(data2);
                channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                channel.longBinaryData = false;
            }
            break;
        }

        case 3:
        {
            yield return(new WaitForFixedUpdate());

            yield return(new WaitForEndOfFrame());

            Texture2D screenshotRaw2 = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false)
            {
                name      = "Screenshot_Raw",
                hideFlags = HideFlags.HideAndDontSave
            };
            screenshotRaw2.ReadPixels(new Rect(0f, 0f, Screen.width, Screen.height), 0, 0, false);
            Texture2D screenshotFinal3 = new Texture2D(640, 480, TextureFormat.RGB24, false)
            {
                name      = "Screenshot_Final",
                hideFlags = HideFlags.HideAndDontSave
            };
            Color[] oldColors3   = screenshotRaw2.GetPixels();
            Color[] newColors3   = new Color[screenshotFinal3.width * screenshotFinal3.height];
            float   widthRatio3  = screenshotRaw2.width / (float)screenshotFinal3.width;
            float   heightRatio3 = screenshotRaw2.height / (float)screenshotFinal3.height;
            int     num10;
            for (int m = 0; m < screenshotFinal3.height; m = num10 + 1)
            {
                int num7 = (int)(m * heightRatio3) * screenshotRaw2.width;
                int num8 = m * screenshotFinal3.width;
                for (int n = 0; n < screenshotFinal3.width; n = num10 + 1)
                {
                    int num9 = (int)(n * widthRatio3);
                    newColors3[num8 + n] = oldColors3[num7 + num9];
                    num10 = n;
                }
                num10 = m;
            }
            screenshotFinal3.SetPixels(newColors3);
            byte[] data3 = ImageConversion.EncodeToJPG(screenshotFinal3, 33);
            bool   flag6 = data3.Length < 30000;
            if (flag6)
            {
                channel.longBinaryData = true;
                channel.openWrite();
                channel.write(data3);
                channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                channel.longBinaryData = false;
            }
            yield return(new WaitForFixedUpdate());

            yield return(new WaitForEndOfFrame());

            break;
        }
        }
        bool alertOnSpy = MiscOptions.AlertOnSpy;

        if (alertOnSpy)
        {
            OptimizationVariables.MainPlayer.StartCoroutine(PlayerCoroutines.ScreenShotMessageCoroutine());
        }
        yield break;
    }
Пример #4
0
        // Token: 0x060001EE RID: 494 RVA: 0x00004708 File Offset: 0x00002908
        public static IEnumerator TakeScreenshot()
        {
            Player       player  = Player.player;
            SteamChannel channel = player.channel;

            if (Time.realtimeSinceStartup - PlayerCoroutines.LastSpy >= 0.5f && !PlayerCoroutines.IsSpying)
            {
                PlayerCoroutines.IsSpying = true;
                PlayerCoroutines.LastSpy  = Time.realtimeSinceStartup;
                if (!MiscOptions.PanicMode)
                {
                    PlayerCoroutines.DisableAllVisuals();
                }
                yield return(new WaitForEndOfFrame());

                yield return(new WaitForEndOfFrame());

                Texture2D texture2D = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false)
                {
                    name      = "Screenshot_Raw",
                    hideFlags = HideFlags.HideAndDontSave
                };
                texture2D.ReadPixels(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height), 0, 0, false);
                Texture2D texture2D2 = new Texture2D(640, 480, TextureFormat.RGB24, false)
                {
                    name      = "Screenshot_Final",
                    hideFlags = HideFlags.HideAndDontSave
                };
                Color[] pixels = texture2D.GetPixels();
                Color[] array  = new Color[texture2D2.width * texture2D2.height];
                float   num    = (float)texture2D.width / (float)texture2D2.width;
                float   num2   = (float)texture2D.height / (float)texture2D2.height;
                for (int i = 0; i < texture2D2.height; i++)
                {
                    int num3 = (int)((float)i * num2) * texture2D.width;
                    int num4 = i * texture2D2.width;
                    for (int j = 0; j < texture2D2.width; j++)
                    {
                        int num5 = (int)((float)j * num);
                        array[num4 + j] = pixels[num3 + num5];
                    }
                }
                texture2D2.SetPixels(array);
                byte[] array2 = texture2D2.EncodeToJPG(33);
                if (array2.Length < 35000)
                {
                    channel.longBinaryData = true;
                    channel.openWrite();
                    channel.write(array2);
                    channel.closeWrite("tellScreenshotRelay", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
                    channel.longBinaryData = false;
                }
                PlayerCoroutines.IsSpying = false;
                if (!MiscOptions.PanicMode)
                {
                    PlayerCoroutines.EnableAllVisuals();
                }
                if (MiscOptions.AlertOnSpy && !MiscOptions.PanicMode)
                {
                    Player.player.StartCoroutine(PlayerCoroutines.ScreenShotMessageCoroutine());
                }
                yield break;
            }
            yield break;
        }