- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 622
- Реакции
- 16
Здарова, движение-дрочеры. Пока одни пытаются надрочить тайминг суперглайда руками или пихают в игру кривые конфиги и макросы, которые работают через раз, нормальные люди смотрят в сторону памяти. В Apex механика Mantle Boost заложена в движок, и все, что нам нужно — это вовремя прожать прыжок, опираясь на конкретные данные из игры.
Попал в руки кусок кода, который позволяет выбивать идеальный Mantle Boost в 100% случаев. Логика завязана на прогрессе анимации карабканья (m_traversalProgress). Если у вас есть нормальный драйвер или интернал — делов на пару минут.
Техническая база
Для реализации понадобятся следующие оффсеты (актуальность проверяйте под свой билд):
Суть метода
Основной триггер срабатывает, когда значение traversal_prog пересекает порог 0.91f. Это та самая точка невозврата анимации, где прыжок дает максимальный импульс.
Нюансы и траблшутинг
Метод в разы стабильнее любых AHK-скриптов, так как он не зависит от вашего FPS. Кто уже пробовал играться с другими значениями m_traversalProgress, отпишите, есть ли профит на других мувмент-фишках.
Попал в руки кусок кода, который позволяет выбивать идеальный Mantle Boost в 100% случаев. Логика завязана на прогрессе анимации карабканья (m_traversalProgress). Если у вас есть нормальный драйвер или интернал — делов на пару минут.
Техническая база
Для реализации понадобятся следующие оффсеты (актуальность проверяйте под свой билд):
Код:
// m_traversalProgress в C_Player
OFF_m_traversalProgress = 0x2bcc
// m_mantleBoostState в C_Player
OFF_m_mantleBoostState = 0x2c04
// Кнопка прыжка (+jump)
OFF_IN_JUMP = 0x3c754c0
Суть метода
Основной триггер срабатывает, когда значение traversal_prog пересекает порог 0.91f. Это та самая точка невозврата анимации, где прыжок дает максимальный импульс.
Код:
if (g_config.mantleboost_enabled) {
float traversal_prog = driver::read<float>(local_ptr + OFF_m_traversalProgress);
int boost_state = driver::read<int>(local_ptr + OFF_m_mantleBoostState);
int jump_btn_state = driver::read<int>(g_game_base + OFF_IN_JUMP + 0x8);
static bool boost_fired = false;
static float last_prog = 0.0f;
// Ловим момент, когда прогресс анимации достигает 0.91
if (traversal_prog >= 0.91f && last_prog < 0.91f && !boost_fired) {
btn_press(OFF_IN_JUMP);
std::this_thread::sleep_for(std::chrono::milliseconds(10));
btn_release(OFF_IN_JUMP);
boost_fired = true;
}
// Сброс флага после завершения анимации
if (traversal_prog < 0.1f && last_prog >= 0.1f) {
boost_fired = false;
}
last_prog = traversal_prog;
}
Нюансы и траблшутинг
- Порог 0.91f выведен тестами, на некоторых серверах из-за тикрейта может потребоваться небольшая корректировка.
- Если юзаете внешний софт, убедитесь, что ваш метод эмуляции нажатий (btn_press) не палится античитом. Юзайте драйверный ввод.
- Для тех, кто на мейне: помните, что прямые записи в память кнопок могут триггерить проверки EAC, если делать это слишком топорно.
Метод в разы стабильнее любых AHK-скриптов, так как он не зависит от вашего FPS. Кто уже пробовал играться с другими значениями m_traversalProgress, отпишите, есть ли профит на других мувмент-фишках.