IntersectQuery iQuery;
IntersectInfo iInfo;
struct IntersectInfo
{
D3DXVECTOR3 vImpactPos;
char unk_0[16];
};
struct IntersectQuery
{
D3DXVECTOR3 m_From;
D3DXVECTOR3 m_To;
char unknown24[12];
unsigned int Flags;
};
typedef bool(*IntersectSegment)(const IntersectQuery &Query, IntersectInfo *pInfo);
IntersectSegment oIntersectSegment;
bool __cdecl IsVisible(D3DXVECTOR3 MePos, D3DXVECTOR3 TargetPos)
{
oIntersectSegment = (IntersectSegment)(0x67617d + 0x3);
iQuery.m_From = MePos;
iQuery.m_To = TargetPos;
return !oIntersectSegment(iQuery, &iInfo);
}
if (IsValidClient(pPlayer) && IsVisible(GetBonePosition(Me->Object, 6), GetBonePosition(pPlayer->Object, 6)))
{
//do aim
}
5D C3 CC 55 8B EC 8B 45 0C 50 8B 4D 08 51 8B 15 ?? ?? ?? ??
#define ADDR_INTERSECTSEGMENT 0x00676180
class CIntersectInfo
{
public:
D3DXVECTOR3 vImpactPos;
};//Size=0x0012
class CIntersectQuery
{
public:
D3DXVECTOR3 vStart; //0x0000
D3DXVECTOR3 vEnd; //0x000C
char _0x0018[12];
__int32 iFlags; //0x0024
};//Size=0x0028
typedef bool( WINAPIV *TIntersectSegment )( const CIntersectQuery &iQuery, CIntersectInfo *pInfo );
TIntersectSegment OIntersectSegment = ( TIntersectSegment ) ADDR_INTERSECTSEGMENT;
const bool WINAPIV isVisible( D3DXVECTOR3 vStart, D3DXVECTOR3 vEnd )
{
static CIntersectQuery iQuery;
static CIntersectInfo iInfo;
memset( &iQuery, 0, sizeof( CIntersectQuery ) );
iQuery.vStart = vStart;
iQuery.vEnd = vEnd;
return !OIntersectSegment( iQuery, &iInfo );
}
const bool WINAPIV isVisible( D3DXVECTOR3 vStart, D3DXVECTOR3 vEnd )
{
static CIntersectQuery iQuery;
static CIntersectInfo iInfo;
oIntersectSegment = (IntersectSegment)(ADDR_Intersect);
if(oIntersectSegment!=NULL)
{
iQuery.vStart = vStart;
iQuery.vEnd = vEnd;
}
return !OIntersectSegment( iQuery, &iInfo );
}

RECT rect; SetRect(&rect, x, y, x, y); int g = 1; RECT rect1; SetRect(&rect1, x + g, y, x + g, y); RECT rect2; SetRect(&rect2, x - g, y, x - g, y); RECT rect3; SetRect(&rect3, x, y + g, x, y + g); RECT rect4; SetRect(&rect4, x, y - g, x, y - g); Font->DrawText(NULL, text, -1, &rect1, DT_NOCLIP | DT_LEFT, Black); Font->DrawText(NULL, text, -1, &rect2, DT_NOCLIP | DT_LEFT, Black); Font->DrawText(NULL, text, -1, &rect3, DT_NOCLIP | DT_LEFT, Black); Font->DrawText(NULL, text, -1, &rect4, DT_NOCLIP | DT_LEFT, Black); Font->DrawText(NULL, text, -1, &rect, DT_NOCLIP | DT_LEFT, color);
#define ADDR_INTERSECTSEGMENT 0x00677050 // new offset by pattern
class CIntersectInfo
{
public:
D3DXVECTOR3 vImpactPos;
};//Size=0x0012
class CIntersectQuery
{
public:
D3DXVECTOR3 vStart; //0x0000
D3DXVECTOR3 vEnd; //0x000C
char _0x0018[12];
__int32 iFlags; //0x0024
};//Size=0x0028
typedef bool(WINAPIV *TIntersectSegment)(const CIntersectQuery &iQuery, CIntersectInfo *pInfo);
const bool WINAPIV isVisible(D3DXVECTOR3 vStart, D3DXVECTOR3 vEnd)
{
static CIntersectQuery iQuery;
static CIntersectInfo iInfo;
TIntersectSegment OIntersectSegment = (TIntersectSegment)(ADDR_INTERSECTSEGMENT);
if (OIntersectSegment != NULL)
{
iQuery.vStart = vStart;
iQuery.vEnd = vEnd;
}
return !OIntersectSegment(iQuery, &iInfo);
}
...
typedef HRESULT(WINAPI *tPresent)(LPDIRECT3DDEVICE9 pDevice, CONST RECT *a, CONST RECT *b, HWND c, CONST RGNDATA *d);
tPresent oPresent;
HRESULT WINAPI hkPresent(LPDIRECT3DDEVICE9 pDevice, CONST RECT *a, CONST RECT *b, HWND c, CONST RGNDATA *d)
{
StartFont(pDevice);
menu(pDevice, X, Y);
if (GetAsyncKeyState(key[menuBack]) & 1)
{
settingsFadeup();
}
hack();
PlayerESP(pDevice);
Radar(pDevice);
if (GetAsyncKeyState(VK_SHIFT) < 0)
{
DWORD dwCShell = (DWORD)GetModuleHandle("CShell.dll");
DWORD pLTClientShell = *(DWORD*)(dwCShell + LTCLIENT_SHELL);
CPlayer* Me = GetPlayerByIndex(pLTClientShell, GetMyIndex(pLTClientShell));
CPlayer* pPlayer = GetPlayerByIndex(pLTClientShell, iAimAt);
if (IsValidClient(pPlayer))
{
if (isVisible(Me->Object->Body, pPlayer->Object->Body))//(isVisible(GetBonePosition(Me->Object, 6), GetBonePosition(pPlayer->Object, 6)))
{
aimshooting(pDevice);
}
}
else
{
Aim(pDevice);
}
}
return oPresent(pDevice, a, b, c, d);
}