//Weapon Range
#define WeaponManager 0x3799EB1C
bool SetWepData2 = true, StoreWepData2 = false;
float OgAwepData2[20][1000];
class cWeaponInfo
{
public:
char unknown1[12]; //0x0000
DWORD dwClientWeaponType; //0x000C
char unknown2[16]; //0x0010
DWORD dwAlt_InstDamage; //0x0020
DWORD dwInstDamage; //0x0024
char unknown3[108]; //0x0028
DWORD dwFireSnd; //0x0094
char unknown4[108]; //0x0098
float fFireDelay1; //0x0104
float ffiredelay1; //0x0108
DWORD dwMaxAmmo3; //0x010C
DWORD dwMaxAmmo2; //0x0110
char unknown5[304]; //0x0114
BYTE TripleShotMode;; //0x0244
char unknown6[3]; //0x0245
DWORD dwTripleShotRoundNum; //0x0248
float fDamageRFacter; //0x024C
char unknown7[28]; //0x0250
DWORD dwInfiAmmo2; //0x026C
DWORD dwInfiniteAmmo; //0x0270
DWORD dwHideWhenEmpty; //0x0274
DWORD dwIsAmmo; //0x0278
char unknown8[4]; //0x027C
DWORD dwShotsPerClip; //0x0280
char unknown9[52]; //0x0284
float fZoomTime; //0x02B8
DWORD dwMinPerturb; //0x02BC
DWORD dwMaxPerturb; //0x02C0
float fDuckPerturb; //0x02C4
float fMoveDuckPerturb; //0x02C8
DWORD dwZoomedMinPerturb; //0x02CC
DWORD dwZoomedMaxPerturb; //0x02D0
DWORD dwRange; //0x02D4
char unknown10[12]; //0x02D8
DWORD VectorsPerRound; //0x02E4
char unknown11[40]; //0x02E8
float fPerturbIncSpeed; //0x0310
float fPerturbDecSpeed; //0x0314
char unknown12[4]; //0x0318
float fZoomedPerturbIncSpeed; //0x031C
float fZoomedPerturbDecSpeed; //0x0320
char unknown13[4]; //0x0324
float fBaseCamRecoilPitch; //0x0328
float fBaseCamRecoilAccelPitch; //0x032C
char unknown14[36]; //0x0330
float fTripleShotMaxCamRecoilPitch; //0x0354
float fTripleShotBaseCamRecoilPitch; //0x0358
char unknown15[8]; //0x035C
DWORD dwTripleShotMinPerturb; //0x0364
DWORD dwTripleShotMaxPerturb; //0x0368
float fTripleShotPerturbIncSpeed; //0x036C
float fTripleShotPerturbDecSpeed; //0x0370
char unknown16[156]; //0x0374
BYTE DisableCrosshair; //0x0410
char unknown17[27]; //0x0411
float fCameraSwayXFreq; //0x042C
float fCameraSwayYFreq; //0x0430
char unknown18[12]; //0x0434
DWORD dwTargetCrosshairFlag; //0x0440
DWORD dwEffectRange; //0x0444
char unknown19[188]; //0x0448
};//Size=0x0504(1284)
class cWeaponMgr
{
public:
char unknown0[5600]; //0x0000
cWeaponInfo** Weapons; //0x15E0
__int32 WeaponCount; //0x15E4
};//Size=0x15E8
void WeaponRange( bool Rapid )
{
if( !StoreWepData2 )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)WeaponManager;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
OgAwepData2[0][i] = Wep->dwRange;
}
}
StoreWepData2 = true;
}
if( Rapid )
{
if( SetWepData2 )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)WeaponManager;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
Wep->dwRange = 0x2710;
}
}
SetWepData2 = false;
}
}
else
{
if( !SetWepData2 )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)WeaponManager;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
Wep->dwRange = OgAwepData2[0][i];
}
}
SetWepData2 = true;
}
}
}

://No Recoil fBaseCamRecoilPitch = 0.0f; fBaseCamRecoilAccelPitch = 0.0f; fTripleShotMaxCamRecoilPitch = 0.0f; fTripleShotBaseCamRecoilPitch = 0.0f; fCameraSwayXFreq = 0.0f; fCameraSwayYFreq = 0.0f;
//No Spread dwMinPerturb = 0.0f; dwMaxPerturb = 0.0f; fDuckPerturb = 0.0f; fMoveDuckPerturb = 0.0f; dwZoomedMinPerturb = 0.0f; dwZoomedMaxPerturb = 0.0f; fPerturbIncSpeed = 0.0f; fPerturbDecSpeed = 0.0f; fZoomedPerturbIncSpeed = 0.0f; fZoomedPerturbDecSpeed = 0.0f; dwTripleShotMinPerturb = 0.0f; dwTripleShotMaxPerturb = 0.0f; fTripleShotPerturbIncSpeed = 0.0f; fTripleShotPerturbDecSpeed = 0.0f;
VOID DrawEndScene ( )
{
__asm
{
MOV EAX,DWORD PTR DS:[EAX]
MOV ECX,DWORD PTR DS:[EAX]
MOV EDX,DWORD PTR DS:[ECX + 0xA8]
PUSH EAX
PUSHAD
}
MessageBox( 0, 0, 0, 0 );
__asm
{
POPAD
}
}
LONG WINAPI ExceptionHandler( EXCEPTION_POINTERS* ExceptionInfo )
{
......
return EXCEPTION_CONTINUE_SEARCH;
}
void HookThread ( )
{
AddVectoredExceptionHandler( ....., ..... );
CONTEXT Context = { CONTEXT_DEBUG_REGISTERS };
....
Context.Dr7 = 0x1;
SetThreadContext( GetCurrentThread(), &Context );
}