ignore hoovy & hoovy esp
This commit is contained in:
parent
fac108f876
commit
87fa9f3b8c
@ -106,6 +106,7 @@ List& MainList() {
|
||||
]
|
||||
"Preferences" [
|
||||
"Aim Bot Preferences"
|
||||
"aimbot_ignore_hoovy"
|
||||
"aimbot_buildings"
|
||||
"aimbot_respect_cloak"
|
||||
"aimbot_only_when_can_shoot"
|
||||
|
@ -26,6 +26,8 @@ bool headonly { false };
|
||||
int last_target { -1 };
|
||||
bool silent_huntsman { false };
|
||||
|
||||
static CatVar ignore_hoovy(CV_SWITCH, "aimbot_ignore_hoovy", "0", "Ignore Hoovies", "Aimbot won't attack hoovies");
|
||||
|
||||
int ClosestHitbox(CachedEntity* target) {
|
||||
int closest = -1;
|
||||
float closest_fov = 256;
|
||||
@ -224,6 +226,14 @@ int ShouldTarget(CachedEntity* entity) {
|
||||
if (entity->m_flDistance > 95) return 9;
|
||||
}
|
||||
if (playerlist::IsFriendly(playerlist::AccessData(entity).state)) return 11;
|
||||
if (ignore_hoovy) {
|
||||
CachedEntity* weapon = ENTITY(CE_INT(entity, netvar.hActiveWeapon) & 0xFFF);
|
||||
if (CE_GOOD(weapon)) {
|
||||
if ((CE_INT(entity, netvar.iFlags) & FL_DUCKING) && weapon->m_iClassID == g_pClassID->CTFLunchBox && CE_INT(entity, netvar.iClass) == tf_heavy) {
|
||||
return 29;
|
||||
}
|
||||
}
|
||||
}
|
||||
Vector resultAim;
|
||||
int hitbox = BestHitbox(entity);
|
||||
//if (m_bHeadOnly && hitbox) return 12;
|
||||
|
@ -448,6 +448,10 @@ void ProcessEntity(CachedEntity* ent) {
|
||||
}
|
||||
CachedEntity* weapon = ENTITY(CE_INT(ent, netvar.hActiveWeapon) & 0xFFF);
|
||||
if (CE_GOOD(weapon)) {
|
||||
if ((CE_INT(ent, netvar.iFlags) & FL_DUCKING) && weapon->m_iClassID == g_pClassID->CTFLunchBox && pclass == tf_heavy) {
|
||||
AddEntityString(ent, "Hoovy");
|
||||
}
|
||||
|
||||
if (show_weapon) {
|
||||
const char* name = vfunc<const char*(*)(IClientEntity*)>(RAW_ENT(weapon), 398, 0)(RAW_ENT(weapon));
|
||||
if (name) AddEntityString(ent, std::string(name));
|
||||
|
@ -50,6 +50,52 @@ bool C_TFPlayer__ShouldDraw_hook(IClientEntity* thisptr) {
|
||||
|
||||
static CatVar crit_hack_experimental(CV_SWITCH, "crit_hack_experimental", "0", "Experimental crit hack");
|
||||
|
||||
void DumpRecvTable(CachedEntity* ent, RecvTable* table, int depth, const char* ft, unsigned acc_offset) {
|
||||
bool forcetable = ft && strlen(ft);
|
||||
if (!forcetable || !strcmp(ft, table->GetName()))
|
||||
logging::Info("==== TABLE: %s", table->GetName());
|
||||
for (int i = 0; i < table->GetNumProps(); i++) {
|
||||
RecvProp* prop = table->GetProp(i);
|
||||
if (!prop) continue;
|
||||
if (prop->GetDataTable()) {
|
||||
DumpRecvTable(ent, prop->GetDataTable(), depth + 1, ft, acc_offset + prop->GetOffset());
|
||||
}
|
||||
if (forcetable && strcmp(ft, table->GetName())) continue;
|
||||
switch (prop->GetType()) {
|
||||
case SendPropType::DPT_Float:
|
||||
logging::Info("%s [0x%04x] = %f", prop->GetName(), prop->GetOffset(), CE_FLOAT(ent, acc_offset + prop->GetOffset()));
|
||||
break;
|
||||
case SendPropType::DPT_Int:
|
||||
logging::Info("%s [0x%04x] = %i | %u | %hd | %hu", prop->GetName(), prop->GetOffset(), CE_INT(ent, acc_offset + prop->GetOffset()), CE_VAR(ent, acc_offset + prop->GetOffset(), unsigned int), CE_VAR(ent, acc_offset + prop->GetOffset(), short), CE_VAR(ent, acc_offset + prop->GetOffset(), unsigned short));
|
||||
break;
|
||||
case SendPropType::DPT_String:
|
||||
logging::Info("%s [0x%04x] = %s", prop->GetName(), prop->GetOffset(), CE_VAR(ent, prop->GetOffset(), char*));
|
||||
break;
|
||||
case SendPropType::DPT_Vector:
|
||||
logging::Info("%s [0x%04x] = (%f, %f, %f)", prop->GetName(), prop->GetOffset(), CE_FLOAT(ent, acc_offset + prop->GetOffset()), CE_FLOAT(ent, acc_offset + prop->GetOffset() + 4), CE_FLOAT(ent, acc_offset + prop->GetOffset() + 8));
|
||||
break;
|
||||
case SendPropType::DPT_VectorXY:
|
||||
logging::Info("%s [0x%04x] = (%f, %f)", prop->GetName(), prop->GetOffset(), CE_FLOAT(ent, acc_offset + prop->GetOffset()), CE_FLOAT(ent,acc_offset + prop->GetOffset() + 4));
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
if (!ft || !strcmp(ft, table->GetName()))
|
||||
logging::Info("==== END OF TABLE: %s", table->GetName());
|
||||
}
|
||||
|
||||
static CatCommand dump_vars("debug_dump_netvars", "Dump netvars of entity", [](const CCommand& args) {
|
||||
if (args.ArgC() < 1) return;
|
||||
if (!atoi(args[1])) return;
|
||||
int idx = atoi(args[1]);
|
||||
CachedEntity* ent = ENTITY(idx);
|
||||
if (CE_BAD(ent)) return;
|
||||
ClientClass* clz = RAW_ENT(ent)->GetClientClass();
|
||||
logging::Info("Entity %i: %s", ent->m_IDX, clz->GetName());
|
||||
const char* ft = (args.ArgC() > 1 ? args[2] : 0);
|
||||
DumpRecvTable(ent, clz->m_pRecvTable, 0, ft, 0);
|
||||
});
|
||||
|
||||
void CreateMove() {
|
||||
static bool flswitch = false;
|
||||
|
||||
|
@ -35,6 +35,8 @@ void NetVars::Init() {
|
||||
this->m_flStealthNoAttackExpire = gNetvars.get_offset("DT_TFPlayer", "m_Shared", "tfsharedlocaldata", "m_flStealthNoAttackExpire");
|
||||
}
|
||||
if (TF2 || TF2C) {
|
||||
this->m_bDucked = gNetvars.get_offset("DT_TFPlayer", "localdata", "m_Local", "m_bDucked");
|
||||
this->m_flDuckTimer = gNetvars.get_offset("DT_TFPlayer", "m_Shared", "m_flDuckTimer");
|
||||
this->iCond = gNetvars.get_offset("DT_TFPlayer", "m_Shared", "m_nPlayerCond");
|
||||
this->iCond1 = gNetvars.get_offset("DT_TFPlayer", "m_Shared", "m_nPlayerCondEx");
|
||||
this->iCond2 = gNetvars.get_offset("DT_TFPlayer", "m_Shared", "m_nPlayerCondEx2");
|
||||
|
@ -118,6 +118,8 @@ public:
|
||||
offset_t bChargeRelease;
|
||||
|
||||
offset_t m_flStealthNoAttackExpire;
|
||||
offset_t m_flDuckTimer;
|
||||
offset_t m_bDucked;
|
||||
};
|
||||
|
||||
extern NetVars netvar;
|
||||
|
Reference in New Issue
Block a user