Merge pull request #11 from nullifiedcat/guifix

add convars to gui
This commit is contained in:
nullifiedcat 2017-03-22 14:58:25 +03:00 committed by GitHub
commit c05dc422b7
7 changed files with 58 additions and 145 deletions

View File

@ -6,7 +6,7 @@ INCLUDES=-I$(SIMPLE_IPC_DIR) -I$(SDKFOLDER)/public -I$(SDKFOLDER)/mathlib -I$(SD
CXXFLAGS += $(INCLUDES)
LIB_DIR=lib
LDFLAGS=-m32 -fno-gnu-unique -D_GLIBCXX_USE_CXX11_ABI=0 -shared -L$(realpath $(LIB_DIR))
LDLIBS=-static -l:libc.so.6 -l:libstdc++.so.6 -ltier0 -lvstdlib
LDLIBS=-static -lc -lstdc++ -ltier0 -lvstdlib
SRC_DIR = src
OUT_NAME = libcathook.so
TARGET_DIR = bin

View File

@ -86,6 +86,7 @@ void CatVar::OnRegister(CatVar::RegisterCallbackFn fn) {
}
void CatVar::Register() {
CatVarList().push_back(this);
convar = CreateConVar(CON_PREFIX + name, defaults, desc_short);
convar_parent = convar->m_pParent;
while (!callbacks.empty()) {
@ -124,3 +125,8 @@ int CatEnum::Minimum() const {
return m_iMin;
}
std::vector<CatVar*>& CatVarList() {
static std::vector<CatVar*> object {};
return object;
}

View File

@ -112,6 +112,7 @@ public:
ConVar* convar_parent;
};
std::vector<CatVar*>& CatVarList();
void RegisterCatVars();
#endif /* CVWRAPPER_H_ */

View File

@ -26,7 +26,7 @@ CatVar send_packets(CV_SWITCH, "sendpackets", "1", "Send packets", "Internal use
CatVar show_antiaim(CV_SWITCH, "thirdperson_angles", "1", "Real TP angles", "You can see your own AA/Aimbot angles in thirdperson");
CatVar force_thirdperson(CV_SWITCH, "thirdperson", "0", "Thirdperson", "Enable thirdperson view");
CatVar console_logging(CV_SWITCH, "log", "1", "Debug Log", "Disable this if you don't need cathook messages in your console");
CatVar fast_outline(CV_SWITCH, "fastoutline", "0", "Low quality outline", "Might increase performance when there is a lot of ESP text to draw");
//CatVar fast_outline(CV_SWITCH, "fastoutline", "0", "Low quality outline", "Might increase performance when there is a lot of ESP text to draw");
CatVar roll_speedhack(CV_KEY, "rollspeedhack", "0", "Roll Speedhack", "Roll speedhack key");
void GlobalSettings::Init() {

View File

@ -36,6 +36,10 @@ CCVarContainer::CCVarContainer(IWidget* parent, CatVar* var) : CBaseContainer("c
m_pControl = cb;
} break;
case CatVar_t::CV_ENUM: { // Most difficult thing, dropdown menu
if (!var->enum_type) {
logging::Info("VAR %s HAS NO ENUM TYPE!! ERROR!!", var->name.c_str());
break;
}
CDropdown* dd = new CDropdown(GetName() + "_control", this);
for (int i = var->enum_type->Minimum(); i <= var->enum_type->Maximum(); i++) {
dd->AddValue(var->enum_type->Name(i));

View File

@ -24,180 +24,82 @@ CMenuWindow::CMenuWindow(std::string name, IWidget* parent) : CBaseWindow(name,
#define ADDCVAR(x) tab->AddChild(new CCVarContainer(tab, (x)))
#define ADDLABEL(x) tab->AddChild(new CTextLabel("label", tab, x, true))
#define ADDCVARS(x) for (auto var : FindCatVars(x)) ADDCVAR(var)
std::vector<CatVar*> FindCatVars(const std::string name) {
std::vector<CatVar*> result = {};
for (auto var : CatVarList()) {
if (var->name.find(name) == 0) result.push_back(var);
}
return result;
}
void CMenuWindow::AddElements() {
AddChild(new CTextLabel("notice", this, "NOTICE: MOST CONVARS ARE MISSING FROM MENU! USE CONSOLE!", true));
AddTab("aimbot", "Aimbot");
CMenuContainer* tab = GetTab("aimbot");
/*tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bEnabled));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bAimAtTeammates));
if (TF) tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bAimBuildings));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_eHitboxMode));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bAutoShoot));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bActiveOnlyWhenCanShoot));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bEnabledAttacking));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bInterpolation));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bProjPredFOV));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bProjPredVisibility));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bProjectileAimbot));
if (TF) tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bRespectCloak));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bSilent));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_bZoomedOnly));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_eAimKeyMode));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_eHitbox));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_ePriorityMode));
if (TF) tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_fAutoShootHuntsmanCharge));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_fFOV));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_fOverrideProjGravity));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_fOverrideProjSpeed));
//tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_iMaxAutoshootRange));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_iMaxRange));
//tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_iSeenDelay));
tab->AddChild(new CCVarContainer(tab, g_phAimbot->v_kAimKey));*/
for (auto var : FindCatVars("aimbot_")) ADDCVAR(var);
AddTab("esp", "ESP");
tab = GetTab("esp");
/*ADDCVAR(g_phESP->v_bEnabled);
if (TF) ADDCVAR(g_phESP->v_bShowTank);
if (TF) ADDCVAR(g_phESP->v_bBuildingESP);
ADDLABEL("Player ESP");
ADDCVAR(g_phESP->v_bBox);
ADDCVAR(g_phESP->v_bTeammates);
ADDCVAR(g_phESP->v_bLegit);
//ADDCVAR(g_phESP->v_iLegitSeenTicks);
ADDCVAR(g_phESP->v_bShowHealthNumbers);
ADDCVAR(g_phESP->v_bShowName);
if (TF) ADDCVAR(g_phESP->v_bShowClass);
if (TF) ADDCVAR(g_phESP->v_bShowConditions);
ADDCVAR(g_phESP->v_bSeeLocal);
if (TF) ADDCVAR(g_phESP->v_bTeammatePowerup);
ADDCVAR(g_phESP->v_bShowFriends);
ADDCVAR(g_phESP->v_bShowFriendID);
ADDLABEL("Item ESP");
ADDCVAR(g_phESP->v_bItemESP);
ADDCVAR(g_phESP->v_bShowMoney);
ADDCVAR(g_phESP->v_bShowHealthPacks);
if (TF2C) ADDCVAR(g_phESP->v_bShowWeaponSpawners);
if (TF2C) ADDCVAR(g_phESP->v_bShowAdrenaline);
if (TF) ADDCVAR(g_phESP->v_bShowAmmoPacks);
ADDCVAR(g_phESP->v_bShowDroppedWeapons);
if (TF) ADDCVAR(g_phESP->v_bShowPowerups);
if (TF) ADDCVAR(g_phESP->v_bShowRedMoney);
if (TF) {
ADDLABEL("Projectile ESP");
ADDCVAR(g_phESP->v_bProjectileESP);
ADDCVAR(g_phESP->v_bOnlyEnemyProjectiles);
ADDCVAR(g_phESP->v_iShowArrows);
ADDCVAR(g_phESP->v_iShowPipes);
ADDCVAR(g_phESP->v_iShowRockets);
ADDCVAR(g_phESP->v_iShowStickies);
}
ADDLABEL("");
ADDCVAR(g_phESP->v_bEntityESP);
ADDCVAR(g_phESP->v_bShowEntityID);*/
for (auto var : FindCatVars("esp_")) ADDCVAR(var);
AddTab("triggerbot", "Triggerbot");
tab = GetTab("triggerbot");
ADDCVAR(&hacks::shared::triggerbot::enabled);
if (TF) ADDCVAR(&hacks::shared::triggerbot::ambassador);
ADDCVAR(&hacks::shared::triggerbot::bodyshot);
ADDCVAR(&hacks::shared::triggerbot::buildings);
ADDCVAR(&hacks::shared::triggerbot::finishing_hit);
if (TF) ADDCVAR(&hacks::shared::triggerbot::respect_cloak);
if (TF) ADDCVAR(&hacks::shared::triggerbot::ignore_vaccinator);
if (TF) ADDCVAR(&hacks::shared::triggerbot::zoomed_only);
ADDCVAR(&hacks::shared::triggerbot::hitbox);
ADDCVAR(&hacks::shared::triggerbot::max_range);
for (auto var : FindCatVars("triggerbot_")) ADDCVAR(var);
if (TF) {
ADDLABEL("AutoSticky");
ADDCVAR(&hacks::tf::autosticky::enabled);
ADDCVAR(&hacks::tf::autosticky::buildings);
ADDCVAR(&hacks::tf::autosticky::distance);
for (auto var : FindCatVars("sticky_")) ADDCVAR(var);
ADDLABEL("AutoReflect");
ADDCVAR(&hacks::tf::autoreflect::enabled);
ADDCVAR(&hacks::tf::autoreflect::idle_only);
ADDCVAR(&hacks::tf::autoreflect::stickies);
ADDCVAR(&hacks::tf::autoreflect::max_distance);
for (auto var : FindCatVars("reflect_")) ADDCVAR(var);
}
AddTab("misc", "Misc");
tab = GetTab("misc");
//ADDLABEL("To lock/unlock achievements use cat_achievement_ commands!");
/*tab->AddChild(new CBaseButton("ach_unlock", tab, "Unlock Achievements (DO NOT USE INGAME)", [this](CBaseButton*) {
Achievements_Unlock();
}));
tab->AddChild(new CBaseButton("ach_lock", tab, "Lock Achievements", [this](CBaseButton*) {
Achievements_Lock();
}));*/
ADDCVARS("thirdperson");
ADDCVARS("log");
ADDCVARS("no_");
ADDCVARS("fov");
ADDCVARS("clean_");
ADDCVARS("tauntslide");
ADDCVARS("airstuck");
ADDCVARS("fast_");
ADDCVARS("ignore_");
ADDCVARS("rollspeedhack");
ADDCVARS("minigun");
ADDCVARS("logo");
ADDCVARS("disconnect");
if (TF) ADDCVAR(&hacks::tf::autoheal::enabled);
if (TF) ADDCVAR(&hacks::tf2::antidisguise::enabled);
if (TF2C) {
//ADDCVAR(g_phMisc->v_bTauntSlide);
//ADDCVAR(g_phMisc->v_bCritHack);
}
//ADDCVAR(g_phMisc->v_bAntiAFK);
// FIXME add CVARS TO MENU!!
//ADDCVAR(g_Settings.bCleanScreenshots);
ADDCVAR(&cathook);
/*if (TF) ADDCVAR(g_Settings.bIgnoreTaunting);
//ADDCVAR(g_Settings.bNoVisuals);
//if (TF) ADDCVAR(g_Settings.bNoZoom);
//ADDCVAR(g_Settings.bSendPackets);
//ADDCVAR(g_Settings.bShowLogo);
ADDCVAR(g_Settings.bShowAntiAim);
if (TF) ADDCVAR(g_Settings.bThirdperson);
//ADDCVAR(g_Settings.bZoomedFOV);
//ADDCVAR(g_Settings.flForceFOVZoomed);
//ADDCVAR(g_Settings.flForceFOV);
// FIXME add ConVars to menu!!
//ADDCVAR(g_Settings.sDisconnectMsg);
if (TF2C) ADDCVAR(g_Settings.kRollSpeedhack);*/
//ADDCVAR(g_phMisc->v_bCleanChat);
if (TF2) {
/*CBaseButton* but = new CBaseButton("schema", tab, "Load Custom Schema", [this](CBaseButton*) {
//Schema_Reload();
});*/
//but->Props()->SetString("tooltip", "Loads a custom item schema from ~/.cathook/\nitems_game.txt");
//tab->AddChild(but);
}
//if (TF2C) ADDCVAR(g_phMisc->v_bMinigunJump);
//ADDCVAR(g_phMisc->v_bDebugInfo);
//if (HL2DM) ADDCVAR(g_phMisc->v_bFlashlightSpam);
//ADDCVAR(g_phMisc->v_iFakeLag);
//ADDCVAR(g_Settings.bFastOutline);
if (TF) {
ADDLABEL("Spy Alert");
ADDCVAR(&hacks::tf::spyalert::enabled);
ADDCVAR(&hacks::tf::spyalert::distance_warning);
ADDCVAR(&hacks::tf::spyalert::distance_backstab);
for (auto var : FindCatVars("spyalert_")) ADDCVAR(var);
}
ADDLABEL("Bunnyhop");
//ADDCVAR(g_phBunnyhop->v_bEnabled);
//ADDCVAR(g_phBunnyhop->v_bAutoJump);
//ADDCVAR(g_phBunnyhop->v_iAutoJumpSpeed);
ADDCVARS("bhop");
AddTab("antiaim", "Anti-Aim");
tab = GetTab("antiaim");
ADDCVAR(&hacks::shared::antiaim::enabled);
/*ADDCVAR(&hacks::shared::antiaim::lisp);
ADDCVAR(&hacks::shared::antiaim::yaw_mode;
ADDCVAR(&hacks::shared::antiaim::yaw);
ADDCVAR(&hacks::shared::antiaim::pitch);
ADDCVAR(&hacks::shared::antiaim::pitch_mode);
ADDCVAR(&hacks::shared::antiaim::no_clamping);
ADDCVAR(&hacks::shared::antiaim::roll);
ADDCVAR(&hacks::shared::antiaim::spin);*/
for (auto var : FindCatVars("aa_")) ADDCVAR(var);
AddTab("spam", "Spam/Killsay");
tab = GetTab("spam");
ADDLABEL("Spam");
ADDCVAR(&hacks::shared::spam::enabled);
ADDCVAR(&hacks::shared::spam::newlines);
ADDCVAR(&hacks::shared::spam::filename);
ADDCVARS("spam");
tab->AddChild(new CBaseButton("spam_reload", tab, "Reload spam", [this](CBaseButton*) {
hacks::shared::spam::Reload();
}));
ADDLABEL("Killsay");
ADDCVAR(&hacks::shared::killsay::enabled);
ADDCVAR(&hacks::shared::killsay::filename);
ADDCVARS("killsay");
tab->AddChild(new CBaseButton("killsay_reload", tab, "Reload killsays", [this](CBaseButton*) {
hacks::shared::killsay::Reload();
}));
AddTab("multibox", "Bots");
tab = GetTab("multibox");
for (auto var : FindCatVars("ipc_")) ADDCVAR(var);
for (auto var : FindCatVars("fb_")) ADDCVAR(var);
ADDLABEL("Stats window/bot management coming soon!");
}
CMenuContainer* CMenuWindow::GetTab(std::string tab) {

View File

@ -14,7 +14,7 @@
namespace hacks { namespace shared { namespace airstuck {
CatVar stuck(CV_SWITCH, "airstuck", "0", "Airstuck active");
CatVar stuck(CV_KEY, "airstuck", "0", "Airstuck key");
void SendNOP() {
INetChannel* ch = (INetChannel*)g_IEngine->GetNetChannelInfo();
@ -25,7 +25,7 @@ void SendNOP() {
}
void CreateMove() {
if (stuck) {
if (g_IInputSystem->IsButtonDown((ButtonCode_t)int(stuck))) {
if (g_GlobalVars->tickcount % 60 == 0) {
SendNOP();
}
@ -34,11 +34,11 @@ void CreateMove() {
bool IsStuck() {
if (g_pUserCmd->buttons & (IN_ATTACK | IN_ATTACK2)) return false;
return stuck;
return g_IInputSystem->IsButtonDown((ButtonCode_t)int(stuck));
}
void Reset() {
stuck = false;
}
}}}