Гайд GetDistance from Vec3 правильная реализация! +ножик!

Продам прострел стен Warface 10к руб!
Забаненный
Статус
Оффлайн
Регистрация
7 Авг 2018
Сообщения
308
Реакции[?]
106
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Vec3_tpl:
enum typeZero { ZERO };
template <typename F> struct Vec3_tpl
{
    F x, y, z;
    Vec3_tpl(typeZero) : x(0), y(0), z(0) { }
    explicit Vec3_tpl(F f) : x(f), y(f), z(f) { }

    Vec3_tpl() { Vec3_tpl<F>(0, 0, 0); }
    Vec3_tpl(F xt, F yt, F zt) { x = xt; y = yt; z = zt; }
    void Set(F xt, F yt, F zt) { x = xt; y = yt; z = zt; }
    F GetLength() const { return (F)CryCRT::sqrt(x * x + y * y + z * z); }
    F GetDistance(Vec3_tpl VecB) { return (F)CryCRT::sqrt(((x - VecB.x) * (x - VecB.x)) + ((y - VecB.y) * (y - VecB.y)) + ((z - VecB.z) * (z - VecB.z))); }
    Vec3_tpl GetNormalized() const { F fInvLen = CryCRT::isqrt_safe_tpl(x * x + y * y + z * z); return *this * fInvLen; }

    Vec3_tpl operator /  (F f) { return Vec3_tpl(x / f, y / f, z / f); }
    Vec3_tpl& operator = (const Vec3_tpl<F>& source) { x = source.x; y = source.y; z = source.z; return *this; }
    Vec3_tpl& operator = (const F value) { x = value; y = value; z = value;   return *this; }
    Vec3_tpl operator * (F f) { return Vec3_tpl(x * f, y * f, z * f); }
    Vec3_tpl& operator *= (F f) { x *= f; y *= f; z *= f; return *this; }
    Vec3_tpl& operator /= (F f) { x /= f; y /= f; z /= f; return *this; }
    bool operator!=(const Vec3_tpl<F>& vec) { return !(*this == vec); }

    Vec3_tpl& operator += (const Vec3_tpl<F>& vec) { x += vec.x; y += vec.y; z += vec.z; return *this; }
    Vec3_tpl& operator += (F f) { x += f; y += f; z += f; return *this; }

    friend Vec3_tpl operator + (const Vec3_tpl& vec1, const Vec3_tpl& vec2) { return Vec3_tpl(vec1.x + vec2.x, vec1.y + vec2.y, vec1.z + vec2.z); }
    friend Vec3_tpl operator + (const Vec3_tpl& vec1, const F* vec2) { return vec1 + Vec3_tpl(vec2); }
    friend Vec3_tpl operator + (const F* vec1, const Vec3_tpl& vec2) { return Vec3_tpl(vec1) + vec2; }

    friend Vec3_tpl operator - (const Vec3_tpl& vec1, const Vec3_tpl& vec2) { return Vec3_tpl(vec1.x - vec2.x, vec1.y - vec2.y, vec1.z - vec2.z); }
    friend Vec3_tpl operator - (const Vec3_tpl& vec1, const F* vec2) { return vec1 - Vec3_tpl(vec2); }
    friend Vec3_tpl operator - (const F* vec1, const Vec3_tpl& vec2) { return Vec3_tpl(vec1) - vec2; }
};

Priority and Distance and Example and other:
float minDist = pTargetPos.GetDistance(pShootPos);
if (minDist <= maxDist) {
    /*Ваш код аима ибо чего другово*/
    maxDist = minDist;
}
/*Или же так*/
if (pTargetPos.GetDistance(pShootPos) <= 1.5f) {
    pWeapon->MeleeAttack(); //Автоматическая атака ножом! стакается с быстрым ножом!
}

struct CWeapon {
void MeleeAttack(bool bShort = false) { CallFunction<void(__fastcall*)(PVOID, bool)>(this, 0x148)(this, bShort); }
};

Помогаю начинающим, незнающим, да и просто кому-то будет полезным знать это, а не юзать аналоги только в гавновидах и тд. Есть ещё красивее и проще способ от самой игры, позже поделюсь)
 
Начинающий
Статус
Оффлайн
Регистрация
21 Дек 2018
Сообщения
383
Реакции[?]
11
Поинты[?]
2K
Ты лучше слей код чтобы за мультихит не банило в спецах
Может тебе ещё и прострел без кика в тиме слить?


И мне интересно, как можно до этого не додуматься, если это обыкновенная геометрия (наверное 6-7ого класса) (я про реализацию дистанции до противника)...
 
Сверху Снизу