This commit is contained in:
Oscar 2025-07-18 15:14:02 +03:00
parent 4d216b662b
commit d3c189f949
87 changed files with 945 additions and 175 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

2
.idea/TempleWare-Legacy-main.iml generated Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CIDR" type="CPP_MODULE" version="4" />

102
.idea/editor.xml generated Normal file
View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BackendCodeEditorSettings">
<option name="/Default/CodeStyle/CodeFormatting/CppClangFormat/EnableClangFormatSupport/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_ARGUMENT/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_BINARY_EXPRESSIONS_CHAIN/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_CALLS_CHAIN/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_EXPRESSION/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_EXTENDS_LIST/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_FOR_STMT/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_PARAMETER/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_TYPE_ARGUMENT/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTILINE_TYPE_PARAMETER/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_MULTIPLE_DECLARATION/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ALIGN_TERNARY/@EntryValue" value="ALIGN_ALL" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_CLASS_DEFINITION/@EntryValue" value="1" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_DECLARATIONS/@EntryValue" value="0" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_FUNCTION_DECLARATION/@EntryValue" value="1" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BLANK_LINES_AROUND_FUNCTION_DEFINITION/@EntryValue" value="1" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/BREAK_TEMPLATE_DECLARATION/@EntryValue" value="LINE_BREAK" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/CASE_BLOCK_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/CONTINUOUS_LINE_INDENT/@EntryValue" value="Double" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/FREE_BLOCK_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_ACCESS_SPECIFIERS_FROM_CLASS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_CASE_FROM_SWITCH/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_CLASS_MEMBERS_FROM_ACCESS_SPECIFIERS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_COMMENT/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_SIZE/@EntryValue" value="4" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INDENT_STYLE/@EntryValue" value="Space" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INITIALIZER_BRACES/@EntryValue" value="END_OF_LINE_NO_SPACE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INT_ALIGN_EQ/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/INVOCABLE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_BLANK_LINES_IN_CODE/@EntryValue" value="2" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_BLANK_LINES_IN_DECLARATIONS/@EntryValue" value="2" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/KEEP_USER_LINEBREAKS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/LINE_BREAK_AFTER_COLON_IN_MEMBER_INITIALIZER_LISTS/@EntryValue" value="ON_SINGLE_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/MEMBER_INITIALIZER_LIST_STYLE/@EntryValue" value="DO_NOT_CHANGE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/NAMESPACE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/NAMESPACE_INDENTATION/@EntryValue" value="All" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/OTHER_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_CATCH_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_ELSE_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_NAMESPACE_DEFINITIONS_ON_SAME_LINE/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/PLACE_WHILE_ON_NEW_LINE/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SIMPLE_BLOCK_STYLE/@EntryValue" value="DO_NOT_CHANGE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_CAST_EXPRESSION_PARENTHESES/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COLON_IN_BITFIELD_DECLARATOR/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COMMA_IN_TEMPLATE_ARGS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_COMMA_IN_TEMPLATE_PARAMS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_EXTENDS_COLON/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_FOR_COLON/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_FOR_SEMICOLON/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_DATA_MEMBER/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_DATA_MEMBERS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_METHOD/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_PTR_IN_NESTED_DECLARATOR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_DATA_MEMBER/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_DATA_MEMBERS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_REF_IN_METHOD/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_AFTER_UNARY_OPERATOR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_COLON_IN_BITFIELD_DECLARATOR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_EXTENDS_COLON/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_FOR_COLON/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_FOR_SEMICOLON/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_ABSTRACT_DECL/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_DATA_MEMBER/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_DATA_MEMBERS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_PTR_IN_METHOD/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_ABSTRACT_DECL/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_DATA_MEMBER/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_DATA_MEMBERS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_REF_IN_METHOD/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_TEMPLATE_ARGS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BEFORE_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_BETWEEN_CLOSING_ANGLE_BRACKETS_IN_TEMPLATE_ARGS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_ARRAY_ACCESS_BRACKETS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_CAST_EXPRESSION_PARENTHESES/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_DECLARATION_PARENTHESES/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_BLOCKS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_INITIALIZER_BRACES/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_METHOD_PARENTHESES/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_EMPTY_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_INITIALIZER_BRACES/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_TEMPLATE_ARGS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPACE_WITHIN_TEMPLATE_PARAMS/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/SPECIAL_ELSE_IF_TREATMENT/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/TAB_WIDTH/@EntryValue" value="4" type="int" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/TYPE_DECLARATION_BRACES/@EntryValue" value="END_OF_LINE" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_BINARY_OPSIGN/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_DECLARATION_LPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_AFTER_INVOCATION_LPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_ARGUMENTS_STYLE/@EntryValue" value="WRAP_IF_LONG" type="string" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_DECLARATION_LPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_DECLARATION_RPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_INVOCATION_LPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_INVOCATION_RPAR/@EntryValue" value="false" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_BEFORE_TERNARY_OPSIGNS/@EntryValue" value="true" type="bool" />
<option name="/Default/CodeStyle/CodeFormatting/CppFormatting/WRAP_PARAMETERS_STYLE/@EntryValue" value="WRAP_IF_LONG" type="string" />
<option name="/Default/CodeStyle/EditorConfig/EnableClangFormatSupport/@EntryValue" value="false" type="bool" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/TempleWare-Legacy-main.iml" filepath="$PROJECT_DIR$/.idea/TempleWare-Legacy-main.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,8 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TempleWare-CS2.sln" type="CppFileRunConfiguration" factoryName="CppFileRunConfiguration" nameIsGenerated="true" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" WORKING_DIR="file://$PROJECT_DIR$" PASS_PARENT_ENVS_2="true" PROJECT_NAME="TempleWare-Legacy-main" TARGET_NAME="TempleWare-CS2.sln" CONFIG_NAME="TempleWare-CS2.sln">
<option name="sourceFile" value="A:\Hacker228\TempleWare-Legacy-main\TempleWare-CS2\source\main.cpp" />
<method v="2">
<option name="com.jetbrains.cidr.cpp.runfile.CppFileBuildBeforeRunTaskProvider$BasicBuildBeforeRunTask" enabled="true" />
</method>
</configuration>
</component>

7
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/examples/CS2-External-Overlay-Cheat" vcs="Git" />
</component>
</project>

View File

@ -171,6 +171,7 @@
<ClCompile Include="source\cs2\entity\C_CSWeaponBase\C_CSWeaponBase.cpp" /> <ClCompile Include="source\cs2\entity\C_CSWeaponBase\C_CSWeaponBase.cpp" />
<ClCompile Include="source\templeware\features\aim\aim.cpp" /> <ClCompile Include="source\templeware\features\aim\aim.cpp" />
<ClCompile Include="source\templeware\features\chams\chams.cpp" /> <ClCompile Include="source\templeware\features\chams\chams.cpp" />
<ClCompile Include="source\templeware\features\triggerbot\triggerbot.cpp" />
<ClCompile Include="source\templeware\features\visuals\antiflash\antiflash.cpp" /> <ClCompile Include="source\templeware\features\visuals\antiflash\antiflash.cpp" />
<ClCompile Include="source\templeware\features\visuals\fov\fov.cpp" /> <ClCompile Include="source\templeware\features\visuals\fov\fov.cpp" />
<ClCompile Include="source\templeware\interfaces\CGameEntitySystem\CGameEntitySystem.cpp" /> <ClCompile Include="source\templeware\interfaces\CGameEntitySystem\CGameEntitySystem.cpp" />
@ -227,6 +228,7 @@
<ClInclude Include="source\cs2\entity\handle.h" /> <ClInclude Include="source\cs2\entity\handle.h" />
<ClInclude Include="source\templeware\features\aim\aim.h" /> <ClInclude Include="source\templeware\features\aim\aim.h" />
<ClInclude Include="source\templeware\features\chams\chams.h" /> <ClInclude Include="source\templeware\features\chams\chams.h" />
<ClInclude Include="source\templeware\features\triggerbot\triggerbot.h" />
<ClInclude Include="source\templeware\interfaces\CGameEntitySystem\CGameEntitySystem.h" /> <ClInclude Include="source\templeware\interfaces\CGameEntitySystem\CGameEntitySystem.h" />
<ClInclude Include="source\templeware\interfaces\IEngineClient\IEngineClient.h" /> <ClInclude Include="source\templeware\interfaces\IEngineClient\IEngineClient.h" />
<ClInclude Include="source\templeware\interfaces\interfaces.h" /> <ClInclude Include="source\templeware\interfaces\interfaces.h" />

View File

@ -6,7 +6,7 @@
C_CSPlayerPawn::C_CSPlayerPawn(uintptr_t address) : address(address) {} C_CSPlayerPawn::C_CSPlayerPawn(uintptr_t address) : address(address) {}
Vector_t C_CSPlayerPawn::getPosition() const { Vector_t C_CSPlayerPawn::getPosition() const {
return *(Vector_t*)(address + SchemaFinder::Get(hash_32_fnv1a_const("C_BasePlayerPawn->m_vOldOrigin"))); return *(Vector_t*)(this->address + SchemaFinder::Get(hash_32_fnv1a_const("C_BasePlayerPawn->m_vOldOrigin")));
} }
Vector_t C_CSPlayerPawn::getEyePosition() const { Vector_t C_CSPlayerPawn::getEyePosition() const {
@ -48,3 +48,7 @@ uint8_t C_CSPlayerPawn::getTeam() const {
Vector_t C_CSPlayerPawn::getViewOffset() const { Vector_t C_CSPlayerPawn::getViewOffset() const {
return *reinterpret_cast<Vector_t*>((uintptr_t)this + SchemaFinder::Get(hash_32_fnv1a_const("C_BaseModelEntity->m_vecViewOffset"))); return *reinterpret_cast<Vector_t*>((uintptr_t)this + SchemaFinder::Get(hash_32_fnv1a_const("C_BaseModelEntity->m_vecViewOffset")));
} }
int C_CSPlayerPawn::getShotsFired() const {
return *reinterpret_cast<int*>((uintptr_t)this + SchemaFinder::Get(hash_32_fnv1a_const("C_CSPlayerPawn->m_iShotsFired")));
} //{ return *reinterpret_cast<int*>(address + SchemaFinder::Get(hash_32_fnv1a_const("C_CSPlayerPawn->m_iShotsFired"))); }

View File

@ -23,6 +23,7 @@ public:
int getHealth() const; int getHealth() const;
uint8_t getTeam() const; uint8_t getTeam() const;
Vector_t getViewOffset() const; Vector_t getViewOffset() const;
int getShotsFired() const;
private: private:
uintptr_t address; uintptr_t address;
}; };

View File

@ -50,4 +50,18 @@ namespace Config {
bool fov_circle = 0; bool fov_circle = 0;
ImVec4 fovCircleColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f); ImVec4 fovCircleColor = ImVec4(1.0f, 1.0f, 1.0f, 1.0f);
float aimbot_smooth = 0.f; float aimbot_smooth = 0.f;
bool aimbot_dynamic_smooth = false;
float aimbot_dynamic_smooth_factor = 1.0f;
bool aimbot_on_lmb = false;
bool shooterAfterAim = false; // Если true, ЛКМ блокируется до наведения на врага
bool triggerbot_hold_lmb = false; // Если true, триггербот удерживает ЛКМ пока наведён на врага
int aimbot_bone = Config::BONE_HEAD;
int aimbot_key = 0x12; // VK_MENU (Alt) по умолчанию
bool always_on_aimbot = false;
bool triggerbot = false;
bool always_on_triggerbot = false;
int triggerbot_key = 0x05; // Например, VK_X или другой
float triggerbot_delay = 0.0f;
} }

View File

@ -49,4 +49,26 @@ namespace Config {
extern bool fov_circle; extern bool fov_circle;
extern ImVec4 fovCircleColor; extern ImVec4 fovCircleColor;
extern float aimbot_smooth; extern float aimbot_smooth;
extern bool aimbot_dynamic_smooth;
extern float aimbot_dynamic_smooth_factor;
extern bool aimbot_on_lmb;
extern bool shooterAfterAim;
extern bool triggerbot_hold_lmb; // Если true, триггербот удерживает ЛКМ пока наведён на врага
// --- Для аимбота ---
enum AimbotBone {
BONE_HEAD = 0,
BONE_NECK = 1,
BONE_BODY = 2,
BONE_NEAREST = 3
};
extern int aimbot_bone; // Используется как int для сериализации
extern int aimbot_key;
extern bool always_on_aimbot;
// --- Для триггербота ---
extern bool triggerbot;
extern bool always_on_triggerbot;
extern int triggerbot_key;
extern float triggerbot_delay;
} }

View File

@ -120,6 +120,20 @@ namespace internal_config
j["rcs"] = Config::rcs; j["rcs"] = Config::rcs;
j["fov_circle"] = Config::fov_circle; j["fov_circle"] = Config::fov_circle;
j["aimbot_smooth"] = Config::aimbot_smooth; j["aimbot_smooth"] = Config::aimbot_smooth;
j["aimbot_bone"] = Config::aimbot_bone;
j["aimbot_key"] = Config::aimbot_key;
j["team_check"] = Config::team_check;
j["always_on_aimbot"] = Config::always_on_aimbot;
j["aimbot_dynamic_smooth"] = Config::aimbot_dynamic_smooth;
j["aimbot_dynamic_smooth_factor"] = Config::aimbot_dynamic_smooth_factor;
j["aimbot_on_lmb"] = Config::aimbot_on_lmb;
j["showNameTags"] = Config::showNameTags;
j["triggerbot_hold_lmb"] = Config::triggerbot_hold_lmb;
j["shooterAfterAim"] = Config::shooterAfterAim;
j["always_on_triggerbot"] = Config::always_on_triggerbot;
j["triggerbot"] = Config::triggerbot;
j["triggerbot_key"] = Config::triggerbot_key;
j["triggerbot_delay"] = Config::triggerbot_delay;
j["enemyChamsInvisible"] = Config::enemyChamsInvisible; j["enemyChamsInvisible"] = Config::enemyChamsInvisible;
j["enemyChams"] = Config::enemyChams; j["enemyChams"] = Config::enemyChams;
@ -219,6 +233,20 @@ namespace internal_config
Config::rcs = j.value("rcs", false); Config::rcs = j.value("rcs", false);
Config::aimbot_fov = j.value("aimbot_fov", 0.f); Config::aimbot_fov = j.value("aimbot_fov", 0.f);
Config::aimbot_smooth = j.value("aimbot_smooth", 0.f); Config::aimbot_smooth = j.value("aimbot_smooth", 0.f);
Config::aimbot_bone = j.value("aimbot_bone", 0);
Config::aimbot_key = j.value("aimbot_key", 0x12);
Config::team_check = j.value("team_check", true);
Config::always_on_aimbot = j.value("always_on_aimbot", false);
Config::aimbot_dynamic_smooth = j.value("aimbot_dynamic_smooth", false);
Config::aimbot_dynamic_smooth_factor = j.value("aimbot_dynamic_smooth_factor", 1.0f);
Config::aimbot_on_lmb = j.value("aimbot_on_lmb", false);
Config::showNameTags = j.value("showNameTags", false);
Config::triggerbot_hold_lmb = j.value("triggerbot_hold_lmb", false);
Config::shooterAfterAim = j.value("shooterAfterAim", false);
Config::always_on_triggerbot = j.value("always_on_triggerbot", false);
Config::triggerbot = j.value("triggerbot", false);
Config::triggerbot_key = j.value("triggerbot_key", 0x05);
Config::triggerbot_delay = j.value("triggerbot_delay", 0.0f);
Config::antiflash = j.value("antiflash", false); Config::antiflash = j.value("antiflash", false);

View File

@ -3,13 +3,93 @@
#include "../../../templeware/interfaces/interfaces.h" #include "../../../templeware/interfaces/interfaces.h"
#include "../../../templeware/hooks/hooks.h" #include "../../../templeware/hooks/hooks.h"
#include "../../../templeware/config/config.h" #include "../../../templeware/config/config.h"
#include "../../utils/memory/patternscan/patternscan.h"
#include <chrono> #include <chrono>
#include <Windows.h> #include <Windows.h>
#include "../../menu/hud.h" #include "../../menu/hud.h"
#include "../../menu/menu.h"
#include <array>
#include <cmath>
// Индексы костей (актуально для CS2)
constexpr int BONE_INDEX_HEAD = 6; // Head
constexpr int BONE_INDEX_NECK = 5; // Neck
constexpr int BONE_INDEX_BODY = 4;//0; // Pelvis/Root
// --- lastBoneIdx теперь глобальный static ---
static int lastBoneIdx = -1;
inline QAngle_t CalcAngles(Vector_t viewPos, Vector_t aimPos)
{
QAngle_t angle = { 0, 0, 0 };
Vector_t delta = aimPos - viewPos;
angle.x = -asin(delta.z / delta.Length()) * (180.0f / 3.141592654f);
angle.y = atan2(delta.y, delta.x) * (180.0f / 3.141592654f);
return angle;
}
inline float GetFov(const QAngle_t& viewAngle, const QAngle_t& aimAngle)
{
QAngle_t delta = (aimAngle - viewAngle).Normalize();
return sqrtf(powf(delta.x, 2.0f) + powf(delta.y, 2.0f));
}
// // Сигнатура функции GetBonePosition (актуально для client.dll):
// // 48 89 6C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 83 EC ? 4D 8B F1
// using GetBonePositionFn = int64_t(__fastcall*)(void*, uint32_t, Vector_t*, Vector_t*);
// static GetBonePositionFn oGetBonePosition = nullptr;
// static void InitGetBonePositionSig() {
// if (!oGetBonePosition) {
// uintptr_t addr = M::patternScan("client.dll", "48 89 6C 24 ? 48 89 74 24 ? 48 89 7C 24 ? 41 56 48 83 EC ? 4D 8B F1");
// oGetBonePosition = reinterpret_cast<GetBonePositionFn>(addr);
// }
// }
Vector_t GetBonePosition(const C_CSPlayerPawn* Entity, int boneIdx) {
if (!Entity) return {};
// Внешний способ: читаем Vector3 по адресу boneMatrix + boneIdx * 0x20
uintptr_t pGameSceneNode = *reinterpret_cast<uintptr_t*>((uintptr_t)Entity + 0x328);
if (!pGameSceneNode) return {};
uintptr_t pBoneMatrix = *reinterpret_cast<uintptr_t*>(pGameSceneNode + 0x1F0);
if (!pBoneMatrix) return {};
return *reinterpret_cast<Vector_t*>(pBoneMatrix + boneIdx * 0x20);
}
// Получить позицию для аимбота в зависимости от выбора пользователя
Vector_t GetAimbotTargetPos(const C_CSPlayerPawn* Entity, const Vector_t& from, const QAngle_t& viewAngles) {
switch (Config::aimbot_bone) {
case Config::BONE_HEAD:
return GetBonePosition(Entity, BONE_INDEX_HEAD);
case Config::BONE_NECK:
return GetBonePosition(Entity, BONE_INDEX_NECK);
case Config::BONE_BODY:
return GetBonePosition(Entity, BONE_INDEX_BODY);
case Config::BONE_NEAREST:
default: {
// Каждый раз ищем ближайшую кость по FOV
std::array<int, 2> bones = {BONE_INDEX_HEAD, BONE_INDEX_BODY};
float bestFov = FLT_MAX;
int bestIdx = BONE_INDEX_HEAD;
for (int idx : bones) {
Vector_t pos = GetBonePosition(Entity, idx);
QAngle_t ang = CalcAngles(from, pos); // <-- Исправлено!
float fov = GetFov(viewAngles, ang);
if (fov < bestFov && std::isfinite(fov)) {
bestFov = fov;
bestIdx = idx;
}
}
return GetBonePosition(Entity, bestIdx);
}
}
}
// Literally the most autistic code ive ever written in my life
// Please dont ever make me do this again
Vector_t GetEntityEyePos(const C_CSPlayerPawn* Entity) { Vector_t GetEntityEyePos(const C_CSPlayerPawn* Entity) {
if (!Entity) if (!Entity)
@ -27,110 +107,306 @@ Vector_t GetEntityEyePos(const C_CSPlayerPawn* Entity) {
return Result; return Result;
} }
inline QAngle_t CalcAngles(Vector_t viewPos, Vector_t aimPos)
{
QAngle_t angle = { 0, 0, 0 };
Vector_t delta = aimPos - viewPos;
angle.x = -asin(delta.z / delta.Length()) * (180.0f / 3.141592654f);
angle.y = atan2(delta.y, delta.x) * (180.0f / 3.141592654f);
return angle;
}
inline float GetFov(const QAngle_t& viewAngle, const QAngle_t& aimAngle)
{
QAngle_t delta = (aimAngle - viewAngle).Normalize();
return sqrtf(powf(delta.x, 2.0f) + powf(delta.y, 2.0f));
}
void Aimbot() { void Aimbot() {
static C_CSPlayerPawn* lockedTarget = nullptr; static C_CSPlayerPawn* lockedTarget = nullptr;
static bool prevAimbotState = false; static bool prevAimbotState = false;
static bool targetWasLost = false;
static QAngle_t last_punch_angle = {0,0,0};
static int shotCount = 0;
bool aimbotActive = Config::always_on_aimbot ? true : Config::aimbot;
// --- shooterAfterAim + triggerbot_key ---
if (Config::shooterAfterAim && (GetAsyncKeyState(Config::triggerbot_key) & 0x8000)) {
aimbotActive = true;
}
C_CSPlayerPawn* lp = H::oGetLocalPlayer(0);
Vector_t lep = GetEntityEyePos(lp);
QAngle_t* viewangles = (QAngle_t*)(modules.getModule("client") + 0x1A78650);
bool isShooting = (GetAsyncKeyState(Config::triggerbot_key) & 0x8000) || (GetAsyncKeyState(VK_LBUTTON) & 0x8000);
bool aimbotActive = Config::aimbot; int shotsFired = lp ? lp->getShotsFired() : 0;
shotCount = shotsFired;
g_DebugString = "debug: " + std::to_string(shotsFired);
// Получаем локального игрока и viewangles всегда, чтобы не дублировать код if (Config::aimbot_on_lmb && !Config::always_on_aimbot) {
C_CSPlayerPawn* lp = H::oGetLocalPlayer(0); aimbotActive = isShooting;
Vector_t lep = GetEntityEyePos(lp); }
QAngle_t* viewangles = (QAngle_t*)(modules.getModule("client") + 0x1A78650);
// Если кнопка только что нажата (переход с false на true) — ищем новую цель // Получаем локального игрока и viewangles всегда, чтобы не дублировать код
if (aimbotActive && !prevAimbotState) { // C_CSPlayerPawn* lp = H::oGetLocalPlayer(0);
int nMaxHighestEntity = I::GameEntity->Instance->GetHighestEntityIndex(); // Vector_t lep = GetEntityEyePos(lp);
float bestFov = Config::aimbot_fov; // QAngle_t* viewangles = (QAngle_t*)(modules.getModule("client") + 0x1A78650);
C_CSPlayerPawn* bestTarget = nullptr;
QAngle_t bestAngle = { 0, 0, 0 };
for (int i = 1; i <= nMaxHighestEntity; i++) { // Проверка: стреляет ли игрок (LMB)
auto Entity = I::GameEntity->Instance->Get(i); // bool isShooting = (GetAsyncKeyState(VK_LBUTTON) & 0x8000);
if (!Entity)
continue;
if (!Entity->handle().valid())
continue;
SchemaClassInfoData_t* _class = nullptr;
Entity->dump_class_info(&_class);
if (!_class)
continue;
const uint32_t hash = HASH(_class->szName);
if (hash == HASH("C_CSPlayerPawn")) {
C_CSPlayerPawn* pawn = (C_CSPlayerPawn*)Entity;
if (pawn->get_entity_by_handle() == lp->get_entity_by_handle())
continue;
if (pawn->getHealth() <= 0)
continue;
if (!Config::team_check && pawn->getTeam() == lp->getTeam())
continue;
Vector_t eye_pos = GetEntityEyePos(pawn);
QAngle_t angle = CalcAngles(eye_pos, lep);
angle.x *= -1.f;
angle.y += 180.f;
const float fov = GetFov(*viewangles, angle);
if (!std::isfinite(fov) || fov > bestFov)
continue;
bestFov = fov;
bestTarget = pawn;
bestAngle = angle;
}
}
lockedTarget = bestTarget;
}
// Если кнопка отпущена — сбрасываем захват // --- Новый режим: always_on_aimbot ---
if (!aimbotActive) if (Config::always_on_aimbot) {
lockedTarget = nullptr; int nMaxHighestEntity = I::GameEntity->Instance->GetHighestEntityIndex();
float bestFov = Config::aimbot_fov;
C_CSPlayerPawn* bestTarget = nullptr;
QAngle_t bestAngle = { 0, 0, 0 };
// Если есть захваченная цель и кнопка удерживается for (int i = 1; i <= nMaxHighestEntity; i++) {
if (aimbotActive && lockedTarget) { auto Entity = I::GameEntity->Instance->Get(i);
// Проверяем, что цель всё ещё валидна if (!Entity)
if (!lockedTarget->handle().valid() || lockedTarget->getHealth() <= 0) { continue;
lockedTarget = nullptr; if (!Entity->handle().valid())
} continue;
else { SchemaClassInfoData_t* _class = nullptr;
Vector_t eye_pos = GetEntityEyePos(lockedTarget); Entity->dump_class_info(&_class);
QAngle_t angle = CalcAngles(eye_pos, lep); if (!_class)
angle.x *= -1.f; continue;
angle.y += 180.f; const uint32_t hash = HASH(_class->szName);
QAngle_t ang_punch_angle = *(QAngle_t*)((uintptr_t)lp + SchemaFinder::Get(hash_32_fnv1a_const("C_CSPlayerPawn->m_aimPunchAngle"))); if (hash == HASH("C_CSPlayerPawn")) {
if (Config::rcs) C_CSPlayerPawn* pawn = (C_CSPlayerPawn*)Entity;
angle -= ang_punch_angle * 2.f; if (pawn->get_entity_by_handle() == lp->get_entity_by_handle())
angle.z = 0.f; continue;
angle = angle.Normalize(); if (pawn->getHealth() <= 0)
if (Config::aimbot_smooth > 0.f) { continue;
QAngle_t cur = *viewangles; if (Config::team_check && pawn->getTeam() == lp->getTeam())
QAngle_t delta = (angle - cur).Normalize(); continue;
float smooth = Config::aimbot_smooth; Vector_t target_pos = GetEntityEyePos(pawn);//GetAimbotTargetPos(pawn, lep);
angle = cur + delta * (1.f / smooth); QAngle_t angle = CalcAngles(target_pos, lep);
angle = angle.Normalize(); angle.x *= -1.f;
*viewangles = angle; angle.y += 180.f;
} const float fov = GetFov(*viewangles, angle);
else { if (!std::isfinite(fov) || fov > bestFov)
*viewangles = angle; continue;
} bestFov = fov;
} bestTarget = pawn;
} bestAngle = angle;
}
}
if (bestTarget) {
Vector_t target_pos = GetAimbotTargetPos(bestTarget, lep, *viewangles);
//Vector_t target_pos = GetEntityEyePos(bestTarget);
QAngle_t angle = CalcAngles(target_pos, lep);
angle.x *= -1.f;
angle.y += 180.f;
QAngle_t ang_punch_angle = *(QAngle_t*)((uintptr_t)lp + SchemaFinder::Get(hash_32_fnv1a_const("C_CSPlayerPawn->m_aimPunchAngle")));
if (isShooting) {
last_punch_angle = ang_punch_angle;
} else {
last_punch_angle = {0,0,0};
}
// --- RCS ---
bool rcsActive = (Config::rcs || Config::shooterAfterAim) && (shotCount > 1);
if (rcsActive)
angle -= last_punch_angle * 2.f;
angle.z = 0.f;
angle = angle.Normalize();
// --- RCS ---
QAngle_t delta = (angle - *viewangles).Normalize();
if (rcsActive) {
float smooth_rcs = Config::aimbot_smooth;
if (Config::aimbot_dynamic_smooth) {
float fov = sqrtf(delta.x * delta.x + delta.y * delta.y);
float maxFov = Config::aimbot_fov;
float factor = (maxFov > 0.01f) ? (fov / maxFov) : 0.f;
smooth_rcs = Config::aimbot_smooth + (Config::aimbot_smooth * factor * Config::aimbot_dynamic_smooth_factor);
}
smooth_rcs = std::fmax(smooth_rcs / 10.f, 1.0f);
angle -= last_punch_angle * 2.f * smooth_rcs;
}
// --- Smooth ---
if (Config::aimbot_smooth > 0.f) {
QAngle_t cur = *viewangles;
QAngle_t delta = (angle - cur).Normalize();
float smooth = Config::aimbot_smooth;
if (Config::aimbot_dynamic_smooth) {
float fov = sqrtf(delta.x * delta.x + delta.y * delta.y);
float maxFov = Config::aimbot_fov;
float factor = (maxFov > 0.01f) ? (fov / maxFov) : 0.f;
smooth = smooth + (smooth * factor * Config::aimbot_dynamic_smooth_factor);
}
angle = cur + delta * (1.f / smooth);
angle = angle.Normalize();
*viewangles = angle;
} else {
*viewangles = angle;
}
}
// В этом режиме не используем lockedTarget и не трогаем targetWasLost/prevAimbotState
return;
}
prevAimbotState = aimbotActive; // Если кнопка только что нажата (переход с false на true) — ищем новую цель
if (aimbotActive && !prevAimbotState) {
lastBoneIdx = -1; // Сброс при новой активации
int nMaxHighestEntity = I::GameEntity->Instance->GetHighestEntityIndex();
float bestFov = Config::aimbot_fov;
C_CSPlayerPawn* bestTarget = nullptr;
QAngle_t bestAngle = { 0, 0, 0 };
for (int i = 1; i <= nMaxHighestEntity; i++) {
auto Entity = I::GameEntity->Instance->Get(i);
if (!Entity)
continue;
if (!Entity->handle().valid())
continue;
SchemaClassInfoData_t* _class = nullptr;
Entity->dump_class_info(&_class);
if (!_class)
continue;
const uint32_t hash = HASH(_class->szName);
if (hash == HASH("C_CSPlayerPawn")) {
C_CSPlayerPawn* pawn = (C_CSPlayerPawn*)Entity;
if (pawn->get_entity_by_handle() == lp->get_entity_by_handle())
continue;
if (pawn->getHealth() <= 0)
continue;
if (Config::team_check && pawn->getTeam() == lp->getTeam())
continue;
Vector_t target_pos = GetEntityEyePos(pawn);//GetAimbotTargetPos(pawn, lep);
QAngle_t angle = CalcAngles(target_pos, lep);
angle.x *= -1.f;
angle.y += 180.f;
const float fov = GetFov(*viewangles, angle);
if (!std::isfinite(fov) || fov > bestFov)
continue;
bestFov = fov;
bestTarget = pawn;
bestAngle = angle;
}
}
lockedTarget = bestTarget;
targetWasLost = false;
// Сброс punch_angle при смене цели
last_punch_angle = {0,0,0};
}
// Если кнопка отпущена — сбрасываем захват
if (!aimbotActive) {
lockedTarget = nullptr;
targetWasLost = false;
last_punch_angle = {0,0,0}; // сброс rcs
// Сброс lastBoneIdx при отпускании кнопки аимбота (например, в Aimbot()):
// if (!aimbotActive) lastBoneIdx = -1;
}
// Если есть захваченная цель и кнопка удерживается
if (aimbotActive && lockedTarget) {
// Проверяем, что цель всё ещё валидна
if (!lockedTarget->handle().valid() || lockedTarget->getHealth() <= 0) {
lockedTarget = nullptr;
targetWasLost = true;
// Не ищем новую цель до повторного нажатия!
last_punch_angle = {0,0,0}; // сброс rcs
}
else {
Vector_t target_pos = GetAimbotTargetPos(lockedTarget, lep, *viewangles);
QAngle_t angle = CalcAngles(target_pos, lep);
angle.x *= -1.f;
angle.y += 180.f;
QAngle_t ang_punch_angle = *(QAngle_t*)((uintptr_t)lp + SchemaFinder::Get(hash_32_fnv1a_const("C_CSPlayerPawn->m_aimPunchAngle")));
if (isShooting) {
last_punch_angle = ang_punch_angle;
} else {
last_punch_angle = {0,0,0};
}
// --- RCS ---
bool rcsActive = (Config::rcs || Config::shooterAfterAim) && (shotCount > 1);
if (rcsActive)
angle -= last_punch_angle * 2.f;
angle.z = 0.f;
angle = angle.Normalize();
// --- RCS ---
QAngle_t delta = (angle - *viewangles).Normalize();
if (rcsActive) {
float smooth_rcs = Config::aimbot_smooth;
if (Config::aimbot_dynamic_smooth) {
float fov = sqrtf(delta.x * delta.x + delta.y * delta.y);
float maxFov = Config::aimbot_fov;
float factor = (maxFov > 0.01f) ? (fov / maxFov) : 0.f;
smooth_rcs = Config::aimbot_smooth + (Config::aimbot_smooth * factor * Config::aimbot_dynamic_smooth_factor);
}
smooth_rcs = std::fmax(smooth_rcs / 10.f, 1.0f);
angle -= last_punch_angle * 2.f * smooth_rcs;
}
// --- Smooth ---
if (Config::aimbot_smooth > 0.f) {
QAngle_t cur = *viewangles;
QAngle_t delta = (angle - cur).Normalize();
float smooth = Config::aimbot_smooth;
if (Config::aimbot_dynamic_smooth) {
float fov = sqrtf(delta.x * delta.x + delta.y * delta.y);
float maxFov = Config::aimbot_fov;
float factor = (maxFov > 0.01f) ? (fov / maxFov) : 0.f;
smooth = smooth + (smooth * factor * Config::aimbot_dynamic_smooth_factor);
}
angle = cur + delta * (1.f / smooth);
angle = angle.Normalize();
*viewangles = angle;
} else {
*viewangles = angle;
}
}
}
//Если кнопка зажата, цели нет, и мы не теряли цель (т.е. только в начале или если цели не было вообще)
if (aimbotActive && !lockedTarget && !targetWasLost) {
int nMaxHighestEntity = I::GameEntity->Instance->GetHighestEntityIndex();
float bestFov = Config::aimbot_fov;
C_CSPlayerPawn* bestTarget = nullptr;
QAngle_t bestAngle = { 0, 0, 0 };
for (int i = 1; i <= nMaxHighestEntity; i++) {
auto Entity = I::GameEntity->Instance->Get(i);
if (!Entity)
continue;
if (!Entity->handle().valid())
continue;
SchemaClassInfoData_t* _class = nullptr;
Entity->dump_class_info(&_class);
if (!_class)
continue;
const uint32_t hash = HASH(_class->szName);
if (hash == HASH("C_CSPlayerPawn")) {
C_CSPlayerPawn* pawn = (C_CSPlayerPawn*)Entity;
if (pawn->get_entity_by_handle() == lp->get_entity_by_handle())
continue;
if (pawn->getHealth() <= 0)
continue;
if (Config::team_check && pawn->getTeam() == lp->getTeam())
continue;
Vector_t target_pos = GetEntityEyePos(pawn);//GetAimbotTargetPos(pawn, lep);
QAngle_t angle = CalcAngles(target_pos, lep);
angle.x *= -1.f;
angle.y += 180.f;
const float fov = GetFov(*viewangles, angle);
if (!std::isfinite(fov) || fov > bestFov)
continue;
bestFov = fov;
bestTarget = pawn;
bestAngle = angle;
}
}
lockedTarget = bestTarget;
// Сброс punch_angle при смене цели
last_punch_angle = {0,0,0};
}
prevAimbotState = aimbotActive;
//if (Config::shooterAfterAim) {
// if (g_ShowMenu) return;
// C_CSPlayerPawn* lp = H::oGetLocalPlayer(0);
// bool onEnemy = false;
// if (lp) {
// int crosshairIdx = *(int*)((uintptr_t)lp + 0x1458); // m_iIDEntIndex
// if (crosshairIdx > 0) {
// auto target = I::GameEntity->Instance->Get<C_CSPlayerPawn>(crosshairIdx);
// if (target && target->getHealth() > 0 && (!Config::team_check || target->getTeam() != lp->getTeam()))
// onEnemy = true;
// }
// }
// // Если врага нет под прицелом — всегда блокируем ЛКМ
// if (!onEnemy && (GetAsyncKeyState(VK_LBUTTON) & 0x8000)) {
// INPUT input = { 0 };
// input.type = INPUT_MOUSE;
// input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
// SendInput(1, &input, sizeof(INPUT));
// }
// // return; // Не делаем return, чтобы аимбот работал всегда
//}
} }

View File

@ -0,0 +1,116 @@
#include "../../../cs2/entity/C_CSPlayerPawn/C_CSPlayerPawn.h"
#include "../../../templeware/interfaces/CGameEntitySystem/CGameEntitySystem.h"
#include "../../../templeware/interfaces/interfaces.h"
#include "../../../templeware/hooks/hooks.h"
#include "../../../templeware/config/config.h"
#include "../../../templeware/features/aim/aim.h"
#include <Windows.h>
#include <cmath>
// Симуляция нажатия ЛКМ
void SimulateLMBClick() {
INPUT input = { 0 };
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &input, sizeof(INPUT));
ZeroMemory(&input, sizeof(INPUT));
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &input, sizeof(INPUT));
}
void SimulateLMBDown() {
INPUT input = { 0 };
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &input, sizeof(INPUT));
}
void SimulateLMBUp() {
INPUT input = { 0 };
input.type = INPUT_MOUSE;
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &input, sizeof(INPUT));
}
static DWORD lastShotTime = 0;
void Triggerbot() {
static DWORD lastShotTime = 0;
static bool lmbHeld = false;
static bool firstShot = true;
if (!Config::triggerbot)
return;
if (!Config::always_on_triggerbot && Config::triggerbot_key && !(GetAsyncKeyState(Config::triggerbot_key) & 0x8000))
return;
if (GetAsyncKeyState(VK_LBUTTON) & 0x8000) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
C_CSPlayerPawn* lp = H::oGetLocalPlayer(0);
if (!lp || lp->getHealth() <= 0) { firstShot = true; return; }
int crosshairIdx = *(int*)((uintptr_t)lp + 0x1458); // m_iIDEntIndex
//g_DebugString = "debug: " + std::to_string(crosshairIdx);
if (crosshairIdx <= 0) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
auto target = I::GameEntity->Instance->Get<C_CSPlayerPawn>(crosshairIdx);
if (!target) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
if (target->getHealth() <= 0) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
if (Config::team_check && target->getTeam() == lp->getTeam()) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
DWORD64 now = GetTickCount64();
if (!Config::triggerbot_hold_lmb) {
if (now - lastShotTime < static_cast<DWORD64>(Config::triggerbot_delay)) {
if (lmbHeld) {
SimulateLMBUp();
lmbHeld = false;
}
firstShot = true;
return;
}
}
if (Config::triggerbot_hold_lmb) {
if (firstShot) {
SimulateLMBClick();
firstShot = false;
lastShotTime = now;
return;
} else if (!lmbHeld) {
SimulateLMBDown();
lmbHeld = true;
}
lastShotTime = now;
return;
}
SimulateLMBClick();
lastShotTime = now;
firstShot = true;
}

View File

@ -0,0 +1,3 @@
#pragma once
void Triggerbot();

View File

@ -10,6 +10,7 @@
#include "../players/hook/playerHook.h" #include "../players/hook/playerHook.h"
#include "../features/visuals/visuals.h" #include "../features/visuals/visuals.h"
#include "../features/chams/chams.h" #include "../features/chams/chams.h"
#include "../features/triggerbot/triggerbot.h"
#include "../../cs2/datatypes/cutlbuffer/cutlbuffer.h" #include "../../cs2/datatypes/cutlbuffer/cutlbuffer.h"
#include "../../cs2/datatypes/keyvalues/keyvalues.h" #include "../../cs2/datatypes/keyvalues/keyvalues.h"
@ -28,6 +29,7 @@ void __fastcall H::hkFrameStageNotify(void* a1, int stage)
Esp::cache(); Esp::cache();
Aimbot(); Aimbot();
Triggerbot(); // <--- вызов триггербота
} }
} }

View File

@ -16,7 +16,6 @@ Keybinds::Keybinds() {
void Keybinds::pollInputs() { void Keybinds::pollInputs() {
for (Keybind& k : keybinds) { for (Keybind& k : keybinds) {
if (k.key != 0) { if (k.key != 0) {
// Если кнопка удерживается
if (GetAsyncKeyState(k.key) & 0x8000) { if (GetAsyncKeyState(k.key) & 0x8000) {
k.var = true; k.var = true;
} else { } else {
@ -95,5 +94,65 @@ void Keybinds::menuButton(bool& var) {
} }
} }
void Keybinds::menuButton(int& key) {
char keyName[32] = "None";
if (key != 0) {
switch (key) {
case VK_INSERT: strcpy_s(keyName, "INSERT"); break;
case VK_DELETE: strcpy_s(keyName, "DELETE"); break;
case VK_HOME: strcpy_s(keyName, "HOME"); break;
case VK_END: strcpy_s(keyName, "END"); break;
case VK_PRIOR: strcpy_s(keyName, "PAGE UP"); break;
case VK_NEXT: strcpy_s(keyName, "PAGE DOWN"); break;
case VK_LBUTTON: strcpy_s(keyName, "MOUSE1"); break;
case VK_RBUTTON: strcpy_s(keyName, "MOUSE2"); break;
case VK_MBUTTON: strcpy_s(keyName, "MOUSE3"); break;
case VK_XBUTTON1: strcpy_s(keyName, "MOUSE4"); break;
case VK_XBUTTON2: strcpy_s(keyName, "MOUSE5"); break;
default:
if (key >= 'A' && key <= 'Z') {
sprintf_s(keyName, "%c", key);
}
else if (key >= '0' && key <= '9') {
sprintf_s(keyName, "%c", key);
}
else {
sprintf_s(keyName, "0x%X", key);
}
break;
}
}
static bool isListening = false;
static bool skipFrame = false;
if (!isListening) {
ImGui::Text("[%s]", keyName);
ImGui::SameLine();
if (ImGui::Button("Change##BindInt")) {
isListening = true;
skipFrame = true;
}
} else {
ImGui::Text("Press any key...");
ImGui::SameLine();
if (ImGui::Button("Cancel") || (GetAsyncKeyState(VK_ESCAPE) & 0x8000)) {
isListening = false;
return;
}
if (!skipFrame) {
if (GetAsyncKeyState(VK_XBUTTON1) & 0x8000) { key = VK_XBUTTON1; isListening = false; return; }
if (GetAsyncKeyState(VK_XBUTTON2) & 0x8000) { key = VK_XBUTTON2; isListening = false; return; }
for (int keyCode = 7; keyCode < 256; ++keyCode) {
if (GetAsyncKeyState(keyCode) & 0x8000) {
key = keyCode;
isListening = false;
return;
}
}
} else {
skipFrame = false;
}
}
}
Keybinds keybind; Keybinds keybind;

View File

@ -17,6 +17,7 @@ public:
void pollInputs(); void pollInputs();
void menuButton(bool& var); void menuButton(bool& var);
void menuButton(int& key);
private: private:
std::vector<Keybind> keybinds; std::vector<Keybind> keybinds;
}; };

View File

@ -9,6 +9,8 @@
#include "../utils/logging/log.h" #include "../utils/logging/log.h"
bool g_ShowMenu = true;
void ApplyImGuiTheme() { void ApplyImGuiTheme() {
ImGui::StyleColorsDark(); ImGui::StyleColorsDark();
@ -89,18 +91,30 @@ void Menu::init(HWND& window, ID3D11Device* pDevice, ID3D11DeviceContext* pConte
ApplyImGuiTheme(); ApplyImGuiTheme();
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\arial.ttf", 16.0f); // --- Поддержка кириллицы ---
ImFontConfig font_cfg;
font_cfg.OversampleH = 2;
font_cfg.OversampleV = 2;
font_cfg.PixelSnapH = true;
static const ImWchar ranges[] = {
0x0020, 0x00FF, // Basic Latin + Latin Supplement
0x0400, 0x052F, // Кириллица
0
};
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\arial.ttf", 16.0f, &font_cfg, ranges);
// --- конец кириллицы ---
std::cout << "initialized menu\n"; std::cout << "initialized menu\n";
} }
void Menu::render() { void Menu::render() {
keybind.pollInputs(); keybind.pollInputs();
g_ShowMenu = showMenu;
if (showMenu) { if (showMenu) {
ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse |
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoTitleBar; ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoTitleBar;
ImGui::SetNextWindowSize(ImVec2(600, 400), ImGuiCond_Once); ImGui::SetNextWindowSize(ImVec2(900, 600), ImGuiCond_Once);
ImGui::SetNextWindowPos(ImVec2(50, 50), ImGuiCond_Once); ImGui::SetNextWindowPos(ImVec2(50, 50), ImGuiCond_Once);
ImGui::Begin("TempleWare | Internal", nullptr, window_flags); ImGui::Begin("TempleWare | Internal", nullptr, window_flags);
@ -139,14 +153,21 @@ void Menu::render() {
ImGui::Separator(); ImGui::Separator();
ImGui::Checkbox("Enable##AimBot", &Config::aimbot); ImGui::Checkbox("Enable##AimBot", &Config::aimbot);
ImGui::SameLine(); // Селектор кости для аимбота
const char* boneNames[] = { "Head", "Neck", "Body", "Nearest" };
ImGui::Combo("Aimbot Bone", &Config::aimbot_bone, boneNames, IM_ARRAYSIZE(boneNames));
ImGui::Text("Key:"); ImGui::Text("Key:");
ImGui::SameLine(); ImGui::SameLine();
keybind.menuButton(Config::aimbot); keybind.menuButton(Config::aimbot_key);
ImGui::Checkbox("Team Check", &Config::team_check); ImGui::Checkbox("Team Check", &Config::team_check);
ImGui::SliderFloat("FOV", &Config::aimbot_fov, 0.f, 90.f); ImGui::Checkbox("Aimbot on LMB", &Config::aimbot_on_lmb);
ImGui::SliderFloat("Smooth", &Config::aimbot_smooth, 0.f, 10.f, "%.2f"); ImGui::SliderFloat("Smooth", &Config::aimbot_smooth, 0.f, 10.f, "%.2f");
ImGui::Checkbox("Dynamic Smooth", &Config::aimbot_dynamic_smooth);
if (Config::aimbot_dynamic_smooth) {
ImGui::SliderFloat("Dynamic Smooth Factor", &Config::aimbot_dynamic_smooth_factor, 0.1f, 25.0f, "%.2f");
}
ImGui::Checkbox("Draw FOV Circle", &Config::fov_circle); ImGui::Checkbox("Draw FOV Circle", &Config::fov_circle);
if (Config::fov_circle) { if (Config::fov_circle) {
ImGui::ColorEdit4("Circle Color##FovColor", (float*)&Config::fovCircleColor); ImGui::ColorEdit4("Circle Color##FovColor", (float*)&Config::fovCircleColor);
@ -158,8 +179,14 @@ void Menu::render() {
ImGui::BeginChild("AimRight", ImVec2(0, 0), true); ImGui::BeginChild("AimRight", ImVec2(0, 0), true);
ImGui::Text("TriggerBot"); ImGui::Text("TriggerBot");
ImGui::Separator(); ImGui::Separator();
ImGui::Text("No additional settings"); ImGui::Checkbox("Enable##TriggerBot", &Config::triggerbot);
ImGui::Checkbox("Shooter After Aim", &Config::shooterAfterAim);
ImGui::Checkbox("TriggerBot Hold LMB", &Config::triggerbot_hold_lmb);
ImGui::Checkbox("Always On##TriggerBot", &Config::always_on_triggerbot);
ImGui::Text("Key:");
ImGui::SameLine();
keybind.menuButton(Config::triggerbot_key);
ImGui::SliderFloat("Delay (ms)", &Config::triggerbot_delay, 0.0f, 500.0f, "%.0f");
ImGui::EndChild(); ImGui::EndChild();
} }
break; break;

View File

@ -18,3 +18,5 @@ private:
bool showMenu; bool showMenu;
int activeTab; int activeTab;
}; };
extern bool g_ShowMenu;

View File

@ -45,4 +45,5 @@ void TempleWare::init(HWND& window, ID3D11Device* pDevice, ID3D11DeviceContext*
internal_config::ConfigManager::Load("1"); internal_config::ConfigManager::Load("1");
printWithPrefix("Loaded config: 1.json"); printWithPrefix("Loaded config: 1.json");
// --- конец автозагрузки --- // --- конец автозагрузки ---
} }

76
aim.cpp Normal file
View File

@ -0,0 +1,76 @@
#include "cusercmd.h"
#define MULTIPLAYER_BACKUP 150
#define _CS_INTERNAL_CONCATENATE(LEFT, RIGHT) LEFT##RIGHT
#define CS_CONCATENATE(LEFT, RIGHT) _CS_INTERNAL_CONCATENATE(LEFT, RIGHT)
#define MEM_PAD(SIZE) \
private: \
char CS_CONCATENATE(pad_0, __COUNTER__)[SIZE]; \
public:
class CTinyMoveStepData
{
public:
float flWhen; //0x0000
MEM_PAD(0x4); //0x0004
std::uint64_t nButton; //0x0008
bool bPressed; //0x0010
MEM_PAD(0x7); //0x0011
}; //Size: 0x0018
class CMoveStepButtons
{
public:
std::uint64_t nKeyboardPressed; //0x0000
std::uint64_t nMouseWheelheelPressed; //0x0008
std::uint64_t nUnPressed; //0x0010
std::uint64_t nKeyboardCopy; //0x0018
}; //Size: 0x0020
// @credits: www.unknowncheats.me/forum/members/2943409.html
class CExtendedMoveData : public CMoveStepButtons
{
public:
float flForwardMove; //0x0020
float flSideMove; //0x0024
float flUpMove; //0x0028
std::int32_t nMouseDeltaX; //0x002C
std::int32_t nMouseDeltaY; //0x0030
std::int32_t nAdditionalStepMovesCount; //0x0034
CTinyMoveStepData tinyMoveStepData[12]; //0x0038
Vector vecViewAngle; //0x0158
std::int32_t nTargetHandle; //0x0164
}; //Size:0x0168
class CCSGOInput
{
public:
MEM_PAD(0x250);
CUserCmd arrCommands[MULTIPLAYER_BACKUP];
MEM_PAD(0x99)
bool bInThirdPerson;
MEM_PAD(0x6);
QAngle_t angThirdPersonAngles;
MEM_PAD(0xE);
std::int32_t nSequenceNumber;
double dbSomeTimer;
CExtendedMoveData currentMoveData;
std::int32_t nWeaponSwitchTick;
MEM_PAD(0x1C4);
CExtendedMoveData* pExtendedMoveData;
MEM_PAD(0x48);
int32_t nAttackStartHistoryIndex1;
int32_t nAttackStartHistoryIndex2;
int32_t nAttackStartHistoryIndex3;
CUserCmd* GetUserCmd() { return &arrCommands[nSequenceNumber % MULTIPLAYER_BACKUP]; }
QAngle_t* GetViewAngles() {
return reinterpret_cast<QAngle_t*(__fastcall*)(CCSGOInput*, int32_t)>(memory::m_CSGOInput_GetViewAngles)(this, 0);
}
bool SetViewAngles(QAngle_t& vecAngles) {
return reinterpret_cast<bool(__fastcall*)(CCSGOInput*, int32_t, QAngle_t&)>(memory::m_CSGOInput_SetViewAngles)(this, 0, vecAngles);
}
};

View File

@ -1,5 +1,5 @@
10:07:35 [INFO] found 16 buttons 08:48:07 [INFO] found 16 buttons
10:07:36 [INFO] found 131 interfaces across 33 modules 08:48:07 [INFO] found 131 interfaces across 33 modules
10:07:36 [INFO] found 33 offsets across 5 modules 08:48:08 [INFO] found 33 offsets across 5 modules
10:07:36 [INFO] found 2441 classes and 368 enums across 17 modules 08:48:08 [INFO] found 2441 classes and 368 enums across 17 modules
10:07:36 [INFO] analysis completed in 1.27s 08:48:08 [INFO] analysis completed in 1.24s

@ -0,0 +1 @@
Subproject commit 2a5ed894e768b8a66a8c7ddd2ff54bcccf07067b

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: animationsystem.dll // Module: animationsystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper { namespace CS2Dumper {
// Module: client.dll // Module: client.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, unused)] #![allow(non_upper_case_globals, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: client.dll // Module: client.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: engine2.dll // Module: engine2.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: host.dll // Module: host.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,4 +1,4 @@
{ {
"build_number": 14088, "build_number": 14088,
"timestamp": "2025-07-17T10:07:36.863612600+00:00" "timestamp": "2025-07-18T08:48:08.327988700+00:00"
} }

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Interfaces { namespace CS2Dumper.Interfaces {
// Module: animationsystem.dll // Module: animationsystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, unused)] #![allow(non_upper_case_globals, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: materialsystem2.dll // Module: materialsystem2.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: networksystem.dll // Module: networksystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Offsets { namespace CS2Dumper.Offsets {
// Module: client.dll // Module: client.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, unused)] #![allow(non_upper_case_globals, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: panorama.dll // Module: panorama.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: particles.dll // Module: particles.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: pulse_system.dll // Module: pulse_system.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: rendersystemdx11.dll // Module: rendersystemdx11.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: resourcesystem.dll // Module: resourcesystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: scenesystem.dll // Module: scenesystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: schemasystem.dll // Module: schemasystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: server.dll // Module: server.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: soundsystem.dll // Module: soundsystem.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: vphysics2.dll // Module: vphysics2.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
namespace CS2Dumper.Schemas { namespace CS2Dumper.Schemas {
// Module: worldrenderer.dll // Module: worldrenderer.dll

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#pragma once #pragma once

View File

@ -1,5 +1,5 @@
// Generated using https://github.com/a2x/cs2-dumper // Generated using https://github.com/a2x/cs2-dumper
// 2025-07-17 10:07:36.863612600 UTC // 2025-07-18 08:48:08.327988700 UTC
#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)] #![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]

Binary file not shown.

Binary file not shown.