Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local rob = false
- local robbers = {}
- ESX = nil
- TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
- function get3DDistance(x1, y1, z1, x2, y2, z2)
- return math.sqrt(math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2) + math.pow(z1 - z2, 2))
- end
- RegisterServerEvent('esx_holdupatm:toofar')
- AddEventHandler('esx_holdupatm:toofar', function(robb)
- local source = source
- local xPlayers = ESX.GetPlayers()
- rob = false
- for i=1, #xPlayers, 1 do
- local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
- if xPlayer.job.name == 'police' then
- TriggerClientEvent('esx:showNotification', xPlayers[i], _U('robbery_cancelled_at') .. Banks[robb].nameofbank)
- TriggerClientEvent('esx_holdupatm:killblip', xPlayers[i])
- end
- end
- if(robbers[source])then
- TriggerClientEvent('esx_holdupatm:toofarlocal', source)
- robbers[source] = nil
- TriggerClientEvent('esx:showNotification', source, _U('robbery_has_cancelled') .. Banks[robb].nameofbank)
- end
- end)
- RegisterServerEvent('esx_holdupatm:rob')
- AddEventHandler('esx_holdupatm:rob', function(robb)
- local source = source
- local xPlayer = ESX.GetPlayerFromId(source)
- local skruvmejsel = xPlayer.getInventoryItem('skruvmejsel')
- local xPlayers = ESX.GetPlayers()
- if Banks[robb] then
- local bank = Banks[robb]
- if (os.time() - bank.lastrobbed) < 43200 and bank.lastrobbed ~= 0 then
- TriggerClientEvent('esx:showNotification', source, _U('already_robbed') .. (2 - (os.time() - bank.lastrobbed)) .. _U('seconds'))
- return
- end
- local cops = 0
- for i=1, #xPlayers, 1 do
- local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
- if xPlayer.job.name == 'police' then
- cops = cops + 1
- end
- end
- if rob == false then
- if xPlayer.getInventoryItem('skruvmejsel').count >= 1 then
- xPlayer.removeInventoryItem('skruvmejsel', 1)
- if(cops >= Config.NumberOfCopsRequired)then
- rob = true
- for i=1, #xPlayers, 1 do
- local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
- if xPlayer.job.name == 'police' then
- TriggerClientEvent('esx:showNotification', xPlayers[i], _U('rob_in_prog') .. bank.nameofbank)
- TriggerClientEvent('esx_holdupatm:setblip', xPlayers[i], Banks[robb].position)
- end
- end
- TriggerClientEvent('esx:showNotification', source, _U('started_to_rob') .. bank.nameofbank .. _U('do_not_move'))
- TriggerClientEvent('esx:showNotification', source, _U('alarm_triggered'))
- TriggerClientEvent('esx:showNotification', source, _U('hold_pos'))
- TriggerClientEvent('esx_skruvmejsel:startDrill', source)
- TriggerClientEvent('esx_holdupatm:currentlyrobbing', source, robb)
- Banks[robb].lastrobbed = os.time()
- robbers[source] = robb
- local savedSource = source
- SetTimeout(600000, function()
- if(robbers[savedSource])then
- rob = false
- TriggerClientEvent('esx_holdupatm:robberycomplete', savedSource, job)
- if(xPlayer)then
- xPlayer.addAccountMoney('black_money', bank.reward)
- local xPlayers = ESX.GetPlayers()
- for i=1, #xPlayers, 1 do
- local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
- if xPlayer.job.name == 'police' then
- TriggerClientEvent('esx:showNotification', xPlayers[i], _U('robbery_complete_at') .. bank.nameofbank)
- TriggerClientEvent('esx_holdupatm:killblip', xPlayers[i])
- end
- end
- end
- end
- end)
- else
- TriggerClientEvent('esx:showNotification', source, _U('min_two_police') .. Config.NumberOfCopsRequired)
- end
- end
- else
- TriggerClientEvent('esx:showNotification', source, _U('robbery_already'))
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement