Skip to content

Commit 4518a93

Browse files
committed
added esp box and team and enemy switches on menu
1 parent 5c40fae commit 4518a93

File tree

7 files changed

+104
-12
lines changed

7 files changed

+104
-12
lines changed

AssaultCube-Multihack.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@
213213
<ClCompile Include="src\base.cpp" />
214214
<ClCompile Include="src\game.cpp" />
215215
<ClCompile Include="src\hacks\Crosshair.cpp" />
216+
<ClCompile Include="src\hacks\ESP_Box.cpp" />
216217
<ClCompile Include="src\hacks\ESP_Snaplines.cpp" />
217218
<ClCompile Include="src\hacks\Teleport.cpp" />
218219
<ClCompile Include="src\hooks\c2sinfo.cpp" />

AssaultCube-Multihack.vcxproj.filters

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@
8484
<ClCompile Include="src\game.cpp">
8585
<Filter>Source Files</Filter>
8686
</ClCompile>
87+
<ClCompile Include="src\hacks\ESP_Box.cpp">
88+
<Filter>Source Files</Filter>
89+
</ClCompile>
8790
</ItemGroup>
8891
<ItemGroup>
8992
<ClInclude Include="src\pch.h">
@@ -475,7 +478,6 @@
475478
<Library Include="include\assaultcube\lib\SDL.lib" />
476479
<Library Include="include\assaultcube\lib\SDL_image.lib" />
477480
<Library Include="include\assaultcube\lib\vorbis.lib" />
478-
<Library Include="include\assaultcube\lib\vorbisfile.lib" />
479481
<Library Include="include\assaultcube\lib\winmm.lib" />
480482
<Library Include="include\assaultcube\lib\ws2_32.lib" />
481483
<Library Include="include\assaultcube\lib\zdll.lib" />

src/base.cpp

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ AC_Client Base::Data::game;
3838

3939
bool Base::Data::Settings::EnableCrosshair = false;
4040
int Base::Data::Settings::CrosshairType = 0;
41-
float Base::Data::Settings::CrosshairLength = 10;
42-
float Base::Data::Settings::CrosshairThickness = 3;
43-
float Base::Data::Settings::CrosshairGap = 10;
41+
float Base::Data::Settings::CrosshairLength = 10.0f;
42+
float Base::Data::Settings::CrosshairThickness = 3.0f;
43+
float Base::Data::Settings::CrosshairGap = 10.0f;
4444
bool Base::Data::Settings::CrosshairTop = true;
4545
bool Base::Data::Settings::CrosshairLeft = true;
4646
bool Base::Data::Settings::CrosshairBottom = true;
@@ -50,15 +50,26 @@ bool Base::Data::Settings::CrosshairDotFilled = true;
5050
float Base::Data::Settings::CrosshairColor[4] = { 1.0f, 0.0f, 0.0f, 1.0f };
5151

5252
bool Base::Data::Settings::EnableEspSnaplines = false;
53-
float Base::Data::Settings::EspSnaplinesThickness = 2;
53+
bool Base::Data::Settings::EspSnaplinesTeam = true;
54+
bool Base::Data::Settings::EspSnaplinesEnemy = true;
55+
float Base::Data::Settings::EspSnaplinesThickness = 2.0f;
5456
float Base::Data::Settings::EspSnaplinesColorTeam[4] = { 0.0f, 0.5f, 1.0f, 1.0f };
5557
float Base::Data::Settings::EspSnaplinesColorEnemy[4] = { 1.0f, 0.5f, 0.0f, 1.0f };
5658
int Base::Data::Settings::EspSnaplinesPos = 0;
5759

60+
bool Base::Data::Settings::EnableEspBox = false;
61+
bool Base::Data::Settings::EspBoxTeam = true;
62+
bool Base::Data::Settings::EspBoxEnemy = true;
63+
float Base::Data::Settings::EspBoxThickness = 2.0f;
64+
float Base::Data::Settings::EspBoxColorTeam[4] = { 0.0f, 1.0f, 0.5f, 1.0f };
65+
float Base::Data::Settings::EspBoxColorFillTeam[4] = { 0.0f, 1.0f, 0.5f, 0.5f };
66+
float Base::Data::Settings::EspBoxColorEnemy[4] = { 1.0f, 1.0f, 0.0f, 1.0f };
67+
float Base::Data::Settings::EspBoxColorFillEnemy[4] = { 1.0f, 1.0f, 0.0f, 0.5f };
68+
5869
bool Base::Data::Settings::TeleportQueued = false;
5970
bool Base::Data::Settings::TeleportSaveQueued = false;
60-
float Base::Data::Settings::TeleportPosition[3];
61-
bool Base::Data::Settings::TeleportForce[3];
71+
float Base::Data::Settings::TeleportPosition[3] = { 0.0f, 0.0f, 0.0f };
72+
bool Base::Data::Settings::TeleportForce[3] = { false, false, false };
6273

6374
DWORD WINAPI ExitThread(LPVOID lpReserved);
6475

src/base.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,22 @@ namespace Base
7070
extern float CrosshairColor[4];
7171

7272
extern bool EnableEspSnaplines;
73+
extern bool EspSnaplinesTeam;
74+
extern bool EspSnaplinesEnemy;
7375
extern float EspSnaplinesThickness;
7476
extern float EspSnaplinesColorTeam[4];
7577
extern float EspSnaplinesColorEnemy[4];
7678
extern int EspSnaplinesPos;
7779

80+
extern bool EnableEspBox;
81+
extern bool EspBoxTeam;
82+
extern bool EspBoxEnemy;
83+
extern float EspBoxThickness;
84+
extern float EspBoxColorTeam[4];
85+
extern float EspBoxColorFillTeam[4];
86+
extern float EspBoxColorEnemy[4];
87+
extern float EspBoxColorFillEnemy[4];
88+
7889
extern bool TeleportQueued;
7990
extern bool TeleportSaveQueued;
8091
extern float TeleportPosition[3];
@@ -93,6 +104,7 @@ namespace Base
93104
void Teleport();
94105
void Crosshair();
95106
void ESP_Snaplines(playerinfo_t* p_info);
107+
void ESP_Box(playerinfo_t* p_info);
96108
}
97109

98110
namespace Hooks

src/hacks/ESP_Box.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <pch.h>
2+
#include <base.h>
3+
4+
void Base::Hacks::ESP_Box(playerinfo_t* p_info)
5+
{
6+
if (Data::Settings::EnableEspBox && p_info && p_info->is_valid && (Data::Settings::EspBoxTeam && p_info->ent->team == Data::game.player1->team || Data::Settings::EspBoxEnemy && p_info->ent->team != Data::game.player1->team))
7+
{
8+
ImDrawList* Draw = ImGui::GetBackgroundDrawList();
9+
float Height = p_info->headpos2D.y - p_info->pos2D.y;
10+
ImVec2 TopLeft = { p_info->headpos2D.x - Height / 4, p_info->headpos2D.y };
11+
ImVec2 BottomLeft = { TopLeft.x, p_info->pos2D.y };
12+
ImVec2 BottomRight = { p_info->pos2D.x + Height / 4, BottomLeft.y };
13+
ImVec2 TopRight = { BottomRight.x, TopLeft.y };
14+
ImColor BoxColor = {};
15+
ImColor BoxFillColor = {};
16+
float BoxThickness = Data::Settings::EspBoxThickness;
17+
18+
if (p_info->ent->team == Data::game.player1->team)
19+
{
20+
BoxColor = ImColor(Data::Settings::EspBoxColorTeam[0], Data::Settings::EspBoxColorTeam[1], Data::Settings::EspBoxColorTeam[2], Data::Settings::EspBoxColorTeam[3]);
21+
BoxFillColor = ImColor(Data::Settings::EspBoxColorFillTeam[0], Data::Settings::EspBoxColorFillTeam[1], Data::Settings::EspBoxColorFillTeam[2], Data::Settings::EspBoxColorFillTeam[3]);
22+
}
23+
24+
else
25+
{
26+
BoxColor = ImColor(Data::Settings::EspBoxColorEnemy[0], Data::Settings::EspBoxColorEnemy[1], Data::Settings::EspBoxColorEnemy[2], Data::Settings::EspBoxColorEnemy[3]);
27+
BoxFillColor = ImColor(Data::Settings::EspBoxColorFillEnemy[0], Data::Settings::EspBoxColorFillEnemy[1], Data::Settings::EspBoxColorFillEnemy[2], Data::Settings::EspBoxColorFillEnemy[3]);
28+
}
29+
30+
Draw->AddQuadFilled(TopLeft, BottomLeft, BottomRight, TopRight, BoxFillColor);
31+
Draw->AddQuad(TopLeft, BottomLeft, BottomRight, TopRight, BoxColor, BoxThickness);
32+
}
33+
}

src/hacks/ESP_Snaplines.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
void Base::Hacks::ESP_Snaplines(playerinfo_t* p_info)
55
{
6-
if (Data::Settings::EnableEspSnaplines && p_info->is_valid)
6+
if (Data::Settings::EnableEspSnaplines && p_info && p_info->is_valid && (Data::Settings::EspSnaplinesTeam && p_info->ent->team == Data::game.player1->team || Data::Settings::EspSnaplinesEnemy && p_info->ent->team != Data::game.player1->team))
77
{
88
ImVec2 LineOrigin = {};
99
ImVec2 LineEnd = {};

src/hooks/SwapBuffers.cpp

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ BOOL __stdcall Base::Hooks::SwapBuffers(_In_ HDC hdc)
4646

4747
playerinfo_t info = playerinfo_t(ent);
4848
Hacks::ESP_Snaplines(&info);
49+
Hacks::ESP_Box(&info);
4950
}
5051

5152
Hacks::Crosshair();
@@ -55,13 +56,45 @@ BOOL __stdcall Base::Hooks::SwapBuffers(_In_ HDC hdc)
5556
ImGui::Begin("ImGui Window");
5657
ImGui::Text("Test ImGUI Window");
5758

59+
ImGui::Checkbox("Enable ESP Box", &Data::Settings::EnableEspBox);
60+
if (Data::Settings::EnableEspBox)
61+
{
62+
ImGui::Checkbox("ESP Box Team", &Data::Settings::EspBoxTeam);
63+
ImGui::Checkbox("ESP Box Enemy", &Data::Settings::EspBoxEnemy);
64+
65+
if (Data::Settings::EspBoxTeam || Data::Settings::EspBoxEnemy)
66+
{
67+
ImGui::SliderFloat("ESP Box Thickness", &Data::Settings::EspBoxThickness, 0, 100, "%.0f");
68+
69+
if (Data::Settings::EspBoxTeam)
70+
{
71+
ImGui::ColorEdit4("ESP Box Color Team", Data::Settings::EspBoxColorTeam);
72+
ImGui::ColorEdit4("ESP Box Color Fill Team", Data::Settings::EspBoxColorFillTeam);
73+
}
74+
75+
if (Data::Settings::EspBoxEnemy)
76+
{
77+
ImGui::ColorEdit4("ESP Box Color Enemy", Data::Settings::EspBoxColorEnemy);
78+
ImGui::ColorEdit4("ESP Box Color Fill Enemy", Data::Settings::EspBoxColorFillEnemy);
79+
}
80+
}
81+
}
82+
5883
ImGui::Checkbox("Enable ESP Snaplines", &Data::Settings::EnableEspSnaplines);
5984
if (Data::Settings::EnableEspSnaplines)
6085
{
61-
const char* SnaplinesPos[] = { "Bottom", "Top" };
62-
ImGui::ColorEdit4("ESP Snaplines Color Team", Data::Settings::EspSnaplinesColorTeam);
63-
ImGui::ColorEdit4("ESP Snaplines Color Enemy", Data::Settings::EspSnaplinesColorEnemy);
64-
ImGui::ListBox("ESP Snaplines Position", &Data::Settings::EspSnaplinesPos, SnaplinesPos, 2);
86+
ImGui::Checkbox("ESP Snaplines Team", &Data::Settings::EspSnaplinesTeam);
87+
ImGui::Checkbox("ESP Snaplines Enemy", &Data::Settings::EspSnaplinesEnemy);
88+
if (Data::Settings::EspSnaplinesTeam || Data::Settings::EspSnaplinesEnemy)
89+
{
90+
const char* SnaplinesPos[] = { "Bottom", "Top" };
91+
ImGui::SliderFloat("ESP Snaplines Thickness", &Data::Settings::EspSnaplinesThickness, 0, 100, "%.0f");
92+
if(Data::Settings::EspSnaplinesTeam)
93+
ImGui::ColorEdit4("ESP Snaplines Color Team", Data::Settings::EspSnaplinesColorTeam);
94+
if(Data::Settings::EspSnaplinesEnemy)
95+
ImGui::ColorEdit4("ESP Snaplines Color Enemy", Data::Settings::EspSnaplinesColorEnemy);
96+
ImGui::ListBox("ESP Snaplines Position", &Data::Settings::EspSnaplinesPos, SnaplinesPos, 2);
97+
}
6598
}
6699

67100
ImGui::SliderFloat3("Teleport Position", Data::Settings::TeleportPosition, -5000, 5000);

0 commit comments

Comments
 (0)