From ed74c7c66ed743e7c838c2363a69d43f0d7a00c8 Mon Sep 17 00:00:00 2001 From: BenCat07 Date: Sat, 7 Apr 2018 17:10:24 +0200 Subject: [PATCH] external draw fixes --- include/hacks/Events.hpp | 22 ---------- include/hacks/hacklist.hpp | 1 - src/fidgetspinner.cpp | 6 +-- src/hack.cpp | 66 ++++++++++++++++++++-------- src/hacks/AutoJoin.cpp | 6 +-- src/hacks/Events.cpp | 88 -------------------------------------- src/hacks/LagExploit.cpp | 5 +-- src/hooks/CreateMove.cpp | 4 -- 8 files changed, 56 insertions(+), 142 deletions(-) delete mode 100755 include/hacks/Events.hpp delete mode 100755 src/hacks/Events.cpp diff --git a/include/hacks/Events.hpp b/include/hacks/Events.hpp deleted file mode 100755 index dd585e70..00000000 --- a/include/hacks/Events.hpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Events.hpp - * - * Created on: Feb 24, 2018 - * Author: bencat07 - */ -#pragma once - -#include "common.hpp" - -namespace hacks -{ -namespace shared -{ -namespace event -{ - -void CreateMove(); -char *inttochar(int i); -} -} -} diff --git a/include/hacks/hacklist.hpp b/include/hacks/hacklist.hpp index 65344faa..64ee9746 100755 --- a/include/hacks/hacklist.hpp +++ b/include/hacks/hacklist.hpp @@ -25,7 +25,6 @@ #include "AutoSticky.hpp" #include "AutoDetonator.hpp" #include "AntiCheat.hpp" -#include "Events.hpp" #include "Bunnyhop.hpp" #include "LagExploit.hpp" #include "Walkbot.hpp" diff --git a/src/fidgetspinner.cpp b/src/fidgetspinner.cpp index d42a2049..762805bd 100644 --- a/src/fidgetspinner.cpp +++ b/src/fidgetspinner.cpp @@ -96,9 +96,9 @@ void DrawSpinner() glez_texture_load_png_rgba("/opt/cathook/data/res/atlas.png"); while (!tex) tex = glez_texture_load_png_rgba("/opt/cathook/data/res/atlas.png"); - glez_rect_textured(draw::width / 2, draw::height / 2, size, size, color, - tex, 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, + {tex}, 0 + 64 * state, (3 + (v9mode ? 1 : 0)) * 64, 64, 64, + angle); if (angle > PI * 4) angle -= PI * 4; } diff --git a/src/hack.cpp b/src/hack.cpp index 67d4831a..1acfcc3b 100755 --- a/src/hack.cpp +++ b/src/hack.cpp @@ -80,7 +80,8 @@ std::stack &hack::command_stack() #if ENABLE_VISUALS == 1 /* Why would we need colored chat stuff in textmode? \ */ - +#define red 184, 56, 59, 255 +#define blu 88, 133, 162, 255 class AdvancedEventListener : public IGameEventListener { public: @@ -88,31 +89,29 @@ public: { if (!event_log) return; + static ConVar *var = g_ICvar->FindVar("developer"); + static ConVar *filter = g_ICvar->FindVar("con_filter_text"); + static ConVar *enable = g_ICvar->FindVar("con_filter_enable"); + filter->SetValue("[CAT]"); + var->SetValue(1); + enable->SetValue(1); 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")) { @@ -122,13 +121,44 @@ 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); + PrintChat("\x07%06X%s\x01 hurt \x07%06X%s\x01 down to \x07%06X%d\x01hp", 0x4286f4, kinfo.name, 0xc11739, 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); + PrintChat("\x07%06X%s\x01 killed \x07%06X%s\x01", 0x4286f4, kinfo.name, 0xc11739, 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); + PrintChat("\x07%06X%s\x01 (re)spawned", 0xa06ba0, info.name); + } + else if (!strcmp(name, "player_changeclass")) { + int id = event->GetInt("userid"); + player_info_s info; + PrintChat("\x07%06X%s\x01 changed to \x07%06X%s\x01", 0xa06ba0, info.name, 0xa06ba0, classname(event->GetInt("class"))); + } + else if (!strcmp(name, "player_builtobject")) { + int obj = event->GetInt("object"); + + logging::Info("%d, %d, %d", obj == ENTITY_BUILDING, obj == CL_CLASS(CObjectSentrygun), obj); + } } }; diff --git a/src/hacks/AutoJoin.cpp b/src/hacks/AutoJoin.cpp index 44beee4b..200b0e33 100644 --- a/src/hacks/AutoJoin.cpp +++ b/src/hacks/AutoJoin.cpp @@ -54,11 +54,11 @@ void UpdateSearch() if (g_IEngine->IsInGame()) return; - if (g_pUserCmd) + re::CTFGCClientSystem *gc = re::CTFGCClientSystem::GTFGCClientSystem(); + if (g_pUserCmd && gc && gc->BConnectedToMatchServer(false)) tfmm::queue_leave(); - if (autoqueue_timer.test_and_set(30000)) + if (autoqueue_timer.test_and_set(60000)) { - re::CTFGCClientSystem *gc = re::CTFGCClientSystem::GTFGCClientSystem(); if (gc && !gc->BConnectedToMatchServer(false) && !g_pUserCmd) { logging::Info("Starting queue"); diff --git a/src/hacks/Events.cpp b/src/hacks/Events.cpp deleted file mode 100755 index ccd54ff2..00000000 --- a/src/hacks/Events.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Events.cpp - * - * Created on: Feb 24, 2018 - * Author: bencat07 - */ -#include "common.hpp" - -namespace hacks -{ -namespace shared -{ -namespace event -{ -std::array data; -void CreateMove() -{ - if (!event_log) - return; - for (int i; i < g_IEngine->GetMaxClients(); ++i) - { - CachedEntity *ent = ENTITY(i); - if (!CE_GOOD(ent)) - continue; - player_info_s info; - g_IEngine->GetPlayerInfo(ent->m_IDX, &info); - if (!data[i]) - data[i] = CE_INT(ent, netvar.iClass); - - if (data[i] != CE_INT(ent, netvar.iClass)) - { - if (ent->m_iTeam == TEAM_RED) - { - PrintChat("\x07%06X%s\x01 changed from \"\x07%06X%s\x01\" to " - "\"\x07%06X%s\x01\"", - 0xb8383b, info.name, 0x6b9ca0, inttochar(data[i]), - 0x6ba072, inttochar(CE_INT(ent, netvar.iClass))); - } - else if (ent->m_iTeam == TEAM_BLU) - { - PrintChat("\x07%06X%s\x01 changed from \"\x07%06X%s\x01\" to " - "\"\x07%06X%s\x01\"", - 0x5885a2, info.name, 0x6b9ca0, inttochar(data[i]), - 0x6ba072, inttochar(CE_INT(ent, netvar.iClass))); - } - data[i] = CE_INT(ent, netvar.iClass); - } - } -} -char *inttochar(int i) -{ - switch (i) - { - case tf_scout: - return "Scout"; - break; - case tf_sniper: - return "Sniper"; - break; - case tf_soldier: - return "Soldier"; - break; - case tf_demoman: - return "Demoman"; - break; - case tf_medic: - return "Medic"; - break; - case tf_heavy: - return "Heavy"; - break; - case tf_pyro: - return "Pyro"; - break; - case tf_spy: - return "Spy"; - break; - case tf_engineer: - return "Engineer"; - break; - default: - return "Invalid"; - break; - } -} -} -} -} diff --git a/src/hacks/LagExploit.cpp b/src/hacks/LagExploit.cpp index 81f30f30..a16df9e2 100644 --- a/src/hacks/LagExploit.cpp +++ b/src/hacks/LagExploit.cpp @@ -446,7 +446,7 @@ void CreateMove() if (!i) i = ((int) servertime - (int) nextattack); amount = i * 66; - if (!CE_BYTE(g_pLocalPlayer->weapon(), netvar.m_iClip1)) + if (CE_INT(g_pLocalPlayer->weapon(), netvar.m_iClip1) == 0) { g_pUserCmd->buttons &= ~IN_ATTACK; g_pUserCmd->buttons &= ~IN_ATTACK2; @@ -461,8 +461,7 @@ void CreateMove() if (!i) i = 3; amount = i * 66; - g_pUserCmd->buttons &= ~IN_ATTACK; - g_pUserCmd->buttons &= ~IN_ATTACK2; + g_pUserCmd->buttons |= IN_ATTACK; } } if (i) diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 555c5fb6..4251fce6 100755 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -437,10 +437,6 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd) angles::Update(); hacks::shared::anticheat::CreateMove(); } - { - PROF_SECTION(CM_EVENTS); - hacks::shared::event::CreateMove(); - } } if (time_replaced) g_GlobalVars->curtime = curtime_old;