mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2026-10-11 09:48:03 +08:00
* feat(protections): add a fuzzer * feat(protections): improve protections * feat(spoofing): add warning * feat(world): force object cleanup * fix(weapons): fix custom weapon code * fix(weapons): fix for #1983
78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
#include "backend/looped/looped.hpp"
|
|
#include "gta/pickup_rewards.hpp"
|
|
#include "services/players/player_service.hpp"
|
|
#include "util/globals.hpp"
|
|
#include "util/misc.hpp"
|
|
|
|
namespace big
|
|
{
|
|
// rate limit script events to prevent crashes
|
|
static int offRadarPlayer = 0;
|
|
static int neverWantedPlayer = 0;
|
|
void looped::player_good_options()
|
|
{
|
|
if (!*g_pointers->m_gta.m_is_session_started)
|
|
return;
|
|
|
|
offRadarPlayer++;
|
|
if (offRadarPlayer > 32)
|
|
offRadarPlayer = 0;
|
|
|
|
neverWantedPlayer++;
|
|
if (neverWantedPlayer > 32)
|
|
neverWantedPlayer = 0;
|
|
|
|
g_player_service->iterate([](const player_entry& entry) {
|
|
if ((g.session.off_radar_all || entry.second->off_radar) && offRadarPlayer == entry.second->id())
|
|
globals::give_remote_otr(entry.second->id());
|
|
});
|
|
|
|
g_player_service->iterate([](const player_entry& entry) {
|
|
if ((g.session.never_wanted_all || entry.second->never_wanted)
|
|
&& PLAYER::GET_PLAYER_WANTED_LEVEL(entry.second->id()) > 0 && neverWantedPlayer == entry.second->id())
|
|
globals::clear_wanted_player(entry.second->id());
|
|
});
|
|
|
|
if (g.session.semi_godmode_all)
|
|
{
|
|
g_pointers->m_gta.m_give_pickup_rewards(-1, REWARD_HEALTH);
|
|
g_pointers->m_gta.m_give_pickup_rewards(-1, REWARD_ARMOUR);
|
|
}
|
|
else
|
|
{
|
|
g_player_service->iterate([](const player_entry& entry) {
|
|
if (entry.second->semi_godmode)
|
|
{
|
|
if (CPed* ped = entry.second->get_ped())
|
|
{
|
|
if (ped->m_maxhealth == 0 || ped->m_health == 0 || misc::has_bit_set((int*)&ped->m_damage_bits, 8))
|
|
return;
|
|
|
|
if (ped->m_health < ped->m_maxhealth)
|
|
{
|
|
g_pointers->m_gta.m_give_pickup_rewards(1 << entry.second->id(), REWARD_HEALTH);
|
|
}
|
|
|
|
if (ped->m_armor < 50.0f)
|
|
{
|
|
g_pointers->m_gta.m_give_pickup_rewards(1 << entry.second->id(), REWARD_ARMOUR);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
if (g.session.vehicle_fix_all)
|
|
{
|
|
g_pointers->m_gta.m_give_pickup_rewards(-1, REWARD_VEHICLE_FIX);
|
|
}
|
|
else
|
|
{
|
|
g_player_service->iterate([](const player_entry& entry) {
|
|
if (entry.second->fix_vehicle)
|
|
g_pointers->m_gta.m_give_pickup_rewards(-1, REWARD_VEHICLE_FIX);
|
|
});
|
|
}
|
|
}
|
|
}
|