diff --git a/BigBaseV2/src/backend/backend.cpp b/BigBaseV2/src/backend/backend.cpp index 0ffd9d1e..6377bd60 100644 --- a/BigBaseV2/src/backend/backend.cpp +++ b/BigBaseV2/src/backend/backend.cpp @@ -1,8 +1,6 @@ #include "api/api.hpp" #include "backend.hpp" -#include "fiber_pool.hpp" #include "looped/looped.hpp" -#include "script.hpp" #include "thread_pool.hpp" namespace big @@ -10,15 +8,16 @@ namespace big void backend::loop() { g->attempt_save(); + looped::system_disable_sigscanner(); looped::system_self_globals(); looped::system_update_pointers(); if (g_local_player != nullptr && !api::util::signed_in()) { g_thread_pool->push([] - { - looped::api_login_session(); - }); + { + looped::api_login_session(); + }); } } } diff --git a/BigBaseV2/src/backend/looped/looped.hpp b/BigBaseV2/src/backend/looped/looped.hpp index 1d97e40e..73d93605 100644 --- a/BigBaseV2/src/backend/looped/looped.hpp +++ b/BigBaseV2/src/backend/looped/looped.hpp @@ -33,6 +33,7 @@ namespace big static void session_local_time(); + static void system_disable_sigscanner(); static void system_self_globals(); static void system_update_pointers(); diff --git a/BigBaseV2/src/backend/looped/system/disable_sigscanner.cpp b/BigBaseV2/src/backend/looped/system/disable_sigscanner.cpp new file mode 100644 index 00000000..cdc834fe --- /dev/null +++ b/BigBaseV2/src/backend/looped/system/disable_sigscanner.cpp @@ -0,0 +1,21 @@ +#include "backend/looped/looped.hpp" +#include "pointers.hpp" + +namespace big +{ + // credits: @brunph + void looped::system_disable_sigscanner() + { + if (g_pointers->m_tunables->isValid()) + { + if (const auto ptr = g_pointers->m_tunables->getInstance(); ptr) + { + // sets the signature counter to 0 + // preventing the array from being looped + // this is just an alternative protection + // to the one found in pointers.cpp + ptr->m_bCount = 0; + } + } + } +} diff --git a/BigBaseV2/src/pointers.cpp b/BigBaseV2/src/pointers.cpp index acb23064..484741e4 100644 --- a/BigBaseV2/src/pointers.cpp +++ b/BigBaseV2/src/pointers.cpp @@ -256,38 +256,50 @@ namespace big //Received clone sync main_batch.add("RCS", "48 8B C4 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 41 54 41 56 41 57 48 83 EC 40 4C 8B F2", [this](memory::handle ptr) - { - m_received_clone_sync = ptr.as(); - }); + { + m_received_clone_sync = ptr.as(); + }); //Get sync type info main_batch.add("GSTI", "44 0F B7 C1 4C 8D 0D ? ? ? ?", [this](memory::handle ptr) - { - m_get_sync_type_info = ptr.as(); - }); + { + m_get_sync_type_info = ptr.as(); + }); //Get sync tree for type main_batch.add("GSTFT", "0F B7 CA 83 F9 07", [this](memory::handle ptr) - { - m_get_sync_tree_for_type = ptr.as(); - }); + { + m_get_sync_tree_for_type = ptr.as(); + }); //Get net object main_batch.add("GNO", "E8 ? ? ? ? 0F B7 53 7C", [this](memory::handle ptr) - { - m_get_net_object = ptr.add(1).rip().as(); - }); + { + m_get_net_object = ptr.add(1).rip().as(); + }); //Get net object for player main_batch.add("GNOFP", "41 80 78 ? FF 74 2D 41 0F B6 40", [this](memory::handle ptr) - { - m_get_net_object_for_player = ptr.as(); - }); + { + m_get_net_object_for_player = ptr.as(); + }); + // CTunables + main_batch.add("T", "BF 02 00 00 00 44 8B C7", [this](memory::handle ptr) + { + m_tunables = ptr.sub(4).rip().as(); + }); auto mem_region = memory::module(nullptr); main_batch.run(mem_region); + // Credits: @brunph + if (auto bonus_string = mem_region.scan("62 6F 6E 75 73 00"); bonus_string) + { + const auto patch = "nyeee"; + std::memcpy(bonus_string.as(), patch, sizeof(patch)); + } + /** * Freemode thread restorer through VM patch */ diff --git a/BigBaseV2/src/pointers.hpp b/BigBaseV2/src/pointers.hpp index 1122be0d..04794cd2 100644 --- a/BigBaseV2/src/pointers.hpp +++ b/BigBaseV2/src/pointers.hpp @@ -1,6 +1,8 @@ #pragma once #include "common.hpp" +#include "atSingleton.hpp" #include "CNetworkPlayerMgr.hpp" +#include "CTunables.hpp" #include "FriendRegistry.hpp" #include "gta/fwddec.hpp" #include "gta/enums.hpp" @@ -24,6 +26,7 @@ namespace big CPedFactory** m_ped_factory{}; CNetworkPlayerMgr** m_network_player_mgr{}; CNetworkObjectMgr** m_network_object_mgr{}; + rage::atSingleton* m_tunables{}; rage::CReplayInterface** m_replay_interface{}; functions::ptr_to_handle* m_ptr_to_handle{}; diff --git a/BigBaseV2/src/views/vehicle/view_spawn.cpp b/BigBaseV2/src/views/vehicle/view_spawn.cpp index c7fe5508..a5fd97fd 100644 --- a/BigBaseV2/src/views/vehicle/view_spawn.cpp +++ b/BigBaseV2/src/views/vehicle/view_spawn.cpp @@ -29,7 +29,7 @@ namespace big Ped ped = self::ped; const auto location = ENTITY::GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ped, 2.f, 2.f, 0.f); - const Vehicle veh = vehicle::spawn(model, location, g_local_player->m_player_info->m_ped->m_navigation->m_heading + 90.f); + const Vehicle veh = vehicle::spawn(model, location, g_local_player->m_player_info->m_ped->m_navigation->m_right.x + 90.f); if (g->spawn.spawn_inside) PED::SET_PED_INTO_VEHICLE(PLAYER::PLAYER_PED_ID(), veh, -1); diff --git a/vendor/GTAV-Classes b/vendor/GTAV-Classes index 49916757..e7b43afe 160000 --- a/vendor/GTAV-Classes +++ b/vendor/GTAV-Classes @@ -1 +1 @@ -Subproject commit 49916757dffe36b22422c1e7d6ec1487e8619bda +Subproject commit e7b43afec36c02174b538c06ae926c86a020a6ca