-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делалось по пьяне с друзьями
Работает через раз и держится на соплях
Но если вы не долбаеб, можете додумать все это
Дебажили по таким приколам (график)
Работает через раз и держится на соплях
Но если вы не долбаеб, можете додумать все это
Дебажили по таким приколам (график)
Код:
static int last_side = 0;
// predict enemy side by freestanding
anti_freestanding(last_side);
// enemy have high speed
// we can predict his real angle (maybe)
const auto& layer = player->get_animlayers()[12];
if (layer.m_flWeight < 0.0003f)
{
if (layer.m_flWeight >= 0.00014f)
{
float torso_yaw = abs(animstate->m_flCurrentTorsoYaw);
float lean = abs(animstate->m_flUnknownVelocityLean);
static float old_torso = 0.f;
static float old_lean = 0.f;
// lean and torso is decreasing, side should be left?
if (old_torso > torso_yaw && old_lean > lean)
last_side = -1;
// lean and torso is increasing, side should be right?
else if (old_torso < torso_yaw && old_lean < lean)
last_side = 1;
else
{
// inverse last freestand side
if (last_side == 1) last_side = -1;
else if (last_side == -1) last_side = 1;
}
old_torso = torso_yaw;
old_lean = lean;
}
}
player_record->resolver_side = last_side;