Example #1
0
        private void MainScan()
        {
            Array.Clear(this.data, 0, this.data.Length);
            players.Clear();
            MemoryMappedViewStream memoryMappedViewStream = MemoryMappedFile.OpenExisting("DataSend").CreateViewStream();

            byte[] array = new byte[560];
            memoryMappedViewStream.Read(array, 0, 560);
            Buffer.BlockCopy(array, 0, this.data, 0, array.Length);
            memoryMappedViewStream.Flush();
            memoryMappedViewStream.Dispose();
            #region Get Local Player


            for (uint i = 0; i < 70; i++)
            {
                GPlayer player = new GPlayer();

                ulong num = this.data[i];
                if (bRPM.IsValid(num))
                {
                    string text  = bRPM.ReadString2(num + Offsets.PZ_ClientPlayer.szName, 0xF);
                    string value = Pro.NamePlayer.Substring(0, 4);
                    if (text.Substring(0, 4).Equals(value, StringComparison.InvariantCultureIgnoreCase))
                    {
                        pLocalPlayerDecrypted = num;

                        ulong pLocalSoldier = PegaClienteSoldadodEntidade(num, localPlayer);
                        localPlayer.pSoldier = pLocalSoldier;
                        localPlayer.Team     = bRPM.Read <uint>(num + Offsets.PZ_ClientPlayer.m_teamId);

                        if (!bRPM.IsValid(pLocalSoldier))
                        {
                            return;
                        }

                        ulong pHealthComponent = bRPM.Read <ulong>(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_pHealthComponent);

                        // Health
                        localPlayer.Health    = bRPM.Read <float>(pHealthComponent + Offsets.PZ_HealthComponent.m_Health);
                        localPlayer.MaxHealth = bRPM.Read <float>(pHealthComponent + Offsets.PZ_HealthComponent.m_MaxHealth);

                        // Origin
                        localPlayer.Origin     = bRPM.Read <Vector3>(pLocalSoldier + 0X0990);
                        localPlayer.IsOccluded = bRPM.Read <byte>(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_occluded);
                        localPlayer.IsFriendly = (player.Team == localPlayer.Team);

                        #endregion


                        #region Get Other Players by Id
                    }
                    ulong num9 = PegaClienteSoldadodEntidade(num, player);
                    if (bRPM.IsValid(num9) && num != pLocalPlayerDecrypted)
                    {
                        ulong pGameRenderer = bRPM.Read <ulong>(Offsets.OFFSET_GAMERENDERER);
                        ulong pRenderView   = bRPM.Read <ulong>(pGameRenderer + Offsets.PZ_GameRenderer.m_pRenderView);
                        // Read Screen Matrix4x4
                        localPlayer.ViewProj = bRPM.Read <Matrix4x4>(pRenderView + Offsets.PZ_RenderView.m_viewProj);

                        if (player.IsSpectator)
                        {
                            spectatorCount++;
                        }

                        player.Name     = bRPM.ReadString(num + Offsets.PZ_ClientPlayer.szName, 10);
                        player.pSoldier = num9;

                        ulong pEnemyHealthComponent = bRPM.Read <ulong>(num9 + Offsets.PZ_ClientSoldierEntity.m_pHealthComponent);
                        // Health
                        player.Health    = bRPM.Read <float>(pEnemyHealthComponent + Offsets.PZ_HealthComponent.m_Health);
                        player.MaxHealth = bRPM.Read <float>(pEnemyHealthComponent + Offsets.PZ_HealthComponent.m_MaxHealth);


                        // Origin (Position in Game X, Y, Z)
                        player.Origin     = bRPM.Read <Vector3>(num9 + 0X0990);
                        player.Team       = bRPM.Read <uint>(num + Offsets.PZ_ClientPlayer.m_teamId);
                        player.Pose       = bRPM.Read <uint>(num9 + Offsets.PZ_ClientSoldierEntity.m_poseType);
                        player.Yaw        = bRPM.Read <float>(num9 + Offsets.PZ_ClientSoldierEntity.m_authorativeYaw);
                        player.IsOccluded = bRPM.Read <byte>(num9 + Offsets.PZ_ClientSoldierEntity.m_occluded);
                        player.IsFriendly = (player.Team == localPlayer.Team);
                        // Distance to You
                        player.Distance = Vector3.Distance(localPlayer.Origin, player.Origin);
                        bRANDER.SetViewProjection(localPlayer.ViewProj);
                        players.Add(player);

                        if (player.IsValid())
                        {
                            // Player Bone
                            bBoneOk = (GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_HEAD, out player.Bone.BONE_HEAD) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTELBOWROLL, out player.Bone.BONE_LEFTELBOWROLL) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTFOOT, out player.Bone.BONE_LEFTFOOT) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTHAND, out player.Bone.BONE_LEFTHAND) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTKNEEROLL, out player.Bone.BONE_LEFTKNEEROLL) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTSHOULDER, out player.Bone.BONE_LEFTSHOULDER) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_NECK, out player.Bone.BONE_NECK) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTELBOWROLL, out player.Bone.BONE_RIGHTELBOWROLL) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTFOOT, out player.Bone.BONE_RIGHTFOOT) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTHAND, out player.Bone.BONE_RIGHTHAND) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTKNEEROLL, out player.Bone.BONE_RIGHTKNEEROLL) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTSHOULDER, out player.Bone.BONE_RIGHTSHOULDER) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE, out player.Bone.BONE_SPINE) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE1, out player.Bone.BONE_SPINE1) &&
                                       GetBoneById(num9, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE2, out player.Bone.BONE_SPINE2));



                            #region Drawing ESP on Overlay

                            // Desconsidera Aliados
                            if (!bEspAllies && (player.Team == localPlayer.Team))
                            {
                                continue;
                            }

                            #region ESP Bone
                            if (bBoneOk && ESP_Bone)
                            {
                                DrawBone(player);
                            }
                            #endregion

                            Vector3 textPos = new Vector3(player.Origin.X, player.Origin.Y, player.Origin.Z);
                            if (bRANDER.WorldToScreen(textPos, out Vector3 w2sFoot) && bRANDER.WorldToScreen(textPos, player.Pose, out Vector3 w2sHead))
                            {
                                float H = w2sFoot.Y - w2sHead.Y;
                                float W = H / 2;
                                float X = w2sHead.X - W / 2;

                                float heightoffset = Distance3D(w2sFoot, w2sHead);
                                #region ESP Color
                                var color      = (player.Team == localPlayer.Team) ? Color.FromArgb(0, 0, 255) : player.IsVisible() ? Color.FromArgb(0, 255, 0) : Color.FromArgb(255, 0, 0);
                                var colordist  = (player.Team == localPlayer.Team) ? Color.FromArgb(0, 0, 255) : player.IsVisible() ? Color.FromArgb(255, 0, 137) : Color.FromArgb(255, 156, 210);
                                var applycolor = (ESP_Spot ? player.Distance <= 50 ? colordist : color : color);

                                #endregion

                                #region ESP Box
                                // ESP Box
                                if (ESP_Box)
                                {
                                    if (bEsp3D)
                                    {
                                        DrawAABB(player.GetAABB(), player.Origin, player.Yaw, applycolor); // 3D Box
                                    }
                                    else
                                    {
                                        float factor = (heightoffset / 5);

                                        Vector3 m2 = new Vector3(w2sHead.X - factor, w2sHead.Y, 0);
                                        Vector3 m1 = new Vector3(w2sHead.X + factor, w2sHead.Y, 0);
                                        Vector3 m3 = new Vector3(w2sFoot.X - factor, w2sFoot.Y, 0);
                                        Vector3 m4 = new Vector3(w2sFoot.X + factor, w2sFoot.Y, 0);

                                        bRANDER.DrawLine(m1.X, m1.Y, m2.X, m2.Y, 3, applycolor);
                                        bRANDER.DrawLine(m2.X, m2.Y, m3.X, m3.Y, 3, applycolor);
                                        bRANDER.DrawLine(m3.X, m3.Y, m4.X, m4.Y, 3, applycolor);
                                        bRANDER.DrawLine(m4.X, m4.Y, m1.X, m1.Y, 3, applycolor);
                                    }
                                }
                                #endregion

                                #region ESP Vehicle
                                if (ESP_Vehicle)
                                {
                                    DrawAABB(player.VehicleAABB, player.VehicleTranfsorm, applycolor);
                                }
                                #endregion

                                #region ESP Name
                                if (ESP_Name)
                                {
                                    int   fontsize = 20;
                                    float offset   = (player.Name.Length * fontsize) / 5;
                                    bRANDER.DrawString(w2sHead.X - offset, w2sHead.Y - (heightoffset / 4) - fontsize, player.Name, Color.FromArgb(255, 255, 255));
                                }
                                #endregion

                                #region ESP Distance
                                if (ESP_Distance)
                                {
                                    bRANDER.DrawString(w2sFoot.X, w2sFoot.Y, (int)player.Distance + "m", Color.FromArgb(240, 240, 240, 255));
                                }
                                #endregion

                                #region ESP Health
                                if (ESP_Health)
                                {
                                    if (player.Health <= 0)
                                    {
                                        player.Health = 1;
                                    }

                                    if (player.MaxHealth < player.Health)
                                    {
                                        player.MaxHealth = 100;
                                    }

                                    float   factor = (-heightoffset / 4 - 8);
                                    Vector3 m1     = new Vector3(w2sHead.X + factor, w2sHead.Y, 0);
                                    Vector3 m2     = new Vector3(w2sFoot.X + factor, w2sFoot.Y, 0);

                                    int   progress = (int)((float)player.Health / ((float)player.MaxHealth / 100));
                                    float perc     = (player.Health / player.MaxHealth);
                                    int   xnxx     = (int)perc;
                                    float thicc    = heightoffset / 18;
                                    if (thicc < 4)
                                    {
                                        thicc = 4;
                                    }
                                    var HealthColor = Color.FromArgb(1 - xnxx, xnxx, 0);

                                    bRANDER.DrawLine(m1.X + thicc / 2, m1.Y - 2, m2.X + thicc / 2, m2.Y + 2, thicc + 4, Color.FromArgb(1, 1, 1));
                                    bRANDER.DrawLine(m1.X + thicc / 2, m1.Y + ((m2.Y - m1.Y) * (1 - perc)), m2.X + thicc / 2, m2.Y, thicc, Color.Green);
                                    bRANDER.DrawString(m1.X + thicc - 9, m1.Y - 10, "%" + progress, Color.FromArgb(255, 255, 255, 255));
                                }
                                #endregion

                                #region ESP DMG Vehicle
                                if (ESP_dmg_Vehicle)
                                {
                                    if (player.InVehicle && player.IsDriver)
                                    {
                                        DrawHealth((int)X, (int)w2sHead.Y - 30, (int)W + 65, 6, (int)player.VehicleHealth, (int)player.VehicleMaxHealth);
                                    }
                                }
                                #endregion

                                if (ESP_Line)
                                {
                                    bRANDER.DrawLine(w2sFoot.X, w2sFoot.Y, (rect.Right - rect.Left) / 2, rect.Bottom - rect.Top, 3, applycolor);
                                }

                                if (ESP_Spot && player.Distance <= 50)
                                {
                                    DrawProximityAlert(rect.Width / 2 + 300, rect.Height - 80, 155, 50);
                                }

                                if (ESP_SpectatorWarn && spectatorCount > 0)
                                {
                                    DrawSpectatorWarn(rect.Bottom - 125, 25, 350, 55);
                                }
                            }
                            #endregion
                        }

                        #endregion
                    }
                }
            }
        }
Example #2
0
        private void MainScan()
        {
            var font = d2d.CreateFont("Consolas", 11);

            players.Clear();
            targetEnimies.Clear();

            // Read Local
            #region Get Local Player

            // Render View
            Int64 pGameRenderer = RPM.ReadInt64(Offsets.OFFSET_GAMERENDERER);
            Int64 pRenderView   = RPM.ReadInt64(pGameRenderer + Offsets.PZ_GameRenderer.m_pRenderView);

            // Read Screen Matrix
            localPlayer.ViewProj = RPM.ReadMatrix(pRenderView + Offsets.PZ_RenderView.m_viewProj);

            Int64 pGContext = RPM.ReadInt64(Offsets.OFFSET_CLIENTGAMECONTEXT);
            if (!RPM.IsValid(pGContext))
            {
                return;
            }

            Int64 pPlayerManager = RPM.ReadInt64(pGContext + Offsets.PZ_ClientGameContext.m_pPlayerManager);
            if (!RPM.IsValid(pPlayerManager))
            {
                return;
            }

            Int64 plocalPlayer = RPM.ReadInt64(pPlayerManager + Offsets.PZ_ClientPlayerManager.m_pLocalPlayer);
            if (!RPM.IsValid(plocalPlayer))
            {
                return;
            }

            localPlayer.Team = RPM.ReadInt32(plocalPlayer + Offsets.PZ_ClientPlayer.m_teamId);

            Int64 pLocalSoldier = GetClientSoldierEntity(plocalPlayer, localPlayer);
            if (!RPM.IsValid(pLocalSoldier))
            {
                return;
            }

            Int64 pHealthComponent = RPM.ReadInt64(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_pHealthComponent);
            if (!RPM.IsValid(pHealthComponent))
            {
                return;
            }

            Int64 pPredictedController = RPM.ReadInt64(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_pPredictedController);
            if (!RPM.IsValid(pPredictedController))
            {
                return;
            }

            // Health
            localPlayer.Health    = RPM.ReadFloat(pHealthComponent + Offsets.PZ_HealthComponent.m_Health);
            localPlayer.MaxHealth = RPM.ReadFloat(pHealthComponent + Offsets.PZ_HealthComponent.m_MaxHealth);

            if (localPlayer.IsDead())
            {
                return;
            }

            // Origin
            localPlayer.Origin   = RPM.ReadVector3(pPredictedController + Offsets.PZ_ClientSoldierPrediction.m_Position);
            localPlayer.Velocity = RPM.ReadVector3(pPredictedController + Offsets.PZ_ClientSoldierPrediction.m_Velocity);

            // Other
            localPlayer.Pose = RPM.ReadInt32(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_poseType);
            localPlayer.Yaw  = RPM.ReadFloat(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_authorativeYaw);

            localPlayer.IsOccluded = RPM.ReadByte(pLocalSoldier + Offsets.PZ_ClientSoldierEntity.m_occluded);

            #endregion

            // Pointer to Players Array
            Int64 m_ppPlayer = RPM.ReadInt64(pPlayerManager + Offsets.PZ_ClientPlayerManager.m_ppPlayer);
            if (!RPM.IsValid(m_ppPlayer))
            {
                return;
            }


            #region Get Other Players by Id
            for (uint i = 0; i < 64; i++)
            {
                // Create new Player
                GPlayer player = new GPlayer();

                // Pointer to ClientPlayer class (Player Array + (Id * Size of Pointer))
                Int64 pEnemyPlayer = RPM.ReadInt64(m_ppPlayer + (i * sizeof(Int64)));
                if (!RPM.IsValid(pEnemyPlayer))
                {
                    continue;
                }

                player.Name = RPM.ReadString(pEnemyPlayer + Offsets.PZ_ClientPlayer.szName, 10);

                Int64 pEnemySoldier = GetClientSoldierEntity(pEnemyPlayer, player);
                if (!RPM.IsValid(pEnemySoldier))
                {
                    continue;
                }

                Int64 pEnemyHealthComponent = RPM.ReadInt64(pEnemySoldier + Offsets.PZ_ClientSoldierEntity.m_pHealthComponent);
                if (!RPM.IsValid(pEnemyHealthComponent))
                {
                    continue;
                }

                Int64 pEnemyPredictedController = RPM.ReadInt64(pEnemySoldier + Offsets.PZ_ClientSoldierEntity.m_pPredictedController);
                if (!RPM.IsValid(pEnemyPredictedController))
                {
                    continue;
                }

                // Health
                player.Health    = RPM.ReadFloat(pEnemyHealthComponent + Offsets.PZ_HealthComponent.m_Health);
                player.MaxHealth = RPM.ReadFloat(pEnemyHealthComponent + Offsets.PZ_HealthComponent.m_MaxHealth);

                if (player.Health <= 0.1f) // DEAD
                {
                    continue;
                }

                // Origin (Position in Game X, Y, Z)
                player.Origin   = RPM.ReadVector3(pEnemyPredictedController + Offsets.PZ_ClientSoldierPrediction.m_Position);
                player.Velocity = RPM.ReadVector3(pEnemyPredictedController + Offsets.PZ_ClientSoldierPrediction.m_Velocity);

                // Other
                player.Team       = RPM.ReadInt32(pEnemyPlayer + Offsets.PZ_ClientPlayer.m_teamId);
                player.Pose       = RPM.ReadInt32(pEnemySoldier + Offsets.PZ_ClientSoldierEntity.m_poseType);
                player.Yaw        = RPM.ReadFloat(pEnemySoldier + Offsets.PZ_ClientSoldierEntity.m_authorativeYaw);
                player.IsOccluded = RPM.ReadByte(pEnemySoldier + Offsets.PZ_ClientSoldierEntity.m_occluded);

                // Distance to You
                player.Distance = Vector3.Distance(localPlayer.Origin, player.Origin);

                players.Add(player);

                if (player.IsValid())
                {
                    // Player Bone
                    bBoneOk = (GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_HEAD, out player.Bone.BONE_HEAD) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTELBOWROLL, out player.Bone.BONE_LEFTELBOWROLL) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTFOOT, out player.Bone.BONE_LEFTFOOT) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTHAND, out player.Bone.BONE_LEFTHAND) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTKNEEROLL, out player.Bone.BONE_LEFTKNEEROLL) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_LEFTSHOULDER, out player.Bone.BONE_LEFTSHOULDER) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_NECK, out player.Bone.BONE_NECK) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTELBOWROLL, out player.Bone.BONE_RIGHTELBOWROLL) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTFOOT, out player.Bone.BONE_RIGHTFOOT) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTHAND, out player.Bone.BONE_RIGHTHAND) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTKNEEROLL, out player.Bone.BONE_RIGHTKNEEROLL) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_RIGHTSHOULDER, out player.Bone.BONE_RIGHTSHOULDER) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE, out player.Bone.BONE_SPINE) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE1, out player.Bone.BONE_SPINE1) &&
                               GetBoneById(pEnemySoldier, (int)Offsets.PZ_UpdatePoseResultData.BONES.BONE_SPINE2, out player.Bone.BONE_SPINE2));



                    #region Drawing ESP on Overlay

                    // Desconsidera Aliados
                    if (!bEspAllies && (player.Team == localPlayer.Team))
                    {
                        continue;
                    }

                    // Desconsidera os "Não Visíveis"
                    if (bEspVisiblesOnly && (!player.IsVisible() || player.Distance > 75) && !player.InVehicle)
                    {
                        continue;
                    }

                    #region ESP Bone
                    if (bBoneOk && ESP_Bone)
                    {
                        DrawBone(player);
                    }
                    #endregion

                    Vector3 w2sFoot, w2sHead;
                    if (WorldToScreen(player.Origin, out w2sFoot) && WorldToScreen(player.Origin, player.Pose, out w2sHead))
                    {
                        float H = w2sFoot.Y - w2sHead.Y;
                        float W = H / 2;
                        float X = w2sHead.X - W / 2;
                        int   iAux;
                        #region ESP Color

                        var color = (player.Team == localPlayer.Team) ? d2d.CreateBrush(0, 0, 255, 255) : player.IsVisible() ? d2d.CreateBrush(0, 255, 0, 255) : d2d.CreateBrush(255, 0, 0, 255);
                        #endregion

                        #region ESP Box
                        // ESP Box
                        if (ESP_Box && !bEspVisiblesOnly)
                        {
                            if (bEsp3D)
                            {
                                DrawAABB(player.GetAABB(), player.Origin, player.Yaw, color); // 3D Box
                            }
                            else
                            {
                                d2d.DrawRectangle((int)X, (int)w2sHead.Y, (int)W, (int)H, 2, color); // 2D Box
                            }
                        }
                        #endregion

                        #region ESP Vehicle
                        if (ESP_Vehicle)
                        {
                            DrawAABB(player.VehicleAABB, player.VehicleTranfsorm, player.Team == localPlayer.Team ? d2d.CreateBrush(64, 154, 200, 255) : d2d.CreateBrush(255, 129, 72, 255));
                        }
                        #endregion

                        #region ESP Name
                        if (ESP_Name && !bEspVisiblesOnly)
                        {
                            d2d.DrawTextWithBackground(player.Name, (int)X, (int)w2sFoot.Y, font, d2d.CreateBrush(240, 240, 240, 255), d2d.CreateBrush(0, 0, 0, 255));
                        }
                        #endregion

                        #region ESP Distance
                        if (ESP_Distance && !bEspVisiblesOnly)
                        {
                            iAux = (int)w2sFoot.Y;
                            if (ESP_Name)
                            {
                                iAux = iAux + 13;
                            }
                            d2d.DrawTextWithBackground((int)player.Distance + "m", (int)X, iAux, font, d2d.CreateBrush(240, 240, 240, 255), d2d.CreateBrush(0, 0, 0, 255));
                        }
                        #endregion

                        #region ESP Health
                        if (ESP_Health && !bEspVisiblesOnly)
                        {
                            DrawHealth((int)X, (int)w2sHead.Y - 6, (int)W, 3, (int)player.Health, (int)player.MaxHealth);
                            if (player.InVehicle && player.IsDriver)
                            {
                                DrawHealth((int)X, (int)w2sHead.Y - 10, (int)W, 3, (int)player.VehicleHealth, (int)player.VehicleMaxHealth);
                            }
                        }
                        #endregion
                    }
                    #endregion
                }
            }
            #endregion
        }