- 1,045
- 476
Как исправить?Две выгрузки хука - не плохо
InitImGui() не вызываешьВот код main.cpp:
main.cpp:#include "includes.h" #ifdef _WIN64 #define GWL_WNDPROC GWLP_WNDPROC #endif extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9); static EndScene oEndScene = NULL; LPDIRECT3DDEVICE9 pDevice = nullptr; WNDPROC oWndProc; static HWND window = NULL; void InitImGui(LPDIRECT3DDEVICE9 pDevice) { ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic()); io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange; ImGui_ImplWin32_Init(window); ImGui_ImplDX9_Init(pDevice); } bool init = false; bool openmenu = false; long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) { // Unhook if (GetAsyncKeyState(VK_END)) { kiero::shutdown(); } // Open Menu if (GetAsyncKeyState(VK_HOME) & 1) { openmenu = !openmenu; } if (openmenu) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize; static int ttab; ImGui::Begin(("DarwinTap"), nullptr, flags); if (ImGui::Button((u8"Аимбот"), ImVec2(100.f, 0.f))) { ttab = 1; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Визуалы"), ImVec2(100.f, 0.f))) { ttab = 2; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Другое"), ImVec2(100.f, 0.f))) { ttab = 3; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Цвета"), ImVec2(100.f, 0.f))) { ttab = 4; } ImGui::End(); ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); } return oEndScene(pDevice); } 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 CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam) { DWORD wndProcId; GetWindowThreadProcessId(handle, &wndProcId); if (GetCurrentProcessId() != wndProcId) return TRUE; // skip to next window window = handle; return FALSE; // window found abort search } HWND GetProcessWindow() { window = NULL; EnumWindows(EnumWindowsCallback, NULL); return window; } DWORD WINAPI MainThread(LPVOID lpReserved) { bool attached = false; do { if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success) { kiero::bind(42, (void**)& oEndScene, hkEndScene); do window = GetProcessWindow(); while (window == NULL); oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc); attached = true; } } while (!attached); 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; }
Куда её вызывать?InitImGui() не вызываешь
Ты должен вызвать инициализацию imgui один раз, попробуй вызвать перед 109 строкойКуда её вызывать?
Не работает крашит и вообще не рисуется imguiТы должен вызвать инициализацию imgui один раз, попробуй вызвать перед 109 строкой
#include "includes.h"
#ifdef _WIN64
#define GWL_WNDPROC GWLP_WNDPROC
#endif
extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9);
static EndScene oEndScene = NULL;
LPDIRECT3DDEVICE9 pDevice = nullptr;
WNDPROC oWndProc;
static HWND window = NULL;
void InitImGui(LPDIRECT3DDEVICE9 pDevice)
{
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic());
io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
ImGui_ImplWin32_Init(window);
ImGui_ImplDX9_Init(pDevice);
}
bool init = false;
bool openmenu = false;
long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice)
{
// Unhook
if (GetAsyncKeyState(VK_END)) {
kiero::shutdown();
}
// Open Menu
if (GetAsyncKeyState(VK_HOME) & 1) {
openmenu = !openmenu;
}
if (openmenu) {
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize;
static int ttab;
ImGui::Begin(("DarwinTap"), nullptr, flags);
if (ImGui::Button((u8"Аимбот"), ImVec2(100.f, 0.f))) {
ttab = 1;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button((u8"Визуалы"), ImVec2(100.f, 0.f))) {
ttab = 2;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button((u8"Другое"), ImVec2(100.f, 0.f))) {
ttab = 3;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button((u8"Цвета"), ImVec2(100.f, 0.f))) {
ttab = 4;
}
ImGui::End();
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
return oEndScene(pDevice);
}
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 CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam)
{
DWORD wndProcId;
GetWindowThreadProcessId(handle, &wndProcId);
if (GetCurrentProcessId() != wndProcId)
return TRUE; // skip to next window
window = handle;
return FALSE; // window found abort search
}
HWND GetProcessWindow()
{
window = NULL;
EnumWindows(EnumWindowsCallback, NULL);
return window;
}
DWORD WINAPI MainThread(LPVOID lpReserved)
{
bool attached = false;
InitImGui(pDevice);
do
{
if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success)
{
kiero::bind(42, (void**)& oEndScene, hkEndScene);
do
window = GetProcessWindow();
while (window == NULL);
oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc);
attached = true;
}
} while (!attached);
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;
}
Учи язык, функцию надо вызывать в теле цыкла до условия if (kiero.. т.д)Не работает крашит и вообще не рисуется imgui
ву:#include "includes.h" #ifdef _WIN64 #define GWL_WNDPROC GWLP_WNDPROC #endif extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9); static EndScene oEndScene = NULL; LPDIRECT3DDEVICE9 pDevice = nullptr; WNDPROC oWndProc; static HWND window = NULL; void InitImGui(LPDIRECT3DDEVICE9 pDevice) { ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic()); io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange; ImGui_ImplWin32_Init(window); ImGui_ImplDX9_Init(pDevice); } bool init = false; bool openmenu = false; long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) { // Unhook if (GetAsyncKeyState(VK_END)) { kiero::shutdown(); } // Open Menu if (GetAsyncKeyState(VK_HOME) & 1) { openmenu = !openmenu; } if (openmenu) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize; static int ttab; ImGui::Begin(("DarwinTap"), nullptr, flags); if (ImGui::Button((u8"Аимбот"), ImVec2(100.f, 0.f))) { ttab = 1; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Визуалы"), ImVec2(100.f, 0.f))) { ttab = 2; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Другое"), ImVec2(100.f, 0.f))) { ttab = 3; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button((u8"Цвета"), ImVec2(100.f, 0.f))) { ttab = 4; } ImGui::End(); ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); } return oEndScene(pDevice); } 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 CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam) { DWORD wndProcId; GetWindowThreadProcessId(handle, &wndProcId); if (GetCurrentProcessId() != wndProcId) return TRUE; // skip to next window window = handle; return FALSE; // window found abort search } HWND GetProcessWindow() { window = NULL; EnumWindows(EnumWindowsCallback, NULL); return window; } DWORD WINAPI MainThread(LPVOID lpReserved) { bool attached = false; InitImGui(pDevice); do { if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success) { kiero::bind(42, (void**)& oEndScene, hkEndScene); do window = GetProcessWindow(); while (window == NULL); oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc); attached = true; } } while (!attached); 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; }
Я так уже делал тоже крашит.Учи язык, функцию надо вызывать в теле цыкла до условия if (kiero.. т.д)
Посмотреть вложение 144812
Если речь идёт про gta sa - удали собейт в виде d3d9.dll(или enb если есть и попробуй без этого файла в папке) , лично у меня после удаления сразу перестало крашить при инжекте dllки.Я так уже делал тоже крашит.
// main.h
#include "includes.h"
extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9);
static EndScene oEndScene = NULL;
typedef long(__stdcall* Reset)(LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*);
static Reset oReset = NULL;
typedef long(__stdcall* PresentScene)(IDirect3DDevice9*, const RECT*, const RECT*, HWND, const RGNDATA*);
static PresentScene oPresent = NULL;
static WNDPROC oWndProc = NULL;
void InitImGui(LPDIRECT3DDEVICE9 pDevice, HWND window)
{
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic());
io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
ImGui_ImplWin32_Init(window);
ImGui_ImplDX9_Init(pDevice);
// renderer::SetupStyle();
}
LRESULT CALLBACK hkWindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
if (ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam) > 0)
return 1L;
return ::CallWindowProcA(oWndProc, hwnd, uMsg, wParam, lParam);
}
long __stdcall hkPresent(IDirect3DDevice9* pDevice, const RECT* pSourceRect, const RECT* pDestRect, HWND hDestWindowOverride, const RGNDATA* pDirtyRegion)
{
if (!renderer::init) {
D3DDEVICE_CREATION_PARAMETERS params;
pDevice->GetCreationParameters(¶ms);
oWndProc = (WNDPROC)::SetWindowLongPtr((HWND)params.hFocusWindow, GWLP_WNDPROC, (LONG)hkWindowProc);
InitImGui(pDevice, params.hFocusWindow);
renderer::init = true;
}
// Unhook
if (GetAsyncKeyState(VK_END)) {
kiero::shutdown();
}
// Open Menu
if (GetAsyncKeyState(VK_HOME) & 1) {
renderer::Enabled = !renderer::Enabled;
}
if (renderer::Enabled) {
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize;
static int ttab = 0;
ImGui::Begin("DarwinTap", nullptr, flags);
if (ImGui::Button(u8"Аимбот", ImVec2(100.f, 0.f))) {
ttab = 1;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Визуалы", ImVec2(100.f, 0.f))) {
ttab = 2;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Другое", ImVec2(100.f, 0.f))) {
ttab = 3;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Цвета", ImVec2(100.f, 0.f))) {
ttab = 4;
}
ImGui::End();
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
return oPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
}
long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) {
if (!renderer::init)
{
D3DDEVICE_CREATION_PARAMETERS params;
pDevice->GetCreationParameters(¶ms);
oWndProc = (WNDPROC)::SetWindowLongPtr((HWND)params.hFocusWindow, GWLP_WNDPROC, (LONG)hkWindowProc);
InitImGui(pDevice, params.hFocusWindow);
renderer::init = true;
}
// Unhook
if (GetAsyncKeyState(VK_END)) {
kiero::shutdown();
}
// Open Menu
if (GetAsyncKeyState(VK_HOME) & 1) {
renderer::Enabled = !renderer::Enabled;
}
if (renderer::Enabled) {
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize;
static int ttab = 0;
ImGui::Begin("DarwinTap", nullptr, flags);
if (ImGui::Button(u8"Аимбот", ImVec2(100.f, 0.f))) {
ttab = 1;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Визуалы", ImVec2(100.f, 0.f))) {
ttab = 2;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Другое", ImVec2(100.f, 0.f))) {
ttab = 3;
}
ImGui::SameLine(0.f, 2.f);
if (ImGui::Button(u8"Цвета", ImVec2(100.f, 0.f))) {
ttab = 4;
}
ImGui::End();
ImGui::EndFrame();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
return oEndScene(pDevice);
}
long __stdcall hkReset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
ImGui_ImplDX9_InvalidateDeviceObjects();
long result = oReset(pDevice, pPresentationParameters);
ImGui_ImplDX9_CreateDeviceObjects();
return result;
}
int mainThread()
{
if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success)
{
kiero::bind(17, (void**)&oPresent, hkPresent);
//kiero::bind(42, (void**)&oEndScene, hkEndScene);
kiero::bind(16, (void**)&oReset, hkReset);
}
return 0;
}
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID)
{
switch(fdwReason){
case DLL_PROCESS_ATTACH: {
DisableThreadLibraryCalls(hInstance);
CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)mainThread, NULL, 0, NULL));
break;
}
case DLL_PROCESS_DETACH: {
renderer::init = false;
kiero::shutdown();
ImGui_ImplWin32_Shutdown();
ImGui_ImplDX9_Shutdown();
ImGui::DestroyContext();
break;
}
}
return TRUE;
}
Не работаетC++:long __stdcall hkEndScene( LPDIRECT3DDEVICE9 pDevice ) { static bool isInitializated{ false }; if ( !isInitializated ) { InitImGui( pDevice ); isInitializated = true; } // ... }
если есть кастомный d3d9.dll, то в файле нет паттерна с девайсом который все ищут + сам файл другого размера, поэтому крашит из-за access violation. чтобы это исправить, я каждый раз беру размер дллки и прохожусь по нему, а если не нахожу, то юзаю таблицу игры (с использованием которой чит видно при записи, но лучше так чем нерабочий плагин). вот решение то что я написал: https://gitlab.com/samp-plugins/ultrawh/-/blob/main/src/dx9.cpp#L9Если речь идёт про gta sa - удали собейт в виде d3d9.dll(или enb если есть и попробуй без этого файла в папке) , лично у меня после удаления сразу перестало крашить при инжекте dllки.
Посмотреть вложение 144833
C++:// main.h #include "includes.h" extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); typedef long(__stdcall* EndScene)(LPDIRECT3DDEVICE9); static EndScene oEndScene = NULL; typedef long(__stdcall* Reset)(LPDIRECT3DDEVICE9, D3DPRESENT_PARAMETERS*); static Reset oReset = NULL; typedef long(__stdcall* PresentScene)(IDirect3DDevice9*, const RECT*, const RECT*, HWND, const RGNDATA*); static PresentScene oPresent = NULL; static WNDPROC oWndProc = NULL; void InitImGui(LPDIRECT3DDEVICE9 pDevice, HWND window) { ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); io.Fonts->AddFontFromFileTTF(("C:\\Windows\\Fonts\\Arial.ttf"), 20, NULL, io.Fonts->GetGlyphRangesCyrillic()); io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange; ImGui_ImplWin32_Init(window); ImGui_ImplDX9_Init(pDevice); // renderer::SetupStyle(); } LRESULT CALLBACK hkWindowProc(_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam) { if (ImGui_ImplWin32_WndProcHandler(hwnd, uMsg, wParam, lParam) > 0) return 1L; return ::CallWindowProcA(oWndProc, hwnd, uMsg, wParam, lParam); } long __stdcall hkPresent(IDirect3DDevice9* pDevice, const RECT* pSourceRect, const RECT* pDestRect, HWND hDestWindowOverride, const RGNDATA* pDirtyRegion) { if (!renderer::init) { D3DDEVICE_CREATION_PARAMETERS params; pDevice->GetCreationParameters(¶ms); oWndProc = (WNDPROC)::SetWindowLongPtr((HWND)params.hFocusWindow, GWLP_WNDPROC, (LONG)hkWindowProc); InitImGui(pDevice, params.hFocusWindow); renderer::init = true; } // Unhook if (GetAsyncKeyState(VK_END)) { kiero::shutdown(); } // Open Menu if (GetAsyncKeyState(VK_HOME) & 1) { renderer::Enabled = !renderer::Enabled; } if (renderer::Enabled) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize; static int ttab = 0; ImGui::Begin("DarwinTap", nullptr, flags); if (ImGui::Button(u8"Аимбот", ImVec2(100.f, 0.f))) { ttab = 1; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Визуалы", ImVec2(100.f, 0.f))) { ttab = 2; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Другое", ImVec2(100.f, 0.f))) { ttab = 3; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Цвета", ImVec2(100.f, 0.f))) { ttab = 4; } ImGui::End(); ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); } return oPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion); } long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) { if (!renderer::init) { D3DDEVICE_CREATION_PARAMETERS params; pDevice->GetCreationParameters(¶ms); oWndProc = (WNDPROC)::SetWindowLongPtr((HWND)params.hFocusWindow, GWLP_WNDPROC, (LONG)hkWindowProc); InitImGui(pDevice, params.hFocusWindow); renderer::init = true; } // Unhook if (GetAsyncKeyState(VK_END)) { kiero::shutdown(); } // Open Menu if (GetAsyncKeyState(VK_HOME) & 1) { renderer::Enabled = !renderer::Enabled; } if (renderer::Enabled) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); auto flags = ImGuiConfigFlags_NoMouseCursorChange | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize; static int ttab = 0; ImGui::Begin("DarwinTap", nullptr, flags); if (ImGui::Button(u8"Аимбот", ImVec2(100.f, 0.f))) { ttab = 1; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Визуалы", ImVec2(100.f, 0.f))) { ttab = 2; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Другое", ImVec2(100.f, 0.f))) { ttab = 3; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button(u8"Цвета", ImVec2(100.f, 0.f))) { ttab = 4; } ImGui::End(); ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); } return oEndScene(pDevice); } long __stdcall hkReset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters) { ImGui_ImplDX9_InvalidateDeviceObjects(); long result = oReset(pDevice, pPresentationParameters); ImGui_ImplDX9_CreateDeviceObjects(); return result; } int mainThread() { if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success) { kiero::bind(17, (void**)&oPresent, hkPresent); //kiero::bind(42, (void**)&oEndScene, hkEndScene); kiero::bind(16, (void**)&oReset, hkReset); } return 0; } BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID) { switch(fdwReason){ case DLL_PROCESS_ATTACH: { DisableThreadLibraryCalls(hInstance); CloseHandle(CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)mainThread, NULL, 0, NULL)); break; } case DLL_PROCESS_DETACH: { renderer::init = false; kiero::shutdown(); ImGui_ImplWin32_Shutdown(); ImGui_ImplDX9_Shutdown(); ImGui::DestroyContext(); break; } } return TRUE; }
Добрый вечер,подскажите какой пакет использовать для drunklevel?
Всмысле какой пакет? Есть только рпсДобрый вечер,подскажите какой пакет использовать для drunklevel?
Если ты хочешь заменить уровень опьянения то вот код:Добрый вечер,подскажите какой пакет использовать для drunklevel?
void DrunkLevel(int PlayerID, float level)
{
RakNet::BitStream bs;
bs.Write<bool>(false);
bs.Write<WORD>(PlayerID);
bs.Write<float>(level);
rakhook::send_rpc(35, &bs, PacketPriority::HIGH_PRIORITY, PacketReliability::RELIABLE_ORDERED, 0u, false);
}
void main()
{
DrunkLevel(твой id, уровень опьянения); // вызов
}