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); } }
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); } }
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; }
// 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; }