Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Tunnel = module("vrp", "lib/Tunnel")
- local Proxy = module("vrp", "lib/Proxy")
- local stores = {}
- -- local is_robbed = 0
- vRP = Proxy.getInterface("vRP")
- vRPclient = Tunnel.getInterface("vRP","vRP_holdup")
- -- ADD COMMENT
- function init_store()
- math.randomseed(GetGameTimer())
- stores = {
- --[[ ["bank_nwest"] = {
- position = { ['x'] = -106.43922424316, ['y'] = 6475.2163085938, ['z'] = 31.626707077026 },
- reward = 1000000 + math.random(350000,5000000),
- nameofstore = "Banque Nord Ouest",
- neededTime = 900,
- lastrobbed = 0
- }, --]]
- -- Braquage banque centrale
- ["general_bank"] = {
- position = { ['x'] = 265.54, ['y'] = 213.56, ['z'] = 101.68 },
- reward = 2000000 + math.random(1000000,10000000),
- nameofstore = "Banque de Los Santos",
- neededTime = 900,
- lastrobbed = 0,
- citymoney = 1,
- wanted = 5,
- nextrob = 86400,
- coopsneed = 5,
- supermarket = 1,
- },
- -- Braquage Diamantaire
- ["rockford_jewlery"] = {
- position = { ['x'] = -631.44, ['y'] = -229.42, ['z'] = 38.05 },
- reward = 800000 + math.random(80000,400000),
- nameofstore = "Bijouterie",
- neededTime = 600,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 14400,
- coopsneed = 5,
- supermarket = 1,
- },
- -- Banque Autoroute ouest
- ["great_ocean_bank"] = {
- position = { ['x'] = -2957.4, ['y'] = -481.73, ['z'] = 15.69 },
- reward = 100000 + math.random(50000,200000),
- nameofstore = "Great Ocean Bank",
- neededTime = 240,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 7200,
- coopsneed = 5,
- supermarket = 1,
- },
- -- Braquage "supérettes" hors ville
- ["ineseno_road"] = {
- position = { ['x'] = -3047.5, ['y'] = 585.76, ['z'] = 7.9},
- reward = 5000 + math.random(10000,25000),
- nameofstore = "Ineseno Road supérette",
- neededTime = 75,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 3600,
- coopsneed = 3,
- },
- ["palomino_freeway"] = {
- position = { ['x'] = 2550.14, ['y'] = 387.44, ['z'] = 108.62},
- reward = 5000 + math.random(10000,25000),
- nameofstore = "Palomino Freeway supérette",
- neededTime = 75,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 3600,
- coopsneed = 3,
- },
- ["banham_canyon"] = {
- position = { ['x'] = -1828.97, ['y'] = 798.94, ['z'] = 138.18},
- reward = 5000 + math.random(10000,25000),
- nameofstore = "Banham Canyon supérette",
- neededTime = 75,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 3600,
- coopsneed = 3,
- },
- -- Braquage "supérettes" en ville
- ["supermarket"] = {
- position = { ['x'] = 379.62585449218, ['y'] = 332.06158447266, ['z'] = 103.56636810302 },
- reward = 2500 + math.random(5000,10000),
- nameofstore = "247 Supermarket Adil",
- neededTime = 30,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 1800,
- coopsneed = 3,
- },
- ["limited"] = {
- position = { ['x'] = -708.24768066406, ['y'] = -904.6040649414, ['z'] = 19.21561050415 },
- reward = 2500 + math.random(5000,10000),
- nameofstore = "Limited LTD Gaz",
- neededTime = 30,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 1800,
- coopsneed = 3,
- },
- ["prosperity_street"] = {
- position = { ['x'] = -1478.95, ['y'] = -374.57, ['z'] = 39.16 },
- reward = 2500 + math.random(5000,10000),
- nameofstore = "Prosperity Street",
- neededTime = 30,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 1800,
- coopsneed = 3,
- },
- ["market"] = {
- position = { ['x'] = -42.359592437744, ['y'] = -1749.0295410156, ['z'] = 29.421018600464 },
- reward = 2500 + math.random(5000,10000),
- nameofstore = "247 Supermarket",
- neededTime = 30,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 1800,
- coopsneed = 3,
- },
- ["mirror_park"] = {
- position = { ['x'] = 1160.81, ['y'] = -314.0, ['z'] = 69.2},
- reward = 2500 + math.random(5000,10000),
- nameofstore = "Mirror Park Boulevard",
- neededTime = 30,
- lastrobbed = 0,
- wanted = 5,
- nextrob = 1800,
- coopsneed = 3,
- },
- }
- end
- local robbers = {}
- 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('es_holdup:toofar')
- AddEventHandler('es_holdup:toofar', function(robb)
- local _source = source
- local _robb = robb
- local cops = vRP.getUsersByGroup({"Police"})
- if(robbers[_source])then
- TriggerClientEvent('es_holdup:toofarlocal', _source)
- robbers[_source] = nil
- for k,v in pairs(cops) do
- local receiver = vRP.getUserSource({v})
- TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol a été annulé à :^2" .. stores[_robb].nameofstore)
- end
- end
- end)
- RegisterServerEvent('es_holdup:playerdied')
- AddEventHandler('es_holdup:playerdied', function(robb)
- local _source = source
- local _robb = robb
- local cops = vRP.getUsersByGroup({"Police"})
- if(robbers[_source])then
- TriggerClientEvent('es_holdup:playerdiedlocal', _source)
- robbers[_source] = nil
- for k,v in pairs(cops) do
- local receiver = vRP.getUserSource({v})
- TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol a été annulé à :^2" .. stores[_robb].nameofstore)
- end
- end
- end)
- RegisterServerEvent('es_holdup:robberydone')
- AddEventHandler('es_holdup:robberydone', function(robb)
- local savedSource = source
- local store = stores[robb]
- local user_id = vRP.getUserId({savedSource})
- local cops = vRP.getUsersByGroup({"Police"})
- if(robbers[savedSource])then
- if(user_id)then
- if store.citymoney == nil then
- if store.supermarket == nil then
- local reward1 = math.floor(store.reward)
- vRP.giveInventoryItem({user_id,"money",reward1,true})
- vRPclient.notify(source,{"~r~Vous avez recu "..store.reward.." $ !!"})
- else
- local reward = math.floor(store.reward)
- vRP.giveInventoryItem({user_id,"dirty_money",reward,true})
- vRPclient.notify(source,{"~r~Vous avez recu "..store.reward.." $ !!"})
- for k,v in pairs(cops) do
- local receiver = vRP.getUserSource({v})
- TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol est terminé à : ^2" .. store.nameofstore .. "^0!")
- end
- TriggerClientEvent('es_holdup:robberycomplete', savedSource, store.reward)
- robbers[savedSource] = nil
- end
- else -- HO SHIT, ITS WHERE THE CITY MONEY IS !!! SO BAAAAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
- local pre_reward = (vRP.GetCityMoney({})*0.8)
- local reward = math.floor(pre_reward)
- local bank_reward = math.floor(reward)
- vRP.giveInventoryItem({user_id,"dirty_money",bank_reward,true})
- vRPclient.notify(source,{"~r~Vous avez recu "..reward.." $ !!"})
- for k,v in pairs(cops) do
- local receiver = vRP.getUserSource({v})
- TriggerClientEvent('chatMessage', receiver, 'NEWS', {255, 0, 0}, "Le vol est terminé à : ^2" .. store.nameofstore .. "^0!")
- end
- TriggerClientEvent('es_holdup:robberycomplete', savedSource, reward)
- robbers[savedSource] = nil
- -- add here deleted money
- vRP.updateCityMoney({-reward})
- end
- end
- end
- end)
- local function storeIsCurrentlyRobbed(source,store)
- local currentlyRob = false
- local user_id = vRP.getUserId({_source})
- local cops = vRP.getUsersByGroup({"Police"})
- -- we need to look through robbers if there isn't another one robber which currently rob the same store !!
- for k,v in pairs(robbers)do
- if v then
- vRPclient.notify(source,{"~r~Un braquage est déjà en cours !!"})
- currentlyRob = true
- break
- end
- end
- return currentlyRob
- end
- RegisterServerEvent('es_holdup:rob')
- AddEventHandler('es_holdup:rob', function(robb)
- local _source = source
- local _robb = robb
- local user_id = vRP.getUserId({_source})
- local cops = vRP.getUsersByGroup({"Police"})
- -- local fbi = vRP.getUsersByGroup({"Fbi"})
- -- local sheriff = vRP.getUsersByGroup({"Sheriff"})
- if vRP.hasGroup({user_id,"Police"}) then
- vRPclient.notify(_source,{"~r~T'es con ? tu es flic !"})
- else
- if (#cops) >= stores[_robb].coopsneed then -- change 3 to the minimum amount online necessary
- if stores[_robb] and not storeIsCurrentlyRobbed(_source,_robb) then
- local store = stores[_robb]
- if (os.time() - store.lastrobbed) < store.nextrob and store.lastrobbed ~= 0 then
- 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.")
- return
- end
- for k,v in pairs(cops) do
- local receiver = vRP.getUserSource({v})
- TriggerClientEvent('chatMessage', receiver, 'ALARM', {255, 0, 0}, "Braquage en cours à ^2" .. store.nameofstore)
- end
- TriggerClientEvent('chatMessage', _source, 'SYSTEM', {255, 0, 0}, "Vous braquez : ^2" .. store.nameofstore .. "^0, ne partez par trop loin du point")
- TriggerClientEvent('chatMessage', _source, 'SYSTEM', {255, 0, 0}, "Attendez ^1"..math.floor(store.neededTime/60).."^0 minutes ici et l'argent est à vous !")
- TriggerClientEvent('es_holdup:currentlyrobbing', _source, _robb, store.neededTime)
- stores[_robb].lastrobbed = os.time()
- robbers[_source] = _robb
- end
- else
- vRPclient.notify(_source,{"~r~Pas assez de Policier en service..."})
- end
- end
- end)
- -- At each spawn player we sent him stora positions and name
- AddEventHandler('vRP:playerSpawn',function(user_id, source, first_spawn)
- init_store()
- local player_userid = user_id
- local _source = source
- local client_stores = {}
- if user_id then
- for k,v in pairs(stores)do
- client_stores[k] = {position=v.position,nameofstore=v.nameofstore,wanted=v.wanted,needTime=v.needTime}
- end
- TriggerClientEvent("es_holdup:initstores", _source, client_stores)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement