├── immunity-gta5
├── packages.config
├── fiber.hpp
├── immunity-gta5.vcxproj.user
├── tick.hpp
├── dllmain.cpp
├── secure.hpp
├── useful.h
├── imports.h
├── immunity-gta5.vcxproj.filters
├── xor.h
├── ui_extend.hpp
├── immunity-gta5.vcxproj
├── functions.h
├── config.hpp
├── features
│ └── aimbot.hpp
├── pointers.hpp
└── game.hpp
├── readme.md
├── includes
├── imgui
│ ├── imgui_impl_dx11.h
│ ├── imgui_impl_win32.h
│ ├── imconfig.h
│ ├── imgui_impl_win32.cpp
│ └── imstb_rectpack.h
├── renderer
│ ├── Renderer.h
│ └── Renderer.cpp
└── ini.h
└── immunity-gta5.sln
/immunity-gta5/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/immunity-gta5/fiber.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | #include "imports.h"
9 |
--------------------------------------------------------------------------------
/immunity-gta5/immunity-gta5.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | false
5 |
6 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | COMPILATION NOTE BY "ABN":
2 |
3 | Download:
4 | -DXSDK ( https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe )
5 | -Minhook( https://github.com/TsudaKageyu/minhook/releases/tag/v1.3.3 )
6 | -Visual Studio + MSVC Compiler + C++ pack ( https://visualstudio.microsoft.com/de/downloads/ )
7 | -Replace includes + libs with ur own path
8 | -Set to Release, x64
9 | -Compile
10 |
11 | (Google errors dont annoying everybody!!!)
12 |
13 |
14 | ps: idfk if it even fixed it lol aint no way iam downloading GTA to test
15 |
--------------------------------------------------------------------------------
/immunity-gta5/tick.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 |
6 | namespace tick
7 | {
8 | class thread_invoker
9 | {
10 | public:
11 |
12 | inline static void queue(std::function func)
13 | {
14 | funcs_to_invoke.emplace_back(std::make_pair(func, GetTickCount64()));
15 | }
16 |
17 | void on_tick()
18 | {
19 | auto current_tick = GetTickCount64();
20 | for (auto& funcs : funcs_to_invoke)
21 | {
22 | if (current_tick - funcs.second < 1000)
23 | {
24 | funcs.first();
25 | }
26 | }
27 |
28 | funcs_to_invoke.clear();
29 | }
30 | private:
31 | inline static std::vector, uintptr_t>> funcs_to_invoke;
32 | };
33 |
34 | inline thread_invoker pnative;
35 | }
--------------------------------------------------------------------------------
/includes/imgui/imgui_impl_dx11.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer for DirectX11
2 | // This needs to be used along with a Platform Binding (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
6 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bits indices.
7 |
8 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this.
9 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
10 | // https://github.com/ocornut/imgui
11 |
12 | #pragma once
13 |
14 | struct ID3D11Device;
15 | struct ID3D11DeviceContext;
16 |
17 | IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context);
18 | IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown();
19 | IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame();
20 | IMGUI_IMPL_API void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data);
21 |
22 | // Use if you want to reset your rendering device without losing ImGui state.
23 | IMGUI_IMPL_API void ImGui_ImplDX11_InvalidateDeviceObjects();
24 | IMGUI_IMPL_API bool ImGui_ImplDX11_CreateDeviceObjects();
25 |
--------------------------------------------------------------------------------
/includes/imgui/imgui_impl_win32.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Binding for Windows (standard windows API for 32 and 64 bits applications)
2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
3 |
4 | // Implemented features:
5 | // [X] Platform: Clipboard support (for Win32 this is actually part of core imgui)
6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
7 | // [X] Platform: Keyboard arrays indexed using VK_* Virtual Key Codes, e.g. ImGui::IsKeyPressed(VK_SPACE).
8 | // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
9 |
10 | #pragma once
11 |
12 | IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd);
13 | IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown();
14 | IMGUI_IMPL_API void ImGui_ImplWin32_NewFrame();
15 |
16 | // Handler for Win32 messages, update mouse/keyboard data.
17 | // You may or not need this for your implementation, but it can serve as reference for handling inputs.
18 | // Intentionally commented out to avoid dragging dependencies on types. You can COPY this line into your .cpp code instead.
19 | /*
20 | IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
21 | */
22 |
--------------------------------------------------------------------------------
/immunity-gta5/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "imports.h"
2 | #include "secure.hpp"
3 |
4 | DWORD __stdcall InitializeHook(PVOID) {
5 |
6 | config::load();
7 |
8 |
9 | if (pointers::findAllPatterns()) {
10 | if (hook::enable()) {
11 | logs::add("enabled hooks");
12 | Game.running = true;
13 |
14 |
15 | std::thread aimThread(aimbot::init);
16 | aimThread.detach();
17 |
18 | std::thread hacksThread(hacks::init);
19 | hacksThread.detach();
20 | }
21 | }
22 |
23 | tools::unlink_module_peb(Game.hModule);
24 | while (Game.running) {
25 | hook::patch_wndproc();
26 | std::this_thread::sleep_for(500ms);
27 | }
28 | tools::relink_module_peb(Game.hModule);
29 |
30 |
31 |
32 | Game.running = false;
33 |
34 | Sleep(500);
35 | hook::disable();
36 |
37 | FreeLibraryAndExitThread((HMODULE)Game.hModule, 0);
38 | return 1;
39 | }
40 |
41 |
42 | BOOL APIENTRY DllMain(HMODULE hModule,
43 | DWORD ul_reason_for_call,
44 | LPVOID lpReserved
45 | ) {
46 | if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
47 | logs::clear();
48 | Game.base = (uintptr_t)GetModuleHandleA(0);
49 | Game.hModule = hModule;
50 | logs::add("module entry");
51 | Sleep(100);
52 | CreateThread(NULL, 0, InitializeHook, NULL, 0, NULL);
53 | } else if (ul_reason_for_call == DLL_PROCESS_DETACH) {
54 |
55 | }
56 | return TRUE;
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/immunity-gta5.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.29911.84
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "immunity-gta5", "immunity-gta5\immunity-gta5.vcxproj", "{05A41833-32B5-4898-AF98-6EBDAD66F1FD}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Debug|x64.ActiveCfg = Debug|x64
17 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Debug|x64.Build.0 = Debug|x64
18 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Debug|x86.ActiveCfg = Debug|Win32
19 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Debug|x86.Build.0 = Debug|Win32
20 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Release|x64.ActiveCfg = Release|x64
21 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Release|x64.Build.0 = Release|x64
22 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Release|x86.ActiveCfg = Release|Win32
23 | {05A41833-32B5-4898-AF98-6EBDAD66F1FD}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {ACEA898F-939B-4CF6-83DA-6CE9A1AC738A}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/includes/renderer/Renderer.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 |
6 | #include
7 | #include
8 | #include
9 | #pragma comment(lib, "d3d11.lib")
10 |
11 |
12 | //#include
13 | //#pragma comment(lib, "d3dx11.lib")
14 |
15 |
16 |
17 |
18 | #include "../imgui/imgui.h"
19 | #include "../imgui/imgui_impl_dx11.h"
20 | #include "../imgui/imgui_impl_win32.h"
21 | #include "../imgui/imgui_internal.h"
22 |
23 |
24 | // Color Struct Storing rgba value
25 | struct RGBA {
26 | RGBA(int r, int g, int b, int a) :
27 | r(r), g(g), b(b), a(a) { }
28 |
29 | int r ;
30 | int g ;
31 | int b ;
32 | int a ;
33 | };
34 |
35 | class imgui_render {
36 | public:
37 | ImGuiIO io;
38 |
39 | HRESULT hres;
40 | D3D11_VIEWPORT viewport;
41 | IDXGISwapChain* pSwapChain = nullptr;
42 | ID3D11Device* pDevice = nullptr;
43 | ID3D11DeviceContext* pContext = nullptr;
44 | ID3D11RenderTargetView* RenderTargetView = nullptr;
45 | typedef void (*vResourceLoadCall)(ID3D11Device*);
46 |
47 |
48 | vResourceLoadCall loadCall = nullptr;
49 |
50 | void SetResourceLoad(vResourceLoadCall funct2);
51 |
52 | void Initialize(HWND targetWindow, IDXGISwapChain* pSwapchain);
53 |
54 | void BeginScene();
55 | void EndScene();
56 |
57 | void Render();
58 |
59 | bool ready();
60 | void release();
61 | void reset(UINT Width, UINT Height);
62 |
63 |
64 | float RenderText(const std::string& text, const ImVec2& position, float size, RGBA color, bool center,bool outine = false);
65 | void RenderLine(const ImVec2& from, const ImVec2& to, RGBA color, float thickness = 1.0f);
66 | void RenderCircle(const ImVec2& position, float radius, RGBA color, float thickness = 1.0f, uint32_t segments = 16);
67 | void RenderCircleFilled(const ImVec2& position, float radius, RGBA color, uint32_t segments = 16);
68 | void RenderRect(const ImVec2& from, const ImVec2& to, RGBA color, float rounding = 0.0f, uint32_t roundingCornersFlags = ImDrawCornerFlags_All, float thickness = 1.0f);
69 | void RenderDot(const ImVec2& from, const ImVec2& to, RGBA color, float thickness = 1.0f);
70 | void RenderRectFilled(const ImVec2& from, const ImVec2& to,RGBA color, float rounding = 0.0f, uint32_t roundingCornersFlags = ImDrawCornerFlags_All);
71 |
72 |
73 |
74 | ImVec2 RenderMenuRow(const ImVec2& from,float width);
75 | void RenderMenuSwitch(const ImVec2& from,std::string value);
76 | void RenderMenuValue(const ImVec2& from,float value);
77 |
78 | private:
79 |
80 | bool finishedInit = false;
81 | ImFont* imFont;
82 | };
--------------------------------------------------------------------------------
/immunity-gta5/secure.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 | #include
4 | #include
5 |
6 | #include
7 | #include
8 |
9 | #ifdef _WIN64
10 | struct HookContext {
11 | BYTE original_code[64];
12 | SIZE_T dst_ptr;
13 | BYTE far_jmp[6];
14 | };
15 | HookContext* presenthook64;
16 |
17 | #endif
18 | typedef struct _PEB_LDR_DATA {
19 | UINT8 _PADDING_[12];
20 | LIST_ENTRY InLoadOrderModuleList;
21 | LIST_ENTRY InMemoryOrderModuleList;
22 | LIST_ENTRY InInitializationOrderModuleList;
23 | } PEB_LDR_DATA, * PPEB_LDR_DATA;
24 |
25 | typedef struct _PEB {
26 | #ifdef _WIN64
27 | UINT8 _PADDING_[24];
28 | #else
29 | UINT8 _PADDING_[12];
30 | #endif
31 | PEB_LDR_DATA* Ldr;
32 | } PEB, * PPEB;
33 |
34 | typedef struct _LDR_DATA_TABLE_ENTRY {
35 | LIST_ENTRY InLoadOrderLinks;
36 | LIST_ENTRY InMemoryOrderLinks;
37 | LIST_ENTRY InInitializationOrderLinks;
38 | VOID* DllBase;
39 | } LDR_DATA_TABLE_ENTRY, * PLDR_DATA_TABLE_ENTRY;
40 |
41 | typedef struct _UNLINKED_MODULE {
42 | HMODULE hModule;
43 | PLIST_ENTRY RealInLoadOrderLinks;
44 | PLIST_ENTRY RealInMemoryOrderLinks;
45 | PLIST_ENTRY RealInInitializationOrderLinks;
46 | PLDR_DATA_TABLE_ENTRY Entry;
47 | } UNLINKED_MODULE;
48 |
49 | #define UNLINK(x) \
50 | (x).Flink->Blink = (x).Blink; \
51 | (x).Blink->Flink = (x).Flink;
52 |
53 | #define RELINK(x, real) \
54 | (x).Flink->Blink = (real); \
55 | (x).Blink->Flink = (real); \
56 | (real)->Blink = (x).Blink; \
57 | (real)->Flink = (x).Flink;
58 |
59 | std::vector UnlinkedModules;
60 |
61 | struct FindModuleHandle {
62 | HMODULE m_hModule;
63 | FindModuleHandle(HMODULE hModule) : m_hModule(hModule) {
64 | }
65 | bool operator() (UNLINKED_MODULE const& Module) const {
66 | return (Module.hModule == m_hModule);
67 | }
68 | };
69 | namespace tools {
70 | void relink_module_peb(HMODULE hModule) {
71 | std::vector::iterator it = std::find_if(UnlinkedModules.begin(), UnlinkedModules.end(), FindModuleHandle(hModule));
72 |
73 | if (it == UnlinkedModules.end()) {
74 | //DBGOUT(TEXT("Module Not Unlinked Yet!"));
75 | return;
76 | }
77 |
78 | RELINK((*it).Entry->InLoadOrderLinks, (*it).RealInLoadOrderLinks);
79 | RELINK((*it).Entry->InInitializationOrderLinks, (*it).RealInInitializationOrderLinks);
80 | RELINK((*it).Entry->InMemoryOrderLinks, (*it).RealInMemoryOrderLinks);
81 | UnlinkedModules.erase(it);
82 | }
83 |
84 |
85 |
86 |
87 | void unlink_module_peb(HMODULE hModule) {
88 | std::vector::iterator it = std::find_if(UnlinkedModules.begin(), UnlinkedModules.end(), FindModuleHandle(hModule));
89 | if (it != UnlinkedModules.end()) {
90 | return;
91 | }
92 |
93 | #ifdef _WIN64
94 | PPEB pPEB = (PPEB)__readgsqword(0x60);
95 | #else
96 | PPEB pPEB = (PPEB)__readfsdword(0x30);
97 | #endif
98 |
99 | PLIST_ENTRY CurrentEntry = pPEB->Ldr->InLoadOrderModuleList.Flink;
100 | PLDR_DATA_TABLE_ENTRY Current = NULL;
101 |
102 | while (CurrentEntry != &pPEB->Ldr->InLoadOrderModuleList && CurrentEntry != NULL) {
103 | Current = CONTAINING_RECORD(CurrentEntry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
104 | if (Current->DllBase == hModule) {
105 | UNLINKED_MODULE CurrentModule = { 0 };
106 | CurrentModule.hModule = hModule;
107 | CurrentModule.RealInLoadOrderLinks = Current->InLoadOrderLinks.Blink->Flink;
108 | CurrentModule.RealInInitializationOrderLinks = Current->InInitializationOrderLinks.Blink->Flink;
109 | CurrentModule.RealInMemoryOrderLinks = Current->InMemoryOrderLinks.Blink->Flink;
110 | CurrentModule.Entry = Current;
111 | UnlinkedModules.push_back(CurrentModule);
112 |
113 | UNLINK(Current->InLoadOrderLinks);
114 | UNLINK(Current->InInitializationOrderLinks);
115 | UNLINK(Current->InMemoryOrderLinks);
116 | break;
117 | }
118 |
119 | CurrentEntry = CurrentEntry->Flink;
120 | }
121 |
122 | return;
123 | }
124 | }
--------------------------------------------------------------------------------
/immunity-gta5/useful.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "imports.h"
3 |
4 | using namespace std;
5 |
6 |
7 |
8 | #include
9 | string GetFolderLocation(int csidl) {
10 |
11 |
12 | char buffer[_MAX_PATH];
13 | LPITEMIDLIST pidl = 0;
14 | HRESULT result = SHGetSpecialFolderLocation(NULL, csidl, &pidl);
15 | *buffer = 0;
16 |
17 | if (result == 0) {
18 | SHGetPathFromIDList(pidl, buffer);
19 | CoTaskMemFree(pidl);
20 | return string(buffer);
21 | }
22 | return string(buffer);
23 | }
24 |
25 |
26 |
27 | namespace logs {
28 | string logFile = "";
29 | inline bool exists() {
30 | string appdata = GetFolderLocation(CSIDL_LOCAL_APPDATA);
31 | logFile = appdata + "/immunity/logs/log.txt";
32 | cout << "[!] appdata " << appdata << endl;
33 |
34 | if (CreateDirectory((appdata + "/immunity/logs/").c_str(), NULL) ||
35 | ERROR_ALREADY_EXISTS == GetLastError()) {
36 |
37 | return true;
38 | }
39 | return false;
40 | }
41 |
42 | inline string getCurrentDateTime(string s) {
43 | time_t now = time(0);
44 | struct tm tstruct;
45 | char buf[80];
46 | tstruct = *localtime(&now);
47 | if (s == "now")
48 | strftime(buf, sizeof(buf), "%Y-%m-%d %X", &tstruct);
49 | else if (s == "date")
50 | strftime(buf, sizeof(buf), "%Y-%m-%d", &tstruct);
51 | return string(buf);
52 | };
53 |
54 |
55 |
56 | inline void clear() {
57 | if (exists()) {
58 | std::ofstream ofs;
59 | ofs.open(logFile.c_str(), std::ofstream::out | std::ofstream::trunc);
60 | ofs.close();
61 | }
62 | }
63 |
64 | inline void addLog(string logMsg) {
65 | if (exists()) {
66 | string now = getCurrentDateTime("now");
67 | ofstream ofs(logFile.c_str(), std::ios_base::out | std::ios_base::app);
68 | ofs << now << '\t' << logMsg << '\n';
69 | ofs.close();
70 | }
71 | }
72 | inline void add(string logMsg) {
73 | addLog(logMsg);
74 | }
75 | }
76 |
77 |
78 |
79 | namespace utils {
80 |
81 | using _RtlCreateUserThread = NTSTATUS(NTAPI*)(
82 | HANDLE ProcessHandle,
83 | PSECURITY_DESCRIPTOR SecurityDescriptor,
84 | BOOLEAN CreateSuspend,
85 | ULONG StackZeroBits,
86 | PULONG StackReserved,
87 | PULONG StackCommit,
88 | void* StartAddress,
89 | void* StartParameter,
90 | PHANDLE ThreadHandle,
91 | void* ClientID
92 | );
93 |
94 |
95 |
96 |
97 | HANDLE spoof_thread(void* Thread, HMODULE& hModule) {
98 | HMODULE NT_DLL = LoadLibrary(xorstr_("ntdll"));
99 | uintptr_t SpoofedAddress = NULL;
100 | int DefaultThreadSize = 1000;
101 | srand(time(NULL)); // see random nums
102 |
103 | for (int i = 1; i < 4; i++) {
104 | SpoofedAddress |= (rand() & 0xFF) << i * 8; // we store it in the lowest bytes
105 | SpoofedAddress |= (rand() & 0xFF) << i * 8;
106 | SpoofedAddress |= (rand() & 0xFF) << i * 8;
107 | //returns spoofed address
108 | }
109 | while (SpoofedAddress > 0x7FFFFFFF) {
110 | SpoofedAddress -= 0x1000;
111 | }
112 | VirtualProtect((void*)SpoofedAddress, DefaultThreadSize, PAGE_EXECUTE_READWRITE, NULL);
113 |
114 | CONTEXT tContext;
115 | HANDLE pHandle = nullptr;
116 |
117 | _RtlCreateUserThread KeThread = (_RtlCreateUserThread)(GetProcAddress(GetModuleHandle(xorstr_("ntdll")), xorstr_("RtlCreateUserThread")));
118 | KeThread(GetCurrentProcess(), nullptr, TRUE, NULL, NULL, NULL, (PTHREAD_START_ROUTINE)SpoofedAddress, hModule, &pHandle, NULL); //create a thread & stop init everything
119 |
120 | tContext.ContextFlags = CONTEXT_INTEGER | CONTEXT_CONTROL;
121 | GetThreadContext(pHandle, &tContext);
122 |
123 | #ifndef _WIN64
124 | tContext.Eax = (ULONG32)Thread;
125 | #else
126 | tContext.Rcx = (ULONG64)Thread;
127 | #endif
128 |
129 | tContext.ContextFlags = CONTEXT_INTEGER | CONTEXT_CONTROL;
130 |
131 | SetThreadContext(pHandle, &tContext);
132 |
133 | ResumeThread(pHandle);
134 |
135 |
136 | return pHandle;
137 | }
138 | }
139 |
140 |
141 |
142 |
143 |
144 |
145 | #define PI 3.14159265
146 |
147 | float EaseOut(float time, float start, float end, float current) {
148 | if (time == 0) return start; if ((time /= current) == 1) return start + end;
149 | float p = current * .3f;
150 | float a = end;
151 | float s = p / 4;
152 | return (a * pow(2, -10 * time) * sin((time * current - s) * (2 * PI) / p) + end + start);
153 | }
154 |
155 | double easeOutCubic(double t) {
156 | return 1 + (--t) * t * t;
157 | }
158 |
159 | double easeInSine(double t) {
160 | return sin(1.5707963 * t);
161 | }
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/immunity-gta5/imports.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #define _CRT_SECURE_NO_WARNINGS
3 |
4 | #include
5 | #include
6 |
7 | #include
8 | #include
9 | #include
10 |
11 | #include
12 | #include
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 |
20 | #include
21 | #include
22 | #include
23 | #include
24 | #include