Americas Army 2:Colored Hospital VIP Tweak

From UnKnoWnCheaTs Game Hacking Wiki
Jump to: navigation, search

By: SAMDestroy

Intro

Hi there,

this tweak is for all you SF_Hospital Players around. Some Credits go to rehoboam for his find in NewIDirect3DDevice8.cpp ... with his help i was able to identify VIP's Head


  • VIP List array added to your dll
  • Seperate Color for VIP Model and VIP Text
  • Seperate textstyle for VIP Model
  • Color Editbox for VIP modelcolor and textcolor in your Loader
  • Editbox for VIP textstyle in your Loader
  • Target Switch for VIP
  • Textinfo for Target Switch


About "Target Switch": You will have a hotkey to switch VIP from friendly to enemy... and the Aimbot will only work when the VIP is an enemy to you. I dont have any other solution right now to make it automaticly run, so the best method is to use a hotkey..

You have to edit both sections of your source (evilhack and evilconfig folder) I recommend to use a clean bc23 source, otherwise you may have to edit some parts for your own.

Source

Exe Section (evilconfig folder)

evilconfig.rc

search for this:

IDD_PLAYERMARKS DIALOGEX 0, 0, 274, 167

replace it with this:

IDD_PLAYERMARKS DIALOGEX 0, 0, 274, 242

search for this:

    CONTROL         "Mark Frag Grenades",IDC_MARKFRAGS,"Button",
                    BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,0,147,84,13

replace it with this:

   CONTROL         "Mark Frag Grenades",IDC_MARKFRAGS,"Button",
                    BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,0,220,84,13

and add this:

    GROUPBOX        "VIP",IDC_STATIC,0,148,265,70
    LTEXT           "Static",IDC_COLOR_VIP,60,159,36,14,SS_NOTIFY | 
                    SS_CENTERIMAGE
    CONTROL         "Colored Models",IDC_VIPMODELS,"Button",BS_AUTOCHECKBOX | 
                    BS_VCENTER | WS_TABSTOP,125,153,84,17
    LTEXT           "Model Color",IDC_STATIC,5,159,48,14,SS_CENTERIMAGE
    LTEXT           "Static",IDC_COLOR_VIPTEXT,60,175,36,14,SS_NOTIFY | 
                    SS_CENTERIMAGE
    LTEXT           "Text Color",IDC_STATIC,5,175,48,14,SS_CENTERIMAGE
    CONTROL         "Weapon Detection",IDC_VIPWEAPONS,"Button",
                    BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,125,199,84,17
    CONTROL         "Distance Detection",IDC_VIPDISTANCE,"Button",
                    BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,125,183,84,17
    CONTROL         "Mark Models",IDC_VIPMARK,"Button",BS_AUTOCHECKBOX | 
                    BS_VCENTER | WS_TABSTOP,125,169,84,17
    LTEXT           "Text Style",IDC_STATIC,5,193,48,14,SS_CENTERIMAGE
    LTEXT           "example",IDC_TEXT_VIP,60,193,59,14,SS_NOTIFY | 
                    SS_CENTERIMAGE

search for this:

    CONTROL         "",IDC_MOUSESENS,"msctls_trackbar32",TBS_AUTOTICKS | 
                    TBS_BOTH | WS_TABSTOP,6,72,186,25

add this:

    EDITTEXT        IDC_HOTKEY_VIPTARGET,181,31,60,12,ES_AUTOHSCROLL | 
                    ES_READONLY
    LTEXT           "VIP Switch",IDC_STATIC,144,33,35,8


resource.h

search for this:

#define IDC_SB                          1071

add this:

#define IDC_COLOR_VIP                   1072
#define IDC_COLOR_VIPTEXT               1073
#define IDC_VIPWEAPONS                  1074
#define IDC_VIPDISTANCE                 1075
#define IDC_VIPMARK                     1076
#define IDC_TEXT_VIP                    1077
#define IDC_VIPMODELS                   1078
#define IDC_HOTKEY_VIPTARGET            1079
#define IDC_VIPNORMAL                   1180


PlayerMarksDlg.cpp

search for this:

 , m_bFDistance(FALSE)

add this:

 , m_bVIPModels(FALSE)
 , m_bVIPMark(FALSE)
 , m_bVIPWeapons(FALSE)
 , m_bVIPDistance(FALSE)

search for this:

 DDX_Control(pDX, IDC_COLOR_FM, m_ColorFMCtrl);
 DDX_Control(pDX, IDC_COLOR_FT, m_ColorFTCtrl);

add this:

 DDX_Control(pDX, IDC_COLOR_VIP, m_ColorVIPMCtrl);
 DDX_Control(pDX, IDC_COLOR_VIPTEXT, m_ColorVIPTCtrl);

search for this:

 DDX_Check(pDX, IDC_FDISTANCE, m_bFDistance);

add this:

 DDX_Check(pDX, IDC_VIPMODELS, m_bVIPModels);
 DDX_Check(pDX, IDC_VIPWEAPONS, m_bVIPWeapons);
 DDX_Check(pDX, IDC_VIPDISTANCE, m_bVIPDistance);
 DDX_Check(pDX, IDC_VIPMARK, m_bVIPMark);

search for this:

 DDX_Control(pDX, IDC_TEXT_F, m_FFontCtrl);

add this:

 DDX_Control(pDX, IDC_TEXT_VIP, m_VIPFontCtrl);

search for this:

 theApp.m_Settings.m_ColorFModel = m_ColorFMCtrl.m_Color;

add this:

 theApp.m_Settings.m_ColorVIPModel = m_ColorVIPMCtrl.m_Color;

search for this:

 theApp.m_Settings.m_ColorFText = m_ColorFTCtrl.m_Color;

add this:

 theApp.m_Settings.m_ColorVIPText = m_ColorVIPTCtrl.m_Color;

search for this:

 theApp.m_Settings.m_bFDistance = m_bFDistance;

add this:

 theApp.m_Settings.m_bVIPModels = m_bVIPModels;
 theApp.m_Settings.m_bVIPWeapons = m_bVIPWeapons;
 theApp.m_Settings.m_bVIPDistance = m_bVIPDistance;
 theApp.m_Settings.m_bVIPMark = m_bVIPMark;

search for this:

 theApp.m_Settings.m_FFont = m_FFontCtrl.m_LogFont;

add this:

 theApp.m_Settings.m_VIPFont = m_VIPFontCtrl.m_LogFont;

search for this:

 m_ColorFMCtrl.SetColor(theApp.m_Settings.m_ColorFModel);
 m_ColorFTCtrl.SetColor(theApp.m_Settings.m_ColorFText);

add this:

 m_ColorVIPMCtrl.SetColor(theApp.m_Settings.m_ColorVIPModel);
 m_ColorVIPTCtrl.SetColor(theApp.m_Settings.m_ColorVIPText);

search for this:

 m_bFDistance = theApp.m_Settings.m_bFDistance;

add this:

 m_bVIPModels = theApp.m_Settings.m_bVIPModels;
 m_bVIPWeapons = theApp.m_Settings.m_bVIPWeapons;
 m_bVIPDistance = theApp.m_Settings.m_bVIPDistance;
 m_bVIPMark = theApp.m_Settings.m_bVIPMark;

search for this:

 m_FFontCtrl.SetLogFont(theApp.m_Settings.m_FFont);

add this:

 m_VIPFontCtrl.SetLogFont(theApp.m_Settings.m_VIPFont);


PlayerMarksDlg.h

search for this:

 CColorViewer m_ColorFMCtrl;
 CColorViewer m_ColorFTCtrl;

add this:

 CColorViewer m_ColorVIPMCtrl;
 CColorViewer m_ColorVIPTCtrl;

search for this:

 BOOL m_bFDistance;

add this:

 BOOL m_bVIPModels;
 BOOL m_bVIPWeapons;
 BOOL m_bVIPDistance;
 BOOL m_bVIPMark;

search for this:

 CFontViewer m_FFontCtrl;

add this:

 CFontViewer m_VIPFontCtrl;


AimbotDlg.cpp

search for this:

 DDX_Control(pDX, IDC_HOTKEY1, m_HotKey);

add this:

 DDX_Control(pDX, IDC_HOTKEY_VIPTARGET, m_VIPTarget_HotKeyCtrl);

search for this:

 theApp.m_Settings.m_AutoAimKey = m_HotKey.m_KeyCode;
 theApp.m_Settings.m_AutoAimKeylParam = m_HotKey.m_KeyCodelParam;

add this:

 theApp.m_Settings.m_VIPTarget_HotKey = m_VIPTarget_HotKeyCtrl.m_KeyCode;
 theApp.m_Settings.m_VIPTarget_HotKeylParam = m_VIPTarget_HotKeyCtrl.m_KeyCodelParam;

search for this:

 m_HotKey.SetKey(theApp.m_Settings.m_AutoAimKey, theApp.m_Settings.m_AutoAimKeylParam);

add this:

 m_VIPTarget_HotKeyCtrl.SetKey(theApp.m_Settings.m_VIPTarget_HotKey, theApp.m_Settings.m_VIPTarget_HotKeylParam);


AimbotDlg.h

search for this:

 CMyHotKeyCtrl m_HotKey;

add this:

 CMyHotKeyCtrl m_VIPTarget_HotKeyCtrl;


EvilSettings.cpp

search for this:

 GetPrivateProfileStruct("evilhack", "m_ColorFText", &m_ColorFText, sizeof(DWORD), Path);

add this:

 GetPrivateProfileStruct("evilhack", "m_ColorVIPModel", &m_ColorVIPModel, sizeof(DWORD), Path);
 GetPrivateProfileStruct("evilhack", "m_ColorVIPText", &m_ColorVIPText, sizeof(DWORD), Path);
 GetPrivateProfileStruct("evilhack", "m_bVIPMark", &m_bVIPMark, sizeof(BOOL), Path);
 GetPrivateProfileStruct("evilhack", "m_bVIPModels", &m_bVIPModels, sizeof(BOOL), Path);
 GetPrivateProfileStruct("evilhack", "m_bVIPWeapons", &m_bVIPWeapons, sizeof(BOOL), Path);
 GetPrivateProfileStruct("evilhack", "m_bVIPDistance", &m_bVIPDistance, sizeof(BOOL), Path);

search for this:

 GetPrivateProfileStruct("evilhack", "m_FFont", &m_FFont, sizeof(LOGFONT), Path);

add this:

 GetPrivateProfileStruct("evilhack", "m_VIPFont", &m_VIPFont, sizeof(LOGFONT), Path);

search for this:

 GetPrivateProfileStruct("evilhack", "m_MasterSwitchKey", &m_MasterSwitchKey, sizeof(DWORD), Path);
 GetPrivateProfileStruct("evilhack", "m_MasterSwitchKeylParam", &m_MasterSwitchKeylParam, sizeof(DWORD), Path);

add this:

 GetPrivateProfileStruct("evilhack", "m_VIPTarget_HotKey",  &m_VIPTarget_HotKey, sizeof(DWORD), Path);
 GetPrivateProfileStruct("evilhack", "m_VIPTarget_HotKeylParam",  &m_VIPTarget_HotKeylParam, sizeof(DWORD), Path);

search for this:

 WritePrivateProfileStruct("evilhack", "m_ColorFText",  (LPBYTE)&m_ColorFText, sizeof(DWORD), Path);

add this:

 WritePrivateProfileStruct("evilhack", "m_ColorVIPModel",  (LPBYTE)&m_ColorVIPModel, sizeof(DWORD), Path);
 WritePrivateProfileStruct("evilhack", "m_ColorVIPText",  (LPBYTE)&m_ColorVIPText, sizeof(DWORD), Path);
 WritePrivateProfileStruct("evilhack", "m_bVIPMark",  (LPBYTE)&m_bVIPMark, sizeof(BOOL), Path);
 WritePrivateProfileStruct("evilhack", "m_bVIPModels",  (LPBYTE)&m_bVIPModels, sizeof(BOOL), Path);
 WritePrivateProfileStruct("evilhack", "m_bVIPWeapons",  (LPBYTE)&m_bVIPWeapons, sizeof(BOOL), Path);
 WritePrivateProfileStruct("evilhack", "m_bVIPDistance",  (LPBYTE)&m_bVIPDistance, sizeof(BOOL), Path);

search for this:

 WritePrivateProfileStruct("evilhack", "m_FFont",  (LPBYTE)&m_FFont, sizeof(LOGFONT), Path);

add this:

 WritePrivateProfileStruct("evilhack", "m_VIPFont",  (LPBYTE)&m_VIPFont, sizeof(LOGFONT), Path);

search for this:

 WritePrivateProfileStruct("evilhack", "m_MasterSwitchKey",  (LPBYTE)&m_MasterSwitchKey, sizeof(DWORD), Path);
 WritePrivateProfileStruct("evilhack", "m_MasterSwitchKeylParam",  (LPBYTE)&m_MasterSwitchKeylParam, sizeof(DWORD), Path);

add this:

 WritePrivateProfileStruct("evilhack", "m_VIPTarget_HotKey",  (LPBYTE)&m_VIPTarget_HotKey, sizeof(DWORD), Path);
 WritePrivateProfileStruct("evilhack", "m_VIPTarget_HotKeylParam",  (LPBYTE)&m_VIPTarget_HotKeylParam, sizeof(DWORD), Path);

search for this:

    m_ColorFModel = 0x004000;
 m_ColorFText = 0x00FF00;

add this:

    m_ColorVIPModel = 0xCA6500;
 m_ColorVIPText = 0xFFFFFF;

search for this:

 m_bFMark = true;

add this:

 m_bVIPMark = true;

search for this:

 m_bFModels = true;

add this:

 m_bVIPModels = true;
 m_bVIPWeapons = true;
 m_bVIPDistance = true;

search for this:

 m_FFont = defaultFont

add this:

 m_VIPFont = defaultFont;

search for this:

 m_MasterSwitchKey = VK_SCROLL;
        m_MasterSwitchKeylParam = 0x460001;

add this:

 m_VIPTarget_HotKey = VK_F6;
 m_VIPTarget_HotKeylParam = 0x400001;

search for this:

 CONVERTCOLOR(m_ColorFModel);

add this:

 CONVERTCOLOR(m_ColorVIPModel);

search for this:

 CONVERTCOLOR(m_ColorFText);

add this:

 CONVERTCOLOR(m_ColorVIPText);


EvilSettings.h

search for this:

 DWORD m_ColorFModel;
 DWORD m_ColorFText;

add this:

 DWORD m_ColorVIPModel;
 DWORD m_ColorVIPText;

search for this:

 BOOL m_bFDistance;

add this:

 BOOL m_bVIPMark;
 BOOL m_bVIPModels;
 BOOL m_bVIPWeapons;
 BOOL m_bVIPDistance;

search for this:

 DWORD m_MasterSwitchKey;
 DWORD m_MasterSwitchKeylParam;

add this:

 DWORD m_VIPTarget_HotKey;
 DWORD m_VIPTarget_HotKeylParam;

search for this:

LOGFONT m_FFont;

add this:

LOGFONT m_VIPFont;

Dll Section (evilhack folder)

evilhack.cpp

search for this:

 if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_Puus5_OffKey)
  GameInfo.m_bAWstr = false;

add this:

// VIP Hospital Tweak
 if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_VIPTarget_HotKey && !GameInfo.m_bTDisplayVIPTarget)
 {
   GameInfo.m_VIPTargeting = !GameInfo.m_VIPTargeting;
   GameInfo.m_bTDisplayVIPTarget = true;
 }
        if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_VIPTarget_HotKey)
   GameInfo.m_bTDisplayVIPTarget = false;
// VIP Hospital Tweak END


GameInfo.cpp

search for this:

{
 for (unsigned int i = 0; i < m_FriendList.size(); i++)
  if (pTex == m_FriendList'')
   m_FriendList.erase(m_FriendList.begin() + i);
}

add this:

// VIP Hospital Tweak
void CGameInfo::AddToVIP(DWORD pTex)
{
 for (unsigned int i = 0; i < m_VIPList.size(); i++)
  if (pTex == m_VIPList'')
   return;
 m_VIPList.push_back(pTex);
}

bool CGameInfo::IsVIP(DWORD pTex)
{
 for (unsigned int i = 0; i < m_VIPList.size(); i++)
  if (pTex == m_VIPList'')
   return true;
 return false;
}

void CGameInfo::RemoveFromVIP(DWORD pTex)
{
 for (unsigned int i = 0; i < m_VIPList.size(); i++)
  if (pTex == m_VIPList'')
   m_VIPList.erase(m_VIPList.begin() + i);
}
// VIP Hospital Tweak

search for this:

 m_FriendList.clear();

add this:

 m_VIPList.clear();

search for next:

 m_FriendList.clear();

add again this:

 m_VIPList.clear();

search for this:

 m_bAWstr = false;

add this:

 m_VIPTargeting = false;


GameInfo.h

search for this:

 std::vector<DWORD> m_FriendList;

add this:

 std::vector<DWORD> m_VIPList;

search for this:

 bool m_bAWstr;

add this:

 bool m_VIPTargeting;

search for this:

 bool m_bTDisplay;

add this:

        bool m_bTDisplayVIPTarget;

search for this:

 void RemoveFromFriends(DWORD pTex);

add this:

 void AddToVIP(DWORD pTex);
 bool IsVIP(DWORD pTex);
 void RemoveFromVIP(DWORD pTex);


HelperFunctions.cpp

search for this:

if (GameInfo.m_PlayerList''.friendly && GameInfo.m_Settings.m_bFMark)

replace it with this:

if (GameInfo.m_PlayerList''.friendly && GameInfo.m_Settings.m_bFMark && !GameInfo.m_PlayerList''.vip)

search for this:

else if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_Settings.m_bHMark)

replace it with this:

else if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_Settings.m_bHMark && !GameInfo.m_PlayerList''.vip)

search for this:

    if(GameInfo.m_Settings.m_bHBoundingBoxes)
     DrawBox(GameInfo.m_PlayerList''.ScreenPlayerBoundingMin, GameInfo.m_PlayerList''.ScreenPlayerBoundingMax, GameInfo.m_Settings.m_ColorHText);//
   }

add this:

// VIP Hospital Tweak
                        else if (GameInfo.m_Settings.m_bVIPMark && GameInfo.m_PlayerList''.vip)
   {
                         if (GameInfo.m_VIPTargeting)
    pD3DDevice8->SetTexture(0, GameInfo.m_pMarkHostileTex);
                               else
                                pD3DDevice8->SetTexture(0, GameInfo.m_pMarkFriendlyTex);
    D3DXMATRIX CrossMatrix;
    D3DXMatrixTranslation(
     &CrossMatrix, 
     GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x, 
     GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].y, 
     0);
    pD3DDevice8->SetTransform(D3DTS_WORLD , &CrossMatrix);
    pD3DDevice8->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
    if(GameInfo.m_Settings.m_bBoundingBoxes)
     DrawBox(GameInfo.m_PlayerList''.ScreenPlayerBoundingMin, GameInfo.m_PlayerList''.ScreenPlayerBoundingMax, GameInfo.m_Settings.m_ColorVIPText);//
   }
// VIP Hospital Tweak


M203Aim.cpp

search for this:

if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_PlayerList''.alive)
replace it by this:
if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_PlayerList''.alive && !GameInfo.m_PlayerList''.vip)
search for this:
if (DistDiag < LastDistance)
   {
    LastDistance = DistDiag;
    NearestPlayer = i;
   }
  }

add this:

// VIP Hospital Tweak
if (GameInfo.m_PlayerList''.alive && GameInfo.m_PlayerList''.vip && GameInfo.m_VIPTargeting)
  {
   double DistX = fabs(GameInfo.m_PlayerList''.ScreenMiddle.x - CrossX);
   double DistY = fabs(GameInfo.m_PlayerList''.ScreenMiddle.y - CrossY);
   double DistDiag = sqrt(pow(DistX, 2) + pow(DistY, 2));
   if (DistDiag < LastDistance)
   {
    LastDistance = DistDiag;
    NearestPlayer = i;
   }
  }
// VIP Hospital Tweak


NewIDirect3DDevice8.cpp

search for this:

    Bodypart++;
    if (Bodypart > 3)
     bIsPlayer = false;

add this:

                           //SF Hospital VIP
    if (m_pCurrentTexture->m_Crc32 == 0xD94347DC)
    {
    m_bLastWasVIP = true;
    GameInfo.AddToVIP(m_pLastTex0);
    }
                           //SF Hospital VIP

search for this:

     //To be safe we remove the last model from the friendly list if it wasnt detected as such
     if (!m_bLastWasFriend)
      GameInfo.RemoveFromFriends(m_pLastTex0);

add this:

     //To be safe we remove the last model from the VIP list if it wasnt detected as such
     if (!m_bLastWasVIP)
      GameInfo.RemoveFromVIP(m_pLastTex0);

search for this:

                                        //Set the friendly flag to false by default for this model its set to true later on if a friendly item is detected
     m_bLastWasFriend = false;

add this:

                                        //Set the VIP flag to false by default for this model its set to true later on if a VIP item is detected
     m_bLastWasVIP = false;

search for this:

     //Set friendly flag which is used for model color if the current hLastTex0 is in friendlies list
     GameInfo.m_CurrentPlayer.friendly = GameInfo.IsFriend(m_pLastTex0);

add this:

     //Set VIP flag which is used for model color if the current hLastTex0 is in VIP list
     GameInfo.m_CurrentPlayer.vip = GameInfo.IsVIP(m_pLastTex0);

search for this:

if (GameInfo.m_Settings.m_bFModels && GameInfo.m_CurrentPlayer.friendly)

replace it with this:

if (GameInfo.m_Settings.m_bFModels && GameInfo.m_CurrentPlayer.friendly && GameInfo.m_CurrentPlayer.vip == false)

search for this:

else if (GameInfo.m_Settings.m_bHModels && GameInfo.m_CurrentPlayer.friendly == false)

replace it with this:

else if (GameInfo.m_Settings.m_bHModels && GameInfo.m_CurrentPlayer.friendly == false && GameInfo.m_CurrentPlayer.vip == false)

search for this:

     pD3DDevice8->SetRenderState(D3DRS_AMBIENT, GameInfo.m_Settings.m_ColorHModel);
     //Draw the model
     Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
     //Restore current AMBIENT RENDERSTATE
     pD3DDevice8->SetRenderState(D3DRS_AMBIENT, curState);
    }

add this:

else if (GameInfo.m_Settings.m_bVIPModels && GameInfo.m_CurrentPlayer.vip)
    {
     //Save current AMBIENT Renderstate
     DWORD curState;
     pD3DDevice8->GetRenderState(D3DRS_AMBIENT, &curState);
     pD3DDevice8->SetRenderState(D3DRS_AMBIENT, GameInfo.m_Settings.m_ColorVIPModel);
     //Draw the model
     Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
     //Restore current AMBIENT RENDERSTATE
     pD3DDevice8->SetRenderState(D3DRS_AMBIENT, curState);
    }

search for this:

//************************************** Check for WeaponInField (new weapons stride 32, old stride 24)

put this above:

//SF Hospital VIP (code by rehoboam)
   if (m_pCurrentTexture->m_Crc32 == 0xD94347DC)
   {
    m_bLastWasVIP = true;
    GameInfo.AddToVIP(m_pLastTex0);
    Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
    return Result;
   }
//SF Hospital VIP (code by rehoboam)


NewIDirect3DDevice8.h

search for this:

 BOOL m_bLastWasFriend;

add this:

 BOOL m_bLastWasVIP;


PlayerInfo.cpp

search for this:

    NewBox.color = GameInfo.m_Settings.m_ColorFText;
    NewBox.x = GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x + 0.5f + 10;
    NewBox.y = GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].y + 0.5f + 10;
    GameInfo.m_InfoBoxList.push_back(NewBox);
   }

add this:

// VIP Hospital Tweak
                      else if (GameInfo.m_PlayerList''.vip)
   {
    if (GameInfo.m_Settings.m_bVIPWeapons)
    {
     tWeapon = 0;
     for (unsigned int i2 = 0; i2 < 8; i2++)
     {
      if (GameInfo.m_PlayerList''.weapon != 0)
      {
       sprintf(Temp, "\n%s", GameInfo.m_WeaponsList[GameInfo.m_PlayerList''.weapon].m_Name);
       strcat(tWeapon, Temp);
      }
     }
    }
    else
     tWeapon = 0;
    if (GameInfo.m_Settings.m_bVIPDistance)
    {
     distxyz /= D3D2M;
     sprintf(tDistance, "%.1fm", distxyz);
    }
    else
     tDistance = 0;
    info_box_t NewBox;
    NewBox.color = GameInfo.m_Settings.m_ColorVIPText;
    sprintf(NewBox.text, "VIP %s%s", tDistance, tWeapon);
    NewBox.x = GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x + 0.5f + 10;
    NewBox.y = GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].y + 0.5f + 10;
    GameInfo.m_InfoBoxList.push_back(NewBox);
                       }
// VIP Hospital Tweak


SloppyAim.cpp

search for this:

if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_PlayerList''.alive)

replace it with this:

if (!GameInfo.m_PlayerList''.friendly && GameInfo.m_PlayerList''.alive && !GameInfo.m_PlayerList''.vip)

search for this:

if (DistDiag < LastDistance)
   {
    LastDistance = DistDiag;
    NearestPlayer = i;
   }
  }

add this:

// VIP Hospital Tweak
if (GameInfo.m_PlayerList''.alive && GameInfo.m_PlayerList''.vip && GameInfo.m_VIPTargeting)
  {
   double DistX = fabs(GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x - CrossX);
   double DistY = fabs(GameInfo.m_PlayerList''.ScreenMiddle[GameInfo.m_Settings.m_BodyPart].y - CrossY);
   double DistDiag = sqrt(pow(DistX, 2) + pow(DistY, 2));
   if (DistDiag < LastDistance)
   {
    LastDistance = DistDiag;
    NearestPlayer = i;
   }
  }
// VIP Hospital Tweak END


structs.h

search for this:

 double distxyz;

add this:

 bool vip;


Tweaks.cpp

search for this:

 //Display ranges to hand grenades

put this above:

//Display VIP Target info
 if (GameInfo.m_bTDisplayVIPTarget)
 {
                info_box_t NewBox;
  NewBox.x = 10;
  NewBox.y = 480;
  NewBox.color = 0xFFFFFF00;
                                //Display Target Status
               if (GameInfo.m_VIPTargeting)
         sprintf(NewBox.text, "VIP is an Target");
               else
  sprintf(NewBox.text, "VIP is Friendly");
                GameInfo.m_InfoBoxList.push_back(NewBox);
                }


Source: Here