-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вызывать в ранкоманде до вызова оригинала
этот код фиксит некоторое things with revolver если ur fps < tick rate сервера.. вооот
этот код фиксит некоторое things with revolver если ur fps < tick rate сервера.. вооот
C++:
void c_prediction::calc_postpone_fire_ready_time( c_cs_player* player, c_user_cmd* cmd ) {
globals::m_weapon_data.m_revolver.at( cmd->m_command_number % 150 ) = {
player->get_tick_base( ), cmd->m_buttons & ( in_attack | in_attack2 ),
player->can_shoot( true, false )
};
const auto weapon = player->get_active_weapon( );
if ( !weapon )
return;
weapon->get_postpone_fire_ready_time( ) = std::numeric_limits< float >::max( );
if ( weapon->get_item_definition_index( ) != 64 )
return;
const auto max_cmds = globals::tick_rate / 2;
if ( max_cmds <= 1 )
return;
auto v27 = 0;
auto v15 = cmd->m_number - 1;
for ( auto i = 1u; i < max_cmds; ++i ) {
v27 = v15;
if ( !std::get< 2u >( globals::m_weapon_data.m_revolver.at( v15 % 150 ) )
|| !std::get< 1u >( globals::m_weapon_data.m_revolver.at( v15 % 150 ) ) )
break;
--v15;
}
if ( !v27 )
return;
const auto v17 = 1 + static_cast< int >( 0.03348f / interfaces::m_global_vars->m_interval_per_tick );
if ( cmd->m_command_number - v27 < v17 )
return;
weapon->get_postpone_fire_ready_time( ) = game::ticks_to_time( std::get< 0u >( globals::m_weapon_data.m_revolver.at( ( v27 + v17 ) % 150 ) ) ) + 0.2f;
}
Последнее редактирование: