Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.23 KB | None | 0 0
  1. local Tunnel = module("vrp", "lib/Tunnel")
  2. local Proxy = module("vrp", "lib/Proxy")
  3. local stores = {}
  4. -- local is_robbed = 0
  5. vRP = Proxy.getInterface("vRP")
  6. vRPclient = Tunnel.getInterface("vRP","vRP_holdup")
  7. -- ADD COMMENT
  8. function init_store()
  9. math.randomseed(GetGameTimer())
  10. stores = {
  11. --[[ ["bank_nwest"] = {
  12. position = { ['x'] = -106.43922424316, ['y'] = 6475.2163085938, ['z'] = 31.626707077026 },
  13. reward = 1000000 + math.random(350000,5000000),
  14. nameofstore = "Banque Nord Ouest",
  15. neededTime = 900,
  16. lastrobbed = 0
  17. }, --]]
  18.  
  19. -- Braquage banque centrale
  20. ["general_bank"] = {
  21. position = { ['x'] = 265.54, ['y'] = 213.56, ['z'] = 101.68 },
  22. reward = 2000000 + math.random(1000000,10000000),
  23. nameofstore = "Banque de Los Santos",
  24. neededTime = 900,
  25. lastrobbed = 0,
  26. citymoney = 1,
  27. wanted = 5,
  28. nextrob = 86400,
  29. coopsneed = 5,
  30. supermarket = 1,
  31. },
  32.  
  33. -- Braquage Diamantaire
  34. ["rockford_jewlery"] = {
  35. position = { ['x'] = -631.44, ['y'] = -229.42, ['z'] = 38.05 },
  36. reward = 800000 + math.random(80000,400000),
  37. nameofstore = "Bijouterie",
  38. neededTime = 600,
  39. lastrobbed = 0,
  40. wanted = 5,
  41. nextrob = 14400,
  42. coopsneed = 5,
  43. supermarket = 1,
  44. },
  45.  
  46. -- Banque Autoroute ouest
  47. ["great_ocean_bank"] = {
  48. position = { ['x'] = -2957.4, ['y'] = -481.73, ['z'] = 15.69 },
  49. reward = 100000 + math.random(50000,200000),
  50. nameofstore = "Great Ocean Bank",
  51. neededTime = 240,
  52. lastrobbed = 0,
  53. wanted = 5,
  54. nextrob = 7200,
  55. coopsneed = 5,
  56. supermarket = 1,
  57. },
  58.  
  59. -- Braquage "supérettes" hors ville
  60.  
  61. ["ineseno_road"] = {
  62. position = { ['x'] = -3047.5, ['y'] = 585.76, ['z'] = 7.9},
  63. reward = 5000 + math.random(10000,25000),
  64. nameofstore = "Ineseno Road supérette",
  65. neededTime = 75,
  66. lastrobbed = 0,
  67. wanted = 5,
  68. nextrob = 3600,
  69. coopsneed = 3,
  70. },
  71.  
  72. ["palomino_freeway"] = {
  73. position = { ['x'] = 2550.14, ['y'] = 387.44, ['z'] = 108.62},
  74. reward = 5000 + math.random(10000,25000),
  75. nameofstore = "Palomino Freeway supérette",
  76. neededTime = 75,
  77. lastrobbed = 0,
  78. wanted = 5,
  79. nextrob = 3600,
  80. coopsneed = 3,
  81. },
  82.  
  83.  
  84.  
  85. ["banham_canyon"] = {
  86. position = { ['x'] = -1828.97, ['y'] = 798.94, ['z'] = 138.18},
  87. reward = 5000 + math.random(10000,25000),
  88. nameofstore = "Banham Canyon supérette",
  89. neededTime = 75,
  90. lastrobbed = 0,
  91. wanted = 5,
  92. nextrob = 3600,
  93. coopsneed = 3,
  94. },
  95.  
  96. -- Braquage "supérettes" en ville
  97.  
  98. ["supermarket"] = {
  99. position = { ['x'] = 379.62585449218, ['y'] = 332.06158447266, ['z'] = 103.56636810302 },
  100. reward = 2500 + math.random(5000,10000),
  101. nameofstore = "247 Supermarket Adil",
  102. neededTime = 30,
  103. lastrobbed = 0,
  104. wanted = 5,
  105. nextrob = 1800,
  106. coopsneed = 3,
  107. },
  108.  
  109. ["limited"] = {
  110. position = { ['x'] = -708.24768066406, ['y'] = -904.6040649414, ['z'] = 19.21561050415 },
  111. reward = 2500 + math.random(5000,10000),
  112. nameofstore = "Limited LTD Gaz",
  113. neededTime = 30,
  114. lastrobbed = 0,
  115. wanted = 5,
  116. nextrob = 1800,
  117. coopsneed = 3,
  118. },
  119.  
  120. ["prosperity_street"] = {
  121. position = { ['x'] = -1478.95, ['y'] = -374.57, ['z'] = 39.16 },
  122. reward = 2500 + math.random(5000,10000),
  123. nameofstore = "Prosperity Street",
  124. neededTime = 30,
  125. lastrobbed = 0,
  126. wanted = 5,
  127. nextrob = 1800,
  128. coopsneed = 3,
  129. },
  130.  
  131. ["market"] = {
  132. position = { ['x'] = -42.359592437744, ['y'] = -1749.0295410156, ['z'] = 29.421018600464 },
  133. reward = 2500 + math.random(5000,10000),
  134. nameofstore = "247 Supermarket",
  135. neededTime = 30,
  136. lastrobbed = 0,
  137. wanted = 5,
  138. nextrob = 1800,
  139. coopsneed = 3,
  140. },
  141.  
  142. ["mirror_park"] = {
  143. position = { ['x'] = 1160.81, ['y'] = -314.0, ['z'] = 69.2},
  144. reward = 2500 + math.random(5000,10000),
  145. nameofstore = "Mirror Park Boulevard",
  146. neededTime = 30,
  147. lastrobbed = 0,
  148. wanted = 5,
  149. nextrob = 1800,
  150. coopsneed = 3,
  151. },
  152.  
  153. }
  154.  
  155. end
  156. local robbers = {}
  157.  
  158. function get3DDistance(x1, y1, z1, x2, y2, z2)
  159. return math.sqrt(math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2) + math.pow(z1 - z2, 2))
  160. end
  161.  
  162. RegisterServerEvent('es_holdup:toofar')
  163. AddEventHandler('es_holdup:toofar', function(robb)
  164. local _source = source
  165. local _robb = robb
  166. local cops = vRP.getUsersByGroup({"Police"})
  167.  
  168. if(robbers[_source])then
  169. TriggerClientEvent('es_holdup:toofarlocal', _source)
  170. robbers[_source] = nil
  171. for k,v in pairs(cops) do
  172. local receiver = vRP.getUserSource({v})
  173. TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol a été annulé à :^2" .. stores[_robb].nameofstore)
  174. end
  175. end
  176. end)
  177.  
  178. RegisterServerEvent('es_holdup:playerdied')
  179. AddEventHandler('es_holdup:playerdied', function(robb)
  180. local _source = source
  181. local _robb = robb
  182. local cops = vRP.getUsersByGroup({"Police"})
  183.  
  184. if(robbers[_source])then
  185. TriggerClientEvent('es_holdup:playerdiedlocal', _source)
  186. robbers[_source] = nil
  187. for k,v in pairs(cops) do
  188. local receiver = vRP.getUserSource({v})
  189. TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol a été annulé à :^2" .. stores[_robb].nameofstore)
  190. end
  191. end
  192. end)
  193.  
  194.  
  195. RegisterServerEvent('es_holdup:robberydone')
  196. AddEventHandler('es_holdup:robberydone', function(robb)
  197. local savedSource = source
  198. local store = stores[robb]
  199. local user_id = vRP.getUserId({savedSource})
  200. local cops = vRP.getUsersByGroup({"Police"})
  201.  
  202. if(robbers[savedSource])then
  203. if(user_id)then
  204. if store.citymoney == nil then
  205. if store.supermarket == nil then
  206. local reward1 = math.floor(store.reward)
  207. vRP.giveInventoryItem({user_id,"money",reward1,true})
  208. vRPclient.notify(source,{"~r~Vous avez recu "..store.reward.." $ !!"})
  209.  
  210. else
  211. local reward = math.floor(store.reward)
  212. vRP.giveInventoryItem({user_id,"dirty_money",reward,true})
  213. vRPclient.notify(source,{"~r~Vous avez recu "..store.reward.." $ !!"})
  214. for k,v in pairs(cops) do
  215. local receiver = vRP.getUserSource({v})
  216. TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol est terminé à : ^2" .. store.nameofstore .. "^0!")
  217. end
  218. TriggerClientEvent('es_holdup:robberycomplete', savedSource, store.reward)
  219. robbers[savedSource] = nil
  220. end
  221. else -- HO SHIT, ITS WHERE THE CITY MONEY IS !!! SO BAAAAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
  222. local pre_reward = (vRP.GetCityMoney({})*0.8)
  223. local reward = math.floor(pre_reward)
  224. local bank_reward = math.floor(reward)
  225. vRP.giveInventoryItem({user_id,"dirty_money",bank_reward,true})
  226. vRPclient.notify(source,{"~r~Vous avez recu "..reward.." $ !!"})
  227. for k,v in pairs(cops) do
  228. local receiver = vRP.getUserSource({v})
  229. TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol est terminé à : ^2" .. store.nameofstore .. "^0!")
  230. end
  231. TriggerClientEvent('es_holdup:robberycomplete', savedSource, reward)
  232. robbers[savedSource] = nil
  233. -- add here deleted money
  234. vRP.updateCityMoney({-reward})
  235. end
  236. end
  237. end
  238.  
  239. end)
  240.  
  241. local function storeIsCurrentlyRobbed(source,store)
  242. local currentlyRob = false
  243. local user_id = vRP.getUserId({_source})
  244. local cops = vRP.getUsersByGroup({"Police"})
  245.  
  246. -- we need to look through robbers if there isn't another one robber which currently rob the same store !!
  247. for k,v in pairs(robbers)do
  248. if v then
  249. vRPclient.notify(source,{"~r~Un braquage est déjà en cours !!"})
  250. currentlyRob = true
  251. break
  252. end
  253. end
  254.  
  255. return currentlyRob
  256. end
  257.  
  258. RegisterServerEvent('es_holdup:rob')
  259. AddEventHandler('es_holdup:rob', function(robb)
  260. local _source = source
  261. local _robb = robb
  262. local user_id = vRP.getUserId({_source})
  263. local cops = vRP.getUsersByGroup({"Police"})
  264. -- local fbi = vRP.getUsersByGroup({"Fbi"})
  265. -- local sheriff = vRP.getUsersByGroup({"Sheriff"})
  266. if vRP.hasGroup({user_id,"Police"}) then
  267. vRPclient.notify(_source,{"~r~T'es con ? tu es flic !"})
  268. else
  269. if (#cops) >= stores[_robb].coopsneed then -- change 3 to the minimum amount online necessary
  270. if stores[_robb] and not storeIsCurrentlyRobbed(_source,_robb) then
  271. local store = stores[_robb]
  272.  
  273. if (os.time() - store.lastrobbed) < store.nextrob and store.lastrobbed ~= 0 then
  274. TriggerClientEvent('chatMessage', _source, 'BRAQUAGE', {255, 0, 0}, "Déjà été braqué récemment. Veuillez attendre : ^2" .. ((store.nextrob - (os.time() - store.lastrobbed))/60) .. "^0 minutes.")
  275. return
  276. end
  277.  
  278. for k,v in pairs(cops) do
  279. local receiver = vRP.getUserSource({v})
  280. TriggerClientEvent('chatMessage', receiver, 'ALARM', {255, 0, 0}, "Braquage en cours à ^2" .. store.nameofstore)
  281. end
  282.  
  283. TriggerClientEvent('chatMessage', _source, 'SYSTEM', {255, 0, 0}, "Vous braquez : ^2" .. store.nameofstore .. "^0, ne partez par trop loin du point")
  284. TriggerClientEvent('chatMessage', _source, 'SYSTEM', {255, 0, 0}, "Attendez ^1"..math.floor(store.neededTime/60).."^0 minutes ici et l'argent est à vous !")
  285. TriggerClientEvent('es_holdup:currentlyrobbing', _source, _robb, store.neededTime)
  286. stores[_robb].lastrobbed = os.time()
  287. robbers[_source] = _robb
  288. end
  289. else
  290. vRPclient.notify(_source,{"~r~Pas assez de Policier en service..."})
  291. end
  292. end
  293. end)
  294.  
  295. -- At each spawn player we sent him stora positions and name
  296. AddEventHandler('vRP:playerSpawn',function(user_id, source, first_spawn)
  297. init_store()
  298. local player_userid = user_id
  299. local _source = source
  300. local client_stores = {}
  301.  
  302. if user_id then
  303. for k,v in pairs(stores)do
  304. client_stores[k] = {position=v.position,nameofstore=v.nameofstore,wanted=v.wanted,needTime=v.needTime}
  305. end
  306.  
  307. TriggerClientEvent("es_holdup:initstores", _source, client_stores)
  308. end
  309. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement