This commit is contained in:
julianacat 2017-07-21 13:46:24 -05:00
parent 61654ba5e8
commit 5ae97a724f
4 changed files with 60 additions and 44 deletions

@ -1 +1 @@
Subproject commit 94a287d6faa00d44e1084b04e602842849858443
Subproject commit e532876ffd707a48389d54ff904dcc40a84f2839

View File

@ -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

View File

@ -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);

View File

@ -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 )
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);