Função GetClosestPlayer modificada

Posts 1–15 of 35 · Page 1 of 3
Função GetClosestPlayer modificada
Boa noite, senhores.

Minha primeira contribuição mais voltada aos hacks uashas..

Estive brincando com aimbot e a função de pegar o jogador mais próximo pela distância entre os jogadores me pareceu um pouco problemática... pq as vezes vc queria mirar em alguem e não conseguia pq a mira sempre ia pro mais proximo...

Decidi modificar de modo que agora o "jogador" mais próximo é considerado em relação a linha imaginária de visão da câmera... ou seja, pra onde vc tá olhando... ele verifica qual jogador que "muda menos" o seu angulo de visão e mira nele...

Segue aí o código:

Espero que seja útil.. Desculpem mas não sei que é o autor original da função em que me baseei para fazer essa...
Agradecimentos vão @Black Diamond por postar o endereço correto do ClientInfo e me permitir brincar com aimbots..

Code:
int GetClosestPlayer()
{
	float fNearest = (float) INT_MAX;

	int iAimAt = -1;
	float Distance;

	float fDistPitch = 0;
	float fDistYaw = 0;

	GetPlayerByIndex = (lpGetPlayerByIndex) ADDR_PLAYERBYINDEX;
	GetLocalPlayer = (lpGetLocalPlayer) ADDR_LOCALPLAYER;

	unsigned long ulThis = *(unsigned long *) ADDR_CLIENTINFOMGR;

	D3DXVECTOR3 Position;

	cPlayerInfo* pPlayer;
	cPlayerInfo* pLocal;

	pPlayerManager = *(cPlayerMgr **) ADDR_PLAYERMGR;

	for (int i = 0; i < 16; i++)
	{
		pPlayer = GetPlayerByIndex(ulThis, i, 0);
		pLocal = GetLocalPlayer(ulThis);
		
		if(pPlayer != 0 && pLocal != 0 && pLocal->Object != 0 && pPlayer->Object != 0 && pPlayer->pIsDead == 0 && pPlayer->Index != pLocal->Index)
		{
			if(pLocal->pTeam != pPlayer->pTeam)
			{
				GetAngleToTarget(ObjConv(pPlayer->Object), ObjConv(pLocal->Object), Position);

				fDistPitch = pPlayerManager->Pitch - DegToRad(Position[0]);
				fDistYaw = pPlayerManager->Yaw - DegToRad(Position[1]);

				Distance = sqrt((fDistPitch * fDistPitch) + (fDistYaw * fDistYaw)); 
				//Distance = FindDistance(pPlayer, pLocal);

				//if ((Distance / 100) < fNearest)
				if (Distance < fNearest) 
				{
					iAimAt = i;

					fNearest = Distance;
					//fNearest = (Distance / 100);
				}
			}
		} 
	}
	
	return iAimAt;
}
//versão 2

bom.. decidi criar meu próprio código para mirar no maluco... não muda tanto pois o resultado é o mesmo... porém agora creio ter otimizado algumas coisas e mudei a forma de verificar qual inimigo mirar...

o código é curto mas a teoria é complexa aushuhsa...
mas basicamente oq ele faz é verificar o tamanho da "corda" entre os inimigos e vc... utilizando a distância como raio e o Yaw relativo entre vc e o inimigo para determinar o tamanho da corda e o inimigo de "corda" menor será o mirado...

mesmo assim ainda é possível que aconteçam "bugs" do tipo vc querer mirar alguém e o aimbot mirar outro jogador... mas isso é assim né.. suahuahsuhsa

Code:
double Difference(double v1, double v2)
{
	double result = v1 - v2;

	if (result < 0) result = result * -1;

	return result;
}

double getYaw(D3DXVECTOR3 vTargetPos, D3DXVECTOR3 vCameraPos)
{
	double DeltaZ = Difference(vTargetPos.z, vCameraPos.z);
	double DeltaX = Difference(vTargetPos.x, vCameraPos.x);

	double result = atan2(DeltaX, DeltaZ);

	if ((vTargetPos.z >= vCameraPos.z) && (vTargetPos.x >= vCameraPos.x)) { result = result; }						//Quad 1
	if ((vTargetPos.z < vCameraPos.z) && (vTargetPos.x > vCameraPos.x)) { result = (M_PI) - result; }				//Quad 2
	if ((vTargetPos.z < vCameraPos.z) && (vTargetPos.x < vCameraPos.x)) { result = (M_PI) + result; }				//Quad 3
	if ((vTargetPos.z > vCameraPos.z) && (vTargetPos.x < vCameraPos.x)) { result = (result) * -1; }					//Quad 4

	return (double) result;
}

double getPitch(D3DXVECTOR3 vTargetPos, D3DXVECTOR3 vCameraPos)
{
	double DeltaY = Difference(vTargetPos.y + aimbone_y, vCameraPos.y);
	double DeltaZ = Difference(vTargetPos.z, vCameraPos.z);
	double DeltaX = Difference(vTargetPos.x, vCameraPos.x);

	int S;

	double Distance = sqrt((DeltaX * DeltaX) + (DeltaZ * DeltaZ));

	if (vTargetPos.y > vCameraPos.y) S = -1;
	else S = 1;

	return (double) ( atan2(DeltaY, Distance) * S );
}

double getYawCircSize(D3DXVECTOR3 vTargetPos, D3DXVECTOR3 vCameraPos, double CameraYaw)
{
	double DeltaZ = (vTargetPos.z - vCameraPos.z);
	double DeltaX = (vTargetPos.x - vCameraPos.x);

	int laps = (int) (CameraYaw / (2 * M_PI));
	double remain = (double) CameraYaw - laps;

	double RelYaw = Difference(getYaw(vTargetPos, vCameraPos), remain);
	double Distance = sqrt((DeltaZ * DeltaZ) + (DeltaX * DeltaX));

	return (double) RelYaw * Distance;
}

int GetClosestPlayer()
{
	double fNearest = (double) ULLONG_MAX;

	int iAimAt = -1;

	double circSize;

	GetPlayerByIndex = (lpGetPlayerByIndex) ADDR_PLAYERBYINDEX;
	GetLocalPlayer = (lpGetLocalPlayer) ADDR_LOCALPLAYER;

	unsigned long ulThis = *(unsigned long *) ADDR_CLIENTINFOMGR;

	cPlayerInfo* pPlayer;
	cPlayerInfo* pLocal;

	pPlayerManager = *(cPlayerMgr **) ADDR_PLAYERMGR;

	for (int i = 0; i < 16; i++)
	{
		pPlayer = GetPlayerByIndex(ulThis, i, 0);
		pLocal = GetLocalPlayer(ulThis);
		
		if(pPlayer != 0 && pLocal != 0 && pLocal->Object != 0 && pPlayer->Object != 0 && pPlayer->pIsDead == 0 && pPlayer->Index != pLocal->Index)
		{
			if(pLocal->pTeam != pPlayer->pTeam)
			{
				circSize = getYaw *(SIC **) Size(ObjConv(pPlayer->Object), ObjConv(pLocal->Object), pPlayerManager->Yaw);

				if (circSize < fNearest) 
				{
					iAimAt = i;

					fNearest = circSize;
				}
			}
		} 
	}
	
	return iAimAt;
}
hm... agora q vi.. lembrei.. tava confundindo.. corda é um segmento de reta cujas extremidades pertencem à circunferência.. o que eu estou me referindo como corda... é na verdade simplesmente "arco"...
\/ Script Kiddies logo abaixo dizendo que são os fodões e com aquela brincadeira " Como Injeta isso ? "
mano pra que usar o GetClosestPlayer se existe o GetVisiblePlayer??
Ah sim, baseado no pegar distância que retorna a raiz da subtração dos vetores ao quadrado.
Legal, legal...
Mas o aimbot não está com Detectando?
Quote Originally Posted by Hacker Fail View Post
Legal, legal...
Mas o aimbot não está com Detectando?
Não. O problema é que vocês pegavam endereços de loggers
Quote Originally Posted by Hacker Fail View Post
Legal, legal...
Mas o aimbot não está com Detectando?
Alguns não tinhão esse endereço atualizado....
/edit
#define ILocaleMgr 0x000000
Quote Originally Posted by TokolocoSK View Post


Nuul
affs toko

@Psychlo oque é ObjConv ?
Quote Originally Posted by luizimloko View Post
affs toko

@Psychlo oque é ObjConv ?
Ta bom agora?
Quote Originally Posted by TokolocoSK View Post


Ta bom agora?
Já era Toko peguei o endereço
Se alguem sabe como atualizar nao fala Por Favor
Code:
D3DXVECTOR3 ObjConv(int *obj)
{
	return *(D3DXVECTOR3 *) (obj + 0x4);
}
Se esse cara se dedicar a hacks ele vai destruir !
Como esse gringo fala português melhor do que eu?

+1 Rep
Posts 1–15 of 35 · Page 1 of 3
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?