Update Makefile, aim.c, and 4 more files...
This commit is contained in:
		
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -9,7 +9,7 @@ IMGUI_INCLUDES=-I$(IMGUI_DIR) | |||||||
| IMGUI_SRCS=$(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp | IMGUI_SRCS=$(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp | ||||||
| IMGUI_OBJS=$(patsubst %.cpp,%.o,$(IMGUI_SRCS)) | IMGUI_OBJS=$(patsubst %.cpp,%.o,$(IMGUI_SRCS)) | ||||||
|  |  | ||||||
| OBJS=obj/main.c.o obj/globals.c.o obj/settings.c.o obj/hooks.c.o obj/detour.c.o obj/util.c.o obj/features/movement.c.o obj/features/anti_aim.c.o obj/features/fov.c.o obj/features/namechanger.c.o obj/features/esp.c.o obj/features/chams.c.o obj/features/aim.c.o obj/features/misc.c.o obj/features/thirdperson.c.o obj/game_detection.c.o obj/menu.c.o $(IMGUI_OBJS) | OBJS=obj/main.c.o obj/globals.c.o obj/settings.c.o obj/hooks.c.o obj/detour.c.o obj/util.c.o obj/features/movement.c.o obj/features/anti_aim.c.o obj/features/fov.c.o obj/features/namechanger.c.o obj/features/esp.c.o obj/features/chams.c.o obj/features/aim.c.o obj/features/misc.c.o obj/features/thirdperson.c.o obj/features/no_recoil.c.o obj/game_detection.c.o obj/menu.c.o $(IMGUI_OBJS) | ||||||
| BIN=libhlcheat.so | BIN=libhlcheat.so | ||||||
|  |  | ||||||
| .PHONY: clean all inject | .PHONY: clean all inject | ||||||
|   | |||||||
| @@ -123,10 +123,6 @@ bool is_hitbox_visible(vec3_t eye_pos, hitbox_t* hitbox) { | |||||||
|          |          | ||||||
|     pmtrace_t* trace = i_engine->PM_TraceLine(eye_pos, hitbox->origin, PM_TRACELINE_PHYSENTSONLY, 2, -1); |     pmtrace_t* trace = i_engine->PM_TraceLine(eye_pos, hitbox->origin, PM_TRACELINE_PHYSENTSONLY, 2, -1); | ||||||
|      |      | ||||||
|     if (g_settings.aimbot_rage_mode && trace->fraction > 0.5f) { |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     if (trace->fraction < 1.0f && trace->ent <= 0) |     if (trace->fraction < 1.0f && trace->ent <= 0) | ||||||
|         return false; |         return false; | ||||||
|      |      | ||||||
| @@ -136,7 +132,7 @@ bool is_hitbox_visible(vec3_t eye_pos, hitbox_t* hitbox) { | |||||||
|             return true; |             return true; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     return false; |     return trace->fraction >= 1.0f; | ||||||
| } | } | ||||||
|  |  | ||||||
| typedef struct { | typedef struct { | ||||||
| @@ -152,10 +148,6 @@ int get_target_priority(cl_entity_t* ent) { | |||||||
|     if (!ent) |     if (!ent) | ||||||
|         return PRIORITY_NONE; |         return PRIORITY_NONE; | ||||||
|      |      | ||||||
|     if (g_settings.aimbot_rage_mode) { |  | ||||||
|         return PRIORITY_HIGH; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     return PRIORITY_MEDIUM; |     return PRIORITY_MEDIUM; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -199,17 +191,13 @@ static target_t get_best_target(vec3_t viewangles, vec3_t eye_pos) { | |||||||
|     float best_score = 0.0f; |     float best_score = 0.0f; | ||||||
|     float max_fov = g_settings.aimbot_fov; |     float max_fov = g_settings.aimbot_fov; | ||||||
|      |      | ||||||
|     if (g_settings.aimbot_rage_mode && max_fov < 90.0f) { |  | ||||||
|         max_fov = 90.0f; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     for (int i = 1; i <= i_engine->GetMaxClients(); i++) { |     for (int i = 1; i <= i_engine->GetMaxClients(); i++) { | ||||||
|         cl_entity_t* ent = get_player(i); |         cl_entity_t* ent = get_player(i); | ||||||
|          |          | ||||||
|         if (!ent || !is_alive(ent)) |         if (!ent || !is_alive(ent)) | ||||||
|             continue; |             continue; | ||||||
|              |              | ||||||
|         if (!g_settings.aimbot_friendly_fire && is_friend(ent)) |         if (!g_settings.aimbot_team_attack && is_friend(ent)) | ||||||
|             continue; |             continue; | ||||||
|          |          | ||||||
|         hitbox_t target_hitbox; |         hitbox_t target_hitbox; | ||||||
| @@ -236,16 +224,10 @@ static target_t get_best_target(vec3_t viewangles, vec3_t eye_pos) { | |||||||
|              |              | ||||||
|         float fov_score = 1.0f - (fov_distance / max_fov); |         float fov_score = 1.0f - (fov_distance / max_fov); | ||||||
|          |          | ||||||
|         float priority_score = 0.0f; |  | ||||||
|         if (g_settings.aimbot_rage_mode) { |  | ||||||
|         int priority = get_target_priority(ent); |         int priority = get_target_priority(ent); | ||||||
|             priority_score = priority / (float)PRIORITY_HIGH; |         float priority_score = priority / (float)PRIORITY_HIGH; | ||||||
|         } |  | ||||||
|          |          | ||||||
|         float final_score = fov_score; |         float final_score = (fov_score * 0.5f) + (priority_score * 0.5f); | ||||||
|         if (g_settings.aimbot_rage_mode) { |  | ||||||
|             final_score = (fov_score * 0.5f) + (priority_score * 0.5f); |  | ||||||
|         } |  | ||||||
|          |          | ||||||
|         if (final_score > best_score) { |         if (final_score > best_score) { | ||||||
|             best_score = final_score; |             best_score = final_score; | ||||||
| @@ -253,7 +235,7 @@ static target_t get_best_target(vec3_t viewangles, vec3_t eye_pos) { | |||||||
|             best_target.fov = fov_distance; |             best_target.fov = fov_distance; | ||||||
|             vec_copy(best_target.aim_point, target_hitbox.origin); |             vec_copy(best_target.aim_point, target_hitbox.origin); | ||||||
|             best_target.is_visible = true; |             best_target.is_visible = true; | ||||||
|             best_target.priority = get_target_priority(ent); |             best_target.priority = priority; | ||||||
|             best_target.distance = distance; |             best_target.distance = distance; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -265,29 +247,13 @@ void aimbot(usercmd_t* cmd) { | |||||||
|     if (!g_settings.aimbot_enabled) |     if (!g_settings.aimbot_enabled) | ||||||
|         return; |         return; | ||||||
|      |      | ||||||
|     bool should_run_aimbot = true; |  | ||||||
|     bool should_autoshoot = g_settings.aimbot_autoshoot; |  | ||||||
|     bool fire_button_pressed = (cmd->buttons & IN_ATTACK) != 0; |     bool fire_button_pressed = (cmd->buttons & IN_ATTACK) != 0; | ||||||
|  |     bool should_autoshoot = g_settings.aimbot_autoshoot; | ||||||
|      |      | ||||||
|     switch (0) { |     // Only run aimbot when actually firing | ||||||
|         case 0: |     if (!fire_button_pressed) { | ||||||
|             should_run_aimbot = true; |  | ||||||
|             break; |  | ||||||
|         case 1: |  | ||||||
|             should_run_aimbot = (cmd->buttons & IN_ATTACK) != 0; |  | ||||||
|             break; |  | ||||||
|         case 2: |  | ||||||
|             should_run_aimbot = (cmd->buttons & IN_ATTACK2) != 0; |  | ||||||
|             break; |  | ||||||
|         default: |  | ||||||
|             should_run_aimbot = true; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     if (!should_run_aimbot && !g_settings.aimbot_rage_mode) |  | ||||||
|         return; |         return; | ||||||
|      |     } | ||||||
|     if (g_settings.aimbot_rage_mode) |  | ||||||
|         should_run_aimbot = true; |  | ||||||
|      |      | ||||||
|     bool can_fire = can_shoot(); |     bool can_fire = can_shoot(); | ||||||
|      |      | ||||||
| @@ -298,14 +264,7 @@ void aimbot(usercmd_t* cmd) { | |||||||
|     vec3_t engine_viewangles; |     vec3_t engine_viewangles; | ||||||
|     i_engine->GetViewAngles(engine_viewangles); |     i_engine->GetViewAngles(engine_viewangles); | ||||||
|      |      | ||||||
|     vec3_t adjusted_viewangles = engine_viewangles; |     target_t best_target = get_best_target(engine_viewangles, eye_pos); | ||||||
|     if (g_settings.aimbot_norecoil) { |  | ||||||
|         adjusted_viewangles.x += g_punchAngles.x * AIM_PUNCH_MULT; |  | ||||||
|         adjusted_viewangles.y += g_punchAngles.y * AIM_PUNCH_MULT; |  | ||||||
|         adjusted_viewangles.z += g_punchAngles.z * AIM_PUNCH_MULT; |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     target_t best_target = get_best_target(adjusted_viewangles, eye_pos); |  | ||||||
|      |      | ||||||
|     if (best_target.entity && best_target.is_visible) { |     if (best_target.entity && best_target.is_visible) { | ||||||
|         vec3_t to_target = vec_sub(best_target.aim_point, eye_pos); |         vec3_t to_target = vec_sub(best_target.aim_point, eye_pos); | ||||||
| @@ -316,21 +275,24 @@ void aimbot(usercmd_t* cmd) { | |||||||
|         ang_clamp(&delta); |         ang_clamp(&delta); | ||||||
|          |          | ||||||
|         if (g_settings.aimbot_silent) { |         if (g_settings.aimbot_silent) { | ||||||
|             cmd->viewangles.x = engine_viewangles.x + delta.x; |             // Silent aim - just modify cmd->viewangles directly | ||||||
|             cmd->viewangles.y = engine_viewangles.y + delta.y; |             cmd->viewangles.x = aim_angles.x; | ||||||
|             cmd->viewangles.z = engine_viewangles.z + delta.z; |             cmd->viewangles.y = aim_angles.y; | ||||||
|  |             cmd->viewangles.z = aim_angles.z; | ||||||
|         } else { |         } else { | ||||||
|             float smoothing = SMOOTHING_FACTOR; |             // Get smoothing from settings - a value of 0 means instant aim | ||||||
|              |             float smoothing = g_settings.aimbot_smooth; | ||||||
|             smoothing = g_settings.aimbot_smooth > 0 ? g_settings.aimbot_smooth : SMOOTHING_FACTOR; |  | ||||||
|              |  | ||||||
|             if (g_settings.aimbot_rage_mode) { |  | ||||||
|                 smoothing = 1.2f; |  | ||||||
|             } |  | ||||||
|              |              | ||||||
|  |             // If smoothing is set to 0 or very small, aim instantly | ||||||
|  |             if (smoothing <= 0.1f) { | ||||||
|  |                 engine_viewangles.x = aim_angles.x; | ||||||
|  |                 engine_viewangles.y = aim_angles.y; | ||||||
|  |                 engine_viewangles.z = aim_angles.z; | ||||||
|  |             } else { | ||||||
|                 engine_viewangles.x += delta.x / smoothing; |                 engine_viewangles.x += delta.x / smoothing; | ||||||
|                 engine_viewangles.y += delta.y / smoothing; |                 engine_viewangles.y += delta.y / smoothing; | ||||||
|                 engine_viewangles.z += delta.z / smoothing; |                 engine_viewangles.z += delta.z / smoothing; | ||||||
|  |             } | ||||||
|              |              | ||||||
|             ang_clamp(&engine_viewangles); |             ang_clamp(&engine_viewangles); | ||||||
|              |              | ||||||
| @@ -343,16 +305,12 @@ void aimbot(usercmd_t* cmd) { | |||||||
|          |          | ||||||
|         if (should_autoshoot && can_fire) { |         if (should_autoshoot && can_fire) { | ||||||
|             if (!g_settings.aimbot_require_key || fire_button_pressed) { |             if (!g_settings.aimbot_require_key || fire_button_pressed) { | ||||||
|                 if (g_settings.aimbot_rage_mode) { |  | ||||||
|                     cmd->buttons |= IN_ATTACK; |  | ||||||
|                 } else { |  | ||||||
|                 float aim_error = sqrtf(delta.x * delta.x + delta.y * delta.y); |                 float aim_error = sqrtf(delta.x * delta.x + delta.y * delta.y); | ||||||
|                 if (aim_error < 5.0f) { |                 if (aim_error < 5.0f) { | ||||||
|                     cmd->buttons |= IN_ATTACK; |                     cmd->buttons |= IN_ATTACK; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         } |  | ||||||
|     } else if (should_autoshoot) { |     } else if (should_autoshoot) { | ||||||
|         cmd->buttons &= ~IN_ATTACK; |         cmd->buttons &= ~IN_ATTACK; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -33,6 +33,9 @@ bool chams(void* this_ptr); | |||||||
| /* src/features/aim.c */ | /* src/features/aim.c */ | ||||||
| void aimbot(usercmd_t* cmd); | void aimbot(usercmd_t* cmd); | ||||||
|  |  | ||||||
|  | /* src/features/no_recoil.c */ | ||||||
|  | void no_recoil(usercmd_t* cmd); | ||||||
|  |  | ||||||
| /* src/features/misc.c */ | /* src/features/misc.c */ | ||||||
| void custom_crosshair(void); | void custom_crosshair(void); | ||||||
| void bullet_tracers(usercmd_t* cmd); | void bullet_tracers(usercmd_t* cmd); | ||||||
|   | |||||||
| @@ -2,23 +2,41 @@ | |||||||
| #include "../include/settings.h" | #include "../include/settings.h" | ||||||
| #include "../include/util.h" | #include "../include/util.h" | ||||||
| #include "../include/globals.h" | #include "../include/globals.h" | ||||||
| #include <stdio.h> // For printf | #include "../features/features.h" | ||||||
| #include <time.h>  // For time | #include <stdio.h> | ||||||
|  | #include <time.h> | ||||||
|  |  | ||||||
| static time_t last_log_time = 0; | static time_t last_log_time = 0; | ||||||
|  |  | ||||||
| void no_recoil(usercmd_t* cmd) { | void no_recoil(usercmd_t* cmd) { | ||||||
|     if (!g_settings.aimbot_norecoil || !is_alive(localplayer)) { |     if (!is_alive(localplayer) || (!g_settings.aimbot_norecoil && !g_settings.aimbot_recoil_comp)) { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (!(cmd->buttons & IN_ATTACK)) { | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     time_t current_time = time(NULL); |     time_t current_time = time(NULL); | ||||||
|     if (current_time - last_log_time >= 5) { |     if (current_time - last_log_time >= 5) { | ||||||
|         printf("Applying anti-recoil: Punch Angles (X: %f, Y: %f)\n", g_punchAngles[0], g_punchAngles[1]); |         printf("Recoil control active: Punch Angles (X: %f, Y: %f)\n", g_punchAngles[0], g_punchAngles[1]); | ||||||
|         last_log_time = current_time; |         last_log_time = current_time; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     float anti_recoil_value = 100.0f; |     if (g_settings.aimbot_norecoil) { | ||||||
|     cmd->viewangles[0] -= (g_punchAngles[0] * anti_recoil_value); |         float multiplier = 200.0f; | ||||||
|     cmd->viewangles[1] -= (g_punchAngles[1] * anti_recoil_value); |          | ||||||
|  |         cmd->viewangles[0] -= (g_punchAngles[0] * multiplier); | ||||||
|  |         cmd->viewangles[1] -= (g_punchAngles[1] * multiplier); | ||||||
|  |          | ||||||
|  |         printf("Applied no_recoil: %f, %f\n", -g_punchAngles[0] * multiplier, -g_punchAngles[1] * multiplier); | ||||||
|  |     } | ||||||
|  |     else if (g_settings.aimbot_recoil_comp) { | ||||||
|  |         float multiplier = 5.0f; | ||||||
|  |          | ||||||
|  |         cmd->viewangles[0] -= (g_punchAngles[0] * multiplier); | ||||||
|  |         cmd->viewangles[1] -= (g_punchAngles[1] * multiplier); | ||||||
|  |          | ||||||
|  |         printf("Applied recoil_comp: %f, %f\n", -g_punchAngles[0] * multiplier, -g_punchAngles[1] * multiplier); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,6 +3,6 @@ | |||||||
|  |  | ||||||
| #include "../include/sdk.h" | #include "../include/sdk.h" | ||||||
|  |  | ||||||
| void aim_no_recoil(usercmd_t* cmd); | void no_recoil(usercmd_t* cmd); | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -215,6 +215,7 @@ void h_CL_CreateMove(float frametime, usercmd_t* cmd, int active) { | |||||||
|         } |         } | ||||||
|          |          | ||||||
|         bhop(cmd); |         bhop(cmd); | ||||||
|  |         no_recoil(cmd);  // Apply recoil control before aimbot | ||||||
|         aimbot(cmd); |         aimbot(cmd); | ||||||
|         bullet_tracers(cmd); |         bullet_tracers(cmd); | ||||||
|         anti_aim(cmd); |         anti_aim(cmd); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user