Fixed friendly NPCs being incorrectly targeted by the aimbot/triggerbot. (#3412)

Added friends check to the aimbot/triggerbot.
This commit is contained in:
gir489 2024-07-23 14:13:51 -04:00 committed by GitHub
parent bba720f059
commit 15d92940be
6 changed files with 486 additions and 219 deletions

View File

@ -1,104 +1,103 @@
#include "backend/looped/looped.hpp" #include "backend/looped_command.hpp"
#include "backend/looped_command.hpp" #include "pointers.hpp"
#include "pointers.hpp" #include "gta_util.hpp"
#include "gta_util.hpp" #include "util/math.hpp"
#include "util/math.hpp" #include <network/Network.hpp>
#include <network/Network.hpp> #include <network/CCommunications.hpp>
#include <network/CCommunications.hpp>
namespace big
namespace big {
{ void set_peer_id_upper(std::uint64_t upper)
void set_peer_id_upper(std::uint64_t upper) {
{ *g_pointers->m_gta.m_peer_id &= 0xFFFFFFFF;
*g_pointers->m_gta.m_peer_id &= 0xFFFFFFFF; *g_pointers->m_gta.m_peer_id |= (upper << 32);
*g_pointers->m_gta.m_peer_id |= (upper << 32);
if (gta_util::get_network()->m_game_session_ptr)
if (gta_util::get_network()->m_game_session_ptr) gta_util::get_network()->m_game_session_ptr->m_local_player.m_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id;
gta_util::get_network()->m_game_session_ptr->m_local_player.m_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id; if (gta_util::get_network()->m_transition_session_ptr)
if (gta_util::get_network()->m_transition_session_ptr) gta_util::get_network()->m_transition_session_ptr->m_local_player.m_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id;
gta_util::get_network()->m_transition_session_ptr->m_local_player.m_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id;
g_pointers->m_gta.m_profile_gamer_info->m_peer_id = *g_pointers->m_gta.m_peer_id;
g_pointers->m_gta.m_profile_gamer_info->m_peer_id = *g_pointers->m_gta.m_peer_id; g_pointers->m_gta.m_player_info_gamer_info->m_peer_id = *g_pointers->m_gta.m_peer_id;
g_pointers->m_gta.m_player_info_gamer_info->m_peer_id = *g_pointers->m_gta.m_peer_id; (*g_pointers->m_gta.m_communications)->m_voice.m_connections[0]->m_gamer_info.m_peer_id = *g_pointers->m_gta.m_peer_id;
(*g_pointers->m_gta.m_communications)->m_voice.m_connections[0]->m_gamer_info.m_peer_id = *g_pointers->m_gta.m_peer_id;
if (g_local_player && g_local_player->m_player_info)
if (g_local_player && g_local_player->m_player_info) g_local_player->m_player_info->m_net_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id;
g_local_player->m_player_info->m_net_player_data.m_peer_id = *g_pointers->m_gta.m_peer_id; }
}
void set_host_token(std::uint64_t token)
void set_host_token(std::uint64_t token) {
{ *g_pointers->m_gta.m_host_token = token;
*g_pointers->m_gta.m_host_token = token;
if (gta_util::get_network()->m_game_session_ptr)
if (gta_util::get_network()->m_game_session_ptr) gta_util::get_network()->m_game_session_ptr->m_local_player.m_player_data.m_host_token = token;
gta_util::get_network()->m_game_session_ptr->m_local_player.m_player_data.m_host_token = token; if (gta_util::get_network()->m_transition_session_ptr)
if (gta_util::get_network()->m_transition_session_ptr) gta_util::get_network()->m_transition_session_ptr->m_local_player.m_player_data.m_host_token = token;
gta_util::get_network()->m_transition_session_ptr->m_local_player.m_player_data.m_host_token = token;
g_pointers->m_gta.m_profile_gamer_info->m_host_token = token;
g_pointers->m_gta.m_profile_gamer_info->m_host_token = token; g_pointers->m_gta.m_player_info_gamer_info->m_host_token = token;
g_pointers->m_gta.m_player_info_gamer_info->m_host_token = token; (*g_pointers->m_gta.m_communications)->m_voice.m_connections[0]->m_gamer_info.m_host_token = token;
(*g_pointers->m_gta.m_communications)->m_voice.m_connections[0]->m_gamer_info.m_host_token = token;
if (g_local_player && g_local_player->m_player_info)
if (g_local_player && g_local_player->m_player_info) g_local_player->m_player_info->m_net_player_data.m_host_token = token;
g_local_player->m_player_info->m_net_player_data.m_host_token = token;
set_peer_id_upper(token >> 32);
set_peer_id_upper(token >> 32); }
}
class spoof_host_token_internal : looped_command
class spoof_host_token_internal : looped_command {
{ using looped_command::looped_command;
using looped_command::looped_command;
virtual void on_enable() override
virtual void on_enable() override {
{ g.session.original_host_token = *g_pointers->m_gta.m_host_token;
g.session.original_host_token = *g_pointers->m_gta.m_host_token; }
}
virtual void on_tick() override
virtual void on_tick() override {
{ if (g.session.spoof_host_token_dirty && gta_util::get_network()->m_game_session_state == 0)
if (g.session.spoof_host_token_dirty && gta_util::get_network()->m_game_session_state == 0) {
{ switch (g.session.spoof_host_token_type)
switch (g.session.spoof_host_token_type) {
{ case 0: // Disabled
case 0: // Disabled {
{ set_host_token(g.session.original_host_token);
set_host_token(g.session.original_host_token); break;
break; }
} case 1: // Legit
case 1: // Legit {
{ std::uint64_t rand_upper = math::rand(20, 230);
std::uint64_t rand_upper = math::rand(20, 230); set_host_token(((g.session.original_host_token) & 0xFFFFFFFF) | (rand_upper << 32));
set_host_token(((g.session.original_host_token) & 0xFFFFFFFF) | (rand_upper << 32)); break;
break; }
} case 2: // Aggressive
case 2: // Aggressive {
{ set_host_token(math::rand(10, 1000));
set_host_token(math::rand(10, 1000)); break;
break; }
} case 3: // Very aggressive
case 3: // Very aggressive {
{ set_host_token(0);
set_host_token(0); break;
break; }
} case 4: // Custom
case 4: // Custom {
{ set_host_token(g.session.custom_host_token);
set_host_token(g.session.custom_host_token); break;
break; }
} }
} g.session.spoof_host_token_dirty = false;
g.session.spoof_host_token_dirty = false; }
} }
}
virtual void on_disable() override
virtual void on_disable() override {
{ if (g.session.original_host_token)
if (g.session.original_host_token) set_host_token(g.session.original_host_token);
set_host_token(g.session.original_host_token); }
} };
};
static bool true_ref = true;
static bool true_ref = true; spoof_host_token_internal g_spoof_host_token_internal("$$spoofhosttoken", "", "", true_ref);
spoof_host_token_internal g_spoof_host_token_internal("$$spoofhosttoken", "", "", true_ref);
} }

View File

@ -4,6 +4,8 @@
#include "natives.hpp" #include "natives.hpp"
#include "util/math.hpp" #include "util/math.hpp"
#include "util/pools.hpp" #include "util/pools.hpp"
#include "services/friends/friends_service.hpp"
#include "services/player_database/player_database_service.hpp"
namespace big namespace big
{ {
@ -136,6 +138,17 @@ namespace big
{ {
continue; continue;
} }
if (g.weapons.aimbot.exclude_friends && !ped->m_player_info)
{
auto rockstar_id = ped->m_player_info->m_net_player_data.m_gamer_handle.m_rockstar_id;
auto is_friend = friends_service::is_friend(rockstar_id);
auto db_player = g_player_database_service->get_player_by_rockstar_id(rockstar_id);
auto is_trusted = db_player && db_player->is_trusted;
if (is_friend || is_trusted)
continue;
}
const auto ped_handle = g_pointers->m_gta.m_ptr_to_handle(ped); const auto ped_handle = g_pointers->m_gta.m_ptr_to_handle(ped);
@ -143,20 +156,20 @@ namespace big
{ {
bool is_hated_relationship = false; bool is_hated_relationship = false;
bool is_in_combat = PED::IS_PED_IN_COMBAT(ped_handle, self::ped); bool is_in_combat = PED::IS_PED_IN_COMBAT(ped_handle, self::ped);
auto blip_color = HUD::GET_BLIP_COLOUR(HUD::GET_BLIP_FROM_ENTITY(ped_handle)); auto blip_color = HUD::GET_BLIP_HUD_COLOUR(HUD::GET_BLIP_FROM_ENTITY(ped_handle));
bool is_enemy = PED::GET_PED_CONFIG_FLAG(ped_handle, 38, TRUE) == TRUE || (blip_color == (int)BlipColors::BlipColorEnemy || blip_color == (int)BlipColors::RedMission); bool is_enemy = ((PED::GET_PED_CONFIG_FLAG(ped_handle, 38, TRUE) == TRUE) || (blip_color == HUD_COLOUR_RED));
switch (PED::GET_RELATIONSHIP_BETWEEN_PEDS(ped_handle, self::ped)) switch (PED::GET_RELATIONSHIP_BETWEEN_PEDS(ped_handle, self::ped))
{ {
case Dislike: case Dislike:
case Wanted: case Wanted:
case Hate: is_hated_relationship = true; case Hate: is_hated_relationship = true;
} }
if (!is_hated_relationship && !is_in_combat && !is_enemy) if (!is_hated_relationship && !is_in_combat && !is_enemy)
{ {
/*if (PED::GET_PED_TYPE(ped_handle) != PED_TYPE_ANIMAL) /*if (PED::GET_PED_TYPE(ped_handle) != PED_TYPE_ANIMAL)
LOG(INFO) << " PED_TYPE " << PED::GET_PED_TYPE(ped_handle) << " hated " << is_hated_relationship << " combat " << is_in_combat << " enemy " << is_enemy << " blip_color " << blip_color;*/ LOG(INFO) << " PED_TYPE " << PED::GET_PED_TYPE(ped_handle) << " hated " << is_hated_relationship << " combat " << is_in_combat << " enemy " << is_enemy << " blip_color " << blip_color;*/
continue; continue;
} }
} }

View File

@ -1,110 +1,123 @@
#include "backend/looped_command.hpp" #include "backend/looped_command.hpp"
#include "gta/enums.hpp" #include "gta/enums.hpp"
#include "natives.hpp" #include "natives.hpp"
#include "util/entity.hpp" #include "util/entity.hpp"
#include "services/friends/friends_service.hpp"
namespace big #include "services/player_database/player_database_service.hpp"
{
class triggerbot : looped_command namespace big
{ {
using looped_command::looped_command; class triggerbot : looped_command
{
virtual void on_tick() override using looped_command::looped_command;
{
Entity crosshair_catch; virtual void on_tick() override
if (PAD::IS_DISABLED_CONTROL_PRESSED(0, (int)ControllerInputs::INPUT_AIM)) {
{ Entity crosshair_catch;
if (g.weapons.aimbot.enable && g.weapons.aimbot.has_target) if (PAD::IS_DISABLED_CONTROL_PRESSED(0, (int)ControllerInputs::INPUT_AIM))
{ {
PED::SET_PED_RESET_FLAG(self::ped, 65, TRUE); if (g.weapons.aimbot.enable && g.weapons.aimbot.has_target)
} {
else if (entity::raycast(&crosshair_catch)) PED::SET_PED_RESET_FLAG(self::ped, 65, TRUE);
{ }
if (ENTITY::IS_ENTITY_A_PED(crosshair_catch) && !ENTITY::IS_ENTITY_DEAD(crosshair_catch, 0)) else if (entity::raycast(&crosshair_catch))
{ {
Ped ped = (Ped)crosshair_catch; if (ENTITY::IS_ENTITY_A_PED(crosshair_catch) && !ENTITY::IS_ENTITY_DEAD(crosshair_catch, 0))
CPed* ped_ptr = reinterpret_cast<CPed*>(g_pointers->m_gta.m_handle_to_ptr(ped)); {
Ped ped = (Ped)crosshair_catch;
if (ped_ptr == nullptr) CPed* ped_ptr = reinterpret_cast<CPed*>(g_pointers->m_gta.m_handle_to_ptr(ped));
return;
if (ped_ptr == nullptr)
if (g.weapons.aimbot.only_on_player && !ped_ptr->m_player_info) return;
return;
if (g.weapons.aimbot.only_on_player && !ped_ptr->m_player_info)
if (g.weapons.aimbot.only_on_enemy) return;
{
bool is_hated_relationship = false; if (g.weapons.aimbot.exclude_friends && !ped_ptr->m_player_info)
bool is_in_combat = PED::IS_PED_IN_COMBAT(ped, self::ped); {
auto blip_color = HUD::GET_BLIP_COLOUR(HUD::GET_BLIP_FROM_ENTITY(ped)); auto rockstar_id = ped_ptr->m_player_info->m_net_player_data.m_gamer_handle.m_rockstar_id;
bool is_enemy = PED::GET_PED_CONFIG_FLAG(ped, 38, TRUE) == TRUE || (blip_color == (int)BlipColors::BlipColorEnemy || blip_color == (int)BlipColors::RedMission); auto is_friend = friends_service::is_friend(rockstar_id);
auto db_player = g_player_database_service->get_player_by_rockstar_id(rockstar_id);
switch (PED::GET_RELATIONSHIP_BETWEEN_PEDS(ped, self::ped)) auto is_trusted = db_player && db_player->is_trusted;
{
case Dislike: if (is_friend || is_trusted)
case Wanted: return;
case Hate: is_hated_relationship = true; }
}
if (g.weapons.aimbot.only_on_enemy)
if (!is_hated_relationship && !is_in_combat && !is_enemy) {
{ bool is_hated_relationship = false;
return; bool is_in_combat = PED::IS_PED_IN_COMBAT(ped, self::ped);
} auto blip_color = HUD::GET_BLIP_HUD_COLOUR(HUD::GET_BLIP_FROM_ENTITY(ped));
} bool is_enemy = ((PED::GET_PED_CONFIG_FLAG(ped, 38, TRUE) == TRUE) || (blip_color == HUD_COLOUR_RED));
bool is_a_ped_type_we_dont_care_about; switch (PED::GET_RELATIONSHIP_BETWEEN_PEDS(ped, self::ped))
const auto ped_type = PED::GET_PED_TYPE(ped); {
case Dislike:
switch (ped_type) case Wanted:
{ case Hate: is_hated_relationship = true;
case ePedType::PED_TYPE_PLAYER_0: }
case ePedType::PED_TYPE_PLAYER_1:
case ePedType::PED_TYPE_NETWORK_PLAYER: if (!is_hated_relationship && !is_in_combat && !is_enemy)
case ePedType::PED_TYPE_PLAYER_2: {
case ePedType::PED_TYPE_CIVMALE: return;
case ePedType::PED_TYPE_CIVFEMALE: }
case ePedType::PED_TYPE_COP: }
case ePedType::PED_TYPE_GANG_ALBANIAN:
case ePedType::PED_TYPE_GANG_BIKER_1: bool is_a_ped_type_we_dont_care_about;
case ePedType::PED_TYPE_GANG_BIKER_2: const auto ped_type = PED::GET_PED_TYPE(ped);
case ePedType::PED_TYPE_GANG_ITALIAN:
case ePedType::PED_TYPE_GANG_RUSSIAN: switch (ped_type)
case ePedType::PED_TYPE_GANG_RUSSIAN_2: {
case ePedType::PED_TYPE_GANG_IRISH: case ePedType::PED_TYPE_PLAYER_0:
case ePedType::PED_TYPE_GANG_JAMAICAN: case ePedType::PED_TYPE_PLAYER_1:
case ePedType::PED_TYPE_GANG_AFRICAN_AMERICAN: case ePedType::PED_TYPE_NETWORK_PLAYER:
case ePedType::PED_TYPE_GANG_KOREAN: case ePedType::PED_TYPE_PLAYER_2:
case ePedType::PED_TYPE_GANG_CHINESE_JAPANESE: case ePedType::PED_TYPE_CIVMALE:
case ePedType::PED_TYPE_GANG_PUERTO_RICAN: case ePedType::PED_TYPE_CIVFEMALE:
case ePedType::PED_TYPE_DEALER: case ePedType::PED_TYPE_COP:
case ePedType::PED_TYPE_MEDIC: case ePedType::PED_TYPE_GANG_ALBANIAN:
case ePedType::PED_TYPE_FIREMAN: case ePedType::PED_TYPE_GANG_BIKER_1:
case ePedType::PED_TYPE_CRIMINAL: case ePedType::PED_TYPE_GANG_BIKER_2:
case ePedType::PED_TYPE_BUM: case ePedType::PED_TYPE_GANG_ITALIAN:
case ePedType::PED_TYPE_PROSTITUTE: case ePedType::PED_TYPE_GANG_RUSSIAN:
case ePedType::PED_TYPE_SPECIAL: case ePedType::PED_TYPE_GANG_RUSSIAN_2:
case ePedType::PED_TYPE_MISSION: case ePedType::PED_TYPE_GANG_IRISH:
case ePedType::PED_TYPE_SWAT: case ePedType::PED_TYPE_GANG_JAMAICAN:
case ePedType::PED_TYPE_ANIMAL: case ePedType::PED_TYPE_GANG_AFRICAN_AMERICAN:
case ePedType::PED_TYPE_ARMY: case ePedType::PED_TYPE_GANG_KOREAN:
{ case ePedType::PED_TYPE_GANG_CHINESE_JAPANESE:
is_a_ped_type_we_dont_care_about = (g.weapons.aimbot.only_on_ped_type & (1LL << ped_type)) == 0; case ePedType::PED_TYPE_GANG_PUERTO_RICAN:
} case ePedType::PED_TYPE_DEALER:
default: is_a_ped_type_we_dont_care_about = false; case ePedType::PED_TYPE_MEDIC:
} case ePedType::PED_TYPE_FIREMAN:
case ePedType::PED_TYPE_CRIMINAL:
if (is_a_ped_type_we_dont_care_about) case ePedType::PED_TYPE_BUM:
{ case ePedType::PED_TYPE_PROSTITUTE:
return; case ePedType::PED_TYPE_SPECIAL:
} case ePedType::PED_TYPE_MISSION:
case ePedType::PED_TYPE_SWAT:
//Vector3 coords = ENTITY::GET_ENTITY_BONE_POSTION(crosshair_catch, 0x796E); //SKEL_Head (This will fix the edge case of peds in cars) case ePedType::PED_TYPE_ANIMAL:
//PED::SET_PED_SHOOTS_AT_COORD(self::ped, coords.x, coords.y, coords.z, true); case ePedType::PED_TYPE_ARMY:
PED::SET_PED_RESET_FLAG(self::ped, 65, TRUE); {
} is_a_ped_type_we_dont_care_about = (g.weapons.aimbot.only_on_ped_type & (1LL << ped_type)) == 0;
} }
} default: is_a_ped_type_we_dont_care_about = false;
} }
};
if (is_a_ped_type_we_dont_care_about)
triggerbot g_triggerbot("triggerbot", "VIEW_OVERLAY_TRIGGERBOT", "BACKEND_LOOPED_WEAPONS_TRIGGERBOT_DESC", g.weapons.triggerbot); {
} return;
}
//Vector3 coords = ENTITY::GET_ENTITY_BONE_POSTION(crosshair_catch, 0x796E); //SKEL_Head (This will fix the edge case of peds in cars)
//PED::SET_PED_SHOOTS_AT_COORD(self::ped, coords.x, coords.y, coords.z, true);
PED::SET_PED_RESET_FLAG(self::ped, 65, TRUE);
}
}
}
}
};
triggerbot g_triggerbot("triggerbot", "VIEW_OVERLAY_TRIGGERBOT", "BACKEND_LOOPED_WEAPONS_TRIGGERBOT_DESC", g.weapons.triggerbot);
}

View File

@ -901,6 +901,7 @@ namespace big
bool enable = false; bool enable = false;
int64_t only_on_ped_type = -1; int64_t only_on_ped_type = -1;
bool only_on_player = false; bool only_on_player = false;
bool exclude_friends = false;
bool only_on_enemy = false; bool only_on_enemy = false;
bool has_target = false; bool has_target = false;
float fov = 60.f; float fov = 60.f;

View File

@ -2140,3 +2140,242 @@ enum PedRelationships : int
Hate, Hate,
Indifferent = 255 Indifferent = 255
}; };
enum HudColors : int //https://docs.fivem.net/docs/game-references/hud-colors/
{
HUD_COLOUR_PURE_WHITE,
HUD_COLOUR_WHITE,
HUD_COLOUR_BLACK,
HUD_COLOUR_GREY,
HUD_COLOUR_GREYLIGHT,
HUD_COLOUR_GREYDARK,
HUD_COLOUR_RED,
HUD_COLOUR_REDLIGHT,
HUD_COLOUR_REDDARK,
HUD_COLOUR_BLUE,
HUD_COLOUR_BLUELIGHT,
HUD_COLOUR_BLUEDARK,
HUD_COLOUR_YELLOW,
HUD_COLOUR_YELLOWLIGHT,
HUD_COLOUR_YELLOWDARK,
HUD_COLOUR_ORANGE,
HUD_COLOUR_ORANGELIGHT,
HUD_COLOUR_ORANGEDARK,
HUD_COLOUR_GREEN,
HUD_COLOUR_GREENLIGHT,
HUD_COLOUR_GREENDARK,
HUD_COLOUR_PURPLE,
HUD_COLOUR_PURPLELIGHT,
HUD_COLOUR_PURPLEDARK,
HUD_COLOUR_PINK,
HUD_COLOUR_RADAR_HEALTH,
HUD_COLOUR_RADAR_ARMOUR,
HUD_COLOUR_RADAR_DAMAGE,
HUD_COLOUR_NET_PLAYER1,
HUD_COLOUR_NET_PLAYER2,
HUD_COLOUR_NET_PLAYER3,
HUD_COLOUR_NET_PLAYER4,
HUD_COLOUR_NET_PLAYER5,
HUD_COLOUR_NET_PLAYER6,
HUD_COLOUR_NET_PLAYER7,
HUD_COLOUR_NET_PLAYER8,
HUD_COLOUR_NET_PLAYER9,
HUD_COLOUR_NET_PLAYER10,
HUD_COLOUR_NET_PLAYER11,
HUD_COLOUR_NET_PLAYER12,
HUD_COLOUR_NET_PLAYER13,
HUD_COLOUR_NET_PLAYER14,
HUD_COLOUR_NET_PLAYER15,
HUD_COLOUR_NET_PLAYER16,
HUD_COLOUR_NET_PLAYER17,
HUD_COLOUR_NET_PLAYER18,
HUD_COLOUR_NET_PLAYER19,
HUD_COLOUR_NET_PLAYER20,
HUD_COLOUR_NET_PLAYER21,
HUD_COLOUR_NET_PLAYER22,
HUD_COLOUR_NET_PLAYER23,
HUD_COLOUR_NET_PLAYER24,
HUD_COLOUR_NET_PLAYER25,
HUD_COLOUR_NET_PLAYER26,
HUD_COLOUR_NET_PLAYER27,
HUD_COLOUR_NET_PLAYER28,
HUD_COLOUR_NET_PLAYER29,
HUD_COLOUR_NET_PLAYER30,
HUD_COLOUR_NET_PLAYER31,
HUD_COLOUR_NET_PLAYER32,
HUD_COLOUR_SIMPLEBLIP_DEFAULT,
HUD_COLOUR_MENU_BLUE,
HUD_COLOUR_MENU_GREY_LIGHT,
HUD_COLOUR_MENU_BLUE_EXTRA_DARK,
HUD_COLOUR_MENU_YELLOW,
HUD_COLOUR_MENU_YELLOW_DARK,
HUD_COLOUR_MENU_GREEN,
HUD_COLOUR_MENU_GREY,
HUD_COLOUR_MENU_GREY_DARK,
HUD_COLOUR_MENU_HIGHLIGHT,
HUD_COLOUR_MENU_STANDARD,
HUD_COLOUR_MENU_DIMMED,
HUD_COLOUR_MENU_EXTRA_DIMMED,
HUD_COLOUR_BRIEF_TITLE,
HUD_COLOUR_MID_GREY_MP,
HUD_COLOUR_NET_PLAYER1_DARK,
HUD_COLOUR_NET_PLAYER2_DARK,
HUD_COLOUR_NET_PLAYER3_DARK,
HUD_COLOUR_NET_PLAYER4_DARK,
HUD_COLOUR_NET_PLAYER5_DARK,
HUD_COLOUR_NET_PLAYER6_DARK,
HUD_COLOUR_NET_PLAYER7_DARK,
HUD_COLOUR_NET_PLAYER8_DARK,
HUD_COLOUR_NET_PLAYER9_DARK,
HUD_COLOUR_NET_PLAYER10_DARK,
HUD_COLOUR_NET_PLAYER11_DARK,
HUD_COLOUR_NET_PLAYER12_DARK,
HUD_COLOUR_NET_PLAYER13_DARK,
HUD_COLOUR_NET_PLAYER14_DARK,
HUD_COLOUR_NET_PLAYER15_DARK,
HUD_COLOUR_NET_PLAYER16_DARK,
HUD_COLOUR_NET_PLAYER17_DARK,
HUD_COLOUR_NET_PLAYER18_DARK,
HUD_COLOUR_NET_PLAYER19_DARK,
HUD_COLOUR_NET_PLAYER20_DARK,
HUD_COLOUR_NET_PLAYER21_DARK,
HUD_COLOUR_NET_PLAYER22_DARK,
HUD_COLOUR_NET_PLAYER23_DARK,
HUD_COLOUR_NET_PLAYER24_DARK,
HUD_COLOUR_NET_PLAYER25_DARK,
HUD_COLOUR_NET_PLAYER26_DARK,
HUD_COLOUR_NET_PLAYER27_DARK,
HUD_COLOUR_NET_PLAYER28_DARK,
HUD_COLOUR_NET_PLAYER29_DARK,
HUD_COLOUR_NET_PLAYER30_DARK,
HUD_COLOUR_NET_PLAYER31_DARK,
HUD_COLOUR_NET_PLAYER32_DARK,
HUD_COLOUR_BRONZE,
HUD_COLOUR_SILVER,
HUD_COLOUR_GOLD,
HUD_COLOUR_PLATINUM,
HUD_COLOUR_GANG1,
HUD_COLOUR_GANG2,
HUD_COLOUR_GANG3,
HUD_COLOUR_GANG4,
HUD_COLOUR_SAME_CREW,
HUD_COLOUR_FREEMODE,
HUD_COLOUR_PAUSE_BG,
HUD_COLOUR_FRIENDLY,
HUD_COLOUR_ENEMY,
HUD_COLOUR_LOCATION,
HUD_COLOUR_PICKUP,
HUD_COLOUR_PAUSE_SINGLEPLAYER,
HUD_COLOUR_FREEMODE_DARK,
HUD_COLOUR_INACTIVE_MISSION,
HUD_COLOUR_DAMAGE,
HUD_COLOUR_PINKLIGHT,
HUD_COLOUR_PM_MITEM_HIGHLIGHT,
HUD_COLOUR_SCRIPT_VARIABLE,
HUD_COLOUR_YOGA,
HUD_COLOUR_TENNIS,
HUD_COLOUR_GOLF,
HUD_COLOUR_SHOOTING_RANGE,
HUD_COLOUR_FLIGHT_SCHOOL,
HUD_COLOUR_NORTH_BLUE,
HUD_COLOUR_SOCIAL_CLUB,
HUD_COLOUR_PLATFORM_BLUE,
HUD_COLOUR_PLATFORM_GREEN,
HUD_COLOUR_PLATFORM_GREY,
HUD_COLOUR_FACEBOOK_BLUE,
HUD_COLOUR_INGAME_BG,
HUD_COLOUR_DARTS,
HUD_COLOUR_WAYPOINT,
HUD_COLOUR_MICHAEL,
HUD_COLOUR_FRANKLIN,
HUD_COLOUR_TREVOR,
HUD_COLOUR_GOLF_P1,
HUD_COLOUR_GOLF_P2,
HUD_COLOUR_GOLF_P3,
HUD_COLOUR_GOLF_P4,
HUD_COLOUR_WAYPOINTLIGHT,
HUD_COLOUR_WAYPOINTDARK,
HUD_COLOUR_PANEL_LIGHT,
HUD_COLOUR_MICHAEL_DARK,
HUD_COLOUR_FRANKLIN_DARK,
HUD_COLOUR_TREVOR_DARK,
HUD_COLOUR_OBJECTIVE_ROUTE,
HUD_COLOUR_PAUSEMAP_TINT,
HUD_COLOUR_PAUSE_DESELECT,
HUD_COLOUR_PM_WEAPONS_PURCHASABLE,
HUD_COLOUR_PM_WEAPONS_LOCKED,
HUD_COLOUR_END_SCREEN_BG,
HUD_COLOUR_CHOP,
HUD_COLOUR_PAUSEMAP_TINT_HALF,
HUD_COLOUR_NORTH_BLUE_OFFICIAL,
HUD_COLOUR_SCRIPT_VARIABLE_2,
HUD_COLOUR_H,
HUD_COLOUR_HDARK,
HUD_COLOUR_T,
HUD_COLOUR_TDARK,
HUD_COLOUR_HSHARD,
HUD_COLOUR_CONTROLLER_MICHAEL,
HUD_COLOUR_CONTROLLER_FRANKLIN,
HUD_COLOUR_CONTROLLER_TREVOR,
HUD_COLOUR_CONTROLLER_CHOP,
HUD_COLOUR_VIDEO_EDITOR_VIDEO,
HUD_COLOUR_VIDEO_EDITOR_AUDIO,
HUD_COLOUR_VIDEO_EDITOR_TEXT,
HUD_COLOUR_HB_BLUE,
HUD_COLOUR_HB_YELLOW,
HUD_COLOUR_VIDEO_EDITOR_SCORE,
HUD_COLOUR_VIDEO_EDITOR_AUDIO_FADEOUT,
HUD_COLOUR_VIDEO_EDITOR_TEXT_FADEOUT,
HUD_COLOUR_VIDEO_EDITOR_SCORE_FADEOUT,
HUD_COLOUR_HEIST_BACKGROUND,
HUD_COLOUR_VIDEO_EDITOR_AMBIENT,
HUD_COLOUR_VIDEO_EDITOR_AMBIENT_FADEOUT,
HUD_COLOUR_VIDEO_EDITOR_AMBIENT_DARK,
HUD_COLOUR_VIDEO_EDITOR_AMBIENT_LIGHT,
HUD_COLOUR_VIDEO_EDITOR_AMBIENT_MID,
HUD_COLOUR_LOW_FLOW,
HUD_COLOUR_LOW_FLOW_DARK,
HUD_COLOUR_G1,
HUD_COLOUR_G2,
HUD_COLOUR_G3,
HUD_COLOUR_G4,
HUD_COLOUR_G5,
HUD_COLOUR_G6,
HUD_COLOUR_G7,
HUD_COLOUR_G8,
HUD_COLOUR_G9,
HUD_COLOUR_G10,
HUD_COLOUR_G11,
HUD_COLOUR_G12,
HUD_COLOUR_G13,
HUD_COLOUR_G14,
HUD_COLOUR_G15,
HUD_COLOUR_ADVERSARY,
HUD_COLOUR_DEGEN_RED,
HUD_COLOUR_DEGEN_YELLOW,
HUD_COLOUR_DEGEN_GREEN,
HUD_COLOUR_DEGEN_CYAN,
HUD_COLOUR_DEGEN_BLUE,
HUD_COLOUR_DEGEN_MAGENTA,
HUD_COLOUR_STUNT_1,
HUD_COLOUR_STUNT_2,
HUD_COLOUR_SPECIAL_RACE_SERIES,
HUD_COLOUR_SPECIAL_RACE_SERIES_DARK,
HUD_COLOUR_CS,
HUD_COLOUR_CS_DARK,
HUD_COLOUR_TECH_GREEN,
HUD_COLOUR_TECH_GREEN_DARK,
HUD_COLOUR_TECH_RED,
HUD_COLOUR_TECH_GREEN_VERY_DARK,
HUD_COLOUR_PLACEHOLDER_01,
HUD_COLOUR_PLACEHOLDER_02,
HUD_COLOUR_PLACEHOLDER_03,
HUD_COLOUR_PLACEHOLDER_04,
HUD_COLOUR_PLACEHOLDER_05,
HUD_COLOUR_PLACEHOLDER_06,
HUD_COLOUR_PLACEHOLDER_07,
HUD_COLOUR_PLACEHOLDER_08,
HUD_COLOUR_PLACEHOLDER_09,
HUD_COLOUR_PLACEHOLDER_10,
HUD_COLOUR_JUNK_ENERGY
};

View File

@ -190,6 +190,8 @@ namespace big
{ {
components::command_checkbox<"aimonlyatplayer">(); components::command_checkbox<"aimonlyatplayer">();
ImGui::SameLine(); ImGui::SameLine();
ImGui::Checkbox("TRUST_FRIENDS"_T.data(), &g.weapons.aimbot.exclude_friends);
ImGui::SameLine();
components::command_checkbox<"aimonlyatenemy">(); components::command_checkbox<"aimonlyatenemy">();
ImGui::CheckboxFlags("PLAYERS"_T.data(), &g.weapons.aimbot.only_on_ped_type, (int64_t)ePedTypeFlag::PED_TYPE_NETWORK_PLAYER); ImGui::CheckboxFlags("PLAYERS"_T.data(), &g.weapons.aimbot.only_on_ped_type, (int64_t)ePedTypeFlag::PED_TYPE_NETWORK_PLAYER);