local Tunnel = module("vrp", "lib/Tunnel")
local Proxy = module("vrp", "lib/Proxy")
vRP = Proxy.getInterface("vRP")
vRPclient = Tunnel.getInterface("vRP","vRP_bank")
local banks = {
["fleeca"] = {
position = { ['x'] = 147.04908752441, ['y'] = -1044.9448242188, ['z'] = 29.36802482605 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank",
lastrobbed = 0
},
["fleeca2"] = {
position = { ['x'] = -2957.6674804688, ['y'] = 481.45776367188, ['z'] = 15.697026252747 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Highway)",
lastrobbed = 0
},
["blainecounty"] = {
position = { ['x'] = -107.06505584717, ['y'] = 6474.8012695313, ['z'] = 31.62670135498 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Blaine County Savings",
lastrobbed = 0
},
["fleeca3"] = {
position = { ['x'] = -1212.2568359375, ['y'] = -336.128295898438, ['z'] = 36.7907638549805 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Vinewood Hills)",
lastrobbed = 0
},
["fleeca4"] = {
position = { ['x'] = -354.452575683594, ['y'] = -53.8204879760742, ['z'] = 48.0463104248047 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Burton)",
lastrobbed = 0
},
["fleeca5"] = {
position = { ['x'] = 309.967376708984, ['y'] = -283.033660888672, ['z'] = 53.1745223999023 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Alta)",
lastrobbed = 0
},
["fleeca6"] = {
position = { ['x'] = 1176.86865234375, ['y'] = 2711.91357421875, ['z'] = 38.097785949707 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Desert)",
lastrobbed = 0
},
["pacific"] = {
position = { ['x'] = 255.001098632813, ['y'] = 225.855895996094, ['z'] = 101.005694274902 },
reward = 60000 + math.random(100000,200000),
nameofbank = "Pacific Standard PDB (Downtown Vinewood)",
lastrobbed = 0
}
}
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_bank:toofar')
AddEventHandler('es_bank:toofar', function(robb)
if(robbers[source])then
TriggerClientEvent('es_bank:toofarlocal', source)
robbers[source] = nil
TriggerClientEvent('chatMessage', -1, 'NEWS', {255, 0, 0}, "Robbery was cancelled at: ^2" .. banks[robb].nameofbank)
end
end)
RegisterServerEvent('es_bank:playerdied')
AddEventHandler('es_bank:playerdied', function(robb)
if(robbers[source])then
TriggerClientEvent('es_bank:playerdiedlocal', source)
robbers[source] = nil
TriggerClientEvent('chatMessage', -1, 'NEWS', {255, 0, 0}, "Robbery was cancelled at: ^2" .. banks[robb].nameofbank)
end
end)
RegisterServerEvent('es_bank:rob')
AddEventHandler('es_bank:rob', function(robb)
if banks[robb] then
local bank = banks[robb]
if (os.time() - bank.lastrobbed) < 600 and bank.lastrobbed ~= 0 then
TriggerClientEvent('chatMessage', source, 'ROBBERY', {255, 0, 0}, "This has already been robbed recently. Please wait another: ^2" .. (1200 - (os.time() - bank.lastrobbed)) .. "^0 seconds.")
return
end
TriggerClientEvent('chatMessage', -1, 'NEWS', {255, 0, 0}, "Robbery in progress at ^2" .. bank.nameofbank)
TriggerClientEvent('chatMessage', source, 'SYSTEM', {255, 0, 0}, "You started a robbery at: ^2" .. bank.nameofbank .. "^0, do not get too far away from this point!")
TriggerClientEvent('chatMessage', source, 'SYSTEM', {255, 0, 0}, "Hold the fort for ^15 ^0minutes, then escape, and the money is yours!")
TriggerClientEvent('es_bank:currentlyrobbing', source, robb)
banks[robb].lastrobbed = os.time()
robbers[source] = robb
local savedSource = source
SetTimeout(300000, function()
if(robbers[savedSource])then
local user_id = vRP.getUserId({savedSource})
if(user_id)then
vRP.giveInventoryItem({user_id,"dirty_money",bank.reward,true})
TriggerClientEvent('chatMessage', -1, 'NEWS', {255, 0, 0}, "Robbery is over at: ^2" .. bank.nameofbank .. "^0!")
TriggerClientEvent('es_bank:robberycomplete', savedSource, bank.reward)
end
end
end)
end
end)
local robbing = false
local bank = ""
local secondsRemaining = 0
function bank_DisplayHelpText(str)
SetTextComponentFormat("STRING")
AddTextComponentString(str)
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
end
function bank_drawTxt(x,y ,width,height,scale, text, r,g,b,a, outline)
SetTextFont(0)
SetTextProportional(0)
SetTextScale(scale, scale)
SetTextColour(r, g, b, a)
SetTextDropShadow(0, 0, 0, 0,255)
SetTextEdge(1, 0, 0, 0, 255)
SetTextDropShadow()
if(outline)then
SetTextOutline()
end
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x - width/2, y - height/2 + 0.005)
end
local banks = {
["fleeca"] = {
position = { ['x'] = 147.04908752441, ['y'] = -1044.9448242188, ['z'] = 29.36802482605 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank",
lastrobbed = 0
},
["fleeca2"] = {
position = { ['x'] = -2957.6674804688, ['y'] = 481.45776367188, ['z'] = 15.697026252747 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Highway)",
lastrobbed = 0
},
["blainecounty"] = {
position = { ['x'] = -107.06505584717, ['y'] = 6474.8012695313, ['z'] = 31.62670135498 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Blaine County Savings",
lastrobbed = 0
},
["fleeca3"] = {
position = { ['x'] = -1212.2568359375, ['y'] = -336.128295898438, ['z'] = 36.7907638549805 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Vinewood Hills)",
lastrobbed = 0
},
["fleeca4"] = {
position = { ['x'] = -354.452575683594, ['y'] = -53.8204879760742, ['z'] = 48.0463104248047 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Burton)",
lastrobbed = 0
},
["fleeca5"] = {
position = { ['x'] = 309.967376708984, ['y'] = -283.033660888672, ['z'] = 53.1745223999023 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Alta)",
lastrobbed = 0
},
["fleeca6"] = {
position = { ['x'] = 1176.86865234375, ['y'] = 2711.91357421875, ['z'] = 38.097785949707 },
reward = 30000 + math.random(100000,200000),
nameofbank = "Fleeca Bank (Desert)",
lastrobbed = 0
},
["pacific"] = {
position = { ['x'] = 255.001098632813, ['y'] = 225.855895996094, ['z'] = 101.005694274902 },
reward = 60000 + math.random(100000,200000),
nameofbank = "Pacific Standard PDB (Downtown Vinewood)",
lastrobbed = 0
}
}
RegisterNetEvent('es_bank:currentlyrobbing')
AddEventHandler('es_bank:currentlyrobbing', function(robb)
robbing = true
bank = robb
secondsRemaining = 300
end)
RegisterNetEvent('es_bank:toofarlocal')
AddEventHandler('es_bank:toofarlocal', function(robb)
robbing = false
TriggerEvent('chatMessage', 'SYSTEM', {255, 0, 0}, "The robbery was cancelled, you will receive nothing.")
robbingName = ""
secondsRemaining = 0
incircle = false
end)
RegisterNetEvent('es_bank:playerdiedlocal')
AddEventHandler('es_bank:playerdiedlocal', function(robb)
robbing = false
TriggerEvent('chatMessage', 'SYSTEM', {255, 0, 0}, "The robbery was cancelled, you died!.")
robbingName = ""
secondsRemaining = 0
incircle = false
end)
RegisterNetEvent('es_bank:robberycomplete')
AddEventHandler('es_bank:robberycomplete', function(reward)
robbing = false
TriggerEvent('chatMessage', 'SYSTEM', {255, 0, 0}, "Robbery done, you received:^2" .. reward)
bank = ""
secondsRemaining = 0
incircle = false
end)
Citizen.CreateThread(function()
while true do
if robbing then
Citizen.Wait(1000)
if(secondsRemaining > 0)then
secondsRemaining = secondsRemaining - 1
end
end
Citizen.Wait(0)
end
end)
Citizen.CreateThread(function()
while true do
local pos = GetEntityCoords(GetPlayerPed(-1), true)
for k,v in pairs(banks)do
local pos2 = v.position
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) < 15.0)then
if IsPlayerWantedLevelGreater(PlayerId(),4) or ArePlayerFlashingStarsAboutToDrop(PlayerId()) then --padrao 0
local wanted = GetPlayerWantedLevel(PlayerId())
Citizen.Wait(5000)
SetPlayerWantedLevel(PlayerId(), wanted, 4) ----padrao 0
SetPlayerWantedLevelNow(PlayerId(), 4) ----padrao 0
end
end
end
Citizen.Wait(0)
end
end)
Citizen.CreateThread(function()
for k,v in pairs(banks)do
local ve = v.position
local blip = AddBlipForCoord(ve.x, ve.y, ve.z)
SetBlipSprite(blip, 278)
SetBlipScale(blip, 0.8)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Robbable Bank")
EndTextCommandSetBlipName(blip)
end
end)
incircle = false
Citizen.CreateThread(function()
while true do
local pos = GetEntityCoords(GetPlayerPed(-1), true)
for k,v in pairs(banks)do
local pos2 = v.position
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) < 15.0)then
if not robbing then
DrawMarker(1, v.position.x, v.position.y, v.position.z - 1, 0, 0, 0, 0, 0, 0, 1.0001, 1.0001, 1.5001, 1555, 0, 0,255, 0, 0, 0,0)
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) < 2)then
if (incircle == false) then
bank_DisplayHelpText("Press ~INPUT_CONTEXT~ to rob ~b~" .. v.nameofbank .. "~w~ beware, the police will be alerted!")
end
incircle = true
if(IsControlJustReleased(1, 51))then
TriggerServerEvent('es_bank:rob', k)
end
elseif(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 2)then
incircle = false
end
end
end
end
if robbing then
SetPlayerWantedLevel(PlayerId(), 4, 0)
SetPlayerWantedLevelNow(PlayerId(), 4) --padrao 0
bank_drawTxt(0.66, 1.44, 1.0,1.0,0.4, "Robbing bank: ~r~" .. secondsRemaining .. "~w~ seconds remaining", 255, 255, 255, 255)
local pos2 = banks[bank].position
local ped = GetPlayerPed(-1)
if IsEntityDead(ped) then
TriggerServerEvent('es_bank:playerdied', bank)
elseif (Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 15)then
TriggerServerEvent('es_bank:toofar', bank)
end
end
Citizen.Wait(0)
end
end)
please I need help to put the place that is happening the robbery, and type a sign on the map that is pulsating warning the possible place of the thief, I tried to change the wanted lv to four and just keeps flashing