Неактуально зависание игры

Lance_Sterling

Известный
Автор темы
978
342
сделал простенький код для изменения хендлинга, на с++, игра зависает после того как я разогнался, и торможу, после того как авто достигает своего обычного лимита на макс.скорость (насколько я понял) игра зависает
C++:
auto vehicle = FindPlayerVehicle(-1, false);
int m_nNumberOfGears = vehicle->m_pHandlingData->m_transmissionData.m_nNumberOfGears;
for (int i = 1; i < m_nNumberOfGears; i++)
{
    vehicle->m_pHandlingData->m_transmissionData.m_aGears[i].m_fMaxVelocity += 0.1;
}
vehicle->m_pHandlingData->m_transmissionData.m_fEngineAcceleration += 1;
vehicle->m_pHandlingData->m_transmissionData.m_fMaxGearVelocity += 0.1;
vehicle->m_pHandlingData->m_fTractionMultiplier *= 2;

видос:
 
Последнее редактирование:
  • Вау
Реакции: whyega52

waparabka

Известный
105
155
возможно с циклом что то не так, попробуй так

C++:
auto vehicle = FindPlayerVehicle(-1, false);
auto handling = vehicle->m_pHandlingData;

for (const auto& gear : handling->m_transmissionData.m_aGears)
    gear.m_fMaxVelocity += 0.1;

handling->m_transmissionData.m_fEngineAcceleration += 1;
handling->m_transmissionData.m_fMaxGearVelocity += 0.1;
handling->m_fTractionMultiplier *= 2;
 

Lance_Sterling

Известный
Автор темы
978
342
возможно с циклом что то не так, попробуй так

C++:
auto vehicle = FindPlayerVehicle(-1, false);
auto handling = vehicle->m_pHandlingData;

for (const auto& gear : handling->m_transmissionData.m_aGears)
    gear.m_fMaxVelocity += 0.1;

handling->m_transmissionData.m_fEngineAcceleration += 1;
handling->m_transmissionData.m_fMaxGearVelocity += 0.1;
handling->m_fTractionMultiplier *= 2;
все нормально с ним
 

waparabka

Известный
105
155

Lance_Sterling

Известный
Автор темы
978
342
не уверен

и что ты мне дал? типа с 0 а не с 1? 0 передача = задняя, и она идет в минусе, поэтому если ее увеличить она может стать нулем и машина назад не будет ехать
возможно ты имел ввиду что там <= а не <, это все равно не работает

@SR_team может ты знаешь👉👈
 
Последнее редактирование:
  • Bug
Реакции: SR_team

НедоСкриптер

Участник
37
28
по эмпирическому опыту скажу, что использовать циклы в хук-функциях плохая идея. то падает, лагает. надо в отдельный тред завести подобный код.
и почему не i = 1? И null-check не помешает

cpp:
void handling_booster() {
    auto vehicle = FindPlayerVehicle(-1, false);

    if (!vehicle) return;

    int m_nNumberOfGears = vehicle->m_pHandlingData->m_transmissionData.m_nNumberOfGears;

    for (int i = 1; i < m_nNumberOfGears; i++)
    {
        vehicle->m_pHandlingData->m_transmissionData.m_aGears[i].m_fMaxVelocity += 0.1;
    }

    vehicle->m_pHandlingData->m_transmissionData.m_fEngineAcceleration += 1;
    vehicle->m_pHandlingData->m_transmissionData.m_fMaxGearVelocity    += 0.1;
    vehicle->m_pHandlingData->m_fTractionMultiplier                    *= 2;
}
 
  • Эм
Реакции: REMOVE