From 6dd1665777a46307aeebb06049d51d8b5c5ed8d5 Mon Sep 17 00:00:00 2001 From: ByteCorum <164874887+ByteCorum@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:38:16 +0200 Subject: [PATCH 1/3] Revert "code optimized and cleaned" This reverts commit c9e0cabb0c3ef458790d6afdf9b5b335afd2fe9d. --- TempleWare-External/source/features/bhop.cpp | 58 +++---- TempleWare-External/source/features/fov.cpp | 13 +- TempleWare-External/source/features/glow.cpp | 57 +++---- .../source/features/noflash.cpp | 22 ++- .../source/features/triggerbot.cpp | 36 ++--- TempleWare-External/source/main.cpp | 45 +++--- TempleWare-External/source/memory/memory.h | 141 +++++++++--------- 7 files changed, 173 insertions(+), 199 deletions(-) diff --git a/TempleWare-External/source/features/bhop.cpp b/TempleWare-External/source/features/bhop.cpp index d71d9ba..4510804 100644 --- a/TempleWare-External/source/features/bhop.cpp +++ b/TempleWare-External/source/features/bhop.cpp @@ -1,36 +1,40 @@ #include "bhop.h" #include "../offsets/offsets.h" #include "../globals/globals.h" -#include -namespace features { - void Bhop::Run(const Memory& memory) noexcept { - if (!globals::BunnyHopEnabled) - return; +namespace features +{ + void Bhop::Run(const Memory& memory) noexcept + { + if (!globals::BunnyHopEnabled) + return; - const auto localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); - if (!localPlayer) - return; + std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); + if (localPlayer == 0) + return; - static HWND hwndCs2 = FindWindowA(nullptr, "Counter-Strike 2"); - if (!hwndCs2) - return; + HWND hwnd_cs2 = FindWindowA(NULL, "Counter-Strike 2"); + if (hwnd_cs2 == NULL) { + hwnd_cs2 = FindWindowA(NULL, "Counter-Strike 2"); + } - const bool spacePressed = (GetAsyncKeyState(VK_SPACE) & 0x8000) != 0; + bool spacePressed = GetAsyncKeyState(VK_SPACE); + int flags = memory.Read(localPlayer + offsets::m_fFlags); + bool isInAir = flags & (int)1 << 0; - const auto flags = memory.Read(localPlayer + offsets::m_fFlags); - const bool isOnGround = (flags & (1 << 0)) != 0; + if (spacePressed && isInAir) + { + SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); + SendMessage(hwnd_cs2, WM_KEYDOWN, VK_SPACE, 0); + } - if (spacePressed) { - if (isOnGround) { - SendMessage(hwndCs2, WM_KEYDOWN, VK_SPACE, 0); - } - else { - SendMessage(hwndCs2, WM_KEYUP, VK_SPACE, 0); - } - } - else { - SendMessage(hwndCs2, WM_KEYUP, VK_SPACE, 0); - } - } -} + else if (spacePressed && !isInAir) + { + SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); + } + else if (!spacePressed) + { + SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); + } + } +} \ No newline at end of file diff --git a/TempleWare-External/source/features/fov.cpp b/TempleWare-External/source/features/fov.cpp index ff0fd82..9ccf363 100644 --- a/TempleWare-External/source/features/fov.cpp +++ b/TempleWare-External/source/features/fov.cpp @@ -4,18 +4,19 @@ namespace features { void FOVManager::AdjustFOV(const Memory& memory) noexcept { - const auto localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); + std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); if (!localPlayer) return; - const auto cameraServices = memory.Read(localPlayer + offsets::m_pCameraServices); + std::uintptr_t cameraServices = memory.Read(localPlayer + offsets::m_pCameraServices); if (!cameraServices) return; - const auto currentFov = memory.Read(cameraServices + offsets::m_iFOV); - const bool isScoped = memory.Read(localPlayer + offsets::m_bIsScoped); + std::uint16_t currentFov = memory.Read(cameraServices + offsets::m_iFOV); + bool isScoped = memory.Read(localPlayer + offsets::m_bIsScoped); + + std::uint16_t desiredFov = static_cast(globals::FOV); - const auto desiredFov = static_cast(globals::FOV); if (!isScoped && currentFov != desiredFov) { - memory.Write(cameraServices + offsets::m_iFOV, desiredFov); + memory.Write(cameraServices + offsets::m_iFOV, desiredFov); } } } diff --git a/TempleWare-External/source/features/glow.cpp b/TempleWare-External/source/features/glow.cpp index 7f85d14..3059ce0 100644 --- a/TempleWare-External/source/features/glow.cpp +++ b/TempleWare-External/source/features/glow.cpp @@ -5,57 +5,44 @@ namespace features { void Glow::Run(const Memory& memory) noexcept { - if (!globals::Glow) { + if (!globals::Glow) return; - } - const auto localPlayerController = memory.Read(globals::client + offsets::dwLocalPlayerController); - if (!localPlayerController) { + const uintptr_t localPlayerController = memory.Read(globals::client + offsets::dwLocalPlayerController); + if (!localPlayerController) return; - } - const int localTeam = memory.Read(localPlayerController + offsets::m_iTeamNum); - const auto entityListBase = memory.Read(globals::client + offsets::dwEntityList); - if (!entityListBase) { - return; - } + int localTeam = memory.Read(localPlayerController + offsets::m_iTeamNum); + + for (int i = 1; i < 64; i++) { + uintptr_t entityList = memory.Read(globals::client + offsets::dwEntityList); + if (!entityList) + continue; - for (int i = 1; i < 64; ++i) { - const auto listEntry = memory.Read(entityListBase + ((i & 0x7FFF) >> 9) * 8 + 16); - if (!listEntry) { + uintptr_t listEntry = memory.Read(entityList + (8 * (i & 0x7FFF) >> 9) + 16); + if (!listEntry) continue; - } - const auto player = memory.Read(listEntry + 120 * (i & 0x1FF)); - if (!player) { + uintptr_t player = memory.Read(listEntry + 120 * (i & 0x1FF)); + if (!player) continue; - } - const int playerTeam = memory.Read(player + offsets::m_iTeamNum); - if (playerTeam == localTeam) { + int playerTeam = memory.Read(player + offsets::m_iTeamNum); + if (playerTeam == localTeam) continue; - } - const auto playerPawn = memory.Read(player + offsets::m_hPlayerPawn); - const auto listEntry2 = memory.Read(entityListBase + ((playerPawn & 0x7FFF) >> 9) * 8 + 16); - if (!listEntry2) { + uint32_t playerPawn = memory.Read(player + offsets::m_hPlayerPawn); + uintptr_t listEntry2 = memory.Read(entityList + 0x8 * ((playerPawn & 0x7FFF) >> 9) + 16); + if (!listEntry2) continue; - } - const auto playerCsPawn = memory.Read(listEntry2 + 120 * (playerPawn & 0x1FF)); - if (!playerCsPawn) { + uintptr_t playerCsPawn = memory.Read(listEntry2 + 120 * (playerPawn & 0x1FF)); + if (!playerCsPawn) continue; - } - // Convert ImVec4 (RGBA) to ARGB DWORD - const auto& color = globals::GlowColor; - const DWORD colorArgb = - (static_cast(color.w * 255) << 24) | - (static_cast(color.x * 255)) | - (static_cast(color.y * 255) << 8) | - (static_cast(color.z * 255) << 16); + ImVec4 color = globals::GlowColor; + DWORD colorArgb = ((DWORD)(color.w * 255) << 24) | ((DWORD)(color.z * 255) << 16) | ((DWORD)(color.y * 255) << 8) | (DWORD)(color.x * 255); - // Apply glow settings memory.Write(playerCsPawn + offsets::m_Glow + offsets::m_glowColorOverride, colorArgb); memory.Write(playerCsPawn + offsets::m_Glow + offsets::m_bGlowing, 1); } diff --git a/TempleWare-External/source/features/noflash.cpp b/TempleWare-External/source/features/noflash.cpp index 085f11f..822b7ca 100644 --- a/TempleWare-External/source/features/noflash.cpp +++ b/TempleWare-External/source/features/noflash.cpp @@ -4,18 +4,14 @@ namespace features { void NoFlash::Run(const Memory& memory) noexcept { - if (!globals::NoFlashEnabled) { - return; - } - - const auto localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); - if (!localPlayer) { - return; - } - - const auto flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); - if (flashDuration > 0.0f) { - memory.Write(localPlayer + offsets::flFlashDuration, 0.0f); + if (globals::NoFlashEnabled) { + std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); + if (localPlayer) { + float flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); + if (flashDuration > 0.0f) { + memory.Write(localPlayer + offsets::flFlashDuration, 0.0f); + } + } } } -} \ No newline at end of file +} diff --git a/TempleWare-External/source/features/triggerbot.cpp b/TempleWare-External/source/features/triggerbot.cpp index 614a31c..e2b9573 100644 --- a/TempleWare-External/source/features/triggerbot.cpp +++ b/TempleWare-External/source/features/triggerbot.cpp @@ -2,7 +2,7 @@ #include "../globals/globals.h" #include "../offsets/offsets.h" #include -#include +#include namespace features { void TriggerBot::Run(const Memory& memory) noexcept { @@ -14,15 +14,13 @@ namespace features { bool keyState = GetAsyncKeyState(globals::TriggerBotKey) & 0x8000; - switch (globals::TriggerBotMode) { - case 0: + if (globals::TriggerBotMode == 0) { if (!keyState) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); continue; } - break; - - case 1: + } + else if (globals::TriggerBotMode == 1) { if (keyState) { globals::TriggerBotToggled = !globals::TriggerBotToggled; std::this_thread::sleep_for(std::chrono::milliseconds(200)); @@ -32,23 +30,13 @@ namespace features { std::this_thread::sleep_for(std::chrono::milliseconds(10)); continue; } - break; - - default: - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - continue; } - auto localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); - if (!localPlayer) { - std::this_thread::sleep_for(std::chrono::milliseconds(10)); - continue; - } - - auto team = memory.Read(localPlayer + offsets::m_iTeamNum); + std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); + BYTE team = memory.Read(localPlayer + offsets::m_iTeamNum); if (!globals::TriggerBotIgnoreFlash) { - auto flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); + float flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); if (flashDuration > 0.0f) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); continue; @@ -60,9 +48,9 @@ namespace features { continue; } - auto entityList = memory.Read(globals::client + offsets::dwEntityList); - auto listEntry = memory.Read(entityList + 0x8 * (crosshairEntityIndex >> 9) + 0x10); - auto entity = memory.Read(listEntry + 120 * (crosshairEntityIndex & 0x1ff)); + std::uintptr_t entityList = memory.Read(globals::client + offsets::dwEntityList); + std::uintptr_t listEntry = memory.Read(entityList + 0x8 * (crosshairEntityIndex >> 9) + 0x10); + std::uintptr_t entity = memory.Read(listEntry + 120 * (crosshairEntityIndex & 0x1ff)); if (!entity) { continue; @@ -77,10 +65,12 @@ namespace features { } memory.Write(globals::client + offsets::attack, 65537); + std::this_thread::sleep_for(std::chrono::milliseconds(globals::TriggerBotDelay)); + memory.Write(globals::client + offsets::attack, 256); std::this_thread::sleep_for(std::chrono::milliseconds(globals::TriggerBotDelay)); } } -} +} \ No newline at end of file diff --git a/TempleWare-External/source/main.cpp b/TempleWare-External/source/main.cpp index 6467b4e..8b4adc7 100644 --- a/TempleWare-External/source/main.cpp +++ b/TempleWare-External/source/main.cpp @@ -8,55 +8,52 @@ #include "globals/globals.h" #include "threads/threads.h" #include "offsets/offsets.h" + #include -int __stdcall wWinMain(HINSTANCE instance, HINSTANCE previousInstance, PWSTR arguments, int commandShow) -{ +int __stdcall wWinMain( + HINSTANCE instance, + HINSTANCE previousInstance, + PWSTR arguments, + int commandShow) { + if (!offsets::UpdateOffset()) return EXIT_FAILURE; - Memory memory("cs2.exe"); - globals::client = memory.GetModuleAddress("client.dll"); + const auto memory = Memory("cs2.exe"); - std::vector threads; - threads.emplace_back(threads::RunMiscThread, std::ref(memory)); - threads.emplace_back(threads::RunVisualThread, std::ref(memory)); - threads.emplace_back(threads::RunAimThread, std::ref(memory)); + globals::client = memory.GetModuleAddress("client.dll"); - for (auto& thread : threads) - thread.detach(); + std::thread(threads::RunMiscThread, std::ref(memory)).detach(); + std::thread(threads::RunVisualThread, std::ref(memory)).detach(); + std::thread(threads::RunAimThread, std::ref(memory)).detach(); gui::CreateHWindow("templecheats.xyz"); gui::CreateDevice(); - - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); - io.ConfigFlags |= ImGuiConfigFlags_NoMouse; + gui::CreateImGui(); bool windowVisible = true; - while (globals::isRunning) - { - if (GetAsyncKeyState(VK_END) & 0x8000) - { + + while (globals::isRunning) { + if (GetAsyncKeyState(VK_END) & 0x8000) { windowVisible = !windowVisible; ShowWindow(gui::window, windowVisible ? SW_SHOW : SW_HIDE); std::this_thread::sleep_for(std::chrono::milliseconds(200)); } - if (windowVisible) - { + if (windowVisible) { gui::BeginRender(); gui::Render(); - ImGui::Render(); gui::EndRender(); } - else + else { std::this_thread::sleep_for(std::chrono::milliseconds(50)); + } } - ImGui::DestroyContext(); + gui::DestroyImGui(); gui::DestroyDevice(); gui::DestroyHWindow(); return EXIT_SUCCESS; -} \ No newline at end of file +} diff --git a/TempleWare-External/source/memory/memory.h b/TempleWare-External/source/memory/memory.h index 04ef34b..90eb690 100644 --- a/TempleWare-External/source/memory/memory.h +++ b/TempleWare-External/source/memory/memory.h @@ -2,81 +2,80 @@ #define WIN32_LEAN_AND_MEAN #include #include + #include #include -class Memory { +class Memory +{ private: - std::uintptr_t process_id_; // Use more descriptive variable names - void* process_handle_; + std::uintptr_t processId = 0; + void* processHandle = nullptr; public: - Memory(const std::string_view& process_name) noexcept { - PROCESSENTRY32 entry = {}; - entry.dwSize = sizeof(PROCESSENTRY32); - const auto snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - if (!snapshot) { - // Handle error - return; - } - - while (Process32Next(snapshot, &entry)) { - if (!process_name.compare(entry.szExeFile)) { - process_id_ = entry.th32ProcessID; - process_handle_ = OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_id_); - break; - } - } - - CloseHandle(snapshot); - } - - ~Memory() { - if (process_handle_) { - CloseHandle(process_handle_); - } - } - - std::uintptr_t GetModuleAddress(const std::string_view& module_name) const noexcept { - MODULEENTRY32 entry = {}; - entry.dwSize = sizeof(MODULEENTRY32); - - const auto snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, process_id_); - if (!snapshot) { - // Handle error - return 0; - } - - std::uintptr_t result = 0; - while (Module32Next(snapshot, &entry)) { - if (!module_name.compare(entry.szModule)) { - result = reinterpret_cast(entry.modBaseAddr); - break; - } - } - - CloseHandle(snapshot); - return result; - } - - template - constexpr T Read(const std::uintptr_t& address) const noexcept { - T value = {}; - SIZE_T bytes_read = 0; - if (ReadProcessMemory(process_handle_, reinterpret_cast(address), &value, sizeof(T), &bytes_read) && bytes_read == sizeof(T)) { - return value; - } - else { - // Handle read error - return T(); - } - } - - template - constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept { - SIZE_T bytes_written = 0; - if (!WriteProcessMemory(process_handle_, reinterpret_cast(address), &value, sizeof(T), &bytes_written) || bytes_written != sizeof(T)) { - // Handle write error - } - } + + Memory(const std::string_view processName) noexcept + { + ::PROCESSENTRY32 entry = { }; + entry.dwSize = sizeof(::PROCESSENTRY32); + + const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + + while (::Process32Next(snapShot, &entry)) + { + if (!processName.compare(entry.szExeFile)) + { + processId = entry.th32ProcessID; + processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); + break; + } + } + + if (snapShot) + ::CloseHandle(snapShot); + } + + ~Memory() + { + if (processHandle) + ::CloseHandle(processHandle); + } + + const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept + { + ::MODULEENTRY32 entry = { }; + entry.dwSize = sizeof(::MODULEENTRY32); + + const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); + + std::uintptr_t result = 0; + + while (::Module32Next(snapShot, &entry)) + { + if (!moduleName.compare(entry.szModule)) + { + result = reinterpret_cast(entry.modBaseAddr); + break; + } + } + + if (snapShot) + ::CloseHandle(snapShot); + + return result; + } + + template + constexpr const T Read(const std::uintptr_t& address) const noexcept + { + T value = { }; + ::ReadProcessMemory(processHandle, reinterpret_cast(address), &value, sizeof(T), NULL); + return value; + } + + template + constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept + { + ::WriteProcessMemory(processHandle, reinterpret_cast(address), &value, sizeof(T), NULL); + } }; \ No newline at end of file From 66b920e85b30b10034869caebbecd82f0f5f116f Mon Sep 17 00:00:00 2001 From: ByteCorum <164874887+ByteCorum@users.noreply.github.com> Date: Thu, 23 Jan 2025 15:55:39 +0200 Subject: [PATCH 2/3] code cleanup / organization / optimization --- TempleWare-External/source/features/bhop.cpp | 8 +-- TempleWare-External/source/features/bhop.h | 1 + TempleWare-External/source/features/fov.cpp | 16 +++-- TempleWare-External/source/features/fov.h | 7 +- TempleWare-External/source/features/glow.cpp | 55 ++++++++------- TempleWare-External/source/features/glow.h | 7 +- .../source/features/noflash.cpp | 18 +++-- TempleWare-External/source/features/noflash.h | 7 +- .../source/features/triggerbot.cpp | 55 +++++++-------- .../source/features/triggerbot.h | 7 +- TempleWare-External/source/globals/globals.h | 3 +- TempleWare-External/source/main.cpp | 36 +++++----- TempleWare-External/source/memory/memory.h | 69 ++++++++----------- TempleWare-External/source/menu/menu.h | 10 +-- .../source/offsets/offsets.cpp | 64 ++++++++--------- TempleWare-External/source/offsets/offsets.h | 3 +- .../source/threads/threads.cpp | 14 ++-- TempleWare-External/source/threads/threads.h | 3 +- 18 files changed, 193 insertions(+), 190 deletions(-) diff --git a/TempleWare-External/source/features/bhop.cpp b/TempleWare-External/source/features/bhop.cpp index 4510804..598ed3b 100644 --- a/TempleWare-External/source/features/bhop.cpp +++ b/TempleWare-External/source/features/bhop.cpp @@ -14,9 +14,8 @@ namespace features return; HWND hwnd_cs2 = FindWindowA(NULL, "Counter-Strike 2"); - if (hwnd_cs2 == NULL) { + if (hwnd_cs2 == NULL) hwnd_cs2 = FindWindowA(NULL, "Counter-Strike 2"); - } bool spacePressed = GetAsyncKeyState(VK_SPACE); int flags = memory.Read(localPlayer + offsets::m_fFlags); @@ -27,14 +26,9 @@ namespace features SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); SendMessage(hwnd_cs2, WM_KEYDOWN, VK_SPACE, 0); } - else if (spacePressed && !isInAir) - { SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); - } else if (!spacePressed) - { SendMessage(hwnd_cs2, WM_KEYUP, VK_SPACE, 0); - } } } \ No newline at end of file diff --git a/TempleWare-External/source/features/bhop.h b/TempleWare-External/source/features/bhop.h index 82abab2..987428a 100644 --- a/TempleWare-External/source/features/bhop.h +++ b/TempleWare-External/source/features/bhop.h @@ -10,5 +10,6 @@ namespace features { public: static void Run(const Memory& memory) noexcept; + }; } \ No newline at end of file diff --git a/TempleWare-External/source/features/fov.cpp b/TempleWare-External/source/features/fov.cpp index 9ccf363..b0a76dd 100644 --- a/TempleWare-External/source/features/fov.cpp +++ b/TempleWare-External/source/features/fov.cpp @@ -2,21 +2,23 @@ #include "../globals/globals.h" #include "../offsets/offsets.h" -namespace features { - void FOVManager::AdjustFOV(const Memory& memory) noexcept { +namespace features +{ + void FOVManager::AdjustFOV(const Memory& memory) noexcept + { std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); - if (!localPlayer) return; + if (!localPlayer) + return; std::uintptr_t cameraServices = memory.Read(localPlayer + offsets::m_pCameraServices); - if (!cameraServices) return; + if (!cameraServices) + return; std::uint16_t currentFov = memory.Read(cameraServices + offsets::m_iFOV); bool isScoped = memory.Read(localPlayer + offsets::m_bIsScoped); - std::uint16_t desiredFov = static_cast(globals::FOV); - if (!isScoped && currentFov != desiredFov) { + if (!isScoped && currentFov != desiredFov) memory.Write(cameraServices + offsets::m_iFOV, desiredFov); - } } } diff --git a/TempleWare-External/source/features/fov.h b/TempleWare-External/source/features/fov.h index a3ce4a1..b66c6df 100644 --- a/TempleWare-External/source/features/fov.h +++ b/TempleWare-External/source/features/fov.h @@ -2,9 +2,12 @@ #include "../memory/Memory.h" -namespace features { - class FOVManager { +namespace features +{ + class FOVManager + { public: static void AdjustFOV(const Memory& memory) noexcept; + }; } diff --git a/TempleWare-External/source/features/glow.cpp b/TempleWare-External/source/features/glow.cpp index eb94843..26a53db 100644 --- a/TempleWare-External/source/features/glow.cpp +++ b/TempleWare-External/source/features/glow.cpp @@ -3,8 +3,24 @@ #include "../offsets/offsets.h" #include -namespace features { - void Glow::Run(const Memory& memory) noexcept { +namespace features +{ + + uintptr_t GetEntityInListOffset(int index) + { + return 0x8 * (index & 0x7FFF) >> 9 + 16; + } + + DWORD PackColor(const ImVec4& color) + { + return ((DWORD)(color.w * 255) << 24) | + ((DWORD)(color.z * 255) << 16) | + ((DWORD)(color.y * 255) << 8) | + (DWORD)(color.x * 255); + } + + void Glow::Run(const Memory& memory) noexcept + { if (!globals::Glow) return; @@ -14,33 +30,26 @@ namespace features { int localTeam = memory.Read(localPlayerController + offsets::m_iTeamNum); - for (int i = 1; i < 64; i++) { + + for (int i = 1; i < 64; ++i) + { uintptr_t entityList = memory.Read(globals::client + offsets::dwEntityList); if (!entityList) continue; - uintptr_t listEntry = memory.Read(entityList + (8 * (i & 0x7FFF) >> 9) + 16); - if (!listEntry) - continue; - - uintptr_t player = memory.Read(listEntry + 120 * (i & 0x1FF)); - if (!player) + uintptr_t entity = memory.Read(entityList + GetEntityInListOffset(i)); + if (!entity) continue; - int playerTeam = memory.Read(player + offsets::m_iTeamNum); - if (playerTeam == localTeam) + int entityTeam = memory.Read(entity + offsets::m_iTeamNum); + if (entityTeam == localTeam) continue; - uint32_t playerPawn = memory.Read(player + offsets::m_hPlayerPawn); - + uint32_t playerPawn = memory.Read(entity + offsets::m_hPlayerPawn); if (!playerPawn) continue; - uintptr_t listEntry2 = memory.Read(entityList + 0x8 * ((playerPawn & 0x7FFF) >> 9) + 16); - if (!listEntry2) - continue; - - uintptr_t playerCsPawn = memory.Read(listEntry2 + 120 * (playerPawn & 0x1FF)); + uintptr_t playerCsPawn = memory.Read(entityList + GetEntityInListOffset(playerPawn)); if (!playerCsPawn) continue; @@ -48,14 +57,10 @@ namespace features { if (health < 1) continue; - ImVec4 color = globals::GlowColor; - DWORD colorArgb = ( - ((DWORD)(color.w * 255) << 24) | - ((DWORD)(color.z * 255) << 16) | - ((DWORD)(color.y * 255) << 8) | - (DWORD)(color.x * 255) - ); + + ImVec4 color = globals::GlowColor; + DWORD colorArgb = PackColor(color); memory.Write(playerCsPawn + offsets::m_Glow + offsets::m_glowColorOverride, colorArgb); memory.Write(playerCsPawn + offsets::m_Glow + offsets::m_bGlowing, 1); } diff --git a/TempleWare-External/source/features/glow.h b/TempleWare-External/source/features/glow.h index 6ae109c..f1cfd4f 100644 --- a/TempleWare-External/source/features/glow.h +++ b/TempleWare-External/source/features/glow.h @@ -2,9 +2,12 @@ #include "../memory/memory.h" -namespace features { - class Glow { +namespace features +{ + class Glow + { public: static void Run(const Memory& memory) noexcept; + }; } diff --git a/TempleWare-External/source/features/noflash.cpp b/TempleWare-External/source/features/noflash.cpp index 822b7ca..e56f845 100644 --- a/TempleWare-External/source/features/noflash.cpp +++ b/TempleWare-External/source/features/noflash.cpp @@ -2,16 +2,22 @@ #include "../globals/globals.h" #include "../offsets/offsets.h" -namespace features { - void NoFlash::Run(const Memory& memory) noexcept { - if (globals::NoFlashEnabled) { +namespace features +{ + + void NoFlash::Run(const Memory& memory) noexcept + { + if (globals::NoFlashEnabled) + { std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); - if (localPlayer) { + + if (localPlayer) + { float flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); - if (flashDuration > 0.0f) { + if (flashDuration > 0.0f) memory.Write(localPlayer + offsets::flFlashDuration, 0.0f); - } } } } + } diff --git a/TempleWare-External/source/features/noflash.h b/TempleWare-External/source/features/noflash.h index 8c1c99b..5205cb4 100644 --- a/TempleWare-External/source/features/noflash.h +++ b/TempleWare-External/source/features/noflash.h @@ -2,9 +2,12 @@ #include "../memory/Memory.h" -namespace features { - class NoFlash { +namespace features +{ + class NoFlash + { public: static void Run(const Memory& memory) noexcept; + }; } diff --git a/TempleWare-External/source/features/triggerbot.cpp b/TempleWare-External/source/features/triggerbot.cpp index e2b9573..ac67e5d 100644 --- a/TempleWare-External/source/features/triggerbot.cpp +++ b/TempleWare-External/source/features/triggerbot.cpp @@ -4,29 +4,36 @@ #include #include -namespace features { +namespace features +{ void TriggerBot::Run(const Memory& memory) noexcept { - while (globals::isRunning) { - if (!globals::TriggerBot) { + while (globals::isRunning) + { + if (!globals::TriggerBot) + { std::this_thread::sleep_for(std::chrono::milliseconds(20)); continue; } - bool keyState = GetAsyncKeyState(globals::TriggerBotKey) & 0x8000; - - if (globals::TriggerBotMode == 0) { - if (!keyState) { + bool keyDown = (GetAsyncKeyState(globals::TriggerBotKey) & 0x8000) != 0; + if (globals::TriggerBotMode == 0) + { + if (!keyDown) + { std::this_thread::sleep_for(std::chrono::milliseconds(10)); continue; } } - else if (globals::TriggerBotMode == 1) { - if (keyState) { + else if (globals::TriggerBotMode == 1) + { + if (keyDown) + { globals::TriggerBotToggled = !globals::TriggerBotToggled; std::this_thread::sleep_for(std::chrono::milliseconds(200)); } - if (!globals::TriggerBotToggled) { + if (!globals::TriggerBotToggled) + { std::this_thread::sleep_for(std::chrono::milliseconds(10)); continue; } @@ -35,7 +42,8 @@ namespace features { std::uintptr_t localPlayer = memory.Read(globals::client + offsets::dwLocalPlayerPawn); BYTE team = memory.Read(localPlayer + offsets::m_iTeamNum); - if (!globals::TriggerBotIgnoreFlash) { + if (!globals::TriggerBotIgnoreFlash) + { float flashDuration = memory.Read(localPlayer + offsets::flFlashDuration); if (flashDuration > 0.0f) { std::this_thread::sleep_for(std::chrono::milliseconds(10)); @@ -44,32 +52,25 @@ namespace features { } int crosshairEntityIndex = memory.Read(localPlayer + offsets::m_iIDEntIndex); - if (crosshairEntityIndex == 0) { + if (crosshairEntityIndex == 0) continue; - } std::uintptr_t entityList = memory.Read(globals::client + offsets::dwEntityList); - std::uintptr_t listEntry = memory.Read(entityList + 0x8 * (crosshairEntityIndex >> 9) + 0x10); - std::uintptr_t entity = memory.Read(listEntry + 120 * (crosshairEntityIndex & 0x1ff)); - - if (!entity) { + std::uintptr_t entity = memory.Read(memory.Read(entityList + 0x8 * (crosshairEntityIndex >> 9) + 0x10) + 120 * (crosshairEntityIndex & 0x1ff)); + if (!entity) continue; - } - if (globals::TriggerBotTeamCheck && team == memory.Read(entity + offsets::m_iTeamNum)) { + // Skip teammate or dead target (optional) + if (globals::TriggerBotTeamCheck && team == memory.Read(entity + offsets::m_iTeamNum)) continue; - } - if (memory.Read(entity + offsets::m_iHealth) <= 0) { + if (memory.Read(entity + offsets::m_iHealth) <= 0) continue; - } - - memory.Write(globals::client + offsets::attack, 65537); + // Simulate shooting + memory.Write(globals::client + offsets::attack, 65537); // Set attack command std::this_thread::sleep_for(std::chrono::milliseconds(globals::TriggerBotDelay)); - - memory.Write(globals::client + offsets::attack, 256); - + memory.Write(globals::client + offsets::attack, 256); // Clear attack command std::this_thread::sleep_for(std::chrono::milliseconds(globals::TriggerBotDelay)); } } diff --git a/TempleWare-External/source/features/triggerbot.h b/TempleWare-External/source/features/triggerbot.h index a5728f4..306fbfe 100644 --- a/TempleWare-External/source/features/triggerbot.h +++ b/TempleWare-External/source/features/triggerbot.h @@ -2,9 +2,12 @@ #include "../memory/Memory.h" -namespace features { - class TriggerBot { +namespace features +{ + class TriggerBot + { public: static void Run(const Memory& memory) noexcept; + }; } diff --git a/TempleWare-External/source/globals/globals.h b/TempleWare-External/source/globals/globals.h index 4a18c6b..b3d6d78 100644 --- a/TempleWare-External/source/globals/globals.h +++ b/TempleWare-External/source/globals/globals.h @@ -6,7 +6,8 @@ #include "../../external/imgui/imgui.h" -namespace globals { +namespace globals +{ // TriggerBot inline bool TriggerBot = false; diff --git a/TempleWare-External/source/main.cpp b/TempleWare-External/source/main.cpp index 8b4adc7..0725781 100644 --- a/TempleWare-External/source/main.cpp +++ b/TempleWare-External/source/main.cpp @@ -11,44 +11,42 @@ #include -int __stdcall wWinMain( - HINSTANCE instance, - HINSTANCE previousInstance, - PWSTR arguments, - int commandShow) { +int __stdcall wWinMain(HINSTANCE instance, HINSTANCE previousInstance, PWSTR arguments, int commandShow) +{ if (!offsets::UpdateOffset()) return EXIT_FAILURE; const auto memory = Memory("cs2.exe"); - globals::client = memory.GetModuleAddress("client.dll"); - std::thread(threads::RunMiscThread, std::ref(memory)).detach(); - std::thread(threads::RunVisualThread, std::ref(memory)).detach(); - std::thread(threads::RunAimThread, std::ref(memory)).detach(); - gui::CreateHWindow("templecheats.xyz"); gui::CreateDevice(); gui::CreateImGui(); - bool windowVisible = true; + std::thread miscThread(threads::RunMiscThread, std::ref(memory)); + miscThread.detach(); + + std::thread visualThread(threads::RunVisualThread, std::ref(memory)); + visualThread.detach(); - while (globals::isRunning) { - if (GetAsyncKeyState(VK_END) & 0x8000) { + std::thread aimThread(threads::RunAimThread, std::ref(memory)); + aimThread.detach(); + + bool windowVisible = true; + while (globals::isRunning) + { + if (GetAsyncKeyState(VK_END) & 0x8000) + { windowVisible = !windowVisible; ShowWindow(gui::window, windowVisible ? SW_SHOW : SW_HIDE); std::this_thread::sleep_for(std::chrono::milliseconds(200)); } - if (windowVisible) { - gui::BeginRender(); + if (windowVisible) gui::Render(); - gui::EndRender(); - } - else { + else std::this_thread::sleep_for(std::chrono::milliseconds(50)); - } } gui::DestroyImGui(); diff --git a/TempleWare-External/source/memory/memory.h b/TempleWare-External/source/memory/memory.h index 90eb690..48f5e41 100644 --- a/TempleWare-External/source/memory/memory.h +++ b/TempleWare-External/source/memory/memory.h @@ -1,81 +1,72 @@ -#pragma once -#define WIN32_LEAN_AND_MEAN +#pragma once + #include #include - #include -#include +#include -class Memory -{ +class Memory { private: - std::uintptr_t processId = 0; - void* processHandle = nullptr; + std::uintptr_t processId_; + HANDLE processHandle_; public: - - Memory(const std::string_view processName) noexcept + Memory(const std::string& processName) noexcept { - ::PROCESSENTRY32 entry = { }; - entry.dwSize = sizeof(::PROCESSENTRY32); - - const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + PROCESSENTRY32 entry = { sizeof(PROCESSENTRY32) }; + auto snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); - while (::Process32Next(snapShot, &entry)) + while (Process32Next(snapshot, &entry)) { - if (!processName.compare(entry.szExeFile)) + if (entry.szExeFile == processName) { - processId = entry.th32ProcessID; - processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); + processId_ = entry.th32ProcessID; + processHandle_ = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId_); break; } } - if (snapShot) - ::CloseHandle(snapShot); + CloseHandle(snapshot); } - ~Memory() + ~Memory() noexcept { - if (processHandle) - ::CloseHandle(processHandle); + if (processHandle_) + CloseHandle(processHandle_); } - const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept + std::uintptr_t GetModuleAddress(const std::string& moduleName) const noexcept { - ::MODULEENTRY32 entry = { }; - entry.dwSize = sizeof(::MODULEENTRY32); - - const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); - + MODULEENTRY32 entry = { sizeof(MODULEENTRY32) }; + auto snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId_); std::uintptr_t result = 0; - while (::Module32Next(snapShot, &entry)) + while (Module32Next(snapshot, &entry)) { - if (!moduleName.compare(entry.szModule)) + if (entry.szModule == moduleName) { result = reinterpret_cast(entry.modBaseAddr); break; } } - if (snapShot) - ::CloseHandle(snapShot); - + CloseHandle(snapshot); return result; } template - constexpr const T Read(const std::uintptr_t& address) const noexcept + T Read(const std::uintptr_t& address) const noexcept { - T value = { }; - ::ReadProcessMemory(processHandle, reinterpret_cast(address), &value, sizeof(T), NULL); + T value; + SIZE_T bytesRead; + ReadProcessMemory(processHandle_, reinterpret_cast(address), &value, sizeof(T), &bytesRead); return value; } template - constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept + void Write(const std::uintptr_t& address, const T& value) const noexcept { - ::WriteProcessMemory(processHandle, reinterpret_cast(address), &value, sizeof(T), NULL); + SIZE_T bytesWritten; + WriteProcessMemory(processHandle_, reinterpret_cast(address), &value, sizeof(T), &bytesWritten); } }; \ No newline at end of file diff --git a/TempleWare-External/source/menu/menu.h b/TempleWare-External/source/menu/menu.h index 5aa466b..2b9564d 100644 --- a/TempleWare-External/source/menu/menu.h +++ b/TempleWare-External/source/menu/menu.h @@ -1,5 +1,4 @@ #pragma once - #include namespace gui @@ -7,28 +6,23 @@ namespace gui constexpr int WIDTH = 500; constexpr int HEIGHT = 300; - inline bool isRunning = true; inline HWND window = nullptr; - inline WNDCLASSEX windowClass = { }; - + inline WNDCLASSEX windowClass = {}; inline POINTS position = { }; - inline PDIRECT3D9 d3d = nullptr; inline LPDIRECT3DDEVICE9 device = nullptr; - inline D3DPRESENT_PARAMETERS presentParameters = { }; + inline D3DPRESENT_PARAMETERS presentParameters = {}; void CreateHWindow(const char* windowName) noexcept; void DestroyHWindow() noexcept; - bool CreateDevice() noexcept; void ResetDevice() noexcept; void DestroyDevice() noexcept; void CreateImGui() noexcept; void DestroyImGui() noexcept; - void SetupImGuiStyle() noexcept; void SetupImGuiFonts() noexcept; diff --git a/TempleWare-External/source/offsets/offsets.cpp b/TempleWare-External/source/offsets/offsets.cpp index 194684c..32159c1 100644 --- a/TempleWare-External/source/offsets/offsets.cpp +++ b/TempleWare-External/source/offsets/offsets.cpp @@ -6,73 +6,67 @@ bool Get(std::string url, std::string& response) { - response = ""; std::string cmd = "curl -s -X GET " + url; std::array buffer; std::unique_ptr pipe(_popen(cmd.c_str(), "r"), _pclose); if (!pipe) - { return false; - } + while (fgets(buffer.data(), static_cast(buffer.size()), pipe.get()) != nullptr) - { response += buffer.data(); - } std::regex pattern("\\d{3}:"); if (std::regex_search(response, pattern)) - { return false; - } return true; } bool offsets::UpdateOffset() { - const std::string offsetsUrl = "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/offsets.json"; - const std::string buttonsUrl = "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/buttons.json"; + const std::string offsetsUrl = "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/offsets.json"; + const std::string buttonsUrl = "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/buttons.json"; const std::string client_dllUrl = "https://raw.githubusercontent.com/a2x/cs2-dumper/main/output/client_dll.json"; std::string offsetsData, buttonsData, client_dllData; if (!Get(offsetsUrl, offsetsData) || !Get(buttonsUrl, buttonsData) || !Get(client_dllUrl, client_dllData)) return 0; - json offsetsJson = json::parse(offsetsData); + json offsetsJson = json::parse(offsetsData); json client_dllJson = json::parse(client_dllData)["client.dll"]["classes"]; - json buttonsJson = json::parse(buttonsData); + json buttonsJson = json::parse(buttonsData); // Game offsets - dwLocalPlayerPawn= offsetsJson["client.dll"]["dwLocalPlayerPawn"]; - dwLocalPlayerController= offsetsJson["client.dll"]["dwLocalPlayerController"]; - dwEntityList= offsetsJson["client.dll"]["dwEntityList"]; - dwViewMatrix= offsetsJson["client.dll"]["dwViewMatrix"]; - dwViewAngles= offsetsJson["client.dll"]["dwViewAngles"]; + dwLocalPlayerPawn= offsetsJson["client.dll"]["dwLocalPlayerPawn"]; + dwLocalPlayerController= offsetsJson["client.dll"]["dwLocalPlayerController"]; + dwEntityList= offsetsJson["client.dll"]["dwEntityList"]; + dwViewMatrix= offsetsJson["client.dll"]["dwViewMatrix"]; + dwViewAngles= offsetsJson["client.dll"]["dwViewAngles"]; // Player details - m_pCameraServices= client_dllJson["C_BasePlayerPawn"]["fields"]["m_pCameraServices"]; - m_glowColorOverride= client_dllJson["CGlowProperty"]["fields"]["m_glowColorOverride"]; - m_iFOV= client_dllJson["CCSPlayerBase_CameraServices"]["fields"]["m_iFOV"]; - m_bGlowing= client_dllJson["CGlowProperty"]["fields"]["m_bGlowing"]; - m_bIsScoped= client_dllJson["C_CSPlayerPawn"]["fields"]["m_bIsScoped"]; - attack= buttonsJson["client.dll"]["attack"]; - m_iIDEntIndex= client_dllJson["C_CSPlayerPawnBase"]["fields"]["m_iIDEntIndex"];; - flFlashDuration= client_dllJson["C_CSPlayerPawnBase"]["fields"]["m_flFlashDuration"]; - m_iShotsFired = client_dllJson["C_CSPlayerPawn"]["fields"]["m_iShotsFired"]; - m_aimPunchAngle = client_dllJson["C_CSPlayerPawn"]["fields"]["m_aimPunchAngle"]; + m_pCameraServices= client_dllJson["C_BasePlayerPawn"]["fields"]["m_pCameraServices"]; + m_glowColorOverride= client_dllJson["CGlowProperty"]["fields"]["m_glowColorOverride"]; + m_iFOV= client_dllJson["CCSPlayerBase_CameraServices"]["fields"]["m_iFOV"]; + m_bGlowing= client_dllJson["CGlowProperty"]["fields"]["m_bGlowing"]; + m_bIsScoped= client_dllJson["C_CSPlayerPawn"]["fields"]["m_bIsScoped"]; + attack= buttonsJson["client.dll"]["attack"]; + m_iIDEntIndex= client_dllJson["C_CSPlayerPawnBase"]["fields"]["m_iIDEntIndex"];; + flFlashDuration= client_dllJson["C_CSPlayerPawnBase"]["fields"]["m_flFlashDuration"]; + m_iShotsFired = client_dllJson["C_CSPlayerPawn"]["fields"]["m_iShotsFired"]; + m_aimPunchAngle = client_dllJson["C_CSPlayerPawn"]["fields"]["m_aimPunchAngle"]; // Entity details - m_hPawn= client_dllJson["CBasePlayerController"]["fields"]["m_hPawn"]; - m_hPlayerPawn= client_dllJson["CCSPlayerController"]["fields"]["m_hPlayerPawn"]; - m_Glow= client_dllJson["C_BaseModelEntity"]["fields"]["m_Glow"]; - m_iHealth= client_dllJson["C_BaseEntity"]["fields"]["m_iHealth"]; - m_iTeamNum= client_dllJson["C_BaseEntity"]["fields"]["m_iTeamNum"];; - m_vOldOrigin= client_dllJson["C_BasePlayerPawn"]["fields"]["m_vOldOrigin"]; - m_entitySpottedState= client_dllJson["C_CSPlayerPawn"]["fields"]["m_entitySpottedState"]; - m_vecViewOffset= client_dllJson["C_BaseModelEntity"]["fields"]["m_vecViewOffset"]; - m_fFlags= client_dllJson["C_BaseEntity"]["fields"]["m_fFlags"]; + m_hPawn= client_dllJson["CBasePlayerController"]["fields"]["m_hPawn"]; + m_hPlayerPawn= client_dllJson["CCSPlayerController"]["fields"]["m_hPlayerPawn"]; + m_Glow= client_dllJson["C_BaseModelEntity"]["fields"]["m_Glow"]; + m_iHealth= client_dllJson["C_BaseEntity"]["fields"]["m_iHealth"]; + m_iTeamNum= client_dllJson["C_BaseEntity"]["fields"]["m_iTeamNum"];; + m_vOldOrigin= client_dllJson["C_BasePlayerPawn"]["fields"]["m_vOldOrigin"]; + m_entitySpottedState= client_dllJson["C_CSPlayerPawn"]["fields"]["m_entitySpottedState"]; + m_vecViewOffset= client_dllJson["C_BaseModelEntity"]["fields"]["m_vecViewOffset"]; + m_fFlags= client_dllJson["C_BaseEntity"]["fields"]["m_fFlags"]; return 1; diff --git a/TempleWare-External/source/offsets/offsets.h b/TempleWare-External/source/offsets/offsets.h index 55cde89..4c0a18c 100644 --- a/TempleWare-External/source/offsets/offsets.h +++ b/TempleWare-External/source/offsets/offsets.h @@ -5,7 +5,8 @@ using json = nlohmann::json; -namespace offsets { +namespace offsets +{ // Game offsets inline std::ptrdiff_t dwLocalPlayerPawn; inline std::ptrdiff_t dwLocalPlayerController; diff --git a/TempleWare-External/source/threads/threads.cpp b/TempleWare-External/source/threads/threads.cpp index 24becb8..d01d134 100644 --- a/TempleWare-External/source/threads/threads.cpp +++ b/TempleWare-External/source/threads/threads.cpp @@ -12,16 +12,20 @@ #include namespace threads { - void RunMiscThread(const Memory& memory) noexcept { - while (gui::isRunning) { + void RunMiscThread(const Memory& memory) noexcept + { + while (gui::isRunning) + { features::FOVManager::AdjustFOV(memory); features::Bhop::Run(memory); std::this_thread::sleep_for(std::chrono::milliseconds(1)); } } - void RunVisualThread(const Memory& memory) noexcept { - while (gui::isRunning) { + void RunVisualThread(const Memory& memory) noexcept + { + while (gui::isRunning) + { features::NoFlash::Run(memory); features::Glow::Run(memory); std::this_thread::sleep_for(std::chrono::milliseconds(1)); @@ -33,9 +37,7 @@ namespace threads { while (gui::isRunning) { if (globals::TriggerBot) - { features::TriggerBot::Run(memory); - } std::this_thread::sleep_for(std::chrono::milliseconds(1)); } } diff --git a/TempleWare-External/source/threads/threads.h b/TempleWare-External/source/threads/threads.h index 424e5cf..8930957 100644 --- a/TempleWare-External/source/threads/threads.h +++ b/TempleWare-External/source/threads/threads.h @@ -2,7 +2,8 @@ #include "../memory/Memory.h" -namespace threads { +namespace threads +{ void RunMiscThread(const Memory& memory) noexcept; void RunVisualThread(const Memory& memory) noexcept; void RunAimThread(const Memory& memory) noexcept; From 055aad5f8291c17078c3e27c69f904e64a314033 Mon Sep 17 00:00:00 2001 From: ByteCorum <164874887+ByteCorum@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:00:48 +0200 Subject: [PATCH 3/3] fixed build-check --- .github/workflows/build-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index 9e2b49b..3507551 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -18,11 +18,11 @@ jobs: - name: Building project run: | - msbuild CS2-External-Base.sln -t:Rebuild -p:Configuration=Release -p:Platform=x64 + msbuild TempleWare-External.sln -t:Rebuild -p:Configuration=Release -p:Platform=x64 - name: Archive artifacts uses: actions/upload-artifact@v4 with: name: Compiled-Binaries path: | - D:\a\CS2-External-Base\x64\Release\CS2-External-Base.exe \ No newline at end of file + D:\a\TempleWare-External\x64\Release\TempleWare-External.exe \ No newline at end of file