From 3de26d020b989ed05dfece6239254764dc29c21c Mon Sep 17 00:00:00 2001 From: ElPumpo Date: Fri, 22 Jun 2018 22:25:34 +0200 Subject: [PATCH] Improved ammo handling --- client/functions.lua | 77 ++++++++++++++++++++------------------- client/main.lua | 25 ++++++++----- locales/en.lua | 2 +- locales/sv.lua | 10 ++--- server/classes/player.lua | 8 ++-- 5 files changed, 65 insertions(+), 57 deletions(-) diff --git a/client/functions.lua b/client/functions.lua index 1e373b01..04c2ce82 100644 --- a/client/functions.lua +++ b/client/functions.lua @@ -303,10 +303,11 @@ ESX.GetWeaponLabel = function(name) end ESX.Game.GetPedMugshot = function(ped) - mugshot = RegisterPedheadshot(ped) + local mugshot = RegisterPedheadshot(ped) while not IsPedheadshotReady(mugshot) do - Wait(0) + Citizen.Wait(0) end + return mugshot, GetPedheadshotTxdString(mugshot) end @@ -745,55 +746,55 @@ ESX.Game.GetVehicleProperties = function(vehicle) neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)), tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)), - modSpoilers = GetVehicleMod(vehicle, 0), - modFrontBumper = GetVehicleMod(vehicle, 1), - modRearBumper = GetVehicleMod(vehicle, 2), - modSideSkirt = GetVehicleMod(vehicle, 3), - modExhaust = GetVehicleMod(vehicle, 4), - modFrame = GetVehicleMod(vehicle, 5), - modGrille = GetVehicleMod(vehicle, 6), - modHood = GetVehicleMod(vehicle, 7), - modFender = GetVehicleMod(vehicle, 8), - modRightFender = GetVehicleMod(vehicle, 9), - modRoof = GetVehicleMod(vehicle, 10), + modSpoilers = GetVehicleMod(vehicle, 0), + modFrontBumper = GetVehicleMod(vehicle, 1), + modRearBumper = GetVehicleMod(vehicle, 2), + modSideSkirt = GetVehicleMod(vehicle, 3), + modExhaust = GetVehicleMod(vehicle, 4), + modFrame = GetVehicleMod(vehicle, 5), + modGrille = GetVehicleMod(vehicle, 6), + modHood = GetVehicleMod(vehicle, 7), + modFender = GetVehicleMod(vehicle, 8), + modRightFender = GetVehicleMod(vehicle, 9), + modRoof = GetVehicleMod(vehicle, 10), - modEngine = GetVehicleMod(vehicle, 11), - modBrakes = GetVehicleMod(vehicle, 12), - modTransmission = GetVehicleMod(vehicle, 13), - modHorns = GetVehicleMod(vehicle, 14), - modSuspension = GetVehicleMod(vehicle, 15), - modArmor = GetVehicleMod(vehicle, 16), + modEngine = GetVehicleMod(vehicle, 11), + modBrakes = GetVehicleMod(vehicle, 12), + modTransmission = GetVehicleMod(vehicle, 13), + modHorns = GetVehicleMod(vehicle, 14), + modSuspension = GetVehicleMod(vehicle, 15), + modArmor = GetVehicleMod(vehicle, 16), - modTurbo = IsToggleModOn(vehicle, 18), - modSmokeEnabled = IsToggleModOn(vehicle, 20), - modXenon = IsToggleModOn(vehicle, 22), + modTurbo = IsToggleModOn(vehicle, 18), + modSmokeEnabled = IsToggleModOn(vehicle, 20), + modXenon = IsToggleModOn(vehicle, 22), - modFrontWheels = GetVehicleMod(vehicle, 23), - modBackWheels = GetVehicleMod(vehicle, 24), + modFrontWheels = GetVehicleMod(vehicle, 23), + modBackWheels = GetVehicleMod(vehicle, 24), modPlateHolder = GetVehicleMod(vehicle, 25), modVanityPlate = GetVehicleMod(vehicle, 26), - modTrimA = GetVehicleMod(vehicle, 27), + modTrimA = GetVehicleMod(vehicle, 27), modOrnaments = GetVehicleMod(vehicle, 28), modDashboard = GetVehicleMod(vehicle, 29), - modDial = GetVehicleMod(vehicle, 30), - modDoorSpeaker = GetVehicleMod(vehicle, 31), - modSeats = GetVehicleMod(vehicle, 32), - modSteeringWheel = GetVehicleMod(vehicle, 33), - modShifterLeavers = GetVehicleMod(vehicle, 34), - modAPlate = GetVehicleMod(vehicle, 35), + modDial = GetVehicleMod(vehicle, 30), + modDoorSpeaker = GetVehicleMod(vehicle, 31), + modSeats = GetVehicleMod(vehicle, 32), + modSteeringWheel = GetVehicleMod(vehicle, 33), + modShifterLeavers = GetVehicleMod(vehicle, 34), + modAPlate = GetVehicleMod(vehicle, 35), modSpeakers = GetVehicleMod(vehicle, 36), - modTrunk = GetVehicleMod(vehicle, 37), + modTrunk = GetVehicleMod(vehicle, 37), modHydrolic = GetVehicleMod(vehicle, 38), - modEngineBlock = GetVehicleMod(vehicle, 39), + modEngineBlock = GetVehicleMod(vehicle, 39), modAirFilter = GetVehicleMod(vehicle, 40), - modStruts = GetVehicleMod(vehicle, 41), + modStruts = GetVehicleMod(vehicle, 41), modArchCover = GetVehicleMod(vehicle, 42), modAerials = GetVehicleMod(vehicle, 43), - modTrimB = GetVehicleMod(vehicle, 44), - modTank = GetVehicleMod(vehicle, 45), + modTrimB = GetVehicleMod(vehicle, 44), + modTank = GetVehicleMod(vehicle, 45), modWindows = GetVehicleMod(vehicle, 46), - modLivery = GetVehicleMod(vehicle, 48) + modLivery = GetVehicleMod(vehicle, 48) } end @@ -1353,7 +1354,7 @@ ESX.ShowInventory = function() SetPedAmmo(playerPed, item, finalAmmoSource) AddAmmoToPed(closestPed, item, quantity) ESX.ShowNotification(_U('gave_ammo', quantity, GetPlayerName(closestPlayer))) - -- todo notify target that he recived ammo + -- todo notify target that he received ammo menu2.close() menu.close() else diff --git a/client/main.lua b/client/main.lua index 53e5bab7..56036754 100644 --- a/client/main.lua +++ b/client/main.lua @@ -173,20 +173,27 @@ end) RegisterNetEvent('esx:addWeapon') AddEventHandler('esx:addWeapon', function(weaponName, ammo) - local playerPed = GetPlayerPed(-1) - local weaponHash = GetHashKey(weaponName) + local playerPed = GetPlayerPed(-1) + local weaponHash = GetHashKey(weaponName) - GiveWeaponToPed(playerPed, weaponHash, ammo, false, false) - SetPedAmmo(playerPed, weaponHash, ammo) -- remove leftover ammo + GiveWeaponToPed(playerPed, weaponHash, ammo, false, false) + --AddAmmoToPed(playerPed, weaponHash, ammo) possibly not needed end) RegisterNetEvent('esx:removeWeapon') -AddEventHandler('esx:removeWeapon', function(weaponName) - local playerPed = GetPlayerPed(-1) - local weaponHash = GetHashKey(weaponName) +AddEventHandler('esx:removeWeapon', function(weaponName, ammo) + local playerPed = GetPlayerPed(-1) + local weaponHash = GetHashKey(weaponName) - RemoveWeaponFromPed(playerPed, weaponHash) - SetPedAmmo(playerPed, weaponHash, 0) -- remove leftover ammo + RemoveWeaponFromPed(playerPed, weaponHash) + + if ammo then + local pedAmmo = GetAmmoInPedWeapon(playerPed, weaponHash) + local finalAmmo = math.floor(pedAmmo - ammo) + SetPedAmmo(playerPed, weaponHash, finalAmmo) + else + SetPedAmmo(playerPed, weaponHash, 0) -- remove leftover ammo + end end) -- Commands diff --git a/locales/en.lua b/locales/en.lua index 4dee4a57..7005a206 100644 --- a/locales/en.lua +++ b/locales/en.lua @@ -148,7 +148,7 @@ Locales['en'] = { ['weapon_flashlight'] = 'flashlight', ['gadget_nightvision'] = 'night vision', ['gadget_parachute'] = 'parachute', - ['weapon_flare'] = 'Fusée Détresse', + ['weapon_flare'] = 'flare gun', ['weapon_snspistol_mk2'] = 'SNS Pistol Mk II', ['weapon_revolver_mk2'] = 'Heavy Revolver Mk II', ['weapon_doubleaction'] = 'Double-Action Revolver', diff --git a/locales/sv.lua b/locales/sv.lua index b1745f85..53f00495 100644 --- a/locales/sv.lua +++ b/locales/sv.lua @@ -48,13 +48,13 @@ Locales['sv'] = { ['unload_ipl'] = 'unload IPL', ['play_anim'] = 'spela animering', ['play_emote'] = 'spela emote', - ['spawn_car'] = 'spawna en bil', - ['spawn_car_param'] = 'namn på bil', - ['delete_vehicle'] = 'ta bort Fordon', + ['spawn_car'] = 'spawna ett fordon', + ['spawn_car_param'] = 'namn på fordon', + ['delete_vehicle'] = 'ta bort fordon', ['delete_veh_param'] = 'tryck enter', ['spawn_object'] = 'spawna föremål', ['spawn_ped'] = 'spawna NPC', - ['spawn_ped_param'] = 'example a_m_m_hillbilly_01', + ['spawn_ped_param'] = 'exempel a_m_m_hillbilly_01', ['givemoney'] = 'ge pengar', ['setmoney'] = 'bestäm mängd pengar till en valfri person', ['money_type'] = 'giltiga typer: cash, bank, black', @@ -148,7 +148,7 @@ Locales['sv'] = { ['weapon_flashlight'] = 'flashlight', ['gadget_nightvision'] = 'night vision', ['gadget_parachute'] = 'parachute', - ['weapon_flare'] = 'Fusée Détresse', + ['weapon_flare'] = 'flare gun', ['weapon_snspistol_mk2'] = 'SNS Pistol Mk II', ['weapon_revolver_mk2'] = 'Heavy Revolver Mk II', ['weapon_doubleaction'] = 'Double-Action Revolver', diff --git a/server/classes/player.lua b/server/classes/player.lua index 86170fc2..c2b8ce41 100644 --- a/server/classes/player.lua +++ b/server/classes/player.lua @@ -430,10 +430,10 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l }) end TriggerClientEvent('esx:addWeapon', self.source, weaponName, ammo) - TriggerClientEvent("esx:addInventoryItem", self.source, {label = weaponLabel}, 1) + TriggerClientEvent('esx:addInventoryItem', self.source, {label = weaponLabel}, 1) end - self.removeWeapon = function(weaponName) + self.removeWeapon = function(weaponName, ammo) local weaponLabel = weaponName @@ -453,8 +453,8 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l end end - TriggerClientEvent('esx:removeWeapon', self.source, weaponName) - TriggerClientEvent("esx:removeInventoryItem", self.source, {label = weaponLabel}, 1) + TriggerClientEvent('esx:removeWeapon', self.source, weaponName, ammo) + TriggerClientEvent('esx:removeInventoryItem', self.source, {label = weaponLabel}, 1) end return self