From 6944fa56b2a7eb8ac3b5e8331a1412f221f57352 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:12:31 +0000 Subject: [PATCH 01/12] feat(es_extended/adjustments): allow Population Changes --- .../client/modules/adjustments.lua | 50 ++++++++++++++++++- .../es_extended/shared/config/adjustments.lua | 14 ++++++ 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index b4d4fe8ad..1808018bb 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -41,7 +41,25 @@ function Adjustments:HealthRegeneration() end end -function Adjustments:AmmoAndVehicleRewards() + +function Adjustments:ShouldChangeNPCPopulation() + for _, value in pairs(Config.NPCPopulation) do + if value ~= 0.9 then + return true + end + end + if Config.DisableDisplayAmmo then + return true + end + if Config.DisableVehicleRewards then + return true + end +end + + +function Adjustments:TickLoop() + if not self:ShouldChangeNPCPopulation() then return end + local NPC = Config.NPCPopulation CreateThread(function() while true do if Config.DisableDisplayAmmo then @@ -52,6 +70,34 @@ function Adjustments:AmmoAndVehicleRewards() DisablePlayerVehicleRewards(ESX.playerId) end + if NPC.ambientVehicles ~= 0.9 then + SetAmbientVehicleRangeMultiplierThisFrame(NPC.ambientVehicles) + end + + if NPC.parkedVehicles ~= 0.9 then + SetParkedVehicleDensityMultiplierThisFrame(NPC.parkedVehicles) + end + + if NPC.randomVehicles ~= 0.9 then + SetRandomVehicleDensityMultiplierThisFrame(NPC.randomVehicles) + end + + if NPC.vehicles ~= 0.9 then + SetVehicleDensityMultiplierThisFrame(NPC.vehicles) + end + + if NPC.ambientPeds ~= 0.9 then + SetPedDensityMultiplierThisFrame(NPC.ambientPeds) + end + + if NPC.scenarioPeds ~= 0.9 then + SetScenarioPedDensityMultiplierThisFrame(NPC.scenarioPeds, NPC.scenarioPeds) + end + + if NPC.peds ~= 0.9 then + SetPedDensityMultiplierThisFrame(NPC.peds) + end + Wait(0) end end) @@ -231,7 +277,7 @@ function Adjustments:Load() self:DisableNPCDrops() self:SeatShuffle() self:HealthRegeneration() - self:AmmoAndVehicleRewards() + self:TickLoop() self:EnablePvP() self:DispatchServices() self:NPCScenarios() diff --git a/[core]/es_extended/shared/config/adjustments.lua b/[core]/es_extended/shared/config/adjustments.lua index ae7b8a466..1e036e63b 100644 --- a/[core]/es_extended/shared/config/adjustments.lua +++ b/[core]/es_extended/shared/config/adjustments.lua @@ -9,6 +9,20 @@ Config.DisableDisplayAmmo = false -- Disable ammunition display Config.EnablePVP = true -- Allow Player to player combat Config.EnableWantedLevel = false -- Use Normal GTA wanted Level? +Config.NPCPopulation = { + -- Vehicles + ambientVehicles = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + parkedVehicles = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + randomVehicles = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + vehicles = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + + -- Peds + ambientPeds = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + scenarioPeds = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) + peds = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) +} + + Config.RemoveHudComponents = { [1] = false, --WANTED_STARS, [2] = false, --WEAPON_ICON From 83d209b60c33ff83007518c76b156e45d75efa77 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:15:01 +0000 Subject: [PATCH 02/12] fix(es_extended/client/ajustments): correct function naming --- [core]/es_extended/client/modules/adjustments.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 1808018bb..d4216ac55 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -42,7 +42,7 @@ function Adjustments:HealthRegeneration() end -function Adjustments:ShouldChangeNPCPopulation() +function Adjustments:ShouldLoop() for _, value in pairs(Config.NPCPopulation) do if value ~= 0.9 then return true @@ -56,9 +56,8 @@ function Adjustments:ShouldChangeNPCPopulation() end end - function Adjustments:TickLoop() - if not self:ShouldChangeNPCPopulation() then return end + if not self:ShouldLoop() then return end local NPC = Config.NPCPopulation CreateThread(function() while true do From e1e1fb1b69bdadbfd899037e12ff3f69b28ddcac Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:27:26 +0000 Subject: [PATCH 03/12] feat(es_extended/adjustments): pointing --- .../client/modules/adjustments.lua | 63 +++++++++++++++++++ .../es_extended/shared/config/adjustments.lua | 5 ++ 2 files changed, 68 insertions(+) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index d4216ac55..3e6a60c36 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -41,6 +41,69 @@ function Adjustments:HealthRegeneration() end end +function Adjustments:PointLoop() + CreateThread(function() + while self.isPointing do + local camPitch = GetGameplayCamRelativePitch() + local camHeading = GetGameplayCamRelativeHeading() + local cosCamHeading = Cos(camHeading) + local sinCamHeading = Sin(camHeading) + + camPitch = math.max(-70.0, math.min(42.0, camPitch)) + camPitch = (camPitch + 70.0) / 112.0 + camHeading = math.max(-180.0, math.min(180.0, camHeading)) + camHeading = (camHeading + 180.0) / 360.0 + + local coords = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, (cosCamHeading * -0.2) - (sinCamHeading * (0.4 * camHeading + 0.3)), (sinCamHeading * -0.2) + (cosCamHeading * (0.4 * camHeading + 0.3)), 0.6) + local ray = StartShapeTestCapsule(coords.x, coords.y, coords.z - 0.2, coords.x, coords.y, coords.z + 0.2, 0.4, 95, ESX.PlayerData.ped, 7) + local _, blocked = GetRaycastResult(ray) + + SetTaskMoveNetworkSignalFloat(ESX.PlayerData.ped, "Pitch", camPitch) + SetTaskMoveNetworkSignalFloat(ESX.PlayerData.ped, "Heading", camHeading * -1.0 + 1.0) + SetTaskMoveNetworkSignalBool(ESX.PlayerData.ped, "isBlocked", blocked) + SetTaskMoveNetworkSignalBool(ESX.PlayerData.ped, "isFirstPerson", GetCamViewModeForContext(GetCamActiveViewModeContext()) == 4) + Wait(0) + end + end) +end + +function Adjustments:StopPoint() + RequestTaskMoveNetworkStateTransition(ESX.PlayerData.ped, 'Stop') + ClearPedSecondaryTask(ESX.PlayerData.ped) + if not IsPedInAnyVehicle(ESX.PlayerData.ped, false) then + SetPedCurrentWeaponVisible(ESX.PlayerData.ped, true, true, true, true) + end + SetPedConfigFlag(ESX.PlayerData.ped, 36, false) +end + +function Adjustments:Point() + if not Config.Pointing.Enable then + return + end + self.isPointing = false + + ESX.RegisterInput("esx:poiting", "Point", "keyboard", "b", function() + self.isPointing = not self.isPointing + if self.isPointing then + ESX.RequestAnimDict("anim@mp_point") + SetPedCurrentWeaponVisible(ESX.PlayerData.ped, false, true, true, true) + SetPedConfigFlag(ESX.PlayerData.ped, 36, true) + TaskMoveNetworkByName(ESX.PlayerData.ped, 'task_mp_pointing', 0.5, false, 'anim@mp_point', 24) + RemoveAnimDict("anim@mp_point") + + self:PointLoop() + else + self:StopPoint() + end + end, function() + if not Config.Pointing.HoldKey then + return + end + + self:StopPoint() + end) +end + function Adjustments:ShouldLoop() for _, value in pairs(Config.NPCPopulation) do diff --git a/[core]/es_extended/shared/config/adjustments.lua b/[core]/es_extended/shared/config/adjustments.lua index 1e036e63b..8e813cd5e 100644 --- a/[core]/es_extended/shared/config/adjustments.lua +++ b/[core]/es_extended/shared/config/adjustments.lua @@ -22,6 +22,11 @@ Config.NPCPopulation = { peds = 0.9, -- min: 0.0, max: 1.0 (default: 0.9) } +Config.Pointing = { + enable = true, -- Enable Pointing + HoldKey = true, -- Require holding key to point, disable to have it toggle +} + Config.RemoveHudComponents = { [1] = false, --WANTED_STARS, From 506fb53959ef79de6026cefd6bbc569ca87866fc Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:46:59 +0000 Subject: [PATCH 04/12] fix(es_extended/client/adjustments): force appId to be a strign --- [core]/es_extended/client/modules/adjustments.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 3e6a60c36..4aba4dcc3 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -301,7 +301,7 @@ function Adjustments:DiscordPresence() if Config.DiscordActivity.appId ~= 0 then CreateThread(function() while true do - SetDiscordAppId(Config.DiscordActivity.appId) + SetDiscordAppId(tostring(Config.DiscordActivity.appId)) SetDiscordRichPresenceAsset(Config.DiscordActivity.assetName) SetDiscordRichPresenceAssetText(Config.DiscordActivity.assetText) From a3d73e9cd3bd9d31a6e5d190d7bf3b4d6cb93496 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:47:41 +0000 Subject: [PATCH 05/12] fix(es_extended/client/adjustments): limit discord buttons to 2 entries --- [core]/es_extended/client/modules/adjustments.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 4aba4dcc3..2f9905577 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -305,7 +305,7 @@ function Adjustments:DiscordPresence() SetDiscordRichPresenceAsset(Config.DiscordActivity.assetName) SetDiscordRichPresenceAssetText(Config.DiscordActivity.assetText) - for i = 1, #Config.DiscordActivity.buttons do + for i = 1, math.min(2, #Config.DiscordActivity.buttons) do local button = Config.DiscordActivity.buttons[i] SetDiscordRichPresenceAction(i - 1, button.label, button.url) end From 91d4c4aba484278e6bee660ad5771e927714eb63 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:49:50 +0000 Subject: [PATCH 06/12] refactor(es_extended/client/adjustments): remove buttons loop --- [core]/es_extended/client/modules/adjustments.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 2f9905577..5ca038b8d 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -305,9 +305,14 @@ function Adjustments:DiscordPresence() SetDiscordRichPresenceAsset(Config.DiscordActivity.assetName) SetDiscordRichPresenceAssetText(Config.DiscordActivity.assetText) - for i = 1, math.min(2, #Config.DiscordActivity.buttons) do - local button = Config.DiscordActivity.buttons[i] - SetDiscordRichPresenceAction(i - 1, button.label, button.url) + local buttons = Config.DiscordActivity.buttons + if buttons[1] then + local button = buttons[1] + SetDiscordRichPresenceAction(0, button.label, button.url) + end + if buttons[2] then + local button = buttons[2] + SetDiscordRichPresenceAction(1, button.label, button.url) end SetRichPresence(self:PresencePlaceholders()) From c390fcc21290ecc96d9676fdb42d81544cbf55a9 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:53:26 +0000 Subject: [PATCH 07/12] fix(es_extended/client/adjustments): disable pointing correctly --- [core]/es_extended/client/modules/adjustments.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 5ca038b8d..e6be5b1a1 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -100,6 +100,7 @@ function Adjustments:Point() return end + self.isPointing = false self:StopPoint() end) end From 97c393761fb8dcf3f972b944c49569e436662dec Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 22:03:11 +0000 Subject: [PATCH 08/12] fix(es_extended/client/adjustments) "poiting" typo --- [core]/es_extended/client/modules/adjustments.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index e6be5b1a1..bc29d47e6 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -82,7 +82,7 @@ function Adjustments:Point() end self.isPointing = false - ESX.RegisterInput("esx:poiting", "Point", "keyboard", "b", function() + ESX.RegisterInput("esx:pointing", "Point", "keyboard", "b", function() self.isPointing = not self.isPointing if self.isPointing then ESX.RequestAnimDict("anim@mp_point") From 2685e377fb672e95b61deae758626586ee312497 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 22:03:43 +0000 Subject: [PATCH 09/12] tweak(es_extended/client/adjustments): remove un-needed config flag --- [core]/es_extended/client/modules/adjustments.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index bc29d47e6..317c97470 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -73,7 +73,6 @@ function Adjustments:StopPoint() if not IsPedInAnyVehicle(ESX.PlayerData.ped, false) then SetPedCurrentWeaponVisible(ESX.PlayerData.ped, true, true, true, true) end - SetPedConfigFlag(ESX.PlayerData.ped, 36, false) end function Adjustments:Point() @@ -87,7 +86,6 @@ function Adjustments:Point() if self.isPointing then ESX.RequestAnimDict("anim@mp_point") SetPedCurrentWeaponVisible(ESX.PlayerData.ped, false, true, true, true) - SetPedConfigFlag(ESX.PlayerData.ped, 36, true) TaskMoveNetworkByName(ESX.PlayerData.ped, 'task_mp_pointing', 0.5, false, 'anim@mp_point', 24) RemoveAnimDict("anim@mp_point") From 732d6f6838b376daf3dfb00ef04aa9f6692b3392 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 22:04:58 +0000 Subject: [PATCH 10/12] fix(es_extended/client/adjustments): make sure to call point function --- [core]/es_extended/client/modules/adjustments.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 317c97470..c976a77e7 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -351,4 +351,5 @@ function Adjustments:Load() self:DiscordPresence() self:WantedLevel() self:DisableRadio() + self:Point() end From 7c3492e15a877b152da272fe19eba62467604bda Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 22:06:33 +0000 Subject: [PATCH 11/12] tweak(es_extended/client/adjustments): use ESX cache for vehicle --- [core]/es_extended/client/modules/adjustments.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index c976a77e7..b3d7a5d09 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -70,7 +70,7 @@ end function Adjustments:StopPoint() RequestTaskMoveNetworkStateTransition(ESX.PlayerData.ped, 'Stop') ClearPedSecondaryTask(ESX.PlayerData.ped) - if not IsPedInAnyVehicle(ESX.PlayerData.ped, false) then + if not ESX.PlayerData.vehicle then SetPedCurrentWeaponVisible(ESX.PlayerData.ped, true, true, true, true) end end From 3541c62d5ad10820e93f398cba5fdf00b961cd40 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 22:07:48 +0000 Subject: [PATCH 12/12] feat(es_extended/client/adjustments): add translation --- [core]/es_extended/client/modules/adjustments.lua | 2 +- [core]/es_extended/locales/en.lua | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index b3d7a5d09..5f3cf303a 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -81,7 +81,7 @@ function Adjustments:Point() end self.isPointing = false - ESX.RegisterInput("esx:pointing", "Point", "keyboard", "b", function() + ESX.RegisterInput("esx:pointing", Translate("pointing"), "keyboard", "b", function() self.isPointing = not self.isPointing if self.isPointing then ESX.RequestAnimDict("anim@mp_point") diff --git a/[core]/es_extended/locales/en.lua b/[core]/es_extended/locales/en.lua index 44d622930..80dd52e65 100644 --- a/[core]/es_extended/locales/en.lua +++ b/[core]/es_extended/locales/en.lua @@ -413,4 +413,6 @@ Locales["en"] = { ["tint_metallic_blue"] = "metallic blue", ["tint_metallic_white_aqua"] = "metallic white-aqua", ["tint_metallic_red_yellow"] = "metallic red-yellow", + + ["pointing"] = "Pointing" }