-
Автор темы
- #1
Всем привет, я сгенерил с помощью .proto файликов: cs_usercmd.pb, network_connection.pb, networkbasetypes.pb, usercmd.pb. Скомпилил protobuf либу, инклюднул в проект. Сам проект компилится, но хук отрабатывает 2 раза и крашит, пробовал просто baseUserCmd->add_subtick_moves();, без вызова .set методов, иногда все ок, указатели получаются (пробовал закидывать их адрес в reclass, действительно указатели на CSubtickMoveStep), а иногда может просто крашнуть, или крашнуть при выстреле/любом муве. baseUserCmd->subtick_moves().GetArena() возвращает nullptr. .proto файлики брал с
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad)
Код:
void hooks::CreateMove::CreateMove(CCSGOInput* pInput, int nSlot, CUserCmd* pCmd)
{
if (IsUninitialized)
return Original(pInput, nSlot, pCmd);
Original(pInput, nSlot, pCmd);
auto baseUserCmd = pCmd->csgoUserCmd.mutable_base();
baseUserCmd->clear_subtick_moves();
if (controller::entity::LocalPlayer->m_MoveType() == MOVETYPE_LADDER || controller::entity::LocalPlayer->m_MoveType() == MOVETYPE_NOCLIP)
return;
if (pCmd->nButtons.value & IN_JUMP)
return;
pCmd->nButtons.value &= ~IN_JUMP;
pCmd->nButtons.changed &= ~IN_JUMP;
pCmd->nButtons.scroll &= ~IN_JUMP;
if (controller::entity::LocalPlayer->m_fFlags() & FL_ONGROUND)
{
pCmd->nButtons.value |= IN_JUMP;
pCmd->nButtons.scroll |= IN_JUMP;
auto subtick_1 = baseUserCmd->add_subtick_moves();
subtick_1->set_button(IN_JUMP);
subtick_1->set_pressed(true);
subtick_1->set_when(0.999f);
auto subtick_2 = baseUserCmd->add_subtick_moves();
subtick_2->set_button(IN_JUMP);
subtick_2->set_pressed(false);
subtick_2->set_when(0.999f);
}
}