From b24603e16c3c78d5f4e3c5e425e27e93879d90b8 Mon Sep 17 00:00:00 2001 From: yinlei <1099129793@qq.com> Date: Wed, 1 May 2024 11:04:06 +0800 Subject: [PATCH] fixed offsets and imgui theme --- CHANGELOG.txt | 18 ++- CS2CheatCpp/CS2_Cheat_Log.txt | 4 +- CS2CheatCpp/SDK/buttons.hpp | 34 ++--- CS2CheatCpp/SDK/client.dll.hpp | 2 +- CS2CheatCpp/SDK/offsets.hpp | 46 +++--- CS2CheatCpp/imgui.ini | 10 +- CS2CheatCpp/src/gui.cpp | 58 +++++++- CS2CheatCpp/src/gui.h | 1 + CS2CheatCpp/src/weapon.hpp | 262 ++++++++++++++++++++++----------- README.md | 20 ++- 10 files changed, 310 insertions(+), 145 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5dea944..d03ce36 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,11 @@ ## Changes📣 -最新更新于2024年4月29日 21:56,现有功能如下: +最近更新于2024年05月01日 10:50 + +- fixed 5月1日cs2官方游戏更新后的offsets +- 优化ImGui的主题UI、添加时间水印 + +## Features - 方框透视 - 骨骼透视 @@ -16,11 +21,12 @@ ## Usage👌 -1. 打开`CS2`游戏,并进入游戏房间 -2. 进入游戏房间后,此时鼠标双击`CS2CheatCpp.exe`运行外挂程序 -3. 运行外挂程序后,会显示外挂程序菜单,可以按`Insert键`进行显示/隐藏 -4. 若没有显示外挂程序菜单,则请提交日志文件记录 - 多数可能为offsets与CS2官方更新不同步,可clone代码后自行构建 -5. 每局结束后,建议先退出外挂程序,等到再次进入游戏房间后重复上述步骤 - 因为`句柄劫持`有时候效果不是非常好,至少我没有被封过 +1. 确保您的windows电脑上安装了`Directx` - 因为cs2游戏使用的是[directx 11](https://www.pcgamingwiki.com/wiki/Counter-Strike_2) +2. 打开`CS2`游戏,并进入游戏房间 +3. 进入游戏房间后,此时鼠标双击`CS2CheatCpp.exe`运行外挂程序 +4. 运行外挂程序后,会显示外挂程序菜单,可以按`Insert键`进行显示/隐藏 +5. 若没有显示外挂程序菜单,则请提交日志文件记录 - 多数可能为offsets与CS2官方更新不同步,可clone代码后自行构建 +6. 【可选操作】每局结束后,建议先退出外挂程序,等到再次进入游戏房间后重复上述步骤 - 因为`句柄劫持`有时候效果不是非常好,至少我目前没有被封过 > 该演戏就演戏,被封号后果自负,后续会更新内部外挂实现ESP外挂不能实现的功能 diff --git a/CS2CheatCpp/CS2_Cheat_Log.txt b/CS2CheatCpp/CS2_Cheat_Log.txt index e593bdd..6cf77b0 100644 --- a/CS2CheatCpp/CS2_Cheat_Log.txt +++ b/CS2CheatCpp/CS2_Cheat_Log.txt @@ -1,4 +1,4 @@ [Tip]: After running this program, please make sure to read the software usage instructions. If it doesn't work, please copy this log file record to the GitHub repository and submit an issue, or directly contact the author via WeChat at yl1099129793. The author has limited capacity and cannot synchronously update CS2 game patch. If urgently needed, you can fork this repository and modify offsets to build with the latest value. -[2024/04/29 22:36:00] cs2.exe's process id located at11308 -[2024/04/29 22:36:00] client.dll -> 0x7fffb69a0000 +[2024/05/01 10:59:41] cs2.exe's process id located at7172 +[2024/05/01 10:59:41] client.dll -> 0x7ffc93b70000 diff --git a/CS2CheatCpp/SDK/buttons.hpp b/CS2CheatCpp/SDK/buttons.hpp index 8fe5bcc..a266762 100644 --- a/CS2CheatCpp/SDK/buttons.hpp +++ b/CS2CheatCpp/SDK/buttons.hpp @@ -1,5 +1,5 @@ // Generated using https://github.com/a2x/cs2-dumper -// 2024-04-27 00:03:34.843899 UTC +// 2024-05-01 00:25:27.858971200 UTC #pragma once @@ -8,21 +8,21 @@ namespace cs2_dumper { // Module: client.dll namespace buttons { - constexpr std::ptrdiff_t attack = 0x1733230; - constexpr std::ptrdiff_t attack2 = 0x17332C0; - constexpr std::ptrdiff_t back = 0x1733500; - constexpr std::ptrdiff_t duck = 0x17337D0; - constexpr std::ptrdiff_t forward = 0x1733470; - constexpr std::ptrdiff_t jump = 0x1733740; - constexpr std::ptrdiff_t left = 0x1733590; - constexpr std::ptrdiff_t lookatweapon = 0x192EE70; - constexpr std::ptrdiff_t reload = 0x17331A0; - constexpr std::ptrdiff_t right = 0x1733620; - constexpr std::ptrdiff_t showscores = 0x192ED50; - constexpr std::ptrdiff_t sprint = 0x1733110; - constexpr std::ptrdiff_t turnleft = 0x1733350; - constexpr std::ptrdiff_t turnright = 0x17333E0; - constexpr std::ptrdiff_t use = 0x17336B0; - constexpr std::ptrdiff_t zoom = 0x192EDE0; + constexpr std::ptrdiff_t attack = 0x1736410; + constexpr std::ptrdiff_t attack2 = 0x17364A0; + constexpr std::ptrdiff_t back = 0x17366E0; + constexpr std::ptrdiff_t duck = 0x17369B0; + constexpr std::ptrdiff_t forward = 0x1736650; + constexpr std::ptrdiff_t jump = 0x1736920; + constexpr std::ptrdiff_t left = 0x1736770; + constexpr std::ptrdiff_t lookatweapon = 0x19329E0; + constexpr std::ptrdiff_t reload = 0x1736380; + constexpr std::ptrdiff_t right = 0x1736800; + constexpr std::ptrdiff_t showscores = 0x19328C0; + constexpr std::ptrdiff_t sprint = 0x17362F0; + constexpr std::ptrdiff_t turnleft = 0x1736530; + constexpr std::ptrdiff_t turnright = 0x17365C0; + constexpr std::ptrdiff_t use = 0x1736890; + constexpr std::ptrdiff_t zoom = 0x1932950; } } \ No newline at end of file diff --git a/CS2CheatCpp/SDK/client.dll.hpp b/CS2CheatCpp/SDK/client.dll.hpp index f0cc2c4..49709c4 100644 --- a/CS2CheatCpp/SDK/client.dll.hpp +++ b/CS2CheatCpp/SDK/client.dll.hpp @@ -1,5 +1,5 @@ // Generated using https://github.com/a2x/cs2-dumper -// 2024-04-27 00:03:34.843899 UTC +// 2024-05-01 00:25:27.858971200 UTC #pragma once diff --git a/CS2CheatCpp/SDK/offsets.hpp b/CS2CheatCpp/SDK/offsets.hpp index 81ae4a3..b90cd59 100644 --- a/CS2CheatCpp/SDK/offsets.hpp +++ b/CS2CheatCpp/SDK/offsets.hpp @@ -1,5 +1,5 @@ // Generated using https://github.com/a2x/cs2-dumper -// 2024-04-27 00:03:34.843899 UTC +// 2024-05-01 00:25:27.858971200 UTC #pragma once @@ -9,43 +9,43 @@ namespace cs2_dumper { namespace offsets { // Module: client.dll namespace client_dll { - constexpr std::ptrdiff_t dwCSGOInput = 0x192EF50; - constexpr std::ptrdiff_t dwEntityList = 0x18C6268; - constexpr std::ptrdiff_t dwGameEntitySystem = 0x19E3B60; + constexpr std::ptrdiff_t dwCSGOInput = 0x1932AC0; + constexpr std::ptrdiff_t dwEntityList = 0x18C9E78; + constexpr std::ptrdiff_t dwGameEntitySystem = 0x19E7560; constexpr std::ptrdiff_t dwGameEntitySystem_getHighestEntityIndex = 0x1510; - constexpr std::ptrdiff_t dwGameRules = 0x1923360; - constexpr std::ptrdiff_t dwGlobalVars = 0x172DD50; - constexpr std::ptrdiff_t dwGlowManager = 0x1923778; - constexpr std::ptrdiff_t dwLocalPlayerController = 0x1915C08; - constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x173A3B8; - constexpr std::ptrdiff_t dwPlantedC4 = 0x192C3F8; - constexpr std::ptrdiff_t dwPrediction = 0x173A280; - constexpr std::ptrdiff_t dwSensitivity = 0x19240A8; + constexpr std::ptrdiff_t dwGameRules = 0x1926D80; + constexpr std::ptrdiff_t dwGlobalVars = 0x1730F20; + constexpr std::ptrdiff_t dwGlowManager = 0x19271A0; + constexpr std::ptrdiff_t dwLocalPlayerController = 0x1919588; + constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x173D5A8; + constexpr std::ptrdiff_t dwPlantedC4 = 0x192FF68; + constexpr std::ptrdiff_t dwPrediction = 0x173D470; + constexpr std::ptrdiff_t dwSensitivity = 0x1927AC8; constexpr std::ptrdiff_t dwSensitivity_sensitivity = 0x40; - constexpr std::ptrdiff_t dwViewAngles = 0x19342E0; - constexpr std::ptrdiff_t dwViewMatrix = 0x19278A0; - constexpr std::ptrdiff_t dwViewRender = 0x19280A0; - constexpr std::ptrdiff_t dwWeaponC4 = 0x18C9830; + constexpr std::ptrdiff_t dwViewAngles = 0x1937E50; + constexpr std::ptrdiff_t dwViewMatrix = 0x192B2C0; + constexpr std::ptrdiff_t dwViewRender = 0x192BAC0; + constexpr std::ptrdiff_t dwWeaponC4 = 0x18CD2D0; } // Module: engine2.dll namespace engine2_dll { - constexpr std::ptrdiff_t dwBuildNumber = 0x516574; - constexpr std::ptrdiff_t dwNetworkGameClient = 0x515AC8; + constexpr std::ptrdiff_t dwBuildNumber = 0x518744; + constexpr std::ptrdiff_t dwNetworkGameClient = 0x517AF8; constexpr std::ptrdiff_t dwNetworkGameClient_deltaTick = 0x258; constexpr std::ptrdiff_t dwNetworkGameClient_getLocalPlayer = 0xF0; constexpr std::ptrdiff_t dwNetworkGameClient_getMaxClients = 0x250; constexpr std::ptrdiff_t dwNetworkGameClient_signOnState = 0x240; - constexpr std::ptrdiff_t dwWindowHeight = 0x5CEE4C; - constexpr std::ptrdiff_t dwWindowWidth = 0x5CEE48; + constexpr std::ptrdiff_t dwWindowHeight = 0x5D1084; + constexpr std::ptrdiff_t dwWindowWidth = 0x5D1080; } // Module: inputsystem.dll namespace inputsystem_dll { - constexpr std::ptrdiff_t dwInputSystem = 0x367A0; + constexpr std::ptrdiff_t dwInputSystem = 0x377C0; } // Module: matchmaking.dll namespace matchmaking_dll { - constexpr std::ptrdiff_t dwGameTypes = 0x1D21E0; - constexpr std::ptrdiff_t dwGameTypes_mapName = 0x1D2300; + constexpr std::ptrdiff_t dwGameTypes = 0x1D2290; + constexpr std::ptrdiff_t dwGameTypes_mapName = 0x1D23B0; } } } \ No newline at end of file diff --git a/CS2CheatCpp/imgui.ini b/CS2CheatCpp/imgui.ini index 54fd2f4..71907e2 100644 --- a/CS2CheatCpp/imgui.ini +++ b/CS2CheatCpp/imgui.ini @@ -1,10 +1,10 @@ [Window][Debug##Default] Pos=60,60 -Size=400,400 +Size=296,50 [Window][CS2 ESP Cheat] -Pos=619,218 -Size=670,488 +Pos=547,160 +Size=712,545 [Window][CS2] Pos=60,61 @@ -15,3 +15,7 @@ Collapsed=1 Pos=267,100 Size=550,676 +[Window][watermark] +Pos=10,10 +Size=211,32 + diff --git a/CS2CheatCpp/src/gui.cpp b/CS2CheatCpp/src/gui.cpp index 4cb7f01..f44f67b 100644 --- a/CS2CheatCpp/src/gui.cpp +++ b/CS2CheatCpp/src/gui.cpp @@ -1,3 +1,5 @@ +#define _CRT_SECURE_NO_WARNINGS + #include #include "gui.h" #include "../dependencies/ImGui/imgui.h" @@ -177,6 +179,47 @@ void gui::CreateImGui() noexcept ImGui_ImplWin32_Init(overlay); ImGui_ImplDX11_Init(device, device_context); + + ImGuiStyle& style = ImGui::GetStyle(); + style.Alpha = 1.0; + style.WindowRounding = 3; + style.GrabRounding = 1; + style.GrabMinSize = 20; + style.FrameRounding = 3; + + style.Colors[ImGuiCol_Text] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_TextDisabled] = ImVec4(0.00f, 0.40f, 0.41f, 1.00f); + style.Colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f); + style.Colors[ImGuiCol_Border] = ImVec4(0.00f, 1.00f, 1.00f, 0.65f); + style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); + style.Colors[ImGuiCol_FrameBg] = ImVec4(0.44f, 0.80f, 0.80f, 0.18f); + style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.44f, 0.80f, 0.80f, 0.27f); + style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.44f, 0.81f, 0.86f, 0.66f); + style.Colors[ImGuiCol_TitleBg] = ImVec4(0.14f, 0.18f, 0.21f, 0.73f); + style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.54f); + style.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.00f, 1.00f, 1.00f, 0.27f); + style.Colors[ImGuiCol_MenuBarBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.20f); + style.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.22f, 0.29f, 0.30f, 0.71f); + style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.00f, 1.00f, 1.00f, 0.44f); + style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.00f, 1.00f, 1.00f, 0.74f); + style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_CheckMark] = ImVec4(0.00f, 1.00f, 1.00f, 0.68f); + style.Colors[ImGuiCol_SliderGrab] = ImVec4(0.00f, 1.00f, 1.00f, 0.36f); + style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.00f, 1.00f, 1.00f, 0.76f); + style.Colors[ImGuiCol_Button] = ImVec4(0.00f, 0.65f, 0.65f, 0.46f); + style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.01f, 1.00f, 1.00f, 0.43f); + style.Colors[ImGuiCol_ButtonActive] = ImVec4(0.00f, 1.00f, 1.00f, 0.62f); + style.Colors[ImGuiCol_Header] = ImVec4(0.00f, 1.00f, 1.00f, 0.33f); + style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.00f, 1.00f, 1.00f, 0.42f); + style.Colors[ImGuiCol_HeaderActive] = ImVec4(0.00f, 1.00f, 1.00f, 0.54f); + style.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.00f, 1.00f, 1.00f, 0.54f); + style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.00f, 1.00f, 1.00f, 0.74f); + style.Colors[ImGuiCol_ResizeGripActive] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_PlotLines] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_PlotHistogram] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(0.00f, 1.00f, 1.00f, 1.00f); + style.Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 1.00f, 1.00f, 0.22f); } void gui::DestroyImGui() noexcept @@ -224,6 +267,16 @@ void gui::EndRender() noexcept void gui::Render() noexcept { + // ˮӡ + auto start = std::chrono::system_clock::now(); + auto end = std::chrono::system_clock::now(); + auto elasped_seconds = end - start; + auto end_time = std::chrono::system_clock::to_time_t(end); + ImGui::SetNextWindowPos({ 10, 10 }); + ImGui::SetWindowSize(ImVec2(296, 50)); + ImGui::Begin("watermark", 0, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar); + ImGui::Text("yinlei | %s", std::ctime(&end_time)); + ImGui::End(); if (menuToggle) { // µǰٶ if (speed > maxSpeed) { @@ -233,7 +286,8 @@ void gui::Render() noexcept ImGui::ShowDemoWindow(&show_demo_window);*/ ImGuiWindowFlags window_flags = 0; window_flags |= ImGuiWindowFlags_MenuBar; - ImGui::SetNextWindowSize({ 600.f,500.f }, ImGuiCond_FirstUseEver); + window_flags |= ImGuiWindowFlags_NoCollapse; + ImGui::SetNextWindowSize(ImVec2(900, 450), ImGuiCond_FirstUseEver); ImGui::Begin("CS2 ESP Cheat", 0, window_flags); if (ImGui::BeginMenuBar()) { @@ -312,7 +366,7 @@ void gui::Render() noexcept ImGui::Text("Maximum movement speed: %d", maxSpeed); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("About")) + if (ImGui::BeginTabItem("Misc")) { ImGui::SeparatorText("Github Homepage"); ImGui::TextWrapped("https://github.com/yinleiCoder/cs2-cheat-cpp"); diff --git a/CS2CheatCpp/src/gui.h b/CS2CheatCpp/src/gui.h index 19437bd..24dc480 100644 --- a/CS2CheatCpp/src/gui.h +++ b/CS2CheatCpp/src/gui.h @@ -3,6 +3,7 @@ #include #include #include +#include namespace gui { diff --git a/CS2CheatCpp/src/weapon.hpp b/CS2CheatCpp/src/weapon.hpp index fecbed1..71743ad 100644 --- a/CS2CheatCpp/src/weapon.hpp +++ b/CS2CheatCpp/src/weapon.hpp @@ -4,94 +4,188 @@ enum Weapons : int { - Deagle = 1, - Elite = 2, - Fiveseven = 3, - Glock = 4, - Ak47 = 7, - Aug = 8, - Awp = 9, - Famas = 10, - G3Sg1 = 11, - M249 = 14, - Mac10 = 17, - P90 = 19, - Ump45 = 24, - Xm1014 = 25, - Bizon = 26, - Mag7 = 27, - Negev = 28, - Sawedoff = 29, - Tec9 = 30, - Zeus = 31, - P2000 = 32, - Mp7 = 33, - Mp9 = 34, - Nova = 35, - P250 = 36, - Scar20 = 38, - Sg556 = 39, - Ssg08 = 40, - CtKnife = 42, - Flashbang = 43, - Hegrenade = 44, - Smokegrenade = 45, - Molotov = 46, - Decoy = 47, - Incgrenade = 48, - C4 = 49, - M4A4 = 16, - UspS = 61, - M4A1Silencer = 60, - Cz75A = 63, - Revolver = 64, - TKnife = 59, + DESERT_EAGLE = 1, + DUAL_BERETTAS = 2, + FIVE_SEVEN = 3, + GLOCK_18 = 4, + AK_47 = 7, + AUG = 8, + AWP = 9, + FAMAS = 10, + G3SG1 = 11, + GALIL_AR = 13, + M249 = 14, + M4A4 = 16, + MAC_10 = 17, + P90 = 19, + REPULSOR_DEVICE = 20, + MP5_SD = 23, + UMP_45 = 24, + XM1014 = 25, + PP_BIZON = 26, + MAG_7 = 27, + NEGEV = 28, + SAWED_OFF = 29, + TEC_9 = 30, + ZEUS_X27 = 31, + P2000 = 32, + MP7 = 33, + MP9 = 34, + NOVA = 35, + P250 = 36, + RIOT_SHIELD = 37, + SCAR_20 = 38, + SG_553 = 39, + SSG_08 = 40, + KNIFE = 41, + KNIFE2 = 42, + FLASHBANG = 43, + HIGH_EXPLOSIVE_GRENADE = 44, + SMOKE_GRENADE = 45, + MOLOTOV = 46, + DECOY_GRENADE = 47, + INCENDIARY_GRENADE = 48, + C4_EXPLOSIVE = 49, + KEVLAR_VEST = 50, + KEVLAR__HELMETT = 51, + HEAVY_ASSAULT_SUIT = 52, + DEFUSE_KIT = 55, + RESCUE_KIT = 56, + MEDI_SHOT = 57, + MUSIC_KIT = 58, + KNIFE3 = 59, + M4A1_S = 60, + USP_S = 61, + TRADE_UP_CONTRACT = 62, + CZ75_AUTO = 63, + R8_REVOLVER = 64, + TACTICAL_AWARENESS_GRENADE = 68, + BARE_HANDS = 69, + BREACH_CHARGE = 70, + TABLET = 72, + KNIFE4 = 74, + AXE = 75, + HAMMER = 76, + WRENCH = 78, + SPECTRAL_SHIV = 80, + FIRE_BOMB = 81, + DIVERSION_DEVICE = 82, + FRAG_GRENADE = 83, + SNOWBALL = 84, + BUMP_MINE = 85, + BAYONET = 500, + CLASSIC_KNIFE = 503, + FLIP_KNIFE = 505, + GUT_KNIFE = 506, + KARAMBIT = 507, + M9_BAYONET = 508, + HUNTSMAN_KNIFE = 509, + FALCHION_KNIFE = 512, + BOWIE_KNIFE = 514, + BUTTERFLY_KNIFE = 515, + SHADOW_DAGGERS = 516, + PARACORD_KNIFE = 517, + SURVIVAL_KNIFE = 518, + URSUS_KNIFE = 519, + NAVAJA_KNIFE = 520, + NOMAD_KNIFE = 521, + STILETTO_KNIFE = 522, + TALON_KNIFE = 523, + SKELETON_KNIFE = 525, + KUKRI_KNIFE = 526, }; const char* getWeaponName(short weaponDefinitionIndex) { static std::map weaponNames = { - {1,"Deagle"}, - {2,"Elite"}, - {3,"Fiveseven"}, - {4,"Glock"}, - {7,"Ak47"}, - {8,"Aug"}, - {9,"Awp"}, - {10,"Famas"}, - {11,"G3Sg1"}, - {14,"M249"}, - {17,"Mac10"}, - {19,"P90"}, - {24,"Ump45"}, - {25,"Xm1014"}, - {26,"Bizon"}, - {27,"Mag7"}, - {28,"Negev"}, - {29,"Sawedoff"}, - {30,"Tec9"}, - {31,"Zeus"}, - {32,"P2000"}, - {33,"Mp7"}, - {34,"Mp9"}, - {35,"Nova"}, - {36,"P250"}, - {38,"Scar20"}, - {39,"Sg556"}, - {40,"Ssg08"}, - {42,"CtKnife"}, - {43,"Flashbang"}, - {44,"Hegrenade"}, - {45,"Smokegrenade"}, - {46,"Molotov"}, - {47,"Decoy"}, - {48,"Incgrenade"}, - {49,"C4"}, - {16,"M4A4"}, - {61,"UspS"}, - {60,"M4A1Silencer"}, - {63,"Cz75A"}, - {64,"Revolver"}, - {59,"TKnife"}, + {1, "DESERT_EAGLE"}, + {2, "DUAL_BERETTAS"}, + {3, "FIVE_SEVEN"}, + {4, "GLOCK_18"}, + {7, "AK_47"}, + {8, "AUG"}, + {9, "AWP"}, + {10, "FAMAS"}, + {11, "G3SG1"}, + {13, "GALIL_AR"}, + {14, "M249"}, + {16, "M4A4"}, + {17, "MAC_10"}, + {19, "P90"}, + {20, "REPULSOR_DEVICE"}, + {23, "MP5_SD"}, + {24, "UMP_45"}, + {25, "XM1014"}, + {26, "PP_BIZON"}, + {27, "MAG_7"}, + {28, "NEGEV"}, + {29, "SAWED_OFF"}, + {30, "TEC_9"}, + {31, "ZEUS_X27"}, + {32, "P2000"}, + {33, "MP7"}, + {34, "MP9"}, + {35, "NOVA"}, + {36, "P250"}, + {37, "RIOT_SHIELD"}, + {38, "SCAR_20"}, + {39, "SG_553"}, + {40, "SSG_08"}, + {41, "KNIFE"}, + {42, "KNIFE"}, + {43, "FLASHBANG"}, + {44, "HIGH_EXPLOSIVE_GRENADE"}, + {45, "SMOKE_GRENADE"}, + {46, "MOLOTOV"}, + {47, "DECOY_GRENADE"}, + {48, "INCENDIARY_GRENADE"}, + {49, "C4_EXPLOSIVE"}, + {50, "KEVLAR_VEST"}, + {51, "KEVLAR__HELMETT"}, + {52, "HEAVY_ASSAULT_SUIT"}, + {55, "DEFUSE_KIT"}, + {56, "RESCUE_KIT"}, + {57, "MEDI_SHOT"}, + {58, "MUSIC_KIT"}, + {59, "KNIFE"}, + {60, "M4A1_S"}, + {61, "USP_S"}, + {62, "TRADE_UP_CONTRACT"}, + {63, "CZ75_AUTO"}, + {64, "R8_REVOLVER"}, + {68, "TACTICAL_AWARENESS_GRENADE"}, + {69, "BARE_HANDS"}, + {70, "BREACH_CHARGE"}, + {72, "TABLET"}, + {74, "KNIFE"}, + {75, "AXE"}, + {76, "HAMMER"}, + {78, "WRENCH"}, + {80, "SPECTRAL_SHIV"}, + {81, "FIRE_BOMB"}, + {82, "DIVERSION_DEVICE"}, + {83, "FRAG_GRENADE"}, + {84, "SNOWBALL"}, + {85, "BUMP_MINE"}, + {500, "BAYONET"}, + {503, "CLASSIC_KNIFE"}, + {505, "FLIP_KNIFE"}, + {506, "GUT_KNIFE"}, + {507, "KARAMBIT"}, + {508, "M9_BAYONET"}, + {509, "HUNTSMAN_KNIFE"}, + {512, "FALCHION_KNIFE"}, + {514, "BOWIE_KNIFE"}, + {515, "BUTTERFLY_KNIFE"}, + {516, "SHADOW_DAGGERS"}, + {517, "PARACORD_KNIFE"}, + {518, "SURVIVAL_KNIFE"}, + {519, "URSUS_KNIFE"}, + {520, "NAVAJA_KNIFE"}, + {521, "NOMAD_KNIFE"}, + {522, "STILETTO_KNIFE"}, + {523, "TALON_KNIFE"}, + {525, "SKELETON_KNIFE"}, + {526, "KUKRI_KNIFE"}, }; auto it = weaponNames.find(weaponDefinitionIndex); return (it != weaponNames.end()) ? it->second : "Unknown"; diff --git a/README.md b/README.md index b43c456..7950983 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# CS2 Cheat - C++ +# CS2 ESP Cheat - C++ -> Latest Update:2024.04.29 21:56 +This is a `CS2 ESP cheat` software written in C++. + +> Latest Update:2024.05.01 10:50 ![esp](./esp.png) @@ -24,11 +26,12 @@ See [Releases page](https://github.com/yinleiCoder/cs2-cheat-cpp/releases) for ## Usage -1. 打开`CS2`游戏,并进入游戏房间 -2. 进入游戏房间后,此时鼠标双击`CS2CheatCpp.exe`运行外挂程序 -3. 运行外挂程序后,会显示外挂程序菜单,可以按`Insert键`进行显示/隐藏 -4. 若没有显示外挂程序菜单,则请提交日志文件记录 - 多数可能为offsets与CS2官方更新不同步,可clone代码后自行构建 -5. 每局结束后,建议先退出外挂程序,等到再次进入游戏房间后重复上述步骤 - 因为`句柄劫持`有时候效果不是非常好,至少我没有被封过 +1. 确保您的windows电脑上安装了`Directx` - 因为cs2游戏使用的是[directx 11](https://www.pcgamingwiki.com/wiki/Counter-Strike_2) +2. 打开`CS2`游戏,并进入游戏房间 +3. 进入游戏房间后,此时鼠标双击`CS2CheatCpp.exe`运行外挂程序 +4. 运行外挂程序后,会显示外挂程序菜单,可以按`Insert键`进行显示/隐藏 +5. 若没有显示外挂程序菜单,则请提交日志文件记录 - 多数可能为offsets与CS2官方更新不同步,可clone代码后自行构建 +6. 【可选操作】每局结束后,建议先退出外挂程序,等到再次进入游戏房间后重复上述步骤 - 因为`句柄劫持`有时候效果不是非常好,至少我目前没有被封过 ## Build @@ -63,4 +66,7 @@ See [Releases page](https://github.com/yinleiCoder/cs2-cheat-cpp/releases) for ## Thanks +I am working on [CS2 Internal Cheat With ImGui Hook](https://github.com/yinleiCoder/cs2-cheat-internal) project,Welcome to star!!! + +请我喝杯咖啡?我正在编写`cs2内部外挂`,实现诸如换肤器等功能,感谢您的支持: ![wechat](./wechat.jpg)