mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2025-01-09 18:58:58 +08:00
feat: Added steal outfit, steal identity (#92)
Co-authored-by: Yimura <andreas.maerten@scarlet.be>
This commit is contained in:
parent
5632c9d812
commit
1fcfd5e0c6
36
BigBaseV2/src/util/ped.hpp
Normal file
36
BigBaseV2/src/util/ped.hpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "natives.hpp"
|
||||||
|
|
||||||
|
namespace big::ped
|
||||||
|
{
|
||||||
|
inline void steal_outfit(const Ped target)
|
||||||
|
{
|
||||||
|
if (ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()) != ENTITY::GET_ENTITY_MODEL(target)) {
|
||||||
|
g_notification_service->push("Error", "Model mismatch, use steal identity instead.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 12; i++) {
|
||||||
|
PED::SET_PED_COMPONENT_VARIATION
|
||||||
|
(
|
||||||
|
PLAYER::PLAYER_PED_ID(),
|
||||||
|
i,
|
||||||
|
PED::GET_PED_DRAWABLE_VARIATION(target, i),
|
||||||
|
PED::GET_PED_TEXTURE_VARIATION(target, i),
|
||||||
|
PED::GET_PED_PALETTE_VARIATION(target, i)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void steal_identity(const Ped target)
|
||||||
|
{
|
||||||
|
const int max_health = ENTITY::GET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID());
|
||||||
|
const int current_health = ENTITY::GET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID());
|
||||||
|
const int current_armor = PED::GET_PED_ARMOUR(PLAYER::PLAYER_PED_ID());
|
||||||
|
|
||||||
|
PLAYER::SET_PLAYER_MODEL(PLAYER::PLAYER_ID(), ENTITY::GET_ENTITY_MODEL(target));
|
||||||
|
PED::CLONE_PED_TO_TARGET(target, PLAYER::PLAYER_PED_ID());
|
||||||
|
ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), max_health);
|
||||||
|
ENTITY::SET_ENTITY_HEALTH(PLAYER::PLAYER_PED_ID(), current_health, 0);
|
||||||
|
PED::SET_PED_ARMOUR(PLAYER::PLAYER_PED_ID(), current_armor);
|
||||||
|
}
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
#include "services/player_service.hpp"
|
#include "services/player_service.hpp"
|
||||||
#include "gta_util.hpp"
|
#include "gta_util.hpp"
|
||||||
#include "util/misc.hpp"
|
#include "util/misc.hpp"
|
||||||
|
#include "util/ped.hpp"
|
||||||
#include "util/teleport.hpp"
|
#include "util/teleport.hpp"
|
||||||
|
|
||||||
namespace big
|
namespace big
|
||||||
@ -17,6 +18,24 @@ namespace big
|
|||||||
if (g_player_service->get_selected()->is_valid())
|
if (g_player_service->get_selected()->is_valid())
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (ImGui::TreeNode("Misc")) {
|
||||||
|
components::button("Steal Outfit", [] {
|
||||||
|
ped::steal_outfit(
|
||||||
|
PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(g_player_service->get_selected()->id())
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
|
||||||
|
components::button("Steal Identity", [] {
|
||||||
|
ped::steal_identity(
|
||||||
|
PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(g_player_service->get_selected()->id())
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
ImGui::TreePop();
|
||||||
|
}
|
||||||
|
|
||||||
if (ImGui::TreeNode("Info")) {
|
if (ImGui::TreeNode("Info")) {
|
||||||
|
|
||||||
ImGui::Text("Player ID: %d", g_player_service->get_selected()->id());
|
ImGui::Text("Player ID: %d", g_player_service->get_selected()->id());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user