Начинающий
			
			
				
					
				
			
		Начинающий
		- Статус
 - Оффлайн
 
- Регистрация
 - 21 Фев 2021
 
- Сообщения
 - 8
 
- Реакции
 - 0
 
В общем. по гайду дарвина делаю менюшку читиксов. но он юзает хук dx 9 , а у меня игра dx 11. от этого же разраба - kiero есть хук dx 11, но там нету эндсцены. т.е. я не могу никак сделать включение и отключение софта по бинду. только анлоад сумел по гайду сделать.
вот мой говно код:
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
				
			
	Пожалуйста, авторизуйтесь для просмотра ссылки.
вот мой говно код:
			
				C++:
			
		
		
		#include "includes.h"
#include "vars.h"
extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
Present oPresent;
HWND window = NULL;
WNDPROC oWndProc;
ID3D11Device* pDevice = NULL;
ID3D11DeviceContext* pContext = NULL;
ID3D11RenderTargetView* mainRenderTargetView;
void InitImGui()
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX11_Init(pDevice, pContext);
}
LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;
    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}
bool init = false;
bool openmenu = false;
static int tabb = 0;
HRESULT __stdcall hkPresent(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
{
    if (!init)
    {
        if (SUCCEEDED(pSwapChain->GetDevice(__uuidof(ID3D11Device), (void**)&pDevice)))
        {
            pDevice->GetImmediateContext(&pContext);
            DXGI_SWAP_CHAIN_DESC sd;
            pSwapChain->GetDesc(&sd);
            window = sd.OutputWindow;
            ID3D11Texture2D* pBackBuffer;
            pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
            pDevice->CreateRenderTargetView(pBackBuffer, NULL, &mainRenderTargetView);
            pBackBuffer->Release();
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWLP_WNDPROC, (LONG_PTR)WndProc);
            InitImGui();
            init = true;
               
        }
        else
            return oPresent(pSwapChain, SyncInterval, Flags);
       
       
    }
   
   
    if (GetAsyncKeyState(VK_F12))
    {
        kiero::shutdown();
    }
    if (GetAsyncKeyState(VK_F6) & 1)
    {
        openmenu = !openmenu;
    }
    // выгруз
    if (openmenu)
    {
        ImGui_ImplDX11_NewFrame();
        ImGui_ImplWin32_NewFrame();
        ImGui::NewFrame();
        // размер
        ImGui::SetWindowSize(ImVec2(400, 400));
        ImGui::JerryStyle();
        ImGui::Begin("Tom & Jerry");
        // Таблицы
        if (ImGui::Button("Aimbot", ImVec2(100.f, 0.f)))
        {
            tabb = 0;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Wallhack", ImVec2(100.f, 0.f)))
        {
            tabb = 1;
        }
        ImGui::SameLine(0.f, 2.f);
        if (ImGui::Button("Misc", ImVec2(100.f, 0.f)))
        {
            tabb = 2;
        }
        ImGui::SameLine(0.f, 2.f);
        // Чекбоксы к таблицам
        if (tabb == 0)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Legit", &Vars::Aimbot::legit);
            ImGui::Checkbox("Rage", &Vars::Aimbot::rage);
        }
        else if (tabb == 1)
        {
            ImGui::Spacing();
            ImGui::Checkbox("Visuals", &Vars::Wallhack::esp);
            ImGui::Checkbox("HealthBar", &Vars::Wallhack::healthbar);
            ImGui::Checkbox("Box", &Vars::Wallhack::box);
        }
        else if (tabb == 2)
        {
            ImGui::Spacing();
            ImGui::Button("Teleport", ImVec2(75.f, 0.f));
            ImGui::Checkbox("Spawn Ammo", &Vars::Misc::spawnerAmmo);
            ImGui::Checkbox("Spawn Veh", &Vars::Misc::spawnerVeh);
            ImGui::Checkbox("Change Bullet (in veh)", &Vars::Misc::changeCanon);
        }
    }
    ImGui::End();
    ImGui::Render();
    pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
    ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
    return oPresent(pSwapChain, SyncInterval, Flags);
}
    DWORD WINAPI MainThread(LPVOID lpReserved)
    {
        bool init_hook = false;
        do
        {
            if (kiero::init(kiero::RenderType::D3D11) == kiero::Status::Success)
            {
                kiero::bind(8, (void**)&oPresent, hkPresent);
                init_hook = true;
            }
        } while (!init_hook);
        return TRUE;
    }
BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}