Вопрос Как добавить хук в лв? (vfunc_hook)

Начинающий
Статус
Оффлайн
Регистрация
20 Май 2020
Сообщения
67
Реакции[?]
13
Поинты[?]
0
покажи определение этой функции
там у всех хуков есть только
vmthook* engine_sound_hook;
внутри
namespace hooks в файде hooks.cpp
и
extern vmthook* engine_sound_hook;
внутри hooks.hpp

это объявление функции, как я понимаю, и я создал engine_sound_hook копируя engine_hook, хз нужно ли было, сейчас попробовал вернуться к обычному engine_hook но всё равно не работает

определения как такого нет, т.к. я не нашёл его у других %функция%_hook, но оно есть у hooked_enginesound, и оно именно такое, да


Вот у этих
hooks::engine_hook = new vmthook(reinterpret_cast<DWORD**>(m_enginesound()));
hooks::engine_hook->hook_function(reinterpret_cast<uintptr_t>(hooks::hooked_enginesound), 5);
двух строчек внутри main.cpp пишет ошибку, что namespace hooks не содержит hooked_enginesound но проблема в том, что оно не содержит и все отсальные встроенные в легендвар хуки, которые прописанны в отдельных файлах и работают

Оооокей, я понял что нужно добавить строчку
Код:
    void __stdcall hooked_enginesound(void* filter, int entityIndex, int channel, const char* soundEntry, unsigned int soundEntryHash, const char* sample, float volume, int seed, int soundLevel, int flags, int pitch, Vector origin, Vector direction, void* utlVecOrigins, bool updatePositions, float soundtime, int speakerentity, void* soundParams)
в hooks.cpp чтобы увидело hooked_enginesound.cpp
я все свои тупняки буду писать сюда для будущих пастеров, и для самого себя, хах

теперь оно видит hooked_enginesound, но крашит

закомментил hooks::engine_hook->hook_function(reinterpret_cast<uintptr_t>(hooks::hooked_enginesound), 5); и перестало, значит дело где-то в нём, вероятно
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
20 Май 2020
Сообщения
67
Реакции[?]
13
Поинты[?]
0
void __stdcall engine_sound_hook(void* filter, int entityIndex, int channel, const char* soundEntry,unsigned int soundEntryHash, const char* sample, float volume, int seed, int soundLevel, int flags, int pitch, Vector origin, Vector direction, void* utlVecOrigins, bool updatePositions, float soundtime, int speakerentity, void* soundParams)
{
static auto original_fn = engine_hook->get_func_address<EmitSound_t>(5);
// твой код
original_fn(filter, entityIndex, channel, soundEntry, soundEntryHash, sample, volume, seed, soundLevel, flags, pitch, origin, direction, utlVecOrigins, updatePositions, soundtime, speakerentity, soundParams);
}[/CODE]
а что за original_fn?
у меня такой функции нет, скомпилил без неё, и без кода внутри hooked_enginesound(тупо пустые{} скобочки) крашит
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
а что за original_fn?
у меня такой функции нет, скомпилил без неё, и без кода внутри hooked_enginesound(тупо пустые{} скобочки) крашит
вызов оригинальной функции
 
Последнее редактирование:
Сверху Снизу