Americas Army 2:Colored Hospital VIP Tweak
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