#include<windows.h>
#define grenades ((i==6) || (i==100) || (i==135) || (i==200) || (i==209) || (i==210) || (i==240) || (i==262) || (i==263) || (i==272) || (i==288) || (i==313) || (i==338) || (i==382) || (i==416) || (i==424) || (i==425) || (i==519))
#define WeaponMgr 0xA69120
#define onehit 0x7F8
#define Knives ((i==5) || (i==120) || (i==132) || (i==176) || (i==177) || (i==178) || (i==182) || (i==189) || (i==195) || (i==196) || (i==197) || (i==198) || (i==199) || (i==223) || (i==224) || (i==225) || (i==226) || (i==227) || (i==228) || (i==239) || (i==224) || (i==261) || (i==269) || (i==270) || (i==271) || (i==305) || (i==306) || (i==307) || (i==372) || (i==404) || (i==405) || (i==406) || (i==407) || (i==408) || (i==409) || (i==437) || (i==455) || (i==456) || (i==457) || (i==517) || (i==518))
DWORD WINAPI Hacks(LPVOID)
{
bool noreload=true;
while(1)
{
DWORD dwCShell = (DWORD)GetModuleHandleA("CShell.dll");
PDWORD Weapon = (PDWORD)(dwCShell + 0xA69120 );
DWORD pWeaponMgr1 = *(DWORD*)(dwCShell + WeaponMgr);
DWORD Playerbasic = *(PDWORD)(dwCShell + 0xA02398);
DWORD Playermgr = *(PDWORD)(dwCShell + 0xA69104);
DWORD WallClass = *(DWORD*)(dwCShell + 0xA6910C);
for(int i=0;i<64;i++)
{
*(float*)(WallClass+(i*0x04F4)+0x04E8) = (float)1; //Shoot through walls
*(float*)(WallClass+(i*0x04F4)+0x04EC) = (float)1; //Shoot through walls
*(float*)(WallClass+(i*0x04F4)+0x04F0) = (float)1; //Shoot through walls
}
if(Playermgr) {
*(float*)(Playerbasic + 0x2C) = (float)0.0f;// No Fall Damage
*(float*)(Playerbasic + 0x4C) = (float)0.0f;// No Fall Damage
}
if(Playerbasic) {
*(float*)(Playerbasic + 0x88) = (float)300;//see ghost
*(float*)(Playerbasic + 0x8C) = (float)300;//see ghist
*(float*)(Playerbasic + 0x90) = (float)300;//see ghost
*(float*)(Playerbasic + 0xC) = (float)1.1f;// crouch speed
*(float*)(Playerbasic + 0x80) = (float)0.0f;// bomb defuse fast
*(float*)(Playerbasic + 0x84) = (float)2.0f;//bomb can defuse from distance
}
bool reload = true;// no reload
#
if(reload)
{
if (pWeaponMgr1)
{
for(int i=0; i<601; i++)
{
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0x269C) = 300;
}
}
}
bool knifesa = true;// fast knife and long knife
if (knifesa)
{
if (pWeaponMgr1)
{
for(int i=0; i<601; i++)
{
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i)) ) != NULL && (Knives)){
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0xA70) = 2.5f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0xA94) = 2.5f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0xA28) = 2.5f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0x7EC) = 25000.0f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0xA10) = 25000.0f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0x2720) = 25000.0f;
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr)) +(4*i))) + 0xA34) = 25000.0f;
}
}
}
bool nmw9 = true;// no change delay
if(nmw9)
{
if (pWeaponMgr1) {
for(int i=0; i<601; i++) {
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0x26A0) = 300;
}
}
}
bool nmw9s = true;// no scope
if(nmw9s)
{
if (pWeaponMgr1)
{
for(int i=0; i<601; i++) {
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0xACC) = 0;
}
}
}
bool nmw9s2 = true;// no weapon weight
if(nmw9s2)
{
if (pWeaponMgr1) {
for(int i=0; i<601; i++) {
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0x2454) = -0.15;
}
}
}
bool nmw9s23 = true;// no grenade damage
if(nmw9s23)
{
if (pWeaponMgr1) {
for(int i=0; i<601; i++) {
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL &grenades)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0x7F8) = 0.0f;
}
}
}
bool norecoil = true;
if(norecoil == true)
{
if (pWeaponMgr1)
for(int i=0 ; i<601 ; i++)
{
DWORD Wep = *(DWORD*)(*Weapon + 4*i);
if(Wep)
{
for(int y = 0; y<9; y++)
{
*(float*)( Wep + (0x051C + (4*y))) = (float)0;
*(float*)( Wep + (0x0684 + (4*y))) = (float)0;
*(float*)( Wep + (0x192C + (4*y))) = (float)0;
*(float*)( Wep + (0x1B00 + (4*y))) = (float)0;
*(float*)( Wep + (0x1F8C + (4*y))) = (float)0;
*(float*)( Wep + (0x20F4 + (4*y))) = (float)0;
*(float*)( Wep + (0x225C + (4*y))) = (float)0;
}
}
}
}
}
}
Sleep(100);
}
bool Ready2Hook()
{
if(GetModuleHandleA("CShell.dll") != NULL
&& GetModuleHandleA("ClientFx.fxd") != NULL)
return 1;
return 0;
}
DWORD WINAPI Wait(LPVOID)
{
while(!Ready2Hook()) Sleep(200);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hacks, NULL, NULL, NULL);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "BlackLite [Simple]","", 0);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Wait,0,0,0);
}
return 1;
}

bool Ready2Hook()
{
if(GetModuleHandleA("CShell.dll") != NULL
&& GetModuleHandleA("ClientFx.fxd") != NULL)
return 1;
return 0;
}
DWORD WINAPI Wait(LPVOID)
{
while(!Ready2Hook()) Sleep(200);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hacks, NULL, NULL, NULL);
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
MessageBoxA(0, "BlackLite [Simple]","", 0);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)Wait,0,0,0);
}
return 1;
}
somebody may say that this is rubbish code only bcs of the names of variables (i dont say that it s bad)HANDLE HackThread = NULL;
bool PleaseHack= true;
DWORD WINAPI Hacks(LPVOID)
{
DWORD _CShell= NULL;
do
{
_CShell = (DWORD)GetModuleHandleA("CShell.dll");
Sleep(100);
}
while(!_CShell);
do
{
//PUT THE HACKING CODE HERE
Sleep(100); // This save a lot of CPU processing power
}
while(PleaseHack);
ExitThread(0);
RETURN 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD fdwReason, LPVOID lpReserved )
{
DWORD ExitCode = 0;
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
HackThread = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Hacks, NULL, NULL, NULL);
break;
case DLL_PROCESS_DETACH:
PleaseHack = false;
//Safely wait until thread actually killed
//A bit paranoid,but I just dont want any shitty thread running when crossfire.exe calls DLL_PROCESS_DETACH
do
{
GetExitCodeThread(HackThread,&ExitCode);
Sleep(10);
}
while(ExitCode==STILL_ACTIVE);
break;
}
return TRUE;
}



PDWORD Weapon = (PDWORD)(dwCShell + 0xA69120 ); DWORD pWeaponMgr1 = *(DWORD*)(dwCShell + WeaponMgr);
if (pWeaponMgr1) {
for(int i=0; i<601; i++) {
if((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) != NULL &grenades)
*(float*)((*(DWORD*)((*(DWORD*)(dwCShell+WeaponMgr))+(4*i))) + 0x7F8) = 0.0f;
}
}
if (pWeaponMgr1)
for(int i=0 ; i<601 ; i++)
{
DWORD Wep = *(DWORD*)(*Weapon + 4*i);
if(Wep)
{
for(int y = 0; y<9; y++)
{
*(float*)( Wep + (0x051C + (4*y))) = (float)0;
*(float*)( Wep + (0x0684 + (4*y))) = (float)0;
*(float*)( Wep + (0x192C + (4*y))) = (float)0;
*(float*)( Wep + (0x1B00 + (4*y))) = (float)0;
*(float*)( Wep + (0x1F8C + (4*y))) = (float)0;
*(float*)( Wep + (0x20F4 + (4*y))) = (float)0;
*(float*)( Wep + (0x225C + (4*y))) = (float)0;
}
}
}
}