View Full Version : [UPDATED : 20.12.2004] The EvilHack Modification Thread
JohnBLucky
18th September 2004, 23:05
~!~ The EvilHack Modification Thread ~!~
EvilHack Mods:
1. Adding A Banner (http://www.mpcforum.com/showthread.php?t=57348&p=535512)
2. Adjustable AutoFire Part 1 (http://www.mpcforum.com/showthread.php?t=57348&p=535516)
3. Adjustable AutoFire Part 2 (http://www.mpcforum.com/showthread.php?t=57348&p=535522)
4. BodyParts Texture Information (http://www.mpcforum.com/showthread.php?t=57348&p=535526)
5. Bright Player Models (http://www.mpcforum.com/showthread.php?t=57348&p=535534)
6. Changing The Fingerprint (http://www.mpcforum.com/showthread.php?t=57348&p=535539)
7. Changing The Hacks Title (http://www.mpcforum.com/showthread.php?t=57348&p=535544)
8. Changing The Hook (http://www.mpcforum.com/showthread.php?t=57348&p=535552)
9. Changing The INI Name (http://www.mpcforum.com/showthread.php?t=57348&p=535563)
10. Closing Hacks Smoothly (http://www.mpcforum.com/showthread.php?t=57348&p=535577)
11. Colored Hospital VIP Tweak Part 1 (http://www.mpcforum.com/showthread.php?t=57348&p=535578)
12. Colored Hospital VIP Tweak Part 2 (http://www.mpcforum.com/showthread.php?t=57348&p=535579)
13. Colored Weapons/Nades Tweak (http://www.mpcforum.com/showthread.php?t=57348&p=535582)
14. Dead Body Fix (http://www.mpcforum.com/showthread.php?t=57348&p=535586)
15. Enemy/Friendly Detection Fix (http://www.mpcforum.com/showthread.php?t=57348&p=535588)
16. Giving Your Hack An XP Look (http://www.mpcforum.com/showthread.php?t=57348&p=535589)
17. HotKey For Changing BodyParts (http://www.mpcforum.com/showthread.php?t=57348&p=535592)
18. HotKey For The In Game Logo (http://www.mpcforum.com/showthread.php?t=57348&p=535681)
19. Multiple User Profiles Tweak (http://www.mpcforum.com/showthread.php?t=57348&p=535597)
20. No BlackOuts In Zoom-Mode Fix (http://www.mpcforum.com/showthread.php?t=57348&p=535599)
21. Removing Coronas (http://www.mpcforum.com/showthread.php?t=57348&p=535602)
22. Remvoing Tents (http://www.mpcforum.com/showthread.php?t=57348&p=535609)
23. Skinning Your Hack (http://www.mpcforum.com/showthread.php?t=57348&p=535611)
24. Using Image 2 EvilHack (http://www.mpcforum.com/showthread.php?t=57348&p=535613)
25. WallHack Tweak (http://www.mpcforum.com/showthread.php?t=57348&p=535615)
26. User Defined Colored Weapons (http://www.mpcforum.com/showthread.php?t=57348&p=538773)
27. Fixed Loader Tut (No d8d3 needed) (http://www.mpcforum.com/showthread.php?t=57348&p=549988)
28. Add a Spash Logo to config (http://www.mpcforum.com/showthread.php?t=57348&p=557286)
29. 1.6.3.4 Hook & Add-on (change dll name etc...) (http://www.mpcforum.com/showthread.php?t=57348&p=564104)
30. User.ini/ArmyOps.ini tweak for your loader (http://www.mpcforum.com/showthread.php?t=57348&p=576035)
31. No Doors tutorial (http://www.mpcforum.com/showthread.php?t=57348&p=633806)
Note: I will try to add new modification tutorials as they become available :)
DO NOT POST ON THIS THREAD
J-Lu
18th September 2004, 23:27
Copied from SAMDestroy (UC Forums)
Hi there,
some Guys asking me about how to implement an Banner to evilconfig-Loader. its really easy to do thats.... not really needed to make an tutorial for it.
This example will show you how to implement an Banner to the Loader Page of your evilconfig-Loader.
First you need to have an Banner in .bmp Format.
Open you evilconfig Project.
Click "View-Menu" and select "Recource-View".
Rightclick on "evilconfig.rc" and select "Add Recource...".
Click on "Import..." and open your .bmp file.
Now you need to place your Banner
Doubleclick on "Dialog" and doublick on "IDD_Loader".
Click "View-Menu" and select "Toolbox".
Click on "Picture Control" and place this control in your Dialog.
Click "View-Menu" and select "Properties Window".
Change "Type" from "Frame" to "Bitmap".
Change "Image" to your Bitmap (mostly "IDB_BITMAP1").
Thats all... now you just need to correct the Position of your Banner.
Dont forget to give some credits to Evilbert and Puusilma in your Release
i hope you find it useful
SAMDestroy
PS: i will soon post an tutorial about how to change your ingame-logo.
JohnBLucky
18th September 2004, 23:30
Copied from SAMDestroy (UC Forums)
Hello there,
i was a bit boring today....
here are my modification for an justable autofire. Use an clean bc23 sourcecode to tweak this. you need to change both section (evilhack and evilconfig)
exe section (evilconfig folder)
evilconfig.rc
search for this:
CONTROL "Autofire",IDC_AUTOFIRE,"Button",BS_AUTOCHECKBOX |
BS_BOTTOM | WS_TABSTOP,156,91,42,10
add this:
NOTE: For whatever reason, the board really hates the word, "SCROLL". Keep in mind the line below which says ES_AUTOHSCR OLL would be one word, and NOT two words.
LTEXT "Autofire Rate (20-500 ms)",IDC_STATIC,6,167,171,12
EDITTEXT IDC_FIRERATESPEEDDISPLAY,203,179,40,12,ES_AUTOHSCR OLL |
ES_READONLY
CONTROL "",IDC_FIRERATESPEED,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,4,175,185,17
EvilSettings.cpp
search for this:
GetPrivateProfileStruct("evilhack", "m_ATSpeed", &m_ATSpeed, sizeof(DWORD), Path);
add this:
GetPrivateProfileStruct("evilhack", "m_FirerateSpeed", &m_FirerateSpeed, sizeof(DWORD), Path);
search for this:
WritePrivateProfileStruct("evilhack", "m_ATSpeed", (LPBYTE)&m_ATSpeed, sizeof(DWORD), Path);
add this:
WritePrivateProfileStruct("evilhack", "m_FirerateSpeed", (LPBYTE)&m_FirerateSpeed, sizeof(DWORD), Path);
search for this:
m_ATSpeed = 25;
add this:
m_FirerateSpeed = 50;
EvilSettings.h
search for this:
DWORD m_ATSpeed;
add this:
DWORD m_FirerateSpeed;
resource.h
add this to your list:
#define IDC_FIRERATESPEED 1072
#define IDC_FIRERATESPEEDDISPLAY 1073
SwitchesDlg.cpp
search for this:
DDX_Check(pDX, IDC_AUTOFIRE, m_bAutofire);
add this:
DDX_Control(pDX, IDC_FIRERATESPEED, m_FirerateSpeedCtrl);
DDX_Slider(pDX, IDC_FIRERATESPEED, m_FirerateSpeedTemp);
DDX_Text(pDX, IDC_FIRERATESPEEDDISPLAY, m_FirerateSpeedDisplay);
search for this:
BEGIN_MESSAGE_MAP(CSwitchesDlg, CPropertyPage)
add this:
ON_NOTIFY(NM_CUSTOMDRAW, IDC_FIRERATESPEED, OnNMCustomdrawFirerateSpeed)
search for this:
theApp.m_Settings.m_bAutofire = m_bAutofire;
add this:
theApp.m_Settings.m_FirerateSpeed = m_FirerateSpeedTemp;
search for this:
m_bAutofire = theApp.m_Settings.m_bAutofire;
add this:
m_FirerateSpeedCtrl.SetRange(20, 500, TRUE);
m_FirerateSpeedCtrl.SetTicFreq(20);
m_FirerateSpeedDisplay = (float)theApp.m_Settings.m_FirerateSpeed;
m_FirerateSpeedTemp = theApp.m_Settings.m_FirerateSpeed;
search for this:
return CPropertyPage::OnSetActive();
}
add this:
void CSwitchesDlg::OnNMCustomdrawFirerateSpeed(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
UpdateData(TRUE);
m_FirerateSpeedDisplay = (float)m_FirerateSpeedCtrl.GetPos();
UpdateData(FALSE);
*pResult = 0;
}
SwitchesDlg.h
search for this:
BOOL m_bNVNoGreen;
add this:
CSliderCtrl m_FirerateSpeedCtrl;
int m_FirerateSpeedTemp;
float m_FirerateSpeedDisplay;
afx_msg void OnNMCustomdrawFirerateSpeed(NMHDR *pNMHDR, LRESULT *pResult);
dll section (evilhack folder)
evilhack.cpp
search for all:
AUTOFIRE_DELAY
replace it with this:
GameInfo.m_Settings.m_FirerateSpeed
thats all
its possible to make it justable ingame, but you need to edit more... let me know if you also want it justable ingame.
attention: dont use it.. if you dont find it usefull
anyway its an other thing to play with.
cya
SAMDestroy
J-Lu
18th September 2004, 23:34
Copied from SAMDestroy (UC Forums)
Hi there,
this is an addon for my autofire-tweak.... with this modification you can change the autofirerate ingame. First you need to modify your source with my other tweak "Adjustable Autofire for your source" before you can use this modification.
exe section (evilconfig folder)
evilconfig.rc
search for this:
LTEXT "Ping +10",IDC_STATIC,139,137,53,12,SS_CENTERIMAGE
EDITTEXT IDC_PUUS3LK,206,151,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Ping -10",IDC_STATIC,139,151,35,12,SS_CENTERIMAGE
add this:
EDITTEXT IDC_FIRERATEUP,63,136,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "FireRate +40",IDC_STATIC,6,135,48,12,SS_CENTERIMAGE
EDITTEXT IDC_FIRERATEDOWN,63,151,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "FireRate -40",IDC_STATIC,6,150,46,12,SS_CENTERIMAGE
you will need to edit the position manually in your tweaks dialog
EvilSettings.cpp
search for this:
GetPrivateProfileStruct("evilhack", "m_FirerateSpeed", &m_FirerateSpeed, sizeof(DWORD), Path);
add this:
GetPrivateProfileStruct("evilhack", "m_FireRateUpKey", &m_FireRateUpKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_FireRateUpKeylParam", &m_FireRateUpKeylParam, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_FireRateDownKey", &m_FireRateDownKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_FireRateDownKeylParam", &m_FireRateDownKeylParam, sizeof(DWORD), Path);
search for this:
WritePrivateProfileStruct("evilhack", "m_FirerateSpeed", (LPBYTE)&m_FirerateSpeed, sizeof(DWORD), Path);
add this:
WritePrivateProfileStruct("evilhack", "m_FireRateUpKey", (LPBYTE)&m_FireRateUpKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_FireRateUpKeylParam", (LPBYTE)&m_FireRateUpKeylParam, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_FireRateDownKey", (LPBYTE)&m_FireRateDownKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_FireRateDownKeylParam", (LPBYTE)&m_FireRateDownKeylParam, sizeof(DWORD), Path);
search for this:
m_FirerateSpeed = 50;
add this:
m_FireRateUpKey = VK_F11;
m_FireRateUpKeylParam = 0x80750010;
m_FireRateDownKey = VK_F12;
m_FireRateDownKeylParam = 0x00850010;
EvilSettings.h
search for this:
DWORD m_FirerateSpeed;
add this:
DWORD m_FireRateUpKey;
DWORD m_FireRateUpKeylParam;
DWORD m_FireRateDownKey;
DWORD m_FireRateDownKeylParam;
resource.h
search for this:
#define IDC_FIRERATESPEED 1072
#define IDC_FIRERATESPEEDDISPLAY 1073
add this:
#define IDC_FIRERATEUP 1074
#define IDC_FIRERATEDOWN 1075
TweaksDlg.cpp
search for this:
DDX_Control(pDX, IDC_PUUS3MK, m_Puus3_PDMKeyCtrl);
DDX_Control(pDX, IDC_PUUS3LK, m_Puus3_PDLKeyCtrl);
add this:
DDX_Control(pDX, IDC_FIRERATEUP, m_FireRateUpKeyCtrl);
DDX_Control(pDX, IDC_FIRERATEDOWN, m_FireRateDownKeyCtrl);
search for this:
theApp.m_Settings.m_Puus3_PDLKey = m_Puus3_PDLKeyCtrl.m_KeyCode;
theApp.m_Settings.m_Puus3_PDLKeylParam = m_Puus3_PDLKeyCtrl.m_KeyCodelParam;
add this:
theApp.m_Settings.m_FireRateUpKey = m_FireRateUpKeyCtrl.m_KeyCode;
theApp.m_Settings.m_FireRateUpKeylParam = m_FireRateUpKeyCtrl.m_KeyCodelParam;
theApp.m_Settings.m_FireRateDownKey = m_FireRateDownKeyCtrl.m_KeyCode;
theApp.m_Settings.m_FireRateDownKeylParam = m_FireRateDownKeyCtrl.m_KeyCodelParam;
search for this:
m_Puus3_PDMKeyCtrl.SetKey(theApp.m_Settings.m_Puus 3_PDMKey, theApp.m_Settings.m_Puus3_PDMKeylParam);
m_Puus3_PDLKeyCtrl.SetKey(theApp.m_Settings.m_Puus 3_PDLKey, theApp.m_Settings.m_Puus3_PDLKeylParam);
add this:
m_FireRateUpKeyCtrl.SetKey(theApp.m_Settings.m_Fir eRateUpKey, theApp.m_Settings.m_FireRateUpKeylParam);
m_FireRateDownKeyCtrl.SetKey(theApp.m_Settings.m_F ireRateDownKey, theApp.m_Settings.m_FireRateDownKeylParam);
TweaksDlg.h
search for this:
CMyHotKeyCtrl m_Puus3_PDMKeyCtrl;
CMyHotKeyCtrl m_Puus3_PDLKeyCtrl;
add this:
CMyHotKeyCtrl m_FireRateUpKeyCtrl;
CMyHotKeyCtrl m_FireRateDownKeyCtrl;
dll section (evilhack folder)
evilhack.cpp
search for this:
GameInfo.m_pTweaksLogFile = fopen(strcat(Path, Name), "w");
}
#endif
add this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_FireRateUpKey && GameInfo.m_Settings.m_bAutofire && !GameInfo.m_bTDisplayFireRate)
{
GameInfo.m_Settings.m_FirerateSpeed += 40;
GameInfo.m_bTDisplayFireRate = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_FireRateUpKey)
GameInfo.m_bTDisplayFireRate = false;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_FireRateDownKey && GameInfo.m_Settings.m_bAutofire && !GameInfo.m_bTDisplayFireRate)
{
GameInfo.m_Settings.m_FirerateSpeed -= 40;
GameInfo.m_bTDisplayFireRate = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_FireRateDownKey)
GameInfo.m_bTDisplayFireRate = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_FireRateUpKey)
GameInfo.m_bTDisplayFireRate = false;
GameInfo.h
search for this:
bool m_bTDisplay;
add this:
bool m_bTDisplayFireRate;
Tweaks.cpp
search for this:
GameInfo.m_bHEMcycle = false;
bAutoLevel = true;
}
add this:
//Display FireRate info
if (GameInfo.m_bTDisplayFireRate)
{
info_box_t NewBox;
NewBox.x = 10;
NewBox.y = 480;
NewBox.color = 0xFFFFFF00;
//Display FireRate Status
if (GameInfo.m_Settings.m_bAutofire)
sprintf(NewBox.text, "FireRate:%i ms", GameInfo.m_Settings.m_FirerateSpeed);
GameInfo.m_InfoBoxList.push_back(NewBox);
}
thats all i hope you find it usefull
cya
SAMDestroy
JohnBLucky
18th September 2004, 23:37
Copied from SAMDestroy (UC Forums)
Hi there,
i just make a new little tweak for your source. You will see textinformation ("Head selected", "Torso selected"....) if you change bodyparts. You only need to edit the dll source section.
You will find the dll section in you evilhack folder of your source.
evilhack.cpp
search for this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey)
GameInfo.m_Settings.m_BodyPart = 3;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey)
GameInfo.m_Settings.m_BodyPart = 2;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey)
GameInfo.m_Settings.m_BodyPart = 1;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey)
GameInfo.m_Settings.m_BodyPart = 0;
replace it with this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 3;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 2;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 1;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 0;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey)
GameInfo.m_bTDisplayBodyparts = false;
Gameinfo.h
search for this:
bool m_bTDisplay;
add this:
bool m_bTDisplayBodyparts;
Tweaks.cpp
search for this:
if (bHElevMode)
bHElevMode = false;
GameInfo.m_bHEMcycle = false;
bAutoLevel = true;
}
add this:
//Display Bodyparts info
if (GameInfo.m_bTDisplayBodyparts)
{
info_box_t NewBox;
NewBox.x = 10;
NewBox.y = 480;
NewBox.color = 0xFFFFFF00;
//Display Bodypart Status
if (GameInfo.m_Settings.m_BodyPart == 3)
sprintf(NewBox.text, "Head selected");
else if (GameInfo.m_Settings.m_BodyPart == 2)
sprintf(NewBox.text, "Hands selected");
else if (GameInfo.m_Settings.m_BodyPart == 1)
sprintf(NewBox.text, "Torso selected");
else if (GameInfo.m_Settings.m_BodyPart == 0)
sprintf(NewBox.text, "Legs selected");
GameInfo.m_InfoBoxList.push_back(NewBox);
}
thats all...
i hope you find it usefull
cya
SAMDestroy
J-Lu
18th September 2004, 23:40
Copied from SAMDestroy (UC Forums)
Hi there,
this is just another modification for your bc23 sourcecode. with this tweak you have the option to brighten the playermodels. dont use "colored model" and "bright model" at the same time...i will look for an way to have both enabled.
here are just example pictures how the effect looks like
http://img78.photobucket.com/albums/v243/SAMDestroy2/
exe section (evilconfig folder)
evilconfig.rc
search for this:
CONTROL "Mark Frag Grenades",IDC_MARKFRAGS,"Button",
BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,0,147,84,13
add this:
CONTROL "bright Models",IDC_FBRIGHT,"Button",BS_AUTOCHECKBOX |
BS_VCENTER | WS_TABSTOP,125,20,59,10
CONTROL "bright Models",IDC_HBRIGHT,"Button",BS_AUTOCHECKBOX |
BS_VCENTER | WS_TABSTOP,125,98,59,10
you will need to edit the position manually in your tweaks dialog
EvilSettings.cpp
search for this:
GetPrivateProfileStruct("evilhack", "m_bHMark", &m_bHMark, sizeof(BOOL), Path);
add this:
GetPrivateProfileStruct("evilhack", "m_bHBright", &m_bHBright, sizeof(BOOL), Path);
GetPrivateProfileStruct("evilhack", "m_bFBright", &m_bFBright, sizeof(BOOL), Path);
search for this:
WritePrivateProfileStruct("evilhack", "m_bHMark", (LPBYTE)&m_bHMark, sizeof(BOOL), Path);
add this:
WritePrivateProfileStruct("evilhack", "m_bHBright", (LPBYTE)&m_bHBright, sizeof(BOOL), Path);
WritePrivateProfileStruct("evilhack", "m_bFBright", (LPBYTE)&m_bFBright, sizeof(BOOL), Path);
search for this:
m_bHMark = true;
add this:
m_bHBright = true;
m_bFBright = true;
EvilSettings.h
search for this:
BOOL m_bHMark;
add this:
BOOL m_bHBright;
BOOL m_bFBright;
PlayerMarksDlg.cpp
search for this:
, m_bHMark(FALSE)
, m_bFMark(FALSE)
add this:
, m_bHBright(FALSE)
, m_bFBright(FALSE)
search for this:
DDX_Check(pDX, IDC_HMARK, m_bHMark);
DDX_Check(pDX, IDC_FMARK, m_bFMark);
add this:
DDX_Check(pDX, IDC_HBRIGHT, m_bHBright);
DDX_Check(pDX, IDC_FBRIGHT, m_bFBright);
search for this:
theApp.m_Settings.m_bHMark = m_bHMark;
theApp.m_Settings.m_bFMark = m_bFMark;
add this:
theApp.m_Settings.m_bHBright = m_bHBright;
theApp.m_Settings.m_bFBright = m_bFBright;
search for this:
m_bHMark = theApp.m_Settings.m_bHMark;
m_bFMark = theApp.m_Settings.m_bFMark;
add this:
m_bHBright = theApp.m_Settings.m_bHBright;
m_bFBright = theApp.m_Settings.m_bFBright;
PlayerMarksDlg.h
search for this:
BOOL m_bHMark;
BOOL m_bFMark;
add this:
BOOL m_bHBright;
BOOL m_bFBright;
resource.h
search for this:
#define IDC_SB 1071
add this:
#define IDC_FBRIGHT 1072
#define IDC_HBRIGHT 1073
dll section (evilhack folder)
NewIDirect3DDevice8.cpp
this is new !!!
search for this:
if (GameInfo.m_Settings.m_bFModels && GameInfo.m_CurrentPlayer.friendly)
{
//Save current AMBIENT Renderstate
DWORD curState;
pD3DDevice8->GetRenderState(D3DRS_AMBIENT, &curState);
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, GameInfo.m_Settings.m_ColorFModel);
//Draw the model
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
//Restore current AMBIENT RENDERSTATE
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, curState);
}
else if (GameInfo.m_Settings.m_bHModels && GameInfo.m_CurrentPlayer.friendly == false)
{
//Save current AMBIENT Renderstate
DWORD curState;
pD3DDevice8->GetRenderState(D3DRS_AMBIENT, &curState);
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);
}
replace it with this:
if ((GameInfo.m_Settings.m_bFModels || GameInfo.m_Settings.m_bFBright) && GameInfo.m_CurrentPlayer.friendly)
{
//Save current AMBIENT Renderstate
DWORD curState;
pD3DDevice8->GetRenderState(D3DRS_AMBIENT, &curState);
if (GameInfo.m_Settings.m_bFModels) {
//Color Models
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, GameInfo.m_Settings.m_ColorFModel);}
if (GameInfo.m_Settings.m_bFBright) {
//Bright Models
pD3DDevice8->SetRenderState ( D3DRS_AMBIENT, 0x00FFFFFF );}
//Draw the model
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
//Restore current AMBIENT RENDERSTATE
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, curState);
}
else if ((GameInfo.m_Settings.m_bHModels || GameInfo.m_Settings.m_bHBright) && GameInfo.m_CurrentPlayer.friendly == false)
{
//Save current AMBIENT Renderstate
DWORD curState;
pD3DDevice8->GetRenderState(D3DRS_AMBIENT, &curState);
if (GameInfo.m_Settings.m_bHModels) {
//Color Models
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, GameInfo.m_Settings.m_ColorHModel);}
if (GameInfo.m_Settings.m_bHBright) {
//Bright Models
pD3DDevice8->SetRenderState ( D3DRS_AMBIENT, 0x00FFFFFF );}
//Draw the model
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
//Restore current AMBIENT RENDERSTATE
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, curState);
}
else
{
//Draw the model
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
}
thats all... remember, you cant use both features (colored model & bright model)
cya
SAMDestroy
JohnBLucky
18th September 2004, 23:42
Copied from Howler2345 (MPC Forums)
Hey everyone, people keep asking this so i thought i would post it. Changing the fingerprint is one of the easiest things to do to your eh mod.
To change the fingerprint you could
1)Add a mod like bright player models into your hack
2)You could add this into the bottom of your tweaks.cpp(dll section)
void changefingerprint();
{
printf("qwerqwerqwer");
printf("asdfasdfasdfas");
printf("zxcvzxcvzxcvzx");
changefingerprint();
changefingerprint();
}
Have fun making hacks :)
Addition:
to avoid a stackoverflow...
void changefingerprint();
{
static int ref=1;
ref++;
printf("asdasdasdasdasd");
printf("fghfghfghfghfghfgh");
printf("maislfnausjfbgyrjdk");
if(ref==0){
changefingerprint();
changefingerprint();
}
ref--;
}
J-Lu
18th September 2004, 23:44
Copied from Howler2345 (MPC Forums)
Hey everyone...I also thought i would post how to change the title that shows on the top of your hack.
1) Open up EvilConfig.cpp of the exe section
2) Search for "bc23 candidate" by hitting ctrl + F
3) Change that title to whatever you want your hacks title to be.
Have fun :P
JohnBLucky
18th September 2004, 23:46
Copied From I Like Chicken (MPC Forums)
First up I'd like to thank Fux0r for his brillant fmod source, I don't care wtf mage says I know it's Fux0r's.
Anyways, this is just a basic guide on how to change the hook of your hack to get around a d3d8.dll export kick.
To do this you'll need the fmod source which you can grab from here http://www.mpcdownloads.com/_mpc_d0wn_h4x_/AAO/FMOD%20v1.3%20Source%20Code.rar
There are two main files to edit, hookworks.cpp and evilhack.cpp both of which are in the dll section. This guide prosumes you using the bc23 as thats what I use so it might not work for other sources.
Once youv'e got the Fmod source, open up the file called hookworks.cpp Select all the content in that file and copy it to clipboard.
Next, open up your hookworks.cpp (from your bc23 source) Select all the text in it replace it with the text you have on the clipboard.
Just above where it says d3d8.dll hooks add this :
unsigned char *pData;
DWORD OldProtect;
char OriginalCode[8];
DWORD FakeError = 0;
volatile long int bScreenshot = 0;
//*************************** DDRAW Anti Screenshot patch
void UnHookDDrawCreate()
{
VirtualProtect(pData, 8, PAGE_READWRITE, &OldProtect);
memcpy(pData, OriginalCode, 8);
VirtualProtect(pData, 8, OldProtect, NULL);
}
void __stdcall DirectDrawCreateHook()
{
#ifdef TESTMODE
fprintf(GameInfo.m_pLogFile, "PB SCREENSHOT\n");
#endif
DWORD LogoDisplayTime = GetTickCount() - GameInfo.m_LogoStartTime;
if (LogoDisplayTime > 60000)
GameInfo.m_bSpyWareWarn = true;
}
void HookDDrawCreate()
{
char RedirectionCode[] =
"\x50" // push eax
"\xB8\x00\x00\x00\x00" // mov eax, 0x00000000
"\xFF\xE0" // jmp eax
;
goto skip;
_asm
{
jumper:
pushad
call DirectDrawCreateHook
popad
pop eax
mov eax, FakeError
retn
}
skip:
unsigned int pHook;
_asm mov pHook, offset jumper;
RedirectionCode[2] = pHook & 0xFF;
RedirectionCode[3] = (pHook >> 8) & 0xFF;
RedirectionCode[4] = (pHook >> 16) & 0xFF;
RedirectionCode[5] = (pHook >> 24) & 0xFF;
pData = (unsigned char*)GetProcAddress(GetModuleHandle("DDRAW"), "DirectDrawCreate");
VirtualProtect(pData, 8, PAGE_READWRITE, &OldProtect);
memcpy(OriginalCode, pData, 8);
memcpy(pData, RedirectionCode, 8);
VirtualProtect(pData, 8, OldProtect, NULL);
if (FakeError != 0x00)
return;
srand(time(NULL));
int temp = rand() / (RAND_MAX / 6);
DWORD FakeErrorList[] =
{
DDERR_DIRECTDRAWALREADYCREATED,
DDERR_GENERIC,
DDERR_INVALIDDIRECTDRAWGUID,
DDERR_INVALIDPARAMS,
DDERR_NODIRECTDRAWHW,
DDERR_OUTOFMEMORY,
};
FakeError = FakeErrorList[temp];
}
Also, at the top you may have to replace all the include and define fuctions with this:
#define hookworks_cpp
#include "HookWorks.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <ddraw.h>
#undef hookworks_cpp
extern CGameInfo GameInfo;
extern IDirect3DDevice8 *pD3DDevice8; //Original Device pointer
extern NewIDirect3DDevice8 *pMyD3DDevice8; //Wrapped Device pointer
extern IDirect3D8 *pD3D8; //Original Device pointer
extern NewIDirect3D8 *pMyD3D8; //Wrapped Device pointer
extern HHOOK hMessageHook;
extern LRESULT CALLBACK MessageProc(int code, WPARAM wParam, LPARAM lParam);
That's it for hookworks.cpp now it's evilhack.cpp time.
Again, open up the fmod source. Open evilhack.cpp and search for this :
bool CheckForAutoFire()
Copy everything above this to clipboard.
Now open up your bc23 evilhack.cpp, and agin search for bool CheckForAutoFire()
and replace all the code above it with the text you have copied to clipboard.
You'll need to add this to the start where it includes all the files.:
extern void HookDDrawCreate();
extern void UnHookDDrawCreate();
That's pretty much it, you'll need to change your loader to load the new dll you made, which may require a new loader, I suggest replacing the bc23 loader with the 1.6.2 loader. Then all you have to do is search for d3d8.dll (evilhack.dll in 1.6.2 loader) and replace it with your dll name. Happy hacking! :classic:
Oh yeah, don't forget to add fux0r to your credits for his wonderful hook.
Addition:
iam getting this error when compiling the config, anyone can help me?
LoaderDlg.cpp(82): error C2660: 'CEvilSettings::WriteSettings' : function does not take 0 arguments
You'll need to change all entries like that to theApp.m_Settings.WriteSettings(theApp.GetFullDllN ame()); That should do it.
J-Lu
18th September 2004, 23:53
Copied from Howler2345 (MPC Forums)
Hey everyone...here is how you change the name of your INI that the hack writes/reads all of its info in.
1) Search in EvilSettings.cpp for ".txt" or ".ini"
2) Change the 2 results that come up to "whatever.ini"
3) Look in EvilConfig.cpp and search for ".txt" or ".ini"
4) Change the 1 result to "whatever.ini"
****Make sure all three names you change are identical
Have fun :)
JohnBLucky
19th September 2004, 00:09
Copied from SAMDestroy (UC Forums)
Hi there,
with this tweak you can animate the closing-process of your Loader.
Your application will fade out while closing. This currently only works if you press the "OK" Button.
You only have to change the evilconfig part of your hack.
EvilConfigSheet.cpp
search for this:
#include "EvilConfigSheet.h"
add this:
#define WS_EX_LAYERED 0x00080000
#define LWA_ALPHA 0x00000002
HMODULE hUserDll ;
search for this:
m_DefaultButton.SetFont(buttonFont);
add this:
hUserDll = ::LoadLibrary(_T("USER32.dll"));
//Change style to layered window style...
::SetWindowLong(m_hWnd, GWL_EXSTYLE, ::GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED );
SetTransparent(m_hWnd, 0, 255 * 100/100 , LWA_ALPHA );
search for this:
void CEvilConfigSheet::OnOk()
{
add this:
CloseSmoothly();
search for this:
void CEvilConfigSheet::OnDefault()
{
GetActivePage()->OnKillActive();
theApp.m_Settings.SetDefaults();
GetActivePage()->OnSetActive();
}
add this:
void CEvilConfigSheet::CloseSmoothly()
{
// Increase transparency one percent each time...
for(int nPercent=100; nPercent >= 0 ;nPercent--)
SetTransparent( m_hWnd, 0, 255 * nPercent/100, LWA_ALPHA);
}
BOOL CEvilConfigSheet::SetTransparent(HWND hWnd, COLORREF crKey,
BYTE bAlpha, DWORD dwFlags)
{
BOOL bRet = TRUE;
typedef BOOL (WINAPI* lpfnSetTransparent)(HWND hWnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
// Check that "USER32.dll" library has been
// loaded successfully...
if ( hUserDll )
{
lpfnSetTransparent pFnSetTransparent = NULL;
pFnSetTransparent = (lpfnSetTransparent)GetProcAddress(hUserDll, "SetLayeredWindowAttributes");
if (pFnSetTransparent )
bRet = pFnSetTransparent(hWnd, crKey, bAlpha, dwFlags);
else
bRet = FALSE;
} // if( m_hUserDll )
return bRet;
} // End of SetTransparent function
EvilConfigSheet.h
search for this:
class CEvilConfigSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CEvilConfigSheet)
public:
add this:
void CloseSmoothly();
BOOL SetTransparent(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
thats all
its not much but i hope you find it useful
cya
SAMDestroy
J-Lu
19th September 2004, 00:14
Copied from SAMDestroy (UC Forums)
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 :rolleyes:
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.
-------------------------------------------------------------------------------------------------
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_ColorFM odel);
m_ColorFTCtrl.SetColor(theApp.m_Settings.m_ColorFT ext);
add this:
m_ColorVIPMCtrl.SetColor(theApp.m_Settings.m_Color VIPModel);
m_ColorVIPTCtrl.SetColor(theApp.m_Settings.m_Color VIPText);
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_VIPFo nt);
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
JohnBLucky
19th September 2004, 00:16
GameInfo.cpp
search for this:
{
for (unsigned int i = 0; i < m_FriendList.size(); i++)
if (pTex == m_FriendList[i])
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[i])
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[i])
return true;
return false;
}
void CGameInfo::RemoveFromVIP(DWORD pTex)
{
for (unsigned int i = 0; i < m_VIPList.size(); i++)
if (pTex == m_VIPList[i])
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[i].friendly && GameInfo.m_Settings.m_bFMark)
replace it with this:
if (GameInfo.m_PlayerList[i].friendly && GameInfo.m_Settings.m_bFMark && !GameInfo.m_PlayerList[i].vip)
search for this:
else if (!GameInfo.m_PlayerList[i].friendly && GameInfo.m_Settings.m_bHMark)
replace it with this:
else if (!GameInfo.m_PlayerList[i].friendly && GameInfo.m_Settings.m_bHMark && !GameInfo.m_PlayerList[i].vip)
search for this:
if(GameInfo.m_Settings.m_bHBoundingBoxes)
DrawBox(GameInfo.m_PlayerList[i].ScreenPlayerBoundingMin, GameInfo.m_PlayerList[i].ScreenPlayerBoundingMax, GameInfo.m_Settings.m_ColorHText);//
}
add this:
// VIP Hospital Tweak
else if (GameInfo.m_Settings.m_bVIPMark && GameInfo.m_PlayerList[i].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[i].ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x,
GameInfo.m_PlayerList[i].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[i].ScreenPlayerBoundingMin, GameInfo.m_PlayerList[i].ScreenPlayerBoundingMax, GameInfo.m_Settings.m_ColorVIPText);//
}
// VIP Hospital Tweak
M203Aim.cpp
search for this:
if (!GameInfo.m_PlayerList[i].friendly && GameInfo.m_PlayerList[i].alive)
replace it by this:
if (!GameInfo.m_PlayerList[i].friendly && GameInfo.m_PlayerList[i].alive && !GameInfo.m_PlayerList[i].vip)
search for this:
if (DistDiag < LastDistance)
{
LastDistance = DistDiag;
NearestPlayer = i;
}
}
add this:
// VIP Hospital Tweak
if (GameInfo.m_PlayerList[i].alive && GameInfo.m_PlayerList[i].vip && GameInfo.m_VIPTargeting)
{
double DistX = fabs(GameInfo.m_PlayerList[i].ScreenMiddle[2].x - CrossX);
double DistY = fabs(GameInfo.m_PlayerList[i].ScreenMiddle[2].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[i].ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x + 0.5f + 10;
NewBox.y = GameInfo.m_PlayerList[i].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[i].vip)
{
if (GameInfo.m_Settings.m_bVIPWeapons)
{
tWeapon[0] = 0;
for (unsigned int i2 = 0; i2 < 8; i2++)
{
if (GameInfo.m_PlayerList[i].weapon[i2] != 0)
{
sprintf(Temp, "\n%s", GameInfo.m_WeaponsList[GameInfo.m_PlayerList[i].weapon[i2]].m_Name);
strcat(tWeapon, Temp);
}
}
}
else
tWeapon[0] = 0;
if (GameInfo.m_Settings.m_bVIPDistance)
{
distxyz /= D3D2M;
sprintf(tDistance, "%.1fm", distxyz);
}
else
tDistance[0] = 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[i].ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x + 0.5f + 10;
NewBox.y = GameInfo.m_PlayerList[i].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[i].friendly && GameInfo.m_PlayerList[i].alive)
replace it with this:
if (!GameInfo.m_PlayerList[i].friendly && GameInfo.m_PlayerList[i].alive && !GameInfo.m_PlayerList[i].vip)
search for this:
if (DistDiag < LastDistance)
{
LastDistance = DistDiag;
NearestPlayer = i;
}
}
add this:
// VIP Hospital Tweak
if (GameInfo.m_PlayerList[i].alive && GameInfo.m_PlayerList[i].vip && GameInfo.m_VIPTargeting)
{
double DistX = fabs(GameInfo.m_PlayerList[i].ScreenMiddle[GameInfo.m_Settings.m_BodyPart].x - CrossX);
double DistY = fabs(GameInfo.m_PlayerList[i].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);
}
------------------------------------------------------------------------------------------------
Thats all....
Got any problems with this tweak? check and recheck your edit before you ask your question... try using clean bc23 and you will be fine.
Tweak tested by GoodFella...
cya
SAMDestroy
J-Lu
19th September 2004, 00:17
Copied from I Like Chicken (AAU Forums)
This is a simple but cool tweak,that will make opfor weapons yellow, US weapons purple and nades blue. These are weapons, it doesnt take into account who's hand there in, so if you pick up an ak47 it will be yellow. Just search for this in newdirect3ddevice8.cpp
{
DWORD curState;
GetRenderState(D3DRS_FILLMODE, &curState);
SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
SetRenderState(D3DRS_FILLMODE, curState);
return Result;
}
if (GameInfo.m_bMasterSwitch)
{
and add this
if(
//NADES
m_pCurrentTexture->m_Crc32 == 0x17E5ACA9 ||//FRAG
m_pCurrentTexture->m_Crc32 == 0x2DD0B8F9 ||//FRAG
m_pCurrentTexture->m_Crc32 == 0x62EBB4B2 ||//SMOKE
m_pCurrentTexture->m_Crc32 == 0x8083E16A ||//SMOKE
m_pCurrentTexture->m_Crc32 == 0x6F86174 ||//FLASH
m_pCurrentTexture->m_Crc32 == 0x8E58FE7 ||//FLASH
m_pCurrentTexture->m_Crc32 == 0xeB50E4F5 ||//INCENDIARY
m_pCurrentTexture->m_Crc32 == 0x6EFDD60D ||//INCENDIARY
m_pCurrentTexture->m_Crc32 == 0xBF4F30CE ||//Miles FRAG
m_pCurrentTexture->m_Crc32 == 0x2A1563AC ) //Opfor FRAG
{
//Color Weapon
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, 0x09D51300F1);
}
if (
//GUNS
m_pCurrentTexture->m_Crc32 == 0xEF9A8CB ||//M203
m_pCurrentTexture->m_Crc32 == 0x1DE7D796 ||//M203
m_pCurrentTexture->m_Crc32 == 0xB5AF24CF ||//M16A2
m_pCurrentTexture->m_Crc32 == 0xC069DACB ||//M16A2
m_pCurrentTexture->m_Crc32 == 0xBCBDA20D ||//M249
m_pCurrentTexture->m_Crc32 == 0xE667160B ||//M249
m_pCurrentTexture->m_Crc32 == 0xA8FCFD66 ||//M82
m_pCurrentTexture->m_Crc32 == 0x3E32E77C ||//M82
m_pCurrentTexture->m_Crc32 == 0x6522E718 ||//M24
m_pCurrentTexture->m_Crc32 == 0x7456CC36 ||//M24
m_pCurrentTexture->m_Crc32 == 0xFF022694 ||//M4A1auto
m_pCurrentTexture->m_Crc32 == 0xE4E4F770 ||//M4A1auto
m_pCurrentTexture->m_Crc32 == 0xD6FB35B2 ||//M4A1
m_pCurrentTexture->m_Crc32 == 0xAD05CE1A ||//M4A1
m_pCurrentTexture->m_Crc32 == 0x60A85176 ||//M4A1SOPMODW Winter cammo
m_pCurrentTexture->m_Crc32 == 0xFC85B6E3 ||//M4A1SOPMODW Winter cammo
m_pCurrentTexture->m_Crc32 == 0x60A85176 ||//M4A1SOPMODW Desert cammo
m_pCurrentTexture->m_Crc32 == 0x6C9547B1 ||//M4A1SOPMODW Desert cammo
m_pCurrentTexture->m_Crc32 == 0x60A85176 ||//M4A1SOPMODW Black
m_pCurrentTexture->m_Crc32 == 0x59B761DC ||//M4A1SOPMODW Black
m_pCurrentTexture->m_Crc32 == 0x8622F69F ||//SPR
m_pCurrentTexture->m_Crc32 == 0x969603A5 ||//SPR
m_pCurrentTexture->m_Crc32 == 0xB04944EB ||//SPR
m_pCurrentTexture->m_Crc32 == 0x3E42DDC2 ||//SPR
m_pCurrentTexture->m_Crc32 == 0x4D359C9 ||//M9
m_pCurrentTexture->m_Crc32 == 0xDE4CB40A ||//M9
m_pCurrentTexture->m_Crc32 == 0xD233779C ||//RPG7
m_pCurrentTexture->m_Crc32 == 0x4A35317F ||//RPG7
m_pCurrentTexture->m_Crc32 == 0x39AF0E6B ||//AT4
m_pCurrentTexture->m_Crc32 == 0x21142FFB ||//AT4
m_pCurrentTexture->m_Crc32 == 0x1C2AF9AB ||//M870
m_pCurrentTexture->m_Crc32 == 0xB4F162D5 ||//M870
//M4A1SOPMODW acessories
m_pCurrentTexture->m_Crc32 == 0x5338D3AB ||//ACOG4 Desert cammo
m_pCurrentTexture->m_Crc32 == 0x33A13C5 ||//ACOG4 Black
m_pCurrentTexture->m_Crc32 == 0x4A5CEAA8 ||//ACOG4 Winter cammo
m_pCurrentTexture->m_Crc32 == 0x858E03C6 ||//M68 Desert cammo
m_pCurrentTexture->m_Crc32 == 0xF06A1369 ||//M68 Black
m_pCurrentTexture->m_Crc32 == 0x93260206 ||//M68 Winter cammo
m_pCurrentTexture->m_Crc32 == 0x4FFC6B50 ||//REFLEX Desert cammo
m_pCurrentTexture->m_Crc32 == 0x83AA377F ||//REFLEX Black
m_pCurrentTexture->m_Crc32 == 0xCED2628B ||//REFLEX Winter cammo
m_pCurrentTexture->m_Crc32 == 0xEBC63677 ||//QDS Desert cammo
m_pCurrentTexture->m_Crc32 == 0xD57579A9 ||//QDS Black
m_pCurrentTexture->m_Crc32 == 0x36FFF568 ||//QDS Winter cammo
m_pCurrentTexture->m_Crc32 == 0xC4E75F83 ||//HARRIS Desert cammo
m_pCurrentTexture->m_Crc32 == 0x71D2FB6E ||//HARRIS Black
m_pCurrentTexture->m_Crc32 == 0x5C777FBF ||//HARRIS Winter cammo
m_pCurrentTexture->m_Crc32 == 0x8339903E ||//M203A1 Desert cammo
m_pCurrentTexture->m_Crc32 == 0x90ACB94C ||//M203A1 Black
m_pCurrentTexture->m_Crc32 == 0x6BC28D2C //M203A1 Winter cammo
)
{
//Color Weapon
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, 0x01ABDC0088);
pD3DDevice8->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE );
}
if (
//GUNS
m_pCurrentTexture->m_Crc32 == 0x47F0A16C ||//AK47
m_pCurrentTexture->m_Crc32 == 0xB7E34495 ||//AK47
m_pCurrentTexture->m_Crc32 == 0xD7E93E15 ||//AK47
m_pCurrentTexture->m_Crc32 == 0x8B63313B ||//AKS74U
m_pCurrentTexture->m_Crc32 == 0x3DC7D210 ||//AKS74U
m_pCurrentTexture->m_Crc32 == 0x6306A3B0 ||//AKS74U
m_pCurrentTexture->m_Crc32 == 0xF187A11F ||//AKS74U
m_pCurrentTexture->m_Crc32 == 0xBAA30729 ||//GP30
m_pCurrentTexture->m_Crc32 == 0xFDB493C1 ||//GP30
m_pCurrentTexture->m_Crc32 == 0xB6B20847 ||//GP30
m_pCurrentTexture->m_Crc32 == 0x7FAB89A ||//RPK
m_pCurrentTexture->m_Crc32 == 0xC69C9DAA ||//RPK
m_pCurrentTexture->m_Crc32 == 0x42F81DB2 ||//SVD
m_pCurrentTexture->m_Crc32 == 0xC5A2D3A8 ||//SVD
m_pCurrentTexture->m_Crc32 == 0x3E778BF0 ||//SVD
m_pCurrentTexture->m_Crc32 == 0x5630CCFB ||//MOSIN
m_pCurrentTexture->m_Crc32 == 0xC58F8E75 ||//MOSIN
m_pCurrentTexture->m_Crc32 == 0x2D2ED136 ||//VSS
m_pCurrentTexture->m_Crc32 == 0x2FFB0247 ||//VSS
m_pCurrentTexture->m_Crc32 == 0x4CD088A1 ||//AKS74UUBN
m_pCurrentTexture->m_Crc32 == 0x997DF659 ||//AKS74UUBN
m_pCurrentTexture->m_Crc32 == 0x5630CCFB ||//AKS74UUBN
//AKS-74U acessories
m_pCurrentTexture->m_Crc32 == 0xAE697060 ||//POS1 4x
m_pCurrentTexture->m_Crc32 == 0x240A4C83 ||//PK01 1x
m_pCurrentTexture->m_Crc32 == 0x5DCC6BC2 ||//PBS
m_pCurrentTexture->m_Crc32 == 0x644E18F9 //EKP1S 1x reflex
)
{
//Color Weapon
pD3DDevice8->SetRenderState(D3DRS_AMBIENT, 0xFFFFFF00);
}
Lastly, I'll let you figure out where to put this:
pD3DDevice8->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
JohnBLucky
19th September 2004, 00:19
Copied from Rehoboam (UC Forums)
This is an alternate method of detecting dead players. I hope you all find it usefull.
In PlayerInfo.cpp
Find This:
void GeneratePlayerInfo()
{
if (GameInfo.m_PlayerList.size() == 0)
return;
char tWeapon[100], tDistance[50], Temp[10];
for (unsigned int i = 0; i < (int)GameInfo.m_PlayerList.size(); i++)
{
Add This:
if (GameInfo.m_PlayerList[i].weapon[0] == 0 && GameInfo.m_PlayerList[i].weapon[1] == 0 && GameInfo.m_PlayerList[i].weapon[2] == 0 && GameInfo.m_PlayerList[i].weapon[3] == 0 && GameInfo.m_PlayerList[i].weapon[4] == 0 && GameInfo.m_PlayerList[i].weapon[5] == 0 && GameInfo.m_PlayerList[i].weapon[6] == 0 && GameInfo.m_PlayerList[i].weapon[7] == 0 && GameInfo.m_PlayerList[i].weapon[8] == 0)
GameInfo.m_PlayerList[i].alive = false;
else
GameInfo.m_PlayerList[i].alive = true;
In GameInfo.cpp
You can either leave it the way it is or do this
Find:
//Check if player is alive
if (pPlayer->ObjectMiddle[3].y >= -1.80 ||
/* MOUT MAPS ONLY */
pPlayer->ObjectMiddle[3].y < -2.80/*3.20*/ && pPlayer->ObjectMiddle[3].y > -3.20 || //lying on ground
pPlayer->ObjectMiddle[3].y < -31.80 && pPlayer->ObjectMiddle[3].y > -33.20) //sitting on ground
pPlayer->alive = false;
else
pPlayer->alive = true;
Replace with:
pPlayer->alive = true;
J-Lu
19th September 2004, 00:21
Copied from Rehoboam (UC Forums)
Ok for those of you who need to know why the enemy players in the BC23 source turn into friendly the problem is in the NewIDirect3DDevice.cpp. It seems that for whatever reason there is a stray statement of m_bLastWasFriend = true; This causes enemy players to eventually be added to the Friendly Player list over the course of game play. The way to fix this is quite simple.
Look for this in NewIDirect3DDevice.cpp:
if (bIsPlayer)
{
Bodypart++;
if (Bodypart > 3)
bIsPlayer = false;
//Fix for the AAO bug missing hands of SF lores model in Pipeline SF
m_bLastWasFriend = true;
if (m_pCurrentTexture->m_Crc32 == 0xAAC75291)
GameInfo.AddToFriends(m_pLastTex0);
}
Replace with this:
if (bIsPlayer)
{
Bodypart++;
if (Bodypart > 3)
bIsPlayer = false;
//Fix for the AAO bug missing hands of SF lores model in Pipeline SF
if (m_pCurrentTexture->m_Crc32 == 0xAAC75291)
{
GameInfo.AddToFriends(m_pLastTex0);
m_bLastWasFriend = true;
}
}
Now your models will change back to enemy after a mistake in the recognition engine.
JohnBLucky
19th September 2004, 00:23
Copied from Shahrad (UC Forums)
Hi there guys, i am going to write my first tutorial on how to give your hacks an XP Feel to it
1.) Download a copy of Morgan's Source, it should be available on the downloads section
2.) open it up and go into the PainConfig section
3.) go inside a folder called "res"
3.) copy the file called rt_manif, and close the folder
4.) now open up your own hack folder and go into evilconfig, then inside the "res" folder
5.) paste it in there
6.) now launch your Evilconfig Project
7.) go into the Evilconfig.RC, then right click anywhere in there thats white, and choose Add Resource
8.) click import and locate yourself to the "res" folder, and choose rt_manif, if you cannot see it, then where it says BITMAPS on that little box, click the arrow and choose ALL FILES
9.) if it asks for a RESOURCE TYPE, then type in there "RT_MANIFEST" without quotes
10.) now to double check that it will work, click on the folder that has Manifest on it and select the only file that is in there, and remember its ID
11.) now open Resource.h, and look at the first line, it should be, if not, then have a look for
#define IDR_RT_MANIFEST
replace it with
#define IDD_MANIFEST 1
and make sure it is at the top off all definitions
12.)copy the IDD_MANIFEST and go to the file in your RC you clicked earlier,
13.)choose to see its properties, and change its ID to IDD_MANIFEST
14.) now compile your hack, and test it to see if it matches your Windows Theme( for XP Only)
Have fun with this little guide
Credit goes to Miltn for helping me out with this
Credit to Morgan for designing this beatiful file, aswell as access to his source :)
J-Lu
19th September 2004, 00:25
Copied from SAMDestroy (UC Forums)
Hello there,
this tweak will change all Hotkeys for changing bodyparts to just one HotKey. this means you can switch thru all bodyparts with just one HotKey.
You need to edit both section (evilhack and evilconfig folder).
exe section (evilconfig folder)
evilconfig.rc
find and delete this:
EDITTEXT IDC_LB1HANDS,70,51,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Bodypart to hands",IDC_STATIC,6,51,60,12,SS_CENTERIMAGE
EDITTEXT IDC_LB1TORSO,70,66,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Bodypart to torso",IDC_STATIC,6,66,60,12,SS_CENTERIMAGE
EDITTEXT IDC_LB1LEGS,70,81,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Bodypart to legs",IDC_STATIC,6,81,60,12,SS_CENTERIMAGE
find this:
EDITTEXT IDC_LB1HEAD,70,36,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Bodypart to head",IDC_STATIC,6,36,60,12,SS_CENTERIMAGE
replace it with this:
EDITTEXT IDC_HOTKEY_BODYPART,70,36,60,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Change Bodypart",IDC_STATIC,6,36,60,12,SS_CENTERIMAGE
resource.h
find and delete this:
#define IDC_LB1HANDS 1052
#define IDC_LB1TORSO 1053
#define IDC_LB1LEGS 1054
find this:
#define IDC_LB1HEAD 1051
replace it with this:
#define IDC_HOTKEY_BODYPART 1051
EvilSettings.cpp
find and delete this:
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_HandsKey", &m_LaqBoy1_HandsKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_HandsKeylParam", &m_LaqBoy1_HandsKeylParam, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_TorsoKey", &m_LaqBoy1_TorsoKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_TorsoKeylParam", &m_LaqBoy1_TorsoKeylParam, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_LegsKey", &m_LaqBoy1_LegsKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_LegsKeylParam", &m_LaqBoy1_LegsKeylParam, sizeof(DWORD), Path);
find this:
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_HeadKey", &m_LaqBoy1_HeadKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_LaqBoy1_HeadKeylParam", &m_LaqBoy1_HeadKeylParam, sizeof(DWORD), Path);
replace it with this:
GetPrivateProfileStruct("evilhack", "m_Bodypart_HotKey", &m_Bodypart_HotKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_Bodypart_HotKeylParam", &m_Bodypart_HotKeylParam, sizeof(DWORD), Path);
find and delete this:
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_HandsKey", (LPBYTE)&m_LaqBoy1_HandsKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_HandsKeylParam", (LPBYTE)&m_LaqBoy1_HandsKeylParam, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_TorsoKey", (LPBYTE)&m_LaqBoy1_TorsoKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_TorsoKeylParam", (LPBYTE)&m_LaqBoy1_TorsoKeylParam, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_LegsKey", (LPBYTE)&m_LaqBoy1_LegsKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_LegsKeylParam", (LPBYTE)&m_LaqBoy1_LegsKeylParam, sizeof(DWORD), Path);
find this:
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_HeadKey", (LPBYTE)&m_LaqBoy1_HeadKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_LaqBoy1_HeadKeylParam", (LPBYTE)&m_LaqBoy1_HeadKeylParam, sizeof(DWORD), Path);
replace it with this:
WritePrivateProfileStruct("evilhack", "m_Bodypart_HotKey", (LPBYTE)&m_Bodypart_HotKey, sizeof(DWORD), Path);
WritePrivateProfileStruct("evilhack", "m_bodypart_HotKeylParam", (LPBYTE)&m_Bodypart_HotKeylParam, sizeof(DWORD), Path);
find and delete this:
m_LaqBoy1_HandsKey = VK_F6;
m_LaqBoy1_HandsKeylParam = 0x400001;
m_LaqBoy1_TorsoKey = VK_F7;
m_LaqBoy1_TorsoKeylParam = 0x410001;
m_LaqBoy1_LegsKey = VK_F8;
m_LaqBoy1_LegsKeylParam = 0x420001;
find this:
m_LaqBoy1_HeadKey = VK_F5;
m_LaqBoy1_HeadKeylParam = 0x3F0001;
replace it with this:
m_Bodypart_HotKey = VK_F5;
m_Bodypart_HotKeylParam = 0x3F0001;
EvilSettings.h
find and delete this:
DWORD m_LaqBoy1_HandsKey;
DWORD m_LaqBoy1_HandsKeylParam;
DWORD m_LaqBoy1_TorsoKey;
DWORD m_LaqBoy1_TorsoKeylParam;
DWORD m_LaqBoy1_LegsKey;
DWORD m_LaqBoy1_LegsKeylParam;
find this:
DWORD m_LaqBoy1_HeadKey;
DWORD m_LaqBoy1_HeadKeylParam;
replace it with this:
DWORD m_Bodypart_HotKey;
DWORD m_Bodypart_HotKeylParam;
TweaksDlg.cpp
find and delete this:
DDX_Control(pDX, IDC_LB1HANDS, m_LaqBoy1_HandsKeyCtrl);
DDX_Control(pDX, IDC_LB1TORSO, m_LaqBoy1_TorsoKeyCtrl);
DDX_Control(pDX, IDC_LB1LEGS, m_LaqBoy1_LegsKeyCtrl);
find this:
DDX_Control(pDX, IDC_LB1HEAD, m_LaqBoy1_HeadKeyCtrl);
replace it with this:
DDX_Control(pDX, IDC_HOTKEY_BODYPART, m_Bodypart_HotKeyCtrl);
find and delete this:
theApp.m_Settings.m_LaqBoy1_HandsKey = m_LaqBoy1_HandsKeyCtrl.m_KeyCode;
theApp.m_Settings.m_LaqBoy1_HandsKeylParam = m_LaqBoy1_HandsKeyCtrl.m_KeyCodelParam;
theApp.m_Settings.m_LaqBoy1_TorsoKey = m_LaqBoy1_TorsoKeyCtrl.m_KeyCode;
theApp.m_Settings.m_LaqBoy1_TorsoKeylParam = m_LaqBoy1_TorsoKeyCtrl.m_KeyCodelParam;
theApp.m_Settings.m_LaqBoy1_LegsKey = m_LaqBoy1_LegsKeyCtrl.m_KeyCode;
theApp.m_Settings.m_LaqBoy1_LegsKeylParam = m_LaqBoy1_LegsKeyCtrl.m_KeyCodelParam;
find this:
theApp.m_Settings.m_LaqBoy1_HeadKey = m_LaqBoy1_HeadKeyCtrl.m_KeyCode;
theApp.m_Settings.m_LaqBoy1_HeadKeylParam = m_LaqBoy1_HeadKeyCtrl.m_KeyCodelParam;
replace it with this:
theApp.m_Settings.m_Bodypart_HotKey = m_Bodypart_HotKeyCtrl.m_KeyCode;
theApp.m_Settings.m_Bodypart_HotKeylParam = m_Bodypart_HotKeyCtrl.m_KeyCodelParam;
find and delete this:
m_LaqBoy1_HandsKeyCtrl.SetKey(theApp.m_Settings.m_ LaqBoy1_HandsKey, theApp.m_Settings.m_LaqBoy1_HandsKeylParam);
m_LaqBoy1_TorsoKeyCtrl.SetKey(theApp.m_Settings.m_ LaqBoy1_TorsoKey, theApp.m_Settings.m_LaqBoy1_TorsoKeylParam);
m_LaqBoy1_LegsKeyCtrl.SetKey(theApp.m_Settings.m_L aqBoy1_LegsKey, theApp.m_Settings.m_LaqBoy1_LegsKeylParam);
find this:
m_LaqBoy1_HeadKeyCtrl.SetKey(theApp.m_Settings.m_L aqBoy1_HeadKey, theApp.m_Settings.m_LaqBoy1_HeadKeylParam);
replace it with this:
m_Bodypart_HotKeyCtrl.SetKey(theApp.m_Settings.m_B odypart_HotKey, theApp.m_Settings.m_Bodypart_HotKeylParam);
TweaksDlg.h
find and delete this:
CMyHotKeyCtrl m_LaqBoy1_HandsKeyCtrl;
CMyHotKeyCtrl m_LaqBoy1_TorsoKeyCtrl;
CMyHotKeyCtrl m_LaqBoy1_LegsKeyCtrl;
find this:
CMyHotKeyCtrl m_LaqBoy1_HeadKeyCtrl;
replace it with this:
CMyHotKeyCtrl m_Bodypart_HotKeyCtrl;
--------------------------------------------------------------------------
dll section (evilhack folder)
evilhack.cpp
Only for Sources without "Bodypart textinformation" Tweak!!!:
find this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey)
GameInfo.m_Settings.m_BodyPart = 3;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey)
GameInfo.m_Settings.m_BodyPart = 2;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey)
GameInfo.m_Settings.m_BodyPart = 1;
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey)
GameInfo.m_Settings.m_BodyPart = 0;
replace it with this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_Bodypart_HotKey)
{
if (GameInfo.m_Settings.m_BodyPart == 3)
GameInfo.m_Settings.m_BodyPart = 0;
else
GameInfo.m_Settings.m_BodyPart++;
}
For Sources with "Bodypart textinformation" Tweak:
find this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 3;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 2;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 1;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey && !GameInfo.m_bTDisplayBodyparts)
{
GameInfo.m_Settings.m_BodyPart = 0;
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HeadKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_HandsKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_TorsoKey)
GameInfo.m_bTDisplayBodyparts = false;
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_LaqBoy1_LegsKey)
GameInfo.m_bTDisplayBodyparts = false;
replace it with this:
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_Bodypart_HotKey && !GameInfo.m_bTDisplayBodyparts)
{
if (GameInfo.m_Settings.m_BodyPart == 3) {
GameInfo.m_Settings.m_BodyPart = 0;}
else {
GameInfo.m_Settings.m_BodyPart++;}
GameInfo.m_bTDisplayBodyparts = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_Bodypart_HotKey)
GameInfo.m_bTDisplayBodyparts = false;
thats all...
i hope you find it useful
SAMDestroy
JohnBLucky
19th September 2004, 00:27
Copied from SAMDestroy (UC Forums)
Hi there,
with this tweak you can add more Profiles in your loader. you can switch, add and delete Setups and you can use this to make different Setups for different solutions.
In this tweak you have to add two new classes to your project and you only have to change files from evilconfig folder.
First you need to add the CComboCompletion Class
copy "ComboCompletion.cpp" and "ComboCompletion.h" from classes.zip to your evilconfig folder.
open your evilconfig project
click "Solution Explorer"
right click and choice "Add Existing Item"
select "ComboCompletion.cpp" and "ComboCompletion.h" to add
click "open"
Now you need to add CIniFile Class
copy "IniFile.cpp" and "IniFile.h" from classes.zip to your evilconfig folder.
open your evilconfig project
click "Solution Explorer"
right click and choice "Add Existing Item"
select "IniFile.cpp" and "IniFile.h" to add
click "open"
-----------------------------------------------------------------------------------------------
Files to edit:
resource.h
search for this:
#define IDC_SB 1071
add this:
#define IDC_PROFILEAPPLY 1072
#define IDC_PROFILECHOICER 1073
#define IDC_PROFILESHOW 1074
#define IDC_PROFILEDELETE 1175
evilconfig.rc
search for this:
PUSHBUTTON "choose...",IDC_BUTTON1,6,48,48,12
LTEXT "",IDC_STATUS,7,114,138,8
add this:
PUSHBUTTON "Switch/Add",IDC_PROFILEAPPLY,129,95,50,14
COMBOBOX IDC_PROFILECHOICER,12,96,102,74,CBS_DROPDOWN | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Delete",IDC_PROFILEDELETE,188,95,50,14
LTEXT "Current Profile:",IDC_STATIC,13,81,50,8
LTEXT "",IDC_PROFILESHOW,65,81,102,11
LoaderDlg.cpp
search for this:
#include "Evilconfig.h"
add this:
#include "IniFile.h"
search for this:
, m_Status(_T(""))
add this:
, m_ProfileChoicer(_T(""))
search for this:
DDX_Text(pDX, IDC_STATUS, m_Status);
add this:
DDX_Text(pDX, IDC_PROFILECHOICER, m_ProfileChoicer);
DDX_Control(pDX, IDC_PROFILECHOICER, m_wndSections);
DDX_Text(pDX, IDC_PROFILESHOW, m_ProfileChoicer);
search for this:
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
add this:
ON_BN_CLICKED(IDC_PROFILEAPPLY, OnBnClickedProfileApply)
ON_BN_CLICKED(IDC_PROFILEDELETE, OnBnClickedProfileDelete)
search for this:
strcpy(theApp.m_Settings.m_PathToGame, m_PathToGame.GetBuffer());
add this:
strcpy(theApp.m_Settings.m_ProfileChoicer, m_ProfileChoicer);
search for this:
BOOL CLoaderDlg::OnSetActive()
{
UpdateData(TRUE);
add this:
OnBtnListSections();
m_ProfileChoicer = theApp.m_Settings.m_ProfileChoicer;
search for this:
return CPropertyPage::OnSetActive();
}
add this:
void CLoaderDlg::OnBtnListSections()
{
UpdateData();
m_wndSections.ResetContent();
UpdateData(FALSE);
CIniFile* myini = new CIniFile("");
//load listbox from collection returned from getSectionNames();
CStringList* myStringList = myini->getSectionNames(theApp.GetFullDllName());
POSITION pos;
for(pos = myStringList->GetHeadPosition(); pos != NULL; ) {
m_wndSections.AddString(myStringList->GetNext(pos));
}
}
void CLoaderDlg::OnBnClickedProfileApply()
{
UpdateData(TRUE);
CString str;
m_wndSections.GetWindowText(str);
strcpy(theApp.m_Settings.m_ProfileChoicer, str.GetBuffer());
theApp.m_Settings.WriteProfile(theApp.GetFullDllNa me());
theApp.m_Settings.ReadSettings(theApp.GetFullDllNa me());
theApp.m_Settings.WriteSettings(theApp.GetFullDllN ame());
OnBtnListSections();
theApp.m_Settings.ReadSettings(theApp.GetFullDllNa me());
UpdateData(FALSE);
OnSetActive();
//UpdateData(FALSE);
}
void CLoaderDlg::OnBnClickedProfileDelete()
{
UpdateData(TRUE);
theApp.m_Settings.DeleteSection(theApp.GetFullDllN ame());
theApp.m_Settings.SetDefaults();
strcpy(theApp.m_Settings.m_ProfileChoicer, "Default");
theApp.m_Settings.WriteSettings(theApp.GetFullDllN ame());
OnBtnListSections();
theApp.m_Settings.ReadSettings(theApp.GetFullDllNa me());
MessageBox("Profile deleted, your configuration has been reset to defaults.", "Information", MB_OK);
UpdateData(FALSE);
OnSetActive();
//UpdateData(FALSE);
}
LoaderDlg.h
search for this:
#pragma once
add this:
#include "ComboCompletion.h"
search for this:
enum { IDD = IDD_LOADER };
add this:
CListBox m_ListSections;
CComboCompletion m_wndSections;
search for this:
afx_msg void OnBnClickedButton1();
add this:
afx_msg void OnBnClickedProfileApply();
afx_msg void OnBnClickedProfileDelete();
afx_msg void OnBtnListSections();
search for this:
CString m_Status;
add this:
CString m_ProfileChoicer;
EvilSettings.cpp
search for this:
void CEvilSettings::ReadSettings(char *pFullPath)
{
char Path[MAX_PATH];
add this:
char *SectionName;
SectionName = m_ProfileChoicer;
search for this:
void CEvilSettings::WriteSettings(char *pFullPath)
{
char Path[MAX_PATH];
add this:
char *SectionName;
SectionName = m_ProfileChoicer;
search for this in "void CEvilSettings::ReadSettings":
strcpy(m_PathToEvilhack, Path);
strcat(Path, "evilhack.ini");
add this:
GetPrivateProfileString("Profile", "m_ProfileChoicer", "", m_ProfileChoicer, sizeof(m_ProfileChoicer), Path);
search for this in "void CEvilSettings::WriteSettings":
strcpy(m_PathToEvilhack, Path);
strcat(Path, "evilhack.ini");
add this:
WritePrivateProfileString("Profile", "m_ProfileChoicer", m_ProfileChoicer, Path);
search for this:
GetPrivateProfileStruct("evilhack", "m_PBCRCCount", &m_PBCRCCount, sizeof(unsigned int), Path);
char Key[20];
DWORD Temp;
for (unsigned int i = 0;; i++)
{
sprintf(Key, "m_PBCRCList%i", i);
if (GetPrivateProfileStruct("evilhack", Key, &Temp, sizeof(Temp), Path) == 0)
break;
else
m_PBCRCList[i] = Temp;
}
GetPrivateProfileStruct("evilhack", "m_bSB", &m_bSB, sizeof(BOOL), Path);
}
replace it with this:
GetPrivateProfileStruct("PB_Updates", "m_PBCRCCount", &m_PBCRCCount, sizeof(unsigned int), Path);
char Key[20];
DWORD Temp;
for (unsigned int i = 0;; i++)
{
sprintf(Key, "m_PBCRCList%i", i);
if (GetPrivateProfileStruct("PB_Updates", Key, &Temp, sizeof(Temp), Path) == 0)
break;
else
m_PBCRCList[i] = Temp;
}
GetPrivateProfileStruct("PB_Updates", "m_bSB", &m_bSB, sizeof(BOOL), Path);
}
search for this:
WritePrivateProfileStruct("evilhack", "m_PBCRCCount", (LPBYTE)&m_PBCRCCount, sizeof(unsigned int), Path);
//End Puusilma tweaks
char Key[20];
for (unsigned int i = 0; i < m_PBCRCCount; i++)
{
sprintf(Key, "m_PBCRCList%i", i);
WritePrivateProfileStruct("evilhack", Key, (LPBYTE)&m_PBCRCList[i], sizeof(DWORD), Path);
}
WritePrivateProfileStruct("evilhack", "m_bSB", (LPBYTE)&m_bSB, sizeof(BOOL), Path);
}
replace it with this:
WritePrivateProfileStruct("PB_Updates", "m_PBCRCCount", (LPBYTE)&m_PBCRCCount, sizeof(unsigned int), Path);
//End Puusilma tweaks
char Key[20];
for (unsigned int i = 0; i < m_PBCRCCount; i++)
{
sprintf(Key, "m_PBCRCList%i", i);
WritePrivateProfileStruct("PB_Updates", Key, (LPBYTE)&m_PBCRCList[i], sizeof(DWORD), Path);
}
WritePrivateProfileStruct("PB_Updates", "m_bSB", (LPBYTE)&m_bSB, sizeof(BOOL), Path);
}
search for all:
GetPrivateProfileStruct("evilhack",
GetPrivateProfileString("evilhack",
WritePrivateProfileStruct("evilhack",
WritePrivateProfileString("evilhack",
replace it with this:
GetPrivateProfileStruct(SectionName,
GetPrivateProfileString(SectionName,
WritePrivateProfileStruct(SectionName,
WritePrivateProfileString(SectionName,
search for this:
void CEvilSettings::SetDefaults(void)
{
put this above:
void CEvilSettings::WriteProfile(char *pFullPath)
{
char Path[MAX_PATH];
strcpy(Path, pFullPath);
unsigned int i = strlen(Path);
while (Path[i] != '\\')
{
Path[i] = '\0';
i--;
}
strcat(Path, "evilhack.ini");
char *SectionName;
SectionName = m_ProfileChoicer;
WritePrivateProfileString("Profile", "m_ProfileChoicer", m_ProfileChoicer, Path);
}
void CEvilSettings::DeleteSection(char *pFullPath)
{
char Path[MAX_PATH];
strcpy(Path, pFullPath);
unsigned int i = strlen(Path);
while (Path[i] != '\\')
{
Path[i] = '\0';
i--;
}
strcat(Path, "evilhack.ini");
char *SectionName;
SectionName = m_ProfileChoicer;
WritePrivateProfileString(SectionName, NULL, NULL, Path);
}
EvilSettings.h
search for this:
char m_PathToEvilhack[MAX_PATH];
add this:
char m_ProfileChoicer[50];
search for this:
void WriteSettings(char *pFullPath);
add this:
void WriteProfile(char *pFullPath);
void DeleteSection(char *pFullPath);
-------------------------------------------------------------------------------
EDIT:
little fix for this tweak.... not really a bugfix but this will complete my tweak:
EvilSettings.cpp
goto this part:
void CEvilSettings::WriteSettings(char *pFullPath)
{
search for this:
WritePrivateProfileString("Profile", "m_ProfileChoicer", m_ProfileChoicer, Path);
replace it with this:
WritePrivateProfileString("Profile", "m_ProfileChoicer", SectionName, Path);
goto this part:
void CEvilSettings::WriteProfile(char *pFullPath)
{
search for this:
WritePrivateProfileString("Profile", "m_ProfileChoicer", m_ProfileChoicer, Path);
replace it with this:
WritePrivateProfileString("Profile", "m_ProfileChoicer", SectionName, Path);
EvilConfigSheet.cpp
search for this:
if (theApp.m_Settings.m_CurrentVersion != CURRENT_VERSION)
MessageBox("Your configuration has been reset to defaults because you run this version of Evilhack the first time.", "Information", MB_OK);
replace it with this:
if (theApp.m_Settings.m_CurrentVersion != CURRENT_VERSION) {
MessageBox("Your configuration has been reset to defaults because you run this version of Evilhack the first time.", "Information", MB_OK);
strcpy(theApp.m_Settings.m_ProfileChoicer, "Default");
theApp.m_Settings.WriteSettings(theApp.GetFullDllN ame());
theApp.m_Settings.ReadSettings(theApp.GetFullDllNa me());}
--------------------------------------------------------------------------------
thats all
i hope you find it useful
cya
SAMDestroy
J-Lu
19th September 2004, 00:29
Copied from SAMDestroy (UC Forums)
Hello there,
do you know this problem: you are using "No Blackouts in Zoom-Mode" in your hack and parts of your waepon (Class SF/M4mod....) will be invisible not only in Zoom-Mode? This little fix will help:
NewIDirect3DDevice8.cpp
search for this:
if (GameInfo.m_Settings.m_bNoBlackouts)
if ((MinIndex == 1380 && //M4 SOPMOD
NumVertices == 2169 &&
PrimitiveCount == 1399) ||
(MinIndex == 0 && //M4 SOPMOD rear sight
NumVertices == 767 &&
PrimitiveCount == 770) ||
(MinIndex == 0 && //M4 SOPMOD ACOG Reflex sight
NumVertices == 805 &&
PrimitiveCount == 742) ||
(MinIndex == 1380 && //AKS-74U
NumVertices == 1535 &&
PrimitiveCount == 1225) ||
(MinIndex == 0 && //AKS-74U rear sight
NumVertices == 200 &&
PrimitiveCount == 200) ||
(MinIndex == 1468 && //M9 rear sight (slide)
NumVertices == 1540 &&
PrimitiveCount == 442))
return D3D_OK;
and replace it with this:
if (GameInfo.m_Settings.m_bNoBlackouts && GameInfo.m_StatusZoomed)
if ((MinIndex == 1380 && //M4 SOPMOD
NumVertices == 2169 &&
PrimitiveCount == 1399) ||
(MinIndex == 0 && //M4 SOPMOD rear sight
NumVertices == 767 &&
PrimitiveCount == 770) ||
(MinIndex == 0 && //M4 SOPMOD ACOG Reflex sight
NumVertices == 805 &&
PrimitiveCount == 742) ||
(MinIndex == 1380 && //AKS-74U
NumVertices == 1535 &&
PrimitiveCount == 1225) ||
(MinIndex == 0 && //AKS-74U rear sight
NumVertices == 200 &&
PrimitiveCount == 200) ||
(MinIndex == 1468 && //M9 rear sight (slide)
NumVertices == 1540 &&
PrimitiveCount == 442))
return D3D_OK;
now parts of your weapon will only be invisible in Zoom-Mode.
This fix is for an clean EH-BC23 source.
i hope you find it usefull
cya
SAMDestroy
JohnBLucky
19th September 2004, 00:32
Copied from DelfinoM (UC Forums)
Here is an way to get rid of coronas(the bright lights you see, sometimes reflections of the sun) I only game up with the tutorial to put it in with an option to turn it on/off, lionheart is the one who came up with the code for the dll part to actually make it happen.
EvilConfig Source Edits
resource.h
Find:
#define IDC_SB 1071
Add Below:
#define IDC_NOCORONAS 1072
evilconfig.rc
Find:
CONTROL "Screenshot Blocking",IDC_SB,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,156,22,101,10
Add Below:
CONTROL "No Coronas",IDC_NOCORONAS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,18,172,56,9
NOTE: You will have to postion the No Coronas checkbox yourself
EvilSettings.cpp
Find:
GetPrivateProfileStruct("evilhack", "m_bCustomXHair", &m_bCustomXHair, sizeof(BOOL), Path);
Add Below:
GetPrivateProfileStruct("evilhack", "m_bNoCoronas", &m_bNoCoronas, sizeof(BOOL), Path);
Find:
WritePrivateProfileStruct("evilhack", "m_bCustomXHair", (LPBYTE)&m_bCustomXHair, sizeof(BOOL), Path);
Add Below:
WritePrivateProfileStruct("evilhack", "m_bNoCoronas", (LPBYTE)&m_bNoCoronas, sizeof(BOOL), Path);
Find:
m_bCustomXHair = true;
Add Below:
m_bNoCoronas = true;
EvilSettings.h
Find:
BOOL m_bCustomXHair;
Add Below:
BOOL m_bNoCoronas;
SwitchesDlg.cpp
Find:
, m_bCustomXHair(FALSE)
Add Below:
, m_bNoCoronas(FALSE)
Find:
DDX_Check(pDX, IDC_XHAIR, m_bCustomXHair);
Add Below:
DDX_Check(pDX, IDC_NOCORONAS, m_bNoCoronas);
Find:
theApp.m_Settings.m_bCustomXHair = m_bCustomXHair;
Add Below:
theApp.m_Settings.m_bNoCoronas = m_bNoCoronas;
Find:
m_bCustomXHair = theApp.m_Settings.m_bCustomXHair;
Add Below:
m_bNoCoronas = theApp.m_Settings.m_bNoCoronas;
SwitchesDlg.h
Find:
BOOL m_bCustomXHair;
Add Below:
BOOL m_bNoCoronas;
EvilHack Source Edits(evilhack folder)
NewIDirect3DDevice8.cpp
Find:
if (m_pCurrentTexture->m_Crc32 == 0x4A1DFc2F)
{
GameInfo.m_StatusNightVision = true;
if (GameInfo.m_Settings.m_bFullScreenNV)
return D3D_OK;
}
Add Below:
if (GameInfo.m_Settings.m_bNoCoronas)
{
if (PrimitiveType == 6 && PrimitiveCount == 2)
return D3D_OK;
}
It should work, cause it works for me.
J-Lu
19th September 2004, 00:34
Copied from SAMDestroy (UC Forums)
Hello there,
with this tweak you can Wireframe all Tents in maps like Insurgent_Camp or Swamp_Raid.
Here you will find example Pictures of this tweak:
http://img78.photobucket.com/albums/v243/SAMDestroy2/No_Tents/
You need to edit both sections (evilhack and evilconfig) of your evilhack bc23.
exe Section (evilconfig folder)
resource.h
search for this:
#define IDC_SB 1071
add this:
#define IDC_NOTENTS 1072
evilconfig.rc
search for this:
CONTROL "Screenshot Blocking",IDC_SB,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,156,22,101,10
add this:
CONTROL "Invisible Tents",IDC_NOTENTS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,18,80,101,10
(you need to correct the visual position of this checkbox to your source)
SwitchesDlg.cpp
search for this:
, m_bSB(FALSE)
add this:
, m_bNoTents(FALSE)
search for this:
DDX_Check(pDX, IDC_SB, m_bSB);
add this:
DDX_Check(pDX, IDC_NOTENTS, m_bNoTents);
search for this:
theApp.m_Settings.m_bSB = m_bSB;
add this:
theApp.m_Settings.m_bNoTents = m_bNoTents;
search for this:
m_bSB = theApp.m_Settings.m_bSB;
add this:
m_bNoTents = theApp.m_Settings.m_bNoTents;
SwitchesDlg.h
search for this:
BOOL m_bSB;
add this:
BOOL m_bNoTents;
EvilSettings.cpp
search for this:
GetPrivateProfileStruct("evilhack", "m_bBoundingBoxes", &m_bBoundingBoxes, sizeof(BOOL), Path);
add this:
GetPrivateProfileStruct("evilhack", "m_bNoTents", &m_bNoTents, sizeof(BOOL), Path);
search for this:
WritePrivateProfileStruct("evilhack", "m_bBoundingBoxes", (LPBYTE)&m_bBoundingBoxes, sizeof(BOOL), Path);
add this:
WritePrivateProfileStruct("evilhack", "m_bNoTents", (LPBYTE)&m_bNoTents, sizeof(BOOL), Path);
search for this:
m_bBoundingBoxes = true;
add this:
m_bNoTents = true;
EvilSettings.h
search for this:
BOOL m_bBoundingBoxes;
add this:
BOOL m_bNoTents;
----------------------------------------------------------------------
dll Section (evilhack folder)
NewIDirect3DDevice8.cpp
search for this:
}
m_LastOTexCrc = m_pCurrentTexture->m_Crc32; //For double weapon detection prevention
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
return Result;
add this above:
// Removing Tents
if ((GameInfo.m_Settings.m_bNoTents) &&
(m_pCurrentTexture->m_Crc32 == 0x97c5f33a || // tent
m_pCurrentTexture->m_Crc32 == 0xf4e2b96a || // tent
m_pCurrentTexture->m_Crc32 == 0xeeefb4d5 || // tent
m_pCurrentTexture->m_Crc32 == 0xb3e1788c || // tent
m_pCurrentTexture->m_Crc32 == 0x228822ae)) // tent
{
//Save current FILLMODE Renderstate
DWORD curState;
pD3DDevice8->GetRenderState(D3DRS_FILLMODE, &curState);
pD3DDevice8->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
//Draw FILLMODE
Result = pD3DDevice8->DrawIndexedPrimitive(Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
//Restore current FILLMODE RENDERSTATE
pD3DDevice8->SetRenderState(D3DRS_FILLMODE, curState);
return Result;
}
// Removing Tents
thats all... i hope you find it useful
happy tweaking
SAMDestroy
JohnBLucky
19th September 2004, 00:36
Copied from SAMDestroy (UC Forums)
Hello there,
this tutorial is for making skins to your evilhack source. You need to download and install the demo-version of Skincrafter.
Website: http://www.skincrafter.com
directlink: http://www.skincrafter.com/SkinCrafter_Demo.zip
examples:
Here are some examples how evilhack will look like:
http://img78.photobucket.com/albums/v243/SAMDestroy2/Skincrafter/
here we go...
1. download and install skincrafter
2. open your evilconfig project
Adding Skincrafter Reference
3.1 click "Add Reference" from Project Menue
3.2 select COM and doubleclick on "SkinCrafter 1.4.5 Type Library"
3.3 click OK
Adding Class for Skincrafter
4.1 click "Add Class" from Project Menue
4.2 select "MFC Class From TypeLib" and click "Open"
4.3 select "Add class from: Registry" and search "SkinCrafter 1.4.5 Type Library<1.0>" at "Available type libraries"
4.5 doubleclick "ISCSkin" from "Interfaces"
4.6 Classname is "CSCSkin" and Filename is "skincrafter.h"
4.7 Click "Finish"
Editing evilconfig source
EvilConfig.cpp
search for this:
BOOL CEvilConfigApp::InitInstance()
{
add this:
// Skincrafter
CSCSkin *m_pSkin = new CSCSkin;
CoInitialize(NULL);
m_pSkin->CreateDispatch("SkinCrafter.SCSkin");
m_pSkin->InitLicenKeys("0","SKINCRAFTER","SKINCRAFTER.COM","support@skincrafter.com","DEMOSKINCRAFTERLICENCE");
m_pSkin->DefineLanguage(0);
m_pSkin->InitDecoration(1);
m_pSkin->LoadSkinFromFile("GlaucousTrack.skf"); // here you can change the skin
m_pSkin->ApplySkin();
// Skincrafter
EvilConfig.h
search for this:
#include "EvilSettings.h"
add this:
#include "skincrafter.h"
search for this:
CEvilConfigApp();
public:
add this:
CSCSkin m_pSkin;
you need to copy the skinfile (*.skf) to the folder where evilconfig.exe are. this is just an basic tutorial about Skincrafter... you can do really much more with this library... dropdown-menu to switch the skin for example.
cya
SAMDestroy
Addition by Mast6rid (CB Forums)
A bit mistake, m_pSkin seems to be the pointer - so the correct declaration in header file should be:
CSCSkin *m_pSkin;
J-Lu
19th September 2004, 00:39
Copied from doomfx (CB Forums)
here is the solution (after quite some time).
1) create a folder on your desktop called "image2evilhack"
2) in this folder, put your .png image and a blank .h file.
3) name the .png "evillogo.png" and the header file "evillogo.h"
4) open dos by clicking on START => RUN => and type CMD , then click OK
5) in the black console type "cd c:\path to desktop\image2evilhack" and hit ENTER
6) now type "image2evilhack.exe evillogo.png evillogo.h" and hit ENTER, you will recieve a note saying "image2evilhack by morgan black" this means that it has suceeded.
7) now open the image2evilhack folder on your desktop , open the header file and the .png header code should be in the file, now just place the .png and the .h file into the evilhack\artwork directory.
-----------
Addition copied from JustaSmoken (MPC Forums)
First, you can also select(highlight) your evillogo.png and evillogo.h and drag and drop them on top of the Image2EvilHack.exe. That way you don't have to open cmd prompt.
Second, after you create the .h, you have to edit it here:
unsigned char VariableName[ size of image file] = {
VariableName: for the evillogo would be LogoTexData in all the sources i've seen but it depends on what image your replaceing, or if your creating your own.
size of image file: would be the exact size of your image in bytes.
hope this helps
JohnBLucky
19th September 2004, 00:41
Copied from SAMDestroy (UC Forums)
Hi there,
this wallhack modification is based of netstalker's idea.
You will need to edit both (exe and dll) source.
There are 4 files to be edit in your dll section and 5 files in your exe section.
dll Section
evilhack.cpp
search for this:
#ifdef TESTMODE
if (lpMsg->message == WM_LBUTTONDOWN)
fprintf(GameInfo.m_pTweaksLogFile, "Firing!\n");
#endif
//End Puusilma tweaks
and add this:
// Wallhack Mod
if (lpMsg->message == WM_KEYDOWN && lpMsg->wParam == GameInfo.m_Settings.m_Wallhack_WallhackKey && !GameInfo.m_bTDisplayWallhack)
{
GameInfo.m_Settings.m_bWallhack = true;
GameInfo.m_bTDisplayWallhack = true;
}
if (lpMsg->message == WM_KEYUP && lpMsg->wParam == GameInfo.m_Settings.m_Wallhack_WallhackKey)
{
GameInfo.m_Settings.m_bWallhack = false;
GameInfo.m_bTDisplayWallhack = false;
}
// Wallhack Mod
GameInfo.h
search for this:
bool m_bTDisplay;
and add this:
bool m_bTDisplayWallhack;
NewIDirect3DDevice8.cpp
search for this:
}
HRESULT Result = pD3DDevice8->BeginScene();
and add this:
// Wallhack Mod
if (GameInfo.m_Settings.m_bWallhack && GameInfo.m_bMasterSwitch)
{
pD3DDevice8->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
}
else
pD3DDevice8->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );
// Wallhack End
Tweaks.cpp
search for this:
GameInfo.m_bHEMcycle = false;
bAutoLevel = true;
}
and add this:
//Display Wallhack info
if (GameInfo.m_bTDisplayWallhack)
{
info_box_t NewBox;
NewBox.x = 10;
NewBox.y = 480;
NewBox.color = 0xFFFFFF00;
//Display Wallhack Status
if (GameInfo.m_Settings.m_bWallhack)
sprintf(NewBox.text, "WallHack View");
GameInfo.m_InfoBoxList.push_back(NewBox);
}
--------------------------------------------------------------------
exe Section
evilconfig.rc
add this somewhere under "IDD_TWEAKS DIALOGEX":
LTEXT "Wallhack Button",IDC_STATIC,5,23,52,8
EDITTEXT IDC_WALLHACK,63,21,60,12,ES_AUTOHSCROLL | ES_READONLY
you will need to edit the position manually in your tweaks dialog
EvilSettings.h
search for this:
BOOL m_bAiming;
add this:
BOOL m_bWallhack;
search for this:
DWORD m_MasterSwitchKeylParam;
add this:
DWORD m_Wallhack_WallhackKey;
DWORD m_Wallhack_WallhackKeylParam;
EvilSettings.cpp
add this in your "GetPrivateProfileStruct" Block:
GetPrivateProfileStruct("evilhack", "m_Wallhack_WallhackKey", &m_Wallhack_WallhackKey, sizeof(DWORD), Path);
GetPrivateProfileStruct("evilhack", "m_Wallhack_WallhackKeylParam", &m_Wallhack_WallhackKeylParam, sizeof(DWORD), Path);
add this in your "WritePrivateProfileStruct" Block:
WritePrivateProfileStruct(&q