FOV CIRCLE MFER
This commit is contained in:
parent
63fc7dd638
commit
0b43b0de92
@ -35,7 +35,7 @@
|
|||||||
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1168214098." name="/" resourcePath="">
|
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1168214098." name="/" resourcePath="">
|
||||||
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.965909756" name="Linux GCC" nonInternalBuilderId="cdt.managedbuild.target.gnu.builder.exe.debug" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
|
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.965909756" name="Linux GCC" nonInternalBuilderId="cdt.managedbuild.target.gnu.builder.exe.debug" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
|
||||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1799148153" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
|
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1799148153" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
|
||||||
<builder arguments="-e GAME=tf2 NOIPC=1" buildPath="${workspace_loc:/kathook}" command="make" id="cdt.managedbuild.target.gnu.builder.exe.debug.1548213350" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
|
<builder arguments="-e GAME=tf2 NOIPC=1" buildPath="${workspace_loc:/cathook}" command="make" id="cdt.managedbuild.target.gnu.builder.exe.debug.1548213350" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
|
||||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.782611349" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
<tool id="cdt.managedbuild.tool.gnu.archiver.base.782611349" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||||
<tool command="g++" id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.883030293" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
|
<tool command="g++" id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.883030293" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
|
||||||
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.908662295" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.908662295" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||||
|
38
detach-backtrace
Executable file
38
detach-backtrace
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
line=$(pidof hl2_linux)
|
||||||
|
arr=($line)
|
||||||
|
inst=$1
|
||||||
|
if [ $# == 0 ]; then
|
||||||
|
inst=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${#arr[@]} == 0 ]; then
|
||||||
|
echo TF2 isn\'t running!
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $inst -gt ${#arr[@]} ] || [ $inst == ${#arr[@]} ]; then
|
||||||
|
echo wrong index!
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Running instances: "${arr[@]}"
|
||||||
|
echo Detaching from "${arr[$1]}"
|
||||||
|
|
||||||
|
if grep -q "$(realpath bin/libcathook.so)" /proc/"${arr[$1]}"/maps; then
|
||||||
|
gdb -n -q -batch \
|
||||||
|
-ex "attach ${arr[$1]}" \
|
||||||
|
-ex "set \$dlopen = (void*(*)(char*, int)) dlopen" \
|
||||||
|
-ex "set \$dlclose = (int(*)(void*)) dlclose" \
|
||||||
|
-ex "set \$library = \$dlopen(\"$(realpath bin/libcathook.so)\", 6)" \
|
||||||
|
-ex "print \$library" \
|
||||||
|
-ex "sharedlibrary ." \
|
||||||
|
-ex "call \$dlclose(\$library)" \
|
||||||
|
-ex "call \$dlclose(\$library)" \
|
||||||
|
-ex "continue" \
|
||||||
|
-ex "backtrace"
|
||||||
|
echo "Detached"
|
||||||
|
else
|
||||||
|
echo "not found!"
|
||||||
|
fi
|
@ -59,6 +59,7 @@ void AddCenterString(const std::string& string, const rgba_t& color) {
|
|||||||
// TODO globals
|
// TODO globals
|
||||||
int draw::width = 0;
|
int draw::width = 0;
|
||||||
int draw::height = 0;
|
int draw::height = 0;
|
||||||
|
float draw::fov = 90.0f;
|
||||||
|
|
||||||
namespace fonts {
|
namespace fonts {
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ namespace draw {
|
|||||||
|
|
||||||
extern int width;
|
extern int width;
|
||||||
extern int height;
|
extern int height;
|
||||||
|
extern float fov;
|
||||||
|
|
||||||
void Initialize();
|
void Initialize();
|
||||||
|
|
||||||
|
@ -24,22 +24,11 @@ CatVar info_text(CV_SWITCH, "info", "1", "Show info", "Show cathook version in t
|
|||||||
void DrawCheatVisuals() {
|
void DrawCheatVisuals() {
|
||||||
std::lock_guard<std::mutex> draw_lock(drawing_mutex);
|
std::lock_guard<std::mutex> draw_lock(drawing_mutex);
|
||||||
if (drawgl::ready_state) {
|
if (drawgl::ready_state) {
|
||||||
{
|
|
||||||
PROF_SECTION(DRAW_aimbot);
|
|
||||||
hacks::shared::aimbot::DrawText();
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
PROF_SECTION(DRAW_misc);
|
PROF_SECTION(DRAW_misc);
|
||||||
SAFE_CALL(hacks::shared::misc::DrawText());
|
SAFE_CALL(hacks::shared::misc::DrawText());
|
||||||
}
|
}
|
||||||
IF_GAME(IsTF2()) {
|
|
||||||
PROF_SECTION(DRAW_skinchanger);
|
|
||||||
SAFE_CALL(hacks::tf2::skinchanger::DrawText());
|
|
||||||
}
|
|
||||||
IF_GAME(IsTF()) {
|
|
||||||
PROF_SECTION(DRAW_radar);
|
|
||||||
SAFE_CALL(hacks::tf::radar::Draw());
|
|
||||||
}
|
|
||||||
if (info_text) {
|
if (info_text) {
|
||||||
PROF_SECTION(DRAW_info);
|
PROF_SECTION(DRAW_info);
|
||||||
std::string name_s, reason_s;
|
std::string name_s, reason_s;
|
||||||
@ -67,6 +56,18 @@ void DrawCheatVisuals() {
|
|||||||
}
|
}
|
||||||
if (CE_GOOD(g_pLocalPlayer->entity) && !g_Settings.bInvalid) {
|
if (CE_GOOD(g_pLocalPlayer->entity) && !g_Settings.bInvalid) {
|
||||||
PROF_SECTION(PT_total_hacks);
|
PROF_SECTION(PT_total_hacks);
|
||||||
|
{
|
||||||
|
PROF_SECTION(DRAW_aimbot);
|
||||||
|
hacks::shared::aimbot::DrawText();
|
||||||
|
}
|
||||||
|
IF_GAME(IsTF2()) {
|
||||||
|
PROF_SECTION(DRAW_skinchanger);
|
||||||
|
SAFE_CALL(hacks::tf2::skinchanger::DrawText());
|
||||||
|
}
|
||||||
|
IF_GAME(IsTF()) {
|
||||||
|
PROF_SECTION(DRAW_radar);
|
||||||
|
SAFE_CALL(hacks::tf::radar::Draw());
|
||||||
|
}
|
||||||
IF_GAME(IsTF2()) {
|
IF_GAME(IsTF2()) {
|
||||||
PROF_SECTION(DRAW_healarrows);
|
PROF_SECTION(DRAW_healarrows);
|
||||||
hacks::tf2::healarrow::Draw();
|
hacks::tf2::healarrow::Draw();
|
||||||
|
@ -868,18 +868,36 @@ void DrawText() {
|
|||||||
// Broken from kathook merge, TODO needs to be adapted for imgui
|
// Broken from kathook merge, TODO needs to be adapted for imgui
|
||||||
if (fov_draw) {
|
if (fov_draw) {
|
||||||
// It cant use fovs greater than 180, so we check for that
|
// It cant use fovs greater than 180, so we check for that
|
||||||
if ((int)fov < 180 && fov) {
|
if (fov && float(fov) < 180) {
|
||||||
// Dont show ring while player is dead
|
// Dont show ring while player is dead
|
||||||
if (!LOCAL_E->m_bAlivePlayer) {
|
if (LOCAL_E->m_bAlivePlayer) {
|
||||||
// Grab the screen resolution and save to some vars
|
// Grab the screen resolution and save to some vars
|
||||||
int width, height;
|
int width, height;
|
||||||
g_IEngine->GetScreenSize(width, height);
|
g_IEngine->GetScreenSize(width, height);
|
||||||
// Grab the cvar for fov_desired and attach to another var
|
|
||||||
static ConVar *realFov = g_ICvar->FindVar("fov_desired");
|
|
||||||
// Some math to find radius of the fov circle
|
// Some math to find radius of the fov circle
|
||||||
float radius = tanf(DEG2RAD((float)fov) / 2) / tanf(DEG2RAD((int)realFov)/ 2) * width;
|
// float radius = tanf(DEG2RAD((float)fov) / 2) / tanf(DEG2RAD(draw::fov) / 2) * width;
|
||||||
|
|
||||||
|
float mon_fov = (float(width) / float(height) / (4.0f / 3.0f));
|
||||||
|
float fov_real = RAD2DEG(2 * atanf(mon_fov * tanf(DEG2RAD(draw::fov / 2))));
|
||||||
|
|
||||||
|
float radius = tan(DEG2RAD(float(fov)) / 2) / tan(DEG2RAD(fov_real) / 2) * (width);
|
||||||
// Draw a circle with our newfound circle
|
// Draw a circle with our newfound circle
|
||||||
//draw::DrawCircle( width / 2 ,height / 2, radius, 35, GUIColor());
|
float px = 0;
|
||||||
|
float py = 0;
|
||||||
|
constexpr float steps = 120;
|
||||||
|
for (int i = 0; i < steps; i++) {
|
||||||
|
float ang = 2 * PI * (float(i) / steps);
|
||||||
|
float x = width / 2 + radius * cos(ang);
|
||||||
|
float y = height / 2 + radius * sin(ang);
|
||||||
|
if (!i) {
|
||||||
|
ang = 2 * PI * (float(steps - 1) / steps);
|
||||||
|
px = width / 2 + radius * cos(ang);
|
||||||
|
py = height / 2 + radius * sin(ang);
|
||||||
|
}
|
||||||
|
drawgl::Line(px, py, x - px, y - py, GUIColor());
|
||||||
|
px = x;
|
||||||
|
py = y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -302,6 +302,7 @@ void OverrideView_hook(void* _this, CViewSetup* setup) {
|
|||||||
setup->fov = override_fov;
|
setup->fov = override_fov;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
draw::fov = setup->fov;
|
||||||
SEGV_END;
|
SEGV_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user