Here you go
For update just update the L***ient addy and offset it it ever change, but this have the current adress.
Code:
#include <windows.h>
void __cdecl PushToConsole( const char* szCommand )
{
DWORD *L***ient = ( DWORD* )( 0x3777DDAC );
void* CONoff = ( void* )*( DWORD* )( *L***ient + 0x208 );
__asm
{
push szCommand;
call CONoff;
add esp, 4;
}
}
bool IsGameReadyForHook()
{
if( GetModuleHandle( "d3d9.dll" ) != NULL
&& GetModuleHandle( "ClientFX.fxd" ) != NULL
&& GetModuleHandle( "CShell.dll" ) != NULL )
return true;
return false;
}
void main()
{
while (!IsGameReadyForHook()){
Sleep(20);
}
bool boxes = false;
bool fog = false;
bool speed = false;
bool spread = false;
bool tracers = false;
bool showfps = false;
bool unlockcursor = false;
bool drawgun = false;
bool sjump = false;
PushToConsole("FallDamageMinHeight 0.000000");
PushToConsole("FallDamageMaxHeight 0.000000");
PushToConsole("FallDamageMax 0.000000");
while(true){
if(GetAsyncKeyState(VK_NUMPAD1)<0){
if(boxes){
PushToConsole("ModelDebug_DrawBoxes 0");
PushToConsole("SkelModelStencil 0");
boxes = false;
} else {
PushToConsole("ModelDebug_DrawBoxes 1");
PushToConsole("SkelModelStencil 1");
boxes = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD2)<0){
if(fog){
PushToConsole("FogEnable 1");
fog = false;
} else {
PushToConsole("FogEnable 0");
fog = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD3)<0){
if(speed){
PushToConsole("BaseMoveAccel 3000.000000");
PushToConsole("StartAccel 500.000000");
PushToConsole("MaxAccel 3000.000000");
PushToConsole("AccelInc 6000.000000");
PushToConsole("WalkVel 70.000000");
PushToConsole("FRunVel 285.000000");
PushToConsole("BRunVel 285.000000");
PushToConsole("SRunVel 285.000000");
PushToConsole("DuckVel 50.000000");
speed = false;
} else {
PushToConsole("BaseMoveAccel 3000.000000");
PushToConsole("StartAccel 3000.000000");
PushToConsole("MaxAccel 3000.000000");
PushToConsole("AccelInc 3000.000000");
PushToConsole("WalkVel 3000.000000");
PushToConsole("FRunVel 3000.000000");
PushToConsole("BRunVel 3000.000000");
PushToConsole("SRunVel 3000.000000");
PushToConsole("DuckVel 3000.000000");
speed = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD4)<0){
if(spread){
PushToConsole("PerturbRotationEffect 3.000000");
PushToConsole("PerturbIncreaseSpeed 3.000000");
PushToConsole("PerturbDecreaseSpeed 9.000000");
PushToConsole("PerturbWalkPercent 0.500000");
spread = false;
} else {
PushToConsole("PerturbRotationEffect 0.000000");
PushToConsole("PerturbIncreaseSpeed 0.000000");
PushToConsole("PerturbWalkPercent 0.000000");
PushToConsole("PerturbFiringIncreaseSpeed 0.000000");
spread = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD5)<0){
if(tracers){
PushToConsole("ShowFirePath 0");
tracers = false;
} else {
PushToConsole("ShowFirePath 1");
tracers = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD6)<0){
if(sjump){
PushToConsole("JumpVel 330.000000");
sjump = false;
} else {
PushToConsole("JumpVel 660.000000");
sjump = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD7)<0){
if(showfps){
PushToConsole("ShowFps 0");
showfps = false;
} else {
PushToConsole("ShowFps 1");
showfps = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD8)<0){
if(unlockcursor){
PushToConsole("CursorCenter 1");
unlockcursor = false;
} else {
PushToConsole("CursorCenter 0");
unlockcursor = true;
}
}
if(GetAsyncKeyState(VK_NUMPAD9)<0){
if(drawgun){
PushToConsole("drawguns 1");
drawgun = false;
} else {
PushToConsole("drawguns 0");
drawgun = true;
}
}
if(GetAsyncKeyState(VK_UP)<0){
PushToConsole("CamMaxPosYOffset 200.000000");
PushToConsole("DuckDownCamOffSet 1000.000000");
}
if(GetAsyncKeyState(VK_DOWN)<0){
PushToConsole("CamMaxPosYOffset -1000.000000");
PushToConsole("DuckDownCamOffSet -13.000000");
}
if(GetAsyncKeyState(VK_ADD)<0){
PushToConsole("PlayerGravity +800");
}
if(GetAsyncKeyState(VK_SUBTRACT)<0){
PushToConsole("PlayerGravity -800");
}
if(GetAsyncKeyState(VK_MULTIPLY)<0){
PushToConsole("PlayerGravity 0");
}
Sleep(200);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&main, NULL, 0,NULL);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}