Code:
#define SFX_NADE 0x13
#define SFX_PICKUP 0x17
#define SFX_CHARACTER 0x18
#define SFX_MAX 0x3B
class CWeaponInfo
{
public:
char pad_0x0000[0x8]; //0x0000
DWORD dwDescriptionId; //0x0008
DWORD dwClientWeaponType; //0x000C
DWORD dwIsAmmoNoPickupId; //0x0010
__int32 iAniType; //0x0014
char * mItemName1; //0x0018
char * mItemNameFull; //0x001C
char * mItemNameFull2; //0x0020
D3DXVECTOR3 vPos; //0x0024
D3DXVECTOR3 vMuzzlePos; //0x0030
D3DXVECTOR3 vBreachOffset; //0x003C
char pad_0x0048[0x8C]; //0x0048
DWORD dwInfiniteAmmo; //0x00D4
char pad_0x00D8[0x4]; //0x00D8
__int32 iHideWhenEmpty; //0x00DC
__int32 iIsAmmo; //0x00E0
char pad_0x00E4[0x4]; //0x00E4
__int32 iShotsPerClip; //0x00E8
char pad_0x00EC[0x1C]; //0x00EC
DWORD dwMinPerturb; //0x0108
DWORD dwMaxPerturb; //0x010C
float fRange; //0x0110
D3DXVECTOR3 vRecoil; //0x0114
DWORD dwVectorsPerRound; //0x0120
DWORD dwAIWeaponType; //0x0124
char pad_0x0128[0x4C]; //0x0128
DWORD dwFireDelay; //0x0174
char pad_0x0178[0x4]; //0x0178
float fFireAnimRateScale; //0x017C
float fReloadAnimRateScale; //0x0180
char pad_0x0184[0x18]; //0x0184
unsigned char bRespawnWaitVisible; //0x019C
unsigned char bRespawnWaitTranslucent; //0x019D
char pad_0x019E[0x1]; //0x019E
unsigned char bCanServerRestrict; //0x019F
float fRadiusMin; //0x01A0
float fCrosshairRecoilRange; //0x01A4
float fAimSpeed; //0x01A8
__int32 iFireInterval; //0x01AC
float fFireRecoilPitch; //0x01B0
float fFireRecoilDecay; //0x01B4
float fFireRecoilPitchRand; //0x01B8
float fFireRecoilPitchMax; //0x01BC
float fFireRecoilYaw; //0x01C0
float fFireRecoilYawRand; //0x01C4
float fFireRecoilYawDecay; //0x01C8
char pad_0x01CC[0x10C]; //0x01CC
DWORD dwNameId; //0x02D8
void* dwIcon; //0x02DC
char pad_0x02E0[0x220]; //0x02E0
}; //Size=0x0500
class CWeaponMgr
{
public:
char pad_0x0000[0x11BC]; //0x0000
CWeaponInfo** Weapons; //0x11BC
__int32 WeaponCount; //0x11C0
char pad_0x11C4[0x678]; //0x11C4
}; //Size=0x183C
class CClientWeaponMgr
{
public:
char pad_0x0000[0x4]; //0x0000
__int32 MaxWeapons; //0x0004
__int32 WeapIndex; //0x0008
void* CurrentWeapon; //0x000C
unsigned char bWeaponEnabled; //0x0010
unsigned char bWeaponVisible; //0x0011
char pad_0x0012[0x12]; //0x0012
__int32 iCurrentWeaponID; //0x0024
char pad_0x0028[0x9C]; //0x0028
}; //Size=0x00C4
class CILTPlayerMgr
{
public:
char pad_0x0000[0x40]; //0x0000
CClientWeaponMgr* WeaponMgr; //0x0040
char pad_0x0044[0x30]; //0x0044
float fPitch; //0x0074
float fYaw; //0x0078
float fRoll; //0x007C
char pad_0x0080[0x8]; //0x0080
float fWeaponPitch; //0x0088
float fWeaponYaw; //0x008C
float fWeaponRow; //0x0090
char pad_0x0094[0xBC]; //0x0094
union
{
CILTObject* hLocalCamObj; //0x0150
HOBJECT hLocalObject; //0x0150
};
char pad_0x0154[0x2A8]; //0x0154
}; //Size=0x03FC
class CILTClientInfoMgr
{
public:
CPlayer* m_pClients; //0x0000
__int32 iLocalID; //0x0004
char pad_0x0008[0x3C]; //0x0008
}; //Size=0x0044
class CILTInterfaceMgr
{
public:
char N00000002[72752]; //0x0000
CILTClientInfoMgr* g_pClientInfoMgr; //0x11C30
char pad_0x11C34[0x3F8]; //0x11C34
}; //Size=0x1202C
class CILTObject
{
public:
char pad_0x0000[0x4]; //0x0000
D3DXVECTOR3 vMinPos; //0x0004
D3DXVECTOR3 vMaxPos; //0x0010
char pad_0x001C[0x9C]; //0x001C
D3DXVECTOR3 vDimensions; //0x00B8
}; //Size=0x00C4
class CILTCommon
{
public:
virtual char* GetClassName( ); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
}; //Size=0x0004
class CILTPhysic
{
public:
virtual char* GetClassName( ); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual void Function25(); //
}; //Size=0x0004
class CILTTransform
{
public:
virtual char* GetClassName( ); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
}; //Size=0x0004
struct Transform
{
D3DXVECTOR3 Pos;
unsigned char Space [0x100];
};
class CLTModelClient
{
public:
virtual char* GetClassName( ); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual LTRESULT GetSocket(HOBJECT hObj, const char *pSocketName, uint32 &hSocket);; //
virtual LTRESULT GetSocketTransform(HOBJECT hObj, uint32 hSocket, LTransform &transform, bool bWorldSpace);; //
virtual void Function7(); //
virtual void Function8(); //
virtual LTRESULT GetPieceHideStatus(HOBJECT hObj, uint32 hPiece, bool &bHidden);; //
virtual LTRESULT SetPieceHideStatus(HOBJECT hObj, uint32 hPiece, bool bHidden); //
virtual LTRESULT GetNode(HOBJECT hObj, const char *pNodeName, uint32 &hNode); //
virtual LTRESULT GetNodeName(HOBJECT hObj, uint32 hNode, char *name, uint32 maxlen); //
virtual LTRESULT GetNodeTransform(HOBJECT hObj, uint32 hNode, Transform *transform, bool bWorldSpace); //
virtual LTRESULT GetNextNode(HOBJECT hObject, uint32 hNode, uint32 &pNext); //
virtual void Function15(); //
virtual LTRESULT GetNumChildren(HOBJECT hObj, uint32 hNode, uint32 &NumChildren ); //
virtual LTRESULT GetChild(HOBJECT hObj, uint32 parent, uint32 index, uint32 &child); //
virtual LTRESULT GetParent(HOBJECT hObj, uint32 node, uint32 &parent); //
virtual LTRESULT GetNumNodes( HOBJECT hObj, uint32 &num_nodes); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
}; //Size=0x0004
class CSoundMgr
{
public:
virtual char* GetClassName( ); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
}; //Size=0x0004
class CILTCSBase
{
public:
char pad_0x0000[0x64]; //0x0000
bool (*IntersectSegment)( void *pQuery, void *pInfo); //0x0068
char pad_0x006C[0x8]; //0x006C
void (*SetObjectRotation)( int* hObj, void *pRotation);; //0x0074
char pad_0x0078[0x10]; //0x0078
LTRESULT (*GetLocalClientID)(uint32 *pID); //0x0088
char pad_0x008C[0x14]; //0x008C
void (*GetObjectPos)( int* hObj, D3DXVECTOR3 *pPos); //0x00A0
char pad_0x00A4[0x150]; //0x00A4
float (*GetGameTime)(); //0x01F4
float (*GetGameFrameTime)(); //0x01F8
void (*DebugOut)( char *pMsg, ... ); //0x01FC
char pad_0x0200[0x8]; //0x0200
void (*RunConsoleString)(const char *pString); //0x0208
HOBJECT (*GetClientObject)( ); //0x020C
}; //Size=0x0210
class CILTClient : public CILTCSBase
{
public:
virtual char* GetClassName( ); //
virtual CILTCommon* GetLTCommon( ); //
virtual CILTPhysic* GetLTPhysic( ); //
virtual CILTTransform* GetLTTransform( ); //
virtual CLTModelClient* GetLTModelClient( ); //
virtual CSoundMgr* GetSoundMgr( ); //
virtual void CPrint(const char *pMsg, ...) = 0; //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual void Function25(); //
virtual void Function26(); //
virtual void Function27(); //
virtual void Function28(); //
virtual void Function29(); //
virtual void Function30(); //
virtual void Function31(); //
virtual void Function32(); //
virtual void Function33(); //
virtual void Function34(); //
virtual void Function35(); //
virtual void Function36(); //
virtual void Function37(); //
virtual void Function38(); //
virtual void Function39(); //
virtual void Function40(); //GetObjectPos; //
virtual void Function41(); //
virtual void Function42(); //
virtual void Function43(); //
virtual void Function44(); //
virtual void Function45(); //
virtual void Function46(); //
virtual void Function47(); //
virtual void Function48(); //
virtual LTRESULT SetObjectPos( HOBJECT hObj, D3DXVECTOR3 *pPos, LTBOOL bForce = FALSE) = 0; //
virtual void Function50(); //
virtual void Function51(); //
virtual void Function52(); //
virtual void Function53(); //
virtual void Function54(); //
virtual void Function55(); //
virtual void Function56(); //
virtual void Function57(); //
virtual void Function58(); //
virtual void Function59(); //
virtual void Function60(); //
virtual void Function61(); //
virtual void Function62(); //
virtual void Function63(); //
virtual void Function64(); //
virtual void Function65(); //
virtual void Function66(); //
virtual void Function67(); //
virtual void Function68(); //
virtual void Function69(); //
virtual void Function70(); //
virtual void Function71(); //
virtual void Function72(); //
virtual void Function73(); //
virtual void Function74(); //
virtual void Function75(); //
virtual void Function76(); //
virtual void Function77(); //
virtual void Function78(); //
virtual void Function79(); //
virtual void Function80(); //
virtual void Function81(); //
virtual void Function82(); //
virtual LTRESULT SendToServer( ILTMessage_Read* pMsg, uint32 Flags ); //
}; //Size=0x0004
class cSFXList
{
public:
unsigned long unk0;
unsigned long* List;
int Num;
};
class cSFXMgr
{
public:
cSFXList SFXList[SFX_MAX];
};
class CILTGameClientShell
{
public:
virtual void Function0(); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual void Function25(); //
virtual void Function26(); //
virtual void Function27(); //
virtual void Function28(); //
virtual void Function29(); //
virtual void Function30(); //
virtual void Function31(); //
virtual void Function32(); //
virtual void Function33(); //
virtual void Function34(); //
virtual void Function35(); //
virtual void Function36(); //
virtual void Function37(); //
virtual DWORD GetWolfInterfaceMgr( ); //
virtual CILTInterfaceMgr *GetInterfaceMgr( ); //
virtual CILTPlayerMgr *GetPlayerMgr( ); //
virtual DWORD GetWeaponAllocatorMgr( ); //
virtual void Function42(); //
virtual void Function43(); //
char pad_0x0004[0x84E4]; //0x0004
cSFXMgr* SFXMgr;
//DWORD dwCharacterFX; //0x84E8
}; //Size=0x0004
class CPlayer
{
public:
WORD wPing; //0x0000
char pad_0x0002[0x2]; //0x0002
__int32 iID; //0x0004
char szName[16]; //0x0008
char pad_0x0018[0x4]; //0x0018
DWORD dwNameSize; //0x001C
char pad_0x0020[0x40]; //0x0020
DWORD dwScore; //0x0060
DWORD dwFrags; //0x0064
DWORD dwTags; //0x0068
char pad_0x006C[0x4]; //0x006C
unsigned char bIsAdmin; //0x0070
unsigned char bTeam; //0x0071
char pad_0x0072[0x2]; //0x0072
CPlayer* pPrev; //0x0074
CPlayer* pNext; //0x0078
public:
CPlayer* GetLocalPlayer( )
{
uint32 uLocalID;
if( g_pLTClient->GetLocalClientID( &uLocalID ) == LT_OK )
return GetClientByID( uLocalID );
return 0;
}
CPlayer* GetClientByID( int id )
{
CPlayer* ptr = this;
while( ptr )
{
if( ptr->iID == id )
return ptr;
ptr = ptr->pNext;
}
return 0;
}
};
class CCharacterFX
{
public:
char pad_0x0000[0x4]; //0x0000
float fTick; //0x0004
char pad_0x0008[0x8]; //0x0008
union
{
CILTObject* g_pObject; //0x0010
HOBJECT hObject; //0x0010
};
D3DXVECTOR3 vPosition; //0x0014
char pad_0x0020[0x20]; //0x0020
__int32 iIsAlive; //0x0040
char pad_0x0044[0x4]; //0x0044
__int32 iIsPlayer; //0x0048
char pad_0x004C[0x34]; //0x004C
D3DXVECTOR3 vDimension; //0x0080
char pad_0x008C[0x2018]; //0x008C
CHitBox* g_pHitBox; //0x20A4
HOBJECT m_hHitBox; //0x20A8
HOBJECT m_hModel; //0x20AC
D3DXVECTOR3 vHitBoxDimensions; //0x20B0
D3DXVECTOR3 vHitBoxOffset; //0x20BC
char pad_0x20C8[0x7F4]; //0x20C8
}; //Size=0x28BC
Code:
void SetLocalPlayerPosition( D3DXVECTOR3 Pos )
{
DWORD dwAdres = (DWORD)GetModuleHandleA("Clientfx.fxd" );
DWORD dwMyLocal = *(DWORD*)( dwAdress + 0x66F34 );
if( dwMyLocal == NULL )
return;
*(float*)( dwMyLocal + 0xC8 ) = Pos.x;
*(float*)( dwMyLocal + 0xCC ) = Pos.y;
*(float*)( dwMyLocal + 0xD0 ) = Pos.z;
}
bool WorldToScreen( D3DXVECTOR3 vInPos, D3DXVECTOR3 *vOutPos, HOBJECT hObject )
{
if( !g_pGameClientShell )
return false;
if( !g_pGameClientShell->GetInterfaceMgr( ) )
return false;
if( _ADDR.dwWorldToScreen )
{
DWORD dwECX = ( DWORD )g_pGameClientShell->GetInterfaceMgr( );
float X = vInPos.x;
float Y = vInPos.y;
float Z = vInPos.z;
D3DXVECTOR3 vNullVec( 0, 0, 0 );
__asm
{
pushad
mov eax, hObject
mov ecx, X
mov edx, Y
push eax
sub esp, 0Ch
mov eax, esp
mov [eax], ecx
mov ecx, Z
mov [eax+4], edx
lea edx, vNullVec
mov [eax+8], ecx
mov ecx, dwECX
push edx
call _ADDR.dwWorldToScreen;
popad
}
*vOutPos = vNullVec;
return ( vOutPos->z > 1.0f );
}
return false;
}
Code:
void PlayerLoop( DWORD dwSFXMgr, LPDIRECT3DDEVICE9 pDevice )
{
int v3 = ( 24 * 16 );
int nNumSFX = *(DWORD *)( (char *)dwSFXMgr + v3 + 8 );
if( nNumSFX <= 0 )
return;
char* v5 = (char *)dwSFXMgr + v3;
if( !v5 )
return;
DWORD v7 = *( DWORD *)v5;
for( int i = 0; i < nNumSFX; i++ )
{
if ( v7 )
{
CCharacterFX* fx = ( CCharacterFX *)*( DWORD *)( v7 + i * 4 );
if ( fx && fx->g_pObject && fx->iIsAlive && fx->iIsPlayer )
{
if( g_pGameClientShell->GetPlayerMgr()->hLocalObject )
{
Transform vPos;
g_pLTClient->GetLTModelClient()->GetNodeTransform( fx->hObject, 3, &vPos, true );
//little aimbot that i was testing...
if( GetAsyncKeyState( VK_LBUTTON ) != NULL )
{
D3DXVECTOR3 Position;
GetAngleToTarget(
vPos.Pos,
g_pGameClientShell->GetPlayerMgr()->hLocalCamObj->vMaxPos, Position );
g_pGameClientShell->GetPlayerMgr()->fYaw = DegToRad( Position[YAW] );
g_pGameClientShell->GetPlayerMgr()->fPitch = DegToRad( Position[PITCH] );
g_pGameClientShell->GetPlayerMgr()->fRoll = 0.0f;
//g_pGameClientShell->GetPlayerMgr()->fWeaponYaw = g_pGameClientShell->GetPlayerMgr()->fYaw;//DegToRad( Position[YAW] );
g_pGameClientShell->GetPlayerMgr()->fWeaponPitch = DegToRad( Position[PITCH] );
}
D3DXVECTOR3 vOut;
WorldToScreen( fx->g_pObject->vMinPos, &vOut, g_pGameClientShell->GetPlayerMgr()->hLocalObject );
//if( IsVisibleOnScreen( pDevice, vOut ) )
//{
DirectX.Text( vOut.x, vOut.y, Red, Directx.pFont, "Player" );
//}
}
}
}
}
}
From Lox0n..