Spectated Aimbot (#1025)

* Changed capitalization

* A Few Changes

* Spectated Aimbot

* Spectated Aimbot

* Update Aimbot.cpp

* ok then

* update

* Set max tooltip length back to 300

Co-authored-by: TotallyNotElite <38938720+TotallyNotElite@users.noreply.github.com>
This commit is contained in:
LightPower392 2020-05-29 06:20:47 -07:00 committed by GitHub
parent 6e5c9123cf
commit 1407c8de69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 120 additions and 96 deletions

View File

@ -1,9 +1,9 @@
<Tab name="Aimbot" padding="6 6 6 6">
<Box padding="12 6 6 6" width="content" height="content" name="Aimbot">
<List width="150">
<AutoVariable width="fill" target="aimbot.enable" label="Enable Aimbot"/>
<AutoVariable width="fill" target="aimbot.aimkey.button" label="Aim Key" tooltip="Key which needs to be pressed to activate the action below."/>
<LabeledObject width="fill" label="Aim Key Mode" tooltip="Controls what the aimkey does.">
<AutoVariable width="fill" target="aimbot.enable" label="Enable aimbot"/>
<AutoVariable width="fill" target="aimbot.aimkey.button" label="Aim key" tooltip="Key which needs to be pressed to activate the action below."/>
<LabeledObject width="fill" label="Aim key mode" tooltip="Controls what the aimkey does.">
<Select target="aimbot.aimkey.mode">
<Option name="Disable" value="0"/>
<Option name="Pressed" value="1"/>
@ -12,37 +12,30 @@
</Select>
</LabeledObject>
<AutoVariable width="fill" target="aimbot.silent" label="Silent" tooltip="Stops your crosshair from moving on your screen."/>
<LabeledObject width="fill" label="Spectator mode" tooltip="How should aimbot react to spectators?">
<Select target="aimbot.spectator-mode">
<Option name="Always on" value="0"/>
<Option name="Firstperson" value="1" tooltip="Disable if at least one spectator is in firstperson."/>
<Option name="Spectated" value="2" tooltip="Disable if you are being spectated in first- or thirdperson."/>
</Select>
</LabeledObject>
<AutoVariable width="fill" target="aimbot.slow" label="Slow Aimbot" min="0" max="30"/>
<AutoVariable width="fill" target="aimbot.fov" label="FOV" tooltip="Restricts the Aimbot to a certain FOV from the crosshair."/>
<AutoVariable width="fill" target="aimbot.fov-circle.enable" label="FOV Circle" tooltip="Shows the Aimbot's FOV."/>
<AutoVariable width="fill" target="aimbot.fov-circle.opacity" label="FOV Opacity" min="0" max="1" step="0.05" tooltip="Controls the FOV circle's opacity."/>
<AutoVariable width="fill" target="aimbot.can-shoot-only" label="Only Shoot When Able"/>
<AutoVariable width="fill" target="aimbot.miss-chance" label="Miss Chance" tooltip="% chance the aimbot will miss on purpose."/>
<AutoVariable width="fill" target="aimbot.slow" label="Slow aimbot" min="0" max="30"/>
<AutoVariable width="fill" target="aimbot.fov" label="FOV" tooltip="Restricts the aimbot to a certain FOV from the crosshair."/>
<AutoVariable width="fill" target="aimbot.fov-circle.enable" label="FOV circle" tooltip="Shows the Aimbot's FOV."/>
<AutoVariable width="fill" target="aimbot.fov-circle.opacity" label="FOV opacity" min="0" max="1" step="0.05" tooltip="Controls the FOV circle's opacity."/>
<AutoVariable width="fill" target="aimbot.can-shoot-only" label="Only shoot when able"/>
<AutoVariable width="fill" target="aimbot.miss-chance" label="Miss chance" tooltip="% chance the aimbot will miss on purpose."/>
<AutoVariable width="fill" target="aimbot.extrapolate" label="Extrapolate"/>
<AutoVariable width="fill" target="aimbot.zoomed-only" label="Zoomed Only" tooltip="If applicable, the aimbot will only shoot if you are scoped in."/>
<AutoVariable width="fill" target="aimbot.zoomed-only" label="Zoomed only" tooltip="If applicable, the aimbot will only shoot if you are scoped in."/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Autoshoot" x="340">
<Box padding="12 6 6 6" width="content" height="content" name="Autoshoot" y="215">
<List width="150">
<AutoVariable width="fill" target="aimbot.autoshoot" label="Enable Autoshoot"/>
<AutoVariable width="fill" target="aimbot.wait-for-charge" label="Wait for Charge" tooltip="Hold fire until a single shot is enough to kill the target."/>
<AutoVariable width="fill" target="aimbot.autoshoot-disguised" label="Autoshoot Disguised" tooltip="Allow autoshoot while disguised"/>
<AutoVariable width="fill" target="aimbot.auto.spin-up" label="Auto Spin-up" tooltip="Spin up the minigun automatically if an enemy is found."/>
<AutoVariable width="fill" target="aimbot.auto.tapfire" label="Tapfire Minigun"/>
<AutoVariable width="fill" target="aimbot.auto.zoom" label="Auto Zoom"/>
<AutoVariable width="fill" target="aimbot.auto.unzoom" label="Auto Unzoom"/>
<AutoVariable width="fill" target="aimbot.autoshoot" label="Enable autoshoot"/>
<AutoVariable width="fill" target="aimbot.wait-for-charge" label="Wait for charge" tooltip="Hold fire until a single shot is enough to kill the target."/>
<AutoVariable width="fill" target="aimbot.autoshoot-disguised" label="Autoshoot disguised" tooltip="Allow autoshoot while disguised"/>
<AutoVariable width="fill" target="aimbot.auto.spin-up" label="Auto spin-up" tooltip="Spin up the minigun automatically if an enemy is found."/>
<AutoVariable width="fill" target="aimbot.auto.tapfire" label="Tapfire minigun"/>
<AutoVariable width="fill" target="aimbot.auto.zoom" label="Auto zoom"/>
<AutoVariable width="fill" target="aimbot.auto.unzoom" label="Auto unzoom"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Target Selection" x="170">
<Box padding="12 6 6 6" width="content" height="content" name="Target selection" x="170">
<List width="150">
<LabeledObject width="fill" label="Priority Mode">
<LabeledObject width="fill" label="Priority mode">
<Select target="aimbot.priority-mode">
<Option name="Smart" value="0"/>
<Option name="FOV" value="1"/>
@ -52,14 +45,14 @@
<Option name="Health (Highest)" value="5"/>
</Select>
</LabeledObject>
<LabeledObject width="fill" label="Target Team">
<LabeledObject width="fill" label="Target team">
<Select target="aimbot.target.teammates">
<Option name="Enemies" value="0"/>
<Option name="Teammates" value="1"/>
<Option name="All" value="2"/>
</Select>
</LabeledObject>
<LabeledObject width="fill" label="Hitbox Mode">
<LabeledObject width="fill" label="Hitbox mode">
<Select target="aimbot.hitbox-mode">
<Option name="Auto" value="0"/>
<Option name="Auto closest" value="1"/>
@ -88,57 +81,71 @@
<Option name="Right Foot" value="17"/>
</Select>
</LabeledObject>
<AutoVariable width="fill" target="aimbot.target.max-range" label="Max Range"/>
<AutoVariable width="fill" target="aimbot.target.max-range" label="Max range"/>
<AutoVariable width="fill" target="aimbot.multipoint" label="Multipoint"/>
<AutoVariable width="fill" target="aimbot.assistance.only" label="Assistance Only" tooltip="Aimbot is only active if your mouse has moved in the last half second."/>
<AutoVariable width="fill" target="aimbot.assistance.only" label="Assistance only" tooltip="Aimbot will only activate if your mouse has moved in the last half second."/>
<AutoVariable width="fill" target="aimbot.lock-target" label="Lock Target" tooltip="Lock onto a target until they die or leave your fov."/>
<AutoVariable width="fill" target="aimbot.target.ignore-non-rage" label="Rage Only"/>
<AutoVariable width="fill" target="aimbot.target.stickybomb" label="Aim at Stickybombs"/>
<AutoVariable width="fill" target="aimbot.target.sentry" label="Aim at Sentry Guns"/>
<AutoVariable width="fill" target="aimbot.target.other-buildings" label="Aim at Other Buildings"/>
<AutoVariable width="fill" target="aimbot.target.ignore-cloaked-spies" label="Ignore Cloaked Spies"/>
<AutoVariable width="fill" target="aimbot.target.ignore-non-rage" label="Rage only"/>
<AutoVariable width="fill" target="aimbot.target.stickybomb" label="Aim at stickybombs"/>
<AutoVariable width="fill" target="aimbot.target.sentry" label="Aim at sentry guns"/>
<AutoVariable width="fill" target="aimbot.target.other-buildings" label="Aim at other buildings"/>
<AutoVariable width="fill" target="aimbot.target.ignore-cloaked-spies" label="Ignore cloaked Spies"/>
<AutoVariable width="fill" target="aimbot.target.ignore-vaccinator" label="Ignore Vaccinator Uber"/>
<AutoVariable width="fill" target="aimbot.target.ignore-deadringer" label="Ignore Dead Ringer Spies"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Projectile Aimbot" y="225">
<Box padding="12 6 6 6" width="content" height="content" name="Projectile Aimbot" x="170" y="255">
<List width="150">
<AutoVariable width="fill" target="aimbot.no-spread" label="No Spread" tooltip="Projectiles won't have any spread. Independant of aimbot."/>
<AutoVariable width="fill" target="aimbot.projectile.enable" label="Enable Projectile Aimbot"/>
<AutoVariable width="fill" target="aimbot.projectile.gravity" label="Gravity Override"/>
<AutoVariable width="fill" target="aimbot.projectile.speed" label="Velocity Override"/>
<AutoVariable width="fill" target="aimbot.projectile.huntsman-autoshoot" label="Bow Threshold"/>
<AutoVariable width="fill" target="aimbot.projectile.sticky-autoshoot" label="Sticky Threshold"/>
<AutoVariable width="fill" target="aimbot.projectile.enable" label="Enable projectile aimbot"/>
<AutoVariable width="fill" target="aimbot.projectile.gravity" label="Gravity override"/>
<AutoVariable width="fill" target="aimbot.projectile.speed" label="Velocity override"/>
<AutoVariable width="fill" target="aimbot.projectile.huntsman-autoshoot" label="Bow threshold"/>
<AutoVariable width="fill" target="aimbot.projectile.sticky-autoshoot" label="Sticky threshold"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Backtracking" x="340" y="125">
<Box padding="12 6 6 6" width="content" height="content" name="Spectated mode" x="340">
<List width="150">
<AutoVariable width="fill" target="backtrack.enabled" label="Enable Backtracking" tooltip="Allow hitting enemies in the past."/>
<AutoVariable width="fill" target="aimbot.backtrack" label="Aim at Backtracking" tooltip="Aim at Backtrack ticks"/>
<AutoVariable width="fill" target="misc.ping-reducer.enable" label="Ping Reducer"/>
<AutoVariable width="fill" target="misc.ping-reducer.target" label="Target Ping"/>
<AutoVariable width="fill" target="backtrack.latency" label="Fake Latency" min="0" max="1000" step="25"/>
<AutoVariable width="fill" target="backtrack.draw" label="Draw Backtrack" tooltip="Draw ticks on screen"/>
<AutoVariable width="fill" target="backtrack.chams" label="Backtrack Chams" tooltip="Draw Chams for the ticks (Note that transparent viewmodels make them transparent if the entity being backtracked walks off-screen)"/>
<AutoVariable width="fill" target="backtrack.chams.ticks" label="Chams Amount" tooltip="How many ticks to draw (WARNING, this can cause lag)"/>
<AutoVariable width="fill" target="backtrack.chams.color" label="Chams Color" tooltip="Color for the chams."/>
<AutoVariable width="fill" target="backtrack.chams.color.solid" label="Solid Color" tooltip="Draw a Solid color instead of tinting the model"/>
<LabeledObject width="fill" label="Backtrack Slots">
<LabeledObject width="fill" label="Spectator mode" tooltip="Always on: the settings below will never override main aimbot settings. Firstperson: enable below settings if at least one person is spectating you in first person. Spectated: enable below settings if you are being spectated at all.">
<Select target="aimbot.spectator-mode">
<Option name="Always on" value="0"/>
<Option name="Firstperson" value="1"/>
<Option name="Spectated" value="2"/>
</Select>
</LabeledObject>
<AutoVariable width="fill" target="aimbot.spectator.enable" label="Aimbot enable" tooltip="Should the aimbot be enabled based on the above?"/>
<AutoVariable width="fill" target="aimbot.spectator.fov" label="Spectated FOV" tooltip="FOV for the aimbot when in spectated mode."/>
<AutoVariable width="fill" target="aimbot.spectator.slow" label="Spectated slow" min="0" max="30"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Backtracking" x="340" y="85">
<List width="150">
<AutoVariable width="fill" target="backtrack.enabled" label="Enable backtracking" tooltip="Allow hitting enemies in the past."/>
<AutoVariable width="fill" target="aimbot.backtrack" label="Aim at backtracking" tooltip="Aim at backtrack ticks"/>
<AutoVariable width="fill" target="misc.ping-reducer.enable" label="Ping reducer"/>
<AutoVariable width="fill" target="misc.ping-reducer.target" label="Target ping"/>
<AutoVariable width="fill" target="backtrack.latency" label="Fake latency" min="0" max="1000" step="25"/>
<AutoVariable width="fill" target="backtrack.draw" label="Draw backtrack" tooltip="Draw ticks on screen"/>
<AutoVariable width="fill" target="backtrack.chams" label="Backtrack chams" tooltip="Draw chams for the ticks (note that transparent viewmodels make them transparent if the entity being backtracked walks off-screen)"/>
<AutoVariable width="fill" target="backtrack.chams.ticks" label="Chams amount" tooltip="How many ticks to draw (WARNING, this can cause lag)"/>
<AutoVariable width="fill" target="backtrack.chams.color" label="Chams color" tooltip="Color for the chams."/>
<AutoVariable width="fill" target="backtrack.chams.color.solid" label="Solid color" tooltip="Draw a solid color instead of tinting the model"/>
<LabeledObject width="fill" label="Backtrack slots">
<Select target="backtrack.slots">
<Option name="All" value="0"/>
<Option name="Primary" value="1"/>
<Option name="Secondary" value="2"/>
<Option name="Melee" value="3"/>
<Option name="Primary + Secondary" value="4"/>
<Option name="Primary + Melee" value="5"/>
<Option name="Secondary + Melee" value="6"/>
<Option name="Primary + secondary" value="4"/>
<Option name="Primary + melee" value="5"/>
<Option name="Secondary + melee" value="6"/>
</Select>
</LabeledObject>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich Aimbot" x="170" y="255">
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich aimbot" x="340" y="280">
<List width="150">
<AutoVariable width="fill" target="sandwichaim.enable" label="Enable Sandvich Aimbot"/>
<AutoVariable width="fill" target="sandwichaim.enable" label="Enable Sandvich aimbot"/>
<AutoVariable width="fill" target="sandwichaim.aimkey" label="Aimkey"/>
<LabeledObject width="fill" label="Aimkey Mode">
<Select target="sandwichaim.aimkey-mode">

0
data/menu/nullifiedcat/misc/autoequip.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/misc/autoload.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/misc/buildings.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/misc/datacenters.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/trigger/autopyro.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/trigger/autospy.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/visuals/bullettracers.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/visuals/playerinfo.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/visuals/ui.xml Normal file → Executable file
View File

0
data/menu/nullifiedcat/visuals/uicolors.xml Normal file → Executable file
View File

View File

@ -62,7 +62,7 @@ public:
// Properties
HAlign align_x{ HAlign::LEFT };
VAlign align_y{ VAlign::CENTER };
VAlign align_y{ VAlign::TOP };
fonts::font *font{ nullptr };
const rgba_t *color_text{ nullptr };

View File

@ -26,7 +26,7 @@
namespace hacks::shared::aimbot
{
static settings::Boolean enable{ "aimbot.enable", "false" };
static settings::Boolean normal_enable{ "aimbot.enable", "false" };
static settings::Button aimkey{ "aimbot.aimkey.button", "<null>" };
static settings::Int aimkey_mode{ "aimbot.aimkey.mode", "1" };
static settings::Boolean autoshoot{ "aimbot.autoshoot", "1" };
@ -34,7 +34,7 @@ static settings::Boolean autoreload{ "aimbot.autoshoot.activate-heatmaker", "fal
static settings::Boolean autoshoot_disguised{ "aimbot.autoshoot-disguised", "1" };
static settings::Boolean multipoint{ "aimbot.multipoint", "false" };
static settings::Int hitbox_mode{ "aimbot.hitbox-mode", "0" };
static settings::Float fov{ "aimbot.fov", "0" };
static settings::Float normal_fov{ "aimbot.fov", "0" };
static settings::Int priority_mode{ "aimbot.priority-mode", "0" };
static settings::Boolean wait_for_charge{ "aimbot.wait-for-charge", "0" };
@ -48,7 +48,7 @@ static settings::Boolean zoomed_only{ "aimbot.zoomed-only", "1" };
static settings::Boolean only_can_shoot{ "aimbot.can-shoot-only", "1" };
static settings::Boolean extrapolate{ "aimbot.extrapolate", "0" };
static settings::Int slow_aim{ "aimbot.slow", "0" };
static settings::Int normal_slow_aim{ "aimbot.slow", "0" };
static settings::Int miss_chance{ "aimbot.miss-chance", "0" };
static settings::Boolean projectile_aimbot{ "aimbot.projectile.enable", "true" };
@ -85,6 +85,41 @@ static settings::Int teammates{ "aimbot.target.teammates", "0" };
* 2 Disable if being spectated
*/
static settings::Int specmode("aimbot.spectator-mode", "0");
static settings::Boolean specenable("aimbot.spectator.enable", "0");
static settings::Float specfov("aimbot.spectator.fov", "0");
static settings::Int specslow("aimbot.spectator.slow", "0");
int slow_aim;
float fov;
bool enable;
static void spectatorUpdate()
{
switch (*specmode)
{
// Always on
default:
case 0:
break;
// Disable if being spectated in first person
case 1:
if (g_pLocalPlayer->spectator_state == g_pLocalPlayer->FIRSTPERSON)
{
enable = *specenable;
slow_aim = *specslow;
fov = *specfov;
}
break;
// Disable if being spectated
case 2:
if (g_pLocalPlayer->spectator_state != g_pLocalPlayer->NONE)
{
enable = *specenable;
slow_aim = *specslow;
fov = *specfov;
}
};
}
#if ENABLE_VISUALS
static settings::Boolean fov_draw{ "aimbot.fov-circle.enable", "0" };
@ -134,11 +169,11 @@ static bool CarryingHeatmaker()
bool aimbotTickFilter(CachedEntity *ent, hacks::tf2::backtrack::BacktrackData tick)
{
// FOV check
if (*fov > 0.0f)
if (fov > 0.0f)
{
float fov_scr = GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye, tick.hitboxes.at(0).center);
// Failed FOV check
if (fov_scr > *fov)
if (fov_scr > fov)
return false;
}
// Not hitscan, no vischeck needed
@ -198,10 +233,17 @@ AimbotCalculatedData_s calculated_data_array[2048]{};
// The main "loop" of the aimbot.
static void CreateMove()
{
if (!enable)
return;
if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer() || CE_BAD(LOCAL_W))
return;
enable = *normal_enable;
slow_aim = *normal_slow_aim;
fov = *normal_fov;
spectatorUpdate();
if (!enable)
return;
doAutoZoom(false);
@ -382,28 +424,6 @@ bool MouseMoving()
}
#endif
// Check if we are allowed to aim based on the current spectator state
static bool ShouldAimSpectator()
{
switch (*specmode)
{
// Always on
default:
case 0:
break;
// Disable if being spectated in first person
case 1:
if (g_pLocalPlayer->spectator_state == g_pLocalPlayer->FIRSTPERSON)
return false;
break;
// Disable if being spectated
case 2:
if (g_pLocalPlayer->spectator_state != g_pLocalPlayer->NONE)
return false;
};
return true;
}
// The first check to see if the player should aim in the first place
bool ShouldAim()
{
@ -470,9 +490,6 @@ bool ShouldAim()
}
}
}
// Check if we are allowed to aim based on the current spectator state
if (!ShouldAimSpectator())
return false;
return true;
}
@ -729,7 +746,7 @@ bool IsTargetStateGood(CachedEntity *entity)
else if (!IsVectorVisible(pos, entity->hitboxes.GetHitbox(cd.hitbox)->center, false, ENTITY(sentry)))
return false;
}
if (*fov > 0.0f && cd.fov > *fov)
if (fov > 0.0f && cd.fov > fov)
return false;
return true;
@ -787,7 +804,7 @@ bool IsTargetStateGood(CachedEntity *entity)
if (!IsVectorVisible(pos, GetBuildingPosition(entity), false, ENTITY(sentry)))
return false;
}
if (*fov > 0.0f && cd.fov > *fov)
if (fov > 0.0f && cd.fov > fov)
return false;
return true;
@ -847,7 +864,7 @@ bool IsTargetStateGood(CachedEntity *entity)
else if (!IsVectorVisible(pos, entity->m_vecOrigin(), false))
return false;
}
if (*fov > 0.0f && cd.fov > *fov)
if (fov > 0.0f && cd.fov > fov)
return false;
return true;

View File

@ -51,7 +51,7 @@ void Tooltip::setText(std::string text)
lastText = text;
int lc;
int width;
text = utility::wrapString(text, resource::font::base, 400, &width, &lc);
text = utility::wrapString(text, resource::font::base, 300, &width, &lc);
if (!this->text)
createText();
this->text->set(text);