external draw fixes

This commit is contained in:
BenCat07 2018-04-07 17:10:24 +02:00
parent fca8b01f74
commit ed74c7c66e
8 changed files with 56 additions and 142 deletions

View File

@ -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);
}
}
}

View File

@ -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"

View File

@ -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;
}

View File

@ -80,7 +80,8 @@ std::stack<std::string> &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);
}
}
};

View File

@ -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");

View File

@ -1,88 +0,0 @@
/*
* Events.cpp
*
* Created on: Feb 24, 2018
* Author: bencat07
*/
#include "common.hpp"
namespace hacks
{
namespace shared
{
namespace event
{
std::array<int, 2048> 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;
}
}
}
}
}

View File

@ -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)

View File

@ -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;