Продам прострел стен Warface 10к руб!
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
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); }
};
Помогаю начинающим, незнающим, да и просто кому-то будет полезным знать это, а не юзать аналоги только в гавновидах и тд. Есть ещё красивее и проще способ от самой игры, позже поделюсь)