Ir para conteúdo
  • Anúncio

Posts Recomendados

  • Define
  • Introdução

    Aqui uma função que substitui o FLY. Assim você consegue controlar o quanto quer subir!
    Melhorem ela pois fiz a um certo tempo e já notei que tem muito para melhorar.

    Os endereços atuais no CA CLASSIC são: 

    #define ADDRESS_GAMECLIENTSHELL										0x37CE98B8
    #define ADDRESS_CLIENTFX										0x6BF34

    Os endereços atuais no CA Brasil são:

    #define ADDRESS_GAMECLIENTSHELL										0x37C7C9D0
    #define ADDRESS_CLIENTFX										0x6CF34

    Função

    O offset: 0xCC trata a posição Z do personagem.

    /* -------------------------------------------------------
    //////////////////// CODEBUILDING.ORG ////////////////////
    	Função por define: youtube.com/definecs
    	       Smoll por checar a source
    	     Devecchi por ajudar nos testes
    //////////////////// CODEBUILDING.ORG ////////////////////
    	     DESENVOLVENDO NOVOS ALGORITIMOS
    -------------------------------------------------------*/
    
    
    // dllmain.cpp : Defines the entry point for the DLL application.
    
    #define ADDRESS_CLIENTFX 0x0
    #define ADDRESS_GAMECLIENTSHELL 0x0
    
    float PosPlayer(unsigned int pPlayer) {
        float PosZ = *(float*)(pPlayer + 0xCC);
        return PosZ;
    }
    float WritePos(unsigned int pPlayer, float PosZ) {
        *(float*)(pPlayer + 0xCC) += PosZ;
        return TRUE;
    }
    int __stdcall FunctionRoutine() {
        unsigned int AddrPlayer = *(DWORD*)((DWORD)GetModuleHandle("ClientFX.fxd") + ADDRESS_CLIENTFX);
        float i = 0;
        while (true) {
            if (GetAsyncKeyState(VK_LCONTROL) < 0) {
                i = 0;
                i += 1.5f;
                *(FLOAT*)(*(DWORD*)(*(DWORD*)((ADDRESS_GAMECLIENTSHELL)+0xE4) + 0x10) + 0xB8) = 0;
                WritePos(AddrPlayer, i);
            }
            if (GetAsyncKeyState(VK_LSHIFT) < 0) {
                i = 0;
                i -= 1.5f;
                WritePos(AddrPlayer, i);
            }
            if (GetAsyncKeyState(VK_TAB)) {
                *(FLOAT*)(*(DWORD*)(*(DWORD*)((ADDRESS_GAMECLIENTSHELL)+0xE4) + 0x10) + 0xB8) = -1100;
            }
            *(float*)(AddrPlayer + 0xCC) = PosPlayer(AddrPlayer);
            //cout << PosPlayer(AddrPlayer) << endl;
            Sleep(1);
        }
        return 0;
    }

    Créditos

    Define por escrever do meu jeito!

    FpsAnarchy pelo nome da função!

    • Curtir 3

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • flashbang
  • Ótimo tópico de postagens sobre pegar endereços de funções.

    Pra pegar as adress do CA, tem como pelo odb?

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Cloose
  • Ótimo Tutorial, só corrija o Vídeo que está indisponível.

    Obrigado por compartilha esse tutorial com a Comunidade.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • VeryCrazy
  • Já existe uma função similar a essa, se chama "GhostMod"

     

    #define ADDR_PLAYERMANAGER     		0x37CE9CDC //CA Latino
    cPlayerMgr*			pPlayerManager;
    
    pPlayerManagere	= (cPlayerMgr*)ADDR_PLAYERMANAGER ;
    VOID SetLocalPlayer(D3DXVECTOR3 Pos)
    {
    	DWORD dwClass = *(DWORD*)((DWORD)GetModuleHandle("ClientFX.fxd") + ADDR_CLIENTFX);
    	if (dwClass == NULL)
    		return;	
    		*(float*)(dwClass + 0xC8) = Pos.x;
    		*(float*)(dwClass + 0xCC) = Pos.y;
    		*(float*)(dwClass + 0xD0) = Pos.z;
    }
    class cPlayerMgr
    {
    public:
    	char _0x0000[16];
    	pJogadorInfo* cJogadorInfo; //0x0010 
    	char _0x0014[4];
    	cClientWeaponMgr* WeaponMgr; //0x0018 
    	char _0x001C[56];
    	float Pitch; //0x0054 
    	float Yaw; //0x0058 
    	float Roll; //0x005C 
    	char _0x0060[220];
    	__int32 * CameraObject; //0x013C 
    	char _0x0140[128];
    
    };//Size=0x01C0
    
    D3DXVECTOR3 Pos;
    void Ghostmode()
    {
    	float PlayerPitch, PlayerYaw;
    	bool Forward, Backward, Left, Right;
    	PlayerPitch = pPlayerManager->Pitch;
    	PlayerYaw = pPlayerManager->Yaw;
    	Forward = (GetAsyncKeyState('W') & 0x8000) != 0;
    	Backward = (GetAsyncKeyState('S') & 0x8000) != 0;
    	Left = (GetAsyncKeyState('A') & 0x8000) != 0;
    	Right = (GetAsyncKeyState('D') & 0x8000) != 0;
    	if (Forward || Backward || Left || Right){
    		if (Forward || Backward){
    			float Sign = (Forward ? 1.0f : -1.0f);
    			Pos.x += Sign * 5.0f * sinf(PlayerYaw);
    			Pos.y += Sign * 5.0f * sinf(-PlayerPitch);
    			Pos.z += Sign * 5.0f * cosf(PlayerYaw);		
    		}
    		if (Left){
    			Pos.x += 5.0f * sinf(PlayerYaw - (M_PI / 2.0f));
    			Pos.y += 0;
    			Pos.z += 5.0f * cosf(PlayerYaw - (M_PI / 2.0f));
    		}
    		if (Right){
    			Pos.x += 5.0f * sinf(PlayerYaw + (M_PI / 2.0f));
    			Pos.y += 0;
    			Pos.z += 5.0f * cosf(PlayerYaw + (M_PI / 2.0f));
    		}
    	}
    	SetLocalPlayer(D3DXVECTOR3(Pos.x, Pos.y, Pos.z));
    }

     

    Editado por ImperioCheats

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Define
  • Em 14/11/2018 em 20:52, flashbang disse:

    Ótimo tópico de postagens sobre pegar endereços de funções.

    Pra pegar as adress do CA, tem como pelo odb?

    Eu recomendo IDA. Você pode anexar o pdb do módulo.

    Em 14/11/2018 em 22:07, Joker disse:

    Ótimo post, que pena que o vídeo está OFF:10ETH:

    Meu canal foi deletado em conjunto com outros canais de gamehacking.

    Em 15/11/2018 em 17:43, Popovik disse:

    @Define corrija o vídeo ai por favor,.

    Resposta acima.

    Em 15/11/2018 em 18:23, MARCOS disse:

     Muito bom o tópico , mas o video ta indisponivel.

    Resposta acima.

    Em 15/11/2018 em 18:25, Cloose disse:

    Ótimo Tutorial, só corrija o Vídeo que está indisponível.

    Obrigado por compartilha esse tutorial com a Comunidade.

    Resposta acima.

    22 horas atrás, FAIXA PRETA disse:

    video não esta mais no AR

    Resposta acima.

    2 horas atrás, ImperioCheats disse:

    Já existe uma função similar a essa, se chama "GhostMod"

     

    #define ADDR_PLAYERMANAGER     		0x37CE9CDC //CA Latino
    cPlayerMgr*			pPlayerManager;
    
    pPlayerManagere	= (cPlayerMgr*)ADDR_PLAYERMANAGER ;
    VOID SetLocalPlayer(D3DXVECTOR3 Pos)
    {
    	DWORD dwClass = *(DWORD*)((DWORD)GetModuleHandle("ClientFX.fxd") + ADDR_CLIENTFX);
    	if (dwClass == NULL)
    		return;	
    		*(float*)(dwClass + 0xC8) = Pos.x;
    		*(float*)(dwClass + 0xCC) = Pos.y;
    		*(float*)(dwClass + 0xD0) = Pos.z;
    }
    class cPlayerMgr
    {
    public:
    	char _0x0000[16];
    	pJogadorInfo* cJogadorInfo; //0x0010 
    	char _0x0014[4];
    	cClientWeaponMgr* WeaponMgr; //0x0018 
    	char _0x001C[56];
    	float Pitch; //0x0054 
    	float Yaw; //0x0058 
    	float Roll; //0x005C 
    	char _0x0060[220];
    	__int32 * CameraObject; //0x013C 
    	char _0x0140[128];
    
    };//Size=0x01C0
    
    D3DXVECTOR3 Pos;
    void Ghostmode()
    {
    	float PlayerPitch, PlayerYaw;
    	bool Forward, Backward, Left, Right;
    	PlayerPitch = pPlayerManager->Pitch;
    	PlayerYaw = pPlayerManager->Yaw;
    	Forward = (GetAsyncKeyState('W') & 0x8000) != 0;
    	Backward = (GetAsyncKeyState('S') & 0x8000) != 0;
    	Left = (GetAsyncKeyState('A') & 0x8000) != 0;
    	Right = (GetAsyncKeyState('D') & 0x8000) != 0;
    	if (Forward || Backward || Left || Right){
    		if (Forward || Backward){
    			float Sign = (Forward ? 1.0f : -1.0f);
    			Pos.x += Sign * 5.0f * sinf(PlayerYaw);
    			Pos.y += Sign * 5.0f * sinf(-PlayerPitch);
    			Pos.z += Sign * 5.0f * cosf(PlayerYaw);		
    		}
    		if (Left){
    			Pos.x += 5.0f * sinf(PlayerYaw - (M_PI / 2.0f));
    			Pos.y += 0;
    			Pos.z += 5.0f * cosf(PlayerYaw - (M_PI / 2.0f));
    		}
    		if (Right){
    			Pos.x += 5.0f * sinf(PlayerYaw + (M_PI / 2.0f));
    			Pos.y += 0;
    			Pos.z += 5.0f * cosf(PlayerYaw + (M_PI / 2.0f));
    		}
    	}
    	SetLocalPlayer(D3DXVECTOR3(Pos.x, Pos.y, Pos.z));
    }

     

    A idéia da função que escrevi é otimizar o uso de cpu, falando a real quando escrevi está função eu estava estudando a alocação de memória. Portanto o uso de constantes (existe otimização em constantes pois são imutáveis) não foi bem utilizado, alias o código em si ficou simples e daria para otimizar mais. Utilizando este método você seta somente o eixo Z do personagem, assim dispensa o uso de um vec3, no caso o ghostmode usa o d3dxvector3 que é a mesma coisa que:

    struct vec3{
      float x,y,z;
    };

     Unica falha deste código acima é que se você estiver andando e setar com um incremento baixo você continua sendo incrementado devido a gravidade estar 0.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • VeryCrazy
  • Em 19/11/2018 em 17:28, Define disse:

    Eu recomendo IDA. Você pode anexar o pdb do módulo.

    Meu canal foi deletado em conjunto com outros canais de gamehacking.

    Resposta acima.

    Resposta acima.

    Resposta acima.

    Resposta acima.

    A idéia da função que escrevi é otimizar o uso de cpu, falando a real quando escrevi está função eu estava estudando a alocação de memória. Portanto o uso de constantes (existe otimização em constantes pois são imutáveis) não foi bem utilizado, alias o código em si ficou simples e daria para otimizar mais. Utilizando este método você seta somente o eixo Z do personagem, assim dispensa o uso de um vec3, no caso o ghostmode usa o d3dxvector3 que é a mesma coisa que:

    struct vec3{
      float x,y,z;
    };

     Unica falha deste código acima é que se você estiver andando e setar com um incremento baixo você continua sendo incrementado devido a gravidade estar 0.

    Legal, mas pra quem tava querendo otimizar o uso da CPU um loop ñ é aconselhável e daria pra fazer a mesma função com menor quantidade de linha de códigos.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Criar uma conta

    Crie uma nova conta em nossa comunidade. É fácil!

    Crie uma nova conta

    Entrar

    Já tem uma conta? Faça o login.

    Entrar Agora

    • Quem Está Navegando   0 membros estão online

      Nenhum usuário registrado visualizando esta página.

    • Clique nos anúncios para ajudar a manter o fórum online. Nossa equipe agradece!

    ×