Merge pull request #969 from LightPower392/extra
Fixed Bone ESP and More
This commit is contained in:
commit
eb8e7bbd1b
@ -83,6 +83,7 @@
|
||||
</LabeledObject>
|
||||
<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.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"/>
|
||||
@ -124,7 +125,7 @@
|
||||
</LabeledObject>
|
||||
</List>
|
||||
</Box>
|
||||
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich Aimbot" x="170" y="240">
|
||||
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich Aimbot" x="170" y="255">
|
||||
<List width="150">
|
||||
<AutoVariable width="fill" target="sandwichaim.enable" label="Enable Sandvich Aimbot"/>
|
||||
<AutoVariable width="fill" target="sandwichaim.aimkey" label="Aimkey"/>
|
||||
|
@ -65,6 +65,7 @@
|
||||
<AutoVariable width="fill" target="esp.box.building-3d" label="3D Buildings"/>
|
||||
<AutoVariable width="fill" target="esp.box.corner-size" label="Corner Size"/>
|
||||
<AutoVariable width="fill" target="esp.bones" label="Bone ESP"/>
|
||||
<AutoVariable width="fill" target="esp.bones.color" label="Bone Color"/>
|
||||
<AutoVariable width="fill" target="esp.sightlines" label="Sightlines"/>
|
||||
<AutoVariable width="fill" target="esp.expand" label="Expand"/>
|
||||
<LabeledObject width="fill" label="Text Position">
|
||||
|
@ -25,6 +25,7 @@
|
||||
<AutoVariable width="fill" target="radar.show.ammo" label="Ammo Packs"/>
|
||||
<AutoVariable width="fill" target="radar.show.health" label="Health Packs"/>
|
||||
<AutoVariable width="fill" target="radar.show.teammates" label="Teammates"/>
|
||||
<AutoVariable width="fill" target="radar.show.team.buildings" label="Team Buildings"/>
|
||||
</List>
|
||||
</Box>
|
||||
</Tab>
|
||||
|
@ -40,6 +40,7 @@ static settings::Boolean wait_for_charge{ "aimbot.wait-for-charge", "0" };
|
||||
|
||||
static settings::Boolean silent{ "aimbot.silent", "1" };
|
||||
static settings::Boolean target_lock{ "aimbot.lock-target", "0" };
|
||||
static settings::Boolean assistance_only{ "aimbot.assistance.only", "0" };
|
||||
static settings::Int hitbox{ "aimbot.hitbox", "0" };
|
||||
static settings::Boolean zoomed_only{ "aimbot.zoomed-only", "1" };
|
||||
static settings::Boolean only_can_shoot{ "aimbot.can-shoot-only", "1" };
|
||||
@ -81,6 +82,12 @@ static settings::Boolean fov_draw{ "aimbot.fov-circle.enable", "0" };
|
||||
static settings::Float fovcircle_opacity{ "aimbot.fov-circle.opacity", "0.7" };
|
||||
#endif
|
||||
|
||||
int PreviousX, PreviousY;
|
||||
int CurrentX, CurrentY;
|
||||
|
||||
float last_mouse_check = 0;
|
||||
float stop_moving_time = 0;
|
||||
|
||||
int GetSentry()
|
||||
{
|
||||
for (int i = 1; i <= HIGHEST_ENTITY; i++)
|
||||
@ -325,6 +332,33 @@ static void CreateMove()
|
||||
}
|
||||
}
|
||||
|
||||
bool MouseMoving()
|
||||
{
|
||||
if ((g_GlobalVars->curtime - last_mouse_check) < 0.02)
|
||||
{
|
||||
auto previous = SDL_GetMouseState(&PreviousX, &PreviousY);
|
||||
}
|
||||
else
|
||||
{
|
||||
auto current = SDL_GetMouseState(&CurrentX, &CurrentY);
|
||||
last_mouse_check = g_GlobalVars->curtime;
|
||||
}
|
||||
|
||||
if (PreviousX != CurrentX || PreviousY != CurrentY)
|
||||
{
|
||||
stop_moving_time = g_GlobalVars->curtime + 0.5;
|
||||
return true;
|
||||
}
|
||||
else if (g_GlobalVars->curtime <= stop_moving_time)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// The first check to see if the player should aim in the first place
|
||||
bool ShouldAim()
|
||||
{
|
||||
@ -356,6 +390,9 @@ bool ShouldAim()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (assistance_only && !MouseMoving())
|
||||
return false;
|
||||
|
||||
IF_GAME(IsTF2())
|
||||
{
|
||||
switch (GetWeaponMode())
|
||||
|
@ -30,6 +30,7 @@ static settings::Int emoji_min_size{ "esp.emoji.min-size", "20" };
|
||||
|
||||
static settings::Int healthbar{ "esp.health-bar", "3" };
|
||||
static settings::Boolean draw_bones{ "esp.bones", "false" };
|
||||
static settings::Boolean bones_color{ "esp.bones.color", "false" };
|
||||
static settings::Int sightlines{ "esp.sightlines", "0" };
|
||||
static settings::Int esp_text_position{ "esp.text-position", "0" };
|
||||
static settings::Int esp_expand{ "esp.expand", "0" };
|
||||
@ -150,7 +151,7 @@ struct bonelist_s
|
||||
setup = true;
|
||||
}
|
||||
|
||||
void DrawBoneList(const matrix3x4_t *bones, int *in, int size, const rgba_t &color, const Vector &displacement)
|
||||
void _FASTCALL DrawBoneList(const matrix3x4_t *bones, int *in, int size, const rgba_t &color)
|
||||
{
|
||||
Vector last_screen;
|
||||
Vector current_screen;
|
||||
@ -158,7 +159,6 @@ struct bonelist_s
|
||||
{
|
||||
const auto &bone = bones[in[i]];
|
||||
Vector position(bone[0][3], bone[1][3], bone[2][3]);
|
||||
position += displacement;
|
||||
if (!draw::WorldToScreen(position, current_screen))
|
||||
{
|
||||
return;
|
||||
@ -171,7 +171,7 @@ struct bonelist_s
|
||||
}
|
||||
}
|
||||
|
||||
void Draw(CachedEntity *ent, const rgba_t &color)
|
||||
void _FASTCALL Draw(CachedEntity *ent, const rgba_t &color)
|
||||
{
|
||||
const model_t *model = RAW_ENT(ent)->GetModel();
|
||||
if (not model)
|
||||
@ -189,15 +189,14 @@ struct bonelist_s
|
||||
return;
|
||||
|
||||
// ent->m_bBonesSetup = false;
|
||||
Vector displacement = {};
|
||||
const auto &bones = ent->hitboxes.GetBones();
|
||||
DrawBoneList(bones, leg_r, 3, color, displacement);
|
||||
DrawBoneList(bones, leg_l, 3, color, displacement);
|
||||
DrawBoneList(bones, bottom, 3, color, displacement);
|
||||
DrawBoneList(bones, spine, 7, color, displacement);
|
||||
DrawBoneList(bones, arm_r, 3, color, displacement);
|
||||
DrawBoneList(bones, arm_l, 3, color, displacement);
|
||||
DrawBoneList(bones, up, 3, color, displacement);
|
||||
DrawBoneList(bones, leg_r, 3, color);
|
||||
DrawBoneList(bones, leg_l, 3, color);
|
||||
DrawBoneList(bones, bottom, 3, color);
|
||||
DrawBoneList(bones, spine, 7, color);
|
||||
DrawBoneList(bones, arm_r, 3, color);
|
||||
DrawBoneList(bones, arm_l, 3, color);
|
||||
DrawBoneList(bones, up, 3, color);
|
||||
/*for (int i = 0; i < hdr->numbones; i++) {
|
||||
const auto& bone = ent->GetBones()[i];
|
||||
Vector pos(bone[0][3], bone[1][3], bone[2][3]);
|
||||
@ -626,6 +625,24 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
|
||||
}
|
||||
}
|
||||
|
||||
if (draw_bones)
|
||||
{
|
||||
if (vischeck && !ent->IsVisible())
|
||||
transparent = true;
|
||||
rgba_t bone_color = colors::EntityF(ent);
|
||||
if (transparent)
|
||||
bone_color = colors::Transparent(bone_color);
|
||||
|
||||
bonelist_s bl;
|
||||
if (!CE_INVALID(ent) && ent->m_bAlivePlayer() && !RAW_ENT(ent)->IsDormant() && LOCAL_E->m_bAlivePlayer())
|
||||
{
|
||||
if (bones_color)
|
||||
bl.Draw(ent, bone_color);
|
||||
else
|
||||
bl.Draw(ent, colors::white);
|
||||
}
|
||||
}
|
||||
|
||||
// Top horizontal health bar
|
||||
if (*healthbar == 1)
|
||||
{
|
||||
|
@ -25,6 +25,7 @@ static settings::Int radar_x{ "radar.x", "100" };
|
||||
static settings::Int radar_y{ "radar.y", "100" };
|
||||
static settings::Boolean use_icons{ "radar.use-icons", "true" };
|
||||
static settings::Boolean show_teammates{ "radar.show.teammates", "true" };
|
||||
static settings::Boolean show_teambuildings{ "radar.show.team.buildings", "true" };
|
||||
static settings::Boolean show_healthpacks{ "radar.show.health", "true" };
|
||||
static settings::Boolean show_ammopacks{ "radar.show.ammo", "true" };
|
||||
|
||||
@ -248,6 +249,8 @@ void Draw()
|
||||
continue;
|
||||
if (!show_teammates && ent->m_Type() == ENTITY_PLAYER && !ent->m_bEnemy())
|
||||
continue;
|
||||
if (!show_teambuildings && ent->m_Type() == ENTITY_BUILDING && !ent->m_bEnemy())
|
||||
continue;
|
||||
if (ent->m_iClassID() == CL_CLASS(CObjectSentrygun))
|
||||
sentries.push_back(ent);
|
||||
else if (!enemies_over_teammates || !show_teammates || ent->m_Type() != ENTITY_PLAYER)
|
||||
|
Reference in New Issue
Block a user