AutoBot em C++ ( Desenvolver )
Tenha o minimo de conhecimento em c++ antes de iniciar a leitura desse post pois aqui vou estar ensinando uma de varias maneiras para se desenvolver o AutoBot tipo aquele da Point Bad esse é o modo mais simples possível que foi encontrado.
Então se tu realmente quis ler, conclui-se que sabe C++.
keybd_event é a função que vamos utilizar para simular o W ou seja isso que vai [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] meu personagem andar.
Você pode utilizar ele assim :
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] PHP:
- Código:
keybd_event(0x57, 0, 0, 0); para quem não sabe o 0x57 seria o numero em Hex do W, isso vai ativar.
keybd_event(0x57, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); isso irá desativar
Para se mover a [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] a gente tem dois modos pela câmera do jogo ( Yaw e Pitch) ou pelo mouse do jogo oque é chamado de Delta.
Vou mostrar pela câmera do jogo :
Código PHP:
- Código:
*(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0xC);
*(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0x10);
Ta com isso só falta a gente pegar as coordenadas do [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Isso eu tive uma grande ajuda vinda do Rickye com o seu post [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
oque isso faz é pegar as coordenadas de todos os players do jogo inclusive a sua mas como eu posso fazer isso é simples
Código PHP:
- Código:
void GetPlayerPos(int iSlot,D3DXVECTOR3 &vPlayer)
{
__try
{
DWORD gc = *(DWORD*)(g_pGameContext);
vPlayer.x = *(float*) ( (*(DWORD*)(gc + 4 * iSlot + 0x2794C)) + 0x6C);
vPlayer.y = *(float*) ( (*(DWORD*)(gc + 4 * iSlot + 0x2794C)) + 0x70);
vPlayer.z = *(float*) ( (*(DWORD*)(gc + 4 * iSlot + 0x2794C)) + 0x74);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
return;
}
return;
}
Como vocês podem ver é uma função que necessita de argumentos nela para que seja utilizada então utilizaria-nos o nosso slot mas como isso muda certo a gente usa a seguinte função ela vai retornar o seu Slot
Código PHP:
- Código:
int MySlot()
{
return *(DWORD*)(*(DWORD*)(g_pGameContext)+0x2981C);
}
Então chamaríamos assim :
GetPlayerPos(MySlot(),Pos);
Esse Pos vai ser declarado como D3DXVECTOR3 pois possui 3 vetores
Na câmera vocês declaram um valor para ele receber e atribuir depois assim :
Código PHP:
- Código:
void CamPosition(D3DXVECTOR3 &vScreen) // Recebe os valores aqui você pode velos
{
vScreen.x = *(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0xC);
vScreen.y = *(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0x10);
}
void CamMov(float ScreenX, float ScreenY) // Aqui faz mover minha câmera para os eixos deseja
{
*(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0xC) = ScreenX;
*(float*)(*(DWORD*)(*(DWORD*)(g_pPlayer)+0x558) + 0x10) = ScreenY;
}
Após todas essa leitura vocês se virem para concluir
Lembrando que vocês tem que avaliar o local em que se encontram ou seja fazer isso :
if (Pos.x == 32.4353f && Pos.z == 3.54664f) // obs valores meramente ilustrativos
Pois se vocês forem fazendo por Sleep(); isso vai dar problemas pois cada PC é um tipo de velocidade cada PC da um lag diferente então não adiantaria, avaliando onde você se encontra é o mais certo.
Dai quando chegarem no eixo correto mudem a câmera para o caminho prosseguir exemplo
Código PHP:
- Código:
if (Pos.x == 32.4353f && Pos.z == 3.54664f)
CamMov((float)-2.792527 ,(float)0.000000);