From 7329ac43bd77985e354640381bbc64c4d8b928f5 Mon Sep 17 00:00:00 2001 From: Mycroft Date: Thu, 24 Mar 2022 20:49:52 +0000 Subject: [PATCH] Tweak: MechanicJob - Optimisations --- [esx_addons]/esx_mechanicjob/client/main.lua | 28 +++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/[esx_addons]/esx_mechanicjob/client/main.lua b/[esx_addons]/esx_mechanicjob/client/main.lua index 36dfe516..612c5e31 100644 --- a/[esx_addons]/esx_mechanicjob/client/main.lua +++ b/[esx_addons]/esx_mechanicjob/client/main.lua @@ -771,9 +771,10 @@ end) -- Pop NPC mission vehicle when inside area CreateThread(function() while true do - Wait(0) + local Sleep = 1500 if NPCTargetTowableZone and not NPCHasSpawnedTowable then + Sleep = 0 local coords = GetEntityCoords(PlayerPedId()) local zone = Config.Zones[NPCTargetTowableZone] @@ -789,14 +790,17 @@ CreateThread(function() end if NPCTargetTowableZone and NPCHasSpawnedTowable and not NPCHasBeenNextToTowable then + Sleep = 500 local coords = GetEntityCoords(PlayerPedId()) local zone = Config.Zones[NPCTargetTowableZone] if #(coords - zone.Pos) < Config.NPCNextToDistance then + Sleep = 0 ESX.ShowNotification(_U('please_tow')) NPCHasBeenNextToTowable = true end end + Wait(Sleep) end end) @@ -818,31 +822,28 @@ end) -- Display markers CreateThread(function() while true do - Wait(0) + local Sleep = 2000 if ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic' then + Sleep = 500 local coords, letSleep = GetEntityCoords(PlayerPedId()), true for k,v in pairs(Config.Zones) do if v.Type ~= -1 and #(coords - v.Pos) < Config.DrawDistance then + Sleep = 0 DrawMarker(v.Type, v.Pos.x, v.Pos.y, v.Pos.z, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, v.Size.x, v.Size.y, v.Size.z, v.Color.r, v.Color.g, v.Color.b, 100, false, true, 2, false, nil, nil, false) letSleep = false end end - - if letSleep then - Wait(500) - end - else - Wait(500) end + Wait(Sleep) end end) -- Enter / Exit marker events CreateThread(function() while true do - Wait(0) + local Sleep = 500 if ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic' then @@ -852,6 +853,7 @@ CreateThread(function() for k,v in pairs(Config.Zones) do if(#(coords - v.Pos) < v.Size.x) then + Sleep = 0 isInMarker = true currentZone = k end @@ -867,8 +869,8 @@ CreateThread(function() HasAlreadyEnteredMarker = false TriggerEvent('esx_mechanicjob:hasExitedMarker', LastZone) end - end + Wait(Sleep) end end) @@ -917,10 +919,8 @@ end) -- Key Controls CreateThread(function() - while true do + while CurrentAction do Wait(0) - - if CurrentAction then ESX.ShowHelpNotification(CurrentActionMsg) if IsControlJustReleased(0, 38) and ESX.PlayerData.job and ESX.PlayerData.job.name == 'mechanic' then @@ -983,8 +983,6 @@ CreateThread(function() end end end - - end end) AddEventHandler('esx:onPlayerDeath', function(data) isDead = true end)