Fix sightlines and broken Menu entries

This commit is contained in:
BenCat07 2021-05-05 13:28:48 +02:00 committed by LightCat
parent 0ad17e5a9b
commit fed65faaf8
2 changed files with 27 additions and 43 deletions

View File

@ -7,7 +7,7 @@
<AutoVariable width="fill" target="lightesp.enable" label="Enable light ESP" tooltip="Show a red and green dot on the heads of enemies."/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Targets" y="81">
<Box padding="12 6 6 6" width="content" height="content" name="Targets" y="65">
<List width="150">
<AutoVariable width="fill" target="esp.show.teammates" label="Teammate ESP" tooltip="Shows ESP on teammates."/>
<AutoVariable width="fill" target="esp.show.local" label="ESP on local player" tooltip="Shows ESP on yourself."/>
@ -71,7 +71,13 @@
<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" tooltip="Colors bones according to player state."/>
<AutoVariable width="fill" target="esp.sightlines" label="Sightlines"/>
<LabeledObject width="fill" label="Sightlines">
<Select target="esp.sightlines">
<Option name="Off" value="0"/>
<Option name="Snipers only" value="1"/>
<Option name="All" value="2"/>
</Select>
</LabeledObject>
<AutoVariable width="fill" target="esp.expand" label="Expand" tooltip="Make ESP larger or smaller."/>
<LabeledObject width="fill" label="Text position">
<Select target="esp.text-position">
@ -91,13 +97,6 @@
<Option name="Corners" value="2"/>
</Select>
</LabeledObject>
<LabeledObject width="fill" label="Tracer mode">
<Select target="esp.tracers-mode">
<Option name="Off" value="0"/>
<Option name="Center" value="1"/>
<Option name="Bottom" value="2"/>
</Select>
</LabeledObject>
<LabeledObject width="fill" label="Health mode" tooltip="Sets the healthbar mode.">
<Select target="esp.health-bar">
<Option name="None" value="0"/>
@ -109,7 +108,7 @@
<AutoVariable width="fill" target="esp.hide-invis" label="Hide invisible"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Player Info" x="170" y="300">
<Box padding="12 6 6 6" width="content" height="content" name="Player Info" x="170" y="270">
<List width="150">
<AutoVariable width="fill" target="misc.playerinfo.draw-kda" label="Draw K/D over head"/>
<AutoVariable width="fill" target="misc.playerinfo.draw-level" label="That's how Mafia works"/>
@ -131,21 +130,7 @@
<AutoVariable width="fill" target="esp.online.software" label="Online: software"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Emoji" x="340" y="155">
<List width="150">
<LabeledObject width="fill" label="Mode" tooltip="Shows an emoji on the heads of ESP targets.">
<Select target="esp.emoji.mode">
<Option name="None" value="0"/>
<Option name="Joy" value="1"/>
<Option name="Thinking" value="2"/>
</Select>
</LabeledObject>
<AutoVariable width="fill" target="esp.emoji.min-size" label="Min size"/>
<AutoVariable width="fill" target="esp.emoji.scaling" label="Scaling"/>
<AutoVariable width="fill" target="esp.emoji.size" label="Size"/>
</List>
</Box>
<Box padding="12 6 6 6" width="content" height="content" name="Dominatemark" x="340" y="240">
<Box padding="12 6 6 6" width="content" height="content" name="Dominatemark" x="340" y="155">
<List width="150">
<AutoVariable width="fill" target="dominatemark.enable" label="Enable" tooltip="Enables a mark on people you are dominating, similar to the one shown if someone is dominating you."/>
<AutoVariable width="fill" target="dominatemark.min-size" label="Draw min size"/>

View File

@ -475,20 +475,10 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
auto position = ent->m_vecDormantOrigin();
if (!position)
return;
static Vector screen;
if (!draw::EntityCenterToScreen(ent, screen))
return;
// Reset the collide cache
ent_data.has_collide = false;
// Get if ent should be transparent
bool transparent = vischeck && ent_data.transparent;
// Sightline esp
if (sightlines && type == ENTITY_PLAYER)
{
// Logic for using the enum to sort out snipers
if ((int) sightlines == 2 || ((int) sightlines == 1 && CE_INT(ent, netvar.iClass) == tf_sniper))
{
@ -527,8 +517,8 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
// Get the end distance from the trace
float end_distance = trace.endpos.DistTo(eye_position);
// Loop and look back untill we have a vector on screen
for (int i = 1; i > 400; i++)
// Loop and look back until we have a vector on screen
for (int i = 1; i < 500; i++)
{
// Subtract 40 multiplyed by the tick from the end distance
// and use that as our length to check
@ -555,9 +545,9 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
found_scn1 = false;
// Loop and look back untill we have a vector on screen
for (int i = 1; i > 400; i++)
for (int i = 1; i < 500; i++)
{
// Multiply starting distance by 40, multiplyed by the
// Multiply starting distance by 15, multiplyed by the
// loop tick
Vector start_vector = forward_t * (10 * i) + eye_position;
// We dont want it to go too far
@ -580,6 +570,17 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
}
}
}
static Vector screen;
if (!draw::EntityCenterToScreen(ent, screen))
return;
// Reset the collide cache
ent_data.has_collide = false;
// Get if ent should be transparent
bool transparent = vischeck && ent_data.transparent;
// Box esp
if (box_esp || box_3d_player || box_3d_building)
{
@ -725,7 +726,6 @@ void _FASTCALL ProcessEntityPT(CachedEntity *ent)
{
draw::RectangleOutlined(min_x, min_y - 6, max_x - min_x + 1, 7, border, 0.5f);
draw::Rectangle(min_x + hbw, min_y - 5, -hbw, 5, hp);
}
// Bottom horizontal health bar
else if (*healthbar == 2)
@ -910,7 +910,7 @@ void _FASTCALL ProcessEntity(CachedEntity *ent)
{
// We don't actually care about this vector at all. It just exists so WorldToScreen can function normally
static Vector origin_screen;
if (!draw::WorldToScreen(*origin, origin_screen))
if (!sightlines && ent->m_Type() != ENTITY_PLAYER && !draw::WorldToScreen(*origin, origin_screen))
return;
}
@ -1348,7 +1348,6 @@ void _FASTCALL ProcessEntity(CachedEntity *ent)
}
else if (ent->m_Type() == ENTITY_PLAYER && ent->m_bAlivePlayer())
{
// Local player handling
if (!(local_esp && g_IInput->CAM_IsThirdPerson()) && ent->m_IDX == g_IEngine->GetLocalPlayer())
return;