feat(ViewPlayer): Give health, armour, ammo, weapons (#261)
Co-authored-by: maybegreat48 <96936658+maybegreat48@users.noreply.github.com> Co-authored-by: Yimura <andreas.maerten@scarlet.be>
This commit is contained in:
parent
e987b665c2
commit
f41b44478b
@ -23,6 +23,8 @@ namespace big::functions
|
||||
|
||||
using get_gameplay_cam_coords = Vector3();
|
||||
|
||||
using give_pickup_rewards = void(int players, uint32_t hash);
|
||||
|
||||
// Received Event Signatures START
|
||||
using read_bitbuf_array = bool(rage::datBitBuffer* buffer, PVOID read, int bits, int);
|
||||
using read_bitbuf_dword = bool(rage::datBitBuffer* buffer, PVOID read, int bits);
|
||||
|
@ -10,18 +10,18 @@
|
||||
#include "script_mgr.hpp"
|
||||
#include "thread_pool.hpp"
|
||||
|
||||
#include "backend/backend.hpp"
|
||||
#include "native_hooks/native_hooks.hpp"
|
||||
#include "services/context_menu/context_menu_service.hpp"
|
||||
#include "services/globals/globals_service.hpp"
|
||||
#include "services/gui/gui_service.hpp"
|
||||
#include "services/mobile/mobile_service.hpp"
|
||||
#include "services/pickups/pickup_service.hpp"
|
||||
#include "services/players/player_service.hpp"
|
||||
#include "services/notifications/notification_service.hpp"
|
||||
#include "services/vehicle_preview/vehicle_preview_service.hpp"
|
||||
#include "services/vehicle/vehicle_service.hpp"
|
||||
|
||||
#include "backend/backend.hpp"
|
||||
|
||||
BOOL APIENTRY DllMain(HMODULE hmod, DWORD reason, PVOID)
|
||||
{
|
||||
using namespace big;
|
||||
@ -75,6 +75,7 @@ BOOL APIENTRY DllMain(HMODULE hmod, DWORD reason, PVOID)
|
||||
auto globals_service_instace = std::make_unique<globals_service>();
|
||||
auto mobile_service_instance = std::make_unique<mobile_service>();
|
||||
auto notification_service_instance = std::make_unique<notification_service>();
|
||||
auto pickup_service_instance = std::make_unique<pickup_service>();
|
||||
auto player_service_instance = std::make_unique<player_service>();
|
||||
auto vehicle_preview_service_instance = std::make_unique<vehicle_preview_service>();
|
||||
auto vehicle_service_instance = std::make_unique<vehicle_service>();
|
||||
@ -128,6 +129,8 @@ BOOL APIENTRY DllMain(HMODULE hmod, DWORD reason, PVOID)
|
||||
LOG(INFO) << "Mobile Service reset.";
|
||||
player_service_instance.reset();
|
||||
LOG(INFO) << "Player Service reset.";
|
||||
pickup_service_instance.reset();
|
||||
LOG(INFO) << "Pickup Service reset.";
|
||||
globals_service_instace.reset();
|
||||
LOG(INFO) << "Globals Service reset.";
|
||||
context_menu_service_instance.reset();
|
||||
|
@ -230,6 +230,12 @@ namespace big
|
||||
m_get_gamplay_cam_coords = ptr.sub(0xE).as<functions::get_gameplay_cam_coords*>();
|
||||
});
|
||||
|
||||
// Give Pickup Reward
|
||||
main_batch.add("GPR", "48 8B C8 33 C0 48 85 C9 74 0A 44 8B C3 8B D7 E8", [this](memory::handle ptr)
|
||||
{
|
||||
m_give_pickup_rewards = ptr.sub(0x28).as<decltype(m_give_pickup_rewards)>();
|
||||
});
|
||||
|
||||
// net array handler - version mismatch patch
|
||||
main_batch.add("NAH", "44 8B E0 89 45 F4 48 8B 03 48 8B CB FF 90", [this](memory::handle ptr)
|
||||
{
|
||||
|
@ -69,6 +69,8 @@ namespace big
|
||||
|
||||
functions::get_gameplay_cam_coords* m_get_gamplay_cam_coords;
|
||||
|
||||
functions::give_pickup_rewards* m_give_pickup_rewards{};
|
||||
|
||||
functions::increment_stat_event* m_increment_stat_event{};
|
||||
|
||||
functions::trigger_script_event* m_trigger_script_event{};
|
||||
|
173
BigBaseV2/src/services/pickups/pickup_helper.hpp
Normal file
173
BigBaseV2/src/services/pickups/pickup_helper.hpp
Normal file
@ -0,0 +1,173 @@
|
||||
#pragma once
|
||||
#include "gta\joaat.hpp"
|
||||
|
||||
namespace big
|
||||
{
|
||||
struct rewards
|
||||
{
|
||||
using pickup_map = std::map<const std::string_view, const Hash>;
|
||||
|
||||
inline static const pickup_map misc = {
|
||||
{ "ARMOUR", RAGE_JOAAT("REWARD_ARMOUR") },
|
||||
{ "HEALTH", RAGE_JOAAT("REWARD_HEALTH") },
|
||||
{ "HEALTH_ENTER_VEHICLE", RAGE_JOAAT("REWARD_HEALTH_ENTER_VEHICLE") },
|
||||
{ "HEALTH_VARIABLE", RAGE_JOAAT("REWARD_HEALTH_VARIABLE") },
|
||||
{ "MONEY_VARIABLE", RAGE_JOAAT("REWARD_MONEY_VARIABLE") },
|
||||
{ "PARACHUTE", RAGE_JOAAT("REWARD_PARACHUTE") },
|
||||
{ "STAT_HEALTH", RAGE_JOAAT("REWARD_STAT_HEALTH") },
|
||||
{ "STAT_HEALTH_VARIABLE", RAGE_JOAAT("REWARD_STAT_HEALTH_VARIABLE") },
|
||||
{ "STAT_WEAPON", RAGE_JOAAT("REWARD_STAT_WEAPON") },
|
||||
{ "VEHICLE_FIX", RAGE_JOAAT("REWARD_VEHICLE_FIX") }
|
||||
};
|
||||
|
||||
inline static const pickup_map ammo =
|
||||
{
|
||||
{ "ADVANCEDRIFLE", RAGE_JOAAT("REWARD_AMMO_ADVANCEDRIFLE") },
|
||||
{ "APPISTOL", RAGE_JOAAT("REWARD_AMMO_APPISTOL") },
|
||||
{ "ASSAULTRIFLE", RAGE_JOAAT("REWARD_AMMO_ASSAULTRIFLE") },
|
||||
{ "ASSAULTSHOTGUN", RAGE_JOAAT("REWARD_AMMO_ASSAULTSHOTGUN") },
|
||||
{ "ASSAULTSMG", RAGE_JOAAT("REWARD_AMMO_ASSAULTSMG") },
|
||||
{ "AUTOSHOTGUN", RAGE_JOAAT("REWARD_AMMO_AUTOSHOTGUN") },
|
||||
{ "BULLET_MP", RAGE_JOAAT("REWARD_AMMO_BULLET_MP") },
|
||||
{ "BULLPUPRIFLE", RAGE_JOAAT("REWARD_AMMO_BULLPUPRIFLE") },
|
||||
{ "BULLPUPSHOTGUN", RAGE_JOAAT("REWARD_AMMO_BULLPUPSHOTGUN") },
|
||||
{ "CARBINERIFLE", RAGE_JOAAT("REWARD_AMMO_CARBINERIFLE") },
|
||||
{ "COMBATMG", RAGE_JOAAT("REWARD_AMMO_COMBATMG") },
|
||||
{ "COMBATPDW", RAGE_JOAAT("REWARD_AMMO_COMBATPDW") },
|
||||
{ "COMBATPISTOL", RAGE_JOAAT("REWARD_AMMO_COMBATPISTOL") },
|
||||
{ "COMPACTLAUNCHER", RAGE_JOAAT("REWARD_AMMO_COMPACTLAUNCHER") },
|
||||
{ "COMPACTRIFLE", RAGE_JOAAT("REWARD_AMMO_COMPACTRIFLE") },
|
||||
{ "DBSHOTGUN", RAGE_JOAAT("REWARD_AMMO_DBSHOTGUN") },
|
||||
{ "DOUBLEACTION", RAGE_JOAAT("REWARD_AMMO_DOUBLEACTION") },
|
||||
{ "FIREWORK", RAGE_JOAAT("REWARD_AMMO_FIREWORK") },
|
||||
{ "FIREWORK_MP", RAGE_JOAAT("REWARD_AMMO_FIREWORK_MP") },
|
||||
{ "FLAREGUN", RAGE_JOAAT("REWARD_AMMO_FLAREGUN") },
|
||||
{ "GRENADE", RAGE_JOAAT("REWARD_AMMO_GRENADE") },
|
||||
{ "GRENADELAUNCHER", RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER") },
|
||||
{ "GRENADELAUNCHER_MP", RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER_MP") },
|
||||
{ "GUSENBERG", RAGE_JOAAT("REWARD_AMMO_GUSENBERG") },
|
||||
{ "HEAVYPISTOL", RAGE_JOAAT("REWARD_AMMO_HEAVYPISTOL") },
|
||||
{ "HEAVYSHOTGUN", RAGE_JOAAT("REWARD_AMMO_HEAVYSHOTGUN") },
|
||||
{ "HEAVYSNIPER", RAGE_JOAAT("REWARD_AMMO_HEAVYSNIPER") },
|
||||
{ "HOMINGLAUNCHER", RAGE_JOAAT("REWARD_AMMO_HOMINGLAUNCHER") },
|
||||
{ "MACHINEPISTOL", RAGE_JOAAT("REWARD_AMMO_MACHINEPISTOL") },
|
||||
{ "MARKSMANPISTOL", RAGE_JOAAT("REWARD_AMMO_MARKSMANPISTOL") },
|
||||
{ "MARKSMANRIFLE", RAGE_JOAAT("REWARD_AMMO_MARKSMANRIFLE") },
|
||||
{ "MG", RAGE_JOAAT("REWARD_AMMO_MG") },
|
||||
{ "MICROSMG", RAGE_JOAAT("REWARD_AMMO_MICROSMG") },
|
||||
{ "MINIGUN", RAGE_JOAAT("REWARD_AMMO_MINIGUN") },
|
||||
{ "MINISMG", RAGE_JOAAT("REWARD_AMMO_MINISMG") },
|
||||
{ "MISSILE_MP", RAGE_JOAAT("REWARD_AMMO_MISSILE_MP") },
|
||||
{ "MOLOTOV", RAGE_JOAAT("REWARD_AMMO_MOLOTOV") },
|
||||
{ "MUSKET", RAGE_JOAAT("REWARD_AMMO_MUSKET") },
|
||||
{ "PETROLCAN", RAGE_JOAAT("REWARD_AMMO_PETROLCAN") },
|
||||
{ "PIPEBOMB", RAGE_JOAAT("REWARD_AMMO_PIPEBOMB") },
|
||||
{ "PISTOL", RAGE_JOAAT("REWARD_AMMO_PISTOL") },
|
||||
{ "PISTOL50", RAGE_JOAAT("REWARD_AMMO_PISTOL50") },
|
||||
{ "PROXMINE", RAGE_JOAAT("REWARD_AMMO_PROXMINE") },
|
||||
{ "PUMPSHOTGUN", RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN") },
|
||||
{ "PUMPSHOTGUN_ENTER_VEHICLE", RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE") },
|
||||
{ "RAILGUN", RAGE_JOAAT("REWARD_AMMO_RAILGUN") },
|
||||
{ "RAYPISTOL", RAGE_JOAAT("REWARD_AMMO_RAYPISTOL") },
|
||||
{ "REVOLVER", RAGE_JOAAT("REWARD_AMMO_REVOLVER") },
|
||||
{ "RPG", RAGE_JOAAT("REWARD_AMMO_RPG") },
|
||||
{ "SAWNOFFSHOTGUN", RAGE_JOAAT("REWARD_AMMO_SAWNOFFSHOTGUN") },
|
||||
{ "SMG", RAGE_JOAAT("REWARD_AMMO_SMG") },
|
||||
{ "SMOKEGRENADE", RAGE_JOAAT("REWARD_AMMO_SMOKEGRENADE") },
|
||||
{ "SNIPERRIFLE", RAGE_JOAAT("REWARD_AMMO_SNIPERRIFLE") },
|
||||
{ "SNSPISTOL", RAGE_JOAAT("REWARD_AMMO_SNSPISTOL") },
|
||||
{ "SPECIALCARBINE", RAGE_JOAAT("REWARD_AMMO_SPECIALCARBINE") },
|
||||
{ "STICKYBOMB", RAGE_JOAAT("REWARD_AMMO_STICKYBOMB") },
|
||||
{ "STUNGUN", RAGE_JOAAT("REWARD_AMMO_STUNGUN") },
|
||||
{ "VINTAGEPISTOL", RAGE_JOAAT("REWARD_AMMO_VINTAGEPISTOL") }
|
||||
};
|
||||
|
||||
inline static const pickup_map weapons =
|
||||
{
|
||||
{ "ADVANCEDRIFLE", RAGE_JOAAT("REWARD_WEAPON_ADVANCEDRIFLE") },
|
||||
{ "APPISTOL", RAGE_JOAAT("REWARD_WEAPON_APPISTOL") },
|
||||
{ "ASSAULTRIFLE", RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE") },
|
||||
{ "ASSAULTRIFLE_MK2", RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE_MK2") },
|
||||
{ "ASSAULTSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_ASSAULTSHOTGUN") },
|
||||
{ "ASSAULTSMG", RAGE_JOAAT("REWARD_WEAPON_ASSAULTSMG") },
|
||||
{ "AUTOSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_AUTOSHOTGUN") },
|
||||
{ "BAT", RAGE_JOAAT("REWARD_WEAPON_BAT") },
|
||||
{ "BATTLEAXE", RAGE_JOAAT("REWARD_WEAPON_BATTLEAXE") },
|
||||
{ "BOTTLE", RAGE_JOAAT("REWARD_WEAPON_BOTTLE") },
|
||||
{ "BULLPUPRIFLE", RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE") },
|
||||
{ "BULLPUPRIFLE_MK2", RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE_MK2") },
|
||||
{ "BULLPUPSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_BULLPUPSHOTGUN") },
|
||||
{ "CARBINERIFLE", RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE") },
|
||||
{ "CARBINERIFLE_MK2", RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE_MK2") },
|
||||
{ "COMBATMG", RAGE_JOAAT("REWARD_WEAPON_COMBATMG") },
|
||||
{ "COMBATMG_MK2", RAGE_JOAAT("REWARD_WEAPON_COMBATMG_MK2") },
|
||||
{ "COMBATPDW", RAGE_JOAAT("REWARD_WEAPON_COMBATPDW") },
|
||||
{ "COMBATPISTOL", RAGE_JOAAT("REWARD_WEAPON_COMBATPISTOL") },
|
||||
{ "COMPACTLAUNCHER", RAGE_JOAAT("REWARD_WEAPON_COMPACTLAUNCHER") },
|
||||
{ "COMPACTRIFLE", RAGE_JOAAT("REWARD_WEAPON_COMPACTRIFLE") },
|
||||
{ "CROWBAR", RAGE_JOAAT("REWARD_WEAPON_CROWBAR") },
|
||||
{ "DAGGER", RAGE_JOAAT("REWARD_WEAPON_DAGGER") },
|
||||
{ "DBSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_DBSHOTGUN") },
|
||||
{ "DOUBLEACTION", RAGE_JOAAT("REWARD_WEAPON_DOUBLEACTION") },
|
||||
{ "FIREWORK", RAGE_JOAAT("REWARD_WEAPON_FIREWORK") },
|
||||
{ "FLAREGUN", RAGE_JOAAT("REWARD_WEAPON_FLAREGUN") },
|
||||
{ "FLASHLIGHT", RAGE_JOAAT("REWARD_WEAPON_FLASHLIGHT") },
|
||||
{ "GOLFCLUB", RAGE_JOAAT("REWARD_WEAPON_GOLFCLUB") },
|
||||
{ "GRENADE", RAGE_JOAAT("REWARD_WEAPON_GRENADE") },
|
||||
{ "GRENADELAUNCHER", RAGE_JOAAT("REWARD_WEAPON_GRENADELAUNCHER") },
|
||||
{ "GUSENBERG", RAGE_JOAAT("REWARD_WEAPON_GUSENBERG") },
|
||||
{ "HAMMER", RAGE_JOAAT("REWARD_WEAPON_HAMMER") },
|
||||
{ "HATCHET", RAGE_JOAAT("REWARD_WEAPON_HATCHET") },
|
||||
{ "HEAVYPISTOL", RAGE_JOAAT("REWARD_WEAPON_HEAVYPISTOL") },
|
||||
{ "HEAVYSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_HEAVYSHOTGUN") },
|
||||
{ "HEAVYSNIPER", RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER") },
|
||||
{ "HEAVYSNIPER_MK2", RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER_MK2") },
|
||||
{ "HOMINGLAUNCHER", RAGE_JOAAT("REWARD_WEAPON_HOMINGLAUNCHER") },
|
||||
{ "KNIFE", RAGE_JOAAT("REWARD_WEAPON_KNIFE") },
|
||||
{ "KNUCKLE", RAGE_JOAAT("REWARD_WEAPON_KNUCKLE") },
|
||||
{ "MACHETE", RAGE_JOAAT("REWARD_WEAPON_MACHETE") },
|
||||
{ "MACHINEPISTOL", RAGE_JOAAT("REWARD_WEAPON_MACHINEPISTOL") },
|
||||
{ "MARKSMANPISTOL", RAGE_JOAAT("REWARD_WEAPON_MARKSMANPISTOL") },
|
||||
{ "MARKSMANRIFLE", RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE") },
|
||||
{ "MARKSMANRIFLE_MK2", RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE_MK2") },
|
||||
{ "MG", RAGE_JOAAT("REWARD_WEAPON_MG") },
|
||||
{ "MICROSMG", RAGE_JOAAT("REWARD_WEAPON_MICROSMG") },
|
||||
{ "MINIGUN", RAGE_JOAAT("REWARD_WEAPON_MINIGUN") },
|
||||
{ "MINISMG", RAGE_JOAAT("REWARD_WEAPON_MINISMG") },
|
||||
{ "MOLOTOV", RAGE_JOAAT("REWARD_WEAPON_MOLOTOV") },
|
||||
{ "MUSKET", RAGE_JOAAT("REWARD_WEAPON_MUSKET") },
|
||||
{ "NIGHTSTICK", RAGE_JOAAT("REWARD_WEAPON_NIGHTSTICK") },
|
||||
{ "PETROLCAN", RAGE_JOAAT("REWARD_WEAPON_PETROLCAN") },
|
||||
{ "PIPEBOMB", RAGE_JOAAT("REWARD_WEAPON_PIPEBOMB") },
|
||||
{ "PISTOL", RAGE_JOAAT("REWARD_WEAPON_PISTOL") },
|
||||
{ "PISTOL50", RAGE_JOAAT("REWARD_WEAPON_PISTOL50") },
|
||||
{ "PISTOL_MK2", RAGE_JOAAT("REWARD_WEAPON_PISTOL_MK2") },
|
||||
{ "POOLCUE", RAGE_JOAAT("REWARD_WEAPON_POOLCUE") },
|
||||
{ "PROXMINE", RAGE_JOAAT("REWARD_WEAPON_PROXMINE") },
|
||||
{ "PUMPSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN") },
|
||||
{ "PUMPSHOTGUN_MK2", RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN_MK2") },
|
||||
{ "RAILGUN", RAGE_JOAAT("REWARD_WEAPON_RAILGUN") },
|
||||
{ "RAYCARBINE", RAGE_JOAAT("REWARD_WEAPON_RAYCARBINE") },
|
||||
{ "RAYMINIGUN", RAGE_JOAAT("REWARD_WEAPON_RAYMINIGUN") },
|
||||
{ "RAYPISTOL", RAGE_JOAAT("REWARD_WEAPON_RAYPISTOL") },
|
||||
{ "REVOLVER", RAGE_JOAAT("REWARD_WEAPON_REVOLVER") },
|
||||
{ "REVOLVER_MK2", RAGE_JOAAT("REWARD_WEAPON_REVOLVER_MK2") },
|
||||
{ "RPG", RAGE_JOAAT("REWARD_WEAPON_RPG") },
|
||||
{ "SAWNOFFSHOTGUN", RAGE_JOAAT("REWARD_WEAPON_SAWNOFFSHOTGUN") },
|
||||
{ "SMG", RAGE_JOAAT("REWARD_WEAPON_SMG") },
|
||||
{ "SMG_MK2", RAGE_JOAAT("REWARD_WEAPON_SMG_MK2") },
|
||||
{ "SMOKEGRENADE", RAGE_JOAAT("REWARD_WEAPON_SMOKEGRENADE") },
|
||||
{ "SNIPERRIFLE", RAGE_JOAAT("REWARD_WEAPON_SNIPERRIFLE") },
|
||||
{ "SNSPISTOL", RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL") },
|
||||
{ "SNSPISTOL_MK2", RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL_MK2") },
|
||||
{ "SPECIALCARBINE", RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE") },
|
||||
{ "SPECIALCARBINE_MK2", RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE_MK2") },
|
||||
{ "STICKYBOMB", RAGE_JOAAT("REWARD_WEAPON_STICKYBOMB") },
|
||||
{ "STONE_HATCHET", RAGE_JOAAT("REWARD_WEAPON_STONE_HATCHET") },
|
||||
{ "STUNGUN", RAGE_JOAAT("REWARD_WEAPON_STUNGUN") },
|
||||
{ "SWITCHBLADE", RAGE_JOAAT("REWARD_WEAPON_SWITCHBLADE") },
|
||||
{ "VINTAGEPISTOL", RAGE_JOAAT("REWARD_WEAPON_VINTAGEPISTOL") },
|
||||
{ "WRENCH", RAGE_JOAAT("REWARD_WEAPON_WRENCH") }
|
||||
};
|
||||
};
|
||||
}
|
67
BigBaseV2/src/services/pickups/pickup_service.cpp
Normal file
67
BigBaseV2/src/services/pickups/pickup_service.cpp
Normal file
@ -0,0 +1,67 @@
|
||||
#include "pickup_service.hpp"
|
||||
#include "pickup_helper.hpp"
|
||||
#include "pointers.hpp"
|
||||
#include "script.hpp"
|
||||
|
||||
namespace big
|
||||
{
|
||||
pickup_service::pickup_service()
|
||||
{
|
||||
g_pickup_service = this;
|
||||
}
|
||||
|
||||
pickup_service::~pickup_service()
|
||||
{
|
||||
g_pickup_service = nullptr;
|
||||
}
|
||||
|
||||
void pickup_service::give_player_ammo(const Player player) const
|
||||
{
|
||||
give_ammo(1 << player);
|
||||
}
|
||||
|
||||
void pickup_service::give_player_armour(const Player player) const
|
||||
{
|
||||
give_armour(1 << player);
|
||||
}
|
||||
|
||||
void pickup_service::give_player_health(const Player player) const
|
||||
{
|
||||
give_health(1 << player);
|
||||
}
|
||||
|
||||
void pickup_service::give_player_weapons(const Player player) const
|
||||
{
|
||||
give_weapons(1 << player);
|
||||
}
|
||||
|
||||
void pickup_service::give_ammo(const int targets) const
|
||||
{
|
||||
for (const auto& [_, hash] : rewards::ammo)
|
||||
{
|
||||
g_pointers->m_give_pickup_rewards(targets, hash);
|
||||
|
||||
script::get_current()->yield(20ms);
|
||||
}
|
||||
}
|
||||
|
||||
void pickup_service::give_armour(const int targets) const
|
||||
{
|
||||
g_pointers->m_give_pickup_rewards(targets, rewards::misc.at("ARMOUR"));
|
||||
}
|
||||
|
||||
void pickup_service::give_health(const int targets) const
|
||||
{
|
||||
g_pointers->m_give_pickup_rewards(targets, rewards::misc.at("HEALTH"));
|
||||
}
|
||||
|
||||
void pickup_service::give_weapons(const int targets) const
|
||||
{
|
||||
for (const auto& [_, hash] : rewards::weapons)
|
||||
{
|
||||
g_pointers->m_give_pickup_rewards(targets, hash);
|
||||
|
||||
script::get_current()->yield(20ms);
|
||||
}
|
||||
}
|
||||
}
|
28
BigBaseV2/src/services/pickups/pickup_service.hpp
Normal file
28
BigBaseV2/src/services/pickups/pickup_service.hpp
Normal file
@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
namespace big
|
||||
{
|
||||
class pickup_service final
|
||||
{
|
||||
public:
|
||||
pickup_service();
|
||||
~pickup_service();
|
||||
|
||||
pickup_service(const pickup_service&) = delete;
|
||||
pickup_service(pickup_service&&) noexcept = delete;
|
||||
pickup_service& operator=(const pickup_service&) = delete;
|
||||
pickup_service& operator=(pickup_service&&) noexcept = delete;
|
||||
|
||||
void give_player_ammo(const Player player) const;
|
||||
void give_player_armour(const Player player) const;
|
||||
void give_player_health(const Player player) const;
|
||||
void give_player_weapons(const Player player) const;
|
||||
|
||||
void give_ammo(const int targets) const;
|
||||
void give_armour(const int targets) const;
|
||||
void give_health(const int targets) const;
|
||||
void give_weapons(const int targets) const;
|
||||
};
|
||||
|
||||
inline pickup_service* g_pickup_service{};
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
#include "gta_util.hpp"
|
||||
#include "services/pickups/pickup_service.hpp"
|
||||
#include "services/players/player_service.hpp"
|
||||
#include "util/globals.hpp"
|
||||
#include "util/misc.hpp"
|
||||
@ -42,6 +43,26 @@ namespace big
|
||||
|
||||
ImGui::Checkbox("Never Wanted", &g->player.player_never_wanted);
|
||||
|
||||
components::button("Give Health", [] {
|
||||
g_pickup_service->give_player_health(g_player_service->get_selected()->id());
|
||||
});
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("Give Armour", [] {
|
||||
g_pickup_service->give_player_armour(g_player_service->get_selected()->id());
|
||||
});
|
||||
|
||||
components::button("Give Ammo", [] {
|
||||
g_pickup_service->give_player_ammo(g_player_service->get_selected()->id());
|
||||
});
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
components::button("Give Weapons", [] {
|
||||
g_pickup_service->give_player_weapons(g_player_service->get_selected()->id());
|
||||
});
|
||||
|
||||
ImGui::TreePop();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user