blob: 3f996c69fd636dcf1654fec5c97f6f81d129d898 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include "pch.h"
#include "cvar.h"
ConVar* sv_cheats;
typedef char(__fastcall* function_containing_emit_t)(uint64_t a1, uint64_t a2);
function_containing_emit_t function_containing_emit;
char function_containing_emit_hook(uint64_t unknown_value, uint64_t command_ptr)
{
char* command_string = *(char**)(command_ptr + 1040); // From decompile
if (!sv_cheats->m_Value.m_nValue && !strncmp(command_string, "emit", 5))
{
spdlog::info("Blocking command \"emit\" because sv_cheats was 0");
return 1;
}
return function_containing_emit(unknown_value, command_ptr);
}
void InitialiseServerEmit_Blocker(HMODULE baseAddress)
{
HookEnabler hook;
sv_cheats = g_pCVar->FindVar("sv_cheats");
ENABLER_CREATEHOOK(
hook, (char*)baseAddress + 0x5889A0, &function_containing_emit_hook, reinterpret_cast<LPVOID*>(&function_containing_emit));
}
|