wew
This commit is contained in:
parent
61654ba5e8
commit
5ae97a724f
@ -1 +1 @@
|
||||
Subproject commit 94a287d6faa00d44e1084b04e602842849858443
|
||||
Subproject commit e532876ffd707a48389d54ff904dcc40a84f2839
|
@ -52,7 +52,6 @@ static CatVar priority_mode(priority_mode_enum, "aimbot_prioritymode", "0", "Pri
|
||||
"SMART: Basically Auto-Threat. Will be tweakable eventually. "
|
||||
"FOV, DISTANCE, HEALTH are self-explainable. HEALTH picks the weakest enemy");
|
||||
static CatVar wait_for_charge(CV_SWITCH, "aimbot_charge", "0", "Wait for sniper rifle charge", "Aimbot waits until it has enough charge to kill");
|
||||
static CatVar wait_for_charge_bypass(CV_SWITCH, "aimbot_charge_if_full", "1", "Sniper rifle will shoot at 100% charge even if the shot will not kill", "Aimbot waits until 100% charge");
|
||||
static CatVar ignore_vaccinator(CV_SWITCH, "aimbot_ignore_vaccinator", "1", "Ignore Vaccinator", "Hitscan weapons won't fire if enemy is vaccinated against bullets");
|
||||
static CatVar ignore_hoovy(CV_SWITCH, "aimbot_ignore_hoovy", "0", "Ignore Hoovies", "Aimbot won't attack hoovies");
|
||||
static CatVar ignore_cloak(CV_SWITCH, "aimbot_ignore_cloak", "1", "Ignore cloaked", "Don't aim at invisible enemies");
|
||||
@ -121,7 +120,6 @@ bool silent_huntsman { false };
|
||||
// for current frame, to avoid performing them again
|
||||
AimbotCalculatedData_s calculated_data_array[2048] {};
|
||||
|
||||
// The main "loop" of the aimbot.
|
||||
// The main "loop" of the aimbot.
|
||||
void CreateMove() {
|
||||
|
||||
@ -375,8 +373,8 @@ bool IsTargetStateGood(CachedEntity* entity) {
|
||||
if (wait_for_charge && g_pLocalPlayer->holding_sniper_rifle) {
|
||||
// Grab netvar for current charge damage and multiply by 3 for headshot
|
||||
float cdmg = CE_FLOAT(LOCAL_W, netvar.flChargedDamage) * 3;
|
||||
bool maxCharge = cdmg >= 450.0F;
|
||||
|
||||
if (!(cdmg == 450.0f && wait_for_charge_bypass)) {
|
||||
// Darwins damage correction, Darwins protects against 15% of damage
|
||||
if (HasDarwins(entity))
|
||||
cdmg = (cdmg * .85) - 1;
|
||||
@ -391,12 +389,13 @@ bool IsTargetStateGood(CachedEntity* entity) {
|
||||
if (IsPlayerInvisible(entity))
|
||||
cdmg = (cdmg * .80) - 1;
|
||||
|
||||
|
||||
// Check if player will die from headshot or if target has more health than normal overheal allows.
|
||||
if ( !(entity->m_iHealth <= 150 || entity->m_iHealth <= cdmg || !g_pLocalPlayer->bZoomed || entity->m_iHealth > entity->m_iMaxHealth + (entity->m_iMaxHealth * 0.5)) ) {
|
||||
if ( !(entity->m_iHealth <= 150 || entity->m_iHealth <= cdmg || !g_pLocalPlayer->bZoomed || entity->m_iHealth > entity->m_iMaxHealth + (entity->m_iMaxHealth * 0.5) || maxCharge && entity->m_iHealth > 450.0F) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If settings allow, ignore taunting players
|
||||
if (ignore_taunting && HasCondition<TFCond_Taunting>(entity)) return false;
|
||||
// Dont target invulnerable players, ex: uber, bonk
|
||||
|
@ -52,7 +52,7 @@ float idle_time = 0;
|
||||
// Vars for breadcrumb followbot
|
||||
|
||||
// An array for storing the breadcrumbs
|
||||
static Vector breadcrumbs [55];
|
||||
static Vector breadcrumbs [64];
|
||||
// Array Bookkeeping vars
|
||||
int crumbBottom = 0;
|
||||
int crumbTop = 0;
|
||||
@ -400,6 +400,16 @@ void DoWalking() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
//Check if target is crouching
|
||||
if () {
|
||||
|
||||
// Check if local player isnt taunting
|
||||
if (!g_pUserCmd->buttons & IN_DUCK) {
|
||||
g_pUserCmd->buttons |= IN_DUCK;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -637,7 +647,7 @@ void CrumbReset() {
|
||||
void CrumbTopAdd(Vector crumbToAdd) {
|
||||
|
||||
// Once the crumbs have hit the limit of the array, loop around and over write unused spots
|
||||
if (crumbTop == 55) {
|
||||
if (crumbTop == 64) {
|
||||
crumbTop = 0;
|
||||
} else {
|
||||
// Else, bump the top number market of the array
|
||||
@ -650,7 +660,7 @@ void CrumbTopAdd(Vector crumbToAdd) {
|
||||
logging::Info("Crumb Top add");
|
||||
|
||||
// The array can only hold so many crumbs, once it goes over its cap, stop the bot to prevent un-needed movement
|
||||
if (crumbArrayLength > 55) {
|
||||
if (crumbArrayLength > 64) {
|
||||
CrumbReset();
|
||||
crumbStopped = true;
|
||||
logging::Info("Crumb Overload!\nDumping array");
|
||||
@ -661,7 +671,7 @@ void CrumbTopAdd(Vector crumbToAdd) {
|
||||
void CrumbBottomAdd() {
|
||||
|
||||
// Once the crumbs have hit the limit of the array, loop around and over write unused spots
|
||||
if (crumbBottom == 55) {
|
||||
if (crumbBottom == 64) {
|
||||
crumbBottom = 0;
|
||||
} else {
|
||||
// Else, bump the top number market of the array
|
||||
@ -746,10 +756,10 @@ void DrawFollowbot() {
|
||||
tmpCrumb2 = crumbBottom + i + 1;
|
||||
|
||||
// Correction for array numbers when one goes over our limit
|
||||
if (tmpCrumb1 >= 55)
|
||||
tmpCrumb1 - 55;
|
||||
if (tmpCrumb2 >= 55)
|
||||
tmpCrumb1 - 55;
|
||||
if (tmpCrumb1 >= 64)
|
||||
tmpCrumb1 - 64;
|
||||
if (tmpCrumb2 >= 64)
|
||||
tmpCrumb1 - 64;
|
||||
|
||||
// Take our 2 crumbs and get a position on the screen
|
||||
draw::WorldToScreen(breadcrumbs[tmpCrumb1], scnSrt);
|
||||
@ -794,10 +804,10 @@ void DrawFollowbot() {
|
||||
tmpCrumb2 = crumbBottom + i + 1;
|
||||
|
||||
// Correction for array numbers when one goes over our limit
|
||||
if (tmpCrumb1 >= 55)
|
||||
tmpCrumb1 - 55;
|
||||
if (tmpCrumb2 >= 55)
|
||||
tmpCrumb2 - 55;
|
||||
if (tmpCrumb1 >= 64)
|
||||
tmpCrumb1 - 64;
|
||||
if (tmpCrumb2 >= 64)
|
||||
tmpCrumb2 - 64;
|
||||
|
||||
// Take our 2 crumbs and get a position on the screen
|
||||
draw::WorldToScreen(breadcrumbs[tmpCrumb1], scnSrt);
|
||||
|
@ -142,7 +142,7 @@ static CatCommand test_chat_print("debug_print_chat", "machine broke", [](const
|
||||
}
|
||||
});
|
||||
|
||||
float afkTimeIdle = 0;
|
||||
|
||||
static CatVar tauntslide_tf2(CV_SWITCH, "tauntslide_tf2", "0", "Tauntslide", "Allows free movement while taunting with movable taunts\nOnly works in tf2\nWIP");
|
||||
|
||||
void CreateMove() {
|
||||
@ -320,22 +320,29 @@ void CreateMove() {
|
||||
flswitch = !flswitch;
|
||||
}
|
||||
|
||||
static float afkTimeIdle = 0;
|
||||
// Check if user settings allow anti-afk
|
||||
if (anti_afk) {
|
||||
|
||||
// If the timer exceeds 1 minute, jump and reset the timer
|
||||
if ( g_GlobalVars->curtime - afkTimeIdle > 60 ) {
|
||||
if (g_GlobalVars->curtime - 60 > afkTimeIdle) {
|
||||
|
||||
// If player didnt jump, then we dont reset the timer
|
||||
if (CE_INT(g_pLocalPlayer->entity, netvar.movetype) == MOVETYPE_FLY)
|
||||
// Send random commands
|
||||
g_pUserCmd->sidemove = RandFloatRange(-450.0, 450.0);
|
||||
g_pUserCmd->forwardmove = RandFloatRange(-450.0, 450.0);
|
||||
g_pUserCmd->buttons = rand();
|
||||
|
||||
// After 1 second we reset the idletime
|
||||
if (g_GlobalVars->curtime - 61 > afkTimeIdle) {
|
||||
logging::Info("Finish anti-idle");
|
||||
afkTimeIdle = g_GlobalVars->curtime;
|
||||
|
||||
// Attemt to jump
|
||||
g_pUserCmd->buttons = g_pUserCmd->buttons &~ IN_JUMP;
|
||||
}
|
||||
} else {
|
||||
// If the player uses a button, reset the timer
|
||||
if (g_pUserCmd->buttons & IN_FORWARD || g_pUserCmd->buttons & IN_BACK || g_pUserCmd->buttons & IN_MOVELEFT || g_pUserCmd->buttons & IN_MOVERIGHT || g_pUserCmd->buttons & IN_JUMP || !LOCAL_E->m_bAlivePlayer)
|
||||
afkTimeIdle = g_GlobalVars->curtime;
|
||||
}
|
||||
}
|
||||
|
||||
IF_GAME (IsTF2()) {
|
||||
if (nopush_enabled == pNoPush-> GetBool()) pNoPush->SetValue (!nopush_enabled);
|
||||
|
Reference in New Issue
Block a user