Add unfinished MvM Automated Upgrades, fix Antibackstab and fix cat_info
This commit is contained in:
parent
61c2172a2f
commit
55833b8d82
BIN
fonts/opensans.ttf
Executable file
BIN
fonts/opensans.ttf
Executable file
Binary file not shown.
BIN
fonts/roboto.ttf
Executable file
BIN
fonts/roboto.ttf
Executable file
Binary file not shown.
BIN
fonts/tf2build.ttf
Executable file
BIN
fonts/tf2build.ttf
Executable file
Binary file not shown.
BIN
fonts/unispace.ttf
Executable file
BIN
fonts/unispace.ttf
Executable file
Binary file not shown.
BIN
fonts/verasans.ttf
Executable file
BIN
fonts/verasans.ttf
Executable file
Binary file not shown.
23
include/reclasses/C_MannVsMachineStats.hpp
Normal file
23
include/reclasses/C_MannVsMachineStats.hpp
Normal 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);
|
||||
};
|
||||
}
|
@ -21,3 +21,5 @@
|
||||
#include "CTFGCClientSystem.hpp"
|
||||
#include "ITFGroupMatchCriteria.hpp"
|
||||
#include "CTFPartyClient.hpp"
|
||||
|
||||
#include "C_MannVsMachineStats.hpp"
|
||||
|
2
include/visual/EffectChams.hpp
Executable file → Normal file
2
include/visual/EffectChams.hpp
Executable file → Normal file
@ -34,7 +34,7 @@ public:
|
||||
return enabled;
|
||||
};
|
||||
|
||||
void SetEntityColor(CachedEntity* ent, rgba_t color);
|
||||
void SetEntityColor(CachedEntity *ent, rgba_t color);
|
||||
rgba_t ChamsColor(IClientEntity *entity);
|
||||
bool ShouldRenderChams(IClientEntity *entity);
|
||||
void RenderChams(int idx);
|
||||
|
550
menu.json
Executable file
550
menu.json
Executable 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
84
preload.sh
Executable 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
4
shaders/v2f-c4f.frag
Executable file
@ -0,0 +1,4 @@
|
||||
// 2D drawing shader
|
||||
void main() {
|
||||
gl_FragColor = gl_Color;
|
||||
}
|
13
shaders/v2f-c4f.vert
Executable file
13
shaders/v2f-c4f.vert
Executable 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
6
shaders/v2f-t2f-c4f.frag
Executable 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
15
shaders/v2f-t2f-c4f.vert
Executable 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
11
shaders/v3f-t2f-c4f.frag
Executable 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
18
shaders/v3f-t2f-c4f.vert
Executable 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
BIN
sound/combowhore.wav
Executable file
Binary file not shown.
BIN
sound/dominating.wav
Executable file
BIN
sound/dominating.wav
Executable file
Binary file not shown.
BIN
sound/doublekill.wav
Executable file
BIN
sound/doublekill.wav
Executable file
Binary file not shown.
BIN
sound/firstblood.wav
Executable file
BIN
sound/firstblood.wav
Executable file
Binary file not shown.
BIN
sound/godlike.wav
Executable file
BIN
sound/godlike.wav
Executable file
Binary file not shown.
BIN
sound/hattrick.wav
Executable file
BIN
sound/hattrick.wav
Executable file
Binary file not shown.
BIN
sound/headhunter.wav
Executable file
BIN
sound/headhunter.wav
Executable file
Binary file not shown.
BIN
sound/headshot.wav
Executable file
BIN
sound/headshot.wav
Executable file
Binary file not shown.
BIN
sound/holyshit.wav
Executable file
BIN
sound/holyshit.wav
Executable file
Binary file not shown.
BIN
sound/humiliation.wav
Executable file
BIN
sound/humiliation.wav
Executable file
Binary file not shown.
BIN
sound/impressive.wav
Executable file
BIN
sound/impressive.wav
Executable file
Binary file not shown.
BIN
sound/killingspree.wav
Executable file
BIN
sound/killingspree.wav
Executable file
Binary file not shown.
BIN
sound/ludicrouskill.wav
Executable file
BIN
sound/ludicrouskill.wav
Executable file
Binary file not shown.
BIN
sound/megakill.wav
Executable file
BIN
sound/megakill.wav
Executable file
Binary file not shown.
BIN
sound/monsterkill.wav
Executable file
BIN
sound/monsterkill.wav
Executable file
Binary file not shown.
BIN
sound/multikill.wav
Executable file
BIN
sound/multikill.wav
Executable file
Binary file not shown.
BIN
sound/perfect.wav
Executable file
BIN
sound/perfect.wav
Executable file
Binary file not shown.
BIN
sound/play.wav
Executable file
BIN
sound/play.wav
Executable file
Binary file not shown.
BIN
sound/prepare.wav
Executable file
BIN
sound/prepare.wav
Executable file
Binary file not shown.
BIN
sound/rampage.wav
Executable file
BIN
sound/rampage.wav
Executable file
Binary file not shown.
BIN
sound/teamkiller.wav
Executable file
BIN
sound/teamkiller.wav
Executable file
Binary file not shown.
BIN
sound/triplekill.wav
Executable file
BIN
sound/triplekill.wav
Executable file
Binary file not shown.
BIN
sound/ultrakill.wav
Executable file
BIN
sound/ultrakill.wav
Executable file
Binary file not shown.
BIN
sound/unstoppable.wav
Executable file
BIN
sound/unstoppable.wav
Executable file
Binary file not shown.
BIN
sound/wickedsick.wav
Executable file
BIN
sound/wickedsick.wav
Executable file
Binary file not shown.
3
src/crits.cpp
Executable file → Normal file
3
src/crits.cpp
Executable file → Normal 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 >
|
||||
|
@ -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);
|
||||
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);
|
||||
if (angle > PI * 4)
|
||||
angle -= PI * 4;
|
||||
}
|
||||
|
125
src/hack.cpp
Executable file → Normal file
125
src/hack.cpp
Executable file → Normal 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,21 +95,25 @@ 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");
|
||||
int entity = g_IEngine->GetPlayerForUserID(uid);
|
||||
player_info_s info;
|
||||
if (g_IEngine->GetPlayerInfo(entity, &info))
|
||||
PrintChat("\x07%06X%s\x01 connected", 0xa06ba0, info.name);
|
||||
|
||||
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")) {
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
}
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
}
|
||||
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);
|
||||
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);
|
||||
}
|
||||
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")));
|
||||
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")));
|
||||
}
|
||||
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);
|
||||
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);
|
||||
};
|
||||
}
|
||||
};
|
||||
|
@ -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();
|
||||
|
@ -378,7 +378,7 @@ void _FASTCALL emoji(CachedEntity *ent)
|
||||
if (ent->m_Type == ENTITY_PLAYER)
|
||||
{
|
||||
static glez_texture_t textur =
|
||||
glez_texture_load_png_rgba(DATA_PATH"/res/atlas.png");
|
||||
glez_texture_load_png_rgba(DATA_PATH "/res/atlas.png");
|
||||
static glez_texture_t idspecific;
|
||||
if (emoji_ok)
|
||||
auto hit = hitboxcache[ent->m_IDX][0];
|
||||
@ -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]{};
|
||||
@ -416,7 +416,7 @@ void _FASTCALL emoji(CachedEntity *ent)
|
||||
steamID = info.friendsID;
|
||||
if (!idspecific)
|
||||
idspecific = glez_texture_load_png_rgba(
|
||||
DATA_PATH"/res/idspec.png");
|
||||
DATA_PATH "/res/idspec.png");
|
||||
if (idspecific &&
|
||||
playerlist::AccessData(steamID).state ==
|
||||
playerlist::k_EState::CAT)
|
||||
@ -429,7 +429,7 @@ void _FASTCALL emoji(CachedEntity *ent)
|
||||
{
|
||||
while (!idspecific)
|
||||
idspecific = glez_texture_load_png_rgba(
|
||||
DATA_PATH"/res/idspec.png");
|
||||
DATA_PATH "/res/idspec.png");
|
||||
if (idspecific)
|
||||
glez_rect_textured(head_scr.x - size / 2,
|
||||
head_scr.y - size / 2, size,
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
#if ENABLE_VISUALS == 1
|
||||
|
||||
|
||||
static CatVar medal_flip(CV_SWITCH, "medal_flip", "0", "Infinite Medal Flip",
|
||||
"");
|
||||
|
||||
@ -593,7 +592,7 @@ void FrameStageNotify_hook(void *_this, int stage)
|
||||
if (nightmode)
|
||||
{
|
||||
static int OldNightmode = 0;
|
||||
if (OldNightmode != (int)nightmode)
|
||||
if (OldNightmode != (int) nightmode)
|
||||
{
|
||||
|
||||
static ConVar *r_DrawSpecificStaticProp =
|
||||
@ -902,18 +901,25 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (sendmsg.test_and_set(300000) && hacks::shared::antiaim::communicate)
|
||||
chat_stack::Say("!!meow");
|
||||
if (sendmsg.test_and_set(300000) &&
|
||||
hacks::shared::antiaim::communicate)
|
||||
chat_stack::Say("!!meow");
|
||||
if (crypt_chat)
|
||||
{
|
||||
if (message.find("!!") == 0)
|
||||
{
|
||||
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;
|
||||
chat_stack::Say("!!meow");
|
||||
}
|
||||
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(),
|
||||
ucccccp::decrypt(message).c_str());
|
||||
}
|
||||
|
34
src/reclasses/C_MannVsMachineStats.cpp
Normal file
34
src/reclasses/C_MannVsMachineStats.cpp
Normal 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);
|
||||
}
|
12
src/visual/EffectChams.cpp
Executable file → Normal file
12
src/visual/EffectChams.cpp
Executable file → Normal file
@ -102,15 +102,17 @@ void EffectChams::EndRenderChams()
|
||||
g_IVModelRender->ForcedMaterialOverride(nullptr);
|
||||
}
|
||||
bool data[32] = {};
|
||||
void EffectChams::SetEntityColor (CachedEntity* ent, rgba_t color) {
|
||||
data[ent->m_IDX] = 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()]) {
|
||||
data[entity->entindex()] = false;
|
||||
return colors::pink;
|
||||
if (data[entity->entindex()])
|
||||
{
|
||||
data[entity->entindex()] = false;
|
||||
return colors::pink;
|
||||
}
|
||||
if (CE_BAD(ent))
|
||||
return colors::white;
|
||||
|
@ -56,36 +56,40 @@ void DrawCheatVisuals()
|
||||
PROF_SECTION(DRAW_info);
|
||||
std::string name_s, reason_s;
|
||||
PROF_SECTION(PT_info_text);
|
||||
AddSideString("cathook by nullifiedcat", colors::RainbowCurrent());
|
||||
if (!info_text_min)
|
||||
if (info_text)
|
||||
{
|
||||
AddSideString(hack::GetVersion(),
|
||||
GUIColor()); // github commit and date
|
||||
AddSideString(hack::GetType(), GUIColor()); // Compile type
|
||||
AddSideString("cathook by nullifiedcat", colors::RainbowCurrent());
|
||||
if (!info_text_min)
|
||||
{
|
||||
AddSideString(hack::GetVersion(),
|
||||
GUIColor()); // github commit and date
|
||||
AddSideString(hack::GetType(), GUIColor()); // Compile type
|
||||
#if ENABLE_GUI
|
||||
AddSideString(
|
||||
"Press 'INSERT' or 'F11' key to open/close cheat menu.",
|
||||
GUIColor());
|
||||
AddSideString("Use mouse to navigate in menu.", GUIColor());
|
||||
AddSideString(
|
||||
"Press 'INSERT' or 'F11' key to open/close cheat menu.",
|
||||
GUIColor());
|
||||
AddSideString("Use mouse to navigate in menu.", GUIColor());
|
||||
#endif
|
||||
if (!g_IEngine->IsInGame()
|
||||
if (!g_IEngine->IsInGame()
|
||||
#if ENABLE_GUI
|
||||
/*
|
||||
|| g_pGUI->Visible()
|
||||
*/
|
||||
#endif
|
||||
)
|
||||
{
|
||||
name_s = force_name.GetString();
|
||||
if (name_s.length() < 3)
|
||||
name_s = "*Not Set*";
|
||||
reason_s = disconnect_reason.GetString();
|
||||
if (reason_s.length() < 3)
|
||||
reason_s = "*Not Set*";
|
||||
AddSideString(""); // foolish
|
||||
AddSideString(format("Custom Name: ", name_s), GUIColor());
|
||||
AddSideString(format("Custom Disconnect Reason: ", reason_s),
|
||||
GUIColor());
|
||||
)
|
||||
{
|
||||
name_s = force_name.GetString();
|
||||
if (name_s.length() < 3)
|
||||
name_s = "*Not Set*";
|
||||
reason_s = disconnect_reason.GetString();
|
||||
if (reason_s.length() < 3)
|
||||
reason_s = "*Not Set*";
|
||||
AddSideString(""); // foolish
|
||||
AddSideString(format("Custom Name: ", name_s), GUIColor());
|
||||
AddSideString(
|
||||
format("Custom Disconnect Reason: ", reason_s),
|
||||
GUIColor());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
11
src/votelogger.cpp
Executable file → Normal file
11
src/votelogger.cpp
Executable file → Normal file
@ -11,11 +11,12 @@ 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)
|
||||
{
|
||||
bool islocalplayer = false;
|
||||
bool islocalplayer = false;
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
@ -26,7 +27,7 @@ void user_message(bf_read &buffer, int type)
|
||||
break;
|
||||
case 46:
|
||||
{
|
||||
islocalplayer = false;
|
||||
islocalplayer = false;
|
||||
unsigned char caller = buffer.ReadByte();
|
||||
// unknown
|
||||
buffer.ReadByte();
|
||||
@ -45,7 +46,7 @@ void user_message(bf_read &buffer, int type)
|
||||
steamID = info.friendsID;
|
||||
}
|
||||
if (eid == LOCAL_E->m_IDX)
|
||||
islocalplayer = true;
|
||||
islocalplayer = true;
|
||||
|
||||
logging::Info("Vote called to kick %s [U:1:%u] for %s", name, steamID,
|
||||
reason);
|
||||
@ -54,7 +55,7 @@ void user_message(bf_read &buffer, int type)
|
||||
case 47:
|
||||
logging::Info("Vote passed");
|
||||
if (islocalplayer && requeue)
|
||||
tfmm::queue_start();
|
||||
tfmm::queue_start();
|
||||
break;
|
||||
case 48:
|
||||
logging::Info("Vote failed");
|
||||
|
Reference in New Issue
Block a user