├── SpecialForce2 ├── SpecialForce2.vcxproj.filters ├── SpecialForce2.hpp ├── SF2_SDK │ ├── SDK_HEADERS │ │ ├── WinDrv_functions.h │ │ ├── WinDrv_structs.h │ │ ├── XAudio2_functions.h │ │ ├── XAudio2_structs.h │ │ ├── WinDrv_f_structs.h │ │ ├── XAudio2_f_structs.h │ │ ├── SFGameContent_structs.h │ │ ├── OnlineSubsystemPC_structs.h │ │ ├── XAudio2_classes.h │ │ ├── WinDrv_classes.h │ │ ├── GFxUI_structs.h │ │ ├── IpDrv_structs.h │ │ ├── SFGameContent_f_structs.h │ │ ├── OnlineSubsystemPC_classes.h │ │ ├── GameFramework_structs.h │ │ └── Core_structs.h │ └── SDK.h ├── SpecialForce2.vcxproj ├── SpecialForce2.cpp └── MenuDefines.hpp ├── SpecialForce2.sln ├── .gitattributes ├── README.md └── .gitignore /SpecialForce2/SpecialForce2.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SpecialForce2/SpecialForce2.hpp: -------------------------------------------------------------------------------- 1 | #ifndef _SPECIALFORCE2_HPP 2 | #define _SPECIALFORCE2_HPP 3 | 4 | #define _CRT_NON_CONFORMING_SWPRINTFS 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #pragma comment(lib, "Userenv.lib") 30 | 31 | bool Enemy = false; 32 | 33 | #include "SF2_SDK/SDK.h" 34 | 35 | #include "PostRender.hpp" 36 | 37 | #endif -------------------------------------------------------------------------------- /SpecialForce2.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpecialForce2", "SpecialForce2\SpecialForce2.vcxproj", "{488121E5-4616-4560-91F9-27084FE429D9}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Release|Win32 = Release|Win32 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {488121E5-4616-4560-91F9-27084FE429D9}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {488121E5-4616-4560-91F9-27084FE429D9}.Debug|Win32.Build.0 = Debug|Win32 16 | {488121E5-4616-4560-91F9-27084FE429D9}.Release|Win32.ActiveCfg = Release|Win32 17 | {488121E5-4616-4560-91F9-27084FE429D9}.Release|Win32.Build.0 = Release|Win32 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/WinDrv_functions.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: WinDrv_functions.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Functions 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/WinDrv_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: WinDrv_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/XAudio2_functions.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: XAudio2_functions.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Functions 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/XAudio2_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: XAudio2_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/WinDrv_f_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: WinDrv_f_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Function Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/XAudio2_f_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: XAudio2_f_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Function Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/SFGameContent_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: SFGameContent_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | #ifdef _MSC_VER 26 | #pragma pack ( pop ) 27 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/OnlineSubsystemPC_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: OnlineSubsystemPC_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // ScriptStruct OnlineSubsystemPC.Packet.Data 25 | // 0x0804 26 | struct FData 27 | { 28 | unsigned char data_size[ 0x2 ]; // 0x0000 (0x0002) [0x0000000000002000] ( CPF_Transient ) 29 | unsigned char Command[ 0x2 ]; // 0x0002 (0x0002) [0x0000000000002000] ( CPF_Transient ) 30 | unsigned char Buffer[ 0x800 ]; // 0x0004 (0x0800) [0x0000000000002000] ( CPF_Transient ) 31 | }; 32 | 33 | 34 | #ifdef _MSC_VER 35 | #pragma pack ( pop ) 36 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/XAudio2_classes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: XAudio2_classes.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Constants 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | /* 26 | # ========================================================================================= # 27 | # Enums 28 | # ========================================================================================= # 29 | */ 30 | 31 | 32 | /* 33 | # ========================================================================================= # 34 | # Classes 35 | # ========================================================================================= # 36 | */ 37 | 38 | // Class XAudio2.XAudio2Device 39 | // 0x009C (0x0340 - 0x02A4) 40 | class UXAudio2Device : public UAudioDevice 41 | { 42 | public: 43 | unsigned char UnknownData00[ 0x9C ]; // 0x02A4 (0x009C) MISSED OFFSET 44 | 45 | private: 46 | static UClass* pClassPointer; 47 | 48 | public: 49 | static UClass* StaticClass() 50 | { 51 | if ( ! pClassPointer ) 52 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2897 ]; 53 | 54 | return pClassPointer; 55 | }; 56 | 57 | }; 58 | 59 | UClass* UXAudio2Device::pClassPointer = NULL; 60 | 61 | 62 | #ifdef _MSC_VER 63 | #pragma pack ( pop ) 64 | #endif -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # S.K.I.L.L. - Special Force 2 Hacks 2 | These hack have been coded by me (dano20zombie). 3 | 4 | Released after 2 years of (Private/VIP) use. 5 | I'am releasing it now because I gave my source code to some turks that now are using it on their website. 6 | 7 | Game Informations 8 | ----------------- 9 | * Publisher: Gameforge 10 | * Game Engine: Unreal Engine 3 11 | * Anti-Cheat: XIGNCODE 3 12 | * Cheat Coder: dano20zombie (me) 13 | 14 | Unique Features 15 | --------------- 16 | * Anti Teamviewer (Does your clan control you? This feature will hide your hacks until TeamViewer remains open.) 17 | 18 | # Features 19 | 20 | Aimbot 21 | ------ 22 | * Enable Aim 23 | * Aim Key [RMOUSE, LMOUSE, SHIFT, L ALT, ALWAYS] 24 | * Aim By [DISTANCE, FOV, HP] 25 | * FOV Angle [1...45] 26 | * HP Limit [0...99] 27 | * Aim Position [RAND, HEAD, CHEST, HAND] 28 | * Bone Refresh Time [0...100ms] 29 | * Auto Fire 30 | * Smooth Aim [0...5] 31 | * Silent Aim 32 | * Smart Accuracy 33 | * Hard Lock 34 | 35 | ESP 3D 36 | ------ 37 | * Enable ESP [ENEMY, TEAM, BOTH] 38 | * Name ESP 39 | * Distance ESP 40 | * Health ESP 41 | * Bone ESP 42 | * Head Circle ESP 43 | * Bounding Box [OFF, 3D, 2D] 44 | * Laser ESP 45 | * Alien & Zombie ESP 46 | * Snap Lines 47 | * Grenade ESP 48 | * I'm Dead ESP 49 | * Show Player Stats 50 | * Enemy Visible [RED, ORANGE, YELLOW] 51 | * Enemy Invisible [RED, ORANGE, YELLOW] 52 | * Team Visible [BLUE, GREEN, YELLOW] 53 | * Team Invisible [BLUE, GREEN, YELLOW] 54 | 55 | ESP 2D 56 | ------ 57 | * Enable Radar [OFF, ON] 58 | * Enemy Color [RED, ORANGE, YELLOW] 59 | * Team Color [BLUE, GREEN, YELLOW] 60 | * Border Color [BLACK, WHITE, RED, BLUE] 61 | * Quadrant Color [BLACK, GREY, WHITE, RED, BLUE] 62 | * Background Color [GREY, WHITE, RED, BLUE, GREEN] 63 | * Background Opacity [0...255] 64 | * Radar Scale [25...200] 65 | * Radar Size [50...400] 66 | * Move Radar 67 | 68 | Player 69 | ------ 70 | * CrossHair [OFF, ON] 71 | * CrossHair Size [5...100] 72 | * Unl.Ammo Mode [OFF, ON] 73 | * Always Throw Weapon on Death 74 | * Full Weapon Auto 75 | * Range Hack 76 | * Burst Fire [OFF, ON] 77 | * No Recoil 78 | * No Spread 79 | * Triggerbot [OFF, ON] 80 | * Change Name [OFF, ON] 81 | * No Flash 82 | * No Smoke 83 | * No Respawn Cost 84 | * Auto Respawn [OFF, M, < X HP] 85 | * Respawn on HP [10...99] 86 | * No Bullets Gravity 87 | * Auto Switch (QQ) 88 | 89 | Special 90 | ------- 91 | * Enable OPK [OFF, ON] 92 | * OPK Target [ENEMY, TEAM, BOTH] 93 | * OPK Key [EVER, L] 94 | * OPK Damage Type [C4, GRENADE, TURRET, NULL] 95 | * OPK Bone [HEAD, CHEST, RANDOM] 96 | * Shoot Through Walls 97 | * Bullets per Shot [1...10] 98 | * Add Hero Mode HP 99 | * Add Hero Mode AP 100 | * Add Hero Mode DP 101 | * Add Hero Mode EXP 102 | * Hero Points [1...100] 103 | * Hero Points Key [K, P] 104 | * OPK Hero Monsters Only 105 | * Virtual Jump Value [100...300] 106 | * Virtual Jump [OFF, ON] 107 | 108 | Settings 109 | -------- 110 | * Show FPS 111 | * Show Watermark 112 | * MAC Spoof (*Deleted*) 113 | * Custom Name #1: 114 | * Custom Name #2: 115 | * Restore Default Settings: 116 | * Save Settings 117 | * Load Settings 118 | -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/WinDrv_classes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: WinDrv_classes.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Constants 21 | # ========================================================================================= # 22 | */ 23 | 24 | 25 | /* 26 | # ========================================================================================= # 27 | # Enums 28 | # ========================================================================================= # 29 | */ 30 | 31 | 32 | /* 33 | # ========================================================================================= # 34 | # Classes 35 | # ========================================================================================= # 36 | */ 37 | 38 | // Class WinDrv.WindowsClient 39 | // 0x018C (0x01DC - 0x0050) 40 | class UWindowsClient : public UClient 41 | { 42 | public: 43 | unsigned char UnknownData00[ 0x14C ]; // 0x0050 (0x014C) MISSED OFFSET 44 | class UClass* AudioDeviceClass; // 0x019C (0x0004) [0x0000000000004000] ( CPF_Config ) 45 | unsigned char UnknownData01[ 0x2C ]; // 0x01A0 (0x002C) MISSED OFFSET 46 | int AllowJoystickInput; // 0x01CC (0x0004) [0x0000000000004000] ( CPF_Config ) 47 | unsigned char UnknownData02[ 0xC ]; // 0x01D0 (0x000C) MISSED OFFSET 48 | 49 | private: 50 | static UClass* pClassPointer; 51 | 52 | public: 53 | static UClass* StaticClass() 54 | { 55 | if ( ! pClassPointer ) 56 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2935 ]; 57 | 58 | return pClassPointer; 59 | }; 60 | 61 | }; 62 | 63 | UClass* UWindowsClient::pClassPointer = NULL; 64 | 65 | // Class WinDrv.XnaForceFeedbackManager 66 | // 0x0000 (0x0050 - 0x0050) 67 | class UXnaForceFeedbackManager : public UForceFeedbackManager 68 | { 69 | public: 70 | 71 | private: 72 | static UClass* pClassPointer; 73 | 74 | public: 75 | static UClass* StaticClass() 76 | { 77 | if ( ! pClassPointer ) 78 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2939 ]; 79 | 80 | return pClassPointer; 81 | }; 82 | 83 | }; 84 | 85 | UClass* UXnaForceFeedbackManager::pClassPointer = NULL; 86 | 87 | 88 | #ifdef _MSC_VER 89 | #pragma pack ( pop ) 90 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SpecialForce2.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {488121E5-4616-4560-91F9-27084FE429D9} 15 | Win32Proj 16 | SpecialForce2 17 | 10.0.17134.0 18 | 19 | 20 | 21 | DynamicLibrary 22 | true 23 | v141 24 | MultiByte 25 | 26 | 27 | DynamicLibrary 28 | false 29 | v141 30 | true 31 | MultiByte 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | true 45 | Hack by dano20zombie 46 | 47 | 48 | false 49 | Hack by dano20zombie 50 | 51 | 52 | 53 | 54 | 55 | Level3 56 | Disabled 57 | WIN32;_DEBUG;_WINDOWS;_USRDLL;TRIBESASCEND_EXPORTS;%(PreprocessorDefinitions) 58 | true 59 | /bigobj %(AdditionalOptions) 60 | 61 | 62 | Windows 63 | true 64 | 65 | 66 | 67 | 68 | Level3 69 | 70 | 71 | MaxSpeed 72 | true 73 | true 74 | WIN32;NDEBUG;_WINDOWS;_USRDLL;CONSOLEAPPLICATION1_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) 75 | true 76 | MultiThreaded 77 | ProgramDatabase 78 | true 79 | 80 | 81 | 82 | 83 | Windows 84 | false 85 | true 86 | true 87 | detours.lib;%(AdditionalDependencies) 88 | false 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | bld/ 21 | [Bb]in/ 22 | [Oo]bj/ 23 | [Ll]og/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | project.fragment.lock.json 46 | artifacts/ 47 | 48 | *_i.c 49 | *_p.c 50 | *_i.h 51 | *.ilk 52 | *.meta 53 | *.obj 54 | *.pch 55 | *.pdb 56 | *.pgc 57 | *.pgd 58 | *.rsp 59 | *.sbr 60 | *.tlb 61 | *.tli 62 | *.tlh 63 | *.tmp 64 | *.tmp_proj 65 | *.log 66 | *.vspscc 67 | *.vssscc 68 | .builds 69 | *.pidb 70 | *.svclog 71 | *.scc 72 | 73 | # Chutzpah Test files 74 | _Chutzpah* 75 | 76 | # Visual C++ cache files 77 | ipch/ 78 | *.aps 79 | *.ncb 80 | *.opendb 81 | *.opensdf 82 | *.sdf 83 | *.cachefile 84 | *.VC.db 85 | *.VC.VC.opendb 86 | 87 | # Visual Studio profiler 88 | *.psess 89 | *.vsp 90 | *.vspx 91 | *.sap 92 | 93 | # TFS 2012 Local Workspace 94 | $tf/ 95 | 96 | # Guidance Automation Toolkit 97 | *.gpState 98 | 99 | # ReSharper is a .NET coding add-in 100 | _ReSharper*/ 101 | *.[Rr]e[Ss]harper 102 | *.DotSettings.user 103 | 104 | # JustCode is a .NET coding add-in 105 | .JustCode 106 | 107 | # TeamCity is a build add-in 108 | _TeamCity* 109 | 110 | # DotCover is a Code Coverage Tool 111 | *.dotCover 112 | 113 | # NCrunch 114 | _NCrunch_* 115 | .*crunch*.local.xml 116 | nCrunchTemp_* 117 | 118 | # MightyMoose 119 | *.mm.* 120 | AutoTest.Net/ 121 | 122 | # Web workbench (sass) 123 | .sass-cache/ 124 | 125 | # Installshield output folder 126 | [Ee]xpress/ 127 | 128 | # DocProject is a documentation generator add-in 129 | DocProject/buildhelp/ 130 | DocProject/Help/*.HxT 131 | DocProject/Help/*.HxC 132 | DocProject/Help/*.hhc 133 | DocProject/Help/*.hhk 134 | DocProject/Help/*.hhp 135 | DocProject/Help/Html2 136 | DocProject/Help/html 137 | 138 | # Click-Once directory 139 | publish/ 140 | 141 | # Publish Web Output 142 | *.[Pp]ublish.xml 143 | *.azurePubxml 144 | # TODO: Comment the next line if you want to checkin your web deploy settings 145 | # but database connection strings (with potential passwords) will be unencrypted 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 150 | # checkin your Azure Web App publish settings, but sensitive information contained 151 | # in these scripts will be unencrypted 152 | PublishScripts/ 153 | 154 | # NuGet Packages 155 | *.nupkg 156 | # The packages folder can be ignored because of Package Restore 157 | **/packages/* 158 | # except build/, which is used as an MSBuild target. 159 | !**/packages/build/ 160 | # Uncomment if necessary however generally it will be regenerated when needed 161 | #!**/packages/repositories.config 162 | # NuGet v3's project.json files produces more ignoreable files 163 | *.nuget.props 164 | *.nuget.targets 165 | 166 | # Microsoft Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Microsoft Azure Emulator 171 | ecf/ 172 | rcf/ 173 | 174 | # Windows Store app package directories and files 175 | AppPackages/ 176 | BundleArtifacts/ 177 | Package.StoreAssociation.xml 178 | _pkginfo.txt 179 | 180 | # Visual Studio cache files 181 | # files ending in .cache can be ignored 182 | *.[Cc]ache 183 | # but keep track of directories ending in .cache 184 | !*.[Cc]ache/ 185 | 186 | # Others 187 | ClientBin/ 188 | ~$* 189 | *~ 190 | *.dbmdl 191 | *.dbproj.schemaview 192 | *.jfm 193 | *.pfx 194 | *.publishsettings 195 | node_modules/ 196 | orleans.codegen.cs 197 | 198 | # Since there are multiple workflows, uncomment next line to ignore bower_components 199 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 200 | #bower_components/ 201 | 202 | # RIA/Silverlight projects 203 | Generated_Code/ 204 | 205 | # Backup & report files from converting an old project file 206 | # to a newer Visual Studio version. Backup files are not needed, 207 | # because we have git ;-) 208 | _UpgradeReport_Files/ 209 | Backup*/ 210 | UpgradeLog*.XML 211 | UpgradeLog*.htm 212 | 213 | # SQL Server files 214 | *.mdf 215 | *.ldf 216 | 217 | # Business Intelligence projects 218 | *.rdl.data 219 | *.bim.layout 220 | *.bim_*.settings 221 | 222 | # Microsoft Fakes 223 | FakesAssemblies/ 224 | 225 | # GhostDoc plugin setting file 226 | *.GhostDoc.xml 227 | 228 | # Node.js Tools for Visual Studio 229 | .ntvs_analysis.dat 230 | 231 | # Visual Studio 6 build log 232 | *.plg 233 | 234 | # Visual Studio 6 workspace options file 235 | *.opt 236 | 237 | # Visual Studio LightSwitch build output 238 | **/*.HTMLClient/GeneratedArtifacts 239 | **/*.DesktopClient/GeneratedArtifacts 240 | **/*.DesktopClient/ModelManifest.xml 241 | **/*.Server/GeneratedArtifacts 242 | **/*.Server/ModelManifest.xml 243 | _Pvt_Extensions 244 | 245 | # Paket dependency manager 246 | .paket/paket.exe 247 | paket-files/ 248 | 249 | # FAKE - F# Make 250 | .fake/ 251 | 252 | # JetBrains Rider 253 | .idea/ 254 | *.sln.iml 255 | 256 | # CodeRush 257 | .cr/ 258 | 259 | # Python Tools for Visual Studio (PTVS) 260 | __pycache__/ 261 | *.pyc -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: SDK.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | /* 15 | # ========================================================================================= # 16 | # Fix 17 | # ========================================================================================= # 18 | */ 19 | 20 | #include 21 | 22 | /* 23 | # ========================================================================================= # 24 | # Defines 25 | # ========================================================================================= # 26 | */ 27 | 28 | #define GObjects 0x01797ACC 29 | #define GNames 0x017856D0 30 | #define ProcessEvent_Index 69 31 | 32 | typedef void(__thiscall *tProcessEvent)(class UObject *, class UFunction *, void *, void *); 33 | tProcessEvent oProcessEvent = NULL; 34 | 35 | /* 36 | # ========================================================================================= # 37 | # Structs 38 | # ========================================================================================= # 39 | */ 40 | 41 | template< class T > struct TArray 42 | { 43 | public: 44 | T* Data; 45 | int Count; 46 | int Max; 47 | 48 | public: 49 | TArray() 50 | { 51 | Data = NULL; 52 | Count = Max = 0; 53 | }; 54 | 55 | public: 56 | int Num() 57 | { 58 | return this->Count; 59 | }; 60 | 61 | T& operator() ( int i ) 62 | { 63 | return this->Data[ i ]; 64 | }; 65 | 66 | const T& operator() ( int i ) const 67 | { 68 | return this->Data[ i ]; 69 | }; 70 | 71 | void Add ( T InputData ) 72 | { 73 | Data = (T*) realloc ( Data, sizeof ( T ) * ( Count + 1 ) ); 74 | Data[ Count++ ] = InputData; 75 | Max = Count; 76 | }; 77 | 78 | void Clear() 79 | { 80 | free ( Data ); 81 | Count = Max = 0; 82 | }; 83 | }; 84 | 85 | struct FNameEntry 86 | { 87 | unsigned char UnknownData00[ 0x10 ]; 88 | char Name[ 0x10 ]; 89 | }; 90 | 91 | struct FName 92 | { 93 | int Index; 94 | unsigned char unknownData00[ 0x4 ]; 95 | 96 | FName() : Index ( 0 ) {}; 97 | 98 | FName ( int i ) : Index ( i ) {}; 99 | 100 | ~FName() {}; 101 | 102 | FName ( char* FindName ) 103 | { 104 | static TArray< int > NameCache; 105 | 106 | for ( int i = 0; i < NameCache.Count; ++i ) 107 | { 108 | if ( ! strcmp ( this->Names()->Data[ NameCache ( i ) ]->Name, FindName ) ) 109 | { 110 | Index = NameCache ( i ); 111 | return; 112 | } 113 | } 114 | 115 | for ( int i = 0; i < this->Names()->Count; ++i ) 116 | { 117 | if ( this->Names()->Data[ i ] ) 118 | { 119 | if ( ! strcmp ( this->Names()->Data[ i ]->Name, FindName ) ) 120 | { 121 | NameCache.Add ( i ); 122 | Index = i; 123 | } 124 | } 125 | } 126 | }; 127 | 128 | static TArray< FNameEntry* >* Names() 129 | { 130 | return (TArray< FNameEntry* >*) GNames; 131 | }; 132 | 133 | char* GetName() 134 | { 135 | return this->Names()->Data[ Index ]->Name; 136 | }; 137 | 138 | bool operator == ( const FName& A ) const 139 | { 140 | return ( Index == A.Index ); 141 | }; 142 | }; 143 | 144 | struct FString : public TArray< wchar_t > 145 | { 146 | FString() {}; 147 | 148 | FString ( wchar_t* Other ) 149 | { 150 | this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0; 151 | 152 | if ( this->Count ) 153 | this->Data = Other; 154 | }; 155 | 156 | ~FString() {}; 157 | 158 | FString operator = ( wchar_t* Other ) 159 | { 160 | if ( this->Data != Other ) 161 | { 162 | this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0; 163 | 164 | if ( this->Count ) 165 | this->Data = Other; 166 | } 167 | 168 | return *this; 169 | }; 170 | }; 171 | 172 | struct FScriptDelegate 173 | { 174 | unsigned char UnknownData00[ 0xC ]; 175 | }; 176 | 177 | /* 178 | # ========================================================================================= # 179 | # Includes 180 | # ========================================================================================= # 181 | */ 182 | 183 | #include "SDK_HEADERS\Core_structs.h" 184 | #include "SDK_HEADERS\Core_classes.h" 185 | #include "SDK_HEADERS\Core_f_structs.h" 186 | #include "SDK_HEADERS\Core_functions.h" 187 | #include "SDK_HEADERS\Engine_structs.h" 188 | #include "SDK_HEADERS\Engine_classes.h" 189 | #include "SDK_HEADERS\Engine_f_structs.h" 190 | #include "SDK_HEADERS\Engine_functions.h" 191 | #include "SDK_HEADERS\GameFramework_structs.h" 192 | #include "SDK_HEADERS\GameFramework_classes.h" 193 | #include "SDK_HEADERS\GameFramework_f_structs.h" 194 | #include "SDK_HEADERS\GameFramework_functions.h" 195 | #include "SDK_HEADERS\IpDrv_structs.h" 196 | #include "SDK_HEADERS\IpDrv_classes.h" 197 | #include "SDK_HEADERS\IpDrv_f_structs.h" 198 | #include "SDK_HEADERS\IpDrv_functions.h" 199 | #include "SDK_HEADERS\XAudio2_structs.h" 200 | #include "SDK_HEADERS\XAudio2_classes.h" 201 | #include "SDK_HEADERS\XAudio2_f_structs.h" 202 | #include "SDK_HEADERS\XAudio2_functions.h" 203 | #include "SDK_HEADERS\GFxUI_structs.h" 204 | #include "SDK_HEADERS\GFxUI_classes.h" 205 | #include "SDK_HEADERS\GFxUI_f_structs.h" 206 | #include "SDK_HEADERS\GFxUI_functions.h" 207 | #include "SDK_HEADERS\WinDrv_structs.h" 208 | #include "SDK_HEADERS\WinDrv_classes.h" 209 | #include "SDK_HEADERS\WinDrv_f_structs.h" 210 | #include "SDK_HEADERS\WinDrv_functions.h" 211 | #include "SDK_HEADERS\OnlineSubsystemPC_structs.h" 212 | #include "SDK_HEADERS\OnlineSubsystemPC_classes.h" 213 | #include "SDK_HEADERS\OnlineSubsystemPC_f_structs.h" 214 | #include "SDK_HEADERS\OnlineSubsystemPC_functions.h" 215 | #include "SDK_HEADERS\SFGame_structs.h" 216 | #include "SDK_HEADERS\SFGame_classes.h" 217 | #include "SDK_HEADERS\SFGame_f_structs.h" 218 | #include "SDK_HEADERS\SFGame_functions.h" 219 | #include "SDK_HEADERS\SFGameContent_structs.h" 220 | #include "SDK_HEADERS\SFGameContent_classes.h" 221 | #include "SDK_HEADERS\SFGameContent_f_structs.h" 222 | #include "SDK_HEADERS\SFGameContent_functions.h" 223 | -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/GFxUI_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: GFxUI_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // ScriptStruct GFxUI.GFxMoviePlayer.SoundThemeBinding 25 | // 0x0018 26 | struct FSoundThemeBinding 27 | { 28 | struct FName ThemeName; // 0x0000 (0x0008) [0x0000000000000001] ( CPF_Edit ) 29 | class UUISoundTheme* Theme; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 30 | struct FString ThemeClassName; // 0x000C (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 31 | }; 32 | 33 | // ScriptStruct GFxUI.GFxMoviePlayer.ASValue 34 | // 0x001C 35 | struct FASValue 36 | { 37 | unsigned char Type; // 0x0000 (0x0001) [0x0000000000000001] ( CPF_Edit ) 38 | unsigned long B : 1; // 0x0004 (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 39 | float N; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 40 | int I; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 41 | struct FString S; // 0x0010 (0x000C) [0x0000000000500001] ( CPF_Edit | CPF_NeedCtorLink ) 42 | }; 43 | 44 | // ScriptStruct GFxUI.GFxMoviePlayer.GFxWidgetBinding 45 | // 0x0010 46 | struct FGFxWidgetBinding 47 | { 48 | struct FName WidgetName; // 0x0000 (0x0008) [0x0000000000000001] ( CPF_Edit ) 49 | class UClass* WidgetClass; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 50 | int WidgetIndex; // 0x000C (0x0004) [0x0000000000000000] 51 | }; 52 | 53 | // ScriptStruct GFxUI.GFxMoviePlayer.ExternalTexture 54 | // 0x0010 55 | struct FExternalTexture 56 | { 57 | struct FString Resource; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 58 | class UTexture* Texture; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 59 | }; 60 | 61 | // ScriptStruct GFxUI.GFxObject.ASDisplayInfo 62 | // 0x002C 63 | struct FASDisplayInfo 64 | { 65 | float X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 66 | float Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 67 | float Z; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 68 | float Rotation; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 69 | float XRotation; // 0x0010 (0x0004) [0x0000000000000001] ( CPF_Edit ) 70 | float YRotation; // 0x0014 (0x0004) [0x0000000000000001] ( CPF_Edit ) 71 | float XScale; // 0x0018 (0x0004) [0x0000000000000001] ( CPF_Edit ) 72 | float YScale; // 0x001C (0x0004) [0x0000000000000001] ( CPF_Edit ) 73 | float ZScale; // 0x0020 (0x0004) [0x0000000000000001] ( CPF_Edit ) 74 | float Alpha; // 0x0024 (0x0004) [0x0000000000000001] ( CPF_Edit ) 75 | unsigned long Visible : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 76 | unsigned long hasX : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000002] ( CPF_Edit ) 77 | unsigned long hasY : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000004] ( CPF_Edit ) 78 | unsigned long hasZ : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000008] ( CPF_Edit ) 79 | unsigned long hasRotation : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000010] ( CPF_Edit ) 80 | unsigned long hasXRotation : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000020] ( CPF_Edit ) 81 | unsigned long hasYRotation : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000040] ( CPF_Edit ) 82 | unsigned long hasXScale : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000080] ( CPF_Edit ) 83 | unsigned long hasYScale : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000100] ( CPF_Edit ) 84 | unsigned long hasZScale : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000200] ( CPF_Edit ) 85 | unsigned long hasAlpha : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000400] ( CPF_Edit ) 86 | unsigned long hasVisible : 1; // 0x0028 (0x0004) [0x0000000000000001] [0x00000800] ( CPF_Edit ) 87 | }; 88 | 89 | // ScriptStruct GFxUI.GFxObject.ASColorTransform 90 | // 0x0020 91 | struct FASColorTransform 92 | { 93 | struct FLinearColor Multiply; // 0x0000 (0x0010) [0x0000000000000001] ( CPF_Edit ) 94 | struct FLinearColor Add; // 0x0010 (0x0010) [0x0000000000000001] ( CPF_Edit ) 95 | }; 96 | 97 | // ScriptStruct GFxUI.GFxClikWidget.EventData 98 | // 0x0028 99 | struct FEventData 100 | { 101 | class UGFxObject* _this; // 0x0000 (0x0004) [0x0000000000000000] 102 | class UGFxObject* Target; // 0x0004 (0x0004) [0x0000000000000000] 103 | struct FString Type; // 0x0008 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 104 | class UGFxObject* Data; // 0x0014 (0x0004) [0x0000000000000000] 105 | int mouseIndex; // 0x0018 (0x0004) [0x0000000000000000] 106 | int Button; // 0x001C (0x0004) [0x0000000000000000] 107 | int Index; // 0x0020 (0x0004) [0x0000000000000000] 108 | int lastIndex; // 0x0024 (0x0004) [0x0000000000000000] 109 | }; 110 | 111 | // ScriptStruct GFxUI.GFxEngine.GCReference 112 | // 0x000C 113 | struct FGCReference 114 | { 115 | class UObject* m_object; // 0x0000 (0x0004) [0x0000000000000002] ( CPF_Const ) 116 | int m_count; // 0x0004 (0x0004) [0x0000000000000000] 117 | int m_statid; // 0x0008 (0x0004) [0x0000000000000000] 118 | }; 119 | 120 | 121 | #ifdef _MSC_VER 122 | #pragma pack ( pop ) 123 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/IpDrv_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: IpDrv_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // ScriptStruct IpDrv.InternetLink.IpAddr 25 | // 0x0008 26 | struct FIpAddr 27 | { 28 | int Addr; // 0x0000 (0x0004) [0x0000000000000000] 29 | int Port; // 0x0004 (0x0004) [0x0000000000000000] 30 | }; 31 | 32 | // ScriptStruct IpDrv.MeshBeacon.ConnectionBandwidthStats 33 | // 0x000C 34 | struct FConnectionBandwidthStats 35 | { 36 | int UpstreamRate; // 0x0000 (0x0004) [0x0000000000000000] 37 | int DownstreamRate; // 0x0004 (0x0004) [0x0000000000000000] 38 | int RoundtripLatency; // 0x0008 (0x0004) [0x0000000000000000] 39 | }; 40 | 41 | // ScriptStruct IpDrv.MeshBeacon.PlayerMember 42 | // 0x0010 43 | struct FPlayerMember 44 | { 45 | int TeamNum; // 0x0000 (0x0004) [0x0000000000000000] 46 | int Skill; // 0x0004 (0x0004) [0x0000000000000000] 47 | struct FUniqueNetId NetId; // 0x0008 (0x0008) [0x0000000000000000] 48 | }; 49 | 50 | // ScriptStruct IpDrv.MeshBeaconClient.ClientBandwidthTestData 51 | // 0x0014 52 | struct FClientBandwidthTestData 53 | { 54 | unsigned char TestType; // 0x0000 (0x0001) [0x0000000000000000] 55 | unsigned char CurrentState; // 0x0001 (0x0001) [0x0000000000000000] 56 | int NumBytesToSendTotal; // 0x0004 (0x0004) [0x0000000000000000] 57 | int NumBytesSentTotal; // 0x0008 (0x0004) [0x0000000000000000] 58 | int NumBytesSentLast; // 0x000C (0x0004) [0x0000000000000000] 59 | float ElapsedTestTime; // 0x0010 (0x0004) [0x0000000000000000] 60 | }; 61 | 62 | // ScriptStruct IpDrv.MeshBeaconClient.ClientConnectionRequest 63 | // 0x0024 64 | struct FClientConnectionRequest 65 | { 66 | struct FUniqueNetId PlayerNetId; // 0x0000 (0x0008) [0x0000000000000000] 67 | unsigned char NatType; // 0x0008 (0x0001) [0x0000000000000000] 68 | unsigned long bCanHostVs : 1; // 0x000C (0x0004) [0x0000000000000000] [0x00000001] 69 | float GoodHostRatio; // 0x0010 (0x0004) [0x0000000000000000] 70 | TArray< struct FConnectionBandwidthStats > BandwidthHistory; // 0x0014 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 71 | int MinutesSinceLastTest; // 0x0020 (0x0004) [0x0000000000000000] 72 | }; 73 | 74 | // ScriptStruct IpDrv.MeshBeaconHost.ClientConnectionBandwidthTestData 75 | // 0x0028 76 | struct FClientConnectionBandwidthTestData 77 | { 78 | unsigned char CurrentState; // 0x0000 (0x0001) [0x0000000000000000] 79 | unsigned char TestType; // 0x0001 (0x0001) [0x0000000000000000] 80 | int BytesTotalNeeded; // 0x0004 (0x0004) [0x0000000000000000] 81 | int BytesReceived; // 0x0008 (0x0004) [0x0000000000000000] 82 | struct FDouble RequestTestStartTime; // 0x000C (0x0008) [0x0000000000000000] 83 | struct FDouble TestStartTime; // 0x0014 (0x0008) [0x0000000000000000] 84 | struct FConnectionBandwidthStats BandwidthStats; // 0x001C (0x000C) [0x0000000000000000] 85 | }; 86 | 87 | // ScriptStruct IpDrv.MeshBeaconHost.ClientMeshBeaconConnection 88 | // 0x0058 89 | struct FClientMeshBeaconConnection 90 | { 91 | struct FUniqueNetId PlayerNetId; // 0x0000 (0x0008) [0x0000000000000000] 92 | float ElapsedHeartbeatTime; // 0x0008 (0x0004) [0x0000000000000000] 93 | struct FPointer Socket; // 0x000C (0x0004) [0x0000000000003000] ( CPF_Native | CPF_Transient ) 94 | unsigned long bConnectionAccepted : 1; // 0x0010 (0x0004) [0x0000000000000000] [0x00000001] 95 | struct FClientConnectionBandwidthTestData BandwidthTest; // 0x0014 (0x0028) [0x0000000000000000] 96 | unsigned char NatType; // 0x003C (0x0001) [0x0000000000000000] 97 | unsigned long bCanHostVs : 1; // 0x0040 (0x0004) [0x0000000000000000] [0x00000001] 98 | float GoodHostRatio; // 0x0044 (0x0004) [0x0000000000000000] 99 | TArray< struct FConnectionBandwidthStats > BandwidthHistory; // 0x0048 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 100 | int MinutesSinceLastTest; // 0x0054 (0x0004) [0x0000000000000000] 101 | }; 102 | 103 | // ScriptStruct IpDrv.OnlineEventsInterfaceMcp.EventUploadConfig 104 | // 0x0018 105 | struct FEventUploadConfig 106 | { 107 | unsigned char UploadType; // 0x0000 (0x0001) [0x0000000000000002] ( CPF_Const ) 108 | struct FString UploadUrl; // 0x0004 (0x000C) [0x0000000000400002] ( CPF_Const | CPF_NeedCtorLink ) 109 | float TimeOut; // 0x0010 (0x0004) [0x0000000000000002] ( CPF_Const ) 110 | unsigned long bUseCompression : 1; // 0x0014 (0x0004) [0x0000000000000002] [0x00000001] ( CPF_Const ) 111 | }; 112 | 113 | // ScriptStruct IpDrv.OnlineNewsInterfaceMcp.NewsCacheEntry 114 | // 0x0028 115 | struct FNewsCacheEntry 116 | { 117 | struct FString NewsUrl; // 0x0000 (0x000C) [0x0000000000400002] ( CPF_Const | CPF_NeedCtorLink ) 118 | unsigned char ReadState; // 0x000C (0x0001) [0x0000000000000000] 119 | unsigned char NewsType; // 0x000D (0x0001) [0x0000000000000002] ( CPF_Const ) 120 | struct FString NewsItem; // 0x0010 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 121 | float TimeOut; // 0x001C (0x0004) [0x0000000000000002] ( CPF_Const ) 122 | unsigned long bIsUnicode : 1; // 0x0020 (0x0004) [0x0000000000000002] [0x00000001] ( CPF_Const ) 123 | struct FPointer HttpDownloader; // 0x0024 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 124 | }; 125 | 126 | // ScriptStruct IpDrv.PartyBeacon.PlayerReservation 127 | // 0x0024 128 | struct FPlayerReservation 129 | { 130 | struct FUniqueNetId NetId; // 0x0000 (0x0008) [0x0000000000000000] 131 | int Skill; // 0x0008 (0x0004) [0x0000000000000000] 132 | int XpLevel; // 0x000C (0x0004) [0x0000000000000000] 133 | struct FDouble Mu; // 0x0010 (0x0008) [0x0000000000000000] 134 | struct FDouble Sigma; // 0x0018 (0x0008) [0x0000000000000000] 135 | float ElapsedSessionTime; // 0x0020 (0x0004) [0x0000000000000000] 136 | }; 137 | 138 | // ScriptStruct IpDrv.PartyBeacon.PartyReservation 139 | // 0x0018 140 | struct FPartyReservation 141 | { 142 | int TeamNum; // 0x0000 (0x0004) [0x0000000000000000] 143 | struct FUniqueNetId PartyLeader; // 0x0004 (0x0008) [0x0000000000000000] 144 | TArray< struct FPlayerReservation > PartyMembers; // 0x000C (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 145 | }; 146 | 147 | // ScriptStruct IpDrv.PartyBeaconHost.ClientBeaconConnection 148 | // 0x0010 149 | struct FClientBeaconConnection 150 | { 151 | struct FUniqueNetId PartyLeader; // 0x0000 (0x0008) [0x0000000000000000] 152 | float ElapsedHeartbeatTime; // 0x0008 (0x0004) [0x0000000000000000] 153 | struct FPointer Socket; // 0x000C (0x0004) [0x0000000000003000] ( CPF_Native | CPF_Transient ) 154 | }; 155 | 156 | 157 | #ifdef _MSC_VER 158 | #pragma pack ( pop ) 159 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SpecialForce2.cpp: -------------------------------------------------------------------------------- 1 | #include "SpecialForce2.hpp" 2 | 3 | UObject *pGlobalObject; 4 | void *pGlobalParms; 5 | void *pGlobalResult; 6 | 7 | char *szName; 8 | 9 | bool bSilentAimStarted = false; 10 | 11 | #define IS_FUNCTION(c, oo, o, n) (pFunction->Class->Name.Index == c && pFunction->Outer->Outer->Name.Index == oo && pFunction->Outer->Name.Index == o && pFunction->Name.Index == n) 12 | 13 | #define EXCEPTION_CONTINUABLE 0 14 | 15 | DWORD dwNullptrExceptionHandler = NULL; 16 | 17 | LONG WINAPI MyVectorExceptionFilter(PEXCEPTION_POINTERS pException) 18 | { 19 | if (pException->ExceptionRecord->ExceptionFlags == EXCEPTION_CONTINUABLE 20 | && pException->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) 21 | { 22 | MEMORY_BASIC_INFORMATION mbi = {}; 23 | if (VirtualQuery(pException->ExceptionRecord->ExceptionAddress, &mbi, sizeof(mbi)) 24 | && mbi.AllocationProtect == PAGE_EXECUTE_READWRITE) 25 | { 26 | pException->ContextRecord->Eip = dwNullptrExceptionHandler; 27 | return EXCEPTION_CONTINUE_EXECUTION; 28 | } 29 | } 30 | 31 | return EXCEPTION_CONTINUE_SEARCH; 32 | } 33 | 34 | void __fastcall hkProcessEvent(UObject *pObject, void *edx, UFunction *pFunction, void *pParms, void *pResult) 35 | { 36 | if (!dwNullptrExceptionHandler) 37 | { 38 | __asm push eax 39 | __asm mov eax, catchHere 40 | __asm mov dwNullptrExceptionHandler, eax 41 | __asm pop eax 42 | 43 | AddVectoredExceptionHandler(1, MyVectorExceptionFilter); 44 | } 45 | 46 | try 47 | { 48 | szName = pFunction->GetFullName(); 49 | 50 | /* 51 | std::cout 52 | << std::hex 53 | << "c = " << pFunction->Class->Name.Index << std::endl 54 | << "oo = " << pFunction->Outer->Outer->Name.Index << std::endl 55 | << "o = " << pFunction->Outer->Name.Index << std::endl 56 | << "n = " << pFunction->Name.Index << std::endl 57 | << std::dec; 58 | */ 59 | 60 | //Function SFGame.SFProj_HG_Gas.ExplodeTimeOut 61 | if (IS_FUNCTION(0x0067, 0x194f, 0x1a9a, 0xa946)) 62 | { 63 | if (bNoSmoke) return; 64 | } 65 | 66 | #pragma region PostRender 67 | //Function Engine.GameViewportClient.PostRender 68 | if (IS_FUNCTION(0x0067, 0x0015, 0x0FBA, 0x1F1B)) 69 | { 70 | if (pParms) 71 | PostRender((((UGameViewportClient_eventPostRender_Parms*)(pParms))->Canvas)); 72 | } 73 | #pragma endregion 74 | 75 | #pragma region AutoSwitch 76 | //.StopFire 77 | if (pFunction->Name.Index == 0x626E) 78 | { 79 | if (pObject 80 | && IsMyPawn 81 | && bAutoSwitch 82 | && PlayerController 83 | && PlayerController->Pawn 84 | && PlayerController->Pawn->Weapon 85 | && PlayerController->Pawn->Health > 0) 86 | { 87 | AutoQuickScope((ASFWeapon*)PlayerController->Pawn->Weapon); 88 | } 89 | bSilentAimStarted = false; 90 | } 91 | #pragma endregion 92 | 93 | #pragma region PlayerTick 94 | //.PlayerTick 95 | if (pFunction->Name.Index == 0x1F0E) 96 | { 97 | PlayerController = reinterpret_cast(pObject); 98 | } 99 | #pragma endregion 100 | 101 | #pragma region PlayerDestroyed 102 | //Function Engine.PlayerController.Destroyed 103 | //Function Engine.Controller.Destroyed 104 | //Function SFGame.SFPlayerController.Destroyed 105 | 106 | if (IS_FUNCTION(0x0067, 0x0015, 0xFAE, 0x12C) 107 | || IS_FUNCTION(0x0067, 0x0015, 0xFAC, 0x12C) 108 | || IS_FUNCTION(0x0067, 0x194F, 0x1AFA, 0x12C)) 109 | { 110 | if (pObject == PlayerController) { 111 | PlayerController = nullptr; 112 | } 113 | } 114 | #pragma endregion 115 | 116 | #pragma region SilentAim 117 | //Function SFGame.SFPlayerController.StartFire 118 | if (IS_FUNCTION(0x0067, 0x194F, 0x1AFA, 0x61C2)) 119 | { 120 | if (pObject 121 | && Enemy 122 | && bBullet 123 | && IsMyPawn 124 | && PlayerController 125 | && PlayerController->Pawn 126 | && pObject == PlayerController 127 | && PlayerController->Pawn->Weapon 128 | && PlayerController->Pawn->IsAliveAndWell() 129 | && ((ASFPlayerController*)pObject) 130 | && ((ASFPlayerController*)pObject)->Pawn 131 | && ((ASFPlayerController*)pObject)->Pawn->Weapon 132 | && ((ASFPlayerController*)pObject)->Pawn->Weapon->IsA(ASFWeap_Bullet::StaticClass())) 133 | { 134 | ASFWeap_Bullet* Weap = (ASFWeap_Bullet*)((ASFPlayerController*)pObject)->Pawn->Weapon; 135 | if (Weap->IsSprintPossible()) AfterShot = true; 136 | } 137 | 138 | if (pObject 139 | && Enemy 140 | && bBullet 141 | && IsMyPawn 142 | && bSilentAim 143 | && PlayerController 144 | && PlayerController->Pawn 145 | && pObject == PlayerController 146 | && PlayerController->Pawn->Weapon 147 | && PlayerController->Pawn->Health > 0 148 | && PlayerController->Pawn->IsAliveAndWell() 149 | && ((ASFPlayerController*)pObject) 150 | && ((ASFPlayerController*)pObject)->Pawn 151 | && ((ASFPlayerController*)pObject)->Pawn->Weapon 152 | && ((ASFPlayerController*)pObject)->Pawn->Weapon->IsA(ASFWeap_Bullet::StaticClass())) 153 | { 154 | ASFWeap_Bullet* Weap = (ASFWeap_Bullet*)((ASFPlayerController*)pObject)->Pawn->Weapon; 155 | if (Weap) Weap->SGPelletCount = 1; 156 | 157 | bSilentAimStarted = true; 158 | } 159 | } 160 | //Function SFGame.SFPawn.GetBaseAimRotation 161 | else if (IS_FUNCTION(0x0067, 0x194F, 0x1CD2, 0x1E11)) 162 | { 163 | if (pParms 164 | && Enemy 165 | && pObject 166 | && IsMyPawn 167 | && bSilentAim 168 | && PlayerController 169 | && PlayerController->Pawn 170 | && ((ASFPawn*)pObject)->Weapon 171 | && PlayerController->Pawn->Weapon 172 | && pObject == PlayerController->Pawn 173 | && PlayerController->Pawn->Health > 0 174 | && PlayerController->Pawn->IsAliveAndWell() 175 | && ((ASFPawn*)pObject)->Weapon->IsA(ASFWeap_Bullet::StaticClass()) 176 | && PlayerController->Pawn->Weapon->IsA(ASFWeap_Bullet::StaticClass())) 177 | { 178 | ASFWeap_Bullet* Weap = (ASFWeap_Bullet*)PlayerController->Pawn->Weapon; 179 | if (Weap) Weap->SGPelletCount = 1; 180 | 181 | ((ASFPawn_eventGetBaseAimRotation_Parms*)pParms)->ReturnValue.Pitch = SilentAimRot.Pitch; 182 | ((ASFPawn_eventGetBaseAimRotation_Parms*)pParms)->ReturnValue.Yaw = SilentAimRot.Yaw; 183 | 184 | if (bAutoFire 185 | && ((ASFWeap_Bullet*)PlayerController->Pawn->Weapon)->AmmoCountInMgz > 0) 186 | { 187 | AutoFire(); 188 | } 189 | 190 | return; 191 | } 192 | } 193 | else if (bSilentAimStarted) 194 | { 195 | if (Enemy 196 | && bBullet 197 | && IsMyPawn 198 | && bSilentAim 199 | && PlayerController 200 | && PlayerController->Pawn 201 | && PlayerController->Pawn->Weapon 202 | && PlayerController->Pawn->Health > 0 203 | && PlayerController->Pawn->IsAliveAndWell() 204 | && PlayerController->Pawn->Weapon->IsA(ASFWeap_Bullet::StaticClass())) 205 | { 206 | ASFWeap_Bullet* Weap = (ASFWeap_Bullet*)PlayerController->Pawn->Weapon; 207 | if (Weap) Weap->SGPelletCount = 1; 208 | } 209 | } 210 | #pragma endregion 211 | } 212 | catch (...) 213 | { 214 | } 215 | 216 | catchHere: 217 | oProcessEvent(pObject, pFunction, pParms, pResult); 218 | } 219 | 220 | bool isUpper() 221 | { 222 | if ((bCapsButton && bShiftButton) 223 | || (!bCapsButton && !bShiftButton)) 224 | return false; 225 | 226 | else if ((bCapsButton && !bShiftButton) 227 | || (!bCapsButton && bShiftButton)) 228 | return true; 229 | } 230 | 231 | LPVOID VMTHook(TArray< UObject* >* GObjObjects, char* ObjectName, int index) 232 | { 233 | DWORD * vtable = NULL; 234 | for (DWORD i = 0x0; i < GObjObjects->Num(); i++) 235 | { 236 | if (!GObjObjects->Data[i]) { continue; } 237 | if (!strcmp(GObjObjects->Data[i]->GetFullName(), ObjectName)) 238 | vtable = (DWORD*)*(DWORD*)GObjObjects->Data[i]; 239 | } 240 | 241 | if (!vtable) return NULL; 242 | 243 | uintptr_t dwVTable = *((uintptr_t*)vtable); 244 | uintptr_t * dwEntry = ((uintptr_t*)vtable + index); 245 | uintptr_t dwOrig = *((uintptr_t*)dwEntry); 246 | 247 | DWORD dwOldProtection; 248 | VirtualProtect((LPVOID)dwEntry, sizeof(dwEntry), PAGE_EXECUTE_READWRITE, &dwOldProtection); 249 | *((uintptr_t*)dwEntry) = (uintptr_t)hkProcessEvent; 250 | VirtualProtect((LPVOID)dwEntry, sizeof(dwEntry), dwOldProtection, &dwOldProtection); 251 | 252 | return (LPVOID)dwOrig; 253 | } 254 | 255 | void OnAttach() 256 | { 257 | srand(time(0)); 258 | 259 | Sleep(500); 260 | HANDLE hToken; 261 | OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &hToken); 262 | GetUserProfileDirectoryW(hToken, userData, &userDataSize); 263 | Sleep(500); 264 | 265 | CloseHandle(hToken); 266 | 267 | ClearSettings(); 268 | 269 | TArray< UObject* >* GObjObjects = (TArray< UObject* >*) GObjects; 270 | 271 | while (GObjObjects->Count < 138000) 272 | { 273 | Sleep(100); 274 | } 275 | 276 | oProcessEvent = (tProcessEvent)VMTHook(GObjObjects, "SFGameViewportClient Transient.SFGameEngine.SFGameViewportClient", ProcessEvent_Index); 277 | VMTHook(GObjObjects, "SFPlayerController SFGame.Default__SFPlayerController", ProcessEvent_Index); 278 | VMTHook(GObjObjects, "Controller Engine.Default__Controller", ProcessEvent_Index); 279 | VMTHook(GObjObjects, "PlayerController Engine.Default__PlayerController", ProcessEvent_Index); 280 | VMTHook(GObjObjects, "SFPawn SFGame.Default__SFPawn", ProcessEvent_Index); 281 | VMTHook(GObjObjects, "Pawn Engine.Default__Pawn", ProcessEvent_Index); 282 | VMTHook(GObjObjects, "SFPawn_Player SFGame.Default__SFPawn_Player", ProcessEvent_Index); 283 | VMTHook(GObjObjects, "SFWeapon SFGame.Default__SFWeapon", ProcessEvent_Index); 284 | VMTHook(GObjObjects, "SFWeap_InstantHit SFGame.Default__SFWeap_InstantHit", ProcessEvent_Index); 285 | VMTHook(GObjObjects, "SFWeap_Bullet SFGame.Default__SFWeap_Bullet", ProcessEvent_Index); 286 | 287 | int k = 0; 288 | int keycurrent = 0; 289 | 290 | while(true) 291 | { 292 | if (hwnd == GetForegroundWindow()) 293 | { 294 | #pragma region KeyDetection 295 | if (bMoving && GetAsyncKeyState(VK_LBUTTON)) 296 | { 297 | NewMove = true; 298 | bMoving = false; 299 | iMoveRadar = 0; 300 | } 301 | 302 | if (GetAsyncKeyState(0x4C)) bOPKKey = true; 303 | else bOPKKey = false; 304 | if (GetAsyncKeyState(0x4D)) bRespawnKey = true; 305 | else bRespawnKey = false; 306 | if (GetAsyncKeyState(0x4B)) bHeroKey1 = true; 307 | else bHeroKey1 = false; 308 | if (GetAsyncKeyState(0x50)) bHeroKey2 = true; 309 | else bHeroKey2 = false; 310 | 311 | 312 | if (GetAsyncKeyState(VK_RBUTTON)) bRButton = true; 313 | else bRButton = false; 314 | if (GetAsyncKeyState(VK_LBUTTON)) bLButton = true; 315 | else bLButton = false; 316 | if (GetAsyncKeyState(VK_SHIFT)) bShiftButton = true; 317 | else bShiftButton = false; 318 | if ((GetKeyState(VK_CAPITAL) & 0x0001) != 0) bCapsButton = true; 319 | else bCapsButton = false; 320 | if (GetAsyncKeyState(VK_LMENU)) bAltButton = true; 321 | else bAltButton = false; 322 | #pragma endregion 323 | 324 | #pragma region Custom Names 325 | if (Name1isActive || Name2isActive && (iName1 < 21 || iName2 < 21)) 326 | { 327 | for (int b = 48; b <= 90; b++) 328 | { 329 | int i = b; 330 | 331 | if (b == 58) 332 | i = ' '; 333 | else if (b == 59) 334 | i = VK_BACK; 335 | 336 | if (isalnum((char)i) || ((char)i) == ' ' || i == VK_BACK) 337 | { 338 | if ((GetAsyncKeyState(i) & 0x8000) && (k == 0)) 339 | { 340 | k = 1; 341 | keycurrent = i; 342 | char newLetter; 343 | 344 | if (isUpper() == true) 345 | newLetter = toupper((char)i); 346 | else 347 | newLetter = tolower((char)i); 348 | 349 | if (i == VK_BACK) 350 | { 351 | if (Name1isActive && iName1 < 22 && iName1 > 0) 352 | { 353 | cName1[iName1 - 1] = '\0'; 354 | iName1--; 355 | } 356 | else if (Name2isActive && iName2 < 22 && iName2 > 0) 357 | { 358 | cName2[iName2 - 1] = '\0'; 359 | iName2--; 360 | } 361 | } 362 | else 363 | { 364 | if (Name1isActive && iName1 < 21) 365 | { 366 | cName1[iName1] = newLetter; 367 | iName1++; 368 | } 369 | else if (Name2isActive && iName2 < 21) 370 | { 371 | cName2[iName2] = newLetter; 372 | iName2++; 373 | } 374 | } 375 | } 376 | else if (GetAsyncKeyState(i) == 0) 377 | { 378 | if (i == keycurrent) 379 | { 380 | k = 0; 381 | } 382 | } 383 | } 384 | } 385 | } 386 | #pragma endregion 387 | } 388 | 389 | Sleep(50); 390 | } 391 | 392 | } 393 | 394 | BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpvReserved) 395 | { 396 | switch (dwReason) 397 | { 398 | case DLL_PROCESS_ATTACH: 399 | DisableThreadLibraryCalls(hInstance); 400 | CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)OnAttach, NULL, NULL, NULL); 401 | } 402 | 403 | return TRUE; 404 | } -------------------------------------------------------------------------------- /SpecialForce2/MenuDefines.hpp: -------------------------------------------------------------------------------- 1 | #define URotationToRadians( URotation ) ( ( URotation ) * ( CONST_Pi / 32768.0f ) ) 2 | #define URotationToDegree( URotation ) ( ( URotation ) * ( 360.0f / 65536.0f ) ) 3 | 4 | #define DegreeToURotation( Degree ) ( ( Degree ) * ( 65536.0f / 360.0f ) ) 5 | #define DegreeToRadian( Degree ) ( ( Degree ) * ( CONST_Pi / 180.0f ) ) 6 | 7 | #define RadianToURotation( URotation ) ( ( URotation ) * ( 32768.0f / CONST_Pi ) ) 8 | #define RadianToDegree( Radian ) ( ( Radian ) * ( 180.0f / CONST_Pi ) ) 9 | 10 | // MENU 11 | bool bHWNDtaken = false; 12 | HWND hwnd; 13 | 14 | std::string PLog = ""; 15 | wchar_t *MenuDefin = L""; 16 | wchar_t *Credits = L""; 17 | int MenuX; 18 | 19 | wchar_t* wMenuIndex[] = { L"AIMBOT", L"ESP3D", L"ESP2D", L"PLAYER", L"SPECIAL", L"SETTINGS" }; 20 | int iMenuIndex = 0; 21 | 22 | //MENU CAPTIONS 23 | int Flag = 0; 24 | int FlagMenu = 0; 25 | int FlagSlideBox = 0; 26 | int CurrentClickedIdx = 0; 27 | 28 | //FPS 29 | INT Fps = 0; 30 | FLOAT LastTickCount = 0.0f; 31 | FLOAT CurrentTickCount; 32 | wchar_t FrameRate[50]; 33 | 34 | INT Spam = 0; 35 | FLOAT LastTickSpam = 0.0f; 36 | FLOAT CurrentTickSpam; 37 | 38 | INT Bone = 0; 39 | FLOAT LastTickBone = 0.0f; 40 | FLOAT CurrentTickBone; 41 | 42 | 43 | INT RandBone = 0; 44 | FLOAT LastTickRandBone = 0.0f; 45 | FLOAT CurrentTickRandBone; 46 | 47 | //AIMBOT 48 | bool bEnableAim = false; 49 | wchar_t* wAimKey[] = { L"RMOUSE", L"LMOUSE", L"SHIFT", L"L.ALT", L"ALWAYS" }; 50 | int iAimKey = 0; 51 | wchar_t* wAimBy[] = { L"DISTANCE", L"FOV", L"HP" }; 52 | int iAimBy = 0; 53 | wchar_t* wFovAngle[] = { L"1", L"2", L"3", L"5", L"10", L"25", L"30", L"45" }; 54 | int iFovAngle = 0; 55 | wchar_t* wHPLimit[] = { L"0", L"25", L"50", L"75", L"99" }; 56 | int iHPLimit = 0; 57 | wchar_t* wAimPosition[] = { L"RAND", L"HEAD", L"CHEST", L"HAND" }; 58 | int iAimPosition = 0; 59 | wchar_t* wBoneRefreshTime[] = { L"0", L"20ms", L"40ms", L"60ms", L"80ms", L"100ms" }; 60 | int iBoneRefreshTime = 0; 61 | bool bBoneRefreshed = false; 62 | bool bAutoFire = false; 63 | wchar_t* wSmoothAim[] = { L"0", L"1", L"2", L"3", L"4", L"5" }; 64 | int iSmoothAim = 0; 65 | bool bSilentAim = false; 66 | bool bSmartAccuracy = false; 67 | bool bHardLock = false; 68 | 69 | //ESP 3D 70 | wchar_t* wEnableEsp[] = { L"ENEMY", L"TEAM", L"BOTH" }; 71 | int iEnableEsp = 2; 72 | bool bNameEsp = false; 73 | bool bDistanceEsp = false; 74 | bool bHealthEsp = false; 75 | bool bBoneEsp = false; 76 | bool bHeadCircle = false; 77 | wchar_t* wBoundingBox[] = { L"OFF", L"3D", L"2D" }; 78 | int iBoundingBox = 0; 79 | bool bLaserEsp = false; 80 | bool AlienZombie = false; 81 | bool bSnapLines = false; 82 | bool bGrenadeEsp = false; 83 | bool bDeadVisible = false; 84 | bool bShowStats = false; 85 | wchar_t* wEnemyVis[] = { L"RED", L"ORANGE", L"YELLOW" }; 86 | int iEnemyVis = 1; 87 | wchar_t* wEnemyInv[] = { L"RED", L"ORANGE", L"YELLOW" }; 88 | int iEnemyInv = 0; 89 | wchar_t* wTeamVis[] = { L"BLUE", L"GREEN", L"YELLOW" }; 90 | int iTeamVis = 1; 91 | wchar_t* wTeamInv[] = { L"BLUE", L"GREEN", L"YELLOW" }; 92 | int iTeamInv = 1; 93 | 94 | //ESP 2D 95 | wchar_t* wEnemyRadar[] = { L"OFF", L"ON" }; 96 | int iEnemyRadar = 0; 97 | wchar_t* wEnemyColor[] = { L"RED", L"ORANGE", L"YELLOW" }; 98 | int iEnemyColor = 0; 99 | wchar_t* wTeamColor[] = { L"BLUE", L"GREEN", L"YELLOW" }; 100 | int iTeamColor = 1; 101 | wchar_t* wBorderColor[] = { L"BLACK", L"WHITE", L"RED", L"BLUE" }; 102 | int iBorderColor = 0; 103 | wchar_t* wQuadrantColor[] = { L"BLACK", L"GREY", L"WHITE", L"RED", L"BLUE" }; 104 | int iQuadrantColor = 0; 105 | wchar_t* wBackgroundColor[] = { L"GREY", L"WHITE", L"RED", L"BLUE", L"GREEN" }; 106 | int iBackgroundColor = 0; 107 | wchar_t* wBackgroundOpacity[] = { L"0", L"1", L"2", L"3", L"4", L"5", L"6", L"7", L"8", L"9", L"10", L"11", L"12", L"13", L"14", L"15", L"16", L"17", L"18", L"19", L"20", L"21", L"22", L"23", L"24", L"25", L"26", L"27", L"28", L"29", L"30", L"31", L"32", L"33", L"34", L"35", L"36", L"37", L"38", L"39", L"40", L"41", L"42", L"43", L"44", L"45", L"46", L"47", L"48", L"49", L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99", L"100", L"101", L"102", L"103", L"104", L"105", L"106", L"107", L"108", L"109", L"110", L"111", L"112", L"113", L"114", L"115", L"116", L"117", L"118", L"119", L"120", L"121", L"122", L"123", L"124", L"125", L"126", L"127", L"128", L"129", L"130", L"131", L"132", L"133", L"134", L"135", L"136", L"137", L"138", L"139", L"140", L"141", L"142", L"143", L"144", L"145", L"146", L"147", L"148", L"149", L"150", L"151", L"152", L"153", L"154", L"155", L"156", L"157", L"158", L"159", L"160", L"161", L"162", L"163", L"164", L"165", L"166", L"167", L"168", L"169", L"170", L"171", L"172", L"173", L"174", L"175", L"176", L"177", L"178", L"179", L"180", L"181", L"182", L"183", L"184", L"185", L"186", L"187", L"188", L"189", L"190", L"191", L"192", L"193", L"194", L"195", L"196", L"197", L"198", L"199", L"200", L"201", L"202", L"203", L"204", L"205", L"206", L"207", L"208", L"209", L"210", L"211", L"212", L"213", L"214", L"215", L"216", L"217", L"218", L"219", L"220", L"221", L"222", L"223", L"224", L"225", L"226", L"227", L"228", L"229", L"230", L"231", L"232", L"233", L"234", L"235", L"236", L"237", L"238", L"239", L"240", L"241", L"242", L"243", L"244", L"245", L"246", L"247", L"248", L"249", L"250", L"251", L"252", L"253", L"254", L"255" }; 108 | int iBackgroundOpacity = 255; 109 | //RADARSCALE QUESTO PLAYER RADIUS 110 | wchar_t* wPlayerRadius[] = { L"25", L"26", L"27", L"28", L"29", L"30", L"31", L"32", L"33", L"34", L"35", L"36", L"37", L"38", L"39", L"40", L"41", L"42", L"43", L"44", L"45", L"46", L"47", L"48", L"49", L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99", L"100", L"101", L"102", L"103", L"104", L"105", L"106", L"107", L"108", L"109", L"110", L"111", L"112", L"113", L"114", L"115", L"116", L"117", L"118", L"119", L"120", L"121", L"122", L"123", L"124", L"125", L"126", L"127", L"128", L"129", L"130", L"131", L"132", L"133", L"134", L"135", L"136", L"137", L"138", L"139", L"140", L"141", L"142", L"143", L"144", L"145", L"146", L"147", L"148", L"149", L"150", L"151", L"152", L"153", L"154", L"155", L"156", L"157", L"158", L"159", L"160", L"161", L"162", L"163", L"164", L"165", L"166", L"167", L"168", L"169", L"170", L"171", L"172", L"173", L"174", L"175", L"176", L"177", L"178", L"179", L"180", L"181", L"182", L"183", L"184", L"185", L"186", L"187", L"188", L"189", L"190", L"191", L"192", L"193", L"194", L"195", L"196", L"197", L"198", L"199", L"200" }; 111 | int iPlayerRadius = 0; 112 | wchar_t* wRadarSize[] = { L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99", L"100", L"101", L"102", L"103", L"104", L"105", L"106", L"107", L"108", L"109", L"110", L"111", L"112", L"113", L"114", L"115", L"116", L"117", L"118", L"119", L"120", L"121", L"122", L"123", L"124", L"125", L"126", L"127", L"128", L"129", L"130", L"131", L"132", L"133", L"134", L"135", L"136", L"137", L"138", L"139", L"140", L"141", L"142", L"143", L"144", L"145", L"146", L"147", L"148", L"149", L"150", L"151", L"152", L"153", L"154", L"155", L"156", L"157", L"158", L"159", L"160", L"161", L"162", L"163", L"164", L"165", L"166", L"167", L"168", L"169", L"170", L"171", L"172", L"173", L"174", L"175", L"176", L"177", L"178", L"179", L"180", L"181", L"182", L"183", L"184", L"185", L"186", L"187", L"188", L"189", L"190", L"191", L"192", L"193", L"194", L"195", L"196", L"197", L"198", L"199", L"200", L"201", L"202", L"203", L"204", L"205", L"206", L"207", L"208", L"209", L"210", L"211", L"212", L"213", L"214", L"215", L"216", L"217", L"218", L"219", L"220", L"221", L"222", L"223", L"224", L"225", L"226", L"227", L"228", L"229", L"230", L"231", L"232", L"233", L"234", L"235", L"236", L"237", L"238", L"239", L"240", L"241", L"242", L"243", L"244", L"245", L"246", L"247", L"248", L"249", L"250", L"251", L"252", L"253", L"254", L"255", L"256", L"257", L"258", L"259", L"260", L"261", L"262", L"263", L"264", L"265", L"266", L"267", L"268", L"269", L"270", L"271", L"272", L"273", L"274", L"275", L"276", L"277", L"278", L"279", L"280", L"281", L"282", L"283", L"284", L"285", L"286", L"287", L"288", L"289", L"290", L"291", L"292", L"293", L"294", L"295", L"296", L"297", L"298", L"299", L"300", L"301", L"302", L"303", L"304", L"305", L"306", L"307", L"308", L"309", L"310", L"311", L"312", L"313", L"314", L"315", L"316", L"317", L"318", L"319", L"320", L"321", L"322", L"323", L"324", L"325", L"326", L"327", L"328", L"329", L"330", L"331", L"332", L"333", L"334", L"335", L"336", L"337", L"338", L"339", L"340", L"341", L"342", L"343", L"344", L"345", L"346", L"347", L"348", L"349", L"350", L"351", L"352", L"353", L"354", L"355", L"356", L"357", L"358", L"359", L"360", L"361", L"362", L"363", L"364", L"365", L"366", L"367", L"368", L"369", L"370", L"371", L"372", L"373", L"374", L"375", L"376", L"377", L"378", L"379", L"380", L"381", L"382", L"383", L"384", L"385", L"386", L"387", L"388", L"389", L"390", L"391", L"392", L"393", L"394", L"395", L"396", L"397", L"398", L"399", L"400" }; 113 | int iRadarSize = 100; 114 | wchar_t* wMoveRadar[] = { L"OFF", L"ON" }; 115 | int iMoveRadar = 0; 116 | bool NewMove = true; 117 | bool bMoving = false; 118 | FVector2D RadarLocation = { 15,10 }; 119 | 120 | //PLAYER 121 | wchar_t* wCrosshair[] = { L"OFF", L"ON" }; 122 | int iCrosshair = 0; 123 | wchar_t* wCrosshairSize[] = { L"5", L"6", L"7", L"8", L"9", L"10", L"11", L"12", L"13", L"14", L"15", L"16", L"17", L"18", L"19", L"20", L"21", L"22", L"23", L"24", L"25", L"26", L"27", L"28", L"29", L"30", L"31", L"32", L"33", L"34", L"35", L"36", L"37", L"38", L"39", L"40", L"41", L"42", L"43", L"44", L"45", L"46", L"47", L"48", L"49", L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99", L"100" }; 124 | int iCrosshairSize = 0; 125 | wchar_t* wUnlAmmo[] = { L"OFF", L"ON" }; 126 | int iUnlAmmo = 0; 127 | bool bUnlGrenade = false; 128 | bool bDropWeapon; 129 | bool bFullAutoWeapon; 130 | bool bRangeHack; 131 | wchar_t* wBurstFire[] = { L"OFF", L"ON" }; 132 | int iBurstFire = 0; 133 | bool bNoRecoil; 134 | bool bNoSpread; 135 | wchar_t* wTriggerbot[] = { L"OFF", L"ON" }; 136 | int iTriggerbot = 0; 137 | wchar_t* wNameStealer[] = { L"OFF", L"CUSTOM 1", L"CUSTOM 2", L"BLANK" }; 138 | int iNameStealer = 0; 139 | bool bNoFlash; 140 | bool bNoSmoke; 141 | bool bNoRespawnCost = false; 142 | wchar_t* wAutoRespawn[] = { L"OFF", L"M", L"< X HP" }; 143 | int iAutoRespawn = 0; 144 | wchar_t* wHpRespawn[] = { L"10", L"11", L"12", L"13", L"14", L"15", L"16", L"17", L"18", L"19", L"20", L"21", L"22", L"23", L"24", L"25", L"26", L"27", L"28", L"29", L"30", L"31", L"32", L"33", L"34", L"35", L"36", L"37", L"38", L"39", L"40", L"41", L"42", L"43", L"44", L"45", L"46", L"47", L"48", L"49", L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99" }; 145 | int iHpRespawn = 0; 146 | bool bNoBulletGravity; 147 | bool bAutoSwitch; 148 | 149 | //FIX FOR AUTOSWITCH 150 | bool AfterShot = false; 151 | 152 | //SPECIAL 153 | wchar_t* wEnableOpk[] = { L"OFF", L"ON"}; 154 | int iEnableOpk = 0; 155 | //OPK TARGET QUESTO CAMBIATO 156 | wchar_t* wPickBestPlayer[] = { L"ENEMY", L"TEAM", L"BOTH" }; 157 | int iPickBestPlayer = 0; 158 | wchar_t* wOpkKey[] = { L"EVER", L"L" }; 159 | int iOpkKey = 0; 160 | wchar_t* wOpkDamage[] = { L"C4", L"GRENADE", L"TURRET", L"NULL" }; 161 | int iOpkDamage = 0; 162 | wchar_t* wOpkBone[] = { L"HEAD", L"CHEST", L"RANDOM" }; 163 | int iOpkBone = 0; 164 | bool bShotThroughWall; 165 | wchar_t* wBulletPerShot[] = { L"1", L"2", L"3", L"4", L"5", L"6", L"7", L"8", L"9", L"10" }; 166 | int iBulletPerShot = 0; 167 | bool bHeroMP; 168 | bool bHeroDP; 169 | bool bHeroAP; 170 | bool bHeroEXP; 171 | wchar_t* wHeroPoints[] = { L"1", L"2", L"3", L"4", L"5", L"6", L"7", L"8", L"9", L"10", L"11", L"12", L"13", L"14", L"15", L"16", L"17", L"18", L"19", L"20", L"21", L"22", L"23", L"24", L"25", L"26", L"27", L"28", L"29", L"30", L"31", L"32", L"33", L"34", L"35", L"36", L"37", L"38", L"39", L"40", L"41", L"42", L"43", L"44", L"45", L"46", L"47", L"48", L"49", L"50", L"51", L"52", L"53", L"54", L"55", L"56", L"57", L"58", L"59", L"60", L"61", L"62", L"63", L"64", L"65", L"66", L"67", L"68", L"69", L"70", L"71", L"72", L"73", L"74", L"75", L"76", L"77", L"78", L"79", L"80", L"81", L"82", L"83", L"84", L"85", L"86", L"87", L"88", L"89", L"90", L"91", L"92", L"93", L"94", L"95", L"96", L"97", L"98", L"99", L"100" }; 172 | int iHeroPoints = 0; 173 | wchar_t* wHeroPointsKey[] = { L"K", L"P" }; 174 | int iHeroPointsKey = 0; 175 | bool bOpkHero; 176 | wchar_t* wVirtualJumpValue[] = { L"100", L"101", L"102", L"103", L"104", L"105", L"106", L"107", L"108", L"109", L"110", L"111", L"112", L"113", L"114", L"115", L"116", L"117", L"118", L"119", L"120", L"121", L"122", L"123", L"124", L"125", L"126", L"127", L"128", L"129", L"130", L"131", L"132", L"133", L"134", L"135", L"136", L"137", L"138", L"139", L"140", L"141", L"142", L"143", L"144", L"145", L"146", L"147", L"148", L"149", L"150", L"151", L"152", L"153", L"154", L"155", L"156", L"157", L"158", L"159", L"160", L"161", L"162", L"163", L"164", L"165", L"166", L"167", L"168", L"169", L"170", L"171", L"172", L"173", L"174", L"175", L"176", L"177", L"178", L"179", L"180", L"181", L"182", L"183", L"184", L"185", L"186", L"187", L"188", L"189", L"190", L"191", L"192", L"193", L"194", L"195", L"196", L"197", L"198", L"199", L"200", L"201", L"202", L"203", L"204", L"205", L"206", L"207", L"208", L"209", L"210", L"211", L"212", L"213", L"214", L"215", L"216", L"217", L"218", L"219", L"220", L"221", L"222", L"223", L"224", L"225", L"226", L"227", L"228", L"229", L"230", L"231", L"232", L"233", L"234", L"235", L"236", L"237", L"238", L"239", L"240", L"241", L"242", L"243", L"244", L"245", L"246", L"247", L"248", L"249", L"250", L"251", L"252", L"253", L"254", L"255", L"256", L"257", L"258", L"259", L"260", L"261", L"262", L"263", L"264", L"265", L"266", L"267", L"268", L"269", L"270", L"271", L"272", L"273", L"274", L"275", L"276", L"277", L"278", L"279", L"280", L"281", L"282", L"283", L"284", L"285", L"286", L"287", L"288", L"289", L"290", L"291", L"292", L"293", L"294", L"295", L"296", L"297", L"298", L"299", L"300" }; 177 | int iVirtualJumpValue = 0; 178 | wchar_t* wVirtualJump[] = { L"OFF", L"ON" }; 179 | int iVirtualJump = 0; 180 | 181 | //SETTINGS 182 | wchar_t userData[160]; 183 | DWORD userDataSize = 160; 184 | 185 | bool bFPS; 186 | bool bWatermark; 187 | bool bMACSpoof = false; 188 | 189 | char cName1[256]; 190 | int iName1 = 0; 191 | wchar_t* Name1 = L""; 192 | bool Name1isActive = false; 193 | bool bTick1 = false; 194 | 195 | char cName2[256]; 196 | int iName2 = 0; 197 | wchar_t* Name2 = L""; 198 | bool Name2isActive = false; 199 | bool bTick2 = false; 200 | 201 | bool bRestoreDefaultSettings; 202 | bool bSaveSettings; 203 | bool bLoadSettings; 204 | 205 | FLOAT LastTickRestore = 0.0f; 206 | FLOAT CurrentTickRestore; 207 | FLOAT LastTickSave = 0.0f; 208 | FLOAT CurrentTickSave; 209 | FLOAT LastTickLoad = 0.0f; 210 | FLOAT CurrentTickLoad; 211 | FLOAT LastTickName1 = 0.0f; 212 | FLOAT CurrentTickName1; 213 | FLOAT LastTickName2 = 0.0f; 214 | FLOAT CurrentTickName2; 215 | 216 | //Bones 217 | #define Bone_Root 0 218 | #define Bone_Hand_L 3 219 | #define Bone_Hand_R 4 220 | #define Bone_Foot_L 6 221 | #define Bone_Foot_R 7 222 | #define Bone_Pelvis 9 223 | #define Bone_Spine 10 224 | #define Bone_Spine1 11 225 | #define Bone_Spine2 12 226 | #define Bone_Neck 13 227 | #define Bone_Head 14 228 | #define Bone_Helmet 15 229 | #define Bone_LClavicle 16 230 | #define Bone_LArmUp 17 231 | #define Bone_LArmLow 18 232 | #define Bone_LHand 19 233 | #define Bone_RClavicle 37 234 | #define Bone_RArmUp 38 235 | #define Bone_RArmLow 39 236 | #define Bone_RHand 40 237 | #define Bone_LLegUp 58 238 | #define Bone_LLegLow 59 239 | #define Bone_LFoot 60 240 | #define Bone_RLegUp 62 241 | #define Bone_RLegLow 63 242 | #define Bone_RFoot 64 243 | 244 | 245 | struct MenuIndexTab 246 | { 247 | int X; 248 | int Y; 249 | int Lungo; 250 | int Alto; 251 | }; 252 | 253 | MenuIndexTab AimbotTab = { 16,45,120,21 }; 254 | MenuIndexTab Esp3D = { 16,73,120,21 }; 255 | MenuIndexTab Esp2D = { 16,101,120,21 }; 256 | MenuIndexTab Player = { 16,129,120,21 }; 257 | MenuIndexTab Special = { 16,157,120,21 }; 258 | MenuIndexTab Settings = { 16,185,120,21 }; -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/SFGameContent_f_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: SFGameContent_f_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Function Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // Function SFGameContent.SFCWeaponRIS_ActionCamo_Kill.OwnerKill 25 | // [0x00020102] 26 | struct USFCWeaponRIS_ActionCamo_Kill_execOwnerKill_Parms 27 | { 28 | unsigned long ReturnValue : 1; // 0x0000 (0x0004) [0x0000000000000580] [0x00000001] ( CPF_Parm | CPF_OutParm | CPF_ReturnParm ) 29 | }; 30 | 31 | // Function SFGameContent.SFCItem_Common_ChickenBoots.ApplyItemToHostPawn 32 | // [0x00022002] 33 | struct USFCItem_Common_ChickenBoots_execApplyItemToHostPawn_Parms 34 | { 35 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 36 | }; 37 | 38 | // Function SFGameContent.SFCWeaponRIS_ActionCamo_Equip.OwnerAttached 39 | // [0x00020102] 40 | struct USFCWeaponRIS_ActionCamo_Equip_execOwnerAttached_Parms 41 | { 42 | unsigned long ReturnValue : 1; // 0x0000 (0x0004) [0x0000000000000580] [0x00000001] ( CPF_Parm | CPF_OutParm | CPF_ReturnParm ) 43 | }; 44 | 45 | // Function SFGameContent.SFCItem_Func_WeaponCamo_Removal.GetSpecificIndexWithDataByID 46 | // [0x00426002] 47 | struct USFCItem_Func_WeaponCamo_Removal_execGetSpecificIndexWithDataByID_Parms 48 | { 49 | class UObject* SpecificObject; // 0x0000 (0x0004) [0x0000000000000190] ( CPF_OptionalParm | CPF_Parm | CPF_OutParm ) 50 | class UObject* SpecificObjectEx; // 0x0004 (0x0004) [0x0000000000000190] ( CPF_OptionalParm | CPF_Parm | CPF_OutParm ) 51 | int SpecificIndex; // 0x0008 (0x0004) [0x0000000000000190] ( CPF_OptionalParm | CPF_Parm | CPF_OutParm ) 52 | int SpecificIndexEx; // 0x000C (0x0004) [0x0000000000000190] ( CPF_OptionalParm | CPF_Parm | CPF_OutParm ) 53 | }; 54 | 55 | // Function SFGameContent.SFCItem_CheyTac_Def_Scope.ApplyItemToWeap 56 | // [0x00022002] 57 | struct USFCItem_CheyTac_Def_Scope_execApplyItemToWeap_Parms 58 | { 59 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 60 | }; 61 | 62 | // Function SFGameContent.SFCItem_Common_Scope_Kar98k.ApplyItemToWeap 63 | // [0x00022002] 64 | struct USFCItem_Common_Scope_Kar98k_execApplyItemToWeap_Parms 65 | { 66 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 67 | }; 68 | 69 | // Function SFGameContent.SFCItem_Common_Scope_Dragunov.ApplyItemToWeap 70 | // [0x00022002] 71 | struct USFCItem_Common_Scope_Dragunov_execApplyItemToWeap_Parms 72 | { 73 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 74 | }; 75 | 76 | // Function SFGameContent.SFCItem_Cz700_Def_Scope.ApplyItemToWeap 77 | // [0x00022002] 78 | struct USFCItem_Cz700_Def_Scope_execApplyItemToWeap_Parms 79 | { 80 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 81 | }; 82 | 83 | // Function SFGameContent.SFCItem_Common_Scope_S2S.ApplyItemToWeap 84 | // [0x00022002] 85 | struct USFCItem_Common_Scope_S2S_execApplyItemToWeap_Parms 86 | { 87 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 88 | }; 89 | 90 | // Function SFGameContent.SFCItem_Common_Scope_Zeiess.ApplyItemToWeap 91 | // [0x00022002] 92 | struct USFCItem_Common_Scope_Zeiess_execApplyItemToWeap_Parms 93 | { 94 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 95 | }; 96 | 97 | // Function SFGameContent.SFCItem_PSG1_Def_Scope.ApplyItemToWeap 98 | // [0x00022002] 99 | struct USFCItem_PSG1_Def_Scope_execApplyItemToWeap_Parms 100 | { 101 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 102 | }; 103 | 104 | // Function SFGameContent.SFCItem_Barret_Def_Scope.ApplyItemToWeap 105 | // [0x00022002] 106 | struct USFCItem_Barret_Def_Scope_execApplyItemToWeap_Parms 107 | { 108 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 109 | }; 110 | 111 | // Function SFGameContent.SFCItem_FAMAS_Def_Sight.ApplyItemToWeap 112 | // [0x00022000] 113 | struct USFCItem_FAMAS_Def_Sight_execApplyItemToWeap_Parms 114 | { 115 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 116 | }; 117 | 118 | // Function SFGameContent.SFCItem_MurderKnife.ApplyItemToWeapByPenalty 119 | // [0x00022002] 120 | struct USFCItem_MurderKnife_execApplyItemToWeapByPenalty_Parms 121 | { 122 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 123 | }; 124 | 125 | // Function SFGameContent.SFCItem_Common_Scope_Bender.ApplyItemToWeap 126 | // [0x00022002] 127 | struct USFCItem_Common_Scope_Bender_execApplyItemToWeap_Parms 128 | { 129 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 130 | }; 131 | 132 | // Function SFGameContent.SFCItem_AWP_Def_Scope.ApplyItemToWeap 133 | // [0x00022002] 134 | struct USFCItem_AWP_Def_Scope_execApplyItemToWeap_Parms 135 | { 136 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 137 | }; 138 | 139 | // Function SFGameContent.SFCItem_Common_Scope_PM2.ApplyItemToWeap 140 | // [0x00022002] 141 | struct USFCItem_Common_Scope_PM2_execApplyItemToWeap_Parms 142 | { 143 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 144 | }; 145 | 146 | // Function SFGameContent.SFCItem_BowieKnife.ApplyItemToWeapByPenalty 147 | // [0x00022002] 148 | struct USFCItem_BowieKnife_execApplyItemToWeapByPenalty_Parms 149 | { 150 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 151 | }; 152 | 153 | // Function SFGameContent.SFCItem_SR25_Def_Scope.ApplyItemToWeap 154 | // [0x00022002] 155 | struct USFCItem_SR25_Def_Scope_execApplyItemToWeap_Parms 156 | { 157 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 158 | }; 159 | 160 | // Function SFGameContent.SFCItem_P226_Def_Body.ApplyItemToWeap 161 | // [0x00022000] 162 | struct USFCItem_P226_Def_Body_execApplyItemToWeap_Parms 163 | { 164 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 165 | }; 166 | 167 | // Function SFGameContent.SFCItem_P226_Def_Magazine.ApplyItemToWeap 168 | // [0x00022000] 169 | struct USFCItem_P226_Def_Magazine_execApplyItemToWeap_Parms 170 | { 171 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 172 | }; 173 | 174 | // Function SFGameContent.SFCItem_P226_Def_Sight.ApplyItemToWeap 175 | // [0x00022000] 176 | struct USFCItem_P226_Def_Sight_execApplyItemToWeap_Parms 177 | { 178 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 179 | }; 180 | 181 | // Function SFGameContent.SFCItem_Dagger.ApplyItemToWeapByPenalty 182 | // [0x00022002] 183 | struct USFCItem_Dagger_execApplyItemToWeapByPenalty_Parms 184 | { 185 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 186 | }; 187 | 188 | // Function SFGameContent.SFCItem_Func_AddPrimaryMagazine.ApplyMagazine 189 | // [0x00022002] 190 | struct USFCItem_Func_AddPrimaryMagazine_execApplyMagazine_Parms 191 | { 192 | class ASFWeapon* SFW; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 193 | }; 194 | 195 | // Function SFGameContent.SFCItem_Func_AddPrimaryMagazine.ApplyItemToHostActor 196 | // [0x00022002] 197 | struct USFCItem_Func_AddPrimaryMagazine_execApplyItemToHostActor_Parms 198 | { 199 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 200 | // class ASFWeapon* SFW; // 0x0004 (0x0004) [0x0000000000000000] 201 | // int I; // 0x0008 (0x0004) [0x0000000000000000] 202 | // int J; // 0x000C (0x0004) [0x0000000000000000] 203 | }; 204 | 205 | // Function SFGameContent.SFCItem_Beacon_RequestUAV.ApplyItemToHostActor 206 | // [0x00022002] 207 | struct USFCItem_Beacon_RequestUAV_execApplyItemToHostActor_Parms 208 | { 209 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 210 | }; 211 | 212 | // Function SFGameContent.SFCItem_Func_InstantShockWave.ApplyItemToHostActor 213 | // [0x00022002] 214 | struct USFCItem_Func_InstantShockWave_execApplyItemToHostActor_Parms 215 | { 216 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 217 | // int I; // 0x0004 (0x0004) [0x0000000000000000] 218 | // class ASFPawn* AppliedPawn; // 0x0008 (0x0004) [0x0000000000000000] 219 | }; 220 | 221 | // Function SFGameContent.SFCItem_Func_RecoveryHP.CanPurchaseInGameStore 222 | // [0x00022002] 223 | struct USFCItem_Func_RecoveryHP_execCanPurchaseInGameStore_Parms 224 | { 225 | class ASFPawn* ApplidedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 226 | unsigned long ReturnValue : 1; // 0x0004 (0x0004) [0x0000000000000580] [0x00000001] ( CPF_Parm | CPF_OutParm | CPF_ReturnParm ) 227 | }; 228 | 229 | // Function SFGameContent.SFCItem_Func_RecoveryHP.ApplyItemToActor 230 | // [0x00022002] 231 | struct USFCItem_Func_RecoveryHP_execApplyItemToActor_Parms 232 | { 233 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 234 | }; 235 | 236 | // Function SFGameContent.SFCItem_Func_PrimaryMagazineUp.ApplyItemToHostActor 237 | // [0x00022002] 238 | struct USFCItem_Func_PrimaryMagazineUp_execApplyItemToHostActor_Parms 239 | { 240 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 241 | // class ASFWeapon* TempWeapon; // 0x0004 (0x0004) [0x0000000000000000] 242 | // class ASFGameReplicationInfo* SFGRI; // 0x0008 (0x0004) [0x0000000000000000] 243 | }; 244 | 245 | // Function SFGameContent.SFCItem_Func_MiniMapPing.ApplyItemToActor 246 | // [0x00022002] 247 | struct USFCItem_Func_MiniMapPing_execApplyItemToActor_Parms 248 | { 249 | class AActor* AppliedActor; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 250 | // class ASFPlayerReplicationInfo* SFPRI; // 0x0004 (0x0004) [0x0000000000000000] 251 | }; 252 | 253 | // Function SFGameContent.SFCItem_Func_ProvideHumanHealth.IsPossibleToUse 254 | // [0x00022002] 255 | struct USFCItem_Func_ProvideHumanHealth_execIsPossibleToUse_Parms 256 | { 257 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 258 | unsigned long ReturnValue : 1; // 0x0004 (0x0004) [0x0000000000000580] [0x00000001] ( CPF_Parm | CPF_OutParm | CPF_ReturnParm ) 259 | }; 260 | 261 | // Function SFGameContent.SFCItem_GAFE_SpecialSuit.ApplyItemToHostPawn 262 | // [0x00022000] 263 | struct USFCItem_GAFE_SpecialSuit_execApplyItemToHostPawn_Parms 264 | { 265 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 266 | }; 267 | 268 | // Function SFGameContent.SFCItem_GIGN_SpeicalSuit.ApplyItemToHostPawn 269 | // [0x00022000] 270 | struct USFCItem_GIGN_SpeicalSuit_execApplyItemToHostPawn_Parms 271 | { 272 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 273 | }; 274 | 275 | // Function SFGameContent.SFCItem_DeltaForce_ScoutSuit.ApplyItemToHostPawn 276 | // [0x00022000] 277 | struct USFCItem_DeltaForce_ScoutSuit_execApplyItemToHostPawn_Parms 278 | { 279 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 280 | }; 281 | 282 | // Function SFGameContent.SFCItem_Common_SpeedUpBoots.ApplyItemToHostPawn 283 | // [0x00022002] 284 | struct USFCItem_Common_SpeedUpBoots_execApplyItemToHostPawn_Parms 285 | { 286 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 287 | }; 288 | 289 | // Function SFGameContent.SFCItem_UDT_CombatSuit.ApplyItemToHostPawn 290 | // [0x00022002] 291 | struct USFCItem_UDT_CombatSuit_execApplyItemToHostPawn_Parms 292 | { 293 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 294 | }; 295 | 296 | // Function SFGameContent.SFCItem_UDT_NormalSuit.ApplyItemToHostPawn 297 | // [0x00022002] 298 | struct USFCItem_UDT_NormalSuit_execApplyItemToHostPawn_Parms 299 | { 300 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 301 | }; 302 | 303 | // Function SFGameContent.SFCItem_GAFE_CombatSuit.ApplyItemToHostPawn 304 | // [0x00022002] 305 | struct USFCItem_GAFE_CombatSuit_execApplyItemToHostPawn_Parms 306 | { 307 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 308 | }; 309 | 310 | // Function SFGameContent.SFCItem_GAFE_NormalSuit.ApplyItemToHostPawn 311 | // [0x00022002] 312 | struct USFCItem_GAFE_NormalSuit_execApplyItemToHostPawn_Parms 313 | { 314 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 315 | }; 316 | 317 | // Function SFGameContent.SFCItem_GIGN_CombatSuit.ApplyItemToHostPawn 318 | // [0x00022002] 319 | struct USFCItem_GIGN_CombatSuit_execApplyItemToHostPawn_Parms 320 | { 321 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 322 | }; 323 | 324 | // Function SFGameContent.SFCItem_GIGN_NormalSuit.ApplyItemToHostPawn 325 | // [0x00022002] 326 | struct USFCItem_GIGN_NormalSuit_execApplyItemToHostPawn_Parms 327 | { 328 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 329 | }; 330 | 331 | // Function SFGameContent.SFCItem_SAS_CombatSuit.ApplyItemToHostPawn 332 | // [0x00022002] 333 | struct USFCItem_SAS_CombatSuit_execApplyItemToHostPawn_Parms 334 | { 335 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 336 | }; 337 | 338 | // Function SFGameContent.SFCItem_SAS_NormalSuit.ApplyItemToHostPawn 339 | // [0x00022002] 340 | struct USFCItem_SAS_NormalSuit_execApplyItemToHostPawn_Parms 341 | { 342 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 343 | }; 344 | 345 | // Function SFGameContent.SFCItem_Spetsnaz_CombatSuit.ApplyItemToHostPawn 346 | // [0x00022002] 347 | struct USFCItem_Spetsnaz_CombatSuit_execApplyItemToHostPawn_Parms 348 | { 349 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 350 | }; 351 | 352 | // Function SFGameContent.SFCItem_Spetsnaz_NormalSuit.ApplyItemToHostPawn 353 | // [0x00022002] 354 | struct USFCItem_Spetsnaz_NormalSuit_execApplyItemToHostPawn_Parms 355 | { 356 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 357 | }; 358 | 359 | // Function SFGameContent.SFCItem_DeltaForce_CombatSuit.ApplyItemToHostPawn 360 | // [0x00022002] 361 | struct USFCItem_DeltaForce_CombatSuit_execApplyItemToHostPawn_Parms 362 | { 363 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 364 | }; 365 | 366 | // Function SFGameContent.SFCItem_DeltaForce_NormalSuit.ApplyItemToHostPawn 367 | // [0x00022002] 368 | struct USFCItem_DeltaForce_NormalSuit_execApplyItemToHostPawn_Parms 369 | { 370 | class ASFPawn* AppliedPawn; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 371 | }; 372 | 373 | // Function SFGameContent.SFCItem_GPM30A1.ApplyItemToWeapByPenalty 374 | // [0x00022002] 375 | struct USFCItem_GPM30A1_execApplyItemToWeapByPenalty_Parms 376 | { 377 | class ASFWeapon* AppliedWeap; // 0x0000 (0x0004) [0x0000000000000080] ( CPF_Parm ) 378 | }; 379 | 380 | 381 | #ifdef _MSC_VER 382 | #pragma pack ( pop ) 383 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/OnlineSubsystemPC_classes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: OnlineSubsystemPC_classes.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Constants 21 | # ========================================================================================= # 22 | */ 23 | 24 | #define CONST_KEYLENGTH_MAX 17 25 | 26 | /* 27 | # ========================================================================================= # 28 | # Enums 29 | # ========================================================================================= # 30 | */ 31 | 32 | // Enum OnlineSubsystemPC.SFPacketCryptHelper.ECryptReturnValue 33 | /*enum ECryptReturnValue 34 | { 35 | UNKNOWN_ERROR = 0, 36 | CRYPT_SUCCESS = 1, 37 | ENCRYPTION_ERROR_ALGORITHM_IS_NULL = 2, 38 | ENCRYPTION_ERROR_BUFFERSIZE_IS_NULL = 3, 39 | ENCRYPTION_ERROR_AESKEY_SETTING = 4, 40 | DECRYPTION_ERROR_ALGORITHM_IS_NULL = 5, 41 | DECRYPTION_ERROR_BUFFERSIZE_IS_NULL = 6, 42 | DECRYPTION_ERROR_AESKEY_SETTING = 7, 43 | DECRYPTION_ERROR_MD5_CHECK = 8, 44 | ECryptReturnValue_MAX = 9 45 | };*/ 46 | 47 | 48 | /* 49 | # ========================================================================================= # 50 | # Classes 51 | # ========================================================================================= # 52 | */ 53 | 54 | // Class OnlineSubsystemPC.OnlineSubsystemPC 55 | // 0x0130 (0x0214 - 0x00E4) 56 | class UOnlineSubsystemPC : public UOnlineSubsystemCommonImpl 57 | { 58 | public: 59 | struct FString ProfileDataDirectory; // 0x00E4 (0x000C) [0x0000000000404000] ( CPF_Config | CPF_NeedCtorLink ) 60 | struct FString ProfileDataExtension; // 0x00F0 (0x000C) [0x0000000000404000] ( CPF_Config | CPF_NeedCtorLink ) 61 | TArray< struct FScriptDelegate > ReadProfileSettingsDelegates; // 0x00FC (0x000C) [0x0000000000402000] ( CPF_Transient | CPF_NeedCtorLink ) 62 | TArray< struct FScriptDelegate > WriteProfileSettingsDelegates; // 0x0108 (0x000C) [0x0000000000402000] ( CPF_Transient | CPF_NeedCtorLink ) 63 | class UOnlineProfileSettings* CachedProfile; // 0x0114 (0x0004) [0x0000000000002000] ( CPF_Transient ) 64 | struct FScriptDelegate __OnReadProfileSettingsComplete__Delegate; // 0x0118 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 65 | struct FScriptDelegate __OnWriteProfileSettingsComplete__Delegate; // 0x0124 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 66 | struct FScriptDelegate __OnLoginChange__Delegate; // 0x0130 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 67 | struct FScriptDelegate __OnLoginCancelled__Delegate; // 0x013C (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 68 | struct FScriptDelegate __OnMutingChange__Delegate; // 0x0148 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 69 | struct FScriptDelegate __OnFriendsChange__Delegate; // 0x0154 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 70 | struct FScriptDelegate __OnLoginFailed__Delegate; // 0x0160 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 71 | struct FScriptDelegate __OnLogoutCompleted__Delegate; // 0x016C (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 72 | struct FScriptDelegate __OnLoginStatusChange__Delegate; // 0x0178 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 73 | struct FScriptDelegate __OnReadFriendsComplete__Delegate; // 0x0184 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 74 | struct FScriptDelegate __OnKeyboardInputComplete__Delegate; // 0x0190 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 75 | struct FScriptDelegate __OnAddFriendByNameComplete__Delegate; // 0x019C (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 76 | struct FScriptDelegate __OnFriendInviteReceived__Delegate; // 0x01A8 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 77 | struct FScriptDelegate __OnReceivedGameInvite__Delegate; // 0x01B4 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 78 | struct FScriptDelegate __OnJoinFriendGameComplete__Delegate; // 0x01C0 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 79 | struct FScriptDelegate __OnFriendMessageReceived__Delegate; // 0x01CC (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 80 | struct FScriptDelegate __OnWritePlayerStorageComplete__Delegate; // 0x01D8 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 81 | struct FScriptDelegate __OnReadPlayerStorageForNetIdComplete__Delegate; // 0x01E4 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 82 | struct FScriptDelegate __OnReadPlayerStorageComplete__Delegate; // 0x01F0 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 83 | struct FScriptDelegate __OnReadAchievementsComplete__Delegate; // 0x01FC (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 84 | struct FScriptDelegate __OnUnlockAchievementComplete__Delegate; // 0x0208 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 85 | 86 | private: 87 | static UClass* pClassPointer; 88 | 89 | public: 90 | static UClass* StaticClass() 91 | { 92 | if ( ! pClassPointer ) 93 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2942 ]; 94 | 95 | return pClassPointer; 96 | }; 97 | 98 | bool eventProcessTwitchTVCallbackInGame ( int CurrentStatus, unsigned long IsFail, int ErrorCode ); 99 | bool eventProcessTwitchTVCallback ( int CurrentStatus, unsigned long IsFail, int ErrorCode ); 100 | bool eventOpenForceExitDialog ( int ExitType, int ErrCode ); 101 | void eventExit ( ); 102 | void nativeExit ( ); 103 | void eventHackShieldSendResponse ( TArray< unsigned char > Buffer ); 104 | struct FString eventGetProfileFileName ( ); 105 | struct FString eventGetPlayerLoginViewID ( ); 106 | void eventServerToSendExitGameWithError ( struct FString ErrorMsg ); 107 | bool UnlockAchievement ( unsigned char LocalUserNum, int AchievementId ); 108 | void AddUnlockAchievementCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate UnlockAchievementCompleteDelegate ); 109 | void ClearUnlockAchievementCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate UnlockAchievementCompleteDelegate ); 110 | bool ReadAchievements ( unsigned char LocalUserNum, int TitleId, unsigned long bShouldReadText, unsigned long bShouldReadImages ); 111 | void AddReadAchievementsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadAchievementsCompleteDelegate ); 112 | void ClearReadAchievementsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadAchievementsCompleteDelegate ); 113 | unsigned char GetAchievements ( unsigned char LocalUserNum, int TitleId, TArray< struct FAchievementDetails >* Achievements ); 114 | bool ReadPlayerStorage ( unsigned char LocalUserNum, class UOnlinePlayerStorage* PlayerStorage ); 115 | void ClearReadPlayerStorageCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadPlayerStorageCompleteDelegate ); 116 | bool ReadPlayerStorageForNetId ( struct FUniqueNetId NetId, class UOnlinePlayerStorage* PlayerStorage ); 117 | void AddReadPlayerStorageForNetIdCompleteDelegate ( struct FUniqueNetId NetId, struct FScriptDelegate ReadPlayerStorageForNetIdCompleteDelegate ); 118 | void AddReadPlayerStorageCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadPlayerStorageCompleteDelegate ); 119 | void ClearReadPlayerStorageForNetIdCompleteDelegate ( struct FUniqueNetId NetId, struct FScriptDelegate ReadPlayerStorageForNetIdCompleteDelegate ); 120 | class UOnlinePlayerStorage* GetPlayerStorage ( unsigned char LocalUserNum ); 121 | bool WritePlayerStorage ( unsigned char LocalUserNum, class UOnlinePlayerStorage* PlayerStorage ); 122 | void AddWritePlayerStorageCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate WritePlayerStorageCompleteDelegate ); 123 | void ClearWritePlayerStorageCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate WritePlayerStorageCompleteDelegate ); 124 | void OnUnlockAchievementComplete ( unsigned long bWasSuccessful ); 125 | void OnReadAchievementsComplete ( int TitleId ); 126 | void OnReadPlayerStorageComplete ( unsigned char LocalUserNum, unsigned long bWasSuccessful ); 127 | void OnReadPlayerStorageForNetIdComplete ( struct FUniqueNetId NetId, unsigned long bWasSuccessful ); 128 | void OnWritePlayerStorageComplete ( unsigned char LocalUserNum, unsigned long bWasSuccessful ); 129 | bool DeleteMessage ( unsigned char LocalUserNum, int MessageIndex ); 130 | void ClearFriendMessageReceivedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate MessageDelegate ); 131 | void AddFriendMessageReceivedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate MessageDelegate ); 132 | void OnFriendMessageReceived ( unsigned char LocalUserNum, struct FUniqueNetId SendingPlayer, struct FString SendingNick, struct FString Message ); 133 | void GetFriendMessages ( unsigned char LocalUserNum, TArray< struct FOnlineFriendMessage >* FriendMessages ); 134 | void ClearJoinFriendGameCompleteDelegate ( struct FScriptDelegate JoinFriendGameCompleteDelegate ); 135 | void AddJoinFriendGameCompleteDelegate ( struct FScriptDelegate JoinFriendGameCompleteDelegate ); 136 | void OnJoinFriendGameComplete ( unsigned long bWasSuccessful ); 137 | bool JoinFriendGame ( unsigned char LocalUserNum, struct FUniqueNetId Friend ); 138 | void ClearReceivedGameInviteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReceivedGameInviteDelegate ); 139 | void AddReceivedGameInviteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReceivedGameInviteDelegate ); 140 | void OnReceivedGameInvite ( unsigned char LocalUserNum, struct FString InviterName ); 141 | bool SendGameInviteToFriends ( unsigned char LocalUserNum, TArray< struct FUniqueNetId > Friends, struct FString Text ); 142 | bool SendGameInviteToFriend ( unsigned char LocalUserNum, struct FUniqueNetId Friend, struct FString Text ); 143 | bool SendMessageToFriend ( unsigned char LocalUserNum, struct FUniqueNetId Friend, struct FString Message ); 144 | void ClearFriendInviteReceivedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate InviteDelegate ); 145 | void AddFriendInviteReceivedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate InviteDelegate ); 146 | void OnFriendInviteReceived ( unsigned char LocalUserNum, struct FUniqueNetId RequestingPlayer, struct FString RequestingNick, struct FString Message ); 147 | bool RemoveFriend ( unsigned char LocalUserNum, struct FUniqueNetId FormerFriend ); 148 | bool DenyFriendInvite ( unsigned char LocalUserNum, struct FUniqueNetId RequestingPlayer ); 149 | bool AcceptFriendInvite ( unsigned char LocalUserNum, struct FUniqueNetId RequestingPlayer ); 150 | void ClearAddFriendByNameCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate FriendDelegate ); 151 | void AddAddFriendByNameCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate FriendDelegate ); 152 | void OnAddFriendByNameComplete ( unsigned long bWasSuccessful ); 153 | bool AddFriendByName ( unsigned char LocalUserNum, struct FString FriendName, struct FString Message ); 154 | bool AddFriend ( unsigned char LocalUserNum, struct FUniqueNetId NewFriend, struct FString Message ); 155 | struct FString GetKeyboardInputResults ( unsigned char* bWasCanceled ); 156 | void ClearKeyboardInputDoneDelegate ( struct FScriptDelegate InputDelegate ); 157 | void AddKeyboardInputDoneDelegate ( struct FScriptDelegate InputDelegate ); 158 | void OnKeyboardInputComplete ( unsigned long bWasSuccessful ); 159 | bool ShowKeyboardUI ( unsigned char LocalUserNum, struct FString TitleText, struct FString DescriptionText, unsigned long bIsPassword, unsigned long bShouldValidate, struct FString DefaultText, int MaxResultLength ); 160 | void SetOnlineStatus ( unsigned char LocalUserNum, int StatusId, TArray< struct FLocalizedStringSetting >* LocalizedStringSettings, TArray< struct FSettingsProperty >* Properties ); 161 | unsigned char GetFriendsList ( unsigned char LocalUserNum, int Count, int StartingAt, TArray< struct FOnlineFriend >* Friends ); 162 | void ClearReadFriendsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadFriendsCompleteDelegate ); 163 | void AddReadFriendsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadFriendsCompleteDelegate ); 164 | void OnReadFriendsComplete ( unsigned long bWasSuccessful ); 165 | bool ReadFriendsList ( unsigned char LocalUserNum, int Count, int StartingAt ); 166 | void ClearFriendsChangeDelegate ( unsigned char LocalUserNum, struct FScriptDelegate FriendsDelegate ); 167 | void AddFriendsChangeDelegate ( unsigned char LocalUserNum, struct FScriptDelegate FriendsDelegate ); 168 | void ClearMutingChangeDelegate ( struct FScriptDelegate MutingDelegate ); 169 | void AddMutingChangeDelegate ( struct FScriptDelegate MutingDelegate ); 170 | void ClearLoginCancelledDelegate ( struct FScriptDelegate CancelledDelegate ); 171 | void AddLoginCancelledDelegate ( struct FScriptDelegate CancelledDelegate ); 172 | void ClearLoginStatusChangeDelegate ( struct FScriptDelegate LoginStatusDelegate, unsigned char LocalUserNum ); 173 | void AddLoginStatusChangeDelegate ( struct FScriptDelegate LoginStatusDelegate, unsigned char LocalUserNum ); 174 | void OnLoginStatusChange ( unsigned char NewStatus, struct FUniqueNetId NewId ); 175 | void ClearLoginChangeDelegate ( struct FScriptDelegate LoginDelegate ); 176 | void AddLoginChangeDelegate ( struct FScriptDelegate LoginDelegate ); 177 | bool ShowFriendsUI ( unsigned char LocalUserNum ); 178 | bool IsMuted ( unsigned char LocalUserNum, struct FUniqueNetId PlayerID ); 179 | bool AreAnyFriends ( unsigned char LocalUserNum, TArray< struct FFriendsQuery >* Query ); 180 | bool IsFriend ( unsigned char LocalUserNum, struct FUniqueNetId PlayerID ); 181 | unsigned char CanShowPresenceInformation ( unsigned char LocalUserNum ); 182 | unsigned char CanViewPlayerProfiles ( unsigned char LocalUserNum ); 183 | unsigned char CanPurchaseContent ( unsigned char LocalUserNum ); 184 | unsigned char CanDownloadUserContent ( unsigned char LocalUserNum ); 185 | unsigned char CanCommunicate ( unsigned char LocalUserNum ); 186 | unsigned char CanPlayOnline ( unsigned char LocalUserNum ); 187 | bool IsLocalLogin ( unsigned char LocalUserNum ); 188 | bool IsGuestLogin ( unsigned char LocalUserNum ); 189 | struct FString GetPlayerNickname ( unsigned char LocalUserNum ); 190 | bool GetUniquePlayerId ( unsigned char LocalUserNum, struct FUniqueNetId* PlayerID ); 191 | unsigned char GetLoginStatus ( unsigned char LocalUserNum ); 192 | void ClearLogoutCompletedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate LogoutDelegate ); 193 | void AddLogoutCompletedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate LogoutDelegate ); 194 | void OnLogoutCompleted ( unsigned long bWasSuccessful ); 195 | bool Logout ( unsigned char LocalUserNum ); 196 | void ClearLoginFailedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate LoginDelegate ); 197 | void AddLoginFailedDelegate ( unsigned char LocalUserNum, struct FScriptDelegate LoginDelegate ); 198 | void OnLoginFailed ( unsigned char LocalUserNum, unsigned char ErrorCode ); 199 | bool AutoLogin ( ); 200 | bool Login ( unsigned char LocalUserNum, struct FString LoginName, struct FString Password, unsigned long bWantsLocalOnly ); 201 | bool ShowLoginUI ( unsigned long bShowOnlineOnly ); 202 | void OnFriendsChange ( ); 203 | void OnMutingChange ( ); 204 | void OnLoginCancelled ( ); 205 | void OnLoginChange ( unsigned char LocalUserNum ); 206 | void ClearWriteProfileSettingsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate WriteProfileSettingsCompleteDelegate ); 207 | void AddWriteProfileSettingsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate WriteProfileSettingsCompleteDelegate ); 208 | void OnWriteProfileSettingsComplete ( unsigned char LocalUserNum, unsigned long bWasSuccessful ); 209 | bool WriteProfileSettings ( unsigned char LocalUserNum, class UOnlineProfileSettings* ProfileSettings ); 210 | class UOnlineProfileSettings* GetProfileSettings ( unsigned char LocalUserNum ); 211 | void ClearReadProfileSettingsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadProfileSettingsCompleteDelegate ); 212 | void AddReadProfileSettingsCompleteDelegate ( unsigned char LocalUserNum, struct FScriptDelegate ReadProfileSettingsCompleteDelegate ); 213 | void OnReadProfileSettingsComplete ( unsigned char LocalUserNum, unsigned long bWasSuccessful ); 214 | bool ReadProfileSettings ( unsigned char LocalUserNum, class UOnlineProfileSettings* ProfileSettings ); 215 | }; 216 | 217 | UClass* UOnlineSubsystemPC::pClassPointer = NULL; 218 | 219 | // Class OnlineSubsystemPC.Packet 220 | // 0x0818 (0x0854 - 0x003C) 221 | class UPacket : public UObject 222 | { 223 | public: 224 | struct FData _data; // 0x003C (0x0804) [0x0000000000002000] ( CPF_Transient ) 225 | struct FPointer Buffer; // 0x0840 (0x0004) [0x0000000000002000] ( CPF_Transient ) 226 | int total_size; // 0x0844 (0x0004) [0x0000000000002000] ( CPF_Transient ) 227 | int st_point; // 0x0848 (0x0004) [0x0000000000002000] ( CPF_Transient ) 228 | int Point; // 0x084C (0x0004) [0x0000000000002000] ( CPF_Transient ) 229 | unsigned long mcopy : 1; // 0x0850 (0x0004) [0x0000000000002000] [0x00000001] ( CPF_Transient ) 230 | 231 | private: 232 | static UClass* pClassPointer; 233 | 234 | public: 235 | static UClass* StaticClass() 236 | { 237 | if ( ! pClassPointer ) 238 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2944 ]; 239 | 240 | return pClassPointer; 241 | }; 242 | 243 | void CopyData ( class UPacket* recvPacket ); 244 | struct FQWord getLong ( int num ); 245 | float GetFloat ( int num ); 246 | struct FString GetString ( int num ); 247 | int getShort ( int num ); 248 | int GetInt ( int num ); 249 | int getByte ( int num ); 250 | int getCommand ( ); 251 | void addLong ( struct FQWord Value ); 252 | void AddFloat ( float Value ); 253 | void AddString ( struct FString Value ); 254 | void addShort ( int Value ); 255 | void AddInt ( int Value ); 256 | void addByte ( unsigned char Value ); 257 | void setCommand ( int Command ); 258 | void setPoint ( int N ); 259 | void setDefaultPoint ( int Pt ); 260 | void release ( ); 261 | void Init ( ); 262 | }; 263 | 264 | UClass* UPacket::pClassPointer = NULL; 265 | 266 | // Class OnlineSubsystemPC.SFPacketCryptHelper 267 | // 0x0018 (0x0054 - 0x003C) 268 | class USFPacketCryptHelper : public UObject 269 | { 270 | public: 271 | unsigned char Key[ 0x11 ]; // 0x003C (0x0011) [0x0000000000000000] 272 | int KeyLengthMaxForCPP; // 0x0050 (0x0004) [0x0000000000000000] 273 | 274 | private: 275 | static UClass* pClassPointer; 276 | 277 | public: 278 | static UClass* StaticClass() 279 | { 280 | if ( ! pClassPointer ) 281 | pClassPointer = (UClass*) UObject::GObjObjects()->Data[ 2946 ]; 282 | 283 | return pClassPointer; 284 | }; 285 | 286 | void SetKey ( struct FString strKey ); 287 | unsigned char Decrypt ( class UPacket* Packet ); 288 | unsigned char Encrypt ( class UPacket* Packet ); 289 | }; 290 | 291 | UClass* USFPacketCryptHelper::pClassPointer = NULL; 292 | 293 | 294 | #ifdef _MSC_VER 295 | #pragma pack ( pop ) 296 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/GameFramework_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: GameFramework_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // ScriptStruct GameFramework.GameTypes.AgentArchetypeInfo 25 | // 0x001C 26 | struct FAgentArchetypeInfo 27 | { 28 | class UObject* AgentArchetype; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 29 | float FrequencyModifier; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 30 | int MaxAllowed; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 31 | int CurrSpawned; // 0x000C (0x0004) [0x0000000000002000] ( CPF_Transient ) 32 | TArray< class UObject* > GroupMembers; // 0x0010 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 33 | }; 34 | 35 | // ScriptStruct GameFramework.GameTypes.CrowdSpawnInfoItem 36 | // 0x007C 37 | struct FCrowdSpawnInfoItem 38 | { 39 | class USeqAct_GameCrowdPopulationManagerToggle* SeqSpawner; // 0x0000 (0x0004) [0x0000000000000000] 40 | unsigned long bSpawningActive : 1; // 0x0004 (0x0004) [0x0000000000000000] [0x00000001] 41 | float SpawnRate; // 0x0008 (0x0004) [0x0000000000000000] 42 | int SpawnNum; // 0x000C (0x0004) [0x0000000000000000] 43 | float Remainder; // 0x0010 (0x0004) [0x0000000000000000] 44 | TArray< class AGameCrowdAgent* > ActiveAgents; // 0x0014 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 45 | TArray< struct FAgentArchetypeInfo > AgentArchetypes; // 0x0020 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 46 | float AgentFrequencySum; // 0x002C (0x0004) [0x0000000000000000] 47 | float MaxSpawnDist; // 0x0030 (0x0004) [0x0000000000000000] 48 | float MaxSpawnDistSq; // 0x0034 (0x0004) [0x0000000000000000] 49 | float MinBehindSpawnDist; // 0x0038 (0x0004) [0x0000000000000000] 50 | float MinBehindSpawnDistSq; // 0x003C (0x0004) [0x0000000000000000] 51 | float AgentWarmupTime; // 0x0040 (0x0004) [0x0000000000000000] 52 | unsigned long bForceObstacleChecking : 1; // 0x0044 (0x0004) [0x0000000000000000] [0x00000001] 53 | unsigned long bForceNavMeshPathing : 1; // 0x0044 (0x0004) [0x0000000000000000] [0x00000002] 54 | unsigned long bEnableCrowdLightEnvironment : 1; // 0x0044 (0x0004) [0x0000000000000000] [0x00000004] 55 | unsigned long bCastShadows : 1; // 0x0044 (0x0004) [0x0000000000000000] [0x00000008] 56 | struct FLightingChannelContainer AgentLightingChannel; // 0x0048 (0x0004) [0x0000000000000000] 57 | int NumAgentsToTickPerFrame; // 0x004C (0x0004) [0x0000000000000001] ( CPF_Edit ) 58 | int LastAgentTickedIndex; // 0x0050 (0x0004) [0x0000000000000000] 59 | TArray< class AGameCrowdDestination* > PotentialSpawnPoints; // 0x0054 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 60 | float SpawnPrioritizationInterval; // 0x0060 (0x0004) [0x0000000000000000] 61 | int PrioritizationIndex; // 0x0064 (0x0004) [0x0000000000000000] 62 | int PrioritizationUpdateIndex; // 0x0068 (0x0004) [0x0000000000000000] 63 | TArray< class AGameCrowdDestination* > PrioritizedSpawnPoints; // 0x006C (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 64 | float PlayerPositionPredictionTime; // 0x0078 (0x0004) [0x0000000000000000] 65 | }; 66 | 67 | // ScriptStruct GameFramework.GameTypes.CrowdSpawnerPlayerInfo 68 | // 0x0028 69 | struct FCrowdSpawnerPlayerInfo 70 | { 71 | struct FVector ViewLocation; // 0x0000 (0x000C) [0x0000000000000000] 72 | struct FRotator ViewRotation; // 0x000C (0x000C) [0x0000000000000000] 73 | struct FVector PredictLocation; // 0x0018 (0x000C) [0x0000000000000000] 74 | class APlayerController* PC; // 0x0024 (0x0004) [0x0000000000000000] 75 | }; 76 | 77 | // ScriptStruct GameFramework.GameTypes.NearbyDynamicItem 78 | // 0x0004 79 | struct FNearbyDynamicItem 80 | { 81 | class AActor* Dynamic; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 82 | }; 83 | 84 | // ScriptStruct GameFramework.GameTypes.AICmdHistoryItem 85 | // 0x0014 86 | struct FAICmdHistoryItem 87 | { 88 | class UClass* CmdClass; // 0x0000 (0x0004) [0x0000000000000000] 89 | float TimeStamp; // 0x0004 (0x0004) [0x0000000000000000] 90 | struct FString VerboseString; // 0x0008 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 91 | }; 92 | 93 | // ScriptStruct GameFramework.GameTypes.SpecialMoveStruct 94 | // 0x0014 95 | struct FSpecialMoveStruct 96 | { 97 | struct FName SpecialMoveName; // 0x0000 (0x0008) [0x0000000000000000] 98 | class AGamePawn* InteractionPawn; // 0x0008 (0x0004) [0x0000000000000000] 99 | class AActor* InteractionActor; // 0x000C (0x0004) [0x0000000000000000] 100 | int Flags; // 0x0010 (0x0004) [0x0000000000000000] 101 | }; 102 | 103 | // ScriptStruct GameFramework.GameTypes.GameSpecialMoveInfo 104 | // 0x0010 105 | struct FGameSpecialMoveInfo 106 | { 107 | struct FName SpecialMoveName; // 0x0000 (0x0008) [0x0000000000000001] ( CPF_Edit ) 108 | class UClass* SpecialMoveClass; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 109 | class UGameSpecialMove* SpecialMoveInstance; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 110 | }; 111 | 112 | // ScriptStruct GameFramework.GameTypes.TakeHitInfo 113 | // 0x0038 114 | struct FTakeHitInfo 115 | { 116 | struct FVector HitLocation; // 0x0000 (0x000C) [0x0000000000000000] 117 | struct FVector Momentum; // 0x000C (0x000C) [0x0000000000000000] 118 | class UClass* DamageType; // 0x0018 (0x0004) [0x0000000000000000] 119 | class APawn* InstigatedBy; // 0x001C (0x0004) [0x0000000000000000] 120 | unsigned char HitBoneIndex; // 0x0020 (0x0001) [0x0000000000000000] 121 | class UPhysicalMaterial* PhysicalMaterial; // 0x0024 (0x0004) [0x0000000000000000] 122 | float Damage; // 0x0028 (0x0004) [0x0000000000000000] 123 | struct FVector RadialDamageOrigin; // 0x002C (0x000C) [0x0000000000000000] 124 | }; 125 | 126 | // ScriptStruct GameFramework.GameTypes.ShakeParams 127 | // 0x0004 128 | struct FShakeParams 129 | { 130 | unsigned char X; // 0x0000 (0x0001) [0x0000000000000000] 131 | unsigned char Y; // 0x0001 (0x0001) [0x0000000000000000] 132 | unsigned char Z; // 0x0002 (0x0001) [0x0000000000000000] 133 | unsigned char Padding; // 0x0003 (0x0001) [0x0000000000002002] ( CPF_Const | CPF_Transient ) 134 | }; 135 | 136 | // ScriptStruct GameFramework.GameTypes.ScreenShakeStruct 137 | // 0x0078 138 | struct FScreenShakeStruct 139 | { 140 | float TimeToGo; // 0x0000 (0x0004) [0x0000000000000000] 141 | float TimeDuration; // 0x0004 (0x0004) [0x0000000000000000] 142 | struct FVector RotAmplitude; // 0x0008 (0x000C) [0x0000000000000000] 143 | struct FVector RotFrequency; // 0x0014 (0x000C) [0x0000000000000000] 144 | struct FVector RotSinOffset; // 0x0020 (0x000C) [0x0000000000000000] 145 | struct FShakeParams RotParam; // 0x002C (0x0004) [0x0000000000000000] 146 | struct FVector LocAmplitude; // 0x0030 (0x000C) [0x0000000000000000] 147 | struct FVector LocFrequency; // 0x003C (0x000C) [0x0000000000000000] 148 | struct FVector LocSinOffset; // 0x0048 (0x000C) [0x0000000000000000] 149 | struct FShakeParams LocParam; // 0x0054 (0x0004) [0x0000000000000000] 150 | float FOVAmplitude; // 0x0058 (0x0004) [0x0000000000000000] 151 | float FOVFrequency; // 0x005C (0x0004) [0x0000000000000000] 152 | float FOVSinOffset; // 0x0060 (0x0004) [0x0000000000000000] 153 | unsigned char FOVParam; // 0x0064 (0x0001) [0x0000000000000000] 154 | struct FName ShakeName; // 0x0068 (0x0008) [0x0000000000000000] 155 | unsigned long bOverrideTargetingDampening : 1; // 0x0070 (0x0004) [0x0000000000000000] [0x00000001] 156 | float TargetingDampening; // 0x0074 (0x0004) [0x0000000000000000] 157 | }; 158 | 159 | // ScriptStruct GameFramework.GameTypes.ScreenShakeAnimStruct 160 | // 0x0030 161 | struct FScreenShakeAnimStruct 162 | { 163 | class UCameraAnim* Anim; // 0x0000 (0x0004) [0x0000000000000000] 164 | unsigned long bUseDirectionalAnimVariants : 1; // 0x0004 (0x0004) [0x0000000000000000] [0x00000001] 165 | class UCameraAnim* Anim_Left; // 0x0008 (0x0004) [0x0000000000000000] 166 | class UCameraAnim* Anim_Right; // 0x000C (0x0004) [0x0000000000000000] 167 | class UCameraAnim* Anim_Rear; // 0x0010 (0x0004) [0x0000000000000000] 168 | float AnimPlayRate; // 0x0014 (0x0004) [0x0000000000000000] 169 | float AnimScale; // 0x0018 (0x0004) [0x0000000000000000] 170 | float AnimBlendInTime; // 0x001C (0x0004) [0x0000000000000000] 171 | float AnimBlendOutTime; // 0x0020 (0x0004) [0x0000000000000000] 172 | unsigned long bRandomSegment : 1; // 0x0024 (0x0004) [0x0000000000000000] [0x00000001] 173 | float RandomSegmentDuration; // 0x0028 (0x0004) [0x0000000000000000] 174 | unsigned long bSingleInstance : 1; // 0x002C (0x0004) [0x0000000000000000] [0x00000001] 175 | }; 176 | 177 | // ScriptStruct GameFramework.GameCrowdAgent.AvoidOtherSampleItem 178 | // 0x000C 179 | struct FAvoidOtherSampleItem 180 | { 181 | int RotOffset; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 182 | unsigned char NumMagSamples; // 0x0004 (0x0001) [0x0000000000000001] ( CPF_Edit ) 183 | unsigned long bFallbackOnly : 1; // 0x0008 (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 184 | }; 185 | 186 | // ScriptStruct GameFramework.GameCrowdAgent.RecentInteraction 187 | // 0x000C 188 | struct FRecentInteraction 189 | { 190 | struct FName InteractionTag; // 0x0000 (0x0008) [0x0000000000000000] 191 | float InteractionDelay; // 0x0008 (0x0004) [0x0000000000000000] 192 | }; 193 | 194 | // ScriptStruct GameFramework.GameCrowdAgent.BehaviorEntry 195 | // 0x0010 196 | struct FBehaviorEntry 197 | { 198 | class UGameCrowdAgentBehavior* BehaviorArchetype; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 199 | class AActor* LookAtActor; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 200 | float BehaviorFrequency; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 201 | unsigned long bNeverRepeat : 1; // 0x000C (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 202 | unsigned long bHasBeenUsed : 1; // 0x000C (0x0004) [0x0000000000000000] [0x00000002] 203 | unsigned long bCanBeUsed : 1; // 0x000C (0x0004) [0x0000000000000000] [0x00000004] 204 | }; 205 | 206 | // ScriptStruct GameFramework.GameCrowdAgentSkeletal.GameCrowdAttachmentInfo 207 | // 0x0014 208 | struct FGameCrowdAttachmentInfo 209 | { 210 | class UStaticMesh* StaticMesh; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 211 | float Chance; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 212 | struct FVector Scale3D; // 0x0008 (0x000C) [0x0000000000000001] ( CPF_Edit ) 213 | }; 214 | 215 | // ScriptStruct GameFramework.GameCrowdAgentSkeletal.GameCrowdAttachmentList 216 | // 0x0014 217 | struct FGameCrowdAttachmentList 218 | { 219 | struct FName SocketName; // 0x0000 (0x0008) [0x0000000000000001] ( CPF_Edit ) 220 | TArray< struct FGameCrowdAttachmentInfo > List; // 0x0008 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 221 | }; 222 | 223 | // ScriptStruct GameFramework.GameSkelCtrl_Recoil.RecoilParams 224 | // 0x0004 225 | struct FRecoilParams 226 | { 227 | unsigned char X; // 0x0000 (0x0001) [0x0000000000000001] ( CPF_Edit ) 228 | unsigned char Y; // 0x0001 (0x0001) [0x0000000000000001] ( CPF_Edit ) 229 | unsigned char Z; // 0x0002 (0x0001) [0x0000000000000001] ( CPF_Edit ) 230 | unsigned char Padding; // 0x0003 (0x0001) [0x0000000000002002] ( CPF_Const | CPF_Transient ) 231 | }; 232 | 233 | // ScriptStruct GameFramework.GameSkelCtrl_Recoil.RecoilDef 234 | // 0x0070 235 | struct FRecoilDef 236 | { 237 | float TimeToGo; // 0x0000 (0x0004) [0x0000000000002000] ( CPF_Transient ) 238 | float TimeDuration; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 239 | struct FVector RotAmplitude; // 0x0008 (0x000C) [0x0000000000000001] ( CPF_Edit ) 240 | struct FVector RotFrequency; // 0x0014 (0x000C) [0x0000000000000001] ( CPF_Edit ) 241 | struct FVector RotSinOffset; // 0x0020 (0x000C) [0x0000000000000000] 242 | struct FRecoilParams RotParams; // 0x002C (0x0004) [0x0000000000000001] ( CPF_Edit ) 243 | struct FRotator RotOffset; // 0x0030 (0x000C) [0x0000000000002000] ( CPF_Transient ) 244 | struct FVector LocAmplitude; // 0x003C (0x000C) [0x0000000000000001] ( CPF_Edit ) 245 | struct FVector LocFrequency; // 0x0048 (0x000C) [0x0000000000000001] ( CPF_Edit ) 246 | struct FVector LocSinOffset; // 0x0054 (0x000C) [0x0000000000000000] 247 | struct FRecoilParams LocParams; // 0x0060 (0x0004) [0x0000000000000001] ( CPF_Edit ) 248 | struct FVector LocOffset; // 0x0064 (0x000C) [0x0000000000002000] ( CPF_Transient ) 249 | }; 250 | 251 | // ScriptStruct GameFramework.GameThirdPersonCamera.PenetrationAvoidanceFeeler 252 | // 0x0020 253 | struct FPenetrationAvoidanceFeeler 254 | { 255 | struct FRotator AdjustmentRot; // 0x0000 (0x000C) [0x0000000000000001] ( CPF_Edit ) 256 | float WorldWeight; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 257 | float PawnWeight; // 0x0010 (0x0004) [0x0000000000000001] ( CPF_Edit ) 258 | struct FVector Extent; // 0x0014 (0x000C) [0x0000000000000001] ( CPF_Edit ) 259 | }; 260 | 261 | // ScriptStruct GameFramework.GameThirdPersonCamera.CamFocusPointParams 262 | // 0x0034 263 | struct FCamFocusPointParams 264 | { 265 | class AActor* FocusActor; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 266 | struct FName FocusBoneName; // 0x0004 (0x0008) [0x0000000000000001] ( CPF_Edit ) 267 | struct FVector FocusWorldLoc; // 0x000C (0x000C) [0x0000000000000001] ( CPF_Edit ) 268 | float CameraFOV; // 0x0018 (0x0004) [0x0000000000000001] ( CPF_Edit ) 269 | struct FVector2D InterpSpeedRange; // 0x001C (0x0008) [0x0000000000000001] ( CPF_Edit ) 270 | struct FVector2D InFocusFOV; // 0x0024 (0x0008) [0x0000000000000001] ( CPF_Edit ) 271 | unsigned long bAlwaysFocus : 1; // 0x002C (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 272 | unsigned long bAdjustCamera : 1; // 0x002C (0x0004) [0x0000000000000001] [0x00000002] ( CPF_Edit ) 273 | unsigned long bIgnoreTrace : 1; // 0x002C (0x0004) [0x0000000000000001] [0x00000004] ( CPF_Edit ) 274 | float FocusPitchOffsetDeg; // 0x0030 (0x0004) [0x0000000000000001] ( CPF_Edit ) 275 | }; 276 | 277 | // ScriptStruct GameFramework.GameThirdPersonCameraMode.ViewOffsetData 278 | // 0x0024 279 | struct FViewOffsetData 280 | { 281 | struct FVector OffsetHigh; // 0x0000 (0x000C) [0x0000000000000001] ( CPF_Edit ) 282 | struct FVector OffsetMid; // 0x000C (0x000C) [0x0000000000000001] ( CPF_Edit ) 283 | struct FVector OffsetLow; // 0x0018 (0x000C) [0x0000000000000001] ( CPF_Edit ) 284 | }; 285 | 286 | // ScriptStruct GameFramework.MobileHUD.MobileInputZone 287 | // 0x005C 288 | struct FMobileInputZone 289 | { 290 | struct FName InputKey; // 0x0000 (0x0008) [0x0000000000000000] 291 | struct FName HorizontalInputKey; // 0x0008 (0x0008) [0x0000000000000000] 292 | struct FName TapInputKey; // 0x0010 (0x0008) [0x0000000000000000] 293 | struct FString Desc; // 0x0018 (0x000C) [0x0000000000500000] ( CPF_NeedCtorLink ) 294 | int Config; // 0x0024 (0x0004) [0x0000000000000000] 295 | int X; // 0x0028 (0x0004) [0x0000000000000000] 296 | int Y; // 0x002C (0x0004) [0x0000000000000000] 297 | int SizeX; // 0x0030 (0x0004) [0x0000000000000000] 298 | int SizeY; // 0x0034 (0x0004) [0x0000000000000000] 299 | int Border; // 0x0038 (0x0004) [0x0000000000000000] 300 | unsigned long bIsInvisible : 1; // 0x003C (0x0004) [0x0000000000000000] [0x00000001] 301 | unsigned char Type; // 0x0040 (0x0001) [0x0000000000000000] 302 | unsigned char State; // 0x0041 (0x0001) [0x0000000000000000] 303 | float VertMultiplier; // 0x0044 (0x0004) [0x0000000000000000] 304 | float HorizMultiplier; // 0x0048 (0x0004) [0x0000000000000000] 305 | int CurX; // 0x004C (0x0004) [0x0000000000000000] 306 | int CurY; // 0x0050 (0x0004) [0x0000000000000000] 307 | int CurCenterX; // 0x0054 (0x0004) [0x0000000000000000] 308 | int CurCenterY; // 0x0058 (0x0004) [0x0000000000000000] 309 | }; 310 | 311 | // ScriptStruct GameFramework.SeqAct_ModifyProperty.PropertyInfo 312 | // 0x0018 313 | struct FPropertyInfo 314 | { 315 | struct FName PropertyName; // 0x0000 (0x0008) [0x0000000000000001] ( CPF_Edit ) 316 | unsigned long bModifyProperty : 1; // 0x0008 (0x0004) [0x0000000000000001] [0x00000001] ( CPF_Edit ) 317 | struct FString PropertyValue; // 0x000C (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 318 | }; 319 | 320 | 321 | #ifdef _MSC_VER 322 | #pragma pack ( pop ) 323 | #endif -------------------------------------------------------------------------------- /SpecialForce2/SF2_SDK/SDK_HEADERS/Core_structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | ############################################################################################# 3 | # Special Force 2 (1.0.46397.0) SDK 4 | # Generated with TheFeckless UE3 SDK Generator v1.4_Beta-Rev.51 5 | # ========================================================================================= # 6 | # File: Core_structs.h 7 | # ========================================================================================= # 8 | # Credits: uNrEaL, Tamimego, SystemFiles, R00T88, _silencer, the1domo, K@N@VEL, crylessdomore 9 | # Thanks: HOOAH07, lowHertz 10 | # Forums: www.uc-forum.com, www.gamedeception.net 11 | ############################################################################################# 12 | */ 13 | 14 | #ifdef _MSC_VER 15 | #pragma pack ( push, 0x4 ) 16 | #endif 17 | 18 | /* 19 | # ========================================================================================= # 20 | # Script Structs 21 | # ========================================================================================= # 22 | */ 23 | 24 | // ScriptStruct Core.Object.QWord 25 | // 0x0008 26 | struct FQWord 27 | { 28 | int A; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 29 | int B; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 30 | }; 31 | 32 | // ScriptStruct Core.Object.Pointer 33 | // 0x0004 34 | struct FPointer 35 | { 36 | int Dummy; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 37 | }; 38 | 39 | // ScriptStruct Core.Object.Rotator 40 | // 0x000C 41 | struct FRotator 42 | { 43 | int Pitch; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 44 | int Yaw; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 45 | int Roll; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 46 | }; 47 | 48 | // ScriptStruct Core.Object.Vector 49 | // 0x000C 50 | struct FVector 51 | { 52 | float X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 53 | float Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 54 | float Z; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 55 | }; 56 | 57 | // ScriptStruct Core.Object.Plane 58 | // 0x0004(0x0010 - 0x000C) 59 | struct FPlane : FVector 60 | { 61 | float W; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 62 | }; 63 | 64 | // ScriptStruct Core.Object.Guid 65 | // 0x0010 66 | struct FGuid 67 | { 68 | int A; // 0x0000 (0x0004) [0x0000000000000000] 69 | int B; // 0x0004 (0x0004) [0x0000000000000000] 70 | int C; // 0x0008 (0x0004) [0x0000000000000000] 71 | int D; // 0x000C (0x0004) [0x0000000000000000] 72 | }; 73 | 74 | // ScriptStruct Core.Object.Vector2D 75 | // 0x0008 76 | struct FVector2D 77 | { 78 | float X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 79 | float Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 80 | }; 81 | 82 | // ScriptStruct Core.Object.Vector4 83 | // 0x0010 84 | struct FVector4 85 | { 86 | float X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 87 | float Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 88 | float Z; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 89 | float W; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 90 | }; 91 | 92 | // ScriptStruct Core.Object.LinearColor 93 | // 0x0010 94 | struct FLinearColor 95 | { 96 | float R; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 97 | float G; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 98 | float B; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 99 | float A; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 100 | }; 101 | 102 | // ScriptStruct Core.Object.Color 103 | // 0x0004 104 | struct FColor 105 | { 106 | unsigned char B; // 0x0000 (0x0001) [0x0000000000000001] ( CPF_Edit ) 107 | unsigned char G; // 0x0001 (0x0001) [0x0000000000000001] ( CPF_Edit ) 108 | unsigned char R; // 0x0002 (0x0001) [0x0000000000000001] ( CPF_Edit ) 109 | unsigned char A; // 0x0003 (0x0001) [0x0000000000000001] ( CPF_Edit ) 110 | }; 111 | 112 | // ScriptStruct Core.Object.InterpCurvePointVector2D 113 | // 0x001D 114 | struct FInterpCurvePointVector2D 115 | { 116 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 117 | struct FVector2D OutVal; // 0x0004 (0x0008) [0x0000000000000001] ( CPF_Edit ) 118 | struct FVector2D ArriveTangent; // 0x000C (0x0008) [0x0000000000000001] ( CPF_Edit ) 119 | struct FVector2D LeaveTangent; // 0x0014 (0x0008) [0x0000000000000001] ( CPF_Edit ) 120 | unsigned char InterpMode; // 0x001C (0x0001) [0x0000000000000001] ( CPF_Edit ) 121 | }; 122 | 123 | // ScriptStruct Core.Object.InterpCurveVector2D 124 | // 0x000D 125 | struct FInterpCurveVector2D 126 | { 127 | TArray< struct FInterpCurvePointVector2D > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 128 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 129 | }; 130 | 131 | // ScriptStruct Core.Object.InterpCurvePointFloat 132 | // 0x0011 133 | struct FInterpCurvePointFloat 134 | { 135 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 136 | float OutVal; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 137 | float ArriveTangent; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 138 | float LeaveTangent; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 139 | unsigned char InterpMode; // 0x0010 (0x0001) [0x0000000000000001] ( CPF_Edit ) 140 | }; 141 | 142 | // ScriptStruct Core.Object.InterpCurveFloat 143 | // 0x000D 144 | struct FInterpCurveFloat 145 | { 146 | TArray< struct FInterpCurvePointFloat > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 147 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 148 | }; 149 | 150 | // ScriptStruct Core.Object.Cylinder 151 | // 0x0008 152 | struct FCylinder 153 | { 154 | float Radius; // 0x0000 (0x0004) [0x0000000000000000] 155 | float Height; // 0x0004 (0x0004) [0x0000000000000000] 156 | }; 157 | 158 | // ScriptStruct Core.Object.InterpCurvePointVector 159 | // 0x0029 160 | struct FInterpCurvePointVector 161 | { 162 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 163 | struct FVector OutVal; // 0x0004 (0x000C) [0x0000000000000001] ( CPF_Edit ) 164 | struct FVector ArriveTangent; // 0x0010 (0x000C) [0x0000000000000001] ( CPF_Edit ) 165 | struct FVector LeaveTangent; // 0x001C (0x000C) [0x0000000000000001] ( CPF_Edit ) 166 | unsigned char InterpMode; // 0x0028 (0x0001) [0x0000000000000001] ( CPF_Edit ) 167 | }; 168 | 169 | // ScriptStruct Core.Object.InterpCurveVector 170 | // 0x000D 171 | struct FInterpCurveVector 172 | { 173 | TArray< struct FInterpCurvePointVector > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 174 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 175 | }; 176 | 177 | // ScriptStruct Core.Object.Quat 178 | // 0x0010 179 | struct FQuat 180 | { 181 | float X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 182 | float Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 183 | float Z; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 184 | float W; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 185 | }; 186 | 187 | // ScriptStruct Core.Object.Matrix 188 | // 0x0040 189 | struct FMatrix 190 | { 191 | struct FPlane XPlane; // 0x0000 (0x0010) [0x0000000000000001] ( CPF_Edit ) 192 | struct FPlane YPlane; // 0x0010 (0x0010) [0x0000000000000001] ( CPF_Edit ) 193 | struct FPlane ZPlane; // 0x0020 (0x0010) [0x0000000000000001] ( CPF_Edit ) 194 | struct FPlane WPlane; // 0x0030 (0x0010) [0x0000000000000001] ( CPF_Edit ) 195 | }; 196 | 197 | // ScriptStruct Core.Object.BoxSphereBounds 198 | // 0x001C 199 | struct FBoxSphereBounds 200 | { 201 | struct FVector Origin; // 0x0000 (0x000C) [0x0000000000000000] 202 | struct FVector BoxExtent; // 0x000C (0x000C) [0x0000000000000000] 203 | float SphereRadius; // 0x0018 (0x0004) [0x0000000000000000] 204 | }; 205 | 206 | // ScriptStruct Core.Object.TwoVectors 207 | // 0x0018 208 | struct FTwoVectors 209 | { 210 | struct FVector v1; // 0x0000 (0x000C) [0x0000000000000001] ( CPF_Edit ) 211 | struct FVector v2; // 0x000C (0x000C) [0x0000000000000001] ( CPF_Edit ) 212 | }; 213 | 214 | // ScriptStruct Core.Object.TAlphaBlend 215 | // 0x0015 216 | struct FTAlphaBlend 217 | { 218 | float AlphaIn; // 0x0000 (0x0004) [0x0000000000000002] ( CPF_Const ) 219 | float AlphaOut; // 0x0004 (0x0004) [0x0000000000000002] ( CPF_Const ) 220 | float AlphaTarget; // 0x0008 (0x0004) [0x0000000000000001] ( CPF_Edit ) 221 | float BlendTime; // 0x000C (0x0004) [0x0000000000000001] ( CPF_Edit ) 222 | float BlendTimeToGo; // 0x0010 (0x0004) [0x0000000000000002] ( CPF_Const ) 223 | unsigned char BlendType; // 0x0014 (0x0001) [0x0000000000000001] ( CPF_Edit ) 224 | }; 225 | 226 | // ScriptStruct Core.Object.BoneAtom 227 | // 0x0020 228 | struct FBoneAtom 229 | { 230 | struct FQuat Rotation; // 0x0000 (0x0010) [0x0000000000000000] 231 | struct FVector Translation; // 0x0010 (0x000C) [0x0000000000000000] 232 | float Scale; // 0x001C (0x0004) [0x0000000000000000] 233 | }; 234 | 235 | // ScriptStruct Core.Object.OctreeElementId 236 | // 0x0008 237 | struct FOctreeElementId 238 | { 239 | struct FPointer Node; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 240 | int ElementIndex; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 241 | }; 242 | 243 | // ScriptStruct Core.Object.RenderCommandFence 244 | // 0x0004 245 | struct FRenderCommandFence 246 | { 247 | int NumPendingFences; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 248 | }; 249 | 250 | // ScriptStruct Core.Object.RawDistribution 251 | // 0x0018 252 | struct FRawDistribution 253 | { 254 | unsigned char Type; // 0x0000 (0x0001) [0x0000000000000000] 255 | unsigned char Op; // 0x0001 (0x0001) [0x0000000000000000] 256 | unsigned char LookupTableNumElements; // 0x0002 (0x0001) [0x0000000000000000] 257 | unsigned char LookupTableChunkSize; // 0x0003 (0x0001) [0x0000000000000000] 258 | TArray< float > LookupTable; // 0x0004 (0x000C) [0x0000000000400000] ( CPF_NeedCtorLink ) 259 | float LookupTableTimeScale; // 0x0010 (0x0004) [0x0000000000000000] 260 | float LookupTableStartTime; // 0x0014 (0x0004) [0x0000000000000000] 261 | }; 262 | 263 | // ScriptStruct Core.Object.InterpCurvePointLinearColor 264 | // 0x0035 265 | struct FInterpCurvePointLinearColor 266 | { 267 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 268 | struct FLinearColor OutVal; // 0x0004 (0x0010) [0x0000000000000001] ( CPF_Edit ) 269 | struct FLinearColor ArriveTangent; // 0x0014 (0x0010) [0x0000000000000001] ( CPF_Edit ) 270 | struct FLinearColor LeaveTangent; // 0x0024 (0x0010) [0x0000000000000001] ( CPF_Edit ) 271 | unsigned char InterpMode; // 0x0034 (0x0001) [0x0000000000000001] ( CPF_Edit ) 272 | }; 273 | 274 | // ScriptStruct Core.Object.InterpCurveLinearColor 275 | // 0x000D 276 | struct FInterpCurveLinearColor 277 | { 278 | TArray< struct FInterpCurvePointLinearColor > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 279 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 280 | }; 281 | 282 | // ScriptStruct Core.Object.InterpCurvePointQuat 283 | // 0x0041 284 | struct FInterpCurvePointQuat 285 | { 286 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 287 | unsigned char UnknownData00[ 0xC ]; // 0x0004 (0x000C) MISSED OFFSET 288 | struct FQuat OutVal; // 0x0010 (0x0010) [0x0000000000000001] ( CPF_Edit ) 289 | struct FQuat ArriveTangent; // 0x0020 (0x0010) [0x0000000000000001] ( CPF_Edit ) 290 | struct FQuat LeaveTangent; // 0x0030 (0x0010) [0x0000000000000001] ( CPF_Edit ) 291 | unsigned char InterpMode; // 0x0040 (0x0001) [0x0000000000000001] ( CPF_Edit ) 292 | }; 293 | 294 | // ScriptStruct Core.Object.InterpCurveQuat 295 | // 0x000D 296 | struct FInterpCurveQuat 297 | { 298 | TArray< struct FInterpCurvePointQuat > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 299 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 300 | }; 301 | 302 | // ScriptStruct Core.Object.InterpCurvePointTwoVectors 303 | // 0x004D 304 | struct FInterpCurvePointTwoVectors 305 | { 306 | float InVal; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 307 | struct FTwoVectors OutVal; // 0x0004 (0x0018) [0x0000000000000001] ( CPF_Edit ) 308 | struct FTwoVectors ArriveTangent; // 0x001C (0x0018) [0x0000000000000001] ( CPF_Edit ) 309 | struct FTwoVectors LeaveTangent; // 0x0034 (0x0018) [0x0000000000000001] ( CPF_Edit ) 310 | unsigned char InterpMode; // 0x004C (0x0001) [0x0000000000000001] ( CPF_Edit ) 311 | }; 312 | 313 | // ScriptStruct Core.Object.InterpCurveTwoVectors 314 | // 0x000D 315 | struct FInterpCurveTwoVectors 316 | { 317 | TArray< struct FInterpCurvePointTwoVectors > Points; // 0x0000 (0x000C) [0x0000000000400001] ( CPF_Edit | CPF_NeedCtorLink ) 318 | unsigned char InterpMethod; // 0x000C (0x0001) [0x0000000000000000] 319 | }; 320 | 321 | // ScriptStruct Core.Object.Box 322 | // 0x0019 323 | struct FBox 324 | { 325 | struct FVector Min; // 0x0000 (0x000C) [0x0000000000000001] ( CPF_Edit ) 326 | struct FVector Max; // 0x000C (0x000C) [0x0000000000000001] ( CPF_Edit ) 327 | unsigned char IsValid; // 0x0018 (0x0001) [0x0000000000000000] 328 | }; 329 | 330 | // ScriptStruct Core.Object.TPOV 331 | // 0x001C 332 | struct FTPOV 333 | { 334 | struct FVector Location; // 0x0000 (0x000C) [0x0000000000000001] ( CPF_Edit ) 335 | struct FRotator Rotation; // 0x000C (0x000C) [0x0000000000000001] ( CPF_Edit ) 336 | float FOV; // 0x0018 (0x0004) [0x0000000000000001] ( CPF_Edit ) 337 | }; 338 | 339 | // ScriptStruct Core.Object.SHVector 340 | // 0x0030 341 | struct FSHVector 342 | { 343 | float V[ 0x9 ]; // 0x0000 (0x0024) [0x0000000000000001] ( CPF_Edit ) 344 | float Padding[ 0x3 ]; // 0x0024 (0x000C) [0x0000000000000000] 345 | }; 346 | 347 | // ScriptStruct Core.Object.SHVectorRGB 348 | // 0x0090 349 | struct FSHVectorRGB 350 | { 351 | struct FSHVector R; // 0x0000 (0x0030) [0x0000000000000001] ( CPF_Edit ) 352 | struct FSHVector G; // 0x0030 (0x0030) [0x0000000000000001] ( CPF_Edit ) 353 | struct FSHVector B; // 0x0060 (0x0030) [0x0000000000000001] ( CPF_Edit ) 354 | }; 355 | 356 | // ScriptStruct Core.Object.IntPoint 357 | // 0x0008 358 | struct FIntPoint 359 | { 360 | int X; // 0x0000 (0x0004) [0x0000000000000001] ( CPF_Edit ) 361 | int Y; // 0x0004 (0x0004) [0x0000000000000001] ( CPF_Edit ) 362 | }; 363 | 364 | // ScriptStruct Core.Object.Array_Mirror 365 | // 0x000C 366 | struct FArray_Mirror 367 | { 368 | struct FPointer Data; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 369 | int ArrayNum; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 370 | int ArrayMax; // 0x0008 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 371 | }; 372 | 373 | // ScriptStruct Core.Object.InlinePointerArray_Mirror 374 | // 0x0010 375 | struct FInlinePointerArray_Mirror 376 | { 377 | struct FPointer InlineData; // 0x0000 (0x0004) [0x0000000000000002] ( CPF_Const ) 378 | struct FArray_Mirror SecondaryData; // 0x0004 (0x000C) [0x0000000000000002] ( CPF_Const ) 379 | }; 380 | 381 | // ScriptStruct Core.Object.IndirectArray_Mirror 382 | // 0x000C 383 | struct FIndirectArray_Mirror 384 | { 385 | struct FPointer Data; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 386 | int ArrayNum; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 387 | int ArrayMax; // 0x0008 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 388 | }; 389 | 390 | // ScriptStruct Core.Object.FColorVertexBuffer_Mirror 391 | // 0x0014 392 | struct FFColorVertexBuffer_Mirror 393 | { 394 | struct FPointer VfTable; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 395 | struct FPointer VertexData; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 396 | int Data; // 0x0008 (0x0004) [0x0000000000000002] ( CPF_Const ) 397 | int Stride; // 0x000C (0x0004) [0x0000000000000002] ( CPF_Const ) 398 | int NumVertices; // 0x0010 (0x0004) [0x0000000000000002] ( CPF_Const ) 399 | }; 400 | 401 | // ScriptStruct Core.Object.RenderCommandFence_Mirror 402 | // 0x0004 403 | struct FRenderCommandFence_Mirror 404 | { 405 | int NumPendingFences; // 0x0000 (0x0004) [0x0000000000003002] ( CPF_Const | CPF_Native | CPF_Transient ) 406 | }; 407 | 408 | // ScriptStruct Core.Object.UntypedBulkData_Mirror 409 | // 0x0034 410 | struct FUntypedBulkData_Mirror 411 | { 412 | struct FPointer VfTable; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 413 | int BulkDataFlags; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 414 | int ElementCount; // 0x0008 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 415 | int BulkDataOffsetInFile; // 0x000C (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 416 | int BulkDataSizeOnDisk; // 0x0010 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 417 | int SavedBulkDataFlags; // 0x0014 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 418 | int SavedElementCount; // 0x0018 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 419 | int SavedBulkDataOffsetInFile; // 0x001C (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 420 | int SavedBulkDataSizeOnDisk; // 0x0020 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 421 | struct FPointer BulkData; // 0x0024 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 422 | int LockStatus; // 0x0028 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 423 | struct FPointer AttachedAr; // 0x002C (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 424 | int bShouldFreeOnEmpty; // 0x0030 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 425 | }; 426 | 427 | // ScriptStruct Core.Object.BitArray_Mirror 428 | // 0x001C 429 | struct FBitArray_Mirror 430 | { 431 | struct FPointer IndirectData; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 432 | int InlineData[ 0x4 ]; // 0x0004 (0x0010) [0x0000000000001002] ( CPF_Const | CPF_Native ) 433 | int NumBits; // 0x0014 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 434 | int MaxBits; // 0x0018 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 435 | }; 436 | 437 | // ScriptStruct Core.Object.SparseArray_Mirror 438 | // 0x0030 439 | struct FSparseArray_Mirror 440 | { 441 | TArray< int > Elements; // 0x0000 (0x000C) [0x0000000000001002] ( CPF_Const | CPF_Native ) 442 | struct FBitArray_Mirror AllocationFlags; // 0x000C (0x001C) [0x0000000000001002] ( CPF_Const | CPF_Native ) 443 | int FirstFreeIndex; // 0x0028 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 444 | int NumFreeIndices; // 0x002C (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 445 | }; 446 | 447 | // ScriptStruct Core.Object.Set_Mirror 448 | // 0x003C 449 | struct FSet_Mirror 450 | { 451 | struct FSparseArray_Mirror Elements; // 0x0000 (0x0030) [0x0000000000001002] ( CPF_Const | CPF_Native ) 452 | struct FPointer Hash; // 0x0030 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 453 | int InlineHash; // 0x0034 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 454 | int HashSize; // 0x0038 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 455 | }; 456 | 457 | // ScriptStruct Core.Object.MultiMap_Mirror 458 | // 0x003C 459 | struct FMultiMap_Mirror 460 | { 461 | struct FSet_Mirror Pairs; // 0x0000 (0x003C) [0x0000000000001002] ( CPF_Const | CPF_Native ) 462 | }; 463 | 464 | // ScriptStruct Core.Object.Map_Mirror 465 | // 0x003C 466 | struct FMap_Mirror 467 | { 468 | struct FSet_Mirror Pairs; // 0x0000 (0x003C) [0x0000000000001002] ( CPF_Const | CPF_Native ) 469 | }; 470 | 471 | // ScriptStruct Core.Object.ThreadSafeCounter 472 | // 0x0004 473 | struct FThreadSafeCounter 474 | { 475 | int Value; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 476 | }; 477 | 478 | // ScriptStruct Core.Object.Double 479 | // 0x0008 480 | struct FDouble 481 | { 482 | int A; // 0x0000 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 483 | int B; // 0x0004 (0x0004) [0x0000000000001002] ( CPF_Const | CPF_Native ) 484 | }; 485 | 486 | // ScriptStruct Core.DistributionFloat.RawDistributionFloat 487 | // 0x0004(0x001C - 0x0018) 488 | struct FRawDistributionFloat : FRawDistribution 489 | { 490 | class UDistributionFloat* Distribution; // 0x0018 (0x0004) [0x0000000006080009] ( CPF_Edit | CPF_ExportObject | CPF_Component | CPF_NoClear | CPF_EditInline ) 491 | }; 492 | 493 | // ScriptStruct Core.DistributionVector.RawDistributionVector 494 | // 0x0004(0x001C - 0x0018) 495 | struct FRawDistributionVector : FRawDistribution 496 | { 497 | class UDistributionVector* Distribution; // 0x0018 (0x0004) [0x0000000006080009] ( CPF_Edit | CPF_ExportObject | CPF_Component | CPF_NoClear | CPF_EditInline ) 498 | }; 499 | 500 | 501 | #ifdef _MSC_VER 502 | #pragma pack ( pop ) 503 | #endif --------------------------------------------------------------------------------