2022-05-04 19:16:40 +02:00
|
|
|
#include "fiber_pool.hpp"
|
|
|
|
#include "util/entity.hpp"
|
2022-07-25 04:56:37 +08:00
|
|
|
#include "util/local_player.hpp"
|
2022-05-04 19:16:40 +02:00
|
|
|
#include "views/view.hpp"
|
2022-11-07 13:23:24 -06:00
|
|
|
#include "core/data/hud_component_names.hpp"
|
2022-12-06 16:12:02 +00:00
|
|
|
#include "util/scripts.hpp"
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
2022-07-12 22:42:07 +08:00
|
|
|
void view::self()
|
|
|
|
{
|
2022-05-04 19:16:40 +02:00
|
|
|
components::button("Suicide", [] {
|
2022-05-23 06:38:45 +08:00
|
|
|
ENTITY::SET_ENTITY_HEALTH(self::ped, 0, 0);
|
2022-07-03 03:45:11 +08:00
|
|
|
});
|
2022-07-02 23:15:22 +08:00
|
|
|
|
2022-06-25 22:03:43 +02:00
|
|
|
ImGui::SameLine();
|
|
|
|
|
|
|
|
components::button("Heal", [] {
|
|
|
|
ENTITY::SET_ENTITY_HEALTH(self::ped, PED::GET_PED_MAX_HEALTH(self::ped), 0);
|
|
|
|
PED::SET_PED_ARMOUR(self::ped, PLAYER::GET_PLAYER_MAX_ARMOUR(self::id));
|
2022-07-03 03:45:11 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
|
|
|
components::button("Fill Inventory", [] {
|
2022-07-25 04:56:37 +08:00
|
|
|
std::string mpPrefix = local_player::get_mp_prefix();
|
2022-07-03 03:45:11 +08:00
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "NO_BOUGHT_YUM_SNACKS"), 30, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "NO_BOUGHT_HEALTH_SNACKS"), 15, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "NO_BOUGHT_EPIC_SNACKS"), 5, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "MP_CHAR_ARMOUR_1_COUNT"), 10, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "MP_CHAR_ARMOUR_2_COUNT"), 10, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "MP_CHAR_ARMOUR_3_COUNT"), 10, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "MP_CHAR_ARMOUR_4_COUNT"), 10, true);
|
|
|
|
STATS::STAT_SET_INT(rage::joaat(mpPrefix + "MP_CHAR_ARMOUR_5_COUNT"), 10, true);
|
|
|
|
});
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
|
|
|
components::button("Skip Cutscene", [] {
|
|
|
|
CUTSCENE::STOP_CUTSCENE_IMMEDIATELY();
|
2022-07-03 03:45:11 +08:00
|
|
|
});
|
2022-05-04 19:16:40 +02:00
|
|
|
|
2022-10-30 22:23:10 +08:00
|
|
|
ImGui::SameLine();
|
|
|
|
|
|
|
|
components::button("Clean Player", [] {
|
|
|
|
entity::clean_ped(self::ped);
|
|
|
|
});
|
|
|
|
|
2022-07-19 18:19:19 +08:00
|
|
|
ImGui::Separator();
|
|
|
|
|
2022-08-10 08:42:34 +08:00
|
|
|
components::sub_title("General");
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("God Mode", &g.self.god_mode);
|
|
|
|
ImGui::Checkbox("Off Radar", &g.self.off_radar);
|
|
|
|
ImGui::Checkbox("Free Cam", &g.self.free_cam);
|
|
|
|
ImGui::Checkbox("Disable Phone", &g.tunables.disable_phone);
|
|
|
|
ImGui::Checkbox("Unlimited Oxygen", &g.self.unlimited_oxygen);
|
|
|
|
ImGui::Checkbox("Fast Respawn", &g.self.fast_respawn);
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("No Clip", &g.self.noclip);
|
|
|
|
ImGui::Checkbox("No Ragdoll", &g.self.no_ragdoll);
|
|
|
|
ImGui::Checkbox("Super Run", &g.self.super_run);
|
|
|
|
ImGui::Checkbox("No Idle Kick", &g.tunables.no_idle_kick);
|
|
|
|
ImGui::Checkbox("No Water Collision", &g.self.no_water_collision);
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Invisibility", &g.self.invisibility);
|
|
|
|
if (g.self.invisibility) {
|
|
|
|
ImGui::Checkbox("Locally Visible", &g.self.local_visibility);
|
2022-05-04 19:16:40 +02:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Keep Player Clean", &g.self.clean_player);
|
|
|
|
ImGui::Checkbox("No Collision", &g.self.no_collision);
|
|
|
|
ImGui::Checkbox("Mobile Radio", &g.self.mobile_radio);
|
2022-11-11 11:51:40 -06:00
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Dance Mode", &g.self.dance_mode);
|
2022-12-06 16:12:02 +00:00
|
|
|
if (ImGui::IsItemHovered())
|
|
|
|
ImGui::SetTooltip("Hold Right DPAD or E to enter dance mode");
|
|
|
|
|
2022-05-04 19:16:40 +02:00
|
|
|
ImGui::EndGroup();
|
|
|
|
|
|
|
|
ImGui::Separator();
|
|
|
|
|
2022-08-10 08:42:34 +08:00
|
|
|
components::sub_title("Proofs");
|
2022-07-02 23:15:22 +08:00
|
|
|
|
2022-07-10 06:33:14 +08:00
|
|
|
if (ImGui::Button("Check all"))
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_bullet = true;
|
|
|
|
g.self.proof_fire = true;
|
|
|
|
g.self.proof_collision = true;
|
|
|
|
g.self.proof_melee = true;
|
|
|
|
g.self.proof_explosion = true;
|
|
|
|
g.self.proof_steam = true;
|
|
|
|
g.self.proof_drown = true;
|
|
|
|
g.self.proof_water = true;
|
2022-07-02 23:15:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
2022-07-10 06:33:14 +08:00
|
|
|
if (ImGui::Button("Uncheck all"))
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_bullet = false;
|
|
|
|
g.self.proof_fire = false;
|
|
|
|
g.self.proof_collision = false;
|
|
|
|
g.self.proof_melee = false;
|
|
|
|
g.self.proof_explosion = false;
|
|
|
|
g.self.proof_steam = false;
|
|
|
|
g.self.proof_drown = false;
|
|
|
|
g.self.proof_water = false;
|
2022-07-02 23:15:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Bullet", &g.self.proof_bullet);
|
|
|
|
ImGui::Checkbox("Fire", &g.self.proof_fire);
|
2022-07-02 23:15:22 +08:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Collision", &g.self.proof_collision);
|
|
|
|
ImGui::Checkbox("Melee", &g.self.proof_melee);
|
2022-07-02 23:15:22 +08:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Explosion", &g.self.proof_explosion);
|
|
|
|
ImGui::Checkbox("Steam", &g.self.proof_steam);
|
2022-07-02 23:15:22 +08:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Drown", &g.self.proof_drown);
|
|
|
|
ImGui::Checkbox("Water", &g.self.proof_water);
|
2022-07-02 23:15:22 +08:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
|
2022-07-12 22:42:07 +08:00
|
|
|
ImGui::Separator();
|
|
|
|
|
2022-08-10 08:42:34 +08:00
|
|
|
components::sub_title("Police");
|
2022-07-12 22:42:07 +08:00
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Never Wanted", &g.self.never_wanted);
|
2022-07-12 22:42:07 +08:00
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
if (!g.self.never_wanted)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Force Wanted Level", &g.self.force_wanted_level);
|
2022-07-12 22:42:07 +08:00
|
|
|
ImGui::Text("Wanted Level");
|
|
|
|
if (
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::SliderInt("###wanted_level", &g.self.wanted_level, 0, 5) &&
|
|
|
|
!g.self.force_wanted_level &&
|
2022-07-12 22:42:07 +08:00
|
|
|
g_local_player != nullptr
|
|
|
|
) {
|
2022-12-18 23:15:52 +01:00
|
|
|
g_local_player->m_player_info->m_wanted_level = g.self.wanted_level;
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-11-07 13:23:24 -06:00
|
|
|
ImGui::Separator();
|
|
|
|
|
|
|
|
components::sub_title("HUD");
|
|
|
|
|
|
|
|
ImGui::BeginGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Hide Radar", &g.self.hide_radar);
|
2022-11-07 13:23:24 -06:00
|
|
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Hide Ammo", &g.self.hide_ammo);
|
2022-11-07 13:23:24 -06:00
|
|
|
|
2022-11-26 20:42:58 +01:00
|
|
|
ImGui::SameLine();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Force show HUD", &g.self.force_show_hud);
|
2022-11-26 20:42:58 +01:00
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Combo("##hud_comp_combo", &g.self.selected_hud_component, hud_component_names, (int)HudComponents::HUD_WEAPONS);
|
2022-11-07 13:23:24 -06:00
|
|
|
ImGui::SameLine();
|
|
|
|
components::button("Hide", [] {
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hud_components_states[g.self.selected_hud_component] = true;
|
2022-11-07 13:23:24 -06:00
|
|
|
});
|
|
|
|
ImGui::SameLine();
|
|
|
|
components::button("Show", [] {
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hud_components_states[g.self.selected_hud_component] = false;
|
2022-11-07 13:23:24 -06:00
|
|
|
});
|
|
|
|
|
|
|
|
components::button("Hide all", [] {
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hide_radar = true;
|
|
|
|
g.self.hide_ammo = true;
|
2022-11-07 13:23:24 -06:00
|
|
|
for (int i = 0; i < (int)HudComponents::HUD_WEAPONS; i++)
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hud_components_states[i] = true;
|
2022-11-07 13:23:24 -06:00
|
|
|
}
|
|
|
|
});
|
|
|
|
ImGui::SameLine();
|
|
|
|
components::button("Show all", [] {
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hide_radar = false;
|
|
|
|
g.self.hide_ammo = false;
|
2022-11-07 13:23:24 -06:00
|
|
|
for (int i = 0; i < (int)HudComponents::HUD_WEAPONS; i++)
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.hud_components_states[i] = false;
|
2022-11-07 13:23:24 -06:00
|
|
|
}
|
|
|
|
});
|
2022-11-26 20:42:58 +01:00
|
|
|
ImGui::SameLine();
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::Checkbox("Force show HUD element", &g.self.force_show_hud_element);
|
2022-11-26 20:42:58 +01:00
|
|
|
if (ImGui::IsItemHovered())
|
|
|
|
ImGui::SetTooltip("To force show a HUD specific element, click Hide all then click Show on the desired element.");
|
2022-11-07 13:23:24 -06:00
|
|
|
|
|
|
|
ImGui::EndGroup();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask = 0;
|
|
|
|
if (g.self.god_mode)
|
2022-07-10 06:33:14 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::GOD);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_bullet)
|
2022-07-10 06:33:14 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::BULLET);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_fire)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::FIRE);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_collision)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::COLLISION);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_melee)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::MELEE);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_explosion)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::EXPLOSION);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_steam)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::STEAM);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_drown)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::DROWN);
|
2022-07-12 22:42:07 +08:00
|
|
|
}
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.self.proof_water)
|
2022-07-12 22:42:07 +08:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.self.proof_mask |= static_cast<int>(eEntityProofs::WATER);
|
2022-05-04 19:16:40 +02:00
|
|
|
}
|
|
|
|
}
|
2022-06-25 22:03:43 +02:00
|
|
|
}
|