diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/client/main.lua b/server-data/resources/[bpt_addons]/bpt_policejob/client/main.lua
index 14251c797..1b67c9e79 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/client/main.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/client/main.lua
@@ -82,7 +82,6 @@ function OpenCloakroomMenu()
TriggerServerEvent("esx_service:notifyAllInService", notification, "police")
TriggerServerEvent("esx_service:disableService", "police")
- TriggerEvent("bpt_policejob:updateBlip")
ESX.ShowNotification(TranslateCap("service_out"))
end
end, "police")
@@ -110,7 +109,6 @@ function OpenCloakroomMenu()
}
TriggerServerEvent("esx_service:notifyAllInService", notification, "police")
- TriggerEvent("bpt_policejob:updateBlip")
ESX.ShowNotification(TranslateCap("service_in"))
end
end, "police")
@@ -126,7 +124,6 @@ function OpenCloakroomMenu()
}
TriggerServerEvent("esx_service:notifyAllInService", notification, "police")
- TriggerEvent("bpt_policejob:updateBlip")
ESX.ShowNotification(TranslateCap("service_in"))
end
else
@@ -197,8 +194,6 @@ function OpenArmoryMenu(station)
OpenGetWeaponMenu()
elseif data.current.value == "put_weapon" then
OpenPutWeaponMenu()
- elseif data.current.value == "buy_weapons" then
- OpenBuyWeaponsMenu()
elseif data.current.value == "put_stock" then
OpenPutStocksMenu()
elseif data.current.value == "get_stock" then
@@ -469,7 +464,7 @@ function OpenBodySearchMenu(player)
end
ESX.OpenContext("right", elements, function(_, element)
- local data = { current = element }
+ data = { current = element }
if data.current.value then
TriggerServerEvent("bpt_policejob:confiscatePlayerItem", GetPlayerServerId(player), data.current.itemType, data.current.value, data.current.amount)
OpenBodySearchMenu(player)
@@ -515,7 +510,7 @@ function OpenFineCategoryMenu(player, category)
{ unselectable = true, icon = "fas fa-scroll", title = TranslateCap("fine") },
}
- for k, fine in ipairs(fineList[category]) do
+ for _, fine in ipairs(fineList[category]) do
elements[#elements + 1] = {
icon = "fas fa-scroll",
title = ('%s %s'):format(fine.label, TranslateCap("armory_item", ESX.Math.GroupDigits(fine.amount))),
@@ -585,7 +580,7 @@ function LookupVehicle(elementF)
ESX.ShowNotification(TranslateCap("search_database_error_invalid"))
else
ESX.TriggerServerCallback("bpt_policejob:getVehicleInfos", function(retrivedInfo)
- local elements = {
+ elements = {
{ unselectable = true, icon = "fas fa-car", title = element.title },
{ unselectable = true, icon = "fas fa-car", title = TranslateCap("plate", retrivedInfo.plate) },
}
@@ -596,7 +591,7 @@ function LookupVehicle(elementF)
elements[#elements + 1] = { unselectable = true, icon = "fas fa-user", title = TranslateCap("owner", retrivedInfo.owner) }
end
- ESX.OpenContext("right", elements, nil, function(menu)
+ ESX.OpenContext("right", elements, nil, function()
OpenPoliceActionsMenu()
end)
end, data.value)
@@ -726,116 +721,6 @@ function OpenPutWeaponMenu()
end)
end
-function OpenBuyWeaponsMenu()
- local elements = {
- { unselectable = true, icon = "fas fa-gun", title = TranslateCap("armory_weapontitle") },
- }
- local playerPed = PlayerPedId()
-
- for k, v in ipairs(Config.AuthorizedWeapons[ESX.PlayerData.job.grade_name]) do
- local weaponNum, weapon = ESX.GetWeapon(v.weapon)
- local components, label = {}, nil
- local hasWeapon = HasPedGotWeapon(playerPed, joaat(v.weapon), false)
-
- if v.components then
- for i = 1, #v.components do
- if v.components[i] then
- local component = weapon.components[i]
- local hasComponent = HasPedGotWeaponComponent(playerPed, joaat(v.weapon), component.hash)
-
- if hasComponent then
- label = ('%s: %s'):format(component.label, TranslateCap("armory_owned"))
- else
- if v.components[i] > 0 then
- label = ('%s: %s'):format(component.label, TranslateCap("armory_item", ESX.Math.GroupDigits(v.components[i])))
- else
- label = ('%s: %s'):format(component.label, TranslateCap("armory_free"))
- end
- end
-
- components[#components + 1] = {
- icon = "fas fa-gun",
- title = label,
- componentLabel = component.label,
- hash = component.hash,
- name = component.name,
- price = v.components[i],
- hasComponent = hasComponent,
- componentNum = i,
- }
- end
- end
- end
-
- if hasWeapon and v.components then
- label = ('%s: >'):format(weapon.label)
- elseif hasWeapon and not v.components then
- label = ('%s: %s'):format(weapon.label, TranslateCap("armory_owned"))
- else
- if v.price > 0 then
- label = ('%s: %s'):format(weapon.label, TranslateCap("armory_item", ESX.Math.GroupDigits(v.price)))
- else
- label = ('%s: %s'):format(weapon.label, TranslateCap("armory_free"))
- end
- end
-
- elements[#elements + 1] = {
- icon = "fas fa-gun",
- title = label,
- weaponLabel = weapon.label,
- name = weapon.name,
- components = components,
- price = v.price,
- hasWeapon = hasWeapon,
- }
- end
-
- ESX.OpenContext("right", elements, function(menu, element)
- local data = { current = element }
- if data.current.hasWeapon then
- if #data.current.components > 0 then
- OpenWeaponComponentShop(data.current.components, data.current.name, menu)
- end
- else
- ESX.TriggerServerCallback("bpt_policejob:buyWeapon", function(bought)
- if bought then
- if data.current.price > 0 then
- ESX.ShowNotification(TranslateCap("armory_bought", data.current.weaponLabel, ESX.Math.GroupDigits(data.current.price)))
- end
-
- ESX.CloseContext()
- OpenBuyWeaponsMenu()
- else
- ESX.ShowNotification(TranslateCap("armory_money"))
- end
- end, data.current.name, 1)
- end
- end)
-end
-
-function OpenWeaponComponentShop(components, weaponName, parentShop)
- ESX.OpenContext("right", components, function(menu, element)
- local data = { current = element }
- if data.current.hasComponent then
- ESX.ShowNotification(TranslateCap("armory_hascomponent"))
- else
- ESX.TriggerServerCallback("bpt_policejob:buyWeapon", function(bought)
- if bought then
- if data.current.price > 0 then
- ESX.ShowNotification(TranslateCap("armory_bought", data.current.componentLabel, ESX.Math.GroupDigits(data.current.price)))
- end
-
- ESX.CloseContext()
- parentShop.close()
- OpenBuyWeaponsMenu()
- else
- ESX.ShowNotification(TranslateCap("armory_money"))
- end
- end, weaponName, 2, data.current.componentNum)
- end
- end)
-end
-
function OpenGetStocksMenu()
ESX.TriggerServerCallback("bpt_policejob:getStockItems", function(items)
local elements = {
@@ -939,16 +824,6 @@ function OpenPutStocksMenu()
end)
end
-function OnPlayerData(k, v)
- if k ~= "job" then
- return
- end
- if v.name == "police" then
- Wait(1000)
- TriggerServerEvent("bpt_policejob:forceBlip")
- end
-end
-
AddEventHandler("bpt_policejob:hasEnteredMarker", function(station, part, partNum)
if part == "Cloakroom" then
CurrentAction = "menu_cloakroom"
@@ -991,8 +866,8 @@ AddEventHandler("bpt_policejob:hasEnteredEntityZone", function(entity)
end
if GetEntityModel(entity) == `p_ld_stinger_s` then
- local playerPed = PlayerPedId()
- local coords = GetEntityCoords(playerPed)
+ playerPed = PlayerPedId()
+ local _ = GetEntityCoords(playerPed)
if IsPedInAnyVehicle(playerPed, false) then
local vehicle = GetVehiclePedIsIn(playerPed)
@@ -1210,7 +1085,7 @@ end)
-- Create blips
CreateThread(function()
- for k, v in pairs(Config.PoliceStations) do
+ for _, v in pairs(Config.PoliceStations) do
local blip = AddBlipForCoord(v.Blip.Coords)
SetBlipSprite(blip, v.Blip.Sprite)
@@ -1475,40 +1350,6 @@ function CreateBlip(id)
end
end
-RegisterNetEvent("bpt_policejob:updateBlip")
-AddEventHandler("bpt_policejob:updateBlip", function()
- -- Refresh all blips
- for k, existingBlip in pairs(blipsCops) do
- RemoveBlip(existingBlip)
- end
-
- -- Clean the blip table
- blipsCops = {}
-
- -- Enable blip?
- if Config.EnableESXService and not playerInService then
- return
- end
-
- if not Config.EnableJobBlip then
- return
- end
-
- -- Is the player a cop? In that case show all the blips for other cops
- if ESX.PlayerData.job and ESX.PlayerData.job.name == "police" then
- ESX.TriggerServerCallback("bpt_society:getOnlinePlayers", function(players)
- for i = 1, #players, 1 do
- if players[i].job.name == "police" then
- local id = GetPlayerFromServerId(players[i].source)
- if NetworkIsPlayerActive(id) and GetPlayerPed(id) ~= PlayerPedId() then
- CreateBlip(id)
- end
- end
- end
- end)
- end
-end)
-
AddEventHandler("esx:onPlayerSpawn", function(spawn)
isDead = false
TriggerEvent("bpt_policejob:unrestrain")
@@ -1561,9 +1402,3 @@ function ImpoundVehicle(vehicle)
ESX.ShowNotification(TranslateCap("impound_successful"))
currentTask.busy = false
end
-
-if ESX.PlayerLoaded and ESX.PlayerData.job == "police" then
- SetTimeout(1000, function()
- TriggerServerEvent("bpt_policejob:forceBlip")
- end)
-end
diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/client/vehicle.lua b/server-data/resources/[bpt_addons]/bpt_policejob/client/vehicle.lua
index f9138322d..0c56abefb 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/client/vehicle.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/client/vehicle.lua
@@ -1,3 +1,5 @@
+---@diagnostic disable: undefined-global
+
local spawnedVehicles = {}
function OpenVehicleSpawnerMenu(type, station, part, partNum)
diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/config.lua b/server-data/resources/[bpt_addons]/bpt_policejob/config.lua
index 40e662da4..6c14253b0 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/config.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/config.lua
@@ -11,7 +11,6 @@ Config.EnableESXOptionalneeds = false -- Enable if you're using esx_optionalneed
Config.EnableLicenses = true -- Enable if you're using esx_license.
Config.EnableHandcuffTimer = true -- Enable handcuff timer? will unrestrain player after the time ends.
Config.HandcuffTimer = 10 * 60000 -- 10 minutes.
-Config.EnableJobBlip = false -- Enable blips for cops on duty, requires bpt_society.
Config.EnableESXService = false -- Enable esx service?
Config.MaxInService = -1 -- How many people can be in service at once? Set as -1 to have no limit
Config.EnableFinePresets = false -- Set to false to use a custom input fields for fines
@@ -20,368 +19,368 @@ Config.OxInventory = ESX.GetConfig().OxInventory
Config.PoliceStations = {
- LSPD = {
-
- Blip = {
- Coords = vector3(425.1, -979.5, 30.7),
- Sprite = 60,
- Display = 4,
- Scale = 1.2,
- Colour = 29,
- },
-
- Cloakrooms = {
- vector3(462.145050, -999.468140, 30.678345),
- },
-
- Armories = {
- vector3(487.239563, -996.949463, 30.678345),
- },
-
- Vehicles = {
- {
- Spawner = vector3(454.6, -1017.4, 28.4),
- InsideShop = vector3(444.553833, -1019.498901, 28.605835),
- SpawnPoints = {
- { coords = vector3(438.4, -1018.3, 27.7), heading = 90.0, radius = 6.0 },
- { coords = vector3(441.0, -1024.2, 28.3), heading = 90.0, radius = 6.0 },
- { coords = vector3(453.5, -1022.2, 28.0), heading = 90.0, radius = 6.0 },
- { coords = vector3(450.9, -1016.5, 28.1), heading = 90.0, radius = 6.0 },
- },
- },
-
- {
- Spawner = vector3(473.3, -1018.8, 28.0),
- InsideShop = vector3(228.5, -993.5, -99.0),
- SpawnPoints = {
- { coords = vector3(475.9, -1021.6, 28.0), heading = 276.1, radius = 6.0 },
- { coords = vector3(484.1, -1023.1, 27.5), heading = 302.5, radius = 6.0 },
- },
- },
- },
-
- Helicopters = {
- {
- Spawner = vector3(461.1, -981.5, 43.6),
- InsideShop = vector3(477.0, -1106.4, 43.0),
- SpawnPoints = {
- { coords = vector3(449.5, -981.2, 43.6), heading = 92.6, radius = 10.0 },
- },
- },
- },
-
- BossActions = {
- vector3(462.052734, -985.582397, 30.712036),
- },
- },
+ LSPD = {
+
+ Blip = {
+ Coords = vector3(425.1, -979.5, 30.7),
+ Sprite = 60,
+ Display = 4,
+ Scale = 1.2,
+ Colour = 29,
+ },
+
+ Cloakrooms = {
+ vector3(462.145050, -999.468140, 30.678345),
+ },
+
+ Armories = {
+ vector3(487.239563, -996.949463, 30.678345),
+ },
+
+ Vehicles = {
+ {
+ Spawner = vector3(454.6, -1017.4, 28.4),
+ InsideShop = vector3(444.553833, -1019.498901, 28.605835),
+ SpawnPoints = {
+ { coords = vector3(438.4, -1018.3, 27.7), heading = 90.0, radius = 6.0 },
+ { coords = vector3(441.0, -1024.2, 28.3), heading = 90.0, radius = 6.0 },
+ { coords = vector3(453.5, -1022.2, 28.0), heading = 90.0, radius = 6.0 },
+ { coords = vector3(450.9, -1016.5, 28.1), heading = 90.0, radius = 6.0 },
+ },
+ },
+
+ {
+ Spawner = vector3(473.3, -1018.8, 28.0),
+ InsideShop = vector3(228.5, -993.5, -99.0),
+ SpawnPoints = {
+ { coords = vector3(475.9, -1021.6, 28.0), heading = 276.1, radius = 6.0 },
+ { coords = vector3(484.1, -1023.1, 27.5), heading = 302.5, radius = 6.0 },
+ },
+ },
+ },
+
+ Helicopters = {
+ {
+ Spawner = vector3(461.1, -981.5, 43.6),
+ InsideShop = vector3(477.0, -1106.4, 43.0),
+ SpawnPoints = {
+ { coords = vector3(449.5, -981.2, 43.6), heading = 92.6, radius = 10.0 },
+ },
+ },
+ },
+
+ BossActions = {
+ vector3(462.052734, -985.582397, 30.712036),
+ },
+ },
}
Config.AuthorizedWeapons = {
- recruit = {
- { weapon = "WEAPON_STUNGUN", price = 1500 },
- { weapon = "WEAPON_FLASHLIGHT", price = 80 },
- },
-
- officer = {
- { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
- { weapon = "WEAPON_STUNGUN", price = 500 },
- { weapon = "WEAPON_FLASHLIGHT", price = 0 },
- },
-
- sergeant = {
- { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
- { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
- { weapon = "WEAPON_STUNGUN", price = 500 },
- { weapon = "WEAPON_FLASHLIGHT", price = 0 },
- },
-
- lieutenant = {
- { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
- { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
- { weapon = "WEAPON_STUNGUN", price = 500 },
- { weapon = "WEAPON_FLASHLIGHT", price = 0 },
- },
-
- boss = {
- { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
- { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
- { weapon = "WEAPON_STUNGUN", price = 500 },
- { weapon = "WEAPON_FLASHLIGHT", price = 0 },
- },
+ recruit = {
+ { weapon = "WEAPON_STUNGUN", price = 1500 },
+ { weapon = "WEAPON_FLASHLIGHT", price = 80 },
+ },
+
+ officer = {
+ { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
+ { weapon = "WEAPON_STUNGUN", price = 500 },
+ { weapon = "WEAPON_FLASHLIGHT", price = 0 },
+ },
+
+ sergeant = {
+ { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
+ { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
+ { weapon = "WEAPON_STUNGUN", price = 500 },
+ { weapon = "WEAPON_FLASHLIGHT", price = 0 },
+ },
+
+ lieutenant = {
+ { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
+ { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
+ { weapon = "WEAPON_STUNGUN", price = 500 },
+ { weapon = "WEAPON_FLASHLIGHT", price = 0 },
+ },
+
+ boss = {
+ { weapon = "WEAPON_ADVANCEDRIFLE", components = { 0, 6000, 1000, 4000, 8000, nil }, price = 50000 },
+ { weapon = "WEAPON_PUMPSHOTGUN", components = { 2000, 6000, nil }, price = 70000 },
+ { weapon = "WEAPON_STUNGUN", price = 500 },
+ { weapon = "WEAPON_FLASHLIGHT", price = 0 },
+ },
}
Config.AuthorizedVehicles = {
- car = {
- recruit = {},
-
- officer = {
- { model = "police3", price = 20000 },
- },
-
- sergeant = {
- { model = "policet", price = 18500 },
- { model = "policeb", price = 30500 },
- },
-
- lieutenant = {
- { model = "riot", price = 70000 },
- { model = "fbi2", price = 60000 },
- },
-
- boss = {
- { model = "riot", price = 70000 },
- { model = "fbi2", price = 60000 },
- { model = "fbi", price = 60000 },
- { model = "policet", price = 18500 },
- { model = "policeb", price = 30500 },
- { model = "police3", price = 20000 },
- { model = "police3", price = 20000 },
- },
- },
-
- helicopter = {
- recruit = {},
-
- officer = {},
-
- sergeant = {},
-
- lieutenant = {
- { model = "polmav", props = { modLivery = 0 }, price = 200000 },
- },
-
- boss = {
- { model = "polmav", props = { modLivery = 0 }, price = 100000 },
- },
- },
+ car = {
+ recruit = {},
+
+ officer = {
+ { model = "police3", price = 20000 },
+ },
+
+ sergeant = {
+ { model = "policet", price = 18500 },
+ { model = "policeb", price = 30500 },
+ },
+
+ lieutenant = {
+ { model = "riot", price = 70000 },
+ { model = "fbi2", price = 60000 },
+ },
+
+ boss = {
+ { model = "riot", price = 70000 },
+ { model = "fbi2", price = 60000 },
+ { model = "fbi", price = 60000 },
+ { model = "policet", price = 18500 },
+ { model = "policeb", price = 30500 },
+ { model = "police3", price = 20000 },
+ { model = "police3", price = 20000 },
+ },
+ },
+
+ helicopter = {
+ recruit = {},
+
+ officer = {},
+
+ sergeant = {},
+
+ lieutenant = {
+ { model = "polmav", props = { modLivery = 0 }, price = 200000 },
+ },
+
+ boss = {
+ { model = "polmav", props = { modLivery = 0 }, price = 100000 },
+ },
+ },
}
-- CHECK SKINCHANGER CLIENT MAIN.LUA for matching elements
Config.Uniforms = {
- recruit = {
- male = {
- tshirt_1 = 58,
- tshirt_2 = 0,
- torso_1 = 55,
- torso_2 = 0,
- decals_1 = 8,
- decals_2 = 3,
- arms = 41,
- pants_1 = 25,
- pants_2 = 0,
- shoes_1 = 25,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- female = {
- tshirt_1 = 36,
- tshirt_2 = 1,
- torso_1 = 48,
- torso_2 = 0,
- decals_1 = 0,
- decals_2 = 0,
- arms = 44,
- pants_1 = 34,
- pants_2 = 0,
- shoes_1 = 27,
- shoes_2 = 0,
- helmet_1 = 45,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- },
-
- officer = {
- male = {
- tshirt_1 = 58,
- tshirt_2 = 0,
- torso_1 = 55,
- torso_2 = 0,
- decals_1 = 0,
- decals_2 = 0,
- arms = 41,
- pants_1 = 25,
- pants_2 = 0,
- shoes_1 = 25,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- female = {
- tshirt_1 = 35,
- tshirt_2 = 0,
- torso_1 = 48,
- torso_2 = 0,
- decals_1 = 0,
- decals_2 = 0,
- arms = 44,
- pants_1 = 34,
- pants_2 = 0,
- shoes_1 = 27,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- },
-
- sergeant = {
- male = {
- tshirt_1 = 58,
- tshirt_2 = 0,
- torso_1 = 55,
- torso_2 = 0,
- decals_1 = 8,
- decals_2 = 1,
- arms = 41,
- pants_1 = 25,
- pants_2 = 0,
- shoes_1 = 25,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- female = {
- tshirt_1 = 35,
- tshirt_2 = 0,
- torso_1 = 48,
- torso_2 = 0,
- decals_1 = 7,
- decals_2 = 1,
- arms = 44,
- pants_1 = 34,
- pants_2 = 0,
- shoes_1 = 27,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- },
-
- lieutenant = {
- male = {
- tshirt_1 = 58,
- tshirt_2 = 0,
- torso_1 = 55,
- torso_2 = 0,
- decals_1 = 8,
- decals_2 = 2,
- arms = 41,
- pants_1 = 25,
- pants_2 = 0,
- shoes_1 = 25,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- female = {
- tshirt_1 = 35,
- tshirt_2 = 0,
- torso_1 = 48,
- torso_2 = 0,
- decals_1 = 7,
- decals_2 = 2,
- arms = 44,
- pants_1 = 34,
- pants_2 = 0,
- shoes_1 = 27,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- },
-
- boss = {
- male = {
- tshirt_1 = 58,
- tshirt_2 = 0,
- torso_1 = 55,
- torso_2 = 0,
- decals_1 = 8,
- decals_2 = 3,
- arms = 41,
- pants_1 = 25,
- pants_2 = 0,
- shoes_1 = 25,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- female = {
- tshirt_1 = 35,
- tshirt_2 = 0,
- torso_1 = 48,
- torso_2 = 0,
- decals_1 = 7,
- decals_2 = 3,
- arms = 44,
- pants_1 = 34,
- pants_2 = 0,
- shoes_1 = 27,
- shoes_2 = 0,
- helmet_1 = -1,
- helmet_2 = 0,
- chain_1 = 0,
- chain_2 = 0,
- ears_1 = 2,
- ears_2 = 0,
- },
- },
-
- bullet_wear = {
- male = {
- bproof_1 = 11,
- bproof_2 = 1,
- },
- female = {
- bproof_1 = 13,
- bproof_2 = 1,
- },
- },
-
- gilet_wear = {
- male = {
- tshirt_1 = 59,
- tshirt_2 = 1,
- },
- female = {
- tshirt_1 = 36,
- tshirt_2 = 1,
- },
- },
+ recruit = {
+ male = {
+ tshirt_1 = 58,
+ tshirt_2 = 0,
+ torso_1 = 55,
+ torso_2 = 0,
+ decals_1 = 8,
+ decals_2 = 3,
+ arms = 41,
+ pants_1 = 25,
+ pants_2 = 0,
+ shoes_1 = 25,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ female = {
+ tshirt_1 = 36,
+ tshirt_2 = 1,
+ torso_1 = 48,
+ torso_2 = 0,
+ decals_1 = 0,
+ decals_2 = 0,
+ arms = 44,
+ pants_1 = 34,
+ pants_2 = 0,
+ shoes_1 = 27,
+ shoes_2 = 0,
+ helmet_1 = 45,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ },
+
+ officer = {
+ male = {
+ tshirt_1 = 58,
+ tshirt_2 = 0,
+ torso_1 = 55,
+ torso_2 = 0,
+ decals_1 = 0,
+ decals_2 = 0,
+ arms = 41,
+ pants_1 = 25,
+ pants_2 = 0,
+ shoes_1 = 25,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ female = {
+ tshirt_1 = 35,
+ tshirt_2 = 0,
+ torso_1 = 48,
+ torso_2 = 0,
+ decals_1 = 0,
+ decals_2 = 0,
+ arms = 44,
+ pants_1 = 34,
+ pants_2 = 0,
+ shoes_1 = 27,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ },
+
+ sergeant = {
+ male = {
+ tshirt_1 = 58,
+ tshirt_2 = 0,
+ torso_1 = 55,
+ torso_2 = 0,
+ decals_1 = 8,
+ decals_2 = 1,
+ arms = 41,
+ pants_1 = 25,
+ pants_2 = 0,
+ shoes_1 = 25,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ female = {
+ tshirt_1 = 35,
+ tshirt_2 = 0,
+ torso_1 = 48,
+ torso_2 = 0,
+ decals_1 = 7,
+ decals_2 = 1,
+ arms = 44,
+ pants_1 = 34,
+ pants_2 = 0,
+ shoes_1 = 27,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ },
+
+ lieutenant = {
+ male = {
+ tshirt_1 = 58,
+ tshirt_2 = 0,
+ torso_1 = 55,
+ torso_2 = 0,
+ decals_1 = 8,
+ decals_2 = 2,
+ arms = 41,
+ pants_1 = 25,
+ pants_2 = 0,
+ shoes_1 = 25,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ female = {
+ tshirt_1 = 35,
+ tshirt_2 = 0,
+ torso_1 = 48,
+ torso_2 = 0,
+ decals_1 = 7,
+ decals_2 = 2,
+ arms = 44,
+ pants_1 = 34,
+ pants_2 = 0,
+ shoes_1 = 27,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ },
+
+ boss = {
+ male = {
+ tshirt_1 = 58,
+ tshirt_2 = 0,
+ torso_1 = 55,
+ torso_2 = 0,
+ decals_1 = 8,
+ decals_2 = 3,
+ arms = 41,
+ pants_1 = 25,
+ pants_2 = 0,
+ shoes_1 = 25,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ female = {
+ tshirt_1 = 35,
+ tshirt_2 = 0,
+ torso_1 = 48,
+ torso_2 = 0,
+ decals_1 = 7,
+ decals_2 = 3,
+ arms = 44,
+ pants_1 = 34,
+ pants_2 = 0,
+ shoes_1 = 27,
+ shoes_2 = 0,
+ helmet_1 = -1,
+ helmet_2 = 0,
+ chain_1 = 0,
+ chain_2 = 0,
+ ears_1 = 2,
+ ears_2 = 0,
+ },
+ },
+
+ bullet_wear = {
+ male = {
+ bproof_1 = 11,
+ bproof_2 = 1,
+ },
+ female = {
+ bproof_1 = 13,
+ bproof_2 = 1,
+ },
+ },
+
+ gilet_wear = {
+ male = {
+ tshirt_1 = 59,
+ tshirt_2 = 1,
+ },
+ female = {
+ tshirt_1 = 36,
+ tshirt_2 = 1,
+ },
+ },
}
diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/fxmanifest.lua b/server-data/resources/[bpt_addons]/bpt_policejob/fxmanifest.lua
index 30f5842aa..2a8d0ca9b 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/fxmanifest.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/fxmanifest.lua
@@ -4,7 +4,7 @@ game("gta5")
description("Allows Players to RP as Police Officers (cars, outfits, handcuffing etc)")
lua54("yes")
-version("1.0.2")
+version("1.0.3")
shared_script("@es_extended/imports.lua")
diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/locales/en.lua b/server-data/resources/[bpt_addons]/bpt_policejob/locales/en.lua
index e4b8c3fdf..0f55a26ec 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/locales/en.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/locales/en.lua
@@ -1,168 +1,168 @@
Locales["en"] = {
- -- Cloakroom
- ["cloakroom"] = "locker room",
- ["citizen_wear"] = "civilian Outfit",
- ["police_wear"] = "police Outfit",
- ["gilet_wear"] = "orange reflective jacket",
- ["bullet_wear"] = "bulletproof vest",
- ["no_outfit"] = "there's no uniform that fits you!",
- ["open_cloackroom"] = "press [E] to change clothes.",
- -- Armory
- ["remove_object"] = "withdraw object",
- ["deposit_object"] = "deposit object",
- ["get_weapon"] = "withdraw weapon from armory",
- ["put_weapon"] = "store weapon in armory",
- ["buy_weapons"] = "buy weapons",
- ["armory"] = "armory",
- ["open_armory"] = "press [E] to access the Armory.",
- ["armory_owned"] = "owned",
- ["armory_free"] = "free",
- ["armory_item"] = "$%s",
- ["armory_weapontitle"] = "armory - Buy weapon",
- ["armory_componenttitle"] = "armory - Weapon attatchments",
- ["armory_bought"] = "you bought an %s for $%s",
- ["armory_money"] = "you cannot afford that weapon",
- ["armory_hascomponent"] = "you have that attatchment equiped!",
- ["get_weapon_menu"] = "armory - Withdraw Weapon",
- ["put_weapon_menu"] = "armory - Store Weapon",
- ["confirm"] = "Confirm",
- -- Vehicles
- ["vehicle_menu"] = "vehicle",
- ["vehicle_blocked"] = "all available spawn points are currently blocked!",
- ["garage_prompt"] = "press [E] to access the Vehicle Actions.",
- ["garage_title"] = "vehicle Actions",
- ["garage_stored"] = "stored",
- ["garage_notstored"] = "not in garage",
- ["garage_storing"] = "we're attempting to remove the vehicle, make sure no players are around it.",
- ["garage_has_stored"] = "the vehicle has been stored in your garage",
- ["garage_has_notstored"] = "no nearby owned vehicles were found",
- ["garage_notavailable"] = "your vehicle is not stored in the garage.",
- ["garage_blocked"] = "there's no available spawn points!",
- ["garage_empty"] = "you don't have any vehicles in your garage.",
- ["garage_released"] = "your vehicle has been released from the garage.",
- ["garage_store_nearby"] = "there is no nearby vehicles.",
- ["garage_storeditem"] = "open garage",
- ["garage_storeitem"] = "store vehicle in garage",
- ["garage_buyitem"] = "vehicle shop",
- ["garage_notauthorized"] = "you're not authorized to buy this kind of vehicles.",
- ["helicopter_prompt"] = "press [E] to access the Helicopter Actions.",
- ["shop_item"] = "$%s",
- ["vehicleshop_title"] = "vehicle Shop",
- ["vehicleshop_confirm"] = "do you want to buy this vehicle?",
- ["vehicleshop_bought"] = "you have bought %s for ~r~$%s",
- ["vehicleshop_money"] = "you cannot afford that vehicle",
- ["vehicleshop_awaiting_model"] = "the vehicle is currently DOWNLOADING & LOADING please wait",
- ["confirm_no"] = "no",
- ["confirm_yes"] = "yes",
- ["view"] = "View",
- ["buy_car"] = "Buy",
- ["stop_view"] = "Stop Viewing",
- -- Service
- ["service_max"] = "you cannot enter service, max officers in service: %s/%s",
- ["service_not"] = "you have not entered service! You'll have to get changed first.",
- ["service_anonunce"] = "service information",
- ["service_in"] = "you've entered service, welcome!",
- ["service_in_announce"] = "operator %s has entered service!",
- ["service_out"] = "you have left service.",
- ["service_out_announce"] = "operator %s has left their service.",
- -- Action Menu
- ["menu_title"] = "Police",
- ["citizen_interaction"] = "citizen Interaction",
- ["vehicle_interaction"] = "vehicle Interaction",
- ["object_spawner"] = "object Spawner",
- ["id_card"] = "ID Card",
- ["search"] = "search",
- ["handcuff"] = "cuff / Uncuff",
- ["drag"] = "escort",
- ["put_in_vehicle"] = "put in Vehicle",
- ["out_the_vehicle"] = "drag out from vehicle",
- ["fine"] = "fine",
- ["unpaid_bills"] = "manage unpaid bills",
- ["license_check"] = "manage license",
- ["license_revoke"] = "revoke license",
- ["license_revoked"] = "your %s has been revoked!",
- ["licence_you_revoked"] = "you revoked a %s which belonged to %s",
- ["no_players_nearby"] = "there is no player(s) nearby!",
- ["being_searched"] = "you are being searched by the Police",
- -- Vehicle interaction
- ["vehicle_info"] = "vehicle Info",
- ["pick_lock"] = "lockpick Vehicle",
- ["vehicle_unlocked"] = "vehicle Unlocked",
- ["no_vehicles_nearby"] = "there is no vehicles nearby",
- ["impound"] = "impound vehicle",
- ["impound_prompt"] = "press [E] to cancel the impound",
- ["impound_canceled"] = "you canceled the impound",
- ["impound_canceled_moved"] = "the impound has been canceled because the vehicle moved",
- ["impound_successful"] = "you have impounded the vehicle",
- ["search_database"] = "vehicle information",
- ["search_database_title"] = "vehicle information - search with registration number",
- ["search_database_error_invalid"] = "that is ~r~not a valid registration number",
- ["search_plate"] = "Enter Plate",
- ["lookup_plate"] = "Lookup Plate",
- -- Traffic interaction
- ["traffic_interaction"] = "interaction Traffic",
- ["cone"] = "cone",
- ["barrier"] = "barrier",
- ["spikestrips"] = "spikestrips",
- ["box"] = "box",
- ["cash"] = "box of cash",
- -- ID Card Menu
- ["name"] = "name: %s",
- ["job"] = "job: %s",
- ["sex"] = "sex: %s",
- ["dob"] = "DOB: %s",
- ["height"] = "height: %s",
- ["bac"] = "BAC: %s",
- ["unknown"] = "unknown",
- ["male"] = "male",
- ["female"] = "female",
- -- Body Search Menu
- ["guns_label"] = "--- Guns ---",
- ["inventory_label"] = "--- Inventory ---",
- ["license_label"] = " --- Licenses ---",
- ["confiscate"] = "confiscate %s",
- ["confiscate_weapon"] = "confiscate %s with %s bullets",
- ["confiscate_inv"] = "confiscate %sx %s",
- ["confiscate_dirty"] = 'confiscate dirty money: $%s',
- ["you_confiscated"] = "you confiscated %sx %s from %s",
- ["got_confiscated"] = "%sx %s were confiscated by %s",
- ["you_confiscated_account"] = "you confiscated $%s (%s) from %s",
- ["got_confiscated_account"] = "$%s (%s) was confiscated by %s",
- ["you_confiscated_weapon"] = "you confiscated %s from %s with ~o~%s bullets",
- ["got_confiscated_weapon"] = "your %s with ~o~%s bullets was confiscated by %s",
- ["traffic_offense"] = "traffic Offense",
- ["minor_offense"] = "minor Offense",
- ["average_offense"] = "average Offense",
- ["major_offense"] = "major Offense",
- ["fine_total"] = "fine: %s",
- ["fine_enter_amount"] = "Enter the amount of the fine",
- ["fine_enter_text"] = "Enter the reason for the fine",
- ["invalid_amount"] = "Error: Amount was not a number or invalid",
- -- Vehicle Info Menu
- ["plate"] = "plate: %s",
- ["owner_unknown"] = "owner: Unknown",
- ["owner"] = "owner: %s",
- -- Boss Menu
- ["open_bossmenu"] = "press [E] to open the menu",
- ["quantity_invalid"] = "invalid quantity",
- ["have_withdrawn"] = "you have withdrawn %sx %s",
- ["have_deposited"] = "you have deposited %sx %s",
- ["quantity"] = "quantity",
- ["quantity_placeholder"] = "Amount to withdraw..",
- ["inventory"] = "inventory",
- ["police_stock"] = "police Stock",
- -- Misc
- ["remove_prop"] = "press [E] to delete the object",
- ["map_blip"] = "police Station",
- ["unrestrained_timer"] = "you feel your handcuffs slowly losing grip and fading away.",
- -- Notifications
- ["alert_police"] = "police alert",
- ["phone_police"] = "police",
- -- Keybind
- ["interaction"] = "Interact",
- ["quick_actions"] = "Quick Actions",
- -- Other
- ["society_police"] = "Police",
- ["received_firearms_license"] = "You have received your firearms license",
- ["released_gun_licence"] = "you have issued your gun licence",
+ -- Cloakroom
+ ["cloakroom"] = "locker room",
+ ["citizen_wear"] = "civilian Outfit",
+ ["police_wear"] = "police Outfit",
+ ["gilet_wear"] = "orange reflective jacket",
+ ["bullet_wear"] = "bulletproof vest",
+ ["no_outfit"] = "there's no uniform that fits you!",
+ ["open_cloackroom"] = "press [E] to change clothes.",
+ -- Armory
+ ["remove_object"] = "withdraw object",
+ ["deposit_object"] = "deposit object",
+ ["get_weapon"] = "withdraw weapon from armory",
+ ["put_weapon"] = "store weapon in armory",
+ ["buy_weapons"] = "buy weapons",
+ ["armory"] = "armory",
+ ["open_armory"] = "press [E] to access the Armory.",
+ ["armory_owned"] = "owned",
+ ["armory_free"] = "free",
+ ["armory_item"] = "$%s",
+ ["armory_weapontitle"] = "armory - Buy weapon",
+ ["armory_componenttitle"] = "armory - Weapon attatchments",
+ ["armory_bought"] = "you bought an %s for $%s",
+ ["armory_money"] = "you cannot afford that weapon",
+ ["armory_hascomponent"] = "you have that attatchment equiped!",
+ ["get_weapon_menu"] = "armory - Withdraw Weapon",
+ ["put_weapon_menu"] = "armory - Store Weapon",
+ ["confirm"] = "Confirm",
+ -- Vehicles
+ ["vehicle_menu"] = "vehicle",
+ ["vehicle_blocked"] = "all available spawn points are currently blocked!",
+ ["garage_prompt"] = "press [E] to access the Vehicle Actions.",
+ ["garage_title"] = "vehicle Actions",
+ ["garage_stored"] = "stored",
+ ["garage_notstored"] = "not in garage",
+ ["garage_storing"] = "we're attempting to remove the vehicle, make sure no players are around it.",
+ ["garage_has_stored"] = "the vehicle has been stored in your garage",
+ ["garage_has_notstored"] = "no nearby owned vehicles were found",
+ ["garage_notavailable"] = "your vehicle is not stored in the garage.",
+ ["garage_blocked"] = "there's no available spawn points!",
+ ["garage_empty"] = "you don't have any vehicles in your garage.",
+ ["garage_released"] = "your vehicle has been released from the garage.",
+ ["garage_store_nearby"] = "there is no nearby vehicles.",
+ ["garage_storeditem"] = "open garage",
+ ["garage_storeitem"] = "store vehicle in garage",
+ ["garage_buyitem"] = "vehicle shop",
+ ["garage_notauthorized"] = "you're not authorized to buy this kind of vehicles.",
+ ["helicopter_prompt"] = "press [E] to access the Helicopter Actions.",
+ ["shop_item"] = "$%s",
+ ["vehicleshop_title"] = "vehicle Shop",
+ ["vehicleshop_confirm"] = "do you want to buy this vehicle?",
+ ["vehicleshop_bought"] = "you have bought %s for ~r~$%s",
+ ["vehicleshop_money"] = "you cannot afford that vehicle",
+ ["vehicleshop_awaiting_model"] = "the vehicle is currently DOWNLOADING & LOADING please wait",
+ ["confirm_no"] = "no",
+ ["confirm_yes"] = "yes",
+ ["view"] = "View",
+ ["buy_car"] = "Buy",
+ ["stop_view"] = "Stop Viewing",
+ -- Service
+ ["service_max"] = "you cannot enter service, max officers in service: %s/%s",
+ ["service_not"] = "you have not entered service! You'll have to get changed first.",
+ ["service_anonunce"] = "service information",
+ ["service_in"] = "you've entered service, welcome!",
+ ["service_in_announce"] = "operator %s has entered service!",
+ ["service_out"] = "you have left service.",
+ ["service_out_announce"] = "operator %s has left their service.",
+ -- Action Menu
+ ["menu_title"] = "Police",
+ ["citizen_interaction"] = "citizen Interaction",
+ ["vehicle_interaction"] = "vehicle Interaction",
+ ["object_spawner"] = "object Spawner",
+ ["id_card"] = "ID Card",
+ ["search"] = "search",
+ ["handcuff"] = "cuff / Uncuff",
+ ["drag"] = "escort",
+ ["put_in_vehicle"] = "put in Vehicle",
+ ["out_the_vehicle"] = "drag out from vehicle",
+ ["fine"] = "fine",
+ ["unpaid_bills"] = "manage unpaid bills",
+ ["license_check"] = "manage license",
+ ["license_revoke"] = "revoke license",
+ ["license_revoked"] = "your %s has been revoked!",
+ ["licence_you_revoked"] = "you revoked a %s which belonged to %s",
+ ["no_players_nearby"] = "there is no player(s) nearby!",
+ ["being_searched"] = "you are being searched by the Police",
+ -- Vehicle interaction
+ ["vehicle_info"] = "vehicle Info",
+ ["pick_lock"] = "lockpick Vehicle",
+ ["vehicle_unlocked"] = "vehicle Unlocked",
+ ["no_vehicles_nearby"] = "there is no vehicles nearby",
+ ["impound"] = "impound vehicle",
+ ["impound_prompt"] = "press [E] to cancel the impound",
+ ["impound_canceled"] = "you canceled the impound",
+ ["impound_canceled_moved"] = "the impound has been canceled because the vehicle moved",
+ ["impound_successful"] = "you have impounded the vehicle",
+ ["search_database"] = "vehicle information",
+ ["search_database_title"] = "vehicle information - search with registration number",
+ ["search_database_error_invalid"] = "that is ~r~not a valid registration number",
+ ["search_plate"] = "Enter Plate",
+ ["lookup_plate"] = "Lookup Plate",
+ -- Traffic interaction
+ ["traffic_interaction"] = "interaction Traffic",
+ ["cone"] = "cone",
+ ["barrier"] = "barrier",
+ ["spikestrips"] = "spikestrips",
+ ["box"] = "box",
+ ["cash"] = "box of cash",
+ -- ID Card Menu
+ ["name"] = "name: %s",
+ ["job"] = "job: %s",
+ ["sex"] = "sex: %s",
+ ["dob"] = "DOB: %s",
+ ["height"] = "height: %s",
+ ["bac"] = "BAC: %s",
+ ["unknown"] = "unknown",
+ ["male"] = "male",
+ ["female"] = "female",
+ -- Body Search Menu
+ ["guns_label"] = "--- Guns ---",
+ ["inventory_label"] = "--- Inventory ---",
+ ["license_label"] = " --- Licenses ---",
+ ["confiscate"] = "confiscate %s",
+ ["confiscate_weapon"] = "confiscate %s with %s bullets",
+ ["confiscate_inv"] = "confiscate %sx %s",
+ ["confiscate_dirty"] = 'confiscate dirty money: $%s',
+ ["you_confiscated"] = "you confiscated %sx %s from %s",
+ ["got_confiscated"] = "%sx %s were confiscated by %s",
+ ["you_confiscated_account"] = "you confiscated $%s (%s) from %s",
+ ["got_confiscated_account"] = "$%s (%s) was confiscated by %s",
+ ["you_confiscated_weapon"] = "you confiscated %s from %s with ~o~%s bullets",
+ ["got_confiscated_weapon"] = "your %s with ~o~%s bullets was confiscated by %s",
+ ["traffic_offense"] = "traffic Offense",
+ ["minor_offense"] = "minor Offense",
+ ["average_offense"] = "average Offense",
+ ["major_offense"] = "major Offense",
+ ["fine_total"] = "fine: %s",
+ ["fine_enter_amount"] = "Enter the amount of the fine",
+ ["fine_enter_text"] = "Enter the reason for the fine",
+ ["invalid_amount"] = "Error: Amount was not a number or invalid",
+ -- Vehicle Info Menu
+ ["plate"] = "plate: %s",
+ ["owner_unknown"] = "owner: Unknown",
+ ["owner"] = "owner: %s",
+ -- Boss Menu
+ ["open_bossmenu"] = "press [E] to open the menu",
+ ["quantity_invalid"] = "invalid quantity",
+ ["have_withdrawn"] = "you have withdrawn %sx %s",
+ ["have_deposited"] = "you have deposited %sx %s",
+ ["quantity"] = "quantity",
+ ["quantity_placeholder"] = "Amount to withdraw..",
+ ["inventory"] = "inventory",
+ ["police_stock"] = "police Stock",
+ -- Misc
+ ["remove_prop"] = "press [E] to delete the object",
+ ["map_blip"] = "police Station",
+ ["unrestrained_timer"] = "you feel your handcuffs slowly losing grip and fading away.",
+ -- Notifications
+ ["alert_police"] = "police alert",
+ ["phone_police"] = "police",
+ -- Keybind
+ ["interaction"] = "Interact",
+ ["quick_actions"] = "Quick Actions",
+ -- Other
+ ["society_police"] = "Police",
+ ["received_firearms_license"] = "You have received your firearms license",
+ ["released_gun_licence"] = "you have issued your gun licence",
}
diff --git a/server-data/resources/[bpt_addons]/bpt_policejob/server/main.lua b/server-data/resources/[bpt_addons]/bpt_policejob/server/main.lua
index 7679ccd2b..aaebdde51 100644
--- a/server-data/resources/[bpt_addons]/bpt_policejob/server/main.lua
+++ b/server-data/resources/[bpt_addons]/bpt_policejob/server/main.lua
@@ -1,3 +1,5 @@
+---@diagnostic disable: undefined-global
+
if Config.EnableESXService then
if Config.MaxInService ~= -1 then
TriggerEvent("esx_service:activateService", "police", Config.MaxInService)
@@ -309,55 +311,6 @@ ESX.RegisterServerCallback("bpt_policejob:removeArmoryWeapon", function(source,
end)
end)
-ESX.RegisterServerCallback("bpt_policejob:buyWeapon", function(source, cb, weaponName, type, componentNum)
- local xPlayer = ESX.GetPlayerFromId(source)
- local authorizedWeapons, selectedWeapon = Config.AuthorizedWeapons[xPlayer.job.grade_name]
-
- for k, v in ipairs(authorizedWeapons) do
- if v.weapon == weaponName then
- selectedWeapon = v
- break
- end
- end
-
- if not selectedWeapon then
- print(("[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Weapon - ^5%s^7!"):format(source, weaponName))
- cb(false)
- else
- -- Weapon
- if type == 1 then
- if xPlayer.getMoney() >= selectedWeapon.price then
- xPlayer.removeMoney(selectedWeapon.price, "Weapon Bought")
- xPlayer.addWeapon(weaponName, 100)
-
- cb(true)
- else
- cb(false)
- end
-
- -- Weapon Component
- elseif type == 2 then
- local price = selectedWeapon.components[componentNum]
- local weaponNum, weapon = ESX.GetWeapon(weaponName)
- local component = weapon.components[componentNum]
-
- if component then
- if xPlayer.getMoney() >= price then
- xPlayer.removeMoney(price, "Weapon Component Bought")
- xPlayer.addWeaponComponent(weaponName, component.name)
-
- cb(true)
- else
- cb(false)
- end
- else
- print(("[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Weapon Component - ^5%s^7!"):format(source, componentNum))
- cb(false)
- end
- end
- end
-end)
-
ESX.RegisterServerCallback("bpt_policejob:buyJobVehicle", function(source, cb, vehicleProps, type)
local xPlayer = ESX.GetPlayerFromId(source)
local price = GetPriceFromHash(vehicleProps.model, xPlayer.job.grade_name, type)
@@ -423,18 +376,6 @@ ESX.RegisterServerCallback("bpt_policejob:getPlayerInventory", function(source,
cb({ items = items })
end)
-AddEventHandler("playerDropped", function()
- local playerId = source
- if playerId then
- local xPlayer = ESX.GetPlayerFromId(playerId)
-
- if xPlayer and xPlayer.job.name == "police" then
- Wait(5000)
- TriggerClientEvent("bpt_policejob:updateBlip", -1)
- end
- end
-end)
-
RegisterNetEvent("bpt_policejob:spawned")
AddEventHandler("bpt_policejob:spawned", function()
local playerId = source