Исходник Fix bug with eye angles changes if local is freezed

Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
Ничего более адекватного не придумал, а баг распространенный.

В начало CreateMove
C++:
        // fix moving
        {
            static bool IsFrozen = false;
            static QAngle ViewAngles_old = { 0, 0, 0 };

            if (g_LocalPlayer->m_fFlags() == 321) // FL_FROZEN not works
            {
                if (!IsFrozen)
                {
                    IsFrozen = true;
                }
                else
                {
                    cmd->viewangles = ViewAngles_old;
                    return true;
                }
            }
            else
            {
                ViewAngles_old = cmd->viewangles;
                IsFrozen = false;
            }
        }

В LockCursor
C++:
if (g_LocalPlayer && (g_LocalPlayer->m_fFlags() == 321)) // FL_FROZEN not works
{
    Interfaces::Surface->UnlockCursor();
    return;
}
 
Пользователь
Статус
Оффлайн
Регистрация
11 Июн 2017
Сообщения
56
Реакции[?]
45
Поинты[?]
0
I'll try to check, it will be funny if everything is much simpler
obviously its waaaay simpler

Код:
bool __fastcall hooks::create_move_hk(void* ecx, void* edx, int input_sample_frametime, c_usercmd* cmd) {
    o_create_move(input_sample_frametime, cmd);  //<-------  this fixes mouse moves after match end, halftime etc etc..

    if (!cmd || !cmd->command_number)
        return o_create_move(input_sample_frametime, cmd);

    csgo::local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));

    if (!csgo::local_player)
        return o_create_move(input_sample_frametime, cmd);

   //do ur stuff here
   //aimbot::run(cmd); for example

   return false;
}
 
5 ночей на aim_ag_texture2
Эксперт
Статус
Оффлайн
Регистрация
6 Апр 2017
Сообщения
826
Реакции[?]
401
Поинты[?]
11K
obviously its waaaay simpler

Код:
bool __fastcall hooks::create_move_hk(void* ecx, void* edx, int input_sample_frametime, c_usercmd* cmd) {
    o_create_move(input_sample_frametime, cmd);  //<-------  this fixes mouse moves after match end, halftime etc etc..

    if (!cmd || !cmd->command_number)
        return o_create_move(input_sample_frametime, cmd);

    csgo::local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));

    if (!csgo::local_player)
        return o_create_move(input_sample_frametime, cmd);

   //do ur stuff here
   //aimbot::run(cmd); for example

   return false;
}
if createmove is being called from CInput::ExtraMouseSample then you will end up calling createmove twice (due to your cmd->command_number check)
if i were you i wouldve put
C++:
o_create_move(input_sample_frametime, cmd);  //<-------  this fixes mouse moves after match end, halftime etc etc..
after
C++:
if (!csgo::local_player)
        return o_create_move(input_sample_frametime, cmd);
even if i dont care enough to check if that will make a difference
 
f3mb0y
Участник
Статус
Оффлайн
Регистрация
14 Фев 2017
Сообщения
625
Реакции[?]
291
Поинты[?]
1K
кмон, все проще
Код:
if (pLocalPlayer->GetFlags() & FL_FROZEN)
    return oCreateMove(self, flInputSampleTime, pCmd);
И да, проверка типа == Тут не запашет. Юзаем побитовое &

#define FL_FROZEN (1<<6)
 
f3mb0y
Участник
Статус
Оффлайн
Регистрация
14 Фев 2017
Сообщения
625
Реакции[?]
291
Поинты[?]
1K
obviously its waaaay simpler

Код:
bool __fastcall hooks::create_move_hk(void* ecx, void* edx, int input_sample_frametime, c_usercmd* cmd) {
    o_create_move(input_sample_frametime, cmd);  //<-------  this fixes mouse moves after match end, halftime etc etc..

    if (!cmd || !cmd->command_number)
        return o_create_move(input_sample_frametime, cmd);

    csgo::local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));

    if (!csgo::local_player)
        return o_create_move(input_sample_frametime, cmd);

   //do ur stuff here
   //aimbot::run(cmd); for example

   return false;
}
lol call original cmove twice???
use just "return"
 
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
кмон, все проще
Код:
if (pLocalPlayer->GetFlags() & FL_FROZEN)
    return oCreateMove(self, flInputSampleTime, pCmd);
И да, проверка типа == Тут не запашет. Юзаем побитовое &

#define FL_FROZEN (1<<6)
Так вот почему FL_FROZEN не работал :NotLikeThis:
1570518797660.png

Я так изначально и делал, но прокатило лишь через ==
 
Сверху Снизу