Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
(а так же не забываем эту функцию, еще пригодится)
5. Точно так же достаем ее сигнатуру (идентично шагу 3)
6. Суем код этой функции себе в чит (если, конечно, делать нечего как мне. Проще будет просто сделать сигнатуру этой функции и сунуть себе в читло, а далее вызывать)
А теперь самое интересное:
C++:
// wndproc
// определяем m_bEnabled как референс
static auto& enabled = sig_scan("redacted", "redacted").get<bool>();
// выполняем wndproc меню, если имгуи то будет что-то похожее
// обязательно нужно тут инвертировать результат, дабы игра не реагировала на кнопки
enabled = !ImGui_ImplWin32_WndProc(msg, wparam, lparam);
// далее, проверяем тип смски
if (msg == WM_KEYDOWN || msg == WM_KEYUP)
{
// получаем binding нашей супер-кнопки
const auto binding = sdk::engine_client->binding_for_key(sdk::virtual_key_to_button_code(wparam));
// проверяем, есть ли такой биндинг
if (binding)
{
// хешируем любым удобным способом, либо по-старинке if-else сравниваем строку
// а затем чекаем бинды
switch (util::fnv1a(binding))
{
case FNV("+forward"):
case FNV("+back"):
case FNV("+moveleft"):
case FNV("+moveright"):
case FNV("+jump"):
case FNV("+duck"):
case FNV("+walk"):
// включаем обратно инпут у игры
enabled = true;
break;
}
}
}
// и уже после всех этих нехитрых манипуляций, вызываем ориг функцию
return HK_ORIG(dx_wnd_proc, wnd, msg, wparam, lparam);
И вот таким нехитрым способом ваш уровень программирование возрастет на 5 единиц.
Сигнатуры не прикрепляю, найти их крайне просто.