diff --git a/BigBaseV2/src/common.hpp b/BigBaseV2/src/common.hpp index 205244c2..06c5f100 100644 --- a/BigBaseV2/src/common.hpp +++ b/BigBaseV2/src/common.hpp @@ -69,6 +69,8 @@ namespace big inline std::atomic_bool g_running{ true }; // Global Variables + inline CPed* g_local_ped; + inline player g_player; inline player g_selectedPlayer; inline std::unordered_map g_players; diff --git a/BigBaseV2/src/features/looped/self/frame_flags.cpp b/BigBaseV2/src/features/looped/self/frame_flags.cpp new file mode 100644 index 00000000..956b317a --- /dev/null +++ b/BigBaseV2/src/features/looped/self/frame_flags.cpp @@ -0,0 +1,25 @@ +#include "features/self.hpp" +#include "gta/enums.hpp" + +namespace big +{ + void self::frame_flags() + { + if (g_local_ped == nullptr) return; + + uint32_t& flags = g_local_ped->m_player_info->m_frame_flags; + auto& frame_flags = g_settings.options["frame_flags"]; + + if (frame_flags["explosive_ammo"]) + flags |= eFrameFlagExplosiveAmmo; + + if (frame_flags["explosive_melee"]) + flags |= eFrameFlagExplosiveMelee; + + if (frame_flags["fire_ammo"]) + flags |= eFrameFlagFireAmmo; + + if (frame_flags["super_jump"]) + flags |= eFrameFlagSuperJump; + } +} \ No newline at end of file diff --git a/BigBaseV2/src/features/looped/self/god_mode.cpp b/BigBaseV2/src/features/looped/self/god_mode.cpp index 1fa151f6..5f9a1095 100644 --- a/BigBaseV2/src/features/looped/self/god_mode.cpp +++ b/BigBaseV2/src/features/looped/self/god_mode.cpp @@ -11,9 +11,7 @@ namespace big if (bGodMode || (!bGodMode && bGodMode != bLastGodMode)) { - CPed* ped = gta_util::get_local_ped(); - - ped->m_godmode = bGodMode ? 0x1 : 0x0; + g_local_ped->m_godmode = bGodMode ? 0x1 : 0x0; //ENTITY::SET_ENTITY_INVINCIBLE(PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(g_player.id), bGodMode); diff --git a/BigBaseV2/src/features/looped/vehicle/handling.cpp b/BigBaseV2/src/features/looped/vehicle/handling.cpp index d049b2a7..a990adde 100644 --- a/BigBaseV2/src/features/looped/vehicle/handling.cpp +++ b/BigBaseV2/src/features/looped/vehicle/handling.cpp @@ -8,12 +8,12 @@ namespace big void vehicle::handling() { - CPed* ped = gta_util::get_local_ped(); + if (g_local_ped == nullptr) return; - g_temp.in_vehicle = ped->m_in_vehicle == 0; + g_temp.in_vehicle = g_local_ped->m_in_vehicle == 0; if (g_temp.in_vehicle) - g_vehicle = ped->m_vehicle; + g_vehicle = g_local_ped->m_vehicle; else g_vehicle = nullptr; } diff --git a/BigBaseV2/src/features/self.cpp b/BigBaseV2/src/features/self.cpp index 80f0bbad..13b9f4d6 100644 --- a/BigBaseV2/src/features/self.cpp +++ b/BigBaseV2/src/features/self.cpp @@ -1,5 +1,6 @@ #include "self.hpp" #include "fiber_pool.hpp" +#include "gta_util.hpp" #include "script.hpp" namespace big @@ -8,6 +9,8 @@ namespace big void self::loop() { + g_local_ped = gta_util::get_local_ped(); + if (busy) return; busy = true; @@ -19,6 +22,7 @@ namespace big noclip(); off_radar(); spoof_rank(); + frame_flags(); super_sprint(); busy = false; diff --git a/BigBaseV2/src/features/self.hpp b/BigBaseV2/src/features/self.hpp index 625643d0..fcdb34a8 100644 --- a/BigBaseV2/src/features/self.hpp +++ b/BigBaseV2/src/features/self.hpp @@ -16,6 +16,7 @@ namespace big static void off_radar(); static void spoof_rank(); static void super_sprint(); - + static void frame_flags(); + }; } \ No newline at end of file diff --git a/BigBaseV2/src/gui/tab_bar/main/self.cpp b/BigBaseV2/src/gui/tab_bar/main/self.cpp index a8a6e7be..736a12f0 100644 --- a/BigBaseV2/src/gui/tab_bar/main/self.cpp +++ b/BigBaseV2/src/gui/tab_bar/main/self.cpp @@ -26,6 +26,18 @@ namespace big ImGui::Separator(); + if (ImGui::TreeNode("Frame Flags")) + { + auto& frame_flags = g_settings.options["frame_flags"]; + + ImGui::Checkbox("Explosive Ammo", frame_flags["explosive_ammo"].get()); + ImGui::Checkbox("Explosive Melee", frame_flags["explosive_melee"].get()); + ImGui::Checkbox("Fire Ammo", frame_flags["fire_ammo"].get()); + ImGui::Checkbox("Super Jump", frame_flags["super_jump"].get()); + + ImGui::TreePop(); + } + if (ImGui::TreeNode("No Clip")) { if (ImGui::Checkbox("No Clip", g_settings.options["noclip"]["enabled"].get())) @@ -39,7 +51,6 @@ namespace big ImGui::TreePop(); } - ImGui::Separator(); if (ImGui::Checkbox("God Mode", g_settings.options["god_mode"].get()) || ImGui::Checkbox("No Ragdoll", g_settings.options["ragdoll"].get())) g_settings.save(); diff --git a/BigBaseV2/src/settings.h b/BigBaseV2/src/settings.h index c79f1bd4..638f8991 100644 --- a/BigBaseV2/src/settings.h +++ b/BigBaseV2/src/settings.h @@ -20,6 +20,12 @@ namespace big }, "disable_phone": false, "disable_chat_censoring": false, + "frame_flags": { + "explosive_ammo": false, + "explosive_melee": false, + "fire_ammo": false, + "super_jump": false + }, "god_mode": false, "join_message": false, "never_wanted": false,