Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

#1
Fuera de línea
Mr_Stanley
Sáb Fev 21, 2015 5:00 pm




Fundador

Fundador
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 fazer meu personagem andar.

Você pode utilizar ele assim :
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 câmera 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:
*(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 jogo

Isso eu tive uma grande ajuda vinda do Rickye com o seu post P&O - Coordenadas dos players

oque isso faz é pegar as coordenadas de todos os players do jogo inclusive a sua mas como eu posso fazer isso é simples

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:

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:

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:
if (Pos.x == 32.4353f && Pos.z == 3.54664f) 
            CamMov((float)-2.792527  ,(float)0.000000); 
Para mudar para a bomba caso queiram fazer em destruição utilizem o que avalia as armas em uma velocidade bem baixa assim vocês podem pegar a bomba cujo seu valor é 6 , sossegados
Quando chegar o local da bomba vocês podem utilizar o keybd_event para simular o mouse também.

https://badcheats.forumbrasil.net

Mensagem [Página 1 de 1]