teamcheck

Posts 1–10 of 10 · Page 1 of 1
teamcheck
Hi. does anyone have a team check for x64?
Code:
class CEntity
{
public:
    ObjectInstance* hObj;//0x0000
    int8_t characIdx; //0x0008
    int8_t teamIdx; //0x0009
    char szUserName[14]; //0x000A
    CCharacFX* pCharacFX; //0x0018
    int32_t iIndexOnScoreBoard; //0x0020
    int32_t bIsBot; //0x0024
    int32_t bHasC4; //0x0028
    int32_t bIsHost; //0x002C
    int64_t tRankType; //0x0030
    int64_t iUserID; //0x0038
    int32_t bIsObserver; //0x0040
    unsigned int u32Health; //0x0044
    unsigned __int8 u8Kill; //0x0048
    unsigned __int8 u8Death; //0x0049
    char pad_004A[2]; //0x004A
    int8_t iCharacterType; //0x004C
    char pad_004D[3219]; //0x004D
    int32_t bIsACE; //0x0CE0
    char pad_0CE4[948]; //0x0CE4
}; //Size: 0x1098
Quote Originally Posted by dreek1 View Post
Code:
class CEntity
{
public:
    ObjectInstance* hObj;//0x0000
    int8_t characIdx; //0x0008
    int8_t teamIdx; //0x0009
    char szUserName[14]; //0x000A
    CCharacFX* pCharacFX; //0x0018
    int32_t iIndexOnScoreBoard; //0x0020
    int32_t bIsBot; //0x0024
    int32_t bHasC4; //0x0028
    int32_t bIsHost; //0x002C
    int64_t tRankType; //0x0030
    int64_t iUserID; //0x0038
    int32_t bIsObserver; //0x0040
    unsigned int u32Health; //0x0044
    unsigned __int8 u8Kill; //0x0048
    unsigned __int8 u8Death; //0x0049
    char pad_004A[2]; //0x004A
    int8_t iCharacterType; //0x004C
    char pad_004D[3219]; //0x004D
    int32_t bIsACE; //0x0CE0
    char pad_0CE4[948]; //0x0CE4
}; //Size: 0x1098
thx

u have isvisible?
Quote Originally Posted by iluxanoj View Post
thx

u have isvisible?
you mean isvisible using intersectsegment? idk if there's another way you are using but i think you can use the old way using intersectsegment

// Crossfire PH x64
Code:
NetVars::get()->Expression.m_IntersectsegmentFunc = NetVarManager::get()->GetAddress(xorstr_(_T("m_IntersectsegmentFunc")), eCF, (BYTE*)"\x48\x89\x54\x24\x00\x48\x89\x4C\x24\x00\x48\x83\xEC\x28\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x00\x4C\x8B\x44\x24\x00\x48\x8B\x54\x24\x00\x48\x8B\x0D\x00\x00\x00\x00\xFF\x50\x18", "xxxx?xxxx?xxxxxxx????xxxxxxx?xxxx?xxx????xxx");
Quote Originally Posted by MemoryThePast View Post
you mean isvisible using intersectsegment? idk if there's another way you are using but i think you can use the old way using intersectsegment

// Crossfire PH x64
Code:
NetVars::get()->Expression.m_IntersectsegmentFunc = NetVarManager::get()->GetAddress(xorstr_(_T("m_IntersectsegmentFunc")), eCF, (BYTE*)"\x48\x89\x54\x24\x00\x48\x89\x4C\x24\x00\x48\x83\xEC\x28\x48\x8B\x05\x00\x00\x00\x00\x48\x8B\x00\x4C\x8B\x44\x24\x00\x48\x8B\x54\x24\x00\x48\x8B\x0D\x00\x00\x00\x00\xFF\x50\x18", "xxxx?xxxx?xxxxxxx????xxxxxxx?xxxx?xxx????xxx");
https://prnt.sc/1zb3xo3

which of this do we need? I tried everything and I crash

Code:
typedef bool(WINAPIV* tIntersectSegment)(IntersectQuery& iQuery, IntersectInfo* qInfo);
tIntersectSegment oIntersectSegment = 0;

struct IntersectInfo
{
	D3DXVECTOR3 vImpactPos;	//0x0000
};

struct IntersectQuery
{
	D3DXVECTOR3 From;					//0x0000
	D3DXVECTOR3 To;						//0x000C
};

bool IsVisible(D3DXVECTOR3 Start, D3DXVECTOR3 End)
{
	static IntersectQuery iQuery;
	static IntersectInfo iInfo;

	RtlSecureZeroMemory(&iQuery, sizeof(iQuery));

	iQuery.From = Start;
	iQuery.To = End;

	return !oIntersectSegment(iQuery, &iInfo);
}

oIntersectSegment = (tIntersectSegment)(0x1402B7C80);
Code:
typedef bool (*ObjectFilterFnCF) (int* hObj, void* pUserData);

struct IntersectInfoCF
{
	D3DXVECTOR3 vImpactPos;	
	char _UnkSpace[16];			
	int* hObjImpact;	
	DWORD m_hPoly;			
	DWORD m_SurfaceFlags;	
	DWORD m_hNode;			
}; IntersectInfoCF iInfo;

struct IntersectQueryCF
{
	D3DXVECTOR3 From;					
	D3DXVECTOR3 To;						
	char _UnkSpace[12];					
	unsigned int Flags;					
	ObjectFilterFnCF FilterFn;			
	void* FilterIntersectParam;			
	ObjectFilterFnCF FilterIntersectFn;	
	void* FilterParam;					
	void* PolyFilterParam;				
}; IntersectQueryCF iQuery;

typedef __int64(__fastcall* pfnIntersectSegment)(IntersectQueryCF& Query, IntersectInfoCF* pInfo);
pfnIntersectSegment oIntersectSegment;

bool IsVisible(D3DXVECTOR3 MePos, D3DXVECTOR3 EnemyPos)
{
	memset(&iQuery, 0, sizeof(iQuery));
	memset(&iInfo, 0, sizeof(iInfo));	
	
	if (oIntersectSegment != NULL)
	{
		iQuery.From = MePos;
		iQuery.To = EnemyPos;
		bool retorno = !oIntersectSegment(iQuery, &iInfo);
		return retorno;
	}
	return false;
}

oIntersectSegment = (pfnIntersectSegment)(address::IntersectSegment);

#define PATT_INTERSECT "\x48\x89\x54\x24\x00\x48\x89\x4c\x24\x00\x48\x83\xec\x00\x48\x8b\x05\x00\x00\x00\x00\x48\x8b\x00\x4c\x8b\x44\x24\x00\x48\x8b\x54\x24\x00"
#define MASK_INTERSECT "xxxx?xxxx?xxx?xxx????xxxxxxx?xxxx?"
Quote Originally Posted by iluxanoj View Post
https://prnt.sc/1zb3xo3

which of this do we need? I tried everything and I crash

Code:
typedef bool(WINAPIV* tIntersectSegment)(IntersectQuery& iQuery, IntersectInfo* qInfo);
tIntersectSegment oIntersectSegment = 0;

struct IntersectInfo
{
	D3DXVECTOR3 vImpactPos;	//0x0000
};

struct IntersectQuery
{
	D3DXVECTOR3 From;					//0x0000
	D3DXVECTOR3 To;						//0x000C
};

bool IsVisible(D3DXVECTOR3 Start, D3DXVECTOR3 End)
{
	static IntersectQuery iQuery;
	static IntersectInfo iInfo;

	RtlSecureZeroMemory(&iQuery, sizeof(iQuery));

	iQuery.From = Start;
	iQuery.To = End;

	return !oIntersectSegment(iQuery, &iInfo);
}

oIntersectSegment = (tIntersectSegment)(0x1402B7C80);
class

Code:
struct IntersectQuery
{
	IntersectQuery()
	{
		m_Flags = NULL;
		m_FilterFn = NULL;
	}
	D3DXVECTOR3	m_From;
	D3DXVECTOR3	m_To;
	D3DXVECTOR3	m_Direction;
	unsigned int m_Flags;
	ObjectFilterFn m_FilterFn;
	void* m_pUserData;
	ObjectFilterFn FilterIntersectFn;
	void* FilterParam;
	void* PolyFilterParam;
}; //Size: 0x0040

struct IntersectInfo
{
	D3DXVECTOR3	m_Point;
	D3DXVECTOR4	m_Plane;
	ModelInstance* m_hObject;
	uint64_t m_hPoly;
	uint64_t m_SurfaceFlags;
	uint64_t m_hNode;
}; //Size: 0x002C
Code:
typedef bool(WINAPIV* tIntersectSegment)(IntersectQuery& iQuery, IntersectInfo* qInfo);
tIntersectSegment oIntersectSegment = nullptr;

// here
IntersectQuery iQuery; 
IntersectInfo iInfo;

bool IsVisible(D3DXVECTOR3 Start, D3DXVECTOR3 End)
{
	//static IntersectQuery iQuery; // remove this and put this on outside thread like this
	//static IntersectInfo iInfo;

	RtlSecureZeroMemory(&iQuery, sizeof(iQuery));

	iQuery.From = Start;
	iQuery.To = End;

	return !oIntersectSegment(iQuery, &iInfo);
}
thx all for help
codeler have kanka:
Code:
const DWORD64 Intersect = 0x1402F6670; // E8 ? ? ? ? 84 C0 0F 84 ? ? ? ? E8 ? ? ? ? 48 85 C0 
const DWORD64 getnodetransform = 0x1403FB940; // 4C 89 4C 24 ? 44 89 44 24 ? 48 89 54 24 ? 48 89 4C 24 ? 48 83 EC 38 48 83 7C 24 ? ? 74 11 48 8B 44 24 ? 0F B6 80 ? ? ? ? 83 F8 01 74 3B B9 ? ? ? ? E8 ? ? ? ? 83 3D ? ? ? ? ? 7C 21 4C 8D 0D ? ? ? ? 4C 8D 05 ? ? ? ? 48 8B 15 ? ? ? ? 48 8B 0D ? ? ? ? E8 ? ? ? ? B8 ? ? ? ? EB 35
Code:
struct _Transform
{
	D3DXVECTOR3 Pos;
	unsigned char spacer00[0x100];
};

IntersectQueryX iQuery;
IntersectInfoX iInfo;

typedef bool(*IntersectSegment)(const IntersectQueryX& Query, IntersectInfoX* pInfo);
IntersectSegment oIntersectSegment;

Code:
bool __cdecl pEngine::IsVisible2(D3DXVECTOR3 MePos, D3DXVECTOR3 TargetPos)
{
	oIntersectSegment = (IntersectSegment)(defs::Intersect);

	iQuery.From = MePos;
	iQuery.To = TargetPos;

	return !oIntersectSegment(iQuery, &iInfo);
}
Code:
D3DXVECTOR3 pEngine::GetBonePosition(cObject* obj, UINT Bone)
{
	_Transform Trans;
	oGetNodeTransform = (GetNodeTransform)(defs::getnodetransform);
	oGetNodeTransform(0, obj, Bone, &Trans, true);
	return (Trans.Pos);
}
Code:
		if (VisibleCheckESP)
		{ //visible check
			if (gEngine->IsVisible2(gEngine->GetBonePosition(LocalPlayer->Object, 6), gEngine->GetBonePosition(TargetPlayer->Object, 6)))
			{
				ESP_Color = Green;
				if (gEngine->IsTM(LocalPlayer, TargetPlayer))
					ESP_Color = Colorteam;
			}
		}
good luck.
Posts 1–10 of 10 · Page 1 of 1

Post a Reply

Tags for this Thread

None

Talk with us