From 4783097c6910c292520e1fe64d02b9ebf1b37417 Mon Sep 17 00:00:00 2001 From: Thuan Truong <21116370+newt74@users.noreply.github.com> Date: Tue, 6 Jul 2021 22:07:01 +0700 Subject: [PATCH] Update main.lua --- [esx_addons]/esx_holdup/server/main.lua | 47 +++++++++---------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/[esx_addons]/esx_holdup/server/main.lua b/[esx_addons]/esx_holdup/server/main.lua index a3ff34e1..595a3427 100644 --- a/[esx_addons]/esx_holdup/server/main.lua +++ b/[esx_addons]/esx_holdup/server/main.lua @@ -9,10 +9,10 @@ AddEventHandler('esx_holdup:tooFar', function(currentStore) TriggerClientEvent('esx:showNotification', xPlayer.source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore)) TriggerClientEvent('esx_holdup:killBlip', xPlayer.source) end - if robbers[_source] then TriggerClientEvent('esx_holdup:tooFar', _source) - robbers[_source] = nil + ESX.ClearTimeout(robbers[_source]) + robbers[_source] = nil TriggerClientEvent('esx:showNotification', _source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore)) end end) @@ -21,53 +21,40 @@ RegisterServerEvent('esx_holdup:robberyStarted') AddEventHandler('esx_holdup:robberyStarted', function(currentStore) local _source = source local xPlayer = ESX.GetPlayerFromId(_source) - if Stores[currentStore] then local store = Stores[currentStore] - if (os.time() - store.lastRobbed) < Config.TimerBeforeNewRob and store.lastRobbed ~= 0 then TriggerClientEvent('esx:showNotification', _source, _U('recently_robbed', Config.TimerBeforeNewRob - (os.time() - store.lastRobbed))) return end - if not rob then local xPlayers = ESX.GetExtendedPlayers('job', 'police') if #xPlayers >= Config.PoliceNumberRequired then rob = true - for _, xPlayer in pairs(xPlayers) do TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rob_in_prog', store.nameOfStore)) TriggerClientEvent('esx_holdup:setBlip', xPlayer.source, Stores[currentStore].position) end - TriggerClientEvent('esx:showNotification', _source, _U('started_to_rob', store.nameOfStore)) TriggerClientEvent('esx:showNotification', _source, _U('alarm_triggered')) - TriggerClientEvent('esx_holdup:currentlyRobbing', _source, currentStore) TriggerClientEvent('esx_holdup:startTimer', _source) - Stores[currentStore].lastRobbed = os.time() - robbers[_source] = currentStore - - SetTimeout(store.secondsRemaining * 1000, function() - if robbers[_source] then - rob = false - if xPlayer then - TriggerClientEvent('esx_holdup:robberyComplete', _source, store.reward) - - if Config.GiveBlackMoney then - xPlayer.addAccountMoney('black_money', store.reward) - else - xPlayer.addMoney(store.reward) - end - - local xPlayers = ESX.GetExtendedPlayers('job', 'police') - for _, xPlayer in pairs(xPlayers) do - TriggerClientEvent('esx:showNotification', xPlayer.source, _U('robbery_complete_at', store.nameOfStore)) - TriggerClientEvent('esx_holdup:killBlip', xPlayer.source) - end - end - end + robbers[_source] = ESX.SetTimeout(store.secondsRemaining * 1000, function() + rob = false + if xPlayer then + TriggerClientEvent('esx_holdup:robberyComplete', _source, store.reward) + if Config.GiveBlackMoney then + xPlayer.addAccountMoney('black_money', store.reward) + else + xPlayer.addMoney(store.reward) + end + local xPlayers = ESX.GetExtendedPlayers('job', 'police') + for _, xPlayer in pairs(xPlayers) do + TriggerClientEvent('esx:showNotification', xPlayer.source, _U('robbery_complete_at', store.nameOfStore)) + TriggerClientEvent('esx_holdup:killBlip', xPlayer.source) + end + end end) else TriggerClientEvent('esx:showNotification', _source, _U('min_police', Config.PoliceNumberRequired))