Add unfinished MvM Automated Upgrades, fix Antibackstab and fix cat_info

This commit is contained in:
BenCat07 2018-04-10 17:35:06 +02:00
parent 61c2172a2f
commit 55833b8d82
51 changed files with 910 additions and 104 deletions

BIN
fonts/opensans.ttf Executable file

Binary file not shown.

BIN
fonts/roboto.ttf Executable file

Binary file not shown.

BIN
fonts/tf2build.ttf Executable file

Binary file not shown.

BIN
fonts/unispace.ttf Executable file

Binary file not shown.

BIN
fonts/verasans.ttf Executable file

Binary file not shown.

View File

@ -0,0 +1,23 @@
/*
* C_MannVsMachineStats.hpp
*
* Created on: Apr 10, 2018
* Author: bencat07
*/
#pragma once
#include "reclasses.hpp"
namespace re
{
class C_MannVsMachineStats
{
public:
C_MannVsMachineStats() = delete;
static C_MannVsMachineStats *C_MannVsMachineStats();
public:
int AddLocalPlayerUpgrade(int id, unsigned &a3);
};
}

View File

@ -21,3 +21,5 @@
#include "CTFGCClientSystem.hpp"
#include "ITFGroupMatchCriteria.hpp"
#include "CTFPartyClient.hpp"
#include "C_MannVsMachineStats.hpp"

0
include/visual/EffectChams.hpp Executable file → Normal file
View File

550
menu.json Executable file
View File

@ -0,0 +1,550 @@
[
{
"type": "list",
"name": "Aim Bot",
"list": [
"aimbot_enabled",
"aimbot_aimkey",
"aimbot_aimkey_mode",
"aimbot_autoshoot",
"aimbot_hitboxmode",
"aimbot_fov",
"aimbot_fov_draw",
"aimbot_fov_draw_opacity",
"aimbot_prioritymode",
"aimbot_charge",
"aimbot_auto_unzoom",
"aimbot_auto_zoom",
"aimbot_rage_only",
{
"type": "list",
"name": "Ignore",
"list": [
"aimbot_ignore_cloak",
"aimbot_ignore_deadringer",
"aimbot_ignore_vaccinator",
"ignore_taunting",
"aimbot_ignore_hoovy",
"aimbot_teammates",
"aimbot_buildings_sentry",
"aimbot_buildings_other",
"aimbot_stickys"
]
},
{
"type": "list",
"name": "Auto Heal",
"list": [
"autoheal_enabled",
"autoheal_uber",
"autoheal_uber_health",
"autoheal_silent",
"autoheal_share_uber"
]
},
{
"type": "list",
"name": "Preferences",
"list": [
"aimbot_miss_chance",
"aimbot_silent",
"aimbot_target_lock",
"aimbot_hitbox",
"aimbot_zoomed",
"aimbot_only_when_can_shoot",
"aimbot_maxrange",
"aimbot_slow",
{
"type": "list",
"name": "Projectile Aimbot Tweaks",
"list": [
"aimbot_projectile",
"aimbot_proj_gravity",
"aimbot_proj_speed",
"aimbot_huntsman_charge"
]
}
]
}
]
},
{
"type": "list",
"name": "Trigger Bot",
"list": [
"trigger_enabled",
"autobackstab",
{
"type": "list",
"name": "Auto Vaccinator",
"list": [
"auto_vacc",
"auto_vacc_reset_timer",
"auto_vacc_default_resist",
"auto_vacc_bullets",
"auto_vacc_blast",
"auto_vacc_fire",
"auto_vacc_sniper_pop",
"auto_vacc_blast_pop_health",
"auto_vacc_blast_pop_crit",
"auto_vacc_rocket_range",
"auto_vacc_fire_pop_pyro",
"auto_vacc_afterburn",
"auto_vacc_pyro_range",
"auto_vacc_bullet_pop_ubers",
"auto_vacc_blast_pop_ubers",
"auto_vacc_fire_pop_ubers"
]
},
{
"type": "list",
"name": "Auto Sticky",
"list": [
"sticky_enabled",
"sticky_buildings",
"sticky_legit"
]
},
{
"type": "list",
"name": "Auto Reflect",
"list": [
"reflect_enabled",
"reflect_key",
"reflect_legit",
"reflect_only_idle",
"reflect_stickybombs",
"reflect_dodgeball"
]
},
{
"type": "list",
"name": "Triggerbot Ignores",
"list": [
"trigger_ignore_cloak",
"trigger_ignore_hoovy",
"trigger_ignore_vaccinator",
"trigger_buildings_sentry",
"trigger_buildings_other",
"trigger_stickys",
"trigger_teammates"
]
},
{
"type": "list",
"name": "Triggerbot Preferences",
"list": [
"trigger_delay",
"trigger_accuracy",
"trigger_zoomed",
"trigger_maxrange",
"trigger_charge",
"trigger_hitboxmode",
"trigger_key_mode",
"trigger_key"
]
}
]
},
{
"type": "list",
"name": "Visuals",
"list": [
{
"type": "list",
"name": "ESP",
"list": [
"esp_enabled",
"esp_box",
"esp_box_corner_size",
"esp_health",
"esp_expand",
"esp_tracers",
"esp_text_position",
"esp_legit",
"esp_vischeck",
"esp_bones",
"esp_buildings",
"esp_teammates",
"esp_name",
"esp_class",
"esp_distance",
"esp_conds",
"esp_ubercharge",
"esp_weapon",
"esp_powerups",
"esp_show_tank",
"esp_weapon_spawners",
"esp_followbot_id",
"esp_local",
"esp_sightlines",
"esp_entity",
"esp_model_name",
"esp_entity_id",
"esp_spellbooks",
{
"type": "list",
"name": "Colors",
"list": [
"esp_color_red_r",
"esp_color_red_g",
"esp_color_red_b",
"esp_color_blue_r",
"esp_color_blue_g",
"esp_color_blue_b"
]
},
{
"type": "list",
"name": "Emoji ESP",
"list": [
"esp_emoji",
"esp_emoji_size",
"esp_emoji_scaling",
"esp_emoji_min_size"
]
},
{
"type": "list",
"name": "Item ESP",
"list": [
"esp_item",
"esp_item_adrenaline",
"esp_item_powerups",
"esp_item_health",
"esp_item_ammo",
"esp_item_weapons",
"esp_money_red",
"esp_money"
]
},
{
"type": "list",
"name": "Projectile ESP",
"list": [
"esp_proj",
"esp_proj_enemy",
"esp_proj_stickies",
"esp_proj_pipes",
"esp_proj_arrows",
"esp_proj_rockets"
]
}
]
},
{
"type": "list",
"name": "Radar",
"list": [
"radar",
"radar_size",
"radar_zoom",
"radar_health",
"radar_enemies_top",
"radar_icon_size",
"radar_x",
"radar_y",
"radar_healthpacks",
"radar_ammopacks",
"radar_teammates",
"radar_icons"
]
},
{
"type": "list",
"name": "Chams",
"list": [
"chams_enable",
"chams_legit",
"chams_singlepass",
"chams_health",
"chams_players",
"chams_teammates",
"chams_buildings",
"chams_teammate_buildings",
"chams_flat",
"chams_recursive",
"chams_weapons_white",
"chams_medkits",
"chams_ammo",
"chams_stickies"
]
},
{
"type": "list",
"name": "Glow",
"list": [
"glow_enable",
"glow_solid_when",
"glow_blur_scale",
"glow_health",
"glow_players",
"glow_teammates",
"glow_buildings",
"glow_teammate_buildings",
"glow_medkits",
"glow_ammo",
"glow_stickies",
"glow_powerups",
"glow_weapons_white"
]
},
{
"type": "list",
"name": "GUI Settings",
"list": [
"gui_color_b",
"gui_color_g",
"gui_color_r",
"imgui_color_head_r",
"imgui_color_head_g",
"imgui_color_head_b",
"imgui_color_area_r",
"imgui_color_area_g",
"imgui_color_area_b",
"imgui_color_body_r",
"imgui_color_body_g",
"imgui_color_body_b",
"imgui_color_pops_r",
"imgui_color_pops_g",
"imgui_color_pops_b",
"imgui_color_text",
"imgui_custom",
"gui_rainbow"
]
},
{
"type": "list",
"name": "Miscellaneous Settings",
"list": [
"pure_bypass",
"antidisguise",
"no_arms",
"no_hats",
"thirdperson",
"thirdperson_angles",
"render_zoomed",
"fov",
"fov_zoomed",
"no_zoom",
"clean_screenshots",
"info",
"font_ftgl_esp"
]
}
]
},
{
"type": "list",
"name": "Anti-/Anti-Aim",
"list": [
"aa_enabled",
"aa_pitch",
"aa_pitch_mode",
"aa_yaw",
"aa_yaw_mode",
"aa_spin",
"aa_roll",
"aa_no_clamp",
"resolver",
{
"type": "list",
"name": "Anti-Anti-Anti-Aim",
"list": [
"aa_aaaa_enabled",
"aa_aaaa_interval",
"aa_aaaa_interval_low",
"aa_aaaa_interval_high",
"aa_aaaa_mode",
"aa_aaaa_flip_key"
]
}
]
},
{
"type": "list",
"name": "Crit Hack",
"list": [
"crit_info",
"crit_hack_next",
"crit_hack",
"crit_suppress",
"crit_melee",
"crit_hack_experimental"
]
},
{
"type": "list",
"name": "Chat Settings",
"list": [
"spam",
"killsay",
"uberspam",
"spam_file",
"killsay_file",
"spam_random",
"chat_newlines",
"clean_chat",
"chat_crypto",
"uberspam_ready",
"uberspam_used",
"uberspam_ended",
"uberspam_team",
"uberspam_build",
"uberspam_file",
"spam_voicecommand",
"spam_teamname",
"chat_log",
"chat_log_noipc",
"chat_log_nospam",
"chat_log_template"
]
},
{
"type": "list",
"name": "Anti-Cheat",
"list": [
"ac_enabled",
"ac_ignore_local",
"ac_chat",
"ac_aimbot",
"ac_aimbot_detections",
"ac_aimbot_angle",
"ac_removecond",
"ac_removecond_timer",
"ac_bhop_count"
]
},
{
"type": "list",
"name": "Followbot",
"list": [
"fb_bot",
"fb_distance",
"fb_activation",
"fb_roaming",
"fb_mimic_slot",
"fb_always_medigun",
"fb_sync_taunt",
"fb_crumb_draw"
]
},
{
"type": "list",
"name": "Miscellaneous",
"list": [
"name",
"disconnect_reason",
"name_stealer",
"bhop_enabled",
"nopush_enabled",
"noisemaker",
"tauntslide_tf2",
"anti_afk",
"events",
"airstuck",
"fast_vischeck",
"instant_weapon_switch",
"fakelag",
"skinchanger",
"autoqueue",
"autotaunt",
"autotaunt_chance",
"autojoin_team",
"autojoin_class",
"minigun_jump",
"tauntslide",
"flashlight",
"rollspeedhack",
"info",
"request_balance_spam",
{
"type": "list",
"name": "Remove Conditions",
"list": [
"removecond_master",
"removecond_value",
"removecond_key",
"removecond_fire",
"removecond_taunt",
"removecond_bleeding",
"removecond_stun",
"spycrab",
"instant_decloak",
"instant_rezoom",
"infinite_packs",
"lagexploit_mini"
]
},
{
"type": "list",
"name": "Fidget Spinner",
"list": [
"fidgetspinner",
"fidgetspinner_scale",
"fidgetspinner_decay_speed",
"fidgetspinner_speed_scale",
"fidgetspinner_speed_cap",
"fidgetspinner_min_speed"
]
},
{
"type": "list",
"name": "Heal Arrows",
"list": [
"healarrow",
"healarrow_charge",
"healarrow_timeout",
"healarrow_callout",
"healarrow_callout_text"
]
},
{
"type": "list",
"name": "Spy Alert",
"list": [
"spyalert_enabled",
"spyalert_warning",
"spyalert_backstab",
"spyalert_sound",
"spyalert_interval"
]
},
{
"type": "list",
"name": "Anti Backstab",
"list": [
"antibackstab",
"antibackstab_nope",
"antibackstab_angle",
"antibackstab_distance",
"antibackstab_silent"
]
},
{
"type": "list",
"name": "Debug Settings",
"list": [
"enabled",
"debug_projectiles",
"debug_aimbot_engine_pp",
"debug_ve_window",
"debug_ve_smooth",
"debug_ve_averaging",
"no_visuals",
"aimbot_debug",
"debug_info",
"log",
"setupbones_time",
"nolerp",
"skinchanger_debug",
"software_cursor_mode",
"experimental_cursor_fix",
"engine_prediction"
]
}
]
}
]

84
preload.sh Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/env bash
# Credit to LWSS for doing this shit in Fuzion, looked and pasted a stuff from his preload meme
# This assumes the presence of the ~/.steam symlink
GAMEROOT=$(realpath $HOME/.local/share/Steam/steamapps/common/Team\ Fortress\ 2)
GAMEEXE="hl2_linux"
if [ ! -d "$GAMEROOT" ]; then
echo -e "\e[91mCould not find Team Fortress 2 directory. Check if Steam symlink at $HOME/.steam exists.\e[39m"
exit -1
fi
export LD_LIBRARY_PATH="$GAMEROOT"\
":$GAMEROOT/bin"\
":$GAMEROOT/bin/linux32"\
":$HOME/.steam/steam/ubuntu12_32"\
":$HOME/.steam/steam/ubuntu12_32/panorama"\
":/lib/i386-linux-gnu"\
":/usr/lib64/atlas"\
":/usr/lib64/bind99"\
":/usr/lib64/iscsi"\
":/usr/lib64/nx"\
":/usr/lib64/qt-3.3/lib"\
":/usr/lib"\
":/lib64"\
":/usr/lib/i686"\
":/usr/lib/sse2"\
":/lib64/tls"\
":/lib64/sse2"\
":/usr/lib/steam"\
":/usr/lib32/steam"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu"\
":$HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/lib"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu"\
":$HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib"\
":$HOME/.steam/steam/ubuntu12_32"\
":$HOME/.steam/steam/ubuntu12_64"
# Set file descriptor limit
ulimit -n 2048
export LD_PRELOAD
LD_PRELOAD="$(pwd)/bin/libcathook.so"
# Enable nVidia threaded optimizations
export __GL_THREADED_OPTIMIZATIONS=1
# Enable Mesa threaded shader compiles
export multithread_glsl_compiler=1
cd "$GAMEROOT"
STATUS=42
while [ $STATUS -eq 42 ]; do
if [ "${DEBUGGER}" == "gdb" ] || [ "${DEBUGGER}" == "cgdb" ]; then
echo -e "\e[92mSuccess! Launching TF2 using ${DEBUGGER} as debugger.\e[39m"
ARGSFILE=$(mktemp "$(whoami)".hl2.gdb.XXXX)
echo b main > "$ARGSFILE"
# Set the LD_PRELOAD varname in the debugger, and unset the global version. This makes it so that
# gameoverlayrenderer.so and the other preload objects aren't loaded in our debugger's process.
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
echo show env LD_PRELOAD >> "$ARGSFILE"
unset LD_PRELOAD
echo run $@ >> "$ARGSFILE"
echo show args >> "$ARGSFILE"
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} -x "$ARGSFILE"
rm "$ARGSFILE"
else
echo -e "\e[92mSuccess! Launching TF2.\e[39m"
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
fi
STATUS=$?
done
exit ${STATUS}

4
shaders/v2f-c4f.frag Executable file
View File

@ -0,0 +1,4 @@
// 2D drawing shader
void main() {
gl_FragColor = gl_Color;
}

13
shaders/v2f-c4f.vert Executable file
View File

@ -0,0 +1,13 @@
// 2D drawing shader
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
attribute vec2 vertex;
attribute vec4 color;
void main()
{
gl_FrontColor = color;
gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0)));
}

6
shaders/v2f-t2f-c4f.frag Executable file
View File

@ -0,0 +1,6 @@
// 2D drawing shader
uniform sampler2D texture;
void main()
{
gl_FragColor = texture2D(texture, gl_TexCoord[0].xy) * gl_Color;
}

15
shaders/v2f-t2f-c4f.vert Executable file
View File

@ -0,0 +1,15 @@
// 2D drawing shader - modified freetype-gl shader
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
attribute vec2 vertex;
attribute vec2 tex_coord;
attribute vec4 color;
void main()
{
gl_TexCoord[0].xy = tex_coord.xy;
gl_FrontColor = color;
gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0)));
}

11
shaders/v3f-t2f-c4f.frag Executable file
View File

@ -0,0 +1,11 @@
/* Freetype GL - A C OpenGL Freetype engine
*
* Distributed under the OSI-approved BSD 2-Clause License. See accompanying
* file `LICENSE` for more details.
*/
uniform sampler2D texture;
void main()
{
float a = texture2D(texture, gl_TexCoord[0].xy).r;
gl_FragColor = vec4(gl_Color.rgb, gl_Color.a*a);
}

18
shaders/v3f-t2f-c4f.vert Executable file
View File

@ -0,0 +1,18 @@
/* Freetype GL - A C OpenGL Freetype engine
*
* Distributed under the OSI-approved BSD 2-Clause License. See accompanying
* file `LICENSE` for more details.
*/
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
attribute vec3 vertex;
attribute vec2 tex_coord;
attribute vec4 color;
void main()
{
gl_TexCoord[0].xy = tex_coord.xy;
gl_FrontColor = color;
gl_Position = projection*(view*(model*vec4(vertex,1.0)));
}

BIN
sound/combowhore.wav Executable file

Binary file not shown.

BIN
sound/dominating.wav Executable file

Binary file not shown.

BIN
sound/doublekill.wav Executable file

Binary file not shown.

BIN
sound/firstblood.wav Executable file

Binary file not shown.

BIN
sound/godlike.wav Executable file

Binary file not shown.

BIN
sound/hattrick.wav Executable file

Binary file not shown.

BIN
sound/headhunter.wav Executable file

Binary file not shown.

BIN
sound/headshot.wav Executable file

Binary file not shown.

BIN
sound/holyshit.wav Executable file

Binary file not shown.

BIN
sound/humiliation.wav Executable file

Binary file not shown.

BIN
sound/impressive.wav Executable file

Binary file not shown.

BIN
sound/killingspree.wav Executable file

Binary file not shown.

BIN
sound/ludicrouskill.wav Executable file

Binary file not shown.

BIN
sound/megakill.wav Executable file

Binary file not shown.

BIN
sound/monsterkill.wav Executable file

Binary file not shown.

BIN
sound/multikill.wav Executable file

Binary file not shown.

BIN
sound/perfect.wav Executable file

Binary file not shown.

BIN
sound/play.wav Executable file

Binary file not shown.

BIN
sound/prepare.wav Executable file

Binary file not shown.

BIN
sound/rampage.wav Executable file

Binary file not shown.

BIN
sound/teamkiller.wav Executable file

Binary file not shown.

BIN
sound/triplekill.wav Executable file

Binary file not shown.

BIN
sound/ultrakill.wav Executable file

Binary file not shown.

BIN
sound/unstoppable.wav Executable file

Binary file not shown.

BIN
sound/wickedsick.wav Executable file

Binary file not shown.

3
src/crits.cpp Executable file → Normal file
View File

@ -95,7 +95,8 @@ static const model_t *lastweapon = nullptr;
bool force_crit(IClientEntity *weapon)
{
if (lastnumber < g_pUserCmd->command_number ||
lastweapon != weapon->GetModel() || lastnumber - g_pUserCmd->command_number > 1000)
lastweapon != weapon->GetModel() ||
lastnumber - g_pUserCmd->command_number > 1000)
{
if (cached_calculation.init_command > g_pUserCmd->command_number ||
g_pUserCmd->command_number - cached_calculation.init_command >

View File

@ -92,12 +92,13 @@ void DrawSpinner()
const glez_rgba_t color = glez_rgba(255, 255, 255, 255);
draw_api::texture_handle_t text = draw_api::create_texture(DATA_PATH"/res/atlas.png");
draw_api::texture_handle_t text =
draw_api::create_texture(DATA_PATH "/res/atlas.png");
while (!text.handle || text.handle == 4294967295)
text = draw_api::create_texture(DATA_PATH "/res/atlas.png");
draw_api::draw_rect_textured(draw::width / 2, draw::height / 2, size, size, colors::white,
text, 0 + 64 * state, (3 + (v9mode ? 1 : 0)) * 64, 64, 64,
angle);
draw_api::draw_rect_textured(draw::width / 2, draw::height / 2, size, size,
colors::white, text, 0 + 64 * state,
(3 + (v9mode ? 1 : 0)) * 64, 64, 64, angle);
if (angle > PI * 4)
angle -= PI * 4;
}

69
src/hack.cpp Executable file → Normal file
View File

@ -82,7 +82,10 @@ std::stack<std::string> &hack::command_stack()
*/
#define red 184, 56, 59, 255
#define blu 88, 133, 162, 255
static CatVar cat_event_hurt(CV_SWITCH, "cat_event_hurt", "1", "Enable OnHurt Event", "Disable if your chat gets spammed with \"blah damaged blah down to blah hp\"");
static CatVar cat_event_hurt(CV_SWITCH, "cat_event_hurt", "1",
"Enable OnHurt Event",
"Disable if your chat gets spammed with \"blah "
"damaged blah down to blah hp\"");
class AdvancedEventListener : public IGameEventListener
{
public:
@ -92,7 +95,9 @@ public:
return;
const char *name = event->GetName();
if (!strcmp(name, "player_connect_client"))
PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 joining", 0xa06ba0,event->GetString("name"), 0x914e65,event->GetString("networkid"));
PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 joining", 0xa06ba0,
event->GetString("name"), 0x914e65,
event->GetString("networkid"));
else if (!strcmp(name, "player_activate"))
{
int uid = event->GetInt("userid");
@ -100,13 +105,15 @@ public:
player_info_s info;
if (g_IEngine->GetPlayerInfo(entity, &info))
PrintChat("\x07%06X%s\x01 connected", 0xa06ba0, info.name);
}
else if (!strcmp(name, "player_disconnect"))
{
CachedEntity *player =
ENTITY(g_IEngine->GetPlayerForUserID(event->GetInt("userid")));
PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 disconnected",colors::chat::team(player->m_iTeam),event->GetString("name"), 0x914e65,event->GetString("networkid"));
PrintChat("\x07%06X%s\x01 \x07%06X%s\x01 disconnected",
colors::chat::team(player->m_iTeam),
event->GetString("name"), 0x914e65,
event->GetString("networkid"));
}
else if (!strcmp(name, "player_team"))
{
@ -116,54 +123,78 @@ public:
int nteam = event->GetInt("team");
const char *oteam_s = teamname(oteam);
const char *nteam_s = teamname(nteam);
PrintChat("\x07%06X%s\x01 changed team (\x07%06X%s\x01 -> ""\x07%06X%s\x01)",0xa06ba0, event->GetString("name"),colors::chat::team(oteam), oteam_s,colors::chat::team(nteam), nteam_s);
PrintChat("\x07%06X%s\x01 changed team (\x07%06X%s\x01 -> "
"\x07%06X%s\x01)",
0xa06ba0, event->GetString("name"),
colors::chat::team(oteam), oteam_s,
colors::chat::team(nteam), nteam_s);
}
}
else if (!strcmp(name, "player_hurt")) {
else if (!strcmp(name, "player_hurt"))
{
int victim = event->GetInt("userid");
int attacker = event->GetInt("attacker");
int health = event->GetInt("health");
player_info_s kinfo;
player_info_s vinfo;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim),
&vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker),
&kinfo);
CachedEntity *vic = ENTITY(g_IEngine->GetPlayerForUserID(victim));
CachedEntity *att = ENTITY(g_IEngine->GetPlayerForUserID(attacker));
PrintChat("\x07%06X%s\x01 hurt \x07%06X%s\x01 down to \x07%06X%d\x01hp", colors::chat::team(att->m_iTeam), kinfo.name, colors::chat::team(vic->m_iTeam), vinfo.name, 0x2aaf18, health);
PrintChat(
"\x07%06X%s\x01 hurt \x07%06X%s\x01 down to \x07%06X%d\x01hp",
colors::chat::team(att->m_iTeam), kinfo.name,
colors::chat::team(vic->m_iTeam), vinfo.name, 0x2aaf18, health);
}
else if (!strcmp(name, "player_death")) {
else if (!strcmp(name, "player_death"))
{
int victim = event->GetInt("userid");
int attacker = event->GetInt("attacker");
player_info_s kinfo;
player_info_s vinfo;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim), &vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker), &kinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(victim),
&vinfo);
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(attacker),
&kinfo);
CachedEntity *vic = ENTITY(g_IEngine->GetPlayerForUserID(victim));
CachedEntity *att = ENTITY(g_IEngine->GetPlayerForUserID(attacker));
PrintChat("\x07%06X%s\x01 killed \x07%06X%s\x01", colors::chat::team(att->m_iTeam), kinfo.name, colors::chat::team(vic->m_iTeam), vinfo.name);
PrintChat("\x07%06X%s\x01 killed \x07%06X%s\x01",
colors::chat::team(att->m_iTeam), kinfo.name,
colors::chat::team(vic->m_iTeam), vinfo.name);
}
else if (!strcmp(name, "player_spawn")) {
else if (!strcmp(name, "player_spawn"))
{
int id = event->GetInt("userid");
player_info_s info;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info);
CachedEntity *player = ENTITY(g_IEngine->GetPlayerForUserID(id));
PrintChat("\x07%06X%s\x01 (re)spawned", colors::chat::team(player->m_iTeam), info.name);
PrintChat("\x07%06X%s\x01 (re)spawned",
colors::chat::team(player->m_iTeam), info.name);
}
else if (!strcmp(name, "player_changeclass")) {
else if (!strcmp(name, "player_changeclass"))
{
int id = event->GetInt("userid");
player_info_s info;
g_IEngine->GetPlayerInfo(g_IEngine->GetPlayerForUserID(id), &info);
CachedEntity *player = ENTITY(g_IEngine->GetPlayerForUserID(id));
PrintChat("\x07%06X%s\x01 changed to \x07%06X%s\x01", colors::chat::team(player->m_iTeam), info.name, 0xa06ba0, classname(event->GetInt("class")));
PrintChat("\x07%06X%s\x01 changed to \x07%06X%s\x01",
colors::chat::team(player->m_iTeam), info.name, 0xa06ba0,
classname(event->GetInt("class")));
}
else if (!strcmp(name, "vote_cast")) {
else if (!strcmp(name, "vote_cast"))
{
int vote_option = event->GetInt("vote_option");
int team = event->GetInt("team");
int idx = event->GetInt("entityid");
player_info_s info;
const char *team_s = teamname(team);
g_IEngine->GetPlayerInfo(idx, &info);
PrintChat("\x07%06X%s\x01 Voted \x07%06X%d\x01 on team \x07%06X%s\x01", colors::chat::team(team), info.name, colors::chat::team(team), vote_option, colors::chat::team(team), team_s);
PrintChat(
"\x07%06X%s\x01 Voted \x07%06X%d\x01 on team \x07%06X%s\x01",
colors::chat::team(team), info.name, colors::chat::team(team),
vote_option, colors::chat::team(team), team_s);
};
}
};

View File

@ -19,7 +19,7 @@ static CatVar enabled(CV_SWITCH, "antibackstab", "0", "Enable",
"Main anti-backstab switch");
static CatVar distance(CV_FLOAT, "antibackstab_distance", "200", "Distance",
"Distance Until anti-backstab reacts");
static CatVar angle(CV_FLOAT, "antibackstab_angle", "150", "Detection Angle");
static CatVar angle(CV_FLOAT, "antibackstab_angle", "90", "Detection Angle");
static CatVar sayno(CV_SWITCH, "antibackstab_nope", "0", "Nope!", "Memes");
void SayNope()
@ -87,8 +87,6 @@ CachedEntity *ClosestSpy()
}
return closest;
}
static CatVar test(CV_FLOAT, "a_t", "180", "");
static CatVar test2(CV_SWITCH, "a_t2", "0", "");
void CreateMove()
{
CachedEntity *spy;
@ -103,8 +101,10 @@ void CreateMove()
ConVar *var = g_ICvar->FindVar("cl_pitchdown");
if (!var)
return;
var->SetValue(140.0f);
g_pUserCmd->viewangles.x = 140.0f;
Vector angles = CE_VECTOR(spy, netvar.angEyeAngles);
var->SetValue(360.0f);
g_pUserCmd->viewangles.x = angles.x + 180.0f;
g_pLocalPlayer->bUseSilentAngles = true;
if (sayno)
SayNope();

View File

@ -402,8 +402,8 @@ void _FASTCALL emoji(CachedEntity *ent)
}
glez_rgba_t white = glez_rgba(255, 255, 255, 255);
while (!textur || textur == 4294967295)
textur = glez_texture_load_png_rgba(
DATA_PATH"/res/atlas.png");
textur = glez_texture_load_png_rgba(DATA_PATH
"/res/atlas.png");
player_info_s info;
unsigned int steamID;
unsigned int steamidarray[32]{};

View File

@ -15,7 +15,6 @@
#if ENABLE_VISUALS == 1
static CatVar medal_flip(CV_SWITCH, "medal_flip", "0", "Infinite Medal Flip",
"");
@ -902,7 +901,8 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
}
}
}
if (sendmsg.test_and_set(300000) && hacks::shared::antiaim::communicate)
if (sendmsg.test_and_set(300000) &&
hacks::shared::antiaim::communicate)
chat_stack::Say("!!meow");
if (crypt_chat)
{
@ -910,8 +910,14 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
{
if (ucccccp::validate(message))
{
if (ucccccp::decrypt(message) == "meow" && hacks::shared::antiaim::communicate && data[0] != LOCAL_E->m_IDX && playerlist::AccessData(ENTITY(data[0])).state != playerlist::k_EState::CAT) {
playerlist::AccessData(ENTITY(data[0])).state = playerlist::k_EState::CAT;
if (ucccccp::decrypt(message) == "meow" &&
hacks::shared::antiaim::communicate &&
data[0] != LOCAL_E->m_IDX &&
playerlist::AccessData(ENTITY(data[0])).state !=
playerlist::k_EState::CAT)
{
playerlist::AccessData(ENTITY(data[0])).state =
playerlist::k_EState::CAT;
chat_stack::Say("!!meow");
}
PrintChat("\x07%06X%s\x01: %s", 0xe05938, name.c_str(),

View File

@ -0,0 +1,34 @@
/*
* CMannVsMachineStats.cpp
*
* Created on: Apr 10, 2018
* Author: bencat07
*/
#include "common.hpp"
using namespace re;
// Unsued right now because of unclear values in AddLocalPlayerUpgrade
C_MannVsMachineStats C_MannVsMachineStats::C_MannVsMachineStats()
{
typedef C_MannVsMachineStats *(*C_MannVsMachineStats_t)();
static uintptr_t addr = gSignatures.GetClientSignature(
"55 A1 ? ? ? ? 89 E5 5D C3 8D B6 00 00 00 00 55 89 E5 53 83 EC ? 8B 5D "
"? C7 83 ? ? ? ? ? ? ? ?");
static C_MannVsMachineStats_t C_MannVsMachineStats_fn =
C_MannVsMachineStats_t(addr);
return C_MannVsMachineStats_fn();
}
int C_MannVsMachineStats::AddLocalPlayerUpgrade(int id, unsigned &a3)
{
typedef int *(*AddLocalPlayerUpgrade_t)(C_MannVsMachineStats *, int,
unsigned);
static uintptr_t addr = gSignatures.GetClientSignature(
"55 89 E5 57 56 53 83 EC ? 8B 5D ? 8B 75 ? 8B 7D ? 8B 43 ? 8B 53 ? 83 "
"C0 ? 39 D0 7E ? 29 D0 89 1C 24 89 44 24 ? E8 ? ? ? ? 8B 43 ? 83 C0 ? "
"8B 13 89 43 ? 29 F0 83 E8 ? 89 F1 C1 E1 ?");
static AddLocalPlayerUpgrade_t AddLocalPlayerUpgrade_fn =
AddLocalPlayerUpgrade_t(addr);
return AddLocalPlayerUpgrade_fn(this, id, &a3);
}

6
src/visual/EffectChams.cpp Executable file → Normal file
View File

@ -102,13 +102,15 @@ void EffectChams::EndRenderChams()
g_IVModelRender->ForcedMaterialOverride(nullptr);
}
bool data[32] = {};
void EffectChams::SetEntityColor (CachedEntity* ent, rgba_t color) {
void EffectChams::SetEntityColor(CachedEntity *ent, rgba_t color)
{
data[ent->m_IDX] = color;
}
rgba_t EffectChams::ChamsColor(IClientEntity *entity)
{
CachedEntity *ent = ENTITY(entity->entindex());
if (data[entity->entindex()]) {
if (data[entity->entindex()])
{
data[entity->entindex()] = false;
return colors::pink;
}

View File

@ -56,6 +56,8 @@ void DrawCheatVisuals()
PROF_SECTION(DRAW_info);
std::string name_s, reason_s;
PROF_SECTION(PT_info_text);
if (info_text)
{
AddSideString("cathook by nullifiedcat", colors::RainbowCurrent());
if (!info_text_min)
{
@ -84,11 +86,13 @@ void DrawCheatVisuals()
reason_s = "*Not Set*";
AddSideString(""); // foolish
AddSideString(format("Custom Name: ", name_s), GUIColor());
AddSideString(format("Custom Disconnect Reason: ", reason_s),
AddSideString(
format("Custom Disconnect Reason: ", reason_s),
GUIColor());
}
}
}
}
if (spectator_target)
{
AddCenterString("Press SPACE to stop spectating");

3
src/votelogger.cpp Executable file → Normal file
View File

@ -11,7 +11,8 @@ namespace votelogger
{
static CatVar enabled(CV_SWITCH, "votelog", "0", "Log votes");
static CatVar requeue(CV_SWITCH, "votelog_requeue", "1", "Auto requeue on vote kick", "Auto requeue on vote kick");
static CatVar requeue(CV_SWITCH, "votelog_requeue", "1",
"Auto requeue on vote kick", "Auto requeue on vote kick");
void user_message(bf_read &buffer, int type)
{