Merge pull request #357 from nullifiedcat/b1g
B1g merge for Events and chatprint
This commit is contained in:
commit
4ba8368fb5
22
include/hacks/Events.hpp
Normal file
22
include/hacks/Events.hpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -24,6 +24,7 @@
|
|||||||
#include "AutoReflect.hpp"
|
#include "AutoReflect.hpp"
|
||||||
#include "AutoSticky.hpp"
|
#include "AutoSticky.hpp"
|
||||||
#include "AntiCheat.hpp"
|
#include "AntiCheat.hpp"
|
||||||
|
#include "Events.hpp"
|
||||||
#include "Bunnyhop.hpp"
|
#include "Bunnyhop.hpp"
|
||||||
#include "LagExploit.hpp"
|
#include "LagExploit.hpp"
|
||||||
#include "Walkbot.hpp"
|
#include "Walkbot.hpp"
|
||||||
|
88
src/hacks/Events.cpp
Normal file
88
src/hacks/Events.cpp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* 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))
|
||||||
|
{
|
||||||
|
int skin = RAW_ENT(ent)->GetSkin();
|
||||||
|
if (skin == 1) {
|
||||||
|
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 (skin == 2) {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -424,10 +424,14 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd)
|
|||||||
hacks::shared::spam::CreateMove();
|
hacks::shared::spam::CreateMove();
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
PROF_SECTION(CM_AC);
|
PROF_SECTION(CM_AC);
|
||||||
angles::Update();
|
angles::Update();
|
||||||
hacks::shared::anticheat::CreateMove();
|
hacks::shared::anticheat::CreateMove();
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
PROF_SECTION(CM_EVENTS);
|
||||||
|
hacks::shared::event::CreateMove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (time_replaced)
|
if (time_replaced)
|
||||||
g_GlobalVars->curtime = curtime_old;
|
g_GlobalVars->curtime = curtime_old;
|
||||||
|
@ -692,13 +692,22 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
|||||||
message.push_back(c);
|
message.push_back(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
static const char *lastfilter;
|
||||||
|
static const char *lastname;
|
||||||
|
static bool retrun = false;
|
||||||
|
if (data[0] != LOCAL_E->m_IDX) {
|
||||||
|
if (retrun)
|
||||||
|
PrintChat("\x07%06X%s\x01: \x07%06X%s\x01", 0xe05938, lastname,
|
||||||
|
0xefec1f, lastfilter);
|
||||||
|
}
|
||||||
|
retrun = false;
|
||||||
if (chat_filter_enabled && data[0] != LOCAL_E->m_IDX)
|
if (chat_filter_enabled && data[0] != LOCAL_E->m_IDX)
|
||||||
{
|
{
|
||||||
if (!strcmp(chat_filter.GetString(), ""))
|
if (!strcmp(chat_filter.GetString(), ""))
|
||||||
{
|
{
|
||||||
std::string tmp = {};
|
std::string tmp = {};
|
||||||
std::string tmp2 = {};
|
std::string tmp2 = {};
|
||||||
int iii = 0;
|
int iii = 0;
|
||||||
player_info_s info;
|
player_info_s info;
|
||||||
g_IEngine->GetPlayerInfo(LOCAL_E->m_IDX, &info);
|
g_IEngine->GetPlayerInfo(LOCAL_E->m_IDX, &info);
|
||||||
std::string name1 = info.name;
|
std::string name1 = info.name;
|
||||||
@ -798,6 +807,8 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
|||||||
boost::replace_all(message2, "7", "t");
|
boost::replace_all(message2, "7", "t");
|
||||||
for (auto filter : res)
|
for (auto filter : res)
|
||||||
{
|
{
|
||||||
|
if (retrun)
|
||||||
|
break;
|
||||||
if (boost::contains(message2, filter))
|
if (boost::contains(message2, filter))
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -807,6 +818,9 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
|||||||
clear += "\n";
|
clear += "\n";
|
||||||
}
|
}
|
||||||
chat_stack::Say(". " + clear, true);
|
chat_stack::Say(". " + clear, true);
|
||||||
|
retrun = true;
|
||||||
|
lastfilter = filter.c_str();
|
||||||
|
lastname = name.c_str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -825,6 +839,8 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
|||||||
boost::replace_all(message2, "7", "t");
|
boost::replace_all(message2, "7", "t");
|
||||||
for (auto filter : result)
|
for (auto filter : result)
|
||||||
{
|
{
|
||||||
|
if (retrun)
|
||||||
|
break;
|
||||||
if (boost::contains(message2, filter))
|
if (boost::contains(message2, filter))
|
||||||
{
|
{
|
||||||
if (clear == "")
|
if (clear == "")
|
||||||
@ -834,6 +850,9 @@ bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf)
|
|||||||
clear += "\n";
|
clear += "\n";
|
||||||
}
|
}
|
||||||
chat_stack::Say(". " + clear, true);
|
chat_stack::Say(". " + clear, true);
|
||||||
|
retrun = true;
|
||||||
|
lastfilter = filter.c_str();
|
||||||
|
lastname = name.c_str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user