-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделал для чайников
Итак приступим.
1) Нам нужно зайти в hooks.hpp и заменить индекс крейтмува с 24 на 22
2) создаем в namespace Hooks после hkFrameStageNotify (на самом то деле не важно, просто так удобнее)
3) Можно будет закоментить void __stdcall hkCreateMove. Он нам дальше не потребуется
4) Заходим в hooks.cpp и находим в namespace Hooks
void Initialize( ) и создаем там ( Если есть то пропускаем данный пункт )
5) Листаем чуть ниже и видим
6) Ниже него должен хукаться крейтмув
Мы заменяем полностью строку на
7) Листаем до hkCreateMove и изменяем первые строки на эти
если у вас выдало ошибки после return, то просто коментим что после них идет в этой строке и добавляем после return точку с запятой ";"
7) Листаем в самый низ крейтмува и видим return false;
Мы его должны заменить на
8) После того как мы закончили с основным крейтмувом мы создаем функцию hkCreateMove_Proxy
9) Если у вас выдало ошибки связанные с send_packet мы заменяем их на bSendPacket, если у нас опять выдало ошибку на bSendPacket, то заменяем bSendPacket на строке, где выдало ошибку на *send_packet.
Вроде все правильно расписал, не бейте тапками. Если найдете какие-то ошибки, то отпишите в теме я добавлю это в свою тему.
Если все получилось, то поздравляю, вы теперь соуфив
Итак приступим.
1) Нам нужно зайти в hooks.hpp и заменить индекс крейтмува с 24 на 22
2) создаем в namespace Hooks после hkFrameStageNotify (на самом то деле не важно, просто так удобнее)
C++:
void __fastcall hkCreateMove_Proxy(void* _this, int, int sequence_number, float input_sample_frametime, bool active);
4) Заходим в hooks.cpp и находим в namespace Hooks
void Initialize( ) и создаем там ( Если есть то пропускаем данный пункт )
C++:
hlclient_hook.setup(g_CHLClient);
C++:
hlclient_hook.hook_index( index::FrameStageNotify, hkFrameStageNotify);
Мы заменяем полностью строку на
C++:
hlclient_hook.hook_index( index::CreateMove, hkCreateMove_Proxy);
Код:
void __stdcall hkCreateMove( int sequence_number, float input_sample_frametime, bool active, bool& bSendPacket ) {
static auto oCreateMove = hlclient_hook.get_original<decltype(&hkCreateMove_Proxy)>(index::CreateMove);
oCreateMove(g_CHLClient, 0, sequence_number, input_sample_frametime, active);
auto cmd = g_Input->GetUserCmd(sequence_number);
auto verified = g_Input->GetVerifiedCmd(sequence_number);
if (!cmd || !cmd->command_number)
return;
CUserCmd* dddcmd = nullptr;
dddcmd = cmd;
7) Листаем в самый низ крейтмува и видим return false;
Мы его должны заменить на
Код:
verified->m_cmd = *cmd;
verified->m_crc = cmd->GetChecksum();
Код:
__declspec(naked) void __fastcall hkCreateMove_Proxy(void* _this, int, int sequence_number, float input_sample_frametime, bool active)
{
__asm
{
push ebp
mov ebp, esp
push ebx;
push esp
push dword ptr[active]
push dword ptr[input_sample_frametime]
push dword ptr[sequence_number]
call hkCreateMove
pop ebx
pop ebp
retn 0Ch
}
}
Вроде все правильно расписал, не бейте тапками. Если найдете какие-то ошибки, то отпишите в теме я добавлю это в свою тему.
Если все получилось, то поздравляю, вы теперь соуфив