CanHeadshot() change, VTQ, QTV change
This commit is contained in:
parent
38d3c3fb86
commit
0e1e8f78d0
@ -54,6 +54,7 @@ void EntityVariables::Init() {
|
|||||||
this->hObserverTarget = gNetvars.get_offset("DT_BasePlayer", "m_hObserverTarget");
|
this->hObserverTarget = gNetvars.get_offset("DT_BasePlayer", "m_hObserverTarget");
|
||||||
this->Rocket_iDeflected = gNetvars.get_offset("DT_TFBaseRocket", "m_iDeflected");
|
this->Rocket_iDeflected = gNetvars.get_offset("DT_TFBaseRocket", "m_iDeflected");
|
||||||
this->Grenade_iDeflected = gNetvars.get_offset("DT_TFWeaponBaseGrenadeProj", "m_iDeflected");
|
this->Grenade_iDeflected = gNetvars.get_offset("DT_TFWeaponBaseGrenadeProj", "m_iDeflected");
|
||||||
|
this->test = 2908;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InitEntityOffsets() {
|
void InitEntityOffsets() {
|
||||||
|
@ -82,6 +82,8 @@ public:
|
|||||||
|
|
||||||
offset_t Rocket_iDeflected;
|
offset_t Rocket_iDeflected;
|
||||||
offset_t Grenade_iDeflected;
|
offset_t Grenade_iDeflected;
|
||||||
|
|
||||||
|
offset_t test;
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO globals
|
// TODO globals
|
||||||
|
@ -133,23 +133,29 @@ bool Aimbot::CreateMove(void*, float, CUserCmd* cmd) {
|
|||||||
if (player->IsDormant()) return true;
|
if (player->IsDormant()) return true;
|
||||||
m_iHitbox = this->v_iHitbox->GetInt();
|
m_iHitbox = this->v_iHitbox->GetInt();
|
||||||
if (this->v_bAutoHitbox->GetBool()) m_iHitbox = 7;
|
if (this->v_bAutoHitbox->GetBool()) m_iHitbox = 7;
|
||||||
if (g_pLocalPlayer->weapon) {
|
if (g_pLocalPlayer->weapon && this->v_bAutoHitbox->GetBool()) {
|
||||||
switch (g_pLocalPlayer->weapon->GetClientClass()->m_ClassID) {
|
switch (g_pLocalPlayer->weapon->GetClientClass()->m_ClassID) {
|
||||||
case ClassID::CTFSniperRifle:
|
case ClassID::CTFSniperRifle:
|
||||||
case ClassID::CTFSniperRifleDecap:
|
case ClassID::CTFSniperRifleDecap:
|
||||||
if (!CanHeadshot(g_pLocalPlayer->entity)) {
|
if (!CanHeadshot(g_pLocalPlayer->entity)) {
|
||||||
if (this->v_bZoomedOnly->GetBool()) return true;
|
if (this->v_bZoomedOnly->GetBool()) return true;
|
||||||
} else {
|
} else {
|
||||||
if (this->v_bAutoHitbox->GetBool()) m_iHitbox = 0;
|
m_iHitbox = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFCompoundBow:
|
case ClassID::CTFCompoundBow:
|
||||||
m_iHitbox = 0;
|
m_iHitbox = 0;
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFRevolver:
|
case ClassID::CTFRevolver:
|
||||||
if (IsAmbassador(g_pLocalPlayer->weapon)) {
|
if (IsAmbassador(g_pLocalPlayer->weapon)) {
|
||||||
m_iHitbox = 0;
|
m_iHitbox = 0;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case ClassID::CTFRocketLauncher:
|
||||||
|
case ClassID::CTFRocketLauncher_AirStrike:
|
||||||
|
case ClassID::CTFRocketLauncher_DirectHit:
|
||||||
|
case ClassID::CTFRocketLauncher_Mortar:
|
||||||
|
m_iHitbox = 14;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,7 +172,7 @@ bool Aimbot::CreateMove(void*, float, CUserCmd* cmd) {
|
|||||||
if (g_pLocalPlayer->weapon->GetClientClass()->m_ClassID == 210) return true;
|
if (g_pLocalPlayer->weapon->GetClientClass()->m_ClassID == 210) return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bProjectileMode = (GetProjectileData(g_pLocalPlayer->weapon, m_flProjSpeed, m_bProjArc, m_flProjGravity));
|
m_bProjectileMode = (GetProjectileData(g_pLocalPlayer->weapon, m_flProjSpeed, m_flProjGravity));
|
||||||
// TODO priority modes (FOV, Smart, Distance, etc)
|
// TODO priority modes (FOV, Smart, Distance, etc)
|
||||||
IClientEntity* target_highest = 0;
|
IClientEntity* target_highest = 0;
|
||||||
float target_highest_score = -256;
|
float target_highest_score = -256;
|
||||||
|
@ -22,7 +22,9 @@ HuntsmanCompensation::HuntsmanCompensation() {
|
|||||||
|
|
||||||
bool HuntsmanCompensation::CreateMove(void*, float, CUserCmd* cmd) {
|
bool HuntsmanCompensation::CreateMove(void*, float, CUserCmd* cmd) {
|
||||||
if (!v_bEnabled->GetBool()) return true;
|
if (!v_bEnabled->GetBool()) return true;
|
||||||
if (!g_pLocalPlayer->weapon || (g_pLocalPlayer->weapon->GetClientClass()->m_ClassID != ClassID::CTFCompoundBow)) return true;
|
float speed, grav;
|
||||||
|
if (!GetProjectileData(g_pLocalPlayer->weapon, speed, grav)) return true;
|
||||||
|
if (speed == 0.0f) return true;
|
||||||
if (g_pLocalPlayer->life_state) return true;
|
if (g_pLocalPlayer->life_state) return true;
|
||||||
static trace_t* view_trace = new trace_t();
|
static trace_t* view_trace = new trace_t();
|
||||||
Ray_t ray;
|
Ray_t ray;
|
||||||
@ -41,9 +43,7 @@ bool HuntsmanCompensation::CreateMove(void*, float, CUserCmd* cmd) {
|
|||||||
forward = forward * 8192.0f + g_pLocalPlayer->v_Eye;
|
forward = forward * 8192.0f + g_pLocalPlayer->v_Eye;
|
||||||
ray.Init(g_pLocalPlayer->v_Eye, forward);
|
ray.Init(g_pLocalPlayer->v_Eye, forward);
|
||||||
interfaces::trace->TraceRay(ray, 0x4200400B, trace::g_pFilterDefault, view_trace);
|
interfaces::trace->TraceRay(ray, 0x4200400B, trace::g_pFilterDefault, view_trace);
|
||||||
float speed, grav;
|
GetProjectileData(g_pLocalPlayer->weapon, speed, grav);
|
||||||
bool arc;
|
|
||||||
GetProjectileData(g_pLocalPlayer->weapon, speed, arc, grav);
|
|
||||||
float ttf = view_trace->startpos.DistTo(view_trace->endpos) / speed;
|
float ttf = view_trace->startpos.DistTo(view_trace->endpos) / speed;
|
||||||
Vector resv = view_trace->endpos;
|
Vector resv = view_trace->endpos;
|
||||||
resv.z += ttf * ttf * (grav * 400);
|
resv.z += ttf * ttf * (grav * 400);
|
||||||
|
@ -316,12 +316,11 @@ void Misc::PaintTraverse(void*, unsigned int, bool, bool) {
|
|||||||
AddSideString(draw::white, draw::black, "ServerTime: %f", GetEntityValue<float>(g_pLocalPlayer->entity, eoffsets.nTickBase) * interfaces::gvars->interval_per_tick);
|
AddSideString(draw::white, draw::black, "ServerTime: %f", GetEntityValue<float>(g_pLocalPlayer->entity, eoffsets.nTickBase) * interfaces::gvars->interval_per_tick);
|
||||||
AddSideString(draw::white, draw::black, "CurTime: %f", interfaces::gvars->curtime);
|
AddSideString(draw::white, draw::black, "CurTime: %f", interfaces::gvars->curtime);
|
||||||
float speed, gravity;
|
float speed, gravity;
|
||||||
bool arc;
|
GetProjectileData(g_pLocalPlayer->weapon, speed, gravity);
|
||||||
GetProjectileData(g_pLocalPlayer->weapon, speed, arc, gravity);
|
|
||||||
AddSideString(draw::white, draw::black, "Speed: %f", speed);
|
AddSideString(draw::white, draw::black, "Speed: %f", speed);
|
||||||
AddSideString(draw::white, draw::black, "Gravity: %f", gravity);
|
AddSideString(draw::white, draw::black, "Gravity: %f", gravity);
|
||||||
AddSideString(draw::white, draw::black, "IsZoomed: %i", g_pLocalPlayer->bWasZoomed);
|
AddSideString(draw::white, draw::black, "IsZoomed: %i", g_pLocalPlayer->bWasZoomed);
|
||||||
AddSideString(draw::white, draw::black, "???: %f", *(float*)((uintptr_t)g_pLocalPlayer->entity + 2908) - interfaces::gvars->curtime);
|
AddSideString(draw::white, draw::black, "???: %f", GetEntityValue<float>(g_pLocalPlayer->entity, eoffsets.test));
|
||||||
//AddSideString(draw::white, draw::black, "VecPunchAngle: %f %f %f", pa.x, pa.y, pa.z);
|
//AddSideString(draw::white, draw::black, "VecPunchAngle: %f %f %f", pa.x, pa.y, pa.z);
|
||||||
//draw::DrawString(10, y, draw::white, draw::black, false, "VecPunchAngleVel: %f %f %f", pav.x, pav.y, pav.z);
|
//draw::DrawString(10, y, draw::white, draw::black, false, "VecPunchAngleVel: %f %f %f", pav.x, pav.y, pav.z);
|
||||||
//y += 14;
|
//y += 14;
|
||||||
|
@ -439,59 +439,46 @@ weaponmode GetWeaponMode(IClientEntity* player) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO FIX this function
|
// TODO FIX this function
|
||||||
bool GetProjectileData(IClientEntity* weapon, float& speed, bool& arc, float& gravity) {
|
bool GetProjectileData(IClientEntity* weapon, float& speed, float& gravity) {
|
||||||
if (!weapon) return false;
|
if (!weapon) return false;
|
||||||
float rspeed;
|
float rspeed = 0.0f;
|
||||||
bool rarc;
|
float rgrav = 0.0f;
|
||||||
float rgrav = 0.5f;
|
typedef float(GetProjectileData)(IClientEntity*);
|
||||||
switch (weapon->GetClientClass()->m_ClassID) {
|
switch (weapon->GetClientClass()->m_ClassID) {
|
||||||
case ClassID::CTFRocketLauncher_DirectHit:
|
case ClassID::CTFRocketLauncher_DirectHit:
|
||||||
rspeed = 1980.0f;
|
rspeed = 1980.0f;
|
||||||
rarc = false;
|
|
||||||
//rgrav = 0.0f;
|
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFRocketLauncher:
|
case ClassID::CTFRocketLauncher:
|
||||||
rspeed = 1100.0f;
|
rspeed = 1100.0f;
|
||||||
rarc = false;
|
|
||||||
//rgrav = 0.0f;
|
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFGrenadeLauncher:
|
case ClassID::CTFGrenadeLauncher:
|
||||||
rspeed = 1200.0f; // TODO Loch-N-Load: 1500u
|
rspeed = ((GetProjectileData*) *(*(const void ***) weapon + 528))(weapon);
|
||||||
rarc = true;
|
|
||||||
//rgrav = 0.5f;
|
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFCompoundBow: {
|
case ClassID::CTFCompoundBow: {
|
||||||
float servertime = (float)GetEntityValue<int>(g_pLocalPlayer->entity, eoffsets.nTickBase) * interfaces::gvars->interval_per_tick;
|
float servertime = (float)GetEntityValue<int>(g_pLocalPlayer->entity, eoffsets.nTickBase) * interfaces::gvars->interval_per_tick;
|
||||||
float curtime_old = interfaces::gvars->curtime;
|
float curtime_old = interfaces::gvars->curtime;
|
||||||
interfaces::gvars->curtime = servertime;
|
interfaces::gvars->curtime = servertime;
|
||||||
typedef float(GetProjectileData)(IClientEntity*);
|
rspeed = ((GetProjectileData*) *(*(const void ***) weapon + 527))(weapon);
|
||||||
rspeed = (reinterpret_cast<GetProjectileData*>(*(*(const void ***) weapon + 527)))(weapon);
|
|
||||||
rgrav = ((GetProjectileData*) *(*(const void ***) weapon + 528))(weapon);
|
rgrav = ((GetProjectileData*) *(*(const void ***) weapon + 528))(weapon);
|
||||||
interfaces::gvars->curtime = curtime_old;
|
interfaces::gvars->curtime = curtime_old;
|
||||||
rarc = true;
|
|
||||||
} break;
|
} break;
|
||||||
case ClassID::CTFBat_Wood:
|
case ClassID::CTFBat_Wood:
|
||||||
//rgrav = 1.0f;
|
|
||||||
rspeed = 3000.0f;
|
rspeed = 3000.0f;
|
||||||
rarc = true;
|
rgrav = 0.5f;
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFFlareGun:
|
case ClassID::CTFFlareGun:
|
||||||
//rgrav = 1.0f;
|
|
||||||
rspeed = 2000.0f;
|
rspeed = 2000.0f;
|
||||||
rarc = true;
|
rgrav = 0.5f;
|
||||||
break;
|
break;
|
||||||
case ClassID::CTFSyringeGun:
|
case ClassID::CTFSyringeGun:
|
||||||
rgrav = 0.2f;
|
rgrav = 0.2f;
|
||||||
rspeed = 990.0f;
|
rspeed = 990.0f;
|
||||||
rarc = true;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
speed = rspeed;
|
speed = rspeed;
|
||||||
arc = rarc;
|
|
||||||
gravity = rgrav;
|
gravity = rgrav;
|
||||||
if (!arc) gravity = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -647,38 +634,7 @@ float GetFov(Vector angle, Vector src, Vector dst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool CanHeadshot(IClientEntity* player) {
|
bool CanHeadshot(IClientEntity* player) {
|
||||||
int weapon_handle = GetEntityValue<int>(player, eoffsets.hActiveWeapon);
|
return (g_pLocalPlayer->flZoomBegin > 0.0f && (interfaces::gvars->curtime - g_pLocalPlayer->flZoomBegin > 0.2f));
|
||||||
IClientEntity* weapon = interfaces::entityList->GetClientEntity(weapon_handle & 0xFFF);
|
|
||||||
if (!weapon) return false;
|
|
||||||
float charged_damage = GetEntityValue<float>(weapon, eoffsets.flChargedDamage);
|
|
||||||
switch(weapon->GetClientClass()->m_ClassID) {
|
|
||||||
case ClassID::CTFSniperRifle:
|
|
||||||
return charged_damage >= 15.0f;
|
|
||||||
case ClassID::CTFSniperRifleDecap: {
|
|
||||||
int decaps = GetEntityValue<int>(player, eoffsets.iDecapitations);
|
|
||||||
switch (decaps) { // TODO VALUES ARE NOT PRECISE
|
|
||||||
// noobish
|
|
||||||
case 0:
|
|
||||||
return charged_damage >= 7.5f;
|
|
||||||
case 1:
|
|
||||||
return charged_damage >= 13.0f;
|
|
||||||
case 2:
|
|
||||||
return charged_damage >= 15.0f;
|
|
||||||
case 3:
|
|
||||||
return charged_damage >= 18.5f;
|
|
||||||
case 4:
|
|
||||||
return charged_damage >= 22.5f;
|
|
||||||
case 5:
|
|
||||||
return charged_damage >= 24.0f;
|
|
||||||
default:
|
|
||||||
return charged_damage >= 25.0f;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case ClassID::CTFSniperRifleClassic:
|
|
||||||
return false; // NO!!! IT CANNOT!!! Fuck classic.
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BulletTime() {
|
bool BulletTime() {
|
||||||
@ -689,11 +645,11 @@ bool BulletTime() {
|
|||||||
|
|
||||||
// TODO casting
|
// TODO casting
|
||||||
QAngle VectorToQAngle(Vector in) {
|
QAngle VectorToQAngle(Vector in) {
|
||||||
return QAngle(in.x, in.y, in.z);
|
return *(QAngle*)∈
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector QAngleToVector(QAngle in) {
|
Vector QAngleToVector(QAngle in) {
|
||||||
return Vector(in.x, in.y, in.z);
|
return *(Vector*)∈
|
||||||
}
|
}
|
||||||
|
|
||||||
void AimAt(Vector origin, Vector target, CUserCmd* cmd) {
|
void AimAt(Vector origin, Vector target, CUserCmd* cmd) {
|
||||||
|
@ -60,7 +60,7 @@ void fClampAngle(Vector& qaAng);
|
|||||||
void fVectorAngles(Vector &forward, Vector &angles);
|
void fVectorAngles(Vector &forward, Vector &angles);
|
||||||
float deg2rad(float deg);
|
float deg2rad(float deg);
|
||||||
const char* MakeInfoString(IClientEntity* player);
|
const char* MakeInfoString(IClientEntity* player);
|
||||||
bool GetProjectileData(IClientEntity* weapon, float& speed, bool& arc, float& gravity);
|
bool GetProjectileData(IClientEntity* weapon, float& speed, float& gravity);
|
||||||
bool IsVectorVisible(Vector a, Vector b);
|
bool IsVectorVisible(Vector a, Vector b);
|
||||||
//bool PredictProjectileAim(Vector origin, IClientEntity* target, hitbox_t hb, float speed, bool arc, float gravity, Vector& result);
|
//bool PredictProjectileAim(Vector origin, IClientEntity* target, hitbox_t hb, float speed, bool arc, float gravity, Vector& result);
|
||||||
relation GetRelation(IClientEntity* ent);
|
relation GetRelation(IClientEntity* ent);
|
||||||
|
@ -5,10 +5,7 @@
|
|||||||
* Author: nullifiedcat
|
* Author: nullifiedcat
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "localplayer.h"
|
#include "common.h"
|
||||||
#include "interfaces.h"
|
|
||||||
#include "entity.h"
|
|
||||||
|
|
||||||
#include "sdk.h"
|
#include "sdk.h"
|
||||||
|
|
||||||
void LocalPlayer::Update() {
|
void LocalPlayer::Update() {
|
||||||
@ -23,6 +20,11 @@ void LocalPlayer::Update() {
|
|||||||
clazz = GetEntityValue<int>(entity, eoffsets.iClass);
|
clazz = GetEntityValue<int>(entity, eoffsets.iClass);
|
||||||
health = GetEntityValue<int>(entity, eoffsets.iHealth);
|
health = GetEntityValue<int>(entity, eoffsets.iHealth);
|
||||||
this->bUseSilentAngles = false;
|
this->bUseSilentAngles = false;
|
||||||
|
if (cond_0 & cond::zoomed) {
|
||||||
|
if (flZoomBegin == 0.0f) flZoomBegin = interfaces::gvars->curtime;
|
||||||
|
} else {
|
||||||
|
flZoomBegin = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int hWeapon = GetEntityValue<int>(entity, eoffsets.hActiveWeapon);
|
int hWeapon = GetEntityValue<int>(entity, eoffsets.hActiveWeapon);
|
||||||
|
@ -27,6 +27,7 @@ public:
|
|||||||
int cond_3;
|
int cond_3;
|
||||||
|
|
||||||
bool bWasZoomed;
|
bool bWasZoomed;
|
||||||
|
float flZoomBegin;
|
||||||
|
|
||||||
bool bIsReloading;
|
bool bIsReloading;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user