From f41b44478b96ab8e6d8c5015e4dc35c025b08158 Mon Sep 17 00:00:00 2001 From: mentolixite Date: Sun, 3 Jul 2022 00:03:07 +0200 Subject: [PATCH] feat(ViewPlayer): Give health, armour, ammo, weapons (#261) Co-authored-by: maybegreat48 <96936658+maybegreat48@users.noreply.github.com> Co-authored-by: Yimura --- BigBaseV2/src/function_types.hpp | 2 + BigBaseV2/src/gta/PickupRewards.h | 318 +++++++++--------- BigBaseV2/src/main.cpp | 9 +- BigBaseV2/src/pointers.cpp | 6 + BigBaseV2/src/pointers.hpp | 2 + .../src/services/pickups/pickup_helper.hpp | 173 ++++++++++ .../src/services/pickups/pickup_service.cpp | 67 ++++ .../src/services/pickups/pickup_service.hpp | 28 ++ BigBaseV2/src/views/players/view_player.cpp | 21 ++ 9 files changed, 464 insertions(+), 162 deletions(-) create mode 100644 BigBaseV2/src/services/pickups/pickup_helper.hpp create mode 100644 BigBaseV2/src/services/pickups/pickup_service.cpp create mode 100644 BigBaseV2/src/services/pickups/pickup_service.hpp diff --git a/BigBaseV2/src/function_types.hpp b/BigBaseV2/src/function_types.hpp index 2993b86d..1fbc0ae5 100644 --- a/BigBaseV2/src/function_types.hpp +++ b/BigBaseV2/src/function_types.hpp @@ -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); diff --git a/BigBaseV2/src/gta/PickupRewards.h b/BigBaseV2/src/gta/PickupRewards.h index c3c7dd4f..e0579f5e 100644 --- a/BigBaseV2/src/gta/PickupRewards.h +++ b/BigBaseV2/src/gta/PickupRewards.h @@ -1,160 +1,160 @@ -#pragma once - -#include "natives.hpp" -#include "gta\joaat.hpp" - -enum Rewards : Hash -{ - REWARD_AMMO_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_AMMO_ADVANCEDRIFLE"), - REWARD_AMMO_APPISTOL = RAGE_JOAAT("REWARD_AMMO_APPISTOL"), - REWARD_AMMO_ASSAULTRIFLE = RAGE_JOAAT("REWARD_AMMO_ASSAULTRIFLE"), - REWARD_AMMO_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_AMMO_ASSAULTSHOTGUN"), - REWARD_AMMO_ASSAULTSMG = RAGE_JOAAT("REWARD_AMMO_ASSAULTSMG"), - REWARD_AMMO_AUTOSHOTGUN = RAGE_JOAAT("REWARD_AMMO_AUTOSHOTGUN"), - REWARD_AMMO_BULLET_MP = RAGE_JOAAT("REWARD_AMMO_BULLET_MP"), - REWARD_AMMO_BULLPUPRIFLE = RAGE_JOAAT("REWARD_AMMO_BULLPUPRIFLE"), - REWARD_AMMO_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_BULLPUPSHOTGUN"), - REWARD_AMMO_CARBINERIFLE = RAGE_JOAAT("REWARD_AMMO_CARBINERIFLE"), - REWARD_AMMO_COMBATMG = RAGE_JOAAT("REWARD_AMMO_COMBATMG"), - REWARD_AMMO_COMBATPDW = RAGE_JOAAT("REWARD_AMMO_COMBATPDW"), - REWARD_AMMO_COMBATPISTOL = RAGE_JOAAT("REWARD_AMMO_COMBATPISTOL"), - REWARD_AMMO_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_AMMO_COMPACTLAUNCHER"), - REWARD_AMMO_COMPACTRIFLE = RAGE_JOAAT("REWARD_AMMO_COMPACTRIFLE"), - REWARD_AMMO_DBSHOTGUN = RAGE_JOAAT("REWARD_AMMO_DBSHOTGUN"), - REWARD_AMMO_DOUBLEACTION = RAGE_JOAAT("REWARD_AMMO_DOUBLEACTION"), - REWARD_AMMO_FIREWORK = RAGE_JOAAT("REWARD_AMMO_FIREWORK"), - REWARD_AMMO_FIREWORK_MP = RAGE_JOAAT("REWARD_AMMO_FIREWORK_MP"), - REWARD_AMMO_FLAREGUN = RAGE_JOAAT("REWARD_AMMO_FLAREGUN"), - REWARD_AMMO_GRENADE = RAGE_JOAAT("REWARD_AMMO_GRENADE"), - REWARD_AMMO_GRENADELAUNCHER = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER"), - REWARD_AMMO_GRENADELAUNCHER_MP = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER_MP"), - REWARD_AMMO_GUSENBERG = RAGE_JOAAT("REWARD_AMMO_GUSENBERG"), - REWARD_AMMO_HEAVYPISTOL = RAGE_JOAAT("REWARD_AMMO_HEAVYPISTOL"), - REWARD_AMMO_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_AMMO_HEAVYSHOTGUN"), - REWARD_AMMO_HEAVYSNIPER = RAGE_JOAAT("REWARD_AMMO_HEAVYSNIPER"), - REWARD_AMMO_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_AMMO_HOMINGLAUNCHER"), - REWARD_AMMO_MACHINEPISTOL = RAGE_JOAAT("REWARD_AMMO_MACHINEPISTOL"), - REWARD_AMMO_MARKSMANPISTOL = RAGE_JOAAT("REWARD_AMMO_MARKSMANPISTOL"), - REWARD_AMMO_MARKSMANRIFLE = RAGE_JOAAT("REWARD_AMMO_MARKSMANRIFLE"), - REWARD_AMMO_MG = RAGE_JOAAT("REWARD_AMMO_MG"), - REWARD_AMMO_MICROSMG = RAGE_JOAAT("REWARD_AMMO_MICROSMG"), - REWARD_AMMO_MINIGUN = RAGE_JOAAT("REWARD_AMMO_MINIGUN"), - REWARD_AMMO_MINISMG = RAGE_JOAAT("REWARD_AMMO_MINISMG"), - REWARD_AMMO_MISSILE_MP = RAGE_JOAAT("REWARD_AMMO_MISSILE_MP"), - REWARD_AMMO_MOLOTOV = RAGE_JOAAT("REWARD_AMMO_MOLOTOV"), - REWARD_AMMO_MUSKET = RAGE_JOAAT("REWARD_AMMO_MUSKET"), - REWARD_AMMO_PETROLCAN = RAGE_JOAAT("REWARD_AMMO_PETROLCAN"), - REWARD_AMMO_PIPEBOMB = RAGE_JOAAT("REWARD_AMMO_PIPEBOMB"), - REWARD_AMMO_PISTOL = RAGE_JOAAT("REWARD_AMMO_PISTOL"), - REWARD_AMMO_PISTOL50 = RAGE_JOAAT("REWARD_AMMO_PISTOL50"), - REWARD_AMMO_PROXMINE = RAGE_JOAAT("REWARD_AMMO_PROXMINE"), - REWARD_AMMO_PUMPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN"), - REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE"), - REWARD_AMMO_RAILGUN = RAGE_JOAAT("REWARD_AMMO_RAILGUN"), - REWARD_AMMO_RAYPISTOL = RAGE_JOAAT("REWARD_AMMO_RAYPISTOL"), - REWARD_AMMO_REVOLVER = RAGE_JOAAT("REWARD_AMMO_REVOLVER"), - REWARD_AMMO_RPG = RAGE_JOAAT("REWARD_AMMO_RPG"), - REWARD_AMMO_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_AMMO_SAWNOFFSHOTGUN"), - REWARD_AMMO_SMG = RAGE_JOAAT("REWARD_AMMO_SMG"), - REWARD_AMMO_SMOKEGRENADE = RAGE_JOAAT("REWARD_AMMO_SMOKEGRENADE"), - REWARD_AMMO_SNIPERRIFLE = RAGE_JOAAT("REWARD_AMMO_SNIPERRIFLE"), - REWARD_AMMO_SNSPISTOL = RAGE_JOAAT("REWARD_AMMO_SNSPISTOL"), - REWARD_AMMO_SPECIALCARBINE = RAGE_JOAAT("REWARD_AMMO_SPECIALCARBINE"), - REWARD_AMMO_STICKYBOMB = RAGE_JOAAT("REWARD_AMMO_STICKYBOMB"), - REWARD_AMMO_STUNGUN = RAGE_JOAAT("REWARD_AMMO_STUNGUN"), - REWARD_AMMO_VINTAGEPISTOL = RAGE_JOAAT("REWARD_AMMO_VINTAGEPISTOL"), - REWARD_ARMOUR = RAGE_JOAAT("REWARD_ARMOUR"), - REWARD_HEALTH = RAGE_JOAAT("REWARD_HEALTH"), - REWARD_HEALTH_ENTER_VEHICLE = RAGE_JOAAT("REWARD_HEALTH_ENTER_VEHICLE"), - REWARD_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_HEALTH_VARIABLE"), - REWARD_MONEY_VARIABLE = RAGE_JOAAT("REWARD_MONEY_VARIABLE"), - REWARD_PARACHUTE = RAGE_JOAAT("REWARD_PARACHUTE"), - REWARD_STAT_HEALTH = RAGE_JOAAT("REWARD_STAT_HEALTH"), - REWARD_STAT_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_STAT_HEALTH_VARIABLE"), - REWARD_STAT_WEAPON = RAGE_JOAAT("REWARD_STAT_WEAPON"), - REWARD_VEHICLE_FIX = RAGE_JOAAT("REWARD_VEHICLE_FIX"), - REWARD_WEAPON_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_WEAPON_ADVANCEDRIFLE"), - REWARD_WEAPON_APPISTOL = RAGE_JOAAT("REWARD_WEAPON_APPISTOL"), - REWARD_WEAPON_ASSAULTRIFLE = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE"), - REWARD_WEAPON_ASSAULTRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE_MK2"), - REWARD_WEAPON_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSHOTGUN"), - REWARD_WEAPON_ASSAULTSMG = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSMG"), - REWARD_WEAPON_AUTOSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_AUTOSHOTGUN"), - REWARD_WEAPON_BAT = RAGE_JOAAT("REWARD_WEAPON_BAT"), - REWARD_WEAPON_BATTLEAXE = RAGE_JOAAT("REWARD_WEAPON_BATTLEAXE"), - REWARD_WEAPON_BOTTLE = RAGE_JOAAT("REWARD_WEAPON_BOTTLE"), - REWARD_WEAPON_BULLPUPRIFLE = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE"), - REWARD_WEAPON_BULLPUPRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE_MK2"), - REWARD_WEAPON_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_BULLPUPSHOTGUN"), - REWARD_WEAPON_CARBINERIFLE = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE"), - REWARD_WEAPON_CARBINERIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE_MK2"), - REWARD_WEAPON_COMBATMG = RAGE_JOAAT("REWARD_WEAPON_COMBATMG"), - REWARD_WEAPON_COMBATMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_COMBATMG_MK2"), - REWARD_WEAPON_COMBATPDW = RAGE_JOAAT("REWARD_WEAPON_COMBATPDW"), - REWARD_WEAPON_COMBATPISTOL = RAGE_JOAAT("REWARD_WEAPON_COMBATPISTOL"), - REWARD_WEAPON_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_COMPACTLAUNCHER"), - REWARD_WEAPON_COMPACTRIFLE = RAGE_JOAAT("REWARD_WEAPON_COMPACTRIFLE"), - REWARD_WEAPON_CROWBAR = RAGE_JOAAT("REWARD_WEAPON_CROWBAR"), - REWARD_WEAPON_DAGGER = RAGE_JOAAT("REWARD_WEAPON_DAGGER"), - REWARD_WEAPON_DBSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_DBSHOTGUN"), - REWARD_WEAPON_DOUBLEACTION = RAGE_JOAAT("REWARD_WEAPON_DOUBLEACTION"), - REWARD_WEAPON_FIREWORK = RAGE_JOAAT("REWARD_WEAPON_FIREWORK"), - REWARD_WEAPON_FLAREGUN = RAGE_JOAAT("REWARD_WEAPON_FLAREGUN"), - REWARD_WEAPON_FLASHLIGHT = RAGE_JOAAT("REWARD_WEAPON_FLASHLIGHT"), - REWARD_WEAPON_GOLFCLUB = RAGE_JOAAT("REWARD_WEAPON_GOLFCLUB"), - REWARD_WEAPON_GRENADE = RAGE_JOAAT("REWARD_WEAPON_GRENADE"), - REWARD_WEAPON_GRENADELAUNCHER = RAGE_JOAAT("REWARD_WEAPON_GRENADELAUNCHER"), - REWARD_WEAPON_GUSENBERG = RAGE_JOAAT("REWARD_WEAPON_GUSENBERG"), - REWARD_WEAPON_HAMMER = RAGE_JOAAT("REWARD_WEAPON_HAMMER"), - REWARD_WEAPON_HATCHET = RAGE_JOAAT("REWARD_WEAPON_HATCHET"), - REWARD_WEAPON_HEAVYPISTOL = RAGE_JOAAT("REWARD_WEAPON_HEAVYPISTOL"), - REWARD_WEAPON_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_HEAVYSHOTGUN"), - REWARD_WEAPON_HEAVYSNIPER = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER"), - REWARD_WEAPON_HEAVYSNIPER_MK2 = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER_MK2"), - REWARD_WEAPON_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_HOMINGLAUNCHER"), - REWARD_WEAPON_KNIFE = RAGE_JOAAT("REWARD_WEAPON_KNIFE"), - REWARD_WEAPON_KNUCKLE = RAGE_JOAAT("REWARD_WEAPON_KNUCKLE"), - REWARD_WEAPON_MACHETE = RAGE_JOAAT("REWARD_WEAPON_MACHETE"), - REWARD_WEAPON_MACHINEPISTOL = RAGE_JOAAT("REWARD_WEAPON_MACHINEPISTOL"), - REWARD_WEAPON_MARKSMANPISTOL = RAGE_JOAAT("REWARD_WEAPON_MARKSMANPISTOL"), - REWARD_WEAPON_MARKSMANRIFLE = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE"), - REWARD_WEAPON_MARKSMANRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE_MK2"), - REWARD_WEAPON_MG = RAGE_JOAAT("REWARD_WEAPON_MG"), - REWARD_WEAPON_MICROSMG = RAGE_JOAAT("REWARD_WEAPON_MICROSMG"), - REWARD_WEAPON_MINIGUN = RAGE_JOAAT("REWARD_WEAPON_MINIGUN"), - REWARD_WEAPON_MINISMG = RAGE_JOAAT("REWARD_WEAPON_MINISMG"), - REWARD_WEAPON_MOLOTOV = RAGE_JOAAT("REWARD_WEAPON_MOLOTOV"), - REWARD_WEAPON_MUSKET = RAGE_JOAAT("REWARD_WEAPON_MUSKET"), - REWARD_WEAPON_NIGHTSTICK = RAGE_JOAAT("REWARD_WEAPON_NIGHTSTICK"), - REWARD_WEAPON_PETROLCAN = RAGE_JOAAT("REWARD_WEAPON_PETROLCAN"), - REWARD_WEAPON_PIPEBOMB = RAGE_JOAAT("REWARD_WEAPON_PIPEBOMB"), - REWARD_WEAPON_PISTOL = RAGE_JOAAT("REWARD_WEAPON_PISTOL"), - REWARD_WEAPON_PISTOL50 = RAGE_JOAAT("REWARD_WEAPON_PISTOL50"), - REWARD_WEAPON_PISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_PISTOL_MK2"), - REWARD_WEAPON_POOLCUE = RAGE_JOAAT("REWARD_WEAPON_POOLCUE"), - REWARD_WEAPON_PROXMINE = RAGE_JOAAT("REWARD_WEAPON_PROXMINE"), - REWARD_WEAPON_PUMPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN"), - REWARD_WEAPON_PUMPSHOTGUN_MK2 = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN_MK2"), - REWARD_WEAPON_RAILGUN = RAGE_JOAAT("REWARD_WEAPON_RAILGUN"), - REWARD_WEAPON_RAYCARBINE = RAGE_JOAAT("REWARD_WEAPON_RAYCARBINE"), - REWARD_WEAPON_RAYMINIGUN = RAGE_JOAAT("REWARD_WEAPON_RAYMINIGUN"), - REWARD_WEAPON_RAYPISTOL = RAGE_JOAAT("REWARD_WEAPON_RAYPISTOL"), - REWARD_WEAPON_REVOLVER = RAGE_JOAAT("REWARD_WEAPON_REVOLVER"), - REWARD_WEAPON_REVOLVER_MK2 = RAGE_JOAAT("REWARD_WEAPON_REVOLVER_MK2"), - REWARD_WEAPON_RPG = RAGE_JOAAT("REWARD_WEAPON_RPG"), - REWARD_WEAPON_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_SAWNOFFSHOTGUN"), - REWARD_WEAPON_SMG = RAGE_JOAAT("REWARD_WEAPON_SMG"), - REWARD_WEAPON_SMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_SMG_MK2"), - REWARD_WEAPON_SMOKEGRENADE = RAGE_JOAAT("REWARD_WEAPON_SMOKEGRENADE"), - REWARD_WEAPON_SNIPERRIFLE = RAGE_JOAAT("REWARD_WEAPON_SNIPERRIFLE"), - REWARD_WEAPON_SNSPISTOL = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL"), - REWARD_WEAPON_SNSPISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL_MK2"), - REWARD_WEAPON_SPECIALCARBINE = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE"), - REWARD_WEAPON_SPECIALCARBINE_MK2 = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE_MK2"), - REWARD_WEAPON_STICKYBOMB = RAGE_JOAAT("REWARD_WEAPON_STICKYBOMB"), - REWARD_WEAPON_STONE_HATCHET = RAGE_JOAAT("REWARD_WEAPON_STONE_HATCHET"), - REWARD_WEAPON_STUNGUN = RAGE_JOAAT("REWARD_WEAPON_STUNGUN"), - REWARD_WEAPON_SWITCHBLADE = RAGE_JOAAT("REWARD_WEAPON_SWITCHBLADE"), - REWARD_WEAPON_VINTAGEPISTOL = RAGE_JOAAT("REWARD_WEAPON_VINTAGEPISTOL"), - REWARD_WEAPON_WRENCH = RAGE_JOAAT("REWARD_WEAPON_WRENCH") +#pragma once + +#include "natives.hpp" +#include "gta\joaat.hpp" + +enum Rewards : Hash +{ + REWARD_AMMO_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_AMMO_ADVANCEDRIFLE"), + REWARD_AMMO_APPISTOL = RAGE_JOAAT("REWARD_AMMO_APPISTOL"), + REWARD_AMMO_ASSAULTRIFLE = RAGE_JOAAT("REWARD_AMMO_ASSAULTRIFLE"), + REWARD_AMMO_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_AMMO_ASSAULTSHOTGUN"), + REWARD_AMMO_ASSAULTSMG = RAGE_JOAAT("REWARD_AMMO_ASSAULTSMG"), + REWARD_AMMO_AUTOSHOTGUN = RAGE_JOAAT("REWARD_AMMO_AUTOSHOTGUN"), + REWARD_AMMO_BULLET_MP = RAGE_JOAAT("REWARD_AMMO_BULLET_MP"), + REWARD_AMMO_BULLPUPRIFLE = RAGE_JOAAT("REWARD_AMMO_BULLPUPRIFLE"), + REWARD_AMMO_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_BULLPUPSHOTGUN"), + REWARD_AMMO_CARBINERIFLE = RAGE_JOAAT("REWARD_AMMO_CARBINERIFLE"), + REWARD_AMMO_COMBATMG = RAGE_JOAAT("REWARD_AMMO_COMBATMG"), + REWARD_AMMO_COMBATPDW = RAGE_JOAAT("REWARD_AMMO_COMBATPDW"), + REWARD_AMMO_COMBATPISTOL = RAGE_JOAAT("REWARD_AMMO_COMBATPISTOL"), + REWARD_AMMO_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_AMMO_COMPACTLAUNCHER"), + REWARD_AMMO_COMPACTRIFLE = RAGE_JOAAT("REWARD_AMMO_COMPACTRIFLE"), + REWARD_AMMO_DBSHOTGUN = RAGE_JOAAT("REWARD_AMMO_DBSHOTGUN"), + REWARD_AMMO_DOUBLEACTION = RAGE_JOAAT("REWARD_AMMO_DOUBLEACTION"), + REWARD_AMMO_FIREWORK = RAGE_JOAAT("REWARD_AMMO_FIREWORK"), + REWARD_AMMO_FIREWORK_MP = RAGE_JOAAT("REWARD_AMMO_FIREWORK_MP"), + REWARD_AMMO_FLAREGUN = RAGE_JOAAT("REWARD_AMMO_FLAREGUN"), + REWARD_AMMO_GRENADE = RAGE_JOAAT("REWARD_AMMO_GRENADE"), + REWARD_AMMO_GRENADELAUNCHER = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER"), + REWARD_AMMO_GRENADELAUNCHER_MP = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER_MP"), + REWARD_AMMO_GUSENBERG = RAGE_JOAAT("REWARD_AMMO_GUSENBERG"), + REWARD_AMMO_HEAVYPISTOL = RAGE_JOAAT("REWARD_AMMO_HEAVYPISTOL"), + REWARD_AMMO_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_AMMO_HEAVYSHOTGUN"), + REWARD_AMMO_HEAVYSNIPER = RAGE_JOAAT("REWARD_AMMO_HEAVYSNIPER"), + REWARD_AMMO_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_AMMO_HOMINGLAUNCHER"), + REWARD_AMMO_MACHINEPISTOL = RAGE_JOAAT("REWARD_AMMO_MACHINEPISTOL"), + REWARD_AMMO_MARKSMANPISTOL = RAGE_JOAAT("REWARD_AMMO_MARKSMANPISTOL"), + REWARD_AMMO_MARKSMANRIFLE = RAGE_JOAAT("REWARD_AMMO_MARKSMANRIFLE"), + REWARD_AMMO_MG = RAGE_JOAAT("REWARD_AMMO_MG"), + REWARD_AMMO_MICROSMG = RAGE_JOAAT("REWARD_AMMO_MICROSMG"), + REWARD_AMMO_MINIGUN = RAGE_JOAAT("REWARD_AMMO_MINIGUN"), + REWARD_AMMO_MINISMG = RAGE_JOAAT("REWARD_AMMO_MINISMG"), + REWARD_AMMO_MISSILE_MP = RAGE_JOAAT("REWARD_AMMO_MISSILE_MP"), + REWARD_AMMO_MOLOTOV = RAGE_JOAAT("REWARD_AMMO_MOLOTOV"), + REWARD_AMMO_MUSKET = RAGE_JOAAT("REWARD_AMMO_MUSKET"), + REWARD_AMMO_PETROLCAN = RAGE_JOAAT("REWARD_AMMO_PETROLCAN"), + REWARD_AMMO_PIPEBOMB = RAGE_JOAAT("REWARD_AMMO_PIPEBOMB"), + REWARD_AMMO_PISTOL = RAGE_JOAAT("REWARD_AMMO_PISTOL"), + REWARD_AMMO_PISTOL50 = RAGE_JOAAT("REWARD_AMMO_PISTOL50"), + REWARD_AMMO_PROXMINE = RAGE_JOAAT("REWARD_AMMO_PROXMINE"), + REWARD_AMMO_PUMPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN"), + REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE"), + REWARD_AMMO_RAILGUN = RAGE_JOAAT("REWARD_AMMO_RAILGUN"), + REWARD_AMMO_RAYPISTOL = RAGE_JOAAT("REWARD_AMMO_RAYPISTOL"), + REWARD_AMMO_REVOLVER = RAGE_JOAAT("REWARD_AMMO_REVOLVER"), + REWARD_AMMO_RPG = RAGE_JOAAT("REWARD_AMMO_RPG"), + REWARD_AMMO_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_AMMO_SAWNOFFSHOTGUN"), + REWARD_AMMO_SMG = RAGE_JOAAT("REWARD_AMMO_SMG"), + REWARD_AMMO_SMOKEGRENADE = RAGE_JOAAT("REWARD_AMMO_SMOKEGRENADE"), + REWARD_AMMO_SNIPERRIFLE = RAGE_JOAAT("REWARD_AMMO_SNIPERRIFLE"), + REWARD_AMMO_SNSPISTOL = RAGE_JOAAT("REWARD_AMMO_SNSPISTOL"), + REWARD_AMMO_SPECIALCARBINE = RAGE_JOAAT("REWARD_AMMO_SPECIALCARBINE"), + REWARD_AMMO_STICKYBOMB = RAGE_JOAAT("REWARD_AMMO_STICKYBOMB"), + REWARD_AMMO_STUNGUN = RAGE_JOAAT("REWARD_AMMO_STUNGUN"), + REWARD_AMMO_VINTAGEPISTOL = RAGE_JOAAT("REWARD_AMMO_VINTAGEPISTOL"), + REWARD_ARMOUR = RAGE_JOAAT("REWARD_ARMOUR"), + REWARD_HEALTH = RAGE_JOAAT("REWARD_HEALTH"), + REWARD_HEALTH_ENTER_VEHICLE = RAGE_JOAAT("REWARD_HEALTH_ENTER_VEHICLE"), + REWARD_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_HEALTH_VARIABLE"), + REWARD_MONEY_VARIABLE = RAGE_JOAAT("REWARD_MONEY_VARIABLE"), + REWARD_PARACHUTE = RAGE_JOAAT("REWARD_PARACHUTE"), + REWARD_STAT_HEALTH = RAGE_JOAAT("REWARD_STAT_HEALTH"), + REWARD_STAT_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_STAT_HEALTH_VARIABLE"), + REWARD_STAT_WEAPON = RAGE_JOAAT("REWARD_STAT_WEAPON"), + REWARD_VEHICLE_FIX = RAGE_JOAAT("REWARD_VEHICLE_FIX"), + REWARD_WEAPON_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_WEAPON_ADVANCEDRIFLE"), + REWARD_WEAPON_APPISTOL = RAGE_JOAAT("REWARD_WEAPON_APPISTOL"), + REWARD_WEAPON_ASSAULTRIFLE = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE"), + REWARD_WEAPON_ASSAULTRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE_MK2"), + REWARD_WEAPON_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSHOTGUN"), + REWARD_WEAPON_ASSAULTSMG = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSMG"), + REWARD_WEAPON_AUTOSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_AUTOSHOTGUN"), + REWARD_WEAPON_BAT = RAGE_JOAAT("REWARD_WEAPON_BAT"), + REWARD_WEAPON_BATTLEAXE = RAGE_JOAAT("REWARD_WEAPON_BATTLEAXE"), + REWARD_WEAPON_BOTTLE = RAGE_JOAAT("REWARD_WEAPON_BOTTLE"), + REWARD_WEAPON_BULLPUPRIFLE = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE"), + REWARD_WEAPON_BULLPUPRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE_MK2"), + REWARD_WEAPON_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_BULLPUPSHOTGUN"), + REWARD_WEAPON_CARBINERIFLE = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE"), + REWARD_WEAPON_CARBINERIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE_MK2"), + REWARD_WEAPON_COMBATMG = RAGE_JOAAT("REWARD_WEAPON_COMBATMG"), + REWARD_WEAPON_COMBATMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_COMBATMG_MK2"), + REWARD_WEAPON_COMBATPDW = RAGE_JOAAT("REWARD_WEAPON_COMBATPDW"), + REWARD_WEAPON_COMBATPISTOL = RAGE_JOAAT("REWARD_WEAPON_COMBATPISTOL"), + REWARD_WEAPON_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_COMPACTLAUNCHER"), + REWARD_WEAPON_COMPACTRIFLE = RAGE_JOAAT("REWARD_WEAPON_COMPACTRIFLE"), + REWARD_WEAPON_CROWBAR = RAGE_JOAAT("REWARD_WEAPON_CROWBAR"), + REWARD_WEAPON_DAGGER = RAGE_JOAAT("REWARD_WEAPON_DAGGER"), + REWARD_WEAPON_DBSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_DBSHOTGUN"), + REWARD_WEAPON_DOUBLEACTION = RAGE_JOAAT("REWARD_WEAPON_DOUBLEACTION"), + REWARD_WEAPON_FIREWORK = RAGE_JOAAT("REWARD_WEAPON_FIREWORK"), + REWARD_WEAPON_FLAREGUN = RAGE_JOAAT("REWARD_WEAPON_FLAREGUN"), + REWARD_WEAPON_FLASHLIGHT = RAGE_JOAAT("REWARD_WEAPON_FLASHLIGHT"), + REWARD_WEAPON_GOLFCLUB = RAGE_JOAAT("REWARD_WEAPON_GOLFCLUB"), + REWARD_WEAPON_GRENADE = RAGE_JOAAT("REWARD_WEAPON_GRENADE"), + REWARD_WEAPON_GRENADELAUNCHER = RAGE_JOAAT("REWARD_WEAPON_GRENADELAUNCHER"), + REWARD_WEAPON_GUSENBERG = RAGE_JOAAT("REWARD_WEAPON_GUSENBERG"), + REWARD_WEAPON_HAMMER = RAGE_JOAAT("REWARD_WEAPON_HAMMER"), + REWARD_WEAPON_HATCHET = RAGE_JOAAT("REWARD_WEAPON_HATCHET"), + REWARD_WEAPON_HEAVYPISTOL = RAGE_JOAAT("REWARD_WEAPON_HEAVYPISTOL"), + REWARD_WEAPON_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_HEAVYSHOTGUN"), + REWARD_WEAPON_HEAVYSNIPER = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER"), + REWARD_WEAPON_HEAVYSNIPER_MK2 = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER_MK2"), + REWARD_WEAPON_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_HOMINGLAUNCHER"), + REWARD_WEAPON_KNIFE = RAGE_JOAAT("REWARD_WEAPON_KNIFE"), + REWARD_WEAPON_KNUCKLE = RAGE_JOAAT("REWARD_WEAPON_KNUCKLE"), + REWARD_WEAPON_MACHETE = RAGE_JOAAT("REWARD_WEAPON_MACHETE"), + REWARD_WEAPON_MACHINEPISTOL = RAGE_JOAAT("REWARD_WEAPON_MACHINEPISTOL"), + REWARD_WEAPON_MARKSMANPISTOL = RAGE_JOAAT("REWARD_WEAPON_MARKSMANPISTOL"), + REWARD_WEAPON_MARKSMANRIFLE = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE"), + REWARD_WEAPON_MARKSMANRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE_MK2"), + REWARD_WEAPON_MG = RAGE_JOAAT("REWARD_WEAPON_MG"), + REWARD_WEAPON_MICROSMG = RAGE_JOAAT("REWARD_WEAPON_MICROSMG"), + REWARD_WEAPON_MINIGUN = RAGE_JOAAT("REWARD_WEAPON_MINIGUN"), + REWARD_WEAPON_MINISMG = RAGE_JOAAT("REWARD_WEAPON_MINISMG"), + REWARD_WEAPON_MOLOTOV = RAGE_JOAAT("REWARD_WEAPON_MOLOTOV"), + REWARD_WEAPON_MUSKET = RAGE_JOAAT("REWARD_WEAPON_MUSKET"), + REWARD_WEAPON_NIGHTSTICK = RAGE_JOAAT("REWARD_WEAPON_NIGHTSTICK"), + REWARD_WEAPON_PETROLCAN = RAGE_JOAAT("REWARD_WEAPON_PETROLCAN"), + REWARD_WEAPON_PIPEBOMB = RAGE_JOAAT("REWARD_WEAPON_PIPEBOMB"), + REWARD_WEAPON_PISTOL = RAGE_JOAAT("REWARD_WEAPON_PISTOL"), + REWARD_WEAPON_PISTOL50 = RAGE_JOAAT("REWARD_WEAPON_PISTOL50"), + REWARD_WEAPON_PISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_PISTOL_MK2"), + REWARD_WEAPON_POOLCUE = RAGE_JOAAT("REWARD_WEAPON_POOLCUE"), + REWARD_WEAPON_PROXMINE = RAGE_JOAAT("REWARD_WEAPON_PROXMINE"), + REWARD_WEAPON_PUMPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN"), + REWARD_WEAPON_PUMPSHOTGUN_MK2 = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN_MK2"), + REWARD_WEAPON_RAILGUN = RAGE_JOAAT("REWARD_WEAPON_RAILGUN"), + REWARD_WEAPON_RAYCARBINE = RAGE_JOAAT("REWARD_WEAPON_RAYCARBINE"), + REWARD_WEAPON_RAYMINIGUN = RAGE_JOAAT("REWARD_WEAPON_RAYMINIGUN"), + REWARD_WEAPON_RAYPISTOL = RAGE_JOAAT("REWARD_WEAPON_RAYPISTOL"), + REWARD_WEAPON_REVOLVER = RAGE_JOAAT("REWARD_WEAPON_REVOLVER"), + REWARD_WEAPON_REVOLVER_MK2 = RAGE_JOAAT("REWARD_WEAPON_REVOLVER_MK2"), + REWARD_WEAPON_RPG = RAGE_JOAAT("REWARD_WEAPON_RPG"), + REWARD_WEAPON_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_SAWNOFFSHOTGUN"), + REWARD_WEAPON_SMG = RAGE_JOAAT("REWARD_WEAPON_SMG"), + REWARD_WEAPON_SMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_SMG_MK2"), + REWARD_WEAPON_SMOKEGRENADE = RAGE_JOAAT("REWARD_WEAPON_SMOKEGRENADE"), + REWARD_WEAPON_SNIPERRIFLE = RAGE_JOAAT("REWARD_WEAPON_SNIPERRIFLE"), + REWARD_WEAPON_SNSPISTOL = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL"), + REWARD_WEAPON_SNSPISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL_MK2"), + REWARD_WEAPON_SPECIALCARBINE = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE"), + REWARD_WEAPON_SPECIALCARBINE_MK2 = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE_MK2"), + REWARD_WEAPON_STICKYBOMB = RAGE_JOAAT("REWARD_WEAPON_STICKYBOMB"), + REWARD_WEAPON_STONE_HATCHET = RAGE_JOAAT("REWARD_WEAPON_STONE_HATCHET"), + REWARD_WEAPON_STUNGUN = RAGE_JOAAT("REWARD_WEAPON_STUNGUN"), + REWARD_WEAPON_SWITCHBLADE = RAGE_JOAAT("REWARD_WEAPON_SWITCHBLADE"), + REWARD_WEAPON_VINTAGEPISTOL = RAGE_JOAAT("REWARD_WEAPON_VINTAGEPISTOL"), + REWARD_WEAPON_WRENCH = RAGE_JOAAT("REWARD_WEAPON_WRENCH") }; \ No newline at end of file diff --git a/BigBaseV2/src/main.cpp b/BigBaseV2/src/main.cpp index 99710a24..0773b02b 100644 --- a/BigBaseV2/src/main.cpp +++ b/BigBaseV2/src/main.cpp @@ -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(); auto mobile_service_instance = std::make_unique(); auto notification_service_instance = std::make_unique(); + auto pickup_service_instance = std::make_unique(); auto player_service_instance = std::make_unique(); auto vehicle_preview_service_instance = std::make_unique(); auto vehicle_service_instance = std::make_unique(); @@ -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(); @@ -173,4 +176,4 @@ BOOL APIENTRY DllMain(HMODULE hmod, DWORD reason, PVOID) } return true; -} \ No newline at end of file +} diff --git a/BigBaseV2/src/pointers.cpp b/BigBaseV2/src/pointers.cpp index 1630af25..a477de7e 100644 --- a/BigBaseV2/src/pointers.cpp +++ b/BigBaseV2/src/pointers.cpp @@ -230,6 +230,12 @@ namespace big m_get_gamplay_cam_coords = ptr.sub(0xE).as(); }); + // 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(); + }); + // 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) { diff --git a/BigBaseV2/src/pointers.hpp b/BigBaseV2/src/pointers.hpp index 4b6a7489..db34807f 100644 --- a/BigBaseV2/src/pointers.hpp +++ b/BigBaseV2/src/pointers.hpp @@ -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{}; diff --git a/BigBaseV2/src/services/pickups/pickup_helper.hpp b/BigBaseV2/src/services/pickups/pickup_helper.hpp new file mode 100644 index 00000000..9aa6a664 --- /dev/null +++ b/BigBaseV2/src/services/pickups/pickup_helper.hpp @@ -0,0 +1,173 @@ +#pragma once +#include "gta\joaat.hpp" + +namespace big +{ + struct rewards + { + using pickup_map = std::map; + + 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") } + }; + }; +} diff --git a/BigBaseV2/src/services/pickups/pickup_service.cpp b/BigBaseV2/src/services/pickups/pickup_service.cpp new file mode 100644 index 00000000..6708e70a --- /dev/null +++ b/BigBaseV2/src/services/pickups/pickup_service.cpp @@ -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); + } + } +} diff --git a/BigBaseV2/src/services/pickups/pickup_service.hpp b/BigBaseV2/src/services/pickups/pickup_service.hpp new file mode 100644 index 00000000..f6e2f49e --- /dev/null +++ b/BigBaseV2/src/services/pickups/pickup_service.hpp @@ -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{}; +} \ No newline at end of file diff --git a/BigBaseV2/src/views/players/view_player.cpp b/BigBaseV2/src/views/players/view_player.cpp index 5f0f1ef9..1054ec1b 100644 --- a/BigBaseV2/src/views/players/view_player.cpp +++ b/BigBaseV2/src/views/players/view_player.cpp @@ -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(); }