Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "MainScript.hpp"
- #include "ScriptCallback.hpp"
- #include "Lists.hpp"
- #include "Natives.hpp"
- #include "Timer.hpp"
- #include "Translation.hpp"
- #include "CustomText.hpp"
- #include "UI/UIManager.hpp"
- #include "UI/BoolOption.hpp"
- #include "UI/ChooseOption.hpp"
- #include "UI/NumberOption.hpp"
- #include "UI/RegularOption.hpp"
- #include "UI/SubOption.hpp"
- #include "UI/RegularSubmenu.hpp"
- #include "UI/PlayerSubmenu.hpp"
- #define PICKUP_MONEY_CASE 0xCE6FDD6B
- #define PROP_MONEY_BAG_01 0x113FD533
- #define MAIN_PERSISTENT 0x5700179C
- #define PICKUP_MONEY_VARIABLE 0xEA888D49
- #define PICKUP_MONEY_CASE 0xCE6FDD6B
- namespace Big
- {
- enum Submenu : std::uint32_t
- {
- SubmenuHome,
- SubmenuSettings,
- SubmenuSettingsHeader,
- SubmenuSettingsHeaderStaticBackground,
- SubmenuSettingsHeaderGradientBackground,
- SubmenuSettingsHeaderText,
- SubmenuSettingsSubmenuBar,
- SubmenuSettingsOption,
- SubmenuSettingsFooter,
- SubmenuSettingsDescription,
- SubmenuSettingsInput,
- SubmenuSettingsLanguage,
- SubmenuSelectedPlayer,
- SubmenuPlayerList,
- self,
- SubmenuTest
- };
- bool MainScript::IsInitialized()
- {
- return m_Initialized;
- }
- ScriptType MainScript::GetType()
- {
- return ScriptType::Game;
- }
- bool TinyPlayerBool = false;
- void TinyPlayer()
- {
- PED::SET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 223, TinyPlayerBool);
- }
- bool GodModeBool = false;
- void Godmode()
- {
- if (GodModeBool)
- ENTITY::SET_ENTITY_INVINCIBLE(PLAYER::PLAYER_PED_ID(), true);
- else
- ENTITY::SET_ENTITY_INVINCIBLE(PLAYER::PLAYER_PED_ID(), false);
- }
- bool invisibleBool = false;
- void invisible() {
- if (invisibleBool)
- ENTITY::SET_ENTITY_VISIBLE(PLAYER::PLAYER_PED_ID(), false, 0);
- else
- ENTITY::SET_ENTITY_VISIBLE(PLAYER::PLAYER_PED_ID(), true, 0);
- }
- bool SUPERJUMP = false;
- void superjump() {
- if (SUPERJUMP) {
- MISC::SET_SUPER_JUMP_THIS_FRAME(PLAYER::PLAYER_PED_ID());
- MISC::SET_SUPER_JUMP_THIS_FRAME(PLAYER::PLAYER_ID());
- }
- else {
- NULL;
- }
- }
- int markedPlayer;
- bool moneydropbool = false;
- void moneydrop() {
- if (moneydropbool)
- {
- STREAMING::REQUEST_MODEL(0x113FD533);
- Vector3 player = ENTITY::GET_ENTITY_COORDS(PLAYER::GET_PLAYER_PED(markedPlayer), true);
- if (STREAMING::HAS_MODEL_LOADED(0x113FD533))
- {
- OBJECT::CREATE_AMBIENT_PICKUP(PICKUP_MONEY_CASE, player.x, player.y, player.z + 1, 0, 2500, 0x113FD533, true, false);
- STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(0x113FD533);
- }
- }
- else {
- NULL;
- }
- }
- void MainScript::Initialize()
- {
- m_Initialized = true;
- using namespace UserInterface;
- g_CustomText->AddText(CONSTEXPR_JOAAT("HUD_JOINING"), "Isn't " BIGBASE_NAME " the fucking best?");
- g_CustomText->AddText(CONSTEXPR_JOAAT("HUD_TRANSP"), "Isn't " BIGBASE_NAME " the fucking best?");
- g_UiManager->AddSubmenu<RegularSubmenu>("Home", SubmenuHome, [](RegularSubmenu* sub)
- {
- sub->AddOption<SubOption>("Self", nullptr, self);
- sub->AddOption<SubOption>(BIG_TRANSLATE("Demo_sub"), nullptr, SubmenuTest);
- sub->AddOption<SubOption>("Players", nullptr, SubmenuPlayerList);
- sub->AddOption<SubOption>("Settings", nullptr, SubmenuSettings);
- sub->AddOption<RegularOption>(std::move(RegularOption("Version").SetRightText(g_GameVariables->m_GameBuild)));
- sub->AddOption<BoolOption<bool>>("Log Script Events", nullptr, &g_LogScriptEvents, BoolDisplay::OnOff);
- sub->AddOption<RegularOption>("Unload", "Unload the menu.", []
- {
- g_Running = false;
- });
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Self", self, [](RegularSubmenu* sub)
- {
- sub->AddOption<BoolOption<bool>>("Godmode", nullptr, &GodModeBool, BoolDisplay::OnOff, false, [] {Godmode(); });
- sub->AddOption<BoolOption<bool>>("Invisible", nullptr, &invisibleBool, BoolDisplay::OnOff, false, [] {invisible(); });
- sub->AddOption<BoolOption<bool>>("Super Jump", nullptr, &SUPERJUMP, BoolDisplay::OnOff, false, [] {superjump(); });
- sub->AddOption<BoolOption<bool>>("Tiny", nullptr, &TinyPlayerBool, BoolDisplay::OnOff, false, [] {TinyPlayer(); });
- });
- g_UiManager->AddSubmenu<RegularSubmenu>(BIG_TRANSLATE("Demo_sub"), SubmenuTest, [](RegularSubmenu* sub)
- {
- sub->AddOption<RegularOption>(BIG_TRANSLATE("RegularOption_demo"), "A regular option.", []
- {
- g_Logger->Info("You pressed the test option");
- });
- static bool testBool1{};
- sub->AddOption<BoolOption<bool>>(BIG_TRANSLATE("BoolOnOff_demo"), nullptr, &testBool1, BoolDisplay::OnOff);
- static bool testBool2{};
- sub->AddOption<BoolOption<bool>>(BIG_TRANSLATE("BoolYesNo_demo"), nullptr, &testBool2, BoolDisplay::YesNo);
- static std::int32_t int32Test{ 69 };
- sub->AddOption<NumberOption<std::int32_t>>("Int32", nullptr, &int32Test, 0, 100);
- static std::int64_t int64Test{ 420 };
- sub->AddOption<NumberOption<std::int64_t>>("Int64", nullptr, &int64Test, 0, 1000, 10);
- static float floatTest{ 6.9f };
- sub->AddOption<NumberOption<float>>("Float", nullptr, &floatTest, 0.f, 10.f, 0.1f, 1);
- static std::vector<std::uint64_t> vector{ 1, 2, 3 };
- static std::size_t vectorPos{};
- sub->AddOption<ChooseOption<const char*, std::size_t>>("Array", nullptr, &Lists::DemoList, &Lists::DemoListPos);
- sub->AddOption<ChooseOption<std::uint64_t, std::size_t>>("Vector", nullptr, &vector, &vectorPos);
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Settings", SubmenuSettings, [](RegularSubmenu* sub)
- {
- sub->AddOption<SubOption>("Header", nullptr, SubmenuSettingsHeader);
- sub->AddOption<SubOption>("Infobar", nullptr, SubmenuSettingsSubmenuBar);
- sub->AddOption<SubOption>("Options", nullptr, SubmenuSettingsOption);
- sub->AddOption<SubOption>("Footer", nullptr, SubmenuSettingsFooter);
- sub->AddOption<SubOption>("Description", nullptr, SubmenuSettingsDescription);
- sub->AddOption<SubOption>("Input", nullptr, SubmenuSettingsInput);
- sub->AddOption<SubOption>("Language", nullptr, SubmenuSettingsLanguage);
- sub->AddOption<NumberOption<float>>("X Position", nullptr, &g_UiManager->m_PosX, 0.f, 1.f, 0.01f, 2);
- sub->AddOption<NumberOption<float>>("Y Position", nullptr, &g_UiManager->m_PosY, 0.f, 1.f, 0.01f, 2);
- sub->AddOption<NumberOption<float>>("Width", nullptr, &g_UiManager->m_Width, 0.01f, 1.f, 0.01f, 2);
- sub->AddOption<BoolOption<bool>>("Sounds", nullptr, &g_UiManager->m_Sounds, BoolDisplay::OnOff);
- sub->AddOption<BoolOption<std::atomic_bool>>("Log Window", nullptr, &g_Settings.m_LogWindow, BoolDisplay::OnOff);
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Language", SubmenuSettingsLanguage, [](RegularSubmenu* sub)
- {
- namespace fs = std::filesystem;
- fs::directory_iterator dirIt{ g_TranslationManager->GetTranslationDirectory() };
- for (auto&& dirEntry : dirIt)
- {
- if (dirEntry.is_regular_file())
- {
- auto path = dirEntry.path();
- if (path.has_filename())
- {
- sub->AddOption<RegularOption>(path.stem().u8string().c_str(), nullptr, [=]
- {
- g_TranslationManager->LoadTranslations(path.stem().u8string().c_str());
- });
- }
- }
- }
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Infobar", SubmenuSettingsSubmenuBar, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<float>>("Height", nullptr, &g_UiManager->m_SubmenuBarHeight, 0.01f, 0.1f, 0.001f, 3);
- sub->AddOption<NumberOption<float>>("Text Size", nullptr, &g_UiManager->m_SubmenuBarTextSize, 0.01f, 1.f, 0.01f, 2);
- sub->AddOption<NumberOption<std::uint8_t>>("Background R", nullptr, &g_UiManager->m_SubmenuBarBackgroundColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background G", nullptr, &g_UiManager->m_SubmenuBarBackgroundColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background B", nullptr, &g_UiManager->m_SubmenuBarBackgroundColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background A", nullptr, &g_UiManager->m_SubmenuBarBackgroundColor.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Text R", nullptr, &g_UiManager->m_SubmenuBarTextColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Text G", nullptr, &g_UiManager->m_SubmenuBarTextColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Text B", nullptr, &g_UiManager->m_SubmenuBarTextColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Text A", nullptr, &g_UiManager->m_SubmenuBarTextColor.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Options", SubmenuSettingsOption, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<float>>("Height", nullptr, &g_UiManager->m_OptionHeight, 0.01f, 0.1f, 0.001f, 3);
- sub->AddOption<NumberOption<float>>("Text Size", nullptr, &g_UiManager->m_OptionTextSize, 0.01f, 1.f, 0.01f, 2);
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Background R", nullptr, &g_UiManager->m_OptionSelectedBackgroundColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Background G", nullptr, &g_UiManager->m_OptionSelectedBackgroundColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Background B", nullptr, &g_UiManager->m_OptionSelectedBackgroundColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Background A", nullptr, &g_UiManager->m_OptionSelectedBackgroundColor.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Background R", nullptr, &g_UiManager->m_OptionUnselectedBackgroundColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Background G", nullptr, &g_UiManager->m_OptionUnselectedBackgroundColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Background B", nullptr, &g_UiManager->m_OptionUnselectedBackgroundColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Background A", nullptr, &g_UiManager->m_OptionUnselectedBackgroundColor.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Text R", nullptr, &g_UiManager->m_OptionSelectedTextColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Text G", nullptr, &g_UiManager->m_OptionSelectedTextColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Text B", nullptr, &g_UiManager->m_OptionSelectedTextColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Selected Text A", nullptr, &g_UiManager->m_OptionSelectedTextColor.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Text R", nullptr, &g_UiManager->m_OptionUnselectedTextColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Text G", nullptr, &g_UiManager->m_OptionUnselectedTextColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Text B", nullptr, &g_UiManager->m_OptionUnselectedTextColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Unselected Text A", nullptr, &g_UiManager->m_OptionUnselectedTextColor.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Footer", SubmenuSettingsFooter, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<float>>("Height", nullptr, &g_UiManager->m_FooterHeight, 0.01f, 0.1f, 0.001f, 3);
- sub->AddOption<NumberOption<float>>("Sprite Size", nullptr, &g_UiManager->m_FooterSpriteSize, 0.01f, 1.f, 0.001f, 3);
- sub->AddOption<NumberOption<std::uint8_t>>("Background R", nullptr, &g_UiManager->m_FooterBackgroundColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background G", nullptr, &g_UiManager->m_FooterBackgroundColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background B", nullptr, &g_UiManager->m_FooterBackgroundColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Background A", nullptr, &g_UiManager->m_FooterBackgroundColor.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Sprite R", nullptr, &g_UiManager->m_FooterSpriteColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Sprite G", nullptr, &g_UiManager->m_FooterSpriteColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Sprite B", nullptr, &g_UiManager->m_FooterSpriteColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("Sprite A", nullptr, &g_UiManager->m_FooterSpriteColor.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Header", SubmenuSettingsHeader, [](RegularSubmenu* sub)
- {
- sub->AddOption<ChooseOption<const char*, std::size_t>>("Type", nullptr, &Lists::HeaderTypesFrontend, &Lists::HeaderTypesPosition, true, []
- {
- g_UiManager->m_HeaderType = Lists::HeaderTypesBackend[Lists::HeaderTypesPosition];
- });
- switch (g_UiManager->m_HeaderType)
- {
- case HeaderType::Static:
- sub->AddOption<SubOption>("Background", nullptr, SubmenuSettingsHeaderStaticBackground);
- break;
- case HeaderType::Gradient:
- sub->AddOption<SubOption>("Gradient", nullptr, SubmenuSettingsHeaderGradientBackground);
- break;
- }
- sub->AddOption<SubOption>("Text", nullptr, SubmenuSettingsHeaderText);
- sub->AddOption<NumberOption<float>>("Height", nullptr, &g_UiManager->m_HeaderHeight, 0.01f, 0.2f, 0.001f, 3);
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Header Background", SubmenuSettingsHeaderStaticBackground, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<std::uint8_t>>("R", nullptr, &g_UiManager->m_HeaderBackgroundColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("G", nullptr, &g_UiManager->m_HeaderBackgroundColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("B", nullptr, &g_UiManager->m_HeaderBackgroundColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("A", nullptr, &g_UiManager->m_HeaderBackgroundColor.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Header Gradient", SubmenuSettingsHeaderGradientBackground, [](RegularSubmenu* sub)
- {
- sub->AddOption<BoolOption<bool>>("Transparent", nullptr, &g_UiManager->m_HeaderGradientTransparent, BoolDisplay::YesNo);
- sub->AddOption<BoolOption<bool>>("Flip", nullptr, &g_UiManager->m_HeaderGradientFlip, BoolDisplay::YesNo);
- sub->AddOption<NumberOption<std::uint8_t>>("R1", nullptr, &g_UiManager->m_HeaderGradientColorLeft.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("G1", nullptr, &g_UiManager->m_HeaderGradientColorLeft.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("B1", nullptr, &g_UiManager->m_HeaderGradientColorLeft.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("A1", nullptr, &g_UiManager->m_HeaderGradientColorLeft.a, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("R2", nullptr, &g_UiManager->m_HeaderGradientColorRight.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("G2", nullptr, &g_UiManager->m_HeaderGradientColorRight.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("B2", nullptr, &g_UiManager->m_HeaderGradientColorRight.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("A2", nullptr, &g_UiManager->m_HeaderGradientColorRight.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Header Text", SubmenuSettingsHeaderText, [](RegularSubmenu* sub)
- {
- sub->AddOption<BoolOption<bool>>("Enable", nullptr, &g_UiManager->m_HeaderText, BoolDisplay::OnOff);
- sub->AddOption<NumberOption<float>>("Size", nullptr, &g_UiManager->m_HeaderTextSize, 0.1f, 2.f, 0.01f, 2);
- sub->AddOption<NumberOption<std::uint8_t>>("R", nullptr, &g_UiManager->m_HeaderTextColor.r, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("G", nullptr, &g_UiManager->m_HeaderTextColor.g, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("B", nullptr, &g_UiManager->m_HeaderTextColor.b, '\0', static_cast<std::uint8_t>(255));
- sub->AddOption<NumberOption<std::uint8_t>>("A", nullptr, &g_UiManager->m_HeaderTextColor.a, '\0', static_cast<std::uint8_t>(255));
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Description", SubmenuSettingsDescription, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<float>>("Padding", "Padding before the description rect.", &g_UiManager->m_DescriptionHeightPadding, 0.01f, 1.f, 0.001f,
- 3);
- sub->AddOption<NumberOption<float>>("Height", "Size of the description rect.", &g_UiManager->m_DescriptionHeight, 0.01f, 1.f, 0.001f, 3);
- sub->AddOption<NumberOption<float>>("Text Size", "Size of the description text.", &g_UiManager->m_DescriptionTextSize, 0.1f, 2.f, 0.01f, 2);
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Input", SubmenuSettingsInput, [](RegularSubmenu* sub)
- {
- sub->AddOption<NumberOption<std::int32_t>>("Open Delay", nullptr, &g_UiManager->m_OpenDelay, 10, 1000, 10, 0);
- sub->AddOption<NumberOption<std::int32_t>>("Back Delay", nullptr, &g_UiManager->m_BackDelay, 10, 1000, 10, 0);
- sub->AddOption<NumberOption<std::int32_t>>("Enter Delay", nullptr, &g_UiManager->m_EnterDelay, 10, 1000, 10, 0);
- sub->AddOption<NumberOption<std::int32_t>>("Vertical Delay", nullptr, &g_UiManager->m_VerticalDelay, 10, 1000, 10, 0);
- sub->AddOption<NumberOption<std::int32_t>>("Horizontal Delay", nullptr, &g_UiManager->m_HorizontalDelay, 10, 1000, 10, 0);
- });
- g_UiManager->AddSubmenu<RegularSubmenu>("Players", SubmenuPlayerList, [](RegularSubmenu* sub)
- {
- for (std::uint32_t i = 0; i < 32; ++i)
- {
- if (auto ped = PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(i))
- {
- sub->AddOption<SubOption>(PLAYER::GET_PLAYER_NAME(i), nullptr, SubmenuSelectedPlayer, [=]
- {
- g_SelectedPlayer = i;
- });
- }
- }
- });
- g_UiManager->AddSubmenu<PlayerSubmenu>(&g_SelectedPlayer, SubmenuSelectedPlayer, [](PlayerSubmenu* sub)
- {
- sub->AddOption<RegularOption>(BIG_TRANSLATE("Drop Money Once"), "Drop 1 Money Bag", []
- {
- STREAMING::REQUEST_MODEL(0x113FD533);
- Vector3 player = ENTITY::GET_ENTITY_COORDS(PLAYER::GET_PLAYER_PED(markedPlayer), true);
- if (STREAMING::HAS_MODEL_LOADED(0x113FD533));
- {
- OBJECT::CREATE_AMBIENT_PICKUP(PICKUP_MONEY_CASE, player.x, player.y, player.z + 2, 0, 2500, 0x113FD533, true, false);
- STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(0x113FD533);
- }
- g_Logger->Info("Money spawned on " + g_SelectedPlayer);
- });
- });
- }
- void MainScript::Destroy()
- {
- g_UiManager.reset();
- }
- void MainScript::Tick()
- {
- Godmode();
- moneydrop();
- g_UiManager->OnTick();
- }
- }
Add Comment
Please, Sign In to add comment