Исходник fix tickbase manipulation

Skyle

Новичок
Сообщения
9
Реакции
7
C++:
void hooks::run_cmd( ... ) {.
    ticks_allowed = 14;
  
    // Нужно сделать резервную копию тикбазы и текущего времени, затем установить тикбазу игрока на tickbase_at_shot - shifted_ticks, также не забудь изменить текущее время. После этого вызовите исходный run_cmd и восстанови значения резервной копии.
    auto backup_cur_time = interfaces::globals->m_cur_time;
    auto backup_tick_base = player->get_tick_base( );
      
    if ( cmd->m_command == m_shot_command ) {
        interfaces::globals->m_cur_time = TICKS_TO_TIME( player->get_tick_base( ) );
        player->get_tick_base( ) -= shifted_ticks;
   }
  
    // Вызываем оригинал.
    original_run_cmd( ... );
  
    // Ресторим кур тайм и тикбейз.
    if ( cmd->m_command == m_shot_command ) {
        player->get_tick_base( ) = backup_tick_base;
        interfaces::globals->m_cur_time = backup_cur_time;
    }
}
 
Верх Низ