bool HideName(CUserCmd* pCmd, CPlayer* pLocal)
{
if (Config->GetValue("developer", "developer.name.active").m_bValue)
{
ConVar* Nick = Interfaces.Cvar->FindVar("name");
*(int*)((DWORD)&Nick->fnChangeCallback + 0xC) = NULL;
if (Nick)
{
char chCommand[256];
Nick->SetValue("\n");
}
}
return false;
}
if (your_feature_gets_activated) {
ConVar* name = pCvar->FindVar("name");
*(int*)((DWORD)&name->fnChangeCallback + 0xC) = NULL;
if (name) {
name->SetValue("\n");
}
}
class ConVar
{
public:
void SetValue(const char* value)
{
typedef void(__thiscall* OriginalFn)(void*, const char*); //typedef void(__thiscall* OriginalFn)(void*, const char*);
return getvfunc<OriginalFn>(this, 14)(this, value); //return getvfunc<OriginalFn>(this, 14)(this, value);
}
void SetValue(float value)
{
typedef void(__thiscall* OriginalFn)(void*, float);
return getvfunc<OriginalFn>(this, 15)(this, value);
}
void SetValue(int value)
{
typedef void(__thiscall* OriginalFn)(void*, int);
return getvfunc<OriginalFn>(this, 16)(this, value);
}
void SetValue(Color value)
{
typedef void(__thiscall* OriginalFn)(void*, Color);
return getvfunc<OriginalFn>(this, 17)(this, value);
}
char* GetName()
{
typedef char*(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 5)(this);
}
char* GetDefault()
{
return pszDefaultValue;
}
char pad_0x0000[0x4]; //0x0000
ConVar* pNext; //0x0004
__int32 bRegistered; //0x0008
char* pszName; //0x000C
char* pszHelpString; //0x0010
__int32 nFlags; //0x0014
char pad_0x0018[0x4]; //0x0018
ConVar* pParent; //0x001C
char* pszDefaultValue; //0x0020
char* strString; //0x0024
__int32 StringLength; //0x0028
float fValue; //0x002C
__int32 nValue; //0x0030
__int32 bHasMin; //0x0034
float fMinVal; //0x0038
__int32 bHasMax; //0x003C
float fMaxVal; //0x0040
void* fnChangeCallback; //0x0044
};//Size=0x0048