mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-31 18:28:52 +00:00
Merge pull request #7 from LuaDeldu/master
ESX file names + better config.lua possibilities + rob timer per shop
This commit is contained in:
@@ -3,14 +3,14 @@ FXserver ESX Hold Up
|
||||
|
||||
[REQUIREMENTS]
|
||||
|
||||
* esx_policejob => https://github.com/FXServer-ESX/fxserver-esx_policejob
|
||||
* esx_policejob => https://github.com/ESX-Org/esx_policejob
|
||||
|
||||
[INSTALLATION]
|
||||
|
||||
1) CD in your resources/[esx] folder
|
||||
2) Clone the repository
|
||||
```
|
||||
git clone https://github.com/FXServer-ESX/fxserver_esx_holdup esx_holdup
|
||||
git clone https://github.com/ESX-Org/esx_holdup esx_holdup
|
||||
```
|
||||
|
||||
3) Add this in your server.cfg :
|
||||
|
||||
+15
-16
@@ -1,23 +1,22 @@
|
||||
version '1.0.0'
|
||||
version '1.1.0'
|
||||
|
||||
dependency 'essentialmode'
|
||||
|
||||
client_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
'locales/de.lua',
|
||||
'locales/br.lua',
|
||||
'locales/en.lua',
|
||||
'locales/fr.lua',
|
||||
'config.lua',
|
||||
'client/esx_holdup_cl.lua'
|
||||
'@es_extended/locale.lua',
|
||||
'locales/de.lua',
|
||||
'locales/br.lua',
|
||||
'locales/en.lua',
|
||||
'locales/fr.lua',
|
||||
'config.lua',
|
||||
'client/main.lua'
|
||||
}
|
||||
|
||||
server_scripts {
|
||||
'@es_extended/locale.lua',
|
||||
'locales/de.lua',
|
||||
'locales/br.lua',
|
||||
'locales/en.lua',
|
||||
'locales/fr.lua',
|
||||
'config.lua',
|
||||
'server/esx_holdup_sv.lua'
|
||||
'@es_extended/locale.lua',
|
||||
'locales/de.lua',
|
||||
'locales/br.lua',
|
||||
'locales/en.lua',
|
||||
'locales/fr.lua',
|
||||
'config.lua',
|
||||
'server/main.lua'
|
||||
}
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
local holdingup = false
|
||||
local store = ""
|
||||
local secondsRemaining = 0
|
||||
local blipRobbery = nil
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
function DisplayHelpText(str)
|
||||
SetTextComponentFormat("STRING")
|
||||
AddTextComponentString(str)
|
||||
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
|
||||
end
|
||||
|
||||
function 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
|
||||
|
||||
RegisterNetEvent('esx_holdup:currentlyrobbing')
|
||||
AddEventHandler('esx_holdup:currentlyrobbing', function(robb)
|
||||
holdingup = true
|
||||
store = robb
|
||||
secondsRemaining = 300
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:killblip')
|
||||
AddEventHandler('esx_holdup:killblip', function()
|
||||
RemoveBlip(blipRobbery)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:setblip')
|
||||
AddEventHandler('esx_holdup:setblip', function(position)
|
||||
blipRobbery = AddBlipForCoord(position.x, position.y, position.z)
|
||||
SetBlipSprite(blipRobbery , 161)
|
||||
SetBlipScale(blipRobbery , 2.0)
|
||||
SetBlipColour(blipRobbery, 3)
|
||||
PulseBlip(blipRobbery)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:toofarlocal')
|
||||
AddEventHandler('esx_holdup:toofarlocal', function(robb)
|
||||
holdingup = false
|
||||
ESX.ShowNotification(_U('robbery_cancelled'))
|
||||
robbingName = ""
|
||||
secondsRemaining = 0
|
||||
incircle = false
|
||||
end)
|
||||
|
||||
|
||||
RegisterNetEvent('esx_holdup:robberycomplete')
|
||||
AddEventHandler('esx_holdup:robberycomplete', function(robb)
|
||||
holdingup = false
|
||||
ESX.ShowNotification(_U('robbery_cancelled') .. Stores[store].reward)
|
||||
store = ""
|
||||
secondsRemaining = 0
|
||||
incircle = false
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
if holdingup then
|
||||
Citizen.Wait(1000)
|
||||
if(secondsRemaining > 0)then
|
||||
secondsRemaining = secondsRemaining - 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
for k,v in pairs(Stores)do
|
||||
local ve = v.position
|
||||
|
||||
local blip = AddBlipForCoord(ve.x, ve.y, ve.z)
|
||||
SetBlipSprite(blip, 156)
|
||||
SetBlipScale(blip, 0.8)
|
||||
SetBlipAsShortRange(blip, true)
|
||||
BeginTextCommandSetBlipName("STRING")
|
||||
AddTextComponentString(_U('shop_robbery'))
|
||||
EndTextCommandSetBlipName(blip)
|
||||
end
|
||||
end)
|
||||
incircle = false
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
local pos = GetEntityCoords(GetPlayerPed(-1), true)
|
||||
|
||||
for k,v in pairs(Stores)do
|
||||
local pos2 = v.position
|
||||
|
||||
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) < 15.0)then
|
||||
if not holdingup 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) < 1.0)then
|
||||
if (incircle == false) then
|
||||
DisplayHelpText(_U('press_to_rob') .. v.nameofstore)
|
||||
end
|
||||
incircle = true
|
||||
if IsControlJustReleased(1, 51) then
|
||||
TriggerServerEvent('esx_holdup:rob', k)
|
||||
end
|
||||
elseif(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 1.0)then
|
||||
incircle = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if holdingup then
|
||||
|
||||
drawTxt(0.66, 1.44, 1.0,1.0,0.4, _U('robbery_of') .. secondsRemaining .. _U('seconds_remaining'), 255, 255, 255, 255)
|
||||
|
||||
local pos2 = Stores[store].position
|
||||
|
||||
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 7.5)then
|
||||
TriggerServerEvent('esx_holdup:toofar', store)
|
||||
end
|
||||
end
|
||||
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
local holdingup = false
|
||||
local store = ""
|
||||
local blipRobbery = nil
|
||||
ESX = nil
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while ESX == nil do
|
||||
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
|
||||
function DisplayHelpText(str)
|
||||
SetTextComponentFormat("STRING")
|
||||
AddTextComponentString(str)
|
||||
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
|
||||
end
|
||||
|
||||
function 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
|
||||
|
||||
RegisterNetEvent('esx_holdup:currentlyrobbing')
|
||||
AddEventHandler('esx_holdup:currentlyrobbing', function(robb)
|
||||
holdingup = true
|
||||
store = robb
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:killblip')
|
||||
AddEventHandler('esx_holdup:killblip', function()
|
||||
RemoveBlip(blipRobbery)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:setblip')
|
||||
AddEventHandler('esx_holdup:setblip', function(position)
|
||||
blipRobbery = AddBlipForCoord(position.x, position.y, position.z)
|
||||
SetBlipSprite(blipRobbery , 161)
|
||||
SetBlipScale(blipRobbery , 2.0)
|
||||
SetBlipColour(blipRobbery, 3)
|
||||
PulseBlip(blipRobbery)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('esx_holdup:toofarlocal')
|
||||
AddEventHandler('esx_holdup:toofarlocal', function(robb)
|
||||
holdingup = false
|
||||
ESX.ShowNotification(_U('robbery_cancelled'))
|
||||
robbingName = ""
|
||||
incircle = false
|
||||
end)
|
||||
|
||||
|
||||
RegisterNetEvent('esx_holdup:robberycomplete')
|
||||
AddEventHandler('esx_holdup:robberycomplete', function(robb)
|
||||
holdingup = false
|
||||
ESX.ShowNotification(_U('robbery_complete'))
|
||||
store = ""
|
||||
incircle = false
|
||||
end)
|
||||
|
||||
|
||||
RegisterNetEvent('esx_holdup:starttimer')
|
||||
AddEventHandler('esx_holdup:starttimer', function(source)
|
||||
timer = Stores[store].secondsRemaining
|
||||
Citizen.CreateThread(function()
|
||||
while timer > 0 do
|
||||
Citizen.Wait(0)
|
||||
Citizen.Wait(1000)
|
||||
if(timer > 0)then
|
||||
timer = timer - 1
|
||||
end
|
||||
end
|
||||
end)
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
Citizen.Wait(0)
|
||||
if holdingup then
|
||||
drawTxt(0.66, 1.44, 1.0,1.0,0.4, _U('robbery_of') .. timer .. _U('seconds_remaining'), 255, 255, 255, 255)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
for k,v in pairs(Stores)do
|
||||
local ve = v.position
|
||||
|
||||
local blip = AddBlipForCoord(ve.x, ve.y, ve.z)
|
||||
SetBlipSprite(blip, 156)
|
||||
SetBlipScale(blip, 0.8)
|
||||
SetBlipAsShortRange(blip, true)
|
||||
BeginTextCommandSetBlipName("STRING")
|
||||
AddTextComponentString(_U('shop_robbery'))
|
||||
EndTextCommandSetBlipName(blip)
|
||||
end
|
||||
end)
|
||||
incircle = false
|
||||
|
||||
|
||||
Citizen.CreateThread(function()
|
||||
while true do
|
||||
local pos = GetEntityCoords(GetPlayerPed(-1), true)
|
||||
|
||||
for k,v in pairs(Stores)do
|
||||
local pos2 = v.position
|
||||
|
||||
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) < 15.0)then
|
||||
if not holdingup 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) < 1.0)then
|
||||
if (incircle == false) then
|
||||
DisplayHelpText(_U('press_to_rob') .. v.nameofstore)
|
||||
end
|
||||
incircle = true
|
||||
if IsControlJustReleased(1, 51) then
|
||||
TriggerServerEvent('esx_holdup:rob', k)
|
||||
end
|
||||
elseif(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 1.0)then
|
||||
incircle = false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if holdingup then
|
||||
|
||||
local pos2 = Stores[store].position
|
||||
|
||||
if(Vdist(pos.x, pos.y, pos.z, pos2.x, pos2.y, pos2.z) > 13)then
|
||||
TriggerServerEvent('esx_holdup:toofar', store)
|
||||
end
|
||||
end
|
||||
|
||||
Citizen.Wait(0)
|
||||
end
|
||||
end)
|
||||
+61
-48
@@ -1,53 +1,66 @@
|
||||
Config = {}
|
||||
Config.Locale = 'fr'
|
||||
|
||||
Config.PoliceNumberRequired = 2
|
||||
Config.TimerBeforeNewRob = 1800 -- seconds
|
||||
|
||||
|
||||
-- Change secondsRemaining if you want another timer
|
||||
Stores = {
|
||||
--[["paleto_twentyfourseven"] = {
|
||||
position = { ['x'] = 1736.32092285156, ['y'] = 6419.4970703125, ['z'] = 35.037223815918 },
|
||||
reward = math.random(100,1000),
|
||||
nameofstore = "24/7. (Paleto Bay)",
|
||||
lastrobbed = 0
|
||||
},]]
|
||||
["sandyshores_twentyfoursever"] = {
|
||||
position = { ['x'] = 1961.24682617188, ['y'] = 3749.46069335938, ['z'] = 32.3437461853027 },
|
||||
reward = math.random(500,5000),
|
||||
nameofstore = "24/7. (Sandy Shores)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["bar_one"] = {
|
||||
position = { ['x'] = 1986.1240234375, ['y'] = 3053.8747558594, ['z'] = 47.215171813965 },
|
||||
reward = math.random(500,5000),
|
||||
nameofstore = "Yellow Jack. (Sandy Shores)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["ocean_liquor"] = {
|
||||
position = { ['x'] = -2959.33715820313, ['y'] = 388.214172363281, ['z'] = 14.0432071685791 },
|
||||
reward = math.random(1000,10000),
|
||||
nameofstore = "Robs Liquor. (Great Ocean Higway)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["sanandreas_liquor"] = {
|
||||
position = { ['x'] = -1219.85607910156, ['y'] = -916.276550292969, ['z'] = 11.3262157440186 },
|
||||
reward = math.random(1000,10000),
|
||||
nameofstore = "Robs Liquor. (San andreas Avenue)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["grove_ltd"] = {
|
||||
position = { ['x'] = -43.4035377502441, ['y'] = -1749.20922851563, ['z'] = 29.421012878418 },
|
||||
reward = math.random(1000,10000),
|
||||
nameofstore = "LTD Gasoline. (Grove Street)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["mirror_ltd"] = {
|
||||
position = { ['x'] = 1160.67578125, ['y'] = -314.400451660156, ['z'] = 69.2050552368164 },
|
||||
reward = math.random(1000,10000),
|
||||
nameofstore = "LTD Gasoline. (Mirror Park Boulevard)",
|
||||
lastrobbed = 0
|
||||
},
|
||||
["littleseoul_twentyfourseven"] = {
|
||||
position = { ['x'] = -709.17022705078, ['y'] = -904.21722412109, ['z'] = 19.215591430664 },
|
||||
reward = math.random(1000,10000),
|
||||
nameofstore = "24/7. (Little Seoul)",
|
||||
lastrobbed = 0
|
||||
}
|
||||
--[["paleto_twentyfourseven"] = {
|
||||
position = { ['x'] = 1736.32092285156, ['y'] = 6419.4970703125, ['z'] = 35.037223815918 },
|
||||
reward = math.random(100,1000),
|
||||
nameofstore = "24/7. (Paleto Bay)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},]]
|
||||
["sandyshores_twentyfoursever"] = {
|
||||
position = { ['x'] = 1961.24682617188, ['y'] = 3749.46069335938, ['z'] = 32.3437461853027 },
|
||||
reward = math.random(500,2500),
|
||||
nameofstore = "24/7. (Sandy Shores)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["bar_one"] = {
|
||||
position = { ['x'] = 1990.579, ['y'] = 3044.957, ['z'] = 47.215171813965 },
|
||||
reward = math.random(500,2500),
|
||||
nameofstore = "Yellow Jack. (Sandy Shores)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["ocean_liquor"] = {
|
||||
position = { ['x'] = -2959.33715820313, ['y'] = 388.214172363281, ['z'] = 14.0432071685791 },
|
||||
reward = math.random(1000,3000),
|
||||
nameofstore = "Robs Liquor. (Great Ocean Higway)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["sanandreas_liquor"] = {
|
||||
position = { ['x'] = -1219.85607910156, ['y'] = -916.276550292969, ['z'] = 11.3262157440186 },
|
||||
reward = math.random(3000,8000),
|
||||
nameofstore = "Robs Liquor. (San andreas Avenue)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["grove_ltd"] = {
|
||||
position = { ['x'] = -43.4035377502441, ['y'] = -1749.20922851563, ['z'] = 29.421012878418 },
|
||||
reward = math.random(3000,8000),
|
||||
nameofstore = "LTD Gasoline. (Grove Street)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["mirror_ltd"] = {
|
||||
position = { ['x'] = 1160.67578125, ['y'] = -314.400451660156, ['z'] = 69.2050552368164 },
|
||||
reward = math.random(3000,8000),
|
||||
nameofstore = "LTD Gasoline. (Mirror Park Boulevard)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
},
|
||||
["littleseoul_twentyfourseven"] = {
|
||||
position = { ['x'] = -709.17022705078, ['y'] = -904.21722412109, ['z'] = 19.215591430664 },
|
||||
reward = math.random(3000,8000),
|
||||
nameofstore = "24/7. (Little Seoul)",
|
||||
secondsRemaining = 200, -- seconds
|
||||
lastrobbed = 0
|
||||
}
|
||||
}
|
||||
|
||||
+20
-19
@@ -1,23 +1,24 @@
|
||||
Locales['br'] = {
|
||||
|
||||
['robbery_cancelled'] = 'O roubo será cancelado, você não ganhará nada!',
|
||||
['robbery_successful'] = 'O roubo foi um sucesso. Você ganhou ~g~$',
|
||||
['shop_robbery'] = 'Loja roubavel',
|
||||
['press_to_rob'] = 'Pressione ~INPUT_CONTEXT~ para roubar ~b~',
|
||||
['robbery_of'] = 'Loja roubavel: ~r~',
|
||||
['seconds_remaining'] = '~w~ segundos restantes',
|
||||
['robbery_cancelled_at'] = '~r~ Roubo cancelado em: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ O assalto foi cancelado: ~b~',
|
||||
['already_robbed'] = 'Esta loja já foi roubada. Por favor, espere: ',
|
||||
['seconds'] = 'segundos.',
|
||||
['rob_in_prog'] = '~r~ Assalto em curso em: ~b~',
|
||||
['started_to_rob'] = 'Você começou a roubar ',
|
||||
['do_not_move'] = ', Não se afaste!',
|
||||
['alarm_triggered'] = 'O alarme foi disparado',
|
||||
['hold_pos'] = 'Segure por 5 minutos e o dinheiro é seu!',
|
||||
['robbery_complete'] = '~r~ Roubo completo.~s~ ~h~ Corre!',
|
||||
['robbery_complete_at'] = '~r~ Roubo completo em: ~b~',
|
||||
['min_two_police'] = 'Deve haver pelo menos ~b~2 policiais~s~ na cidade para roubar.',
|
||||
['robbery_already'] = '~r~Um assalto já está em andamento.',
|
||||
['robbery_cancelled'] = 'O roubo será cancelado, você não ganhará nada!',
|
||||
['robbery_successful'] = 'O roubo foi um sucesso. Você ganhou ~g~$',
|
||||
['shop_robbery'] = 'Loja roubavel',
|
||||
['press_to_rob'] = 'Pressione ~INPUT_CONTEXT~ para roubar ~b~',
|
||||
['robbery_of'] = 'Loja roubavel: ~r~',
|
||||
['seconds_remaining'] = '~w~ segundos restantes',
|
||||
['robbery_cancelled_at'] = '~r~ Roubo cancelado em: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ O assalto foi cancelado: ~b~',
|
||||
['already_robbed'] = 'Esta loja já foi roubada. Por favor, espere: ',
|
||||
['seconds'] = 'segundos.',
|
||||
['rob_in_prog'] = '~r~ Assalto em curso em: ~b~',
|
||||
['started_to_rob'] = 'Você começou a roubar ~b~',
|
||||
['do_not_move'] = '~s~, Não se afaste!',
|
||||
['alarm_triggered'] = 'O alarme foi disparado',
|
||||
['hold_pos'] = 'Segure por 5 minutos e o dinheiro é seu!',
|
||||
['robbery_complete'] = '~r~ Roubo completo.~s~ ~h~ Corre!',
|
||||
['robbery_complete_at'] = '~r~ Roubo completo em: ~b~',
|
||||
['min_police'] = 'there must be at least ~b~',
|
||||
['in_city'] = '~s~ policemen in town to rob.',
|
||||
['robbery_already'] = '~r~Um assalto já está em andamento.',
|
||||
|
||||
}
|
||||
|
||||
+20
-19
@@ -1,23 +1,24 @@
|
||||
Locales['de'] = {
|
||||
|
||||
['robbery_cancelled'] = 'der Raub wurde abgebrochen, du bekommst nichts!',
|
||||
['robbery_successful'] = 'Raub erfolgreich du erbeutest ~g~$',
|
||||
['shop_robbery'] = 'Ladenraub',
|
||||
['press_to_rob'] = 'Drücke ~INPUT_CONTEXT~ zum ausrauben ~b~',
|
||||
['robbery_of'] = 'Ladenraub: ~r~',
|
||||
['seconds_remaining'] = '~w~ sekunden übrig',
|
||||
['robbery_cancelled_at'] = '~r~ Raub abgebrochen bei: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ Raub wurde abgebrochen: ~b~',
|
||||
['already_robbed'] = 'dieser Laden wurde bereits ausgeraubt. Bitte warte: ',
|
||||
['seconds'] = 'sekunden.',
|
||||
['rob_in_prog'] = '~r~ Raub im gange bei: ~b~',
|
||||
['started_to_rob'] = 'du hast einen Raub gestartet ',
|
||||
['do_not_move'] = ', laufe nicht weg!',
|
||||
['alarm_triggered'] = 'der Alarm wurde ausgelöst',
|
||||
['hold_pos'] = 'halte 5 Minuten lang durch, und die Beute gehört dir!',
|
||||
['robbery_complete'] = '~r~ Raub erfolgreich.~s~ ~h~ LAUF!',
|
||||
['robbery_complete_at'] = '~r~ Raub erfolgreich bei: ~b~',
|
||||
['min_two_police'] = 'es müssen mindestens ~b~2 Polizisten~s~ im Dienst sein um einen Raub starten zu können.',
|
||||
['robbery_already'] = '~r~Ein Raub ist bereits im gange.',
|
||||
['robbery_cancelled'] = 'der Raub wurde abgebrochen, du bekommst nichts!',
|
||||
['robbery_successful'] = 'Raub erfolgreich du erbeutest ~g~$',
|
||||
['shop_robbery'] = 'Ladenraub',
|
||||
['press_to_rob'] = 'Drücke ~INPUT_CONTEXT~ zum ausrauben ~b~',
|
||||
['robbery_of'] = 'Ladenraub: ~r~',
|
||||
['seconds_remaining'] = '~w~ sekunden übrig',
|
||||
['robbery_cancelled_at'] = '~r~ Raub abgebrochen bei: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ Raub wurde abgebrochen: ~b~',
|
||||
['already_robbed'] = 'dieser Laden wurde bereits ausgeraubt. Bitte warte: ',
|
||||
['seconds'] = 'sekunden.',
|
||||
['rob_in_prog'] = '~r~ Raub im gange bei: ~b~',
|
||||
['started_to_rob'] = 'du hast einen Raub gestartet ~b~',
|
||||
['do_not_move'] = '~s~, laufe nicht weg!',
|
||||
['alarm_triggered'] = 'der Alarm wurde ausgelöst',
|
||||
['hold_pos'] = 'halte 5 Minuten lang durch, und die Beute gehört dir!',
|
||||
['robbery_complete'] = '~r~ Raub erfolgreich.~s~ ~h~ LAUF!',
|
||||
['robbery_complete_at'] = '~r~ Raub erfolgreich bei: ~b~',
|
||||
['min_police'] = 'there must be at least ~b~',
|
||||
['in_city'] = '~s~ policemen in town to rob.',
|
||||
['robbery_already'] = '~r~Ein Raub ist bereits im gange.',
|
||||
|
||||
}
|
||||
|
||||
+20
-19
@@ -1,23 +1,24 @@
|
||||
Locales['en'] = {
|
||||
|
||||
['robbery_cancelled'] = 'the robbery will be cancelled, you will gain nothing!',
|
||||
['robbery_successful'] = 'successful robbery you have gained ~g~$',
|
||||
['shop_robbery'] = 'shop Robbery',
|
||||
['press_to_rob'] = 'press ~INPUT_CONTEXT~ to rob ~b~',
|
||||
['robbery_of'] = 'store robbery: ~r~',
|
||||
['seconds_remaining'] = '~w~ seconds remaning',
|
||||
['robbery_cancelled_at'] = '~r~ Robbery cancelled at: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ robbery has been cancelled: ~b~',
|
||||
['already_robbed'] = 'this store has already been robbed. Please wait: ',
|
||||
['seconds'] = 'seconds.',
|
||||
['rob_in_prog'] = '~r~ robbery in progress at: ~b~',
|
||||
['started_to_rob'] = 'you started to rob ',
|
||||
['do_not_move'] = ', do not move away!',
|
||||
['alarm_triggered'] = 'the alarm has been triggered',
|
||||
['hold_pos'] = 'hold for 5 minutes and the money is yours!',
|
||||
['robbery_complete'] = '~r~ Robbery complete.~s~ ~h~ Run!',
|
||||
['robbery_complete_at'] = '~r~ Robbery complete at: ~b~',
|
||||
['min_two_police'] = 'there must be at least ~b~2 policemen~s~ in town to rob.',
|
||||
['robbery_already'] = '~r~A robbery is already in progress.',
|
||||
['robbery_cancelled'] = 'the robbery will be cancelled, you will gain nothing!',
|
||||
['robbery_successful'] = 'successful robbery you have gained ~g~$',
|
||||
['shop_robbery'] = 'shop Robbery',
|
||||
['press_to_rob'] = 'press ~INPUT_CONTEXT~ to rob ~b~',
|
||||
['robbery_of'] = 'store robbery: ~r~',
|
||||
['seconds_remaining'] = '~w~ seconds remaning',
|
||||
['robbery_cancelled_at'] = '~r~ Robbery cancelled at: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ robbery has been cancelled: ~b~',
|
||||
['already_robbed'] = 'this store has already been robbed. Please wait: ',
|
||||
['seconds'] = 'seconds.',
|
||||
['rob_in_prog'] = '~r~ robbery in progress at: ~b~',
|
||||
['started_to_rob'] = 'you started to rob ~b~',
|
||||
['do_not_move'] = '~s~, do not move away!',
|
||||
['alarm_triggered'] = 'the alarm has been triggered',
|
||||
['hold_pos'] = 'hold for 5 minutes and the money is yours!',
|
||||
['robbery_complete'] = '~r~ Robbery complete.~s~ ~h~ Run!',
|
||||
['robbery_complete_at'] = '~r~ Robbery complete at: ~b~',
|
||||
['min_police'] = 'there must be at least ~b~',
|
||||
['in_city'] = '~s~ policemen in town to rob.',
|
||||
['robbery_already'] = '~r~A robbery is already in progress.',
|
||||
|
||||
}
|
||||
|
||||
+20
-19
@@ -1,23 +1,24 @@
|
||||
Locales['fr'] = {
|
||||
|
||||
['robbery_cancelled'] = 'le braquage vas être annulé, vous ne gagnerez rien!',
|
||||
['robbery_successful'] = 'braquage réussi vous avez gagné ~g~$',
|
||||
['shop_robbery'] = 'braquage magasin',
|
||||
['press_to_rob'] = 'appuyer sur ~INPUT_CONTEXT~ pour braquer ~b~',
|
||||
['robbery_of'] = 'braquage de magasin: ~r~',
|
||||
['seconds_remaining'] = '~w~ secondes restantes',
|
||||
['robbery_cancelled_at'] = '~r~ Braquage annulé à: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ le braquage à été annulé: ~b~',
|
||||
['already_robbed'] = 'ce magasin a déjà été braqué. Veuillez attendre: ',
|
||||
['seconds'] = 'secondes.',
|
||||
['rob_in_prog'] = '~r~ braquage en cours à: ~b~',
|
||||
['started_to_rob'] = 'vous avez commencé à braquer ',
|
||||
['do_not_move'] = ', ne vous éloignez pas!',
|
||||
['alarm_triggered'] = 'l\'alarme à été déclenché',
|
||||
['hold_pos'] = 'tenez la position pendant 5min et l\'argent est à vous!',
|
||||
['robbery_complete'] = '~r~ Braquage terminé.~s~ ~h~ Fuie!',
|
||||
['robbery_complete_at'] = '~r~ Braquage terminé à: ~b~',
|
||||
['min_two_police'] = 'il faut minimum ~b~2 policiers~s~ en ville pour braquer.',
|
||||
['robbery_already'] = '~r~Un braquage est déjà en cours.',
|
||||
['robbery_cancelled'] = 'Le braquage va être annulé, vous ne gagnerez rien !',
|
||||
['robbery_successful'] = 'Braquage réussi, vous avez gagné ~g~$',
|
||||
['shop_robbery'] = 'Braquage magasin',
|
||||
['press_to_rob'] = 'Appuyez sur ~INPUT_CONTEXT~ pour braquer ~b~',
|
||||
['robbery_of'] = 'Braquage de magasin :\n ~r~',
|
||||
['seconds_remaining'] = '~w~ secondes restantes',
|
||||
['robbery_cancelled_at'] = '~r~ Braquage annulé à: ~b~',
|
||||
['robbery_has_cancelled'] = '~r~ Le braquage à été annulé: ~b~',
|
||||
['already_robbed'] = 'Ce magasin a déjà été braqué. Attendez ~r~ ',
|
||||
['seconds'] = '~b~ secondes.',
|
||||
['rob_in_prog'] = '~r~ Braquage en cours à: ~b~',
|
||||
['started_to_rob'] = 'Vous avez commencé à braquer ~b~',
|
||||
['do_not_move'] = '~s~, ne vous éloignez pas !',
|
||||
['alarm_triggered'] = 'l\'alarme a été déclenchée',
|
||||
['hold_pos'] = 'Tenez la position et l\'argent sera à vous !',
|
||||
['robbery_complete'] = '~r~ Braquage terminé.~s~ ~h~ Cours petite fille !',
|
||||
['robbery_complete_at'] = '~r~ Braquage terminé à : ~b~',
|
||||
['min_police'] = 'Il faut minimum ~b~',
|
||||
['in_city'] = '~s~ policiers en ville pour braquer.',
|
||||
['robbery_already'] = '~r~Un braquage est déjà en cours.',
|
||||
|
||||
}
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
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_holdup:toofar')
|
||||
AddEventHandler('esx_holdup: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') .. Stores[robb].nameofstore)
|
||||
TriggerClientEvent('esx_holdup:killblip', xPlayers[i])
|
||||
end
|
||||
end
|
||||
if(robbers[source])then
|
||||
TriggerClientEvent('esx_holdup:toofarlocal', source)
|
||||
robbers[source] = nil
|
||||
TriggerClientEvent('esx:showNotification', source, _U('robbery_has_cancelled') .. Stores[robb].nameofstore)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_holdup:rob')
|
||||
AddEventHandler('esx_holdup:rob', function(robb)
|
||||
|
||||
local source = source
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
|
||||
if Stores[robb] then
|
||||
|
||||
local store = Stores[robb]
|
||||
|
||||
if (os.time() - store.lastrobbed) < 600 and store.lastrobbed ~= 0 then
|
||||
|
||||
TriggerClientEvent('esx:showNotification', source, _U('already_robbed') .. (1800 - (os.time() - store.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(cops > 1)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') .. store.nameofstore)
|
||||
TriggerClientEvent('esx_holdup:setblip', xPlayers[i], Stores[robb].position)
|
||||
end
|
||||
end
|
||||
|
||||
TriggerClientEvent('esx:showNotification', source, _U('started_to_rob') .. store.nameofstore .. _U('do_not_move'))
|
||||
TriggerClientEvent('esx:showNotification', source, _U('alarm_triggered'))
|
||||
TriggerClientEvent('esx:showNotification', source, _U('hold_pos'))
|
||||
TriggerClientEvent('esx_holdup:currentlyrobbing', source, robb)
|
||||
Stores[robb].lastrobbed = os.time()
|
||||
robbers[source] = robb
|
||||
local savedSource = source
|
||||
SetTimeout(300000, function()
|
||||
|
||||
if(robbers[savedSource])then
|
||||
|
||||
rob = false
|
||||
TriggerClientEvent('esx_holdup:robberycomplete', savedSource, job)
|
||||
if(xPlayer)then
|
||||
|
||||
xPlayer.addAccountMoney('black_money', store.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') .. store.nameofstore)
|
||||
TriggerClientEvent('esx_holdup:killblip', xPlayers[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('min_two_police'))
|
||||
end
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('robbery_already'))
|
||||
end
|
||||
end
|
||||
end)
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
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_holdup:toofar')
|
||||
AddEventHandler('esx_holdup: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') .. Stores[robb].nameofstore)
|
||||
TriggerClientEvent('esx_holdup:killblip', xPlayers[i])
|
||||
end
|
||||
end
|
||||
if(robbers[source])then
|
||||
TriggerClientEvent('esx_holdup:toofarlocal', source)
|
||||
robbers[source] = nil
|
||||
TriggerClientEvent('esx:showNotification', source, _U('robbery_has_cancelled') .. Stores[robb].nameofstore)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterServerEvent('esx_holdup:rob')
|
||||
AddEventHandler('esx_holdup:rob', function(robb)
|
||||
|
||||
local source = source
|
||||
local xPlayer = ESX.GetPlayerFromId(source)
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
|
||||
if Stores[robb] then
|
||||
|
||||
local store = Stores[robb]
|
||||
|
||||
if (os.time() - store.lastrobbed) < Config.TimerBeforeNewRob and store.lastrobbed ~= 0 then
|
||||
|
||||
TriggerClientEvent('esx:showNotification', source, _U('already_robbed') .. (Config.TimerBeforeNewRob - (os.time() - store.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(cops >= Config.PoliceNumberRequired)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') .. store.nameofstore)
|
||||
TriggerClientEvent('esx_holdup:setblip', xPlayers[i], Stores[robb].position)
|
||||
end
|
||||
end
|
||||
|
||||
TriggerClientEvent('esx:showNotification', source, _U('started_to_rob') .. store.nameofstore .. _U('do_not_move'))
|
||||
TriggerClientEvent('esx:showNotification', source, _U('alarm_triggered'))
|
||||
TriggerClientEvent('esx:showNotification', source, _U('hold_pos'))
|
||||
|
||||
TriggerClientEvent('esx_holdup:currentlyrobbing', source, robb)
|
||||
TriggerClientEvent('esx_holdup:starttimer', source)
|
||||
|
||||
|
||||
Stores[robb].lastrobbed = os.time()
|
||||
robbers[source] = robb
|
||||
local savedSource = source
|
||||
SetTimeout(store.secondsRemaining*1000, function()
|
||||
|
||||
if(robbers[savedSource])then
|
||||
|
||||
rob = false
|
||||
TriggerClientEvent('esx_holdup:robberycomplete', savedSource, job)
|
||||
if(xPlayer)then
|
||||
|
||||
xPlayer.addAccountMoney('black_money', store.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') .. store.nameofstore)
|
||||
TriggerClientEvent('esx_holdup:killblip', xPlayers[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('min_police') .. Config.PoliceNumberRequired .. _U('in_city'))
|
||||
end
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', source, _U('robbery_already'))
|
||||
end
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user