public void WindowLoop() { Console.WriteLine(@"Enjoy!"); while (true) { var marg = new Win32.Margins { Left = 0, Top = 0, Right = 2560, Bottom = 1440 }; Win32.DwmExtendFrameIntoClientArea(_handle, ref marg); try { if (_handle != IntPtr.Zero) { Win32.SetWindowPos(_handle, (IntPtr)Win32.SpecialWindowHandles.HWND_TOPMOST, 0, 0, 0, 0, Win32.SetWindowPosFlags.SWP_NOMOVE | Win32.SetWindowPosFlags.SWP_NOSIZE); } else { break; } } catch { Thread.Sleep(15); continue; } Thread.Sleep(1000 / 144); } }
private static int internalExtendGlass(IntPtr windowHandle, int left, int right, int top, int bottom) { var retVal = -1; // Returning less than zero will indicate that Aero Glass could not be extended // Calculate the Aero Glass Margins Win32.Margins margins = Win32.GetDpiAdjustedMargins(windowHandle, left, right, top, bottom); try { // Actually Enable Aero Glass retVal = Win32.DwmExtendFrameIntoClientArea(windowHandle, ref margins); } catch (Exception) { retVal = -1; } return(retVal); }
public static Win32.Margins GetDpiAdjustedMargins(IntPtr windowHandle, int left, int right, int top, int bottom) { // Get System Dpi System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(windowHandle); float DesktopDpiX = desktop.DpiX; float DesktopDpiY = desktop.DpiY; // Set Margins Win32.Margins margins = new Win32.Margins(); // Note that the default desktop Dpi is 96dpi. The margins are // adjusted for the system Dpi. margins.Left = Convert.ToInt32(left * (DesktopDpiX / 96)); margins.Right = Convert.ToInt32(right * (DesktopDpiX / 96)); margins.Top = Convert.ToInt32(top * (DesktopDpiX / 96)); margins.Bottom = Convert.ToInt32(bottom * (DesktopDpiX / 96)); return(margins); }
public Form1() { InitializeComponent(); //Make the window's border completely transparant // ANTI BATTLEYE SIG SCAN ;) this.Text = Guid.NewGuid().ToString().Replace("-", ""); // TRANSPARENCY KEY this.BackColor = System.Drawing.Color.Black; // SETTINGS this.FormBorderStyle = FormBorderStyle.None; this.ShowIcon = false; this.ShowInTaskbar = false; this.TopMost = true; this.WindowState = FormWindowState.Maximized; // MAKE WINDOW TRANSPARENT Win32.SetWindowLong(this.Handle, Win32.GWL_EXSTYLE, (IntPtr)(Win32.GetWindowLong(this.Handle, Win32.GWL_EXSTYLE) ^ Win32.WS_EX_LAYERED ^ Win32.WS_EX_TRANSPARENT)); // MAKE WINDOW SOLID Win32.SetLayeredWindowAttributes(this.Handle, 0, 255, Win32.LWA_ALPHA); var targetProperties = new HwndRenderTargetProperties { Hwnd = this.Handle, PixelSize = new Size2(this.Bounds.Right - this.Bounds.Left, this.Bounds.Bottom - this.Bounds.Top), PresentOptions = PresentOptions.Immediately }; var prop = new RenderTargetProperties(RenderTargetType.Hardware, new PixelFormat(Format.B8G8R8A8_UNorm, SharpDX.Direct2D1.AlphaMode.Premultiplied), 0, 0, RenderTargetUsage.None, FeatureLevel.Level_DEFAULT); var d3dFactory = new SharpDX.Direct2D1.Factory(); var device = new WindowRenderTarget(d3dFactory, prop, targetProperties) { TextAntialiasMode = TextAntialiasMode.Cleartype, AntialiasMode = AntialiasMode.Aliased }; var url = "http://127.0.0.1:8888/api/values/5"; var dxthread = new Thread(() => { var brushWhite = new SolidColorBrush(device, RawColorFromColor(Color.White)); var brushBlack = new SolidColorBrush(device, RawColorFromColor(Color.Black)); var brushGreen = new SolidColorBrush(device, RawColorFromColor(Color.Green)); var brushRed = new SolidColorBrush(device, RawColorFromColor(Color.Red)); var brushPurple = new SolidColorBrush(device, RawColorFromColor(Color.Purple)); var fontFactory = new SharpDX.DirectWrite.Factory(); var fontConsolas = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 15); var fontESP = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 12); JSON_DATA json_data = null; using (var w = new WebClient()) { while (!w.IsBusy) { // attempt to download JSON data as a string try { var str = w.DownloadString(url); json_data = JsonConvert.DeserializeObject <JSON_DATA>(str); } catch (Exception) { } finally { device.BeginDraw(); device.Clear(null); #region RADAR int radarX = 20; int radarY = 140; int radarSize = 200; int radarBorder = 1; Vector2 centerpoint = new Vector2(radarX + radarSize / 2, radarY + radarSize / 2); // TODO: INTEGRATE INTO MINIMAP if (false) { var radarOuterRectangle = new RawRectangleF(radarX, radarY, radarX + radarSize, radarY + radarSize); var radarRectangle = new RawRectangleF(radarX + radarBorder, radarY + radarBorder, radarX + radarSize - radarBorder, radarY + radarSize - radarBorder); var radarCenterRectangle = new RoundedRectangle() { RadiusX = 4, RadiusY = 4, Rect = new RawRectangleF(centerpoint.X, centerpoint.Y, centerpoint.X + 4, centerpoint.Y + 4) }; device.FillRectangle(radarRectangle, brushBlack); device.DrawRectangle(radarRectangle, brushWhite); device.FillRoundedRectangle(radarCenterRectangle, brushGreen); } #endregion var vecLocalLocation = new Model.Vector3 { X = json_data.camera[1].X, Y = json_data.camera[1].Y, Z = json_data.camera[1].Z }; var PlayerCameraManager = new APlayerCameraManager { CameraCache = new FCameraCacheEntry { POV = new FMinimalViewInfo { Fov = json_data.camera[2].X, Location = new Model.Vector3 { X = json_data.camera[1].X, Y = json_data.camera[1].Y, Z = json_data.camera[1].Z }, Rotation = new Model.FRotator { Pitch = json_data.camera[0].X, Yaw = json_data.camera[0].Y, Roll = json_data.camera[0].Z } } } }; #region 车 if (false) { foreach (var v in json_data.vehicles) { var vecActorLocation = new Vector3 { X = v.rx, Y = v.ry, Z = v.rz }; var vecRelativePos = vecLocalLocation - vecActorLocation; var lDeltaInMeters = vecRelativePos.Length / 100; Vector2 screenlocation; WorldToScreen(vecActorLocation, PlayerCameraManager, out screenlocation); DrawText($"[{v.v}] {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, brushRed, fontFactory, fontESP, device); } } #endregion #region 物品 if (false) { foreach (var v in json_data.items) { var vecActorLocation = new Vector3 { X = v.rx, Y = v.ry, Z = v.rz }; var vecRelativePos = vecLocalLocation - vecActorLocation; var lDeltaInMeters = vecRelativePos.Length / 100; Vector2 screenlocation; WorldToScreen(vecActorLocation, PlayerCameraManager, out screenlocation); DrawText($"{v.n}", (int)screenlocation.X, (int)screenlocation.Y, brushPurple, fontFactory, fontESP, device); } } #endregion #region 人物 var playerList = json_data.players.OrderBy(z => z.id).ToList(); var localPlayer = playerList[0]; foreach (var player in playerList) { if (player.health > 0 && player.id != 0 && localPlayer.t != player.t) { var vecPlayerLocation = new Vector3 { X = player.rx, Y = player.ry, Z = player.rz }; var vecRelativePos = vecLocalLocation - vecPlayerLocation; var lDeltaInMeters = vecRelativePos.Length / 100; #region Line ESP // 线 if (lDeltaInMeters <= 200 && lDeltaInMeters > 5 && json_data.players.Count <= 50) { Vector2 screenlocation; WorldToScreen(vecPlayerLocation, PlayerCameraManager, out screenlocation); device.DrawLine(new RawVector2(2560 / 2, 1440), new RawVector2(screenlocation.X, screenlocation.Y), brushWhite); } #endregion #region Distance ESP // if (CheatSettings.DistanceESP) if (lDeltaInMeters > 5) { Vector2 screenlocation; WorldToScreen(vecPlayerLocation, PlayerCameraManager, out screenlocation); DrawText($"HP:{(int)player.health} {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, lDeltaInMeters >= 200 ? brushGreen : brushRed, fontFactory, fontESP, device); } #endregion #region Radar if (false) { if (lDeltaInMeters <= radarSize / 2 /*DISTANCE FROM CENTER TO EDGE*/) { Vector2 screenpos = centerpoint + vecRelativePos.To2D() / 100; var radarPlayerRectangle = new RoundedRectangle() { RadiusX = 4, RadiusY = 4, Rect = new RawRectangleF(screenpos.X, screenpos.Y, screenpos.X + 5, screenpos.Y + 5) }; // DRAW ENEMY device.FillRoundedRectangle(radarPlayerRectangle, brushRed); } } #endregion } } } #endregion // DRAW END device.EndDraw(); Thread.Sleep(1000 / 60); } } }); dxthread.IsBackground = true; dxthread.Start(); var marg = new Win32.Margins(); marg.Left = 0; marg.Top = 0; marg.Right = this.Width; marg.Bottom = this.Height; Win32.DwmExtendFrameIntoClientArea(this.Handle, ref marg); }
public OverlayForm() { InitializeComponent(); // ANTI BATTLEYE SIG SCAN ;) this.Text = Guid.NewGuid().ToString().Replace("-", ""); // TRANSPARENCY KEY this.BackColor = System.Drawing.Color.Black; // SETTINGS this.FormBorderStyle = FormBorderStyle.None; this.ShowIcon = false; this.ShowInTaskbar = false; this.TopMost = true; this.WindowState = FormWindowState.Maximized; // MAKE WINDOW TRANSPARENT Win32.SetWindowLong(this.Handle, Win32.GWL_EXSTYLE, (IntPtr)(Win32.GetWindowLong(this.Handle, Win32.GWL_EXSTYLE) ^ Win32.WS_EX_LAYERED ^ Win32.WS_EX_TRANSPARENT)); // MAKE WINDOW SOLID Win32.SetLayeredWindowAttributes(this.Handle, 0, 255, Win32.LWA_ALPHA); var targetProperties = new HwndRenderTargetProperties { Hwnd = this.Handle, PixelSize = new Size2(this.Bounds.Right - this.Bounds.Left, this.Bounds.Bottom - this.Bounds.Top), PresentOptions = PresentOptions.Immediately }; var prop = new RenderTargetProperties(RenderTargetType.Hardware, new PixelFormat(Format.B8G8R8A8_UNorm, SharpDX.Direct2D1.AlphaMode.Premultiplied), 0, 0, RenderTargetUsage.None, FeatureLevel.Level_DEFAULT); var d3dFactory = new SharpDX.Direct2D1.Factory(); var device = new WindowRenderTarget(d3dFactory, prop, targetProperties) { TextAntialiasMode = TextAntialiasMode.Cleartype, AntialiasMode = AntialiasMode.Aliased }; var dxthread = new Thread(() => { var brushWhite = new SolidColorBrush(device, RawColorFromColor(Color.White)); var brushBlack = new SolidColorBrush(device, RawColorFromColor(Color.Black)); var brushGreen = new SolidColorBrush(device, RawColorFromColor(Color.Green)); var brushRed = new SolidColorBrush(device, RawColorFromColor(Color.Red)); var brushPurple = new SolidColorBrush(device, RawColorFromColor(Color.Purple)); var fontFactory = new SharpDX.DirectWrite.Factory(); var fontConsolas = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 15); var fontESP = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 10); while (true) { device.BeginDraw(); device.Clear(null); if (CheatSettings.Visuals) { var ulocalplayer = G.OwningGameInstance.LocalPlayer; var localplayer = AActor.GetLocalPlayer(); var vecLocalLocation = localplayer.Location; //DrawText($"BodyHitImpact: {localplayer.WeaponProcessor.EquippedWeapons.ReadValue(0, true).WeaponConfig.PhysicalBodyHitImpactPower}", 50, 50, brushWhite, fontFactory, fontESP, device); #region RADAR int radarX = 20; int radarY = 140; int radarSize = 200; int radarBorder = 1; Vector2 centerpoint = new Vector2(radarX + radarSize / 2, radarY + radarSize / 2); // TODO: INTEGRATE INTO MINIMAP if (CheatSettings.RadarESP) { var radarOuterRectangle = new RawRectangleF(radarX, radarY, radarX + radarSize, radarY + radarSize); var radarRectangle = new RawRectangleF(radarX + radarBorder, radarY + radarBorder, radarX + radarSize - radarBorder, radarY + radarSize - radarBorder); var radarCenterRectangle = new RoundedRectangle() { RadiusX = 4, RadiusY = 4, Rect = new RawRectangleF(centerpoint.X, centerpoint.Y, centerpoint.X + 4, centerpoint.Y + 4) }; device.FillRectangle(radarRectangle, brushBlack); device.DrawRectangle(radarRectangle, brushWhite); device.FillRoundedRectangle(radarCenterRectangle, brushGreen); } #endregion #region DEBUG if (CheatSettings.LogIDs) { foreach (var Actor in G.Entities.ToList()) { var vecActorLocation = Actor.Location; var vecRelativePos = vecLocalLocation - vecActorLocation; Vector2 screenlocation; WorldToScreen(vecActorLocation, ulocalplayer.PlayerController.PlayerCameraManager, out screenlocation); DrawText($"[{Actor.Id}] {G.Names[Actor.Id]}", (int)screenlocation.X, (int)screenlocation.Y, brushWhite, fontFactory, fontESP, device); } } #endregion #region VEHICLE ESP if (CheatSettings.VehicleESP) { foreach (var Actor in G.Vehicles.ToList()) { var vecActorLocation = Actor.Location; var vecRelativePos = vecLocalLocation - vecActorLocation; var lDeltaInMeters = vecRelativePos.Length / 100; Vector2 screenlocation; WorldToScreen(vecActorLocation, ulocalplayer.PlayerController.PlayerCameraManager, out screenlocation); /* * UAZ: 76152 - 76156 - 76166 - 76165 * Dacia: 75657 - 75653 - 75665 - 75679 * Buggy: 75371 - 75375 - 75379 * Jeep: 76157 * Motorbike: 75820 * Boat: 75301 */ string szVehicleName = string.Empty; switch (Actor.Id) { /*UAZ*/ case 76152: case 76156: case 76166: case 76165: case 76169: szVehicleName = "UAZ"; break; /*Dacia*/ case 75657: case 75653: case 75665: case 75679: case 75675: szVehicleName = "Dacia"; break; /*Buggy*/ case 75371: case 75375: case 75379: case 75401: szVehicleName = "Buggy"; break; /*Jeep*/ case 76157: szVehicleName = "Jeep"; break; /*Boat*/ case 75301: szVehicleName = "Boat"; break; /*Motorbike*/ case 75820: szVehicleName = "Motorbike"; break; } if (szVehicleName != string.Empty) { DrawText($"[{szVehicleName}] {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, brushRed, fontFactory, fontESP, device); } } } #endregion #region LOOT ESP // Doesnt work if (CheatSettings.LootESP) { foreach (var DroppedItemGroup in G.Entities.ToList().Where(x => x.IsDroppedItemGroup)) { TArray <pADroppedItem> array = DroppedItemGroup.DroppedItemArray; for (int nIndex = 0; nIndex < array.Count; nIndex++) { var item = array.ReadValue(nIndex, false); var actor = M.Read <AActor>(item.pActor); if (actor.IsDroppedItemInteractionComponent) { var vecItemLocation = DroppedItemGroup.RootComponent.RelativeLocation + M.Read <Vector3>(actor.BasePointer + 0x0230); var pUItem = M.Read <IntPtr>(actor.BasePointer + 0x0220); string szName = M.Read <FText>(pUItem + 0x0040).fstring.ToString(); Vector2 screenlocation; WorldToScreen(vecItemLocation, ulocalplayer.PlayerController.PlayerCameraManager, out screenlocation); DrawText(szName, (int)screenlocation.X, (int)screenlocation.Y, brushWhite, fontFactory, fontESP, device); Console.WriteLine($"Drawing {szName}/{G.Names[actor.Id]} at {vecItemLocation}"); } } } } #endregion #region PlAYER LOOP if (CheatSettings.DistanceESP || CheatSettings.RadarESP || CheatSettings.LineESP) { var vecLocalEyeLocation = localplayer.EyeLocation; var myangles = ulocalplayer.PlayerController.ControlRotation; foreach (var player in G.Players.ToList()) { var vecPlayerLocation = player.Location; var vecRelativePos = vecLocalLocation - vecPlayerLocation; var lDeltaInMeters = vecRelativePos.Length / 100; #region Line ESP if (CheatSettings.LineESP) { Vector2 screenlocation; WorldToScreen(vecPlayerLocation, ulocalplayer.PlayerController.PlayerCameraManager, out screenlocation); device.DrawLine(new RawVector2(1920 / 2, 1080), new RawVector2(screenlocation.X, screenlocation.Y), brushWhite); } #endregion #region Distance ESP if (CheatSettings.DistanceESP) { Vector2 screenlocation; WorldToScreen(vecPlayerLocation, ulocalplayer.PlayerController.PlayerCameraManager, out screenlocation); DrawText($"[Player] {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, brushPurple, fontFactory, fontESP, device); } #endregion #region Radar if (CheatSettings.RadarESP) { if (lDeltaInMeters <= radarSize / 2 /*DISTANCE FROM CENTER TO EDGE*/) { Vector2 screenpos = centerpoint + vecRelativePos.To2D() / 100; var radarPlayerRectangle = new RoundedRectangle() { RadiusX = 4, RadiusY = 4, Rect = new RawRectangleF(screenpos.X, screenpos.Y, screenpos.X + 5, screenpos.Y + 5) }; // DRAW ENEMY device.FillRoundedRectangle(radarPlayerRectangle, brushRed); } } #endregion } } #endregion } // DRAW END device.EndDraw(); Thread.Sleep(1000 / 60); } }); dxthread.IsBackground = true; dxthread.Start(); var marg = new Win32.Margins(); marg.Left = 0; marg.Top = 0; marg.Right = this.Width; marg.Bottom = this.Height; Win32.DwmExtendFrameIntoClientArea(this.Handle, ref marg); }
public Cpuz() { InitializeComponent(); //Make the window's border completely transparant #region D3D初始化 // ANTI BATTLEYE SIG SCAN ;) this.Text = Guid.NewGuid().ToString().Replace("-", ""); // TRANSPARENCY KEY this.BackColor = System.Drawing.Color.Black; // SETTINGS this.FormBorderStyle = FormBorderStyle.None; this.ShowIcon = false; this.ShowInTaskbar = false; this.TopMost = true; this.WindowState = FormWindowState.Maximized; // MAKE WINDOW TRANSPARENT Win32.SetWindowLong(this.Handle, Win32.GWL_EXSTYLE, (IntPtr)(Win32.GetWindowLong(this.Handle, Win32.GWL_EXSTYLE) ^ Win32.WS_EX_LAYERED ^ Win32.WS_EX_TRANSPARENT)); // MAKE WINDOW SOLID Win32.SetLayeredWindowAttributes(this.Handle, 0, 255, Win32.LWA_ALPHA); var targetProperties = new HwndRenderTargetProperties { Hwnd = this.Handle, PixelSize = new Size2(this.Bounds.Right - this.Bounds.Left, this.Bounds.Bottom - this.Bounds.Top), PresentOptions = PresentOptions.Immediately }; var prop = new RenderTargetProperties(RenderTargetType.Hardware, new PixelFormat(Format.B8G8R8A8_UNorm, SharpDX.Direct2D1.AlphaMode.Premultiplied), 0, 0, RenderTargetUsage.None, FeatureLevel.Level_DEFAULT); var d3dFactory = new SharpDX.Direct2D1.Factory(); var device = new WindowRenderTarget(d3dFactory, prop, targetProperties) { TextAntialiasMode = TextAntialiasMode.Cleartype, AntialiasMode = AntialiasMode.Aliased }; #endregion var k = KReader.readPuBase(); JSON_DATA json_data = null; var dxthread = new Thread(() => { var brushWhite = new SolidColorBrush(device, RawColorFromColor(Color.White)); var brushBlack = new SolidColorBrush(device, RawColorFromColor(Color.Black)); var brushGreen = new SolidColorBrush(device, RawColorFromColor(Color.Green)); var brushRed = new SolidColorBrush(device, RawColorFromColor(Color.Red)); var brushPurple = new SolidColorBrush(device, RawColorFromColor(Color.Purple)); var fontFactory = new SharpDX.DirectWrite.Factory(); var fontConsolas = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 15); var fontESP = new SharpDX.DirectWrite.TextFormat(fontFactory, "Consolas", 12); while (true) { // attempt to download JSON data as a string try { json_data = DoGame.getGameDate(); if (json_data != null && json_data.players.Count > 0) { mainFrom.STATE = true; device.BeginDraw(); device.Clear(null); #region RADAR int radarSize = 600; Vector2 centerpoint = new Vector2(2356, 1210); if (Setting.雷达) { Ellipse el3 = new Ellipse(new RawVector2(2356, 1210), 1, 1); device.DrawEllipse(el3, brushRed); device.FillEllipse(el3, brushRed); // TODO: INTEGRATE INTO MINIMAP //if (Setting.雷达) //{ // var radarOuterRectangle = new RawRectangleF(radarX, radarY, radarX + radarSize, // radarY + radarSize); // var radarRectangle = new RawRectangleF(radarX + radarBorder, radarY + radarBorder, // radarX + radarSize - radarBorder, radarY + radarSize - radarBorder); // var radarCenterRectangle = new RoundedRectangle() // { // RadiusX = 4, // RadiusY = 4, // Rect = new RawRectangleF(centerpoint.X, centerpoint.Y, centerpoint.X + 4, // centerpoint.Y + 4) // }; // device.FillRectangle(radarRectangle, brushBlack); // device.DrawRectangle(radarRectangle, brushWhite); // device.FillRoundedRectangle(radarCenterRectangle, brushGreen); //} } #endregion var vecLocalLocation = new Model.Vector3 { X = json_data.camera[1].X, Y = json_data.camera[1].Y, Z = json_data.camera[1].Z }; var PlayerCameraManager = new PlayerCameraManager { CameraCache = new FCameraCacheEntry { POV = new FMinimalViewInfo { Fov = json_data.camera[2].X, Location = new Model.Vector3 { X = json_data.camera[1].X, Y = json_data.camera[1].Y, Z = json_data.camera[1].Z }, Rotation = new Model.FRotator { Pitch = json_data.camera[0].X, Yaw = json_data.camera[0].Y, Roll = json_data.camera[0].Z } } } }; #region 车 if (Setting.车辆显示) { foreach (var v in json_data.vehicles) { var vecActorLocation = new Vector3 { X = v.rx, Y = v.ry, Z = v.rz }; var vecRelativePos = vecLocalLocation - vecActorLocation; var lDeltaInMeters = vecRelativePos.Length / 100; if (lDeltaInMeters <= 400) { Vector2 screenlocation; if (WorldToScreen(vecActorLocation, PlayerCameraManager, out screenlocation)) { DrawText($"[{v.v}] {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, v.v == "Deat" ? brushBlack : brushGreen, fontFactory, fontESP, device); } } } } #endregion #region 物品 //todo:有BUG if (Setting.物品显示) { foreach (var v in json_data.items) { var vecActorLocation = new Vector3 { X = v.rx, Y = v.ry, Z = v.rz }; var vecRelativePos = vecLocalLocation - vecActorLocation; var lDeltaInMeters = vecRelativePos.Length / 100; Vector2 screenlocation; if (WorldToScreen(vecActorLocation, PlayerCameraManager, out screenlocation)) { DrawText($"{v.n}", (int)screenlocation.X, (int)screenlocation.Y, brushWhite, fontFactory, fontESP, device); } } } #endregion #region 人物 var playerList = json_data.players.OrderBy(z => z.id).ToList(); var localPlayer = playerList[0]; foreach (var player in playerList) { if (player.health > 0 && player.isInactive > 0 && player.id != 0) { var vecPlayerLocation = new Vector3 { X = player.rx, Y = player.ry, Z = player.rz }; var vecRelativePos = vecLocalLocation - vecPlayerLocation; //距离 var lDeltaInMeters = vecRelativePos.Length / 100.0f; if (lDeltaInMeters >= 750) { continue; } #region 线条 if (Setting.线条) { if (lDeltaInMeters > 3) { if ( //超过200米不显示线 lDeltaInMeters <= 200 //超过40人不显示线 && json_data.players.Count <= 40 //队友不显示 && player.t != localPlayer.t ) { if (WorldToScreen(vecPlayerLocation, PlayerCameraManager, out var screenlocation)) { device.DrawLine(new RawVector2(Setting.Screen.Width / 2f, Setting.Screen.Height), new RawVector2(screenlocation.X, screenlocation.Y), lDeltaInMeters <= 100 ? brushRed : brushWhite); } } } } #endregion #region Distance ESP if (lDeltaInMeters > 3) { if (Setting.距离和血量) { if (WorldToScreen(vecPlayerLocation, PlayerCameraManager, out var screenlocation)) { SolidColorBrush brush = brushRed; if (lDeltaInMeters >= 250) { brush = brushPurple; } if (lDeltaInMeters >= 500) { brush = brushGreen; } if (player.t == localPlayer.t) { brush = brushGreen; } DrawText($"[{player.id}]{(int)player.health} {(int)lDeltaInMeters}m", (int)screenlocation.X, (int)screenlocation.Y, brush, fontFactory, fontESP, device); } } } #endregion #region Radar if (Setting.雷达) { var loclalLocation = new Vector3 { X = playerList[0].x, Y = playerList[0].y, Z = playerList[0].z }; var currentActorLocation = new Vector3 { X = player.x, Y = player.y, Z = player.z }; var relativePos = loclalLocation - currentActorLocation; if (relativePos.Length / 100.0f <= radarSize / 2 /*DISTANCE FROM CENTER TO EDGE*/) { Vector2 screenpos = centerpoint - relativePos.To2D() / 118f; Ellipse el22 = new Ellipse(new RawVector2(screenpos.X, screenpos.Y), 3, 3); device.DrawEllipse(el22, brushRed); device.FillEllipse(el22, brushRed); } } #endregion #region 骨骼 if (lDeltaInMeters < 250 && lDeltaInMeters > 5) { DrawSkeleton(player.mesh, PlayerCameraManager, device, brushRed, fontESP); } #endregion } } #endregion // DRAW END device.EndDraw(); } else { mainFrom.STATE = false; } } catch (Exception ex) { System.IO.File.WriteAllText("c:\\log\\bug_json.txt", JsonConvert.SerializeObject(json_data)); } Thread.Sleep(10); } }) { IsBackground = true }; dxthread.Start(); #region Web端 var webThread = new Thread(() => { while (true) { using (var webClient = new WebClient()) { if (Setting.Web端 && json_data.players.Count > 0 && !webClient.IsBusy) { try { // 指定 WebClient 編碼 webClient.Encoding = Encoding.UTF8; // 指定 WebClient 的 Content-Type header webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json"); // 指定 WebClient 的 authorization header //webClient.Headers.Add("authorization", "token {apitoken}"); // 執行 PUT 動作 var result = webClient.UploadString("http://127.0.0.1:3000/api/5", "PUT", JsonConvert.SerializeObject(json_data)); } catch (Exception e) { continue; } } } Thread.Sleep(500); } }); webThread.IsBackground = true; webThread.Start(); #endregion var marg = new Win32.Margins { Left = 0, Top = 0, Right = this.Width, Bottom = this.Height }; Win32.DwmExtendFrameIntoClientArea(this.Handle, ref marg); }
public static Win32.Margins GetDpiAdjustedMargins(IntPtr windowHandle, int left, int right, int top, int bottom) { float DesktopDpiX; float DesktopDpiY; // Get System Dpi using (System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(windowHandle)) { DesktopDpiX = desktop.DpiX; DesktopDpiY = desktop.DpiY; } // Set Margins Win32.Margins margins = new Win32.Margins(); // Note that the default desktop Dpi is 96dpi. The margins are // adjusted for the system Dpi. margins.Left = Convert.ToInt32(left * (DesktopDpiX / 96)); margins.Right = Convert.ToInt32(right * (DesktopDpiX / 96)); margins.Top = Convert.ToInt32(top * (DesktopDpiX / 96)); margins.Bottom = Convert.ToInt32(bottom * (DesktopDpiX / 96)); return margins; }