This commit is contained in:
nullifiedcat 2016-12-11 19:00:36 +03:00
parent b2e4c257c5
commit ef2c5f38d0
22 changed files with 121 additions and 42 deletions

View File

@ -1,5 +1,8 @@
MAX -> MIN priority MAX -> MIN priority
pNoZoom and zoomed aimbot!!!
DO NOT REFLECT STICKIES AND REFLECTED PROJS
AirStuck FIX AirStuck FIX
Aim Stickies Aim Stickies
Proj Aim Buildings Proj Aim Buildings
@ -12,9 +15,10 @@ Integrate SEGVCATCH
Proper AutoHitbox Proper AutoHitbox
Smoothe the smooth aim Smoothe the smooth aim
Display on the left Display on the left
Jumping ProjAim
Flare aim on fire Flare aim on fire
Trigger ambassador correction Trigger ambassador correction
Melee Aimbot
Hook + Aimbot FIX
ESP Icons ESP Icons
ESP Distance sort ESP Distance sort
Show sapped buildings in ESP Show sapped buildings in ESP
@ -34,10 +38,9 @@ Auto trigger DR before rockets
Building box opacity Building box opacity
AutoUber AutoUber
Sticky vischeck Sticky vischeck
AutoBHop (Speed) KillSay
InsultSpam
Airstuck Kick Airstuck Kick
newline nicknames
dark building esp
Anti Backstab Anti Backstab
Critical rifles bodyshotting Critical rifles bodyshotting
Show spectators Show spectators

View File

@ -50,6 +50,8 @@ void EntityVariables::Init() {
this->flLastFireTime = gNetvars.get_offset("DT_TFWeaponBase", "LocalActiveTFWeaponData", "m_flLastFireTime"); this->flLastFireTime = gNetvars.get_offset("DT_TFWeaponBase", "LocalActiveTFWeaponData", "m_flLastFireTime");
this->hThrower = gNetvars.get_offset("DT_BaseGrenade", "m_hThrower"); this->hThrower = gNetvars.get_offset("DT_BaseGrenade", "m_hThrower");
this->hMyWeapons = gNetvars.get_offset("DT_BaseCombatCharacter", "m_hMyWeapons"); this->hMyWeapons = gNetvars.get_offset("DT_BaseCombatCharacter", "m_hMyWeapons");
this->iObserverMode = gNetvars.get_offset("DT_BasePlayer", "m_iObserverMode");
this->hObserverTarget = gNetvars.get_offset("DT_BasePlayer", "m_hObserverTarget");
} }
void InitEntityOffsets() { void InitEntityOffsets() {

View File

@ -72,6 +72,9 @@ public:
offset_t vecPunchAngle; offset_t vecPunchAngle;
offset_t vecPunchAngleVel; offset_t vecPunchAngleVel;
offset_t iObserverMode;
offset_t hObserverTarget;
offset_t flChargeBeginTime; offset_t flChargeBeginTime;
offset_t flLastFireTime; offset_t flLastFireTime;
offset_t hThrower; offset_t hThrower;

View File

@ -12,9 +12,9 @@
void GlobalSettings::Init() { void GlobalSettings::Init() {
this->bHackEnabled = CreateConVar("u_enabled", "1", "Hack enabled (GLOBAL)"); this->bHackEnabled = CreateConVar("u_enabled", "1", "Hack enabled (GLOBAL)");
this->bIgnoreTaunting = CreateConVar("u_ignore_taunting", "1", "Ignore taunting players"); this->bIgnoreTaunting = CreateConVar("u_ignore_taunting", "1", "Ignore taunting players");
this->flForceFOV = CreateConVar("u_fov", "90", "Forces FOV"); this->flForceFOV = CreateConVar("u_fov", "0", "Forces FOV");
this->bProfiler = CreateConVar("u_profiler", "0", "Profiler output enabled"); this->bProfiler = CreateConVar("u_profiler", "0", "Profiler output enabled");
this->bNoZoom = CreateConVar("u_nozoom", "1", "No Zoom"); this->bNoZoom = CreateConVar("u_nozoom", "0", "No Zoom (Breaks aimbot)");
this->bNoFlinch = CreateConVar("u_noflinch", "0", "No-Flinch"); this->bNoFlinch = CreateConVar("u_noflinch", "0", "No-Flinch");
this->bSendPackets = CreateConVar("u_sendpackets", "1", "Send packets"); this->bSendPackets = CreateConVar("u_sendpackets", "1", "Send packets");
this->bShowLogo = CreateConVar("u_logo", "1", "Show logo"); this->bShowLogo = CreateConVar("u_logo", "1", "Show logo");

View File

@ -167,6 +167,11 @@ bool Hk_SendNetMsg(void* thisptr, INetMessage& msg, bool bForceReliable = false,
} }
bool hack::Hk_CreateMove(void* thisptr, float inputSample, CUserCmd* cmd) { bool hack::Hk_CreateMove(void* thisptr, float inputSample, CUserCmd* cmd) {
if (g_pLocalPlayer->entity) {
if (g_pLocalPlayer->bWasZoomed) {
SetEntityValue(g_pLocalPlayer->entity, eoffsets.iCond, g_pLocalPlayer->cond_0 |= cond::zoomed);
}
}
bool ret = ((CreateMove_t*)hooks::hkClientMode->GetMethod(hooks::offCreateMove))(thisptr, inputSample, cmd); bool ret = ((CreateMove_t*)hooks::hkClientMode->GetMethod(hooks::offCreateMove))(thisptr, inputSample, cmd);
if (!interfaces::engineClient->IsInGame()) { if (!interfaces::engineClient->IsInGame()) {
hack::invalidated = true; hack::invalidated = true;
@ -213,6 +218,12 @@ bool hack::Hk_CreateMove(void* thisptr, float inputSample, CUserCmd* cmd) {
ret = false; ret = false;
} }
}*/ }*/
if (g_pLocalPlayer->entity) {
if (g_Settings.bNoZoom->GetBool()) {
SetEntityValue(g_pLocalPlayer->entity, eoffsets.iCond, g_pLocalPlayer->cond_0 &= ~cond::zoomed);
}
}
hack::invalidated = false; hack::invalidated = false;
if (g_pLocalPlayer->bUseSilentAngles) { if (g_pLocalPlayer->bUseSilentAngles) {
Vector vsilent(cmd->forwardmove, cmd->sidemove, cmd->upmove); Vector vsilent(cmd->forwardmove, cmd->sidemove, cmd->upmove);
@ -230,6 +241,13 @@ bool hack::Hk_CreateMove(void* thisptr, float inputSample, CUserCmd* cmd) {
void hack::Hk_FrameStageNotify(void* thisptr, int stage) { void hack::Hk_FrameStageNotify(void* thisptr, int stage) {
//logging::Info("FrameStageNotify %i", stage); //logging::Info("FrameStageNotify %i", stage);
// Ambassador to festive ambassador changer. simple. // Ambassador to festive ambassador changer. simple.
if (g_pLocalPlayer->weapon) {
int defidx = GetEntityValue<int>(g_pLocalPlayer->weapon, eoffsets.iItemDefinitionIndex);
if (defidx == 61) {
SetEntityValue<int>(g_pLocalPlayer->weapon, eoffsets.iItemDefinitionIndex, 1006);
}
}
((FrameStageNotify_t*)hooks::hkClient->GetMethod(hooks::offFrameStageNotify))(thisptr, stage);
if (stage == 5 && g_Settings.bNoFlinch->GetBool()) { if (stage == 5 && g_Settings.bNoFlinch->GetBool()) {
static Vector oldPunchAngles = Vector(); static Vector oldPunchAngles = Vector();
Vector punchAngles = GetEntityValue<Vector>(g_pLocalPlayer->entity, eoffsets.vecPunchAngle); Vector punchAngles = GetEntityValue<Vector>(g_pLocalPlayer->entity, eoffsets.vecPunchAngle);
@ -239,18 +257,13 @@ void hack::Hk_FrameStageNotify(void* thisptr, int stage) {
oldPunchAngles = punchAngles; oldPunchAngles = punchAngles;
interfaces::engineClient->SetViewAngles(viewAngles); interfaces::engineClient->SetViewAngles(viewAngles);
} }
if (g_pLocalPlayer->weapon) {
int defidx = GetEntityValue<int>(g_pLocalPlayer->weapon, eoffsets.iItemDefinitionIndex); if (g_Settings.bNoZoom->GetBool()) {
if (defidx == 61) { if (g_pLocalPlayer->entity) {
SetEntityValue<int>(g_pLocalPlayer->weapon, eoffsets.iItemDefinitionIndex, 1006); g_pLocalPlayer->bWasZoomed = GetEntityValue<int>(g_pLocalPlayer->entity, eoffsets.iCond) & cond::zoomed;
SetEntityValue(g_pLocalPlayer->entity, eoffsets.iCond, g_pLocalPlayer->cond_0 &~ cond::zoomed);
} }
} }
((FrameStageNotify_t*)hooks::hkClient->GetMethod(hooks::offFrameStageNotify))(thisptr, stage);
if (g_Settings.bNoZoom->GetBool()) {
if (g_pLocalPlayer->entity) {
SetEntityValue(g_pLocalPlayer->entity, eoffsets.iCond, g_pLocalPlayer->cond_0 &~ cond::zoomed);
}
}
} }
bool hack::Hk_DispatchUserMessage(void* thisptr, int type, bf_read& buf) { bool hack::Hk_DispatchUserMessage(void* thisptr, int type, bf_read& buf) {
@ -305,12 +318,12 @@ void hack::Initialize() {
logging::Info("Initializing surface..."); logging::Info("Initializing surface...");
draw::Initialize(); draw::Initialize();
logging::Info("Adding hacks..."); logging::Info("Adding hacks...");
SetCVarInterface(interfaces::cvar); BeginConVars();
hack::InitHacks(); hack::InitHacks();
logging::Info("Init global settings"); logging::Info("Init global settings");
g_Settings.Init(); g_Settings.Init();
InitTargetingConVars(); InitTargetingConVars();
ConVar_Register(); EndConVars();
logging::Info("Initializing NetVar tree..."); logging::Info("Initializing NetVar tree...");
gNetvars.init(); gNetvars.init();
logging::Info("Initializing entity offsets..."); logging::Info("Initializing entity offsets...");

View File

@ -66,7 +66,6 @@ Aimbot::Aimbot() {
this->v_flAutoShootHuntsmanCharge = CreateConVar("u_aimbot_huntsman_charge", "0.5", "Huntsman autoshoot charge"); this->v_flAutoShootHuntsmanCharge = CreateConVar("u_aimbot_huntsman_charge", "0.5", "Huntsman autoshoot charge");
this->v_fSmoothValue = CreateConVar("u_aimbot_smooth_value", "0.2", "Smooth value"); this->v_fSmoothValue = CreateConVar("u_aimbot_smooth_value", "0.2", "Smooth value");
this->v_iAimKey = CreateConVar("u_aimbot_aimkey", "0", "Aim Key"); this->v_iAimKey = CreateConVar("u_aimbot_aimkey", "0", "Aim Key");
this->v_bAmbassador = CreateConVar("u_aimbot_ambassador", "0", "Ambassador mode."); // TODO
this->v_iPriorityMode = CreateConVar("u_aimbot_prioritymode", "0", "Priority mode [SMART/FOV/DISTANCE/HEALTH]"); this->v_iPriorityMode = CreateConVar("u_aimbot_prioritymode", "0", "Priority mode [SMART/FOV/DISTANCE/HEALTH]");
v_bAimBuildings = CreateConVar("u_aimbot_buildings", "1", "Aim at buildings"); v_bAimBuildings = CreateConVar("u_aimbot_buildings", "1", "Aim at buildings");
v_bActiveOnlyWhenCanShoot = CreateConVar("u_aimbot_only_when_can_shoot", "1", "Aimbot active only when can shoot"); v_bActiveOnlyWhenCanShoot = CreateConVar("u_aimbot_only_when_can_shoot", "1", "Aimbot active only when can shoot");
@ -82,9 +81,11 @@ bool Aimbot::CreateMove(void*, float, CUserCmd* cmd) {
bool key_down = interfaces::input->IsButtonDown((ButtonCode_t)this->v_iAimKey->GetInt()); bool key_down = interfaces::input->IsButtonDown((ButtonCode_t)this->v_iAimKey->GetInt());
switch (this->v_iAimKeyMode->GetInt()) { switch (this->v_iAimKeyMode->GetInt()) {
case AimKeyMode_t::PRESS_TO_ENABLE: case AimKeyMode_t::PRESS_TO_ENABLE:
break; if (key_down) break;
else return true;
case AimKeyMode_t::PRESS_TO_DISABLE: case AimKeyMode_t::PRESS_TO_DISABLE:
return true; if (key_down) return true;
else break;
case AimKeyMode_t::PRESS_TO_TOGGLE: case AimKeyMode_t::PRESS_TO_TOGGLE:
m_bAimKeySwitch = !m_bAimKeySwitch; m_bAimKeySwitch = !m_bAimKeySwitch;
if (!m_bAimKeySwitch) return true; if (!m_bAimKeySwitch) return true;
@ -116,12 +117,9 @@ bool Aimbot::CreateMove(void*, float, CUserCmd* cmd) {
} }
} }
if (this->v_bAmbassador->GetBool()) { if (IsAmbassador(g_pLocalPlayer->weapon)) {
// TODO defindex check if ((interfaces::gvars->curtime - GetEntityValue<float>(g_pLocalPlayer->weapon, eoffsets.flLastFireTime)) <= 1.0) {
if (g_pLocalPlayer->weapon && g_pLocalPlayer->weapon->GetClientClass()->m_ClassID == ClassID::CTFRevolver) { return true;
if ((interfaces::gvars->curtime - GetEntityValue<float>(g_pLocalPlayer->weapon, eoffsets.flLastFireTime)) <= 1.0) {
return true;
}
} }
} }
@ -149,7 +147,7 @@ bool Aimbot::CreateMove(void*, float, CUserCmd* cmd) {
m_iHitbox = 0; m_iHitbox = 0;
break; break;
case ClassID::CTFRevolver: case ClassID::CTFRevolver:
if (this->v_bAmbassador->GetBool()) { if (IsAmbassador(g_pLocalPlayer->weapon)) {
m_iHitbox = 0; m_iHitbox = 0;
} }
} }

View File

@ -62,7 +62,6 @@ public:
ConVar* v_bProjectileAimbot; ConVar* v_bProjectileAimbot;
ConVar* v_iOverrideProjSpeed; ConVar* v_iOverrideProjSpeed;
ConVar* v_bMachinaPenetration; ConVar* v_bMachinaPenetration;
ConVar* v_bAmbassador;
ConVar* v_bAimBuildings; ConVar* v_bAimBuildings;
ConVar* v_bActiveOnlyWhenCanShoot; ConVar* v_bActiveOnlyWhenCanShoot;
ConVar* v_fSmoothAutoshootTreshold; ConVar* v_fSmoothAutoshootTreshold;

View File

@ -17,7 +17,7 @@ const char* AntiDisguise::GetName() {
} }
AntiDisguise::AntiDisguise() { AntiDisguise::AntiDisguise() {
v_bEnabled = CreateConVar("u_antidisguise", "1", "Disables spy disguise"); v_bEnabled = CreateConVar("u_antidisguise", "0", "Disables spy disguise");
} }
void AntiDisguise::PaintTraverse(void*, unsigned int, bool, bool) { void AntiDisguise::PaintTraverse(void*, unsigned int, bool, bool) {

View File

@ -27,9 +27,10 @@ bool IsReflectableProjectile(IClientEntity* ent) {
case ClassID::CTFProjectile_JarMilk: case ClassID::CTFProjectile_JarMilk:
case ClassID::CTFProjectile_Rocket: case ClassID::CTFProjectile_Rocket:
case ClassID::CTFProjectile_SentryRocket: case ClassID::CTFProjectile_SentryRocket:
case ClassID::CTFGrenadePipebombProjectile:
case ClassID::CTFProjectile_EnergyBall: case ClassID::CTFProjectile_EnergyBall:
return true; return true;
case ClassID::CTFGrenadePipebombProjectile:
} }
return false; return false;
} }
@ -37,8 +38,10 @@ bool IsReflectableProjectile(IClientEntity* ent) {
// Hack Methods // Hack Methods
AutoReflect::AutoReflect() { AutoReflect::AutoReflect() {
v_bEnabled = CreateConVar("u_reflect_enabled", "0", "Reflectbot enabled"); v_bEnabled = CreateConVar("u_reflect_enabled", "0", "Autoreflect");
v_iReflectDistance = CreateConVar("u_reflect_distance", "300", "Reflectbot distance"); v_iReflectDistance = CreateConVar("u_reflect_distance", "200", "Autoreflect distance");
v_bDisableWhenAttacking = CreateConVar("u_reflect_only_idle", "0", "Autoreflect active only when not shooting");
v_bReflectStickies = CreateConVar("u_reflect_stickybombs", "0", "Reflect stickies");
} }
// TODO // TODO
bool AutoReflect::CreateMove(void*, float, CUserCmd* cmd) { bool AutoReflect::CreateMove(void*, float, CUserCmd* cmd) {

View File

@ -19,6 +19,8 @@ public:
DECLARE_HACK_METHODS(); DECLARE_HACK_METHODS();
AutoReflect(); AutoReflect();
ConVar* v_bEnabled; ConVar* v_bEnabled;
ConVar* v_bDisableWhenAttacking;
ConVar* v_bReflectStickies;
ConVar* v_iReflectDistance; ConVar* v_iReflectDistance;
}; };

View File

@ -20,7 +20,7 @@ const char* AutoSticky::GetName() {
AutoSticky::AutoSticky() { AutoSticky::AutoSticky() {
this->v_flDetonateDistance = CreateConVar("u_sticky_distance", "200", "Sticky detonation distance"); this->v_flDetonateDistance = CreateConVar("u_sticky_distance", "200", "Sticky detonation distance");
this->v_bBuildings = CreateConVar("u_sticky_buildings", "1", "Stickies detonate at enemies' buildings"); this->v_bBuildings = CreateConVar("u_sticky_buildings", "1", "Stickies detonate at enemies' buildings");
this->v_bEnabled = CreateConVar("u_sticky_enabled", "1", "Enable stickybot"); this->v_bEnabled = CreateConVar("u_sticky_enabled", "0", "Enable stickybot");
this->v_bScottish = CreateConVar("u_sticky_scottish", "0", "Enable stickybot scottish resistance compatability"); this->v_bScottish = CreateConVar("u_sticky_scottish", "0", "Enable stickybot scottish resistance compatability");
} }

View File

@ -17,7 +17,9 @@ const char* Bunnyhop::GetName() {
} }
Bunnyhop::Bunnyhop() { Bunnyhop::Bunnyhop() {
this->v_bEnabled = CreateConVar("u_bhop_enabled", "1", "Enable/Disable BunnyHop"); this->v_bEnabled = CreateConVar("u_bhop_enabled", "0", "Enable/Disable BunnyHop");
this->v_bAutoJump = CreateConVar("u_bhop_autojump", "0", "AutoJump");
this->v_iAutoJumpSpeed = CreateConVar("u_bhop_autojump_speed", "300", "AutoJump speed");
} }
bool bDoubleJumpFix = false; bool bDoubleJumpFix = false;
@ -29,6 +31,14 @@ bool Bunnyhop::CreateMove(void* thisptr, float sampling, CUserCmd* cmd) {
int cond3 = GetEntityValue<int>(entity, eoffsets.iCond3); int cond3 = GetEntityValue<int>(entity, eoffsets.iCond3);
if (cond3 & cond_ex3::grappling) return true; if (cond3 & cond_ex3::grappling) return true;
int flags = GetEntityValue<int>(entity, eoffsets.iFlags); int flags = GetEntityValue<int>(entity, eoffsets.iFlags);
if (v_bAutoJump->GetBool()) {
Vector vel = GetEntityValue<Vector>(g_pLocalPlayer->entity, eoffsets.vVelocity);
if (sqrt((vel.x * vel.x + vel.y * vel.y)) > v_iAutoJumpSpeed->GetInt()) {
cmd->buttons |= IN_JUMP;
}
}
bool ground = (flags & (1 << 0)); bool ground = (flags & (1 << 0));
bool jump = (cmd->buttons & IN_JUMP); bool jump = (cmd->buttons & IN_JUMP);

View File

@ -17,6 +17,8 @@ public:
DECLARE_HACK_METHODS(); DECLARE_HACK_METHODS();
Bunnyhop(); Bunnyhop();
ConVar* v_bEnabled; ConVar* v_bEnabled;
ConVar* v_bAutoJump;
ConVar* v_iAutoJumpSpeed;
}; };
DECLARE_HACK_SINGLETON(Bunnyhop); DECLARE_HACK_SINGLETON(Bunnyhop);

View File

@ -35,7 +35,7 @@ void ESP::PaintTraverse(void*, unsigned int, bool, bool) {
} }
ESP::ESP() { ESP::ESP() {
this->v_bEnabled = CreateConVar("u_esp_enabled", "1", "Enables ESP"); this->v_bEnabled = CreateConVar("u_esp_enabled", "0", "Enables ESP");
this->v_bEntityESP = CreateConVar("u_esp_entity", "0", "Entity ESP (dev)"); this->v_bEntityESP = CreateConVar("u_esp_entity", "0", "Entity ESP (dev)");
this->v_bTeammates = CreateConVar("u_esp_teammates", "0", "ESP own team"); this->v_bTeammates = CreateConVar("u_esp_teammates", "0", "ESP own team");
this->v_bItemESP = CreateConVar("u_esp_item", "0", "Item ESP (powerups, health packs, etc)"); this->v_bItemESP = CreateConVar("u_esp_item", "0", "Item ESP (powerups, health packs, etc)");
@ -53,6 +53,7 @@ ESP::ESP() {
v_bShowHealthPacks = CreateConVar("u_esp_item_health", "1", "Show health packs"); v_bShowHealthPacks = CreateConVar("u_esp_item_health", "1", "Show health packs");
v_bShowPowerups = CreateConVar("u_esp_item_powerups", "1", "Show powerups"); v_bShowPowerups = CreateConVar("u_esp_item_powerups", "1", "Show powerups");
v_bShowHealthNumbers = CreateConVar("u_esp_health_num", "1", "Show health number"); v_bShowHealthNumbers = CreateConVar("u_esp_health_num", "1", "Show health number");
v_bShowMoney = CreateConVar("u_esp_money", "1", "MvM money");
} }
#define ESP_HEIGHT 14 #define ESP_HEIGHT 14
@ -138,7 +139,7 @@ void ESP::ProcessEntityPT(CachedEntity* ent) {
} }
} }
if (ent->Var<int>(eoffsets.iTeamNum) == g_pLocalPlayer->team && !v_bTeammates->GetBool()) break; if (ent->Var<int>(eoffsets.iTeamNum) == g_pLocalPlayer->team && !v_bTeammates->GetBool()) break;
color = colors::GetTeamColor(ent->Var<int>(eoffsets.iTeamNum), false); color = colors::GetTeamColor(ent->Var<int>(eoffsets.iTeamNum), !ent->m_bIsVisible);
DrawBox(ent, color, 1.0f, 0.0f, true, ent->Var<int>(eoffsets.iBuildingHealth), ent->Var<int>(eoffsets.iBuildingMaxHealth)); DrawBox(ent, color, 1.0f, 0.0f, true, ent->Var<int>(eoffsets.iBuildingHealth), ent->Var<int>(eoffsets.iBuildingMaxHealth));
break; break;
} }
@ -175,6 +176,12 @@ void ESP::ProcessEntity(CachedEntity* ent) {
} }
break; break;
} }
case ClassID::CCurrencyPack: {
if (!v_bShowMoney->GetBool()) break;
color = colors::green;
ent->AddESPString(color, bgclr, "$$$");
ent->AddESPString(color, bgclr, "%im", (int)(ent->m_flDistance / 64 * 1.22f));
} break;
case ClassID::CBaseAnimating: { case ClassID::CBaseAnimating: {
if (!this->v_bItemESP->GetBool()) break; if (!this->v_bItemESP->GetBool()) break;
item_type type = GetItemType(ent->m_pEntity); item_type type = GetItemType(ent->m_pEntity);

View File

@ -30,6 +30,7 @@ public:
ConVar* v_bShowAmmoPacks; ConVar* v_bShowAmmoPacks;
ConVar* v_bShowHealthPacks; ConVar* v_bShowHealthPacks;
ConVar* v_bShowPowerups; ConVar* v_bShowPowerups;
ConVar* v_bShowMoney;
ConVar* v_bTeammatePowerup; ConVar* v_bTeammatePowerup;
ConVar* v_bShowHead; ConVar* v_bShowHead;
ConVar* v_bShowEntityID; ConVar* v_bShowEntityID;

View File

@ -312,6 +312,7 @@ void Misc::PaintTraverse(void*, unsigned int, bool, bool) {
GetProjectileData(g_pLocalPlayer->weapon, speed, arc, 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, "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;

View File

@ -15,7 +15,7 @@ DEFINE_HACK_SINGLETON(SpyAlert);
const char* SpyAlert::GetName() { return "SPY ALERT"; } const char* SpyAlert::GetName() { return "SPY ALERT"; }
SpyAlert::SpyAlert() { SpyAlert::SpyAlert() {
this->v_bEnabled = CreateConVar("u_spyalert_enabled", "1", "Spy alert enabled"); this->v_bEnabled = CreateConVar("u_spyalert_enabled", "0", "Spy alert enabled");
this->v_flWarningDistance = CreateConVar("u_spyalert_warning", "500.0", "Spy warning distance"); this->v_flWarningDistance = CreateConVar("u_spyalert_warning", "500.0", "Spy warning distance");
this->v_flBackstabDistance = CreateConVar("u_spyalert_backstab", "200.0", "Spy backstab warning distance"); this->v_flBackstabDistance = CreateConVar("u_spyalert_backstab", "200.0", "Spy backstab warning distance");
} }

View File

@ -9,6 +9,21 @@
#include "hooks.h" #include "hooks.h"
#include "sdk.h" #include "sdk.h"
#include <pwd.h>
FILE* hConVarsFile = 0;
void BeginConVars() {
passwd* pwd = getpwuid(getuid());
char* user = pwd->pw_name;
hConVarsFile = fopen(strfmt("/home/%s/.local/share/Steam/steamapps/common/Team Fortress 2/tf/cfg/uran.cfg", user), "w");
SetCVarInterface(interfaces::cvar);
}
void EndConVars() {
fclose(hConVarsFile);
ConVar_Register();
}
bool IsPlayerInvulnerable(IClientEntity* player) { bool IsPlayerInvulnerable(IClientEntity* player) {
int cond1 = GetEntityValue<int>(player, eoffsets.iCond); int cond1 = GetEntityValue<int>(player, eoffsets.iCond);
@ -37,6 +52,7 @@ bool IsPlayerCritBoosted(IClientEntity* player) {
ConVar* CreateConVar(const char* name, const char* value, const char* help) { ConVar* CreateConVar(const char* name, const char* value, const char* help) {
ConVar* ret = new ConVar(name, value, 0, help); ConVar* ret = new ConVar(name, value, 0, help);
fprintf(hConVarsFile, "%s %s\n", name, value);
interfaces::cvar->RegisterConCommand(ret); interfaces::cvar->RegisterConCommand(ret);
return ret; return ret;
} }
@ -578,6 +594,18 @@ bool IsSentryBuster(IClientEntity* entity) {
return (entity && entity->GetClientClass()->m_ClassID == ClassID::CTFPlayer && GetEntityValue<int>(entity, eoffsets.iClass) == tf_class::tf_demoman && g_pPlayerResource->GetMaxHealth(entity) == 2500); return (entity && entity->GetClientClass()->m_ClassID == ClassID::CTFPlayer && GetEntityValue<int>(entity, eoffsets.iClass) == tf_class::tf_demoman && g_pPlayerResource->GetMaxHealth(entity) == 2500);
} }
bool IsAmbassador(IClientEntity* entity) {
if (!entity) return false;
if (entity->GetClientClass()->m_ClassID != ClassID::CTFRevolver) return false;
int defidx = GetEntityValue<int>(entity, eoffsets.iItemDefinitionIndex);
switch (defidx) {
case 61:
case 1006:
return true;
}
return false;
}
bool CheckCE(CachedEntity* entity) { bool CheckCE(CachedEntity* entity) {
return (entity && entity->m_pEntity && !entity->m_pEntity->IsDormant()); return (entity && entity->m_pEntity && !entity->m_pEntity->IsDormant());
} }

View File

@ -29,6 +29,10 @@ class Vector;
// TODO split this shit // TODO split this shit
extern FILE* hConVarsFile;
void BeginConVars();
void EndConVars();
bool IsPlayerCritBoosted(IClientEntity* player); bool IsPlayerCritBoosted(IClientEntity* player);
bool IsPlayerInvulnerable(IClientEntity* player); bool IsPlayerInvulnerable(IClientEntity* player);
bool IsPlayerInvisible(IClientEntity* player); bool IsPlayerInvisible(IClientEntity* player);
@ -62,6 +66,7 @@ bool IsVectorVisible(Vector a, Vector b);
relation GetRelation(IClientEntity* ent); relation GetRelation(IClientEntity* ent);
bool IsSentryBuster(IClientEntity* ent); bool IsSentryBuster(IClientEntity* ent);
char* strfmt(const char* fmt, ...); char* strfmt(const char* fmt, ...);
bool IsAmbassador(IClientEntity* ent);
void AimAt(Vector origin, Vector target, CUserCmd* cmd); void AimAt(Vector origin, Vector target, CUserCmd* cmd);
void AimAtHitbox(IClientEntity* ent, int hitbox, CUserCmd* cmd); void AimAtHitbox(IClientEntity* ent, int hitbox, CUserCmd* cmd);

View File

@ -26,6 +26,8 @@ public:
int cond_2; int cond_2;
int cond_3; int cond_3;
bool bWasZoomed;
bool bIsReloading; bool bIsReloading;
Vector v_ViewOffset; Vector v_ViewOffset;

View File

@ -12,9 +12,9 @@
#include "fixsdk.h" #include "fixsdk.h"
#include <icliententity.h> #include <icliententity.h>
bool IsAmbassador(IClientEntity* weapon) { //bool IsAmbassador(IClientEntity* weapon) {
return false; // return false;
} //}
/*int g_MeleeList[] = { /*int g_MeleeList[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 37, 0, 1, 2, 3, 4, 5, 6, 7, 8, 37,

View File

@ -10,7 +10,7 @@
class IClientEntity; class IClientEntity;
bool IsAmbassador(IClientEntity* entity); //bool IsAmbassador(IClientEntity* entity);
/*extern int g_MeleeList[]; /*extern int g_MeleeList[];