- 352
- 193
Всем привет пытаюсь изменить текст диалога который открывается через F1, но в игре возникает ошибка. Возможно, я что-то упускаю или делаю неправильно. Буду благодарен за любую помощь и советы.
ставлю хук на call ShowDialog внутри функции CHelpDialog::Show
hook:
using CDialog__Show = void(__thiscall *)(void*, void*, int, int, int, const char*, const char*, const char*, const char*, bool);
kthook::kthook_simple<CDialog__Show>CDialog__Show_Hook;
void customhook() {
SampDLL = reinterpret_cast<uintptr_t>(GetModuleHandle("samp.dll"));
CDialog__Show_Hook.set_dest(SampDLL + 0x6B3E7);
CDialog__Show_Hook.set_cb([](const decltype(CDialog__Show_Hook)& hook, void* pDialog, void* EDX, int a2, int nId, int nType, const char* Source, const char* szText, const char* szLeftButton, const char* szRightButton, bool bServerside) {
Source = "custom text";
return hook.get_trampoline()(pDialog, EDX, a2, nId, nType, Source, szText, szLeftButton, szRightButton, bServerside);
});
CDialog__Show_Hook.install();
}
ставлю хук на call ShowDialog внутри функции CHelpDialog::Show