diff --git a/src/hacks/FollowBot.cpp b/src/hacks/FollowBot.cpp index eaf2b05d..878f0b32 100644 --- a/src/hacks/FollowBot.cpp +++ b/src/hacks/FollowBot.cpp @@ -76,10 +76,12 @@ void AfterCreateMove() { if (CE_BAD(entity)) { selection.erase(it++); } else { +#ifndef TEXTMODE hacks::shared::esp::AddEntityString(entity, "[SELECTED]", colors::orange); if (fmod(g_GlobalVars->curtime, 2.0f) < 1.0f) { hacks::shared::esp::SetEntityColor(entity, colors::yellow); } +#endif ++it; } } @@ -92,10 +94,12 @@ void AfterCreateMove() { if (CE_BAD(entity)) { selection_secondary.erase(it++); } else { +#ifndef TEXTMODE hacks::shared::esp::AddEntityString(entity, "[SELECTED (SECONDARY)]", colors::orange); if (fmod(g_GlobalVars->curtime, 2.0f) < 1.0f) { hacks::shared::esp::SetEntityColor(entity, colors::yellow); } +#endif ++it; } } @@ -198,8 +202,10 @@ void DoWalking() { int following_idx2 = 0; if (CE_GOOD(found_entity)) { following_idx2 = found_entity->m_IDX; +#ifndef TEXTMODE hacks::shared::esp::AddEntityString(found_entity, "[FOLLOWING]", colors::green); hacks::shared::esp::SetEntityColor(found_entity, colors::green); +#endif } else { crumbStopped = true; return; @@ -689,7 +695,7 @@ void CrumbBottomAdd() { logging::Info("Crumb Over-Prune!\nDumping array"); } } - +#ifndef TEXTMODE // Function called when we need to draw onto the screen void Draw() { @@ -821,7 +827,7 @@ void DrawFollowbot() { } return; } - +#endif }}} #endif diff --git a/src/hacks/FollowBot.h b/src/hacks/FollowBot.h index c38c069d..2e60a5f2 100644 --- a/src/hacks/FollowBot.h +++ b/src/hacks/FollowBot.h @@ -34,7 +34,9 @@ extern int following_idx; bool IsBot(CachedEntity* entity); void AddMessageHandlers(ipc::peer_t* peer); void AfterCreateMove(); +#ifndef TEXTMODE void Draw(); +#endif void CrumbReset(); void CrumbTopAdd(Vector crumbToAdd); void CrumbBottomAdd(); diff --git a/src/ipc.cpp b/src/ipc.cpp index a4402225..ed8eed86 100644 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -121,6 +121,20 @@ CatVar server_name(CV_STRING, "ipc_server", "cathook_followbot_server", "IPC ser peer_t* peer { nullptr }; + +void UpdateServerAddress(bool shutdown) { + + const char* s_addr = "0.0.0.0"; + if (not shutdown and g_IEngine->GetNetChannelInfo()) { + s_addr = g_IEngine->GetNetChannelInfo()->GetAddress(); + } + + peer_t::MutexLock lock(peer); + user_data_s& data = peer->memory->peer_user_data[peer->client_id]; + data.friendid = g_ISteamUser->GetSteamID().GetAccountID(); + strncpy(data.server, s_addr, sizeof(data.server)); +} + void StoreClientData() { peer_t::MutexLock lock(peer); user_data_s& data = peer->memory->peer_user_data[peer->client_id]; diff --git a/src/ipc.h b/src/ipc.h index 5f7da201..b5b43608 100644 --- a/src/ipc.h +++ b/src/ipc.h @@ -47,6 +47,7 @@ struct server_data_s { struct user_data_s { char name[32]; + char server[22]; unsigned friendid; }; @@ -54,6 +55,7 @@ using peer_t = cat_ipc::Peer; extern peer_t* peer; +void UpdateServerAddress(bool shutdown = false); void StoreClientData(); void UpdatePlayerlist(); diff --git a/src/textmode.cpp b/src/textmode.cpp index f8dbd387..789a429f 100644 --- a/src/textmode.cpp +++ b/src/textmode.cpp @@ -16,7 +16,7 @@ bool *allowSecureServers { nullptr }; void EXPOSED_Epic_VACBypass_1337_DoNotSteal_xXx_$1_xXx_MLG() { - static char patch[] = { 0x55, 0x89, 0xE5, 0x83, 0xEC, 0x18, 0xB8, 0x01, 0x00, 0x00, 0x00, 0xC9, 0xC3 }; + static unsigned char patch[] = { 0x55, 0x89, 0xE5, 0x83, 0xEC, 0x18, 0xB8, 0x01, 0x00, 0x00, 0x00, 0xC9, 0xC3 }; uintptr_t Host_IsSecureServerAllowed_addr = gSignatures.GetEngineSignature("55 89 E5 83 EC 18 E8 ? ? ? ? 8B 10 C7 44 24 04 ? ? ? ? 89 04 24 FF 52 2C 85 C0 74 11 C6 05 90 43 88 00 00"); // +0x21 = allowSecureServers logging::Info("1337 VAC bypass: 0x%08x", Host_IsSecureServerAllowed_addr);