2023-03-01 21:27:15 +00:00
|
|
|
#include "core/data/blip_types.hpp"
|
|
|
|
#include "core/data/language_codes.hpp"
|
|
|
|
#include "core/data/region_codes.hpp"
|
2022-05-04 19:16:40 +02:00
|
|
|
#include "fiber_pool.hpp"
|
|
|
|
#include "util/teleport.hpp"
|
2023-03-01 21:27:15 +00:00
|
|
|
#include "views/view.hpp"
|
|
|
|
|
2022-11-13 16:34:44 +00:00
|
|
|
#include <network/ClanData.hpp>
|
2022-05-04 19:16:40 +02:00
|
|
|
|
|
|
|
namespace big
|
|
|
|
{
|
|
|
|
void view::spoofing()
|
2022-10-06 13:30:04 +02:00
|
|
|
{
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("HIDE_FROM_PLAYER_LIST"_T.data(), &g.spoofing.hide_from_player_list);
|
2022-12-23 00:03:34 +01:00
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
components::script_patch_checkbox("SPOOF_BLIP_TYPE"_T, &g.spoofing.spoof_blip);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_blip)
|
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
|
|
|
if (ImGui::BeginCombo("###blip_type_select", blip_types[g.spoofing.blip_type]))
|
|
|
|
{
|
|
|
|
for (int i = 0; i < blip_types.size(); i++)
|
|
|
|
{
|
|
|
|
if (ImGui::Selectable(blip_types[i], g.spoofing.blip_type == i))
|
|
|
|
{
|
|
|
|
g.spoofing.blip_type = i;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ImGui::EndCombo();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("SPOOF_RANK"_T.data(), &g.spoofing.spoof_rank);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_rank)
|
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
|
|
|
if (ImGui::InputInt("###rank", &g.spoofing.rank))
|
|
|
|
{
|
2023-04-14 18:54:07 +02:00
|
|
|
*g_pointers->m_gta.m_force_player_card_refresh = true;
|
2023-03-01 21:27:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("SPOOF_KD"_T.data(), &g.spoofing.spoof_kd_ratio);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_kd_ratio)
|
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
|
|
|
if (ImGui::InputFloat("###kd_ratio", &g.spoofing.kd_ratio))
|
|
|
|
{
|
2023-04-14 18:54:07 +02:00
|
|
|
*g_pointers->m_gta.m_force_player_card_refresh = true;
|
2023-03-01 21:27:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("SPOOF_BADSPORT"_T.data(), &g.spoofing.spoof_bad_sport);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_bad_sport)
|
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
2023-10-20 12:24:44 -04:00
|
|
|
static const std::string badsport_options = std::string("CLEAN_PLAYER"_T.data()) + '\0' + std::string("VIEW_SPOOFING_DIRTY_PLAYER"_T.data()) + '\0' + std::string("BAD_SPORT"_T.data());
|
|
|
|
if (ImGui::Combo("###badsport_select", &g.spoofing.badsport_type, badsport_options.c_str()))
|
2023-03-01 21:27:15 +00:00
|
|
|
{
|
2023-04-14 18:54:07 +02:00
|
|
|
*g_pointers->m_gta.m_force_player_card_refresh = true;
|
2023-03-01 21:27:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("SPOOF_JOB_POINTS"_T.data(), &g.spoofing.spoof_job_points);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_job_points)
|
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::InputInt("###jp", &g.spoofing.job_points);
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
ImGui::Checkbox("SPOOF_PLAYER_MODEL"_T.data(), &g.spoofing.spoof_player_model);
|
2023-03-01 21:27:15 +00:00
|
|
|
if (g.spoofing.spoof_player_model)
|
|
|
|
{
|
|
|
|
static char model[32];
|
|
|
|
strcpy_s(model, sizeof(model), g.spoofing.player_model.c_str());
|
|
|
|
|
|
|
|
ImGui::SameLine();
|
|
|
|
components::input_text("##model_input", model, sizeof(model));
|
|
|
|
|
|
|
|
if (model != g.spoofing.player_model)
|
|
|
|
g.spoofing.player_model = std::string(model);
|
|
|
|
}
|
|
|
|
|
2023-03-09 12:23:01 +00:00
|
|
|
components::command_checkbox<"vcaudio">();
|
2023-03-01 21:27:15 +00:00
|
|
|
|
2023-06-27 14:05:44 +02:00
|
|
|
ImGui::SeparatorText("SPOOFING_HIDE_FEATURES"_T.data());
|
2023-02-04 16:35:18 +00:00
|
|
|
ImGui::Checkbox("SPOOFING_HIDE_GOD_MODE"_T.data(), &g.spoofing.spoof_hide_god);
|
2024-05-13 15:21:34 +00:00
|
|
|
ImGui::Checkbox("SPOOFING_HIDE_VEH_GOD_MODE"_T.data(), &g.spoofing.spoof_hide_veh_god);
|
2023-02-04 16:35:18 +00:00
|
|
|
ImGui::Checkbox("SPOOFING_HIDE_SPECTATE"_T.data(), &g.spoofing.spoof_hide_spectate);
|
2022-10-29 05:54:32 -04:00
|
|
|
|
2023-06-27 14:05:44 +02:00
|
|
|
ImGui::SeparatorText("CREW"_T.data());
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_CREW"_T.data(), &g.spoofing.spoof_crew_data);
|
2022-10-06 13:30:04 +02:00
|
|
|
|
|
|
|
constexpr size_t crew_tag_size = RTL_FIELD_SIZE(ClanData, m_clan_tag);
|
|
|
|
static char crew_tag[crew_tag_size];
|
2022-12-18 23:15:52 +01:00
|
|
|
strcpy_s(crew_tag, sizeof(crew_tag), g.spoofing.crew_tag.c_str());
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Text("SPOOFING_CREW_TAG"_T.data());
|
2023-01-16 15:58:57 -05:00
|
|
|
components::input_text("##crew_tag_input", crew_tag, sizeof(crew_tag));
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
if (crew_tag != g.spoofing.crew_tag)
|
|
|
|
g.spoofing.crew_tag = std::string(crew_tag);
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_CREW_ROCKSTAR"_T.data(), &g.spoofing.rockstar_crew);
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_CREW_SQUARE_TAG"_T.data(), &g.spoofing.square_crew_tag);
|
2022-10-06 13:30:04 +02:00
|
|
|
|
2023-06-27 14:05:44 +02:00
|
|
|
ImGui::SeparatorText("SPOOFING_SESSION_ATTRIBUTES"_T.data());
|
2023-02-01 19:46:33 +01:00
|
|
|
components::small_text("SPOOFING_ONLY_WORKS_AS_HOST"_T);
|
2022-12-06 16:12:02 +00:00
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_ATTRIBUTE_REGION"_T.data(), &g.spoofing.spoof_session_region_type);
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.spoofing.spoof_session_region_type)
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
2022-12-18 23:15:52 +01:00
|
|
|
if (ImGui::BeginCombo("###region_select", regions[g.spoofing.session_region_type].name))
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
|
|
|
for (const auto& region : regions)
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
if (ImGui::Selectable(region.name, g.spoofing.session_region_type == region.id))
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.spoofing.session_region_type = region.id;
|
2022-12-06 16:12:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
ImGui::EndCombo();
|
|
|
|
}
|
|
|
|
}
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_ATTRIBUTE_LANGUAGE"_T.data(), &g.spoofing.spoof_session_language);
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.spoofing.spoof_session_language)
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
|
|
|
|
2022-12-18 23:15:52 +01:00
|
|
|
if (ImGui::BeginCombo("###language_select", languages[g.spoofing.session_language].name))
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
|
|
|
for (const auto& language : languages)
|
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
if (ImGui::Selectable(language.name, g.spoofing.session_language == language.id))
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
2022-12-18 23:15:52 +01:00
|
|
|
g.spoofing.session_language = language.id;
|
2022-12-06 16:12:02 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
ImGui::EndCombo();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-02-01 19:46:33 +01:00
|
|
|
ImGui::Checkbox("SPOOFING_ATTRIBUTE_PLAYER_COUNT"_T.data(), &g.spoofing.spoof_session_player_count);
|
2022-12-18 23:15:52 +01:00
|
|
|
if (g.spoofing.spoof_session_player_count)
|
2022-12-06 16:12:02 +00:00
|
|
|
{
|
|
|
|
ImGui::SameLine();
|
2022-12-18 23:15:52 +01:00
|
|
|
ImGui::InputInt("###player_count", &g.spoofing.session_player_count);
|
2022-12-06 16:12:02 +00:00
|
|
|
}
|
2023-06-23 06:43:44 +00:00
|
|
|
|
2024-05-16 00:51:04 -07:00
|
|
|
components::small_text("VIEW_SPOOFING_SPOOF_SESSION_BAD_SPORT_STATUS"_T);
|
|
|
|
ImGui::RadioButton("VIEW_SPOOFING_SPORT_DEFAULT"_T.data(), &g.spoofing.spoof_session_bad_sport_status, 0);
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::RadioButton("VIEW_SPOOFING_SPORT_GOOD"_T.data(), &g.spoofing.spoof_session_bad_sport_status, 1);
|
|
|
|
ImGui::SameLine();
|
|
|
|
ImGui::RadioButton("VIEW_SPOOFING_SPORT_BAD"_T.data(), &g.spoofing.spoof_session_bad_sport_status, 2);
|
2022-05-04 19:16:40 +02:00
|
|
|
}
|
|
|
|
}
|