Кодинг Аим'а Не Мое Но Вдруг Пригодится)

Тема в разделе "Гайды и тактика", создана пользователем (ХхX), 2 фев 2013.

  1. (ХхX)

    (ХхX) New Member

    Репутация:
    0
    Регистрация:
    1 фев 2013
    Сообщения:
    164
    Симпатии:
    0
    АВТОР : Dimedrol1536

    Сливаю исхордный код АИМа. Связано это с массовым сливом. Каждый второй удтверждает, что он его сам написал.

    И так начнём:

    Структура

    Создаём файл MainClass.h, подключаем его к проэкту



    код

    #include <Windows.h>

    #include <d3d9.h>

    #include <d3dx9.h>

    #pragma comment (lib, "d3dx9.lib")

    #pragma comment (lib, "d3d9.lib")



    class CPlayer;

    class CChara;

    class CRenderData;

    class CRenderContext;

    class CVisible;

    class CGameBase;

    class CBonesContext;

    class CBone;



    class CPlayer

    {

    public:

    BYTE IsLife;

    char Unk[79];

    D3DXVECTOR2 Cross;

    D3DXVECTOR3 Pos;

    };



    class CChara

    {

    public:

    BYTE Number;

    };



    class CRenderData

    {

    public:

    CRenderContext* RenderData;

    };



    class CRenderContext

    {

    public:

    char Unk[2000];

    D3DXMATRIX ViewMatrix;

    D3DXMATRIX ProjectMatrix;

    D3DXMATRIX WorldMatrix;

    };



    class CVisible

    {

    public:

    char Unk[0x628];

    bool Visible;

    };



    class CGameBase

    {

    public:

    char Unk[0x268];

    CBonesContext* Bones;

    };



    class CBonesContext

    {

    public:

    char Unk[0xB8];

    CBone* BoneData;

    };



    class CBone

    {

    public:

    D3DXMATRIX BoneMatrix;

    };

    Тоже очень нужное

    Теперь переходим в главный файл.

    Код:

    bool WorldToScreen(D3DXVECTOR3 inpos, D3DXVECTOR3 &outpos, LPDIRECT3DDEVICE9 pDevice)

    {

    DWORD dwRenderData = (DWORD)GetModuleHandleA("i3GfxDx.dll") + 0x18B0D4;

    CRenderData* RenderData = (CRenderData*)(dwRenderData);



    D3DXMATRIX identity;

    D3DXVECTOR3 vScreen;



    D3DVIEWPORT9 g_ViewPort;

    pDevice->GetViewport(&g_ViewPort);

    g_ViewPort.X = g_ViewPort.Y = 0;

    g_ViewPort.MinZ = 0;

    g_ViewPort.MaxZ = 1;

    D3DXVec3Project(&vScreen, &inpos, &g_ViewPort,

    &RenderData->RenderData->ProjectMatrix,

    &RenderData->RenderData->ViewMatrix,

    &RenderData->RenderData->WorldMatrix);



    if (vScren.z < 1.0f && vScren.x > 0.0f && vScren.y > 0.0f && vScren.x < g_ViewPort.Width && vScren.y < g_ViewPort.Height)

    {

    outpos.x = vScren.x;

    outpos.y = vScren.y;

    outpos.z = vScren.z;



    return true;

    }



    return false;

    }



    int GetCharaIndex( )

    {

    DWORD dwGameContext = *(DWORD*)0x00AA39C8;



    CChara* User = (CChara*)(dwGameContext + 0x4E18);



    return User->Number;

    }



    bool GetUserLife( int Idx )

    {

    DWORD dwGameContext = *(DWORD*)0x00AA39C8;



    CPlayer* User = (CPlayer*)((dwGameContext + 0x6120) + 0x11B4 * Idx);



    return User->IsLife;

    }



    D3DXVECTOR3 GetUserVector( int Idx )

    {

    DWORD dwGameContext = *(DWORD*)0x00AA39C8;



    CPlayer* User = (CPlayer*)((dwGameContext + 0x6120) + 0x11B4 * Idx);



    return User->Pos;

    }



    bool GetVisible( int Idx )

    {

    DWORD dwGameBase = *(DWORD*)0x00AA3994;



    if ( dwGameBase )

    {

    CVisible* VisibleCheck = (CVisible*)( *(DWORD*)(dwGameBase + 0x68 + ( 0x4 * Idx ) ) );



    return VisibleCheck->Visible;

    }



    return false;

    }



    bool GetUserBone( D3DXVECTOR3 &Out, int Idx, int BoneIdx )

    {

    DWORD dwGameBase = *(DWORD*)0x00AA3994;



    if ( dwGameBase )

    {

    CGameBase* GameBase = (CGameBase*)( *(DWORD*)(dwGameBase + 0x68 + ( 0x4 * Idx ) ) );



    if ( GameBase && GameBase->Bones )

    {

    Out.x = GameBase->Bones->BoneData[ BoneIdx ].BoneMatrix._41;

    Out.y = GameBase->Bones->BoneData[ BoneIdx ].BoneMatrix._42;

    Out.z = GameBase->Bones->BoneData[ BoneIdx ].BoneMatrix._43;



    return true;

    }

    }



    return false;

    }



    DWORD dwEnd = 0x0062FF0D;

    DWORD dwReturnEnd = dwEnd + 7;

    float fX = 10.0f, fY = 10.0f, fZ = 10.0f;

    DWORD dwTempEcx, dwTempEbx;

    bool EndEnable;



    _declspec( naked ) void End( )

    {

    if ( EndEnable )

    {

    _asm

    {

    mov [dwTempEcx], ecx;

    mov [dwTempEbx], ebx;



    mov ecx, [ebp+0x0C];



    mov ebx, [fX];

    mov [ecx], ebx;



    mov ebx, [fY];

    mov [ecx+0x08], ebx;



    mov ebx, [fZ];

    mov [ecx+0x08], ebx;



    mov ecx, [dwTempEcx];

    mov ebx, [dwTempEbx];

    }

    }



    _asm

    {

    mov eax, [ebp+0x08];

    push eax;

    mov ecx, [ebp-0x1C];



    jmp dwReturnEnd;

    }

    }



    float CalcDistance( D3DXVECTOR3 VecA, D3DXVECTOR3 VecB )

    {

    return sqrt( ( ( VecA.x - VecB.x ) * ( VecA.x - VecB.x ) ) +

    ( ( VecA.y - VecB.y ) * ( VecA.y - VecB.y ) ) +

    ( ( VecA.z - VecB.z ) * ( VecA.z - VecB.z ) ) );

    }



    int GetPriorityTarget( )

    {

    int Result = -1;

    float fMaxDistance = 1000.0f;



    for ( int a = 0; a < 16; a++ )

    {

    if ( !GetUserLife( a ) && GetCharaIndex( ) != a )

    {

    D3DXVECTOR3 Head;



    if ( GetCharaIndex( ) %2 != a % 2 && GetUserBone( Head, a, 7 ) )

    {

    if ( CalcDistance( GetUserVector( GetCharaIndex( ) ), GetUserVector( a ) ) < fMaxDistance )

    {

    fMaxDistance = CalcDistance( GetUserVector( GetCharaIndex( ) ), GetUserVector( a ) ) < fMaxDistance;

    Result = a;

    }

    }

    }

    }



    return Result;

    }

    Функция

    В EndScene вставляем

    Код:

    int Priority = GetPriorityTarget( );

    if ( название функции )//Тут мы рисуем кости

    {

    for ( int n = 0; n < 16; n++ )

    {

    for ( int y = 0; y < 16; y++ )

    {

    D3DXVECTOR3 OnScreen, OnWorld;



    if ( GetUserBone( OnWorld, n, y ) )

    {

    if ( WorldToScreen( OnWorld, OnScreen, pDevice ) )

    {

    DrawBox( (int)OnScreen.x-3, (int)OnScreen.y-3, 5, 5, цвет костей, pDevice );

    }

    }

    }

    }

    }



    if(название функции)//Тут наводим на голову

    {

    if ( Priority != -1 )

    {

    D3DXVECTOR3 OnScreen, OnWorld;

    if ( DxESP->GetUserBone( OnWorld, Priority, 7 ) )

    {

    fX = OnWorld.x;

    fY = OnWorld.y;

    fZ = OnWorld.z;

    if ( DxESP->WorldToScreen( OnWorld, OnScreen, pDevice ) )

    {

    DrawBox( OnScreen.x-3, OnScreen.y-3, 5, 5, GREEN, pDevice );

    }

    }

    }



    }



    if(GetAsyncKeyState(VK_CONTROL))// При зажатии какой кнопки будет захват цели.

    {EndEnable = true;}else{EndEnable = false;}

    }

    DetourCreate((PBYTE)dwEnd, (PBYTE)End, 7);//AIM

    Вот сообственно и всё.
     

Поделиться этой страницей