diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index a4b90dbd..df7562bd 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,20 +1,20 @@
-name: CI
+name: Lint
on: [push, pull_request]
jobs:
lint:
- name: Lint Lua Scripts
+ name: Lint Resource
runs-on: ubuntu-latest
steps:
- - name: Checkout
- uses: actions/checkout@v2
+ - uses: actions/checkout@v2
- name: Lint
- uses: Sub-Zero-Interactive/fivem-lua-lint-action@v1.1
+ uses: iLLeniumStudios/fivem-lua-lint-action@v2
with:
capture: "junit.xml"
- args: "-t --formatter JUnit --no-max-comment-line-length"
- extra_libs: "+esx_legacy"
- - name: Publish Test Report
- uses: mikepenz/action-junit-report@v2
+ args: "-t --formatter JUnit"
+ - name: Generate Lint Report
+ if: always()
+ uses: mikepenz/action-junit-report@v3
with:
report_paths: "**/junit.xml"
- fail_on_failure: 0
\ No newline at end of file
+ check_name: Linting Report
+ fail_on_failure: false
diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql
index ae6c1840..21937885 100644
--- a/[SQL]/legacy.sql
+++ b/[SQL]/legacy.sql
@@ -112,6 +112,19 @@ CREATE TABLE `cardealer_vehicles` (
-- --------------------------------------------------------
+--
+-- Table structure for table `multicharacter_slots`
+--
+
+CREATE TABLE `multicharacter_slots` (
+ `identifier` VARCHAR(60) NOT NULL,
+ `slots` INT(11) NOT NULL,
+ PRIMARY KEY (`identifier`) USING BTREE,
+ INDEX `slots` (`slots`) USING BTREE
+) ENGINE=InnoDB;
+
+-- --------------------------------------------------------
+
--
-- Table structure for table `datastore`
--
@@ -317,6 +330,10 @@ CREATE TABLE `licenses` (
--
INSERT INTO `licenses` (`type`, `label`) VALUES
+('dmv', 'Driving Permit'),
+('drive', 'Drivers License'),
+('drive_bike', 'Motorcycle License'),
+('drive_truck', 'Commercial Drivers License'),
('weed_processing', 'Weed Processing License');
-- --------------------------------------------------------
@@ -501,6 +518,7 @@ CREATE TABLE `users` (
`status` longtext DEFAULT NULL,
`is_dead` tinyint(1) DEFAULT 0,
`id` int(11) NOT NULL,
+ `disabled` TINYINT(1) NULL DEFAULT '0',
`last_property` varchar(255) DEFAULT NULL
) ENGINE=InnoDB;
@@ -831,67 +849,6 @@ CREATE TABLE `vehicle_sold` (
`date` varchar(50) NOT NULL
) ENGINE=InnoDB;
--- --------------------------------------------------------
-
---
--- Table structure for table `weashops`
---
-
-CREATE TABLE `weashops` (
- `id` int(11) NOT NULL,
- `zone` varchar(255) NOT NULL,
- `item` varchar(255) NOT NULL,
- `price` int(11) NOT NULL
-) ENGINE=InnoDB;
-
---
--- Dumping data for table `weashops`
---
-
-INSERT INTO `weashops` (`id`, `zone`, `item`, `price`) VALUES
-(1, 'GunShop', 'WEAPON_PISTOL', 300),
-(2, 'BlackWeashop', 'WEAPON_PISTOL', 500),
-(3, 'GunShop', 'WEAPON_FLASHLIGHT', 60),
-(4, 'BlackWeashop', 'WEAPON_FLASHLIGHT', 70),
-(5, 'GunShop', 'WEAPON_MACHETE', 90),
-(6, 'BlackWeashop', 'WEAPON_MACHETE', 110),
-(7, 'GunShop', 'WEAPON_NIGHTSTICK', 150),
-(8, 'BlackWeashop', 'WEAPON_NIGHTSTICK', 150),
-(9, 'GunShop', 'WEAPON_BAT', 100),
-(10, 'BlackWeashop', 'WEAPON_BAT', 100),
-(11, 'GunShop', 'WEAPON_STUNGUN', 50),
-(12, 'BlackWeashop', 'WEAPON_STUNGUN', 50),
-(13, 'GunShop', 'WEAPON_MICROSMG', 1400),
-(14, 'BlackWeashop', 'WEAPON_MICROSMG', 1700),
-(15, 'GunShop', 'WEAPON_PUMPSHOTGUN', 3400),
-(16, 'BlackWeashop', 'WEAPON_PUMPSHOTGUN', 3500),
-(17, 'GunShop', 'WEAPON_ASSAULTRIFLE', 10000),
-(18, 'BlackWeashop', 'WEAPON_ASSAULTRIFLE', 11000),
-(19, 'GunShop', 'WEAPON_SPECIALCARBINE', 15000),
-(20, 'BlackWeashop', 'WEAPON_SPECIALCARBINE', 16500),
-(21, 'GunShop', 'WEAPON_SNIPERRIFLE', 22000),
-(22, 'BlackWeashop', 'WEAPON_SNIPERRIFLE', 24000),
-(23, 'GunShop', 'WEAPON_FIREWORK', 18000),
-(24, 'BlackWeashop', 'WEAPON_FIREWORK', 20000),
-(25, 'GunShop', 'WEAPON_GRENADE', 500),
-(26, 'BlackWeashop', 'WEAPON_GRENADE', 650),
-(27, 'GunShop', 'WEAPON_BZGAS', 200),
-(28, 'BlackWeashop', 'WEAPON_BZGAS', 350),
-(29, 'GunShop', 'WEAPON_FIREEXTINGUISHER', 100),
-(30, 'BlackWeashop', 'WEAPON_FIREEXTINGUISHER', 100),
-(31, 'GunShop', 'WEAPON_BALL', 50),
-(32, 'BlackWeashop', 'WEAPON_BALL', 50),
-(33, 'GunShop', 'WEAPON_SMOKEGRENADE', 100),
-(34, 'BlackWeashop', 'WEAPON_SMOKEGRENADE', 100),
-(35, 'BlackWeashop', 'WEAPON_APPISTOL', 1100),
-(36, 'BlackWeashop', 'WEAPON_CARBINERIFLE', 12000),
-(37, 'BlackWeashop', 'WEAPON_HEAVYSNIPER', 30000),
-(38, 'BlackWeashop', 'WEAPON_MINIGUN', 45000),
-(39, 'BlackWeashop', 'WEAPON_RAILGUN', 50000),
-(40, 'BlackWeashop', 'WEAPON_STICKYBOMB', 500);
-
--- --------------------------------------------------------
-
--
-- Table structure for table `whitelist`
--
@@ -1046,12 +1003,6 @@ ALTER TABLE `vehicle_categories`
ALTER TABLE `vehicle_sold`
ADD PRIMARY KEY (`plate`);
---
--- Indexes for table `weashops`
---
-ALTER TABLE `weashops`
- ADD PRIMARY KEY (`id`);
-
--
-- Indexes for table `whitelist`
--
@@ -1130,12 +1081,6 @@ ALTER TABLE `user_licenses`
ALTER TABLE `user_parkings`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `weashops`
---
-ALTER TABLE `weashops`
- MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=41;
-
--
-- ESX Phone
--
diff --git a/[esx]/es_extended/client/functions.lua b/[esx]/es_extended/client/functions.lua
index 25a5facf..7f7113e2 100644
--- a/[esx]/es_extended/client/functions.lua
+++ b/[esx]/es_extended/client/functions.lua
@@ -77,12 +77,30 @@ function ESX.SetPlayerData(key, val)
end
end
-function ESX.ShowNotification(msg)
- BeginTextCommandThefeedPost('STRING')
- AddTextComponentSubstringPlayerName(msg)
- EndTextCommandThefeedPostTicker(0,1)
+function ESX.Progressbar(message,length, Options)
+ exports["esx_progressbar"]:Progressbar(message,length, Options)
end
+
+function ESX.ShowNotification(message, type, length)
+ if Config.NativeNotify then
+ BeginTextCommandThefeedPost('STRING')
+ AddTextComponentSubstringPlayerName(message)
+ EndTextCommandThefeedPostTicker(0,1)
+ else
+ exports["esx_notify"]:Notify(type, length, message)
+ end
+end
+
+function ESX.TextUI(message, type)
+ exports["esx_textui"]:TextUI(message, type)
+end
+
+function ESX.HideUI()
+ exports["esx_textui"]:HideUI()
+end
+
+
function ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex)
if saveToBrief == nil then saveToBrief = true end
AddTextEntry('esxAdvancedNotification', msg)
@@ -573,6 +591,19 @@ function ESX.Game.GetVehicleProperties(vehicle)
if DoesEntityExist(vehicle) then
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
+ local hasCustomPrimaryColor = GetIsVehiclePrimaryColourCustom(vehicle)
+ local customPrimaryColor = nil
+ if hasCustomPrimaryColor then
+ local r, g, b = GetVehicleCustomPrimaryColour(vehicle)
+ customPrimaryColor = { r, g, b }
+ end
+
+ local hasCustomSecondaryColor = GetIsVehicleSecondaryColourCustom(vehicle)
+ local customSecondaryColor = nil
+ if hasCustomSecondaryColor then
+ local r, g, b = GetVehicleCustomSecondaryColour(vehicle)
+ customSecondaryColor = { r, g, b }
+ end
local extras = {}
for extraId=0, 12 do
@@ -582,9 +613,45 @@ function ESX.Game.GetVehicleProperties(vehicle)
end
end
+ local doorsBroken, windowsBroken, tyreBurst = {}, {}, {}
+ local numWheels = tostring(GetVehicleNumberOfWheels(vehicle))
+
+ local TyresIndex = { -- Wheel index list according to the number of vehicle wheels.
+ ['2'] = {0, 4}, -- Bike and cycle.
+ ['3'] = {0, 1, 4, 5}, -- Vehicle with 3 wheels (get for wheels because some 3 wheels vehicles have 2 wheels on front and one rear or the reverse).
+ ['4'] = {0, 1, 4, 5}, -- Vehicle with 4 wheels.
+ ['6'] = {0, 1, 2, 3, 4, 5}, -- Vehicle with 6 wheels.
+ }
+
+ for tyre,idx in pairs(TyresIndex[numWheels]) do
+ if IsVehicleTyreBurst(vehicle, idx, false) then
+ tyreBurst[tostring(idx)] = true
+ else
+ tyreBurst[tostring(idx)] = false
+ end
+ end
+
+ for windowId = 0, 7 do -- 13
+ if not IsVehicleWindowIntact(vehicle, windowId) then
+ windowsBroken[tostring(windowId)] = true
+ else
+ windowsBroken[tostring(windowId)] = false
+ end
+ end
+
+ for doorsId = 0, GetNumberOfVehicleDoors(vehicle) do
+ if IsVehicleDoorDamaged(vehicle, doorsId) then
+ doorsBroken[tostring(doorsId)] = true
+ else
+ doorsBroken[tostring(doorsId)] = false
+ end
+ end
+
return {
model = GetEntityModel(vehicle),
-
+ doorsBroken = doorsBroken,
+ windowsBroken = windowsBroken,
+ tyreBurst = tyreBurst,
plate = ESX.Math.Trim(GetVehicleNumberPlateText(vehicle)),
plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
@@ -596,6 +663,8 @@ function ESX.Game.GetVehicleProperties(vehicle)
dirtLevel = ESX.Math.Round(GetVehicleDirtLevel(vehicle), 1),
color1 = colorPrimary,
color2 = colorSecondary,
+ customPrimaryColor = customPrimaryColor,
+ customSecondaryColor = customSecondaryColor,
pearlescentColor = pearlescentColor,
wheelColor = wheelColor,
@@ -662,8 +731,9 @@ function ESX.Game.GetVehicleProperties(vehicle)
modAerials = GetVehicleMod(vehicle, 43),
modTrimB = GetVehicleMod(vehicle, 44),
modTank = GetVehicleMod(vehicle, 45),
- modWindows = GetVehicleMod(vehicle, 46),
- modLivery = GetVehicleLivery(vehicle)
+ modDoorR = GetVehicleMod(vehicle, 47),
+ modLivery = GetVehicleLivery(vehicle),
+ modLightbar = GetVehicleMod(vehicle, 49),
}
else
return
@@ -683,6 +753,8 @@ function ESX.Game.SetVehicleProperties(vehicle, props)
if props.tankHealth then SetVehiclePetrolTankHealth(vehicle, props.tankHealth + 0.0) end
if props.fuelLevel then SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0) end
if props.dirtLevel then SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0) end
+ if props.customPrimaryColor then SetVehicleCustomPrimaryColour(vehicle, props.customPrimaryColor[1], props.customPrimaryColor[2], props.customPrimaryColor[3]) end
+ if props.customSecondaryColor then SetVehicleCustomSecondaryColour(vehicle, props.customSecondaryColor[1], props.customSecondaryColor[2], props.customSecondaryColor[3]) end
if props.color1 then SetVehicleColours(vehicle, props.color1, colorSecondary) end
if props.color2 then SetVehicleColours(vehicle, props.color1 or colorPrimary, props.color2) end
if props.pearlescentColor then SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor) end
@@ -756,9 +828,26 @@ function ESX.Game.SetVehicleProperties(vehicle, props)
if props.modWindows then SetVehicleMod(vehicle, 46, props.modWindows, false) end
if props.modLivery then
- SetVehicleMod(vehicle, 48, props.modLivery, false)
SetVehicleLivery(vehicle, props.modLivery)
end
+
+ if props.windowsBroken then
+ for k, v in pairs(props.windowsBroken) do
+ if v then SmashVehicleWindow(vehicle, tonumber(k)) end
+ end
+ end
+
+ if props.doorsBroken then
+ for k, v in pairs(props.doorsBroken) do
+ if v then SetVehicleDoorBroken(vehicle, tonumber(k), true) end
+ end
+ end
+
+ if props.tyreBurst then
+ for k, v in pairs(props.tyreBurst) do
+ if v then SetVehicleTyreBurst(vehicle, tonumber(k), true, 1000.0) end
+ end
+ end
end
end
@@ -1042,8 +1131,8 @@ AddEventHandler('esx:serverCallback', function(requestId, ...)
end)
RegisterNetEvent('esx:showNotification')
-AddEventHandler('esx:showNotification', function(msg)
- ESX.ShowNotification(msg)
+AddEventHandler('esx:showNotification', function(msg, type, length)
+ ESX.ShowNotification(msg, type, length)
end)
RegisterNetEvent('esx:showAdvancedNotification')
diff --git a/[esx]/es_extended/client/main.lua b/[esx]/es_extended/client/main.lua
index 2897991f..2861d4ef 100644
--- a/[esx]/es_extended/client/main.lua
+++ b/[esx]/es_extended/client/main.lua
@@ -55,6 +55,10 @@ AddEventHandler('esx:playerLoaded', function(xPlayer, isNew, skin)
NetworkSetFriendlyFireOption(true)
end
+ if Config.DisableHealthRegen then
+ SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0)
+ end
+
if Config.EnableHud then
for k,v in ipairs(ESX.PlayerData.accounts) do
local accountTpl = '

{{money}}
'
@@ -300,7 +304,7 @@ if not Config.OxInventory then
RegisterNetEvent('esx:createMissingPickups')
AddEventHandler('esx:createMissingPickups', function(missingPickups)
for pickupId, pickup in pairs(missingPickups) do
- TriggerEvent('esx:createPickup', pickupId, pickup.label, pickup.coords, pickup.type, pickup.name, pickup.components, pickup.tintIndex)
+ TriggerEvent('esx:createPickup', pickupId, pickup.label, pickup.coords - vector3(0,0, 1.0), pickup.type, pickup.name, pickup.components, pickup.tintIndex)
end
end)
end
@@ -389,36 +393,32 @@ end
function StartServerSyncLoops()
if not Config.OxInventory then
- -- keep track of ammo
- CreateThread(function()
- local currentWeapon = {timer=0}
- while ESX.PlayerLoaded do
- local sleep = 500
+ -- keep track of ammo
- if currentWeapon.timer == sleep then
- local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash)
- TriggerServerEvent('esx:updateWeaponAmmo', currentWeapon.name, ammoCount)
- currentWeapon.timer = 0
- elseif currentWeapon.timer > sleep then
- currentWeapon.timer = currentWeapon.timer - sleep
- end
-
- if IsPedArmed(ESX.PlayerData.ped, 4) then
- sleep = 0
- if IsPedShooting(ESX.PlayerData.ped) then
- local _,weaponHash = GetCurrentPedWeapon(ESX.PlayerData.ped, true)
- local weapon = ESX.GetWeaponFromHash(weaponHash)
-
- if weapon then
- currentWeapon.name = weapon.name
- currentWeapon.hash = weaponHash
- currentWeapon.timer = 100 * sleep
- end
+ CreateThread(function()
+ local currentWeapon = {Ammo = 0}
+ while ESX.PlayerLoaded do
+ local sleep = 300
+ if GetSelectedPedWeapon(ESX.PlayerData.ped) ~= -1569615261 then
+ sleep = 0
+ local _,weaponHash = GetCurrentPedWeapon(ESX.PlayerData.ped, true)
+ local weapon = ESX.GetWeaponFromHash(weaponHash)
+ if weapon then
+ local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, weaponHash)
+ if weapon.name ~= currentWeapon.name then
+ currentWeapon.Ammo = ammoCount
+ currentWeapon.name = weapon.name
+ else
+ if ammoCount ~= currentWeapon.Ammo then
+ currentWeapon.Ammo = ammoCount
+ TriggerServerEvent('esx:updateWeaponAmmo', weapon.name, ammoCount)
+ end
+ end
+ end
+ end
+ Wait(sleep)
end
- end
- Wait(sleep)
- end
- end)
+ end)
end
-- sync current player coords with server
diff --git a/[esx]/es_extended/config.lua b/[esx]/es_extended/config.lua
index 6d9f4203..60378868 100644
--- a/[esx]/es_extended/config.lua
+++ b/[esx]/es_extended/config.lua
@@ -17,6 +17,10 @@ Config.EnableDebug = false -- Use Debug options?
Config.EnableDefaultInventory = true -- Display the default Inventory ( F2 )
Config.EnableWantedLevel = false -- Use Normal GTA wanted Level?
Config.EnablePVP = true -- Allow Player to player combat
+Config.NativeNotify = false -- true = old esx notification
+Config.DisableHealthRegen = true
-Config.Multichar = false -- Enable support for esx_multicharacter
+Config.Multichar = true -- Enable support for esx_multicharacter
Config.Identity = true -- Select a characters identity data before they have loaded in (this happens by default with multichar)
+Config.DistanceGive = 4.0 -- Max distance when giving items, weapons etc.
+Config.OnDuty = true -- Default state of the on duty system
diff --git a/[esx]/es_extended/fxmanifest.lua b/[esx]/es_extended/fxmanifest.lua
index be327f6f..7774e187 100644
--- a/[esx]/es_extended/fxmanifest.lua
+++ b/[esx]/es_extended/fxmanifest.lua
@@ -4,8 +4,8 @@ game 'gta5'
description 'ES Extended'
-version '1.5.0'
lua54 'yes'
+version '1.7.0'
shared_scripts {
'locale.lua',
diff --git a/[esx]/es_extended/locales/en.lua b/[esx]/es_extended/locales/en.lua
index 4420bd79..761babde 100644
--- a/[esx]/es_extended/locales/en.lua
+++ b/[esx]/es_extended/locales/en.lua
@@ -54,6 +54,7 @@ Locales['en'] = {
['in_vehicle'] = 'Cannot Perform Action, Player is in a vehicle',
-- Commands
+ ['command_bring'] = 'Bring player to you',
['command_car'] = 'Spawn a vehicle',
['command_car_car'] = 'Vehicle model or hash',
['command_cardel'] = 'Remove vehicles in proximity',
@@ -62,6 +63,8 @@ Locales['en'] = {
['command_clearall'] = 'Clear chat Text for all players',
['command_clearinventory'] = 'Remove All items from the Players Inventory',
['command_clearloadout'] = 'Remove All weapons from the Players Loadout',
+ ['command_freeze'] = 'Freeze a player',
+ ['command_unfreeze'] = 'Unfreeze a player',
['command_giveaccountmoney'] = 'Give Money to a specified Account',
['command_giveaccountmoney_account'] = 'Account to add to',
['command_giveaccountmoney_amount'] = 'Amount to add',
@@ -78,6 +81,8 @@ Locales['en'] = {
['command_giveweaponcomponent_invalid'] = 'Invalid weapon component',
['command_giveweaponcomponent_hasalready'] = 'Player already has this weapon component',
['command_giveweaponcomponent_missingweapon'] = 'Player does not have this weapon',
+ ['command_goto'] = 'Teleport yourself to a player',
+ ['command_kill'] = 'Kill a player',
['command_save'] = 'Force Save a player`s Data',
['command_saveall'] = 'Force Save all player data',
['command_setaccountmoney'] = 'Set the money within a specified account',
@@ -343,4 +348,8 @@ Locales['en'] = {
['tint_lspd'] = 'blue skin',
['tint_orange'] = 'orange skin',
['tint_platinum'] = 'platinum skin',
+
+ -- Duty related
+ ['stopped_duty'] = 'You\'ve stopped your duty.',
+ ['started_duty'] = 'You\'ve started your duty.',
}
diff --git a/[esx]/es_extended/locales/fr.lua b/[esx]/es_extended/locales/fr.lua
index 38565b1e..5cf46d2c 100644
--- a/[esx]/es_extended/locales/fr.lua
+++ b/[esx]/es_extended/locales/fr.lua
@@ -222,4 +222,8 @@ Locales['fr'] = {
['tint_lspd'] = 'skin bleu',
['tint_orange'] = 'skin orange',
['tint_platinum'] = 'skin platine',
+
+ -- Duty related
+ ['stopped_duty'] = 'Vous êtes maintenant hors-service.',
+ ['started_duty'] = 'Vous êtes maintenant en-service.',
}
diff --git a/[esx]/es_extended/locales/hu.lua b/[esx]/es_extended/locales/hu.lua
new file mode 100644
index 00000000..9b699cd1
--- /dev/null
+++ b/[esx]/es_extended/locales/hu.lua
@@ -0,0 +1,350 @@
+Locales["hu"] = {
+ -- Inventory
+ ["inventory"] = "Inventory ( Súly %s / %s )",
+ ["use"] = "Használ",
+ ["give"] = "Átad",
+ ["remove"] = "Eldob",
+ ["return"] = "Visszatérés",
+ ["give_to"] = "Adni valakinek",
+ ["amount"] = "Mennyiség",
+ ["giveammo"] = "Lőszer adás",
+ ["amountammo"] = "Lőszer mennyiség",
+ ["noammo"] = "Nincsen több lövedéked!",
+ ["gave_item"] = "Átadtál: ~y~%sx~s~ ~b~%s~s~ neki: ~y~%s~s~",
+ ["received_item"] = "Kaptál: ~y~%sx~s~ ~b~%s~s~ töle: ~b~%s~s~",
+ ["gave_weapon"] = "Átadtál: ~b~%s~s~ neki: ~y~%s~s~",
+ ["gave_weapon_ammo"] = "Átadtál ~o~%sx %s~s~ ~b~%s~s~ neki: ~y~%s~s~",
+ ["gave_weapon_withammo"] = "Átadtál ~b~%s~s~ ~o~%sx %s~s~ neki: ~y~%s~s~",
+ ["gave_weapon_hasalready"] = "~y~%s~s~ már rendelkezik ~y~%s~s~",
+ ["gave_weapon_noweapon"] = "~y~%s~s~ nincsen ilyen fegyere",
+ ["received_weapon"] = "Kaptál: ~b~%s~s~ töle: ~b~%s~s~",
+ ["received_weapon_ammo"] = "Kaptál ~o~%sx %s~s~ ~b~%s~s~ töle: ~b~%s~s~",
+ ["received_weapon_withammo"] = "Kaptál ~b~%s~s~ ~o~%sx %s~s~ töle: ~b~%s~s~",
+ ["received_weapon_hasalready"] = "~b~%s~s~ megpróbálta átadni a következöt: ~y~%s~s~, nem már van rendelkezel egy ilyennel",
+ ["received_weapon_noweapon"] = "~b~%s~s~ átakart adni ~y~%s~s~, de nincsen ilyen fegyvered",
+ ["gave_account_money"] = "Átadtál: ~g~$%s~s~ (%s) neki: ~y~%s~s~",
+ ["received_account_money"] = "Kaptál: ~g~$%s~s~ (%s) töle: ~b~%s~s~",
+ ["amount_invalid"] = "Érvénytelen mennyiség",
+ ["players_nearby"] = "Nincsen játékos a közeledben",
+ ["ex_inv_lim"] = "Nincsen elég szabad helyed ~y~%s~s~",
+ ["imp_invalid_quantity"] = "Érvénytelen mennyiség",
+ ["imp_invalid_amount"] = "Érvénytelen összeg",
+ ["threw_standard"] = "Kidobtál: ~y~%sx~s~ ~b~%s~s~",
+ ["threw_account"] = "Kidobtál: ~g~$%s~s~ ~b~%s~s~",
+ ["threw_weapon"] = "Kidobtál: ~b~%s~s~",
+ ["threw_weapon_ammo"] = "Kidobtál: ~b~%s~s~ ~o~%sx %s~s~",
+ ["threw_weapon_already"] = "Van már ilyen fegyvered",
+ ["threw_cannot_pickup"] = "Nincsen elég szabad helyed",
+ ["threw_pickup_prompt"] = "~y~E~s~ hogy felvedd",
+
+ -- Key mapping
+ ["keymap_showinventory"] = "Leltár mutatása",
+
+ -- Salary related
+ ["received_salary"] = "Megkaptad a fizetésed: ~g~$%s~s~",
+ ["received_help"] = "Megkaptad a segélyt: ~g~$%s~s~",
+ ["company_nomoney"] = "Nem kaptál fizetést, mert a frakciónak nincs elég pénze!",
+ ["received_paycheck"] = "Fizetésed érkezett!",
+ ["bank"] = "maze Bank",
+ ["account_bank"] = "bank",
+ ["account_black_money"] = "Piszkos pénz",
+ ["account_money"] = "Készpénz",
+
+ ["act_imp"] = "Érvénytelen mennyiség",
+ ["in_vehicle"] = "Nem tudod átadni, mivel benne ül a jármüben",
+
+ -- Commands
+ ["command_car"] = "Jármű lehívása",
+ ["command_car_car"] = "Jármű név vagy hash",
+ ["command_cardel"] = "Közeli járművek törlése",
+ ["command_cardel_radius"] = "Megadott radiusban lévő járművek törlése",
+ ["command_clear"] = "Chat ürítése",
+ ["command_clearall"] = "Chat ürítése minden játékosnál",
+ ["command_clearinventory"] = "Minden tárgy törlése a játékos inventoryból",
+ ["command_clearloadout"] = "Minden fegyver elvétele a játékostól",
+ ["command_giveaccountmoney"] = "Pénz adás a megadott típusban",
+ ["command_giveaccountmoney_account"] = "Típus",
+ ["command_giveaccountmoney_amount"] = "Mennyiség",
+ ["command_giveaccountmoney_invalid"] = "Megadott típus hibás",
+ ["command_giveitem"] = "Tárgy adás a játékosnak",
+ ["command_giveitem_item"] = "Tárgy neve",
+ ["command_giveitem_count"] = "Mennyiség",
+ ["command_giveweapon"] = "Fegyver adás játékosnak",
+ ["command_giveweapon_weapon"] = "Fegyver neve",
+ ["command_giveweapon_ammo"] = "Lőszer mennyiség",
+ ["command_giveweapon_hasalready"] = "Játékosnak már van ilyen fegyvere",
+ ["command_giveweaponcomponent"] = "Fegyver kiegészítő adás a játékosnak",
+ ["command_giveweaponcomponent_component"] = "Kiegészítő neve",
+ ["command_giveweaponcomponent_invalid"] = "Érvénytelen fegyver kiegészítő",
+ ["command_giveweaponcomponent_hasalready"] = "Játékosnak már van ilyen fegyver kiegészítője",
+ ["command_giveweaponcomponent_missingweapon"] = "Játékosnak nincs ilyen fegyvere",
+ ["command_save"] = "Játékos adatainak mentése",
+ ["command_saveall"] = "Összes játékos adatainak mentése",
+ ["command_setaccountmoney"] = "Játékos pénzének beállítása megadott típusban",
+ ["command_setaccountmoney_amount"] = "Mennyiség",
+ ["command_setcoords"] = "Teleportálás megadott kordinátára",
+ ["command_setcoords_x"] = "X érték",
+ ["command_setcoords_y"] = "Y érték",
+ ["command_setcoords_z"] = "Z érték",
+ ["command_setjob"] = "Játékos munkájának beállítása",
+ ["command_setjob_job"] = "Munka neve",
+ ["command_setjob_grade"] = "Rang",
+ ["command_setjob_invalid"] = "Munka név vagy rang érvénytelen",
+ ["command_setgroup"] = "Játékos jogosultsági csoportjának beállítása",
+ ["command_setgroup_group"] = "Csoport neve",
+ ["commanderror_argumentmismatch"] = "Érvénytelen argumentumszám (%s megadva, %s szükséges)",
+ ["commanderror_argumentmismatch_number"] = "Érvénytelen argumentum #%s adat típus (szöveg megadva, szám szükséges)",
+ ["commanderror_invaliditem"] = "Érvénytelen tárgy",
+ ["commanderror_invalidweapon"] = "Érvénytelen fegyver",
+ ["commanderror_console"] = "Parancs nem használható konzolból",
+ ["commanderror_invalidcommand"] = "Érvénytelen parancs - /%s",
+ ["commanderror_invalidplayerid"] = "Megadott játékos nem online.",
+ ["commandgeneric_playerid"] = "Játékos Szerver Id",
+
+ -- Locale settings
+ ["locale_digit_grouping_symbol"] = ",",
+ ["locale_currency"] = "$%s",
+
+ -- Weapons
+
+ -- Melee
+ ["weapon_dagger"] = "Dagger",
+ ["weapon_bat"] = "Bat",
+ ["weapon_battleaxe"] = "Battle Axe",
+ ["weapon_bottle"] = "Bottle",
+ ["weapon_crowbar"] = "Crowbar",
+ ["weapon_flashlight"] = "Flashlight",
+ ["weapon_golfclub"] = "Golf Club",
+ ["weapon_hammer"] = "Hammer",
+ ["weapon_hatchet"] = "Hatchet",
+ ["weapon_knife"] = "Knife",
+ ["weapon_knuckle"] = "Knuckledusters",
+ ["weapon_machete"] = "Machete",
+ ["weapon_nightstick"] = "Nightstick",
+ ["weapon_wrench"] = "Pipe Wrench",
+ ["weapon_poolcue"] = "Pool Cue",
+ ["weapon_stone_hatchet"] = "Stone Hatchet",
+ ["weapon_switchblade"] = "Switchblade",
+
+ -- Handguns
+ ["weapon_appistol"] = "AP Pistol",
+ ["weapon_ceramicpistol"] = "Ceramic Pistol",
+ ["weapon_combatpistol"] = "Combat Pistol",
+ ["weapon_doubleaction"] = "Double-Action Revolver",
+ ["weapon_navyrevolver"] = "Navy Revolver",
+ ["weapon_flaregun"] = "Flaregun",
+ ["weapon_gadgetpistol"] = "Gadget Pistol",
+ ["weapon_heavypistol"] = "Heavy Pistol",
+ ["weapon_revolver"] = "Heavy Revolver",
+ ["weapon_revolver_mk2"] = "Heavy Revolver MK2",
+ ["weapon_marksmanpistol"] = "Marksman Pistol",
+ ["weapon_pistol"] = "Pistol",
+ ["weapon_pistol_mk2"] = "Pistol MK2",
+ ["weapon_pistol50"] = "Pistol .50",
+ ["weapon_snspistol"] = "SNS Pistol",
+ ["weapon_snspistol_mk2"] = "SNS Pistol MK2",
+ ["weapon_stungun"] = "Taser",
+ ["weapon_raypistol"] = "Up-N-Atomizer",
+ ["weapon_vintagepistol"] = "Vintage Pistol",
+
+ -- Shotguns
+ ["weapon_assaultshotgun"] = "Assault Shotgun",
+ ["weapon_autoshotgun"] = "Auto Shotgun",
+ ["weapon_bullpupshotgun"] = "Bullpup Shotgun",
+ ["weapon_combatshotgun"] = "Combat Shotgun",
+ ["weapon_dbshotgun"] = "Double Barrel Shotgun",
+ ["weapon_heavyshotgun"] = "Heavy Shotgun",
+ ["weapon_musket"] = "Musket",
+ ["weapon_pumpshotgun"] = "Pump Shotgun",
+ ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2",
+ ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun",
+
+ -- SMG & LMG
+ ["weapon_assaultsmg"] = "Assault SMG",
+ ["weapon_combatmg"] = "Combat MG",
+ ["weapon_combatmg_mk2"] = "Combat MG MK2",
+ ["weapon_combatpdw"] = "Combat PDW",
+ ["weapon_gusenberg"] = "Gusenberg Sweeper",
+ ["weapon_machinepistol"] = "Machine Pistol",
+ ["weapon_mg"] = "MG",
+ ["weapon_microsmg"] = "Micro SMG",
+ ["weapon_minismg"] = "Mini SMG",
+ ["weapon_smg"] = "SMG",
+ ["weapon_smg_mk2"] = "SMG MK2",
+ ["weapon_raycarbine"] = "Unholy Hellbringer",
+
+ -- Rifles
+ ["weapon_advancedrifle"] = "Advanced Rifle",
+ ["weapon_assaultrifle"] = "Assault Rifle",
+ ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2",
+ ["weapon_bullpuprifle"] = "Bullpup Rifle",
+ ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2",
+ ["weapon_carbinerifle"] = "Carbine Rifle",
+ ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2",
+ ["weapon_compactrifle"] = "Compact Rifle",
+ ["weapon_militaryrifle"] = "Military Rifle",
+ ["weapon_specialcarbine"] = "Special Carbine",
+ ["weapon_specialcarbine_mk2"] = "Special Carbine MK2",
+
+ -- Sniper
+ ["weapon_heavysniper"] = "Heavy Sniper",
+ ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2",
+ ["weapon_marksmanrifle"] = "Marksman Rifle",
+ ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2",
+ ["weapon_sniperrifle"] = "Sniper Rifle",
+
+ -- Heavy / Launchers
+ ["weapon_compactlauncher"] = "Compact Launcher",
+ ["weapon_firework"] = "Firework Launcher",
+ ["weapon_grenadelauncher"] = "Grenade Launcher",
+ ["weapon_hominglauncher"] = "Homing Launcher",
+ ["weapon_minigun"] = "Minigun",
+ ["weapon_railgun"] = "Railgun",
+ ["weapon_rpg"] = "Rocket Launcher",
+ ["weapon_rayminigun"] = "Widowmaker",
+
+ -- Thrown
+ ["weapon_ball"] = "Baseball",
+ ["weapon_bzgas"] = "BZ Gas",
+ ["weapon_flare"] = "Flare",
+ ["weapon_grenade"] = "Grenade",
+ ["weapon_petrolcan"] = "Jerrycan",
+ ["weapon_hazardcan"] = "Hazardous Jerrycan",
+ ["weapon_molotov"] = "Molotov Cocktail",
+ ["weapon_proxmine"] = "Proximity Mine",
+ ["weapon_pipebomb"] = "Pipe Bomb",
+ ["weapon_snowball"] = "Snowball",
+ ["weapon_stickybomb"] = "Sticky Bomb",
+ ["weapon_smokegrenade"] = "Tear Gas",
+
+ -- Special
+ ["weapon_fireextinguisher"] = "Fire Extinguisher",
+ ["weapon_digiscanner"] = "Digital Scanner",
+ ["weapon_garbagebag"] = "Garbage Bag",
+ ["weapon_handcuffs"] = "Handcuffs",
+ ["gadget_nightvision"] = "Night Vision",
+ ["gadget_parachute"] = "parachute",
+
+ -- Weapon Components
+ ["component_knuckle_base"] = "base Model",
+ ["component_knuckle_pimp"] = "the Pimp",
+ ["component_knuckle_ballas"] = "the Ballas",
+ ["component_knuckle_dollar"] = "the Hustler",
+ ["component_knuckle_diamond"] = "the Rock",
+ ["component_knuckle_hate"] = "the Hater",
+ ["component_knuckle_love"] = "the Lover",
+ ["component_knuckle_player"] = "the Player",
+ ["component_knuckle_king"] = "the King",
+ ["component_knuckle_vagos"] = "the Vagos",
+
+ ["component_luxary_finish"] = "luxary Weapon Finish",
+
+ ["component_handle_default"] = "default Handle",
+ ["component_handle_vip"] = "vIP Handle",
+ ["component_handle_bodyguard"] = "bodyguard Handle",
+
+ ["component_vip_finish"] = "vIP Finish",
+ ["component_bodyguard_finish"] = "bodyguard Finish",
+
+ ["component_camo_finish"] = "digital Camo",
+ ["component_camo_finish2"] = "brushstroke Camo",
+ ["component_camo_finish3"] = "woodland Camo",
+ ["component_camo_finish4"] = "skull Camo",
+ ["component_camo_finish5"] = "sessanta Nove Camo",
+ ["component_camo_finish6"] = "perseus Camo",
+ ["component_camo_finish7"] = "leopard Camo",
+ ["component_camo_finish8"] = "zebra Camo",
+ ["component_camo_finish9"] = "geometric Camo",
+ ["component_camo_finish10"] = "boom Camo",
+ ["component_camo_finish11"] = "patriotic Camo",
+
+ ["component_camo_slide_finish"] = "digital Slide Camo",
+ ["component_camo_slide_finish2"] = "brushstroke Slide Camo",
+ ["component_camo_slide_finish3"] = "woodland Slide Camo",
+ ["component_camo_slide_finish4"] = "skull Slide Camo",
+ ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo",
+ ["component_camo_slide_finish6"] = "perseus Slide Camo",
+ ["component_camo_slide_finish7"] = "leopard Slide Camo",
+ ["component_camo_slide_finish8"] = "zebra Slide Camo",
+ ["component_camo_slide_finish9"] = "geometric Slide Camo",
+ ["component_camo_slide_finish10"] = "boom Slide Camo",
+ ["component_camo_slide_finish11"] = "patriotic Slide Camo",
+
+ ["component_clip_default"] = "default Magazine",
+ ["component_clip_extended"] = "extended Magazine",
+ ["component_clip_drum"] = "drum Magazine",
+ ["component_clip_box"] = "box Magazine",
+
+ ["component_scope_holo"] = "holographic Scope",
+ ["component_scope_small"] = "small Scope",
+ ["component_scope_medium"] = "medium Scope",
+ ["component_scope_large"] = "large Scope",
+ ["component_scope"] = "mounted Scope",
+ ["component_scope_advanced"] = "advanced Scope",
+ ["component_ironsights"] = "ironsights",
+
+ ["component_suppressor"] = "suppressor",
+ ["component_compensator"] = "compensator",
+
+ ["component_muzzle_flat"] = "flat Muzzle Brake",
+ ["component_muzzle_tactical"] = "tactical Muzzle Brake",
+ ["component_muzzle_fat"] = "fat-End Muzzle Brake",
+ ["component_muzzle_precision"] = "precision Muzzle Brake",
+ ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake",
+ ["component_muzzle_slanted"] = "slanted Muzzle Brake",
+ ["component_muzzle_split"] = "split-End Muzzle Brake",
+ ["component_muzzle_squared"] = "squared Muzzle Brake",
+
+ ["component_flashlight"] = "flashlight",
+ ["component_grip"] = "grip",
+
+ ["component_barrel_default"] = "default Barrel",
+ ["component_barrel_heavy"] = "heavy Barrel",
+
+ ["component_ammo_tracer"] = "tracer Ammo",
+ ["component_ammo_incendiary"] = "incendiary Ammo",
+ ["component_ammo_hollowpoint"] = "hollowpoint Ammo",
+ ["component_ammo_fmj"] = "fMJ Ammo",
+ ["component_ammo_armor"] = "armor Piercing Ammo",
+ ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo",
+
+ ["component_shells_default"] = "default Shells",
+ ["component_shells_incendiary"] = "dragons Breath Shells",
+ ["component_shells_armor"] = "steel Buckshot Shells",
+ ["component_shells_hollowpoint"] = "flechette Shells",
+ ["component_shells_explosive"] = "explosive Slug Shells",
+
+ -- Weapon Ammo
+ ["ammo_rounds"] = "round(s)",
+ ["ammo_shells"] = "shell(s)",
+ ["ammo_charge"] = "charge",
+ ["ammo_petrol"] = "gallons of fuel",
+ ["ammo_firework"] = "firework(s)",
+ ["ammo_rockets"] = "rocket(s)",
+ ["ammo_grenadelauncher"] = "grenade(s)",
+ ["ammo_grenade"] = "grenade(s)",
+ ["ammo_stickybomb"] = "bomb(s)",
+ ["ammo_pipebomb"] = "bomb(s)",
+ ["ammo_smokebomb"] = "bomb(s)",
+ ["ammo_molotov"] = "cocktail(s)",
+ ["ammo_proxmine"] = "mine(s)",
+ ["ammo_bzgas"] = "can(s)",
+ ["ammo_ball"] = "ball(s)",
+ ["ammo_snowball"] = "snowball(s)",
+ ["ammo_flare"] = "flare(s)",
+ ["ammo_flaregun"] = "flare(s)",
+
+ -- Weapon Tints
+ ["tint_default"] = "default skin",
+ ["tint_green"] = "green skin",
+ ["tint_gold"] = "gold skin",
+ ["tint_pink"] = "pink skin",
+ ["tint_army"] = "army skin",
+ ["tint_lspd"] = "blue skin",
+ ["tint_orange"] = "orange skin",
+ ["tint_platinum"] = "platinum skin",
+
+ -- Duty related
+ ["stopped_duty"] = "Leadtad a szolgálatot.",
+ ["started_duty"] = "Szolgálatba álltál.",
+}
diff --git a/[esx]/es_extended/locales/sv.lua b/[esx]/es_extended/locales/sv.lua
index 8de56f35..16233213 100644
--- a/[esx]/es_extended/locales/sv.lua
+++ b/[esx]/es_extended/locales/sv.lua
@@ -1,207 +1,328 @@
Locales['sv'] = {
-- Inventory
- ['inventory'] = 'mitt förråd %s / %s',
- ['use'] = 'använd',
- ['give'] = 'ge',
- ['remove'] = 'kasta',
- ['return'] = 'gå tillbaka',
- ['give_to'] = 'ge till',
- ['amount'] = 'antal',
- ['giveammo'] = 'ge ammunition',
- ['amountammo'] = 'mängd ammunition',
- ['noammo'] = 'du har inte tillräckligt med ammunition!',
- ['gave_item'] = 'du gav ~y~%sx~s~ ~b~%s~s~ till ~y~%s~s~',
- ['received_item'] = 'du tog emot ~y~%sx~s~ ~b~%s~s~ från ~b~%s~s~',
- ['gave_weapon'] = 'du gav ~b~%s~s~ till ~y~%s~s~',
- ['gave_weapon_ammo'] = 'du gav ~o~%sx %s~s~ för ~b~%s~s~ till ~y~%s~s~',
- ['gave_weapon_withammo'] = 'du gav ~b~%s~s~ med ~o~%sx %s~s~ till ~y~%s~s~',
+ ['inventory'] = 'Förråd ( Vikt %s / %s )',
+ ['use'] = 'Använd',
+ ['give'] = 'Ge',
+ ['remove'] = 'Kasta',
+ ['return'] = 'Gå tillbaka',
+ ['give_to'] = 'Ge till',
+ ['amount'] = 'Antal',
+ ['giveammo'] = 'Ge ammunition',
+ ['amountammo'] = 'Mängd ammunition',
+ ['noammo'] = 'Inte tillräckligt med ammunition!',
+ ['gave_item'] = 'Ge ~y~%sx~s~ ~b~%s~s~ till ~y~%s~s~',
+ ['received_item'] = 'Fick ~y~%sx~s~ ~b~%s~s~ från ~b~%s~s~',
+ ['gave_weapon'] = 'Ge ~b~%s~s~ till ~y~%s~s~',
+ ['gave_weapon_ammo'] = 'Ge ~o~%sx %s~s~ för ~b~%s~s~ till ~y~%s~s~',
+ ['gave_weapon_withammo'] = 'Ge ~b~%s~s~ med ~o~%sx %s~s~ till ~y~%s~s~',
['gave_weapon_hasalready'] = '~y~%s~s~ har redan en ~y~%s~s~',
['gave_weapon_noweapon'] = '~y~%s~s~ har inte det vapnet',
- ['received_weapon'] = 'du tog emot ~b~%s~s~ från ~b~%s~s~',
- ['received_weapon_ammo'] = 'du tog emot ~o~%sx %s~s~ för ~b~%s~s~ från ~b~%s~s~',
- ['received_weapon_withammo'] = 'du tog emot ~b~%s~s~ med ~o~%sx %s~s~ från ~b~%s~s~',
- ['received_weapon_hasalready'] = '~b~%s~s~ försökte ge dig en ~y~%s~s~, men det vapnet har du redan',
- ['received_weapon_noweapon'] = '~b~%s~s~ försökte ge dig ammunition för ett ~y~%s~s~, men du har inget sådant vapen',
- ['gave_account_money'] = 'du gav ~g~%s SEK~s~ (%s) till ~y~%s~s~',
- ['received_account_money'] = 'du tog emot ~g~%s SEK~s~ (%s) från ~b~%s~s~',
- ['amount_invalid'] = 'ogiltig mängd',
- ['players_nearby'] = 'det finns inga spelare nära',
- ['ex_inv_lim'] = 'åtgärd inte möjligt, översteg förråd gräns för ~y~%s~s~',
- ['imp_invalid_quantity'] = 'åtgärd omöjlig, ogiltig mängd',
- ['imp_invalid_amount'] = 'åtgärd omöjlig, ogiltig belopp',
- ['threw_standard'] = 'du kastade ~y~%sx~s~ ~b~%s~s~',
- ['threw_account'] = 'du kastade ~g~%s SEK~s~ ~b~%s~s~',
- ['threw_weapon'] = 'du kastade ~b~%s~s~',
- ['threw_weapon_ammo'] = 'du kastade ~b~%s~s~ med ~o~%sx %s~s~',
- ['threw_weapon_already'] = 'du har redan ett sådant vapen på dig',
- ['threw_cannot_pickup'] = 'du kan inte plocka upp det på grund av att det kommer ej få plats i ditt förråd!',
- ['threw_pickup_prompt'] = 'tryck ~y~E~s~ för att plocka upp',
+ ['received_weapon'] = 'Mottog ~b~%s~s~ från ~b~%s~s~',
+ ['received_weapon_ammo'] = 'Fick ~o~%sx %s~s~ för din ~b~%s~s~ från ~b~%s~s~',
+ ['received_weapon_withammo'] = 'Mottog ~b~%s~s~ med ~o~%sx %s~s~ från ~b~%s~s~',
+ ['received_weapon_hasalready'] = '~b~%s~s~ har försökt ge dig en ~y~%s~s~, men du har redan det här vapnet',
+ ['received_weapon_noweapon'] = '~b~%s~s~ har försökt ge dig ammunition för en ~y~%s~s~, men du har inte det här vapnet',
+ ['gave_account_money'] = 'Ge ~g~$%s~s~ (%s) till ~y~%s~s~',
+ ['received_account_money'] = 'Mottog ~g~$%s~s~ (%s) från ~b~%s~s~',
+ ['amount_invalid'] = 'Ogiltig mängd',
+ ['players_nearby'] = 'Inga spelare i närheten',
+ ['ex_inv_lim'] = 'Kan inte utföra åtgärden, överstiger maxvikten ~y~%s~s~',
+ ['imp_invalid_quantity'] = 'Det går inte att utföra åtgärden, mängden är ogiltig',
+ ['imp_invalid_amount'] = 'Det går inte att utföra åtgärden, mängden är ogiltigt',
+ ['threw_standard'] = 'Kastade ~y~%sx~s~ ~b~%s~s~',
+ ['threw_account'] = 'Kastade ~g~$%s~s~ ~b~%s~s~',
+ ['threw_weapon'] = 'Kastade ~b~%s~s~',
+ ['threw_weapon_ammo'] = 'Kastade ~b~%s~s~ med ~o~%sx %s~s~',
+ ['threw_weapon_already'] = 'Du har redan det här vapnet',
+ ['threw_cannot_pickup'] = 'Förrådet är fullt, kan inte plocka upp!',
+ ['threw_pickup_prompt'] = 'Tryck ~y~E~s~ för att plocka upp',
-- Key mapping
- ['keymap_showinventory'] = 'öppna inventory',
+ ['keymap_showinventory'] = 'Visa förrådet',
-- Salary related
- ['received_salary'] = 'du har mottagit din lön på ~g~%s SEK~s~',
- ['received_help'] = 'du har mottagit bidrag på ~g~%s SEK~s~',
+ ['received_salary'] = 'Du har fått lön: ~g~$%s~s~',
+ ['received_help'] = 'Du har fått bidrag: ~g~$%s~s~',
['company_nomoney'] = 'företaget du är anställt hos har inte råd att betala ut din lön',
- ['received_paycheck'] = 'mottagit lön',
- ['bank'] = 'bank',
- ['account_bank'] = 'bank',
- ['account_black_money'] = 'svarta pengar',
- ['account_money'] = 'kontakter',
+ ['received_paycheck'] = 'Mottagit lön',
+ ['bank'] = 'Bank',
+ ['account_bank'] = 'Bank',
+ ['account_black_money'] = 'Svarta pengar',
+ ['account_money'] = 'Kontanter',
- ['act_imp'] = 'åtgärd omöjlig',
- ['in_vehicle'] = 'du kan inte ge saker till en som sitter i ett fordon!',
+ ['act_imp'] = 'Kan inte utföra åtgärd',
+ ['in_vehicle'] = 'Kan inte utföra åtgärd, spelaren är i ett fordon',
-- Commands
- ['command_car'] = 'spawna ett fordon',
- ['command_car_car'] = 'namn på fordon eller hash',
- ['command_cardel'] = 'radera fordon i närheten',
- ['command_cardel_radius'] = 'valfri, radera alla fordon inom den angivna radien',
- ['command_clear'] = 'töm chatten',
- ['command_clearall'] = 'töm chatten för alla spelare',
- ['command_clearinventory'] = 'töm en spelares inventory',
- ['command_clearloadout'] = 'töm en spelares loadout',
- ['command_giveaccountmoney'] = 'ge pengar för ett konto',
- ['command_giveaccountmoney_account'] = 'giltigt kontonamn',
- ['command_giveaccountmoney_amount'] = 'mängd att ge',
- ['command_giveaccountmoney_invalid'] = 'kontonamnet är ej giltigt',
- ['command_giveitem'] = 'ge ett item till en spelare',
- ['command_giveitem_item'] = 'itemnamn',
- ['command_giveitem_count'] = 'mängd av itemet',
- ['command_giveweapon'] = 'ge ett vapen till en spelare',
- ['command_giveweapon_weapon'] = 'vapennamn',
- ['command_giveweapon_ammo'] = 'hur mycket ammo att ge',
- ['command_giveweapon_hasalready'] = 'spelaren har redan ett sådant vapen',
- ['command_giveweaponcomponent'] = 'ge vapen komponent',
- ['command_giveweaponcomponent_component'] = 'vapenkomponent',
- ['command_giveweaponcomponent_invalid'] = 'det vapenkomponentet är ej giltigt',
- ['command_giveweaponcomponent_hasalready'] = 'spelaren har redan det vapenkomponent',
- ['command_giveweaponcomponent_missingweapon'] = 'spelaren har ej det vapnet',
- ['command_save'] = 'spara en spelare i databas',
- ['command_saveall'] = 'spara alla spelare i databas',
- ['command_setaccountmoney'] = 'bestäm ny balans på ett spelarkonto',
- ['command_setaccountmoney_amount'] = 'ny balans',
- ['command_setcoords'] = 'teleportera till koordinater',
- ['command_setcoords_x'] = 'x axel',
- ['command_setcoords_y'] = 'y axel',
- ['command_setcoords_z'] = 'z axel',
- ['command_setjob'] = 'välj jobb för en spelare',
- ['command_setjob_job'] = 'jobbnamn',
- ['command_setjob_grade'] = 'jobbnivå',
- ['command_setjob_invalid'] = 'jobbet, nivån eller båda är ej giltiga',
- ['command_setgroup'] = 'välj grupp åt en spelare',
- ['command_setgroup_group'] = 'gruppnamn',
- ['commanderror_argumentmismatch'] = 'argumentstorlek mismatch (gav %s, ville ha %s)',
- ['commanderror_argumentmismatch_number'] = 'argument #%s typ mismatch (gav string, ville ha number)',
- ['commanderror_invaliditem'] = 'ej giltigt item',
- ['commanderror_invalidweapon'] = 'ej giltigt vapen',
- ['commanderror_console'] = 'detta kommando kan ej executas i konsol',
- ['commanderror_invalidcommand'] = '/%s är inte ett giltigt kommando!',
- ['commanderror_invalidplayerid'] = 'det finns ingen spelare som matchar det angivna server id',
- ['commandgeneric_playerid'] = 'spelarid',
+ ['command_car'] = 'Spawna ett fordon',
+ ['command_car_car'] = 'Fordonsmodell eller hash',
+ ['command_cardel'] = 'Ta bort fordon i närheten',
+ ['command_cardel_radius'] = 'Tar bort alla fordon inom angiven radie',
+ ['command_clear'] = 'Rensa chatttext',
+ ['command_clearall'] = 'Rensa chatttext för alla spelare',
+ ['command_clearinventory'] = 'Ta bort alla föremål från spelarens förråd',
+ ['command_clearloadout'] = 'Ta bort alla vapen från spelarens förråd',
+ ['command_giveaccountmoney'] = 'Ge pengar till ett specifikt konto',
+ ['command_giveaccountmoney_account'] = 'Konto att lägga till i',
+ ['command_giveaccountmoney_amount'] = 'Belopp att lägga till',
+ ['command_giveaccountmoney_invalid'] = 'Kontonamn ogiltigt',
+ ['command_giveitem'] = 'Ge spelaren ett föremål',
+ ['command_giveitem_item'] = 'Föremålsnamn',
+ ['command_giveitem_count'] = 'Mängd',
+ ['command_giveweapon'] = 'Ge spelaren ett vapen',
+ ['command_giveweapon_weapon'] = 'Vapennamn',
+ ['command_giveweapon_ammo'] = 'Ammunitionsmängd',
+ ['command_giveweapon_hasalready'] = 'Spelaren har redan det här vapnet',
+ ['command_giveweaponcomponent'] = 'Ge en vapenkomponent till spelaren',
+ ['command_giveweaponcomponent_component'] = 'Vapenkomponentnamn',
+ ['command_giveweaponcomponent_invalid'] = 'Ogiltig vapenkomponent',
+ ['command_giveweaponcomponent_hasalready'] = 'Spelaren har redan denna vapenkomponent',
+ ['command_giveweaponcomponent_missingweapon'] = 'Spelaren har inte det här vapnet',
+ ['command_save'] = 'Tvångspara en spelares data',
+ ['command_saveall'] = 'Tvångspara allas spelardata',
+ ['command_setaccountmoney'] = 'Ställ in pengarna på ett angivet konto',
+ ['command_setaccountmoney_amount'] = 'Ny Summa',
+ ['command_setcoords'] = 'Teleportera till specificerade koordinater',
+ ['command_setcoords_x'] = 'X-värde',
+ ['command_setcoords_y'] = 'Y-värde',
+ ['command_setcoords_z'] = 'Z-värde',
+ ['command_setjob'] = 'Ställ in en spelares jobb',
+ ['command_setjob_job'] = 'Jobbnamn',
+ ['command_setjob_grade'] = 'Jobbnivå',
+ ['command_setjob_invalid'] = 'jobbet, nivån eller båda är ogiltiga',
+ ['command_setgroup'] = 'Ställ in en spelares behörighetsgrupp',
+ ['command_setgroup_group'] = 'Gruppens namn',
+ ['commanderror_argumentmismatch'] = 'Ogiltigt antal argument (godkänt %s, önskat %s)',
+ ['commanderror_argumentmismatch_number'] = 'Ogiltigt argument #%s datatyp (godkänd sträng, önskat nummer)',
+ ['commanderror_invaliditem'] = 'Ogiltig artikel',
+ ['commanderror_invalidweapon'] = 'Ogiltigt vapen',
+ ['commanderror_console'] = 'Kommandot kan inte köras från konsolen',
+ ['commanderror_invalidcommand'] = 'Ogiltigt kommando - /%s',
+ ['commanderror_invalidplayerid'] = 'Angiven spelare är inte online',
+ ['commandgeneric_playerid'] = 'Spelarens server-id',
-- Locale settings
['locale_digit_grouping_symbol'] = ' ',
['locale_currency'] = '%s SEK',
-- Weapons
- ['weapon_knife'] = 'kniv',
- ['weapon_nightstick'] = 'batong',
- ['weapon_hammer'] = 'hammare',
- ['weapon_bat'] = 'slagträ',
- ['weapon_golfclub'] = 'golf club',
- ['weapon_crowbar'] = 'kofot',
- ['weapon_pistol'] = 'pistol',
- ['weapon_combatpistol'] = 'combat pistol',
- ['weapon_appistol'] = 'ap pistol',
- ['weapon_pistol50'] = 'pistol .50',
- ['weapon_microsmg'] = 'micro smg',
- ['weapon_smg'] = 'smg',
- ['weapon_assaultsmg'] = 'assault smg',
- ['weapon_assaultrifle'] = 'assault rifle',
- ['weapon_carbinerifle'] = 'carbine rifle',
- ['weapon_advancedrifle'] = 'advanced rifle',
- ['weapon_mg'] = 'mg',
- ['weapon_combatmg'] = 'combat mg',
- ['weapon_pumpshotgun'] = 'pump shotgun',
- ['weapon_sawnoffshotgun'] = 'sawed off shotgun',
- ['weapon_assaultshotgun'] = 'assault shotgun',
- ['weapon_bullpupshotgun'] = 'bullpup shotgun',
- ['weapon_stungun'] = 'elchockpistol',
- ['weapon_sniperrifle'] = 'prickskyttegevär',
- ['weapon_heavysniper'] = 'tung prickskytt',
- ['weapon_grenadelauncher'] = 'granatkastare',
- ['weapon_rpg'] = 'raketgevär',
- ['weapon_minigun'] = 'minigun',
- ['weapon_grenade'] = 'granat',
- ['weapon_stickybomb'] = 'klibbig bomb',
- ['weapon_smokegrenade'] = 'rökgranat',
- ['weapon_bzgas'] = 'bz gas',
- ['weapon_molotov'] = 'molotov cocktail',
- ['weapon_fireextinguisher'] = 'brandsläckare',
- ['weapon_petrolcan'] = 'bensindunk',
- ['weapon_ball'] = 'boll',
- ['weapon_snspistol'] = 'sns pistol',
- ['weapon_bottle'] = 'flaska',
- ['weapon_gusenberg'] = 'gusenberg sweeper',
- ['weapon_specialcarbine'] = 'special carbine',
- ['weapon_heavypistol'] = 'heavy pistol',
- ['weapon_bullpuprifle'] = 'bullpup rifle',
- ['weapon_dagger'] = 'dolk',
- ['weapon_vintagepistol'] = 'vintage pistol',
- ['weapon_firework'] = 'fyrverkeriraket',
- ['weapon_musket'] = 'musköt',
- ['weapon_heavyshotgun'] = 'heavy shotgun',
- ['weapon_marksmanrifle'] = 'marksman rifle',
- ['weapon_hominglauncher'] = 'homing launcher',
- ['weapon_proxmine'] = 'proximity mine',
- ['weapon_snowball'] = 'snöboll',
- ['weapon_flaregun'] = 'signalpistol',
- ['weapon_combatpdw'] = 'combat pdw',
- ['weapon_marksmanpistol'] = 'marksman pistol',
- ['weapon_knuckle'] = 'knogjärn',
- ['weapon_hatchet'] = 'yxa',
- ['weapon_railgun'] = 'railgun',
- ['weapon_machete'] = 'machete',
- ['weapon_machinepistol'] = 'machine pistol',
- ['weapon_switchblade'] = 'switchblade',
- ['weapon_revolver'] = 'heavy revolver',
- ['weapon_dbshotgun'] = 'double barrel shotgun',
- ['weapon_compactrifle'] = 'compact rifle',
- ['weapon_autoshotgun'] = 'auto shotgun',
- ['weapon_battleaxe'] = 'stridsyxa',
- ['weapon_compactlauncher'] = 'compact launcher',
- ['weapon_minismg'] = 'mini smg',
- ['weapon_pipebomb'] = 'pipe bomb',
- ['weapon_poolcue'] = 'biljardkö',
- ['weapon_wrench'] = 'skiftnyckel',
- ['weapon_flashlight'] = 'ficklampa',
- ['gadget_parachute'] = 'fallskärm',
- ['weapon_flare'] = 'blossa',
- ['weapon_doubleaction'] = 'double-Action Revolver',
+
+ -- Melee
+ ['weapon_dagger'] = 'Dolk',
+ ['weapon_bat'] = 'Slagträ',
+ ['weapon_battleaxe'] = 'Stridsyxa',
+ ['weapon_bottle'] = 'Flaska',
+ ['weapon_crowbar'] = 'Kofot',
+ ['weapon_flashlight'] = 'Ficklampa',
+ ['weapon_golfclub'] = 'Golfklubba',
+ ['weapon_hammer'] = 'Hammare',
+ ['weapon_hatchet'] = 'Yxa',
+ ['weapon_knife'] = 'Kniv',
+ ['weapon_knuckle'] = 'Knogjärn',
+ ['weapon_machete'] = 'Machete',
+ ['weapon_nightstick'] = 'Batong',
+ ['weapon_wrench'] = 'Rörtång',
+ ['weapon_poolcue'] = 'Biljardkö',
+ ['weapon_stone_hatchet'] = 'Stenyxa',
+ ['weapon_switchblade'] = 'Fällkniv',
+
+ -- Handguns
+ ['weapon_appistol'] = 'AP Pistol',
+ ['weapon_ceramicpistol'] = 'Ceramic Pistol',
+ ['weapon_combatpistol'] = 'Combat Pistol',
+ ['weapon_doubleaction'] = 'Double-Action Revolver',
+ ['weapon_navyrevolver'] = 'Navy Revolver',
+ ['weapon_flaregun'] = 'Flaregun',
+ ['weapon_gadgetpistol'] = 'Gadget Pistol',
+ ['weapon_heavypistol'] = 'Heavy Pistol',
+ ['weapon_revolver'] = 'Heavy Revolver',
+ ['weapon_revolver_mk2'] = 'Heavy Revolver MK2',
+ ['weapon_marksmanpistol'] = 'Marksman Pistol',
+ ['weapon_pistol'] = 'Pistol',
+ ['weapon_pistol_mk2'] = 'Pistol MK2',
+ ['weapon_pistol50'] = 'Pistol .50',
+ ['weapon_snspistol'] = 'SNS Pistol',
+ ['weapon_snspistol_mk2'] = 'SNS Pistol MK2',
+ ['weapon_stungun'] = 'Taser',
+ ['weapon_raypistol'] = 'Up-N-Atomizer',
+ ['weapon_vintagepistol'] = 'Vintage Pistol',
+
+ -- Shotguns
+ ['weapon_assaultshotgun'] = 'Assault Shotgun',
+ ['weapon_autoshotgun'] = 'Auto Shotgun',
+ ['weapon_bullpupshotgun'] = 'Bullpup Shotgun',
+ ['weapon_combatshotgun'] = 'Combat Shotgun',
+ ['weapon_dbshotgun'] = 'Double Barrel Shotgun',
+ ['weapon_heavyshotgun'] = 'Heavy Shotgun',
+ ['weapon_musket'] = 'Musket',
+ ['weapon_pumpshotgun'] = 'Pump Shotgun',
+ ['weapon_pumpshotgun_mk2'] = 'Pump Shotgun MK2',
+ ['weapon_sawnoffshotgun'] = 'Sawed Off Shotgun',
+
+ -- SMG & LMG
+ ['weapon_assaultsmg'] = 'Assault SMG',
+ ['weapon_combatmg'] = 'Combat MG',
+ ['weapon_combatmg_mk2'] = 'Combat MG MK2',
+ ['weapon_combatpdw'] = 'Combat PDW',
+ ['weapon_gusenberg'] = 'Gusenberg Sweeper',
+ ['weapon_machinepistol'] = 'Machine Pistol',
+ ['weapon_mg'] = 'MG',
+ ['weapon_microsmg'] = 'Micro SMG',
+ ['weapon_minismg'] = 'Mini SMG',
+ ['weapon_smg'] = 'SMG',
+ ['weapon_smg_mk2'] = 'SMG MK2',
+ ['weapon_raycarbine'] = 'Unholy Hellbringer',
+
+ -- Rifles
+ ['weapon_advancedrifle'] = 'Advanced Rifle',
+ ['weapon_assaultrifle'] = 'Assault Rifle',
+ ['weapon_assaultrifle_mk2'] = 'Assault Rifle MK2',
+ ['weapon_bullpuprifle'] = 'Bullpup Rifle',
+ ['weapon_bullpuprifle_mk2'] = 'Bullpup Rifle MK2',
+ ['weapon_carbinerifle'] = 'Carbine Rifle',
+ ['weapon_carbinerifle_mk2'] = 'Carbine Rifle MK2',
+ ['weapon_compactrifle'] = 'Compact Rifle',
+ ['weapon_militaryrifle'] = 'Military Rifle',
+ ['weapon_specialcarbine'] = 'Special Carbine',
+ ['weapon_specialcarbine_mk2'] = 'Special Carbine MK2',
+
+ -- Sniper
+ ['weapon_heavysniper'] = 'Heavy Sniper',
+ ['weapon_heavysniper_mk2'] = 'Heavy Sniper MK2',
+ ['weapon_marksmanrifle'] = 'Marksman Rifle',
+ ['weapon_marksmanrifle_mk2'] = 'Marksman Rifle MK2',
+ ['weapon_sniperrifle'] = 'Sniper Rifle',
+
+ -- Heavy / Launchers
+ ['weapon_compactlauncher'] = 'Compact Launcher',
+ ['weapon_firework'] = 'Firework Launcher',
+ ['weapon_grenadelauncher'] = 'Grenade Launcher',
+ ['weapon_hominglauncher'] = 'Homing Launcher',
+ ['weapon_minigun'] = 'Minigun',
+ ['weapon_railgun'] = 'Railgun',
+ ['weapon_rpg'] = 'Rocket Launcher',
+ ['weapon_rayminigun'] = 'Widowmaker',
+
+ -- Thrown
+ ['weapon_ball'] = 'Baseball',
+ ['weapon_bzgas'] = 'BZ Gas',
+ ['weapon_flare'] = 'Flare',
+ ['weapon_grenade'] = 'Grenade',
+ ['weapon_petrolcan'] = 'Jerrycan',
+ ['weapon_hazardcan'] = 'Hazardous Jerrycan',
+ ['weapon_molotov'] = 'Molotov Cocktail',
+ ['weapon_proxmine'] = 'Proximity Mine',
+ ['weapon_pipebomb'] = 'Pipe Bomb',
+ ['weapon_snowball'] = 'Snowball',
+ ['weapon_stickybomb'] = 'Sticky Bomb',
+ ['weapon_smokegrenade'] = 'Tear Gas',
+
+ -- Special
+ ['weapon_fireextinguisher'] = 'Fire Extinguisher',
+ ['weapon_digiscanner'] = 'Digital Scanner',
+ ['weapon_garbagebag'] = 'Garbage Bag',
+ ['weapon_handcuffs'] = 'Handcuffs',
+ ['gadget_nightvision'] = 'Night Vision',
+ ['gadget_parachute'] = 'parachute',
-- Weapon Components
- ['component_clip_default'] = 'standard magg',
- ['component_clip_extended'] = 'förlängd magg',
- ['component_clip_drum'] = 'trummagasin',
- ['component_clip_box'] = 'lådmagasin',
- ['component_flashlight'] = 'ficklampa',
- ['component_scope'] = 'sikte',
- ['component_scope_advanced'] = 'advancerat sikte',
- ['component_suppressor'] = 'ljuddämpare',
- ['component_grip'] = 'handtag',
- ['component_luxary_finish'] = 'lyxvapen behandling',
+ ['component_knuckle_base'] = 'base Model',
+ ['component_knuckle_pimp'] = 'the Pimp',
+ ['component_knuckle_ballas'] = 'the Ballas',
+ ['component_knuckle_dollar'] = 'the Hustler',
+ ['component_knuckle_diamond'] = 'the Rock',
+ ['component_knuckle_hate'] = 'the Hater',
+ ['component_knuckle_love'] = 'the Lover',
+ ['component_knuckle_player'] = 'the Player',
+ ['component_knuckle_king'] = 'the King',
+ ['component_knuckle_vagos'] = 'the Vagos',
+
+ ['component_luxary_finish'] = 'luxary Weapon Finish',
+
+ ['component_handle_default'] = 'default Handle',
+ ['component_handle_vip'] = 'vIP Handle',
+ ['component_handle_bodyguard'] = 'bodyguard Handle',
+
+ ['component_vip_finish'] = 'vIP Finish',
+ ['component_bodyguard_finish'] = 'bodyguard Finish',
+
+ ['component_camo_finish'] = 'digital Camo',
+ ['component_camo_finish2'] = 'brushstroke Camo',
+ ['component_camo_finish3'] = 'woodland Camo',
+ ['component_camo_finish4'] = 'skull Camo',
+ ['component_camo_finish5'] = 'sessanta Nove Camo',
+ ['component_camo_finish6'] = 'perseus Camo',
+ ['component_camo_finish7'] = 'leopard Camo',
+ ['component_camo_finish8'] = 'zebra Camo',
+ ['component_camo_finish9'] = 'geometric Camo',
+ ['component_camo_finish10'] = 'boom Camo',
+ ['component_camo_finish11'] = 'patriotic Camo',
+
+ ['component_camo_slide_finish'] = 'digital Slide Camo',
+ ['component_camo_slide_finish2'] = 'brushstroke Slide Camo',
+ ['component_camo_slide_finish3'] = 'woodland Slide Camo',
+ ['component_camo_slide_finish4'] = 'skull Slide Camo',
+ ['component_camo_slide_finish5'] = 'sessanta Nove Slide Camo',
+ ['component_camo_slide_finish6'] = 'perseus Slide Camo',
+ ['component_camo_slide_finish7'] = 'leopard Slide Camo',
+ ['component_camo_slide_finish8'] = 'zebra Slide Camo',
+ ['component_camo_slide_finish9'] = 'geometric Slide Camo',
+ ['component_camo_slide_finish10'] = 'boom Slide Camo',
+ ['component_camo_slide_finish11'] = 'patriotic Slide Camo',
+
+ ['component_clip_default'] = 'default Magazine',
+ ['component_clip_extended'] = 'extended Magazine',
+ ['component_clip_drum'] = 'drum Magazine',
+ ['component_clip_box'] = 'box Magazine',
+
+ ['component_scope_holo'] = 'holographic Scope',
+ ['component_scope_small'] = 'small Scope',
+ ['component_scope_medium'] = 'medium Scope',
+ ['component_scope_large'] = 'large Scope',
+ ['component_scope'] = 'mounted Scope',
+ ['component_scope_advanced'] = 'advanced Scope',
+ ['component_ironsights'] = 'ironsights',
+
+ ['component_suppressor'] = 'suppressor',
+ ['component_compensator'] = 'compensator',
+
+ ['component_muzzle_flat'] = 'flat Muzzle Brake',
+ ['component_muzzle_tactical'] = 'tactical Muzzle Brake',
+ ['component_muzzle_fat'] = 'fat-End Muzzle Brake',
+ ['component_muzzle_precision'] = 'precision Muzzle Brake',
+ ['component_muzzle_heavy'] = 'heavy Duty Muzzle Brake',
+ ['component_muzzle_slanted'] = 'slanted Muzzle Brake',
+ ['component_muzzle_split'] = 'split-End Muzzle Brake',
+ ['component_muzzle_squared'] = 'squared Muzzle Brake',
+
+ ['component_flashlight'] = 'flashlight',
+ ['component_grip'] = 'grip',
+
+ ['component_barrel_default'] = 'default Barrel',
+ ['component_barrel_heavy'] = 'heavy Barrel',
+
+ ['component_ammo_tracer'] = 'tracer Ammo',
+ ['component_ammo_incendiary'] = 'incendiary Ammo',
+ ['component_ammo_hollowpoint'] = 'hollowpoint Ammo',
+ ['component_ammo_fmj'] = 'fMJ Ammo',
+ ['component_ammo_armor'] = 'armor Piercing Ammo',
+ ['component_ammo_explosive'] = 'armor Piercing Incendiary Ammo',
+
+ ['component_shells_default'] = 'default Shells',
+ ['component_shells_incendiary'] = 'dragons Breath Shells',
+ ['component_shells_armor'] = 'steel Buckshot Shells',
+ ['component_shells_hollowpoint'] = 'flechette Shells',
+ ['component_shells_explosive'] = 'explosive Slug Shells',
-- Weapon Ammo
['ammo_rounds'] = 'ammunition',
['ammo_shells'] = 'hagel',
['ammo_charge'] = 'laddning',
- ['ammo_petrol'] = 'liter bensin',
- ['ammo_firework'] = 'fyrverkeri',
- ['ammo_rockets'] = 'raket',
- ['ammo_grenadelauncher'] = 'granat(er)',
- ['ammo_grenade'] = 'granat(er)',
+ ['ammo_petrol'] = 'bensin',
+ ['ammo_firework'] = 'fyrverkeri(er)',
+ ['ammo_rockets'] = 'raket(er)',
+ ['ammo_grenadelauncher'] = 'grenat(er)',
+ ['ammo_grenade'] = 'grenat(er)',
['ammo_stickybomb'] = 'bomb(er)',
['ammo_pipebomb'] = 'bomb(er)',
['ammo_smokebomb'] = 'bomb(er)',
@@ -214,12 +335,12 @@ Locales['sv'] = {
['ammo_flaregun'] = 'lysraket(er)',
-- Weapon Tints
- ['tint_default'] = 'standardutseende',
- ['tint_green'] = 'grönskinn',
- ['tint_gold'] = 'guldskinn',
- ['tint_pink'] = 'råsaskinn',
- ['tint_army'] = 'arméskinn',
- ['tint_lspd'] = 'blåskinn',
- ['tint_orange'] = 'orangeskinn',
- ['tint_platinum'] = 'platinaskinn',
-}
+ ['tint_default'] = 'Standard färg',
+ ['tint_green'] = 'Grön färg',
+ ['tint_gold'] = 'Guld färg',
+ ['tint_pink'] = 'Rosa färg',
+ ['tint_army'] = 'Armé färg',
+ ['tint_lspd'] = 'Blå färg',
+ ['tint_orange'] = 'Orange färg',
+ ['tint_platinum'] = 'Platina färg',
+}
\ No newline at end of file
diff --git a/[esx]/es_extended/server/classes/player.lua b/[esx]/es_extended/server/classes/player.lua
index 1243c6d1..cd91f799 100644
--- a/[esx]/es_extended/server/classes/player.lua
+++ b/[esx]/es_extended/server/classes/player.lua
@@ -356,6 +356,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
end
end
+ function self.setDuty(bool)
+ self.job.onDuty = bool
+ self.triggerEvent('esx:setJob', self.job)
+ end
+
function self.setJob(job, grade)
grade = tostring(grade)
local lastJob = json.decode(json.encode(self.job))
@@ -371,6 +376,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
self.job.grade_name = gradeObject.name
self.job.grade_label = gradeObject.label
self.job.grade_salary = gradeObject.salary
+ self.job.onDuty = Config.OnDuty
if gradeObject.skin_male then
self.job.skin_male = json.decode(gradeObject.skin_male)
@@ -445,9 +451,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
local loadoutNum, weapon = self.getWeapon(weaponName)
if weapon then
- if ammoCount < weapon.ammo then
- weapon.ammo = ammoCount
- end
+ weapon.ammo = ammoCount
end
end
diff --git a/[esx]/es_extended/server/commands.lua b/[esx]/es_extended/server/commands.lua
index a6e9becf..66240596 100644
--- a/[esx]/es_extended/server/commands.lua
+++ b/[esx]/es_extended/server/commands.lua
@@ -153,18 +153,18 @@ ESX.RegisterCommand('group', {"user", "admin"}, function(xPlayer, args, showErro
end, true)
ESX.RegisterCommand('job', {"user", "admin"}, function(xPlayer, args, showError)
-print(xPlayer.getName()..", You are currently: ^5".. xPlayer.getJob().name.. "^0 - ^5".. xPlayer.getJob().grade_label .. "^0")
+ print(xPlayer.getName()..", You are currently: ^5".. xPlayer.getJob().name.. "^0 - ^5".. xPlayer.getJob().grade_label .. "^0")
end, true)
ESX.RegisterCommand('info', {"user", "admin"}, function(xPlayer, args, showError)
local job = xPlayer.getJob().name
local jobgrade = xPlayer.getJob().grade_name
print("^2ID : ^5"..xPlayer.source.." ^0| ^2Name:^5"..xPlayer.getName().." ^0 | ^2Group:^5"..xPlayer.getGroup().."^0 | ^2Job:^5".. job.."^0")
- end, true)
+end, true)
ESX.RegisterCommand('coords', "admin", function(xPlayer, args, showError)
local coords = GetEntityCoords(GetPlayerPed(xPlayer.source), false)
- local heading = GetEntityHeading(GetPlayerPed(xPlayer.source))
+ local heading = GetEntityHeading(GetPlayerPed(xPlayer.source))
print("Coords - Vector3: ^5".. vector3(coords.x,coords.y,coords.z).. "^0")
print("Coords - Vector4: ^5".. vector4(coords.x, coords.y, coords.z, heading) .. "^0")
end, true)
@@ -176,35 +176,35 @@ ESX.RegisterCommand('tpm', "admin", function(xPlayer, args, showError)
end, true)
ESX.RegisterCommand('goto', "admin", function(xPlayer, args, showError)
- local targetCoords = args.playerId.getCoords()
- xPlayer.setCoords(targetCoords)
-end, true, {help = _U('goto'), validate = true, arguments = {
+ local targetCoords = args.playerId.getCoords()
+ xPlayer.setCoords(targetCoords)
+end, true, {help = _U('command_goto'), validate = true, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
ESX.RegisterCommand('bring', "admin", function(xPlayer, args, showError)
- local playerCoords = xPlayer.getCoords()
- args.playerId.setCoords(playerCoords)
-end, true, {help = _U('bring'), validate = true, arguments = {
+ local playerCoords = xPlayer.getCoords()
+ args.playerId.setCoords(playerCoords)
+end, true, {help = _U('command_bring'), validate = true, arguments = {
{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
ESX.RegisterCommand('kill', "admin", function(xPlayer, args, showError)
args.playerId.triggerEvent("esx:killPlayer")
-end, true, {help = _U('kill'), validate = true, arguments = {
-{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
+end, true, {help = _U('command_kill'), validate = true, arguments = {
+ {name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
ESX.RegisterCommand('freeze', "admin", function(xPlayer, args, showError)
args.playerId.triggerEvent('esx:freezePlayer', "freeze")
-end, true, {help = _U('kill'), validate = true, arguments = {
-{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
+end, true, {help = _U('command_freeze'), validate = true, arguments = {
+ {name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
ESX.RegisterCommand('unfreeze', "admin", function(xPlayer, args, showError)
args.playerId.triggerEvent('esx:freezePlayer', "unfreeze")
-end, true, {help = _U('kill'), validate = true, arguments = {
-{name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
+end, true, {help = _U('command_unfreeze'), validate = true, arguments = {
+ {name = 'playerId', help = _U('commandgeneric_playerid'), type = 'player'}
}})
ESX.RegisterCommand("noclip", 'admin', function(xPlayer, args, showError)
@@ -212,10 +212,9 @@ ESX.RegisterCommand("noclip", 'admin', function(xPlayer, args, showError)
end, false)
ESX.RegisterCommand('players', "admin", function(xPlayer, args, showError)
- local xAll = ESX.GetPlayers()
- print("^5"..#xAll.." ^2online player(s)^0")
- for i=1, #xAll, 1 do
- local xPlayer = ESX.GetPlayerFromId(xAll[i])
+ local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers
+ print("^5"..#xPlayers.." ^2online player(s)^0")
+ for _, xPlayer in pairs(xPlayers) do
print("^1[ ^2ID : ^5"..xPlayer.source.." ^0| ^2Name : ^5"..xPlayer.getName().." ^0 | ^2Group : ^5"..xPlayer.getGroup().." ^0 | ^2Identifier : ^5".. xPlayer.identifier .."^1]^0\n")
end
end, true)
diff --git a/[esx]/es_extended/server/common.lua b/[esx]/es_extended/server/common.lua
index 552e3d4b..29a702bc 100644
--- a/[esx]/es_extended/server/common.lua
+++ b/[esx]/es_extended/server/common.lua
@@ -80,7 +80,7 @@ MySQL.ready(function()
for _, v in pairs(Jobs) do
if ESX.Table.SizeOf(v.grades) == 0 then
Jobs[v.name] = nil
- print(('[^3WARNING^7] Ignoring job ^5"%s"^0due to no job grades found'):format(v.name))
+ print(('[^3WARNING^7] Ignoring job ^5"%s"^0 due to no job grades found'):format(v.name))
end
end
@@ -93,6 +93,7 @@ MySQL.ready(function()
grade = 0,
label = 'Unemployed',
salary = 200,
+ onDuty = false,
skin_male = {},
skin_female = {}
}
diff --git a/[esx]/es_extended/server/main.lua b/[esx]/es_extended/server/main.lua
index 37584df5..45714a7a 100644
--- a/[esx]/es_extended/server/main.lua
+++ b/[esx]/es_extended/server/main.lua
@@ -156,6 +156,7 @@ function loadESXPlayer(identifier, playerId, isNew)
userData.job.grade_name = gradeObject.name
userData.job.grade_label = gradeObject.label
userData.job.grade_salary = gradeObject.salary
+ userData.job.onDuty = Config.OnDuty
userData.job.skin_male = {}
userData.job.skin_female = {}
@@ -360,6 +361,11 @@ if not Config.OxInventory then
local playerId = source
local sourceXPlayer = ESX.GetPlayerFromId(playerId)
local targetXPlayer = ESX.GetPlayerFromId(target)
+ local distance = #(GetEntityCoords(GetPlayerPed(playerId)) - GetEntityCoords(GetPlayerPed(target)))
+ if not sourceXPlayer then return end
+ if not targetXPlayer then print("Cheating: " .. GetPlayerName(playerId)) return end
+ if distance > Config.DistanceGive then print("Cheating: " .. GetPlayerName(playerId)) return end
+
if type == 'item_standard' then
local sourceItem = sourceXPlayer.getInventoryItem(itemName)
@@ -390,12 +396,20 @@ if not Config.OxInventory then
elseif type == 'item_weapon' then
if sourceXPlayer.hasWeapon(itemName) then
local weaponLabel = ESX.GetWeaponLabel(itemName)
-
if not targetXPlayer.hasWeapon(itemName) then
local _, weapon = sourceXPlayer.getWeapon(itemName)
local _, weaponObject = ESX.GetWeapon(itemName)
itemCount = weapon.ammo
-
+ local weaponComponents = ESX.Table.Clone(weapon.components)
+ local weaponTint = weapon.tintIndex
+ if weaponTint then
+ targetXPlayer.setWeaponTint(itemName, weaponTint)
+ end
+ if weaponComponents then
+ for k, v in pairs(weaponComponents) do
+ targetXPlayer.addWeaponComponent(itemName, v)
+ end
+ end
sourceXPlayer.removeWeapon(itemName)
targetXPlayer.addWeapon(itemName, itemCount)
@@ -600,3 +614,18 @@ AddEventHandler('txAdmin:events:scheduledRestart', function(eventData)
end)
end
end)
+
+RegisterNetEvent('esx:setDuty')
+AddEventHandler('esx:setDuty', function(bool)
+ local xPlayer = ESX.GetPlayerFromId(source)
+ if xPlayer.job.onDuty == bool then return end
+
+ if bool then
+ xPlayer.setDuty(true)
+ xPlayer.triggerEvent('esx:showNotification', _U('started_duty'))
+ else
+ xPlayer.setDuty(false)
+ xPlayer.triggerEvent('esx:showNotification', _U('stopped_duty'))
+ end
+ TriggerClientEvent('esx:setJob', xPlayer.source, xPlayer.job)
+end)
diff --git a/[esx]/es_extended/server/paycheck.lua b/[esx]/es_extended/server/paycheck.lua
index bd6ec910..2116cba1 100644
--- a/[esx]/es_extended/server/paycheck.lua
+++ b/[esx]/es_extended/server/paycheck.lua
@@ -5,13 +5,14 @@ function StartPayCheck()
local xPlayers = ESX.GetExtendedPlayers()
for _, xPlayer in pairs(xPlayers) do
local job = xPlayer.job.grade_name
+ local onDuty = xPlayer.job.onDuty
local salary = xPlayer.job.grade_salary
if salary > 0 then
if job == 'unemployed' then -- unemployed
xPlayer.addAccountMoney('bank', salary)
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_help', salary), 'CHAR_BANK_MAZE', 9)
- elseif Config.EnableSocietyPayouts then -- possibly a society
+ elseif Config.EnableSocietyPayouts and onDuty then -- possibly a society
TriggerEvent('esx_society:getSociety', xPlayer.job.name, function (society)
if society ~= nil then -- verified society
TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function (account)
@@ -29,7 +30,7 @@ function StartPayCheck()
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9)
end
end)
- else -- generic job
+ elseif onDuty then -- generic job
xPlayer.addAccountMoney('bank', salary)
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9)
end
diff --git a/[esx]/es_extended/version.json b/[esx]/es_extended/version.json
index 9f3db69d..8883c3fc 100644
--- a/[esx]/es_extended/version.json
+++ b/[esx]/es_extended/version.json
@@ -1,5 +1,5 @@
{
"version": "legacy",
- "commit" : "1.4.2",
- "changelog": "\n- Updated `Car` Command. Fixed some vulnerabilities. Fix SQL. Updated Commands."
+ "commit" : "1.7.0",
+ "changelog": "\n- Add ESX Mulitcharacter"
}
diff --git a/[esx]/esx_identity/client/main.lua b/[esx]/esx_identity/client/main.lua
index 4a2df13c..00729385 100644
--- a/[esx]/esx_identity/client/main.lua
+++ b/[esx]/esx_identity/client/main.lua
@@ -32,6 +32,7 @@ if not Config.UseDeferrals then
type = "enableui",
enable = state
})
+ if state == false then ClearTimecycleModifier() end
end
RegisterNetEvent('esx_identity:showRegisterIdentity')
@@ -40,9 +41,12 @@ if not Config.UseDeferrals then
if not ESX.PlayerData.dead then
EnableGui(true)
+ SetTimecycleModifier("hud_def_blur")
+ SetTimecycleModifierStrength(1)
end
end)
+
RegisterNUICallback('register', function(data, cb)
ESX.TriggerServerCallback('esx_identity:registerIdentity', function(callback)
if callback then
@@ -50,7 +54,7 @@ if not Config.UseDeferrals then
EnableGui(false)
if not ESX.GetConfig().Multichar then TriggerEvent('esx_skin:playerRegistered') end
else
- ESX.ShowNotification(_U('registration_error'))
+ ESX.ShowNotification(_U('registration_error'), "error",5000)
end
end, data)
end)
diff --git a/[esx]/esx_identity/config.lua b/[esx]/esx_identity/config.lua
index 524e8b4a..a46575be 100644
--- a/[esx]/esx_identity/config.lua
+++ b/[esx]/esx_identity/config.lua
@@ -10,8 +10,8 @@ Config.UseDeferrals = false -- EXPERIMENTAL Character Registration Method.
-- These values are for the second input validation in server/main.lua
Config.MaxNameLength = 20
-Config.MinHeight = 45
-Config.MaxHeight = 96
+Config.MinHeight = 120
+Config.MaxHeight = 220
Config.LowestYear = 1900
Config.HighestYear = 2021
diff --git a/[esx]/esx_identity/fxmanifest.lua b/[esx]/esx_identity/fxmanifest.lua
index 863c708e..e34396d2 100644
--- a/[esx]/esx_identity/fxmanifest.lua
+++ b/[esx]/esx_identity/fxmanifest.lua
@@ -4,7 +4,7 @@ game 'gta5'
description 'ESX Identity'
-version '1.5.0'
+version '1.7.0'
shared_script '@es_extended/imports.lua'
diff --git a/[esx]/esx_identity/html/css/style.css b/[esx]/esx_identity/html/css/style.css
index eaa2535e..0821863f 100644
--- a/[esx]/esx_identity/html/css/style.css
+++ b/[esx]/esx_identity/html/css/style.css
@@ -1,8 +1,11 @@
+
+
+
body {
font-family: sans-serif;
overflow: hidden;
display: none;
- color: #000000;
+ background: linear-gradient(135deg, rgba(33, 47, 63, 1) 51%, hsla(214, 33%, 22%, 1) 100%);
}
.dialog {
@@ -12,28 +15,41 @@ body {
margin-left: auto;
margin-right: auto;
top : 30.0%;
- padding: 10px;
+ padding: 20px;
left : 50%; /* à 50%/50% du parent référent */
transform : translate(-50%); /* décalage de 50% de sa propre taille */
- background-color: #B7B7B7;
- border-radius : 4px;
- box-shadow: 0px 0px 50px 0px #000;
- border-left:5px solid #000;
- border:1px inset;
+ background-color: #152029;
+ border-radius : 10px;
+ box-shadow: 0 -5px 3px -3px #21303d, 0 5px 3px -3px #21303d;
+ border:none;
margin:5px;
margin-bottom:20px;
- color: #000000;
+ color: #ffffff;
+}
+
+.aa {
+ font-family: "Gill Sans", sans-serif;
+ font-size: 22px;
+ text-align: center;
+ padding: 5px;
+ margin-bottom: 20px;
}
input {
+ margin-bottom: 15px;
+ border: none;
+ border-bottom: 2px solid #58636c;
width: 100%;
+ outline: none;
padding: 10px;
+ padding-left:0;
+ color: #ffffff;
text-align:left;
- color: #000000;
+ background-color: #152029;
}
::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
- color: black;
+ color: rgba(84,97,105,255);
opacity: 1; /* Firefox */
}
@@ -46,42 +62,48 @@ input {
.radio-toolbar label {
display: inline-block;
margin-top: 5px;
- background-color: #ddd;
+ background-color: rgba(15,15,15,0.9);
padding: 10px 20px;
font-family: sans-serif, Arial;
font-size: 16px;
- color: #000000;
- border: 2px solid #444;
- border-radius: 4px;
+ color: #FFFFFF;
+ border: none;
+ border-radius: 5px;
width: 36%;
}
.radio-toolbar input[type="radio"]:checked + label {
width: 36%;
- background-color:#3399FF;
- border-color: #0033FF;
- color: #000000;
+ background-color:rgba(15,15,15,0.9);
+ border: none;
+ border-bottom: 1px solid #93a3b6;
+ border-radius: 5px;
+ color: #ffffff;
}
.radio-toolbar input[type="radio"]:focus + label {
- border: 2px solid #444;
- width: 36%;
- color: #000000;
+ background-color:rgba(15,15,15,0.9);
+ border: none;
+ border-bottom: 1px solid #93a3b6;
+ border-radius: 5px;
+ color: #ffffff;
}
.radio-toolbar label:hover {
- background-color: #dfd;
+ background-color: rgba(28, 24, 24, 0.931);
width: 36%;
- color: #000000;
+ color: #ffffff;
}
button {
display: block;
- margin-top: 5px;
- padding: 10px;
- background-color: #373737;
- border: 2px solid #444;
+ margin-top: 35px;
+ /*padding: 10px;*/
+ background-color: #4569c6;
+ outline: none;
+ border: 2px double rgba(40, 40, 40, 0.9);
color: #FFFFFF;
+ height: 30px;
width: 100%;
}
@@ -90,8 +112,8 @@ h1 {
margin-top: 5px;
margin-right: 5px;
padding: 10px;
- background-color: #506be6;
- color: #000000;
+ background-color: rgba(15,15,15,0.9);
+ color: #ffffff;
width: 93%;
text-align: center;
}
@@ -106,8 +128,8 @@ h1 {
}
.bubble {
- background: #3399FF;
- color: black;
+ background: rgba(15,15,15,0.9);
+ color: #ffffff;
padding: 4px 12px;
position: absolute;
border-radius: 4px;
@@ -115,13 +137,14 @@ h1 {
transform: translateX(-50%);
}
+
.bubble::after {
content: "";
position: absolute;
width: 2px;
height: 2px;
- background: #3399FF;
+ background: rgba(15,15,15,0.9);
color: black;
top: -1px;
left: 50%;
-}
\ No newline at end of file
+}
diff --git a/[esx]/esx_identity/html/index.html b/[esx]/esx_identity/html/index.html
index 182d344a..d3cd00de 100644
--- a/[esx]/esx_identity/html/index.html
+++ b/[esx]/esx_identity/html/index.html
@@ -8,11 +8,17 @@
-

+
IDENTITY
+