Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. local rob = false
  2. local robbers = {}
  3. local lastRobbed = 0
  4. ESX = nil
  5.  
  6. TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  7.  
  8. RegisterServerEvent('esx_holdup:tooFar')
  9. AddEventHandler('esx_holdup:tooFar', function(currentStore)
  10. local _source = source
  11. local xPlayers = ESX.GetPlayers()
  12. rob = false
  13.  
  14. for i=1, #xPlayers, 1 do
  15. local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
  16.  
  17. if xPlayer.job.name == 'police' then
  18. TriggerClientEvent('esx:showNotification', xPlayers[i], _U('robbery_cancelled_at', Stores[currentStore].nameOfStore))
  19. TriggerClientEvent('esx_holdup:killBlip', xPlayers[i])
  20. end
  21. end
  22.  
  23. if robbers[_source] then
  24. TriggerClientEvent('esx_holdup:tooFar', _source)
  25. robbers[_source] = nil
  26. TriggerClientEvent('esx:showNotification', _source, _U('robbery_cancelled_at', Stores[currentStore].nameOfStore))
  27. end
  28. end)
  29.  
  30. RegisterServerEvent('esx_holdup:robberyStarted')
  31. AddEventHandler('esx_holdup:robberyStarted', function(currentStore)
  32. local _source = source
  33. local xPlayer = ESX.GetPlayerFromId(_source)
  34. local xPlayers = ESX.GetPlayers()
  35.  
  36. if Stores[currentStore] then
  37. local store = Stores[currentStore]
  38.  
  39. if lastRobbed > os.time() then
  40. TriggerClientEvent('esx:showNotification', _source, _U('recently_robbed', (os.time() - lastRobbed) ))
  41. return
  42. end
  43.  
  44. local cops = 0
  45. for i=1, #xPlayers, 1 do
  46. local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
  47. if xPlayer.job.name == 'police' then
  48. cops = cops + 1
  49. end
  50. end
  51.  
  52. if not rob then
  53. if cops >= Config.PoliceNumberRequired then
  54. rob = true
  55.  
  56. for i=1, #xPlayers, 1 do
  57. local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
  58. if xPlayer.job.name == 'police' then
  59. TriggerClientEvent('esx:showNotification', xPlayers[i], _U('rob_in_prog', store.nameOfStore))
  60. TriggerClientEvent('esx_holdup:setBlip', xPlayers[i], Stores[currentStore].position)
  61. end
  62. end
  63.  
  64. TriggerClientEvent('esx:showNotification', _source, _U('started_to_rob', store.nameOfStore))
  65. TriggerClientEvent('esx:showNotification', _source, _U('alarm_triggered'))
  66.  
  67. TriggerClientEvent('esx_holdup:currentlyRobbing', _source, currentStore)
  68. TriggerClientEvent('esx_holdup:startTimer', _source)
  69.  
  70. lastRobbed = os.time() + Config.TimerBeforeNewRob
  71. robbers[_source] = currentStore
  72.  
  73. SetTimeout(store.secondsRemaining * 1000, function()
  74. if robbers[_source] then
  75. rob = false
  76. if xPlayer then
  77. TriggerClientEvent('esx_holdup:robberyComplete', _source, store.reward)
  78.  
  79. if Config.GiveBlackMoney then
  80. xPlayer.addAccountMoney('black_money', store.reward)
  81. else
  82. xPlayer.addMoney(store.reward)
  83. end
  84.  
  85. local xPlayers, xPlayer = ESX.GetPlayers(), nil
  86. for i=1, #xPlayers, 1 do
  87. xPlayer = ESX.GetPlayerFromId(xPlayers[i])
  88.  
  89. if xPlayer.job.name == 'police' then
  90. TriggerClientEvent('esx:showNotification', xPlayers[i], _U('robbery_complete_at', store.nameOfStore))
  91. TriggerClientEvent('esx_holdup:killBlip', xPlayers[i])
  92. end
  93. end
  94. end
  95. end
  96. end)
  97. else
  98. TriggerClientEvent('esx:showNotification', _source, _U('min_police', Config.PoliceNumberRequired))
  99. end
  100. else
  101. TriggerClientEvent('esx:showNotification', _source, _U('robbery_already'))
  102. end
  103. end
  104. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement