1. Ресольвер на основе движений: этот тип ресольвера анализирует направление движения игрока и использует его для определения направления взгляда.
void ResolveMovement(C_BasePlayer* player, Vector& angles) {
if (player->GetVelocity().Length2D() < 0.1f) {
return;
}
float yaw_delta = player->GetLowerBodyYawTarget() - player->GetAbsAngles().yaw;
if (yaw_delta > 180.0f) {
yaw_delta -= 360.0f;
} else if (yaw_delta < -180.0f) {
yaw_delta += 360.0f;
}
bool is_moving_left = yaw_delta > 0.0f;
bool is_moving_right = yaw_delta < 0.0f;
if (is_moving_left || is_moving_right) {
angles.yaw = player->GetLowerBodyYawTarget();
}
}
В этом коде мы анализируем скорость движения игрока. Если скорость меньше 0.1f, мы выходим из функции. Затем мы считаем разницу между целевым направлением нижней части тела игрока (
lower body yaw target) и текущим направлением взгляда. Если разница больше 180 градусов, мы вычитаем 360 из нее, если меньше -180, мы прибавляем 360. Затем мы определяем, смотрит ли игрок влево или вправо, и если это так, мы устанавливаем целевое направление нижней части тела.
2. Ресольвер на основе анимаций: этот тип ресольвера использует информацию об анимациях игрока для определения направления взгляда.
void ResolveAnimation(C_BasePlayer* player, Vector& angles) {
if (player->GetSequenceActivity(player->GetSequence()) == ACT_CSGO_IDLE_TURN_BALANCEADJUST) {
angles.yaw = player->GetLowerBodyYawTarget();
}
}
В этом коде мы проверяем текущую анимацию игрока. Если она равна
ACT_CSGO_IDLE_TURN_BALANCEADJUST, что соответствует анимации поворота в месте, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок вращается.
3. Ресольвер на основе рандома: этот тип ресольвера использует случайное направление взгляда для обмана античита и улучшения степени устойчивости чита.
void ResolveRandom(C_BasePlayer* player, Vector& angles) {
angles.yaw = rand() % 360;
}
Этот реcольвер устанавливает случайное значение в диапазоне от 0 до 359 в качестве целевого направления взгляда. Этот ресольвер может быть использован как средство для обмана врага, но может быть также неэффективен, так как он не учитывает реальные движения игрока и предполагает, что игрок смотрит в случайное направление.
4. Ресольвер на основе выстрела: этот тип ресольвера анализирует местоположение выстрела и использует его для определения направления взгляда игрока.
void ResolveShot(C_BasePlayer* player, Vector& angles) {
if (!player->IsShooting()) {
return;
}
angles.yaw = player->GetLowerBodyYawTarget();
}
В этом коде мы проверяем, стреляет ли игрок. Если это так, мы устанавливаем целевое направление нижней части тела игрока (
lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок стреляет, так как в момент выстрела игрок обычно поворачивается в сторону цели. Однако стоит отметить, что этот реcольвер может быть не эффективен, если игрок использует "quick peek"
Существует также множество других типов ресольверов. Выбор типа зависит от ваших целей и требований к читу.