- Статус
- Оффлайн
- Регистрация
- 9 Апр 2020
- Сообщения
- 29
- Реакции
- 13
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хочу добавить в пасту джамп баг( заставляет персонажа зажимать контрл после прыжка и отжимать за 4 юнита до приземления )
К слову, почти уже всё написал, но есть проблема с пониманием команды Fraction. Не могу понять, как можно высчитать идеально 4 юнита до приземления. У кого есть идеи - пишите.
Source:
bool c_movement::jumpbug_post_prediction(c_usercmd* user_cmd) noexcept {
auto local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));
if (!config_system.item.jumpbug)
return true;
if (!GetAsyncKeyState(config_system.item.jumpbug_key))
return true;
if (!local_player)
return true;
ray_t ray;
trace_filter filter;
trace_t tr;
vec3_t origin = local_player->origin();
origin += local_player->velocity() * interfaces::globals->interval_per_tick;
ray.initialize(origin, origin - vec3_t(0, 0, 68.f));
filter.skip = local_player;
interfaces::trace_ray->trace_ray(ray, MASK_PLAYERSOLID, &filter, &tr);
if (tr.flFraction == 1.0f)
return false;
user_cmd->buttons |= in_duck;
interfaces::engine->execute_cmd("-duck");
return true;
user_cmd->buttons &= ~in_duck;
user_cmd->buttons |= in_jump;
interfaces::engine->execute_cmd("-duck");
}
К слову, почти уже всё написал, но есть проблема с пониманием команды Fraction. Не могу понять, как можно высчитать идеально 4 юнита до приземления. У кого есть идеи - пишите.
Source:
bool c_movement::jumpbug_post_prediction(c_usercmd* user_cmd) noexcept {
auto local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));
if (!config_system.item.jumpbug)
return true;
if (!GetAsyncKeyState(config_system.item.jumpbug_key))
return true;
if (!local_player)
return true;
ray_t ray;
trace_filter filter;
trace_t tr;
vec3_t origin = local_player->origin();
origin += local_player->velocity() * interfaces::globals->interval_per_tick;
ray.initialize(origin, origin - vec3_t(0, 0, 68.f));
filter.skip = local_player;
interfaces::trace_ray->trace_ray(ray, MASK_PLAYERSOLID, &filter, &tr);
if (tr.flFraction == 1.0f)
return false;
user_cmd->buttons |= in_duck;
interfaces::engine->execute_cmd("-duck");
return true;
user_cmd->buttons &= ~in_duck;
user_cmd->buttons |= in_jump;
interfaces::engine->execute_cmd("-duck");
}