Files
TmpMenu/src/backend/looped/weapons/delete_gun.cpp

52 lines
1.4 KiB
C++
Raw Normal View History

#include "backend/looped/looped.hpp"
#include "core/enums.hpp"
#include "gta/enums.hpp"
#include "util/entity.hpp"
#include "util/math.hpp"
namespace big
{
void looped::weapons_delete_gun()
{
if (const bool bDeleteGun = g.weapons.custom_weapon == CustomWeapon::DELETE_GUN; bDeleteGun && (!g.self.custom_weapon_stop || WEAPON::IS_PED_ARMED(self::ped, 4 | 2)))
{
if (PAD::IS_DISABLED_CONTROL_PRESSED(0, (int)ControllerInputs::INPUT_AIM))
{
if (PAD::IS_DISABLED_CONTROL_JUST_RELEASED(0, (int)ControllerInputs::INPUT_ATTACK))
{
Entity entity;
if (entity::raycast(&entity))
{
if (ENTITY::IS_ENTITY_A_PED(entity) && PED::IS_PED_A_PLAYER(entity))
{
g_notification_service->push_error("Weapons", "You can't delete player entities!");
}
else
{
Vector3 entLoc = ENTITY::GET_ENTITY_COORDS(entity, true);
double dist = math::distance_between_vectors(self::pos, entLoc);
if (dist > 500)
{
g_notification_service->push_error("Weapons", "Entity is too far.");
}
else
{
if (entity::take_control_of(entity))
{
entity::delete_entity(entity);
}
else
g_notification_service->push_error("Weapons", "Failed to take control of entity.");
}
}
}
else
g_notification_service->push_error("Weapons", "No entity found.");
}
}
}
}
}