From 88c8036a246f80ec730beba43e0fae8ab249f1a7 Mon Sep 17 00:00:00 2001 From: TheFantomas <117121911+TheFantomas@users.noreply.github.com> Date: Thu, 29 Jun 2023 20:20:28 +0200 Subject: [PATCH] formatting(core): Format all --- [core]/cron/fxmanifest.lua | 2 +- [core]/cron/server/main.lua | 3 +- [core]/es_extended/client/functions.lua | 102 +- [core]/es_extended/client/main.lua | 43 +- [core]/es_extended/client/modules/actions.lua | 5 +- .../es_extended/client/modules/callback.lua | 2 +- [core]/es_extended/client/modules/death.lua | 8 +- [core]/es_extended/client/modules/npwd.lua | 2 +- [core]/es_extended/common/functions.lua | 8 +- [core]/es_extended/common/modules/math.lua | 8 +- [core]/es_extended/common/modules/table.lua | 40 +- [core]/es_extended/config.lua | 110 +- [core]/es_extended/config.weapons.lua | 1294 +++++++++-------- [core]/es_extended/fxmanifest.lua | 4 +- [core]/es_extended/locale.lua | 4 +- [core]/es_extended/locales/cs.lua | 4 +- [core]/es_extended/locales/da.lua | 4 +- [core]/es_extended/locales/de.lua | 4 +- [core]/es_extended/locales/en.lua | 2 +- [core]/es_extended/locales/es.lua | 6 +- [core]/es_extended/locales/fi.lua | 4 +- [core]/es_extended/locales/fr.lua | 6 +- [core]/es_extended/locales/hu.lua | 8 +- [core]/es_extended/locales/it.lua | 4 +- [core]/es_extended/locales/nl.lua | 74 +- [core]/es_extended/locales/pl.lua | 4 +- [core]/es_extended/locales/sl.lua | 73 +- [core]/es_extended/locales/sr.lua | 4 +- [core]/es_extended/locales/zh-cn.lua | 4 +- .../server/classes/overrides/oxinventory.lua | 28 +- [core]/es_extended/server/classes/player.lua | 107 +- [core]/es_extended/server/commands.lua | 477 +++--- [core]/es_extended/server/common.lua | 4 +- [core]/es_extended/server/functions.lua | 181 +-- [core]/es_extended/server/modules/actions.lua | 4 +- .../es_extended/server/modules/callback.lua | 2 +- [core]/es_extended/server/onesync.lua | 7 +- [core]/es_extended/server/paycheck.lua | 36 +- [core]/esx_context/config.lua | 2 +- [core]/esx_context/fxmanifest.lua | 4 +- [core]/esx_identity/client/main.lua | 2 +- [core]/esx_identity/config.lua | 24 +- [core]/esx_identity/fxmanifest.lua | 4 +- [core]/esx_identity/locales/da.lua | 75 +- [core]/esx_identity/locales/es.lua | 72 +- [core]/esx_identity/locales/fr.lua | 74 +- [core]/esx_identity/locales/pt.lua | 74 +- [core]/esx_identity/locales/sl.lua | 74 +- [core]/esx_identity/server/main.lua | 241 ++- [core]/esx_loadingscreen/client/client.lua | 4 +- [core]/esx_loadingscreen/config.lua | 2 +- [core]/esx_loadingscreen/fxmanifest.lua | 4 +- [core]/esx_menu_default/client/main.lua | 2 +- [core]/esx_menu_default/fxmanifest.lua | 10 +- [core]/esx_menu_dialog/client/main.lua | 2 +- [core]/esx_menu_dialog/fxmanifest.lua | 2 +- [core]/esx_menu_list/client/main.lua | 8 +- [core]/esx_menu_list/fxmanifest.lua | 2 +- [core]/esx_multicharacter/client/main.lua | 56 +- [core]/esx_multicharacter/fxmanifest.lua | 14 +- [core]/esx_multicharacter/locales/sl.lua | 12 +- [core]/esx_multicharacter/locales/sr.lua | 2 +- [core]/esx_multicharacter/server/commands.lua | 66 +- [core]/esx_notify/Notify.lua | 15 +- [core]/esx_notify/fxmanifest.lua | 2 +- [core]/esx_progressbar/Progress.lua | 4 +- [core]/esx_progressbar/fxmanifest.lua | 2 +- [core]/esx_skin/client/main.lua | 21 +- [core]/esx_skin/fxmanifest.lua | 2 +- [core]/esx_skin/locales/da.lua | 2 +- [core]/esx_skin/locales/pt.lua | 10 +- [core]/esx_skin/locales/zh-cn.lua | 10 +- [core]/esx_skin/server/main.lua | 24 +- [core]/esx_textui/TextUI.lua | 4 +- [core]/esx_textui/fxmanifest.lua | 2 +- [core]/skinchanger/client/main.lua | 96 +- [core]/skinchanger/config.lua | 4 +- [core]/skinchanger/fxmanifest.lua | 2 +- [core]/skinchanger/locales/da.lua | 2 +- [core]/skinchanger/locales/fi.lua | 2 +- [core]/skinchanger/locales/nl.lua | 198 +-- [core]/skinchanger/locales/pl.lua | 2 +- [core]/skinchanger/locales/pt.lua | 198 +-- 83 files changed, 2096 insertions(+), 2020 deletions(-) diff --git a/[core]/cron/fxmanifest.lua b/[core]/cron/fxmanifest.lua index aef7cbe4..97d75c99 100644 --- a/[core]/cron/fxmanifest.lua +++ b/[core]/cron/fxmanifest.lua @@ -4,6 +4,6 @@ game 'gta5' author 'ESX-Framework' description 'cron' lua54 'yes' -version '1.9.4' +version '1.9.5' server_script 'server/main.lua' diff --git a/[core]/cron/server/main.lua b/[core]/cron/server/main.lua index e517d10e..d82214a7 100644 --- a/[core]/cron/server/main.lua +++ b/[core]/cron/server/main.lua @@ -15,11 +15,10 @@ function GetTime() local h = tonumber(os.date('%H', timestamp)) local m = tonumber(os.date('%M', timestamp)) - return {d = d, h = h, m = m} + return { d = d, h = h, m = m } end function OnTime(d, h, m) - for i = 1, #Jobs, 1 do if Jobs[i].h == h and Jobs[i].m == m then Jobs[i].cb(d, h, m) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 65d4c61d..da7ae46e 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -26,7 +26,7 @@ end function ESX.SearchInventory(items, count) if type(items) == 'string' then - items = {items} + items = { items } end local returnData = {} @@ -154,7 +154,7 @@ if GetResourceState("esx_context") ~= "missing" then end function ESX.RefreshContext(...) - exports["esx_context"]:Refresh(...) + exports["esx_context"]:Refresh(...) end else function ESX.OpenContext() @@ -203,7 +203,6 @@ function ESX.UI.Menu.Open(type, namespace, name, data, submit, cancel, change, c menu.change = change menu.close = function() - ESX.UI.Menu.RegisteredTypes[type].close(namespace, name) for i = 1, #ESX.UI.Menu.Opened, 1 do @@ -218,11 +217,9 @@ function ESX.UI.Menu.Open(type, namespace, name, data, submit, cancel, change, c if close then close() end - end menu.update = function(query, newData) - for i = 1, #menu.data.elements, 1 do local match = true @@ -238,7 +235,6 @@ function ESX.UI.Menu.Open(type, namespace, name, data, submit, cancel, change, c end end end - end menu.refresh = function() @@ -266,7 +262,6 @@ function ESX.UI.Menu.Open(type, namespace, name, data, submit, cancel, change, c break end end - end end end @@ -496,7 +491,6 @@ function ESX.Game.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds) return players end - function ESX.Game.GetClosestObject(coords, modelFilter) return ESX.Game.GetClosestEntity(ESX.Game.GetObjects(), false, coords, modelFilter) end @@ -604,19 +598,19 @@ function ESX.Game.GetVehicleProperties(vehicle) local interiorColor = GetVehicleInteriorColour(vehicle) local customPrimaryColor = nil if hasCustomPrimaryColor then - customPrimaryColor = {GetVehicleCustomPrimaryColour(vehicle)} + customPrimaryColor = { GetVehicleCustomPrimaryColour(vehicle) } end local hasCustomXenonColor, customXenonColorR, customXenonColorG, customXenonColorB = GetVehicleXenonLightsCustomColor(vehicle) local customXenonColor = nil if hasCustomXenonColor then - customXenonColor = {customXenonColorR, customXenonColorG, customXenonColorB} + customXenonColor = { customXenonColorR, customXenonColorG, customXenonColorB } end local hasCustomSecondaryColor = GetIsVehicleSecondaryColourCustom(vehicle) local customSecondaryColor = nil if hasCustomSecondaryColor then - customSecondaryColor = {GetVehicleCustomSecondaryColour(vehicle)} + customSecondaryColor = { GetVehicleCustomSecondaryColour(vehicle) } end local extras = {} @@ -634,11 +628,11 @@ function ESX.Game.GetVehicleProperties(vehicle) 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. + 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. } if TyresIndex[numWheels] then @@ -688,8 +682,8 @@ function ESX.Game.GetVehicleProperties(vehicle) xenonColor = GetVehicleXenonLightsColor(vehicle), customXenonColor = customXenonColor, - neonEnabled = {IsVehicleNeonLightEnabled(vehicle, 0), IsVehicleNeonLightEnabled(vehicle, 1), - IsVehicleNeonLightEnabled(vehicle, 2), IsVehicleNeonLightEnabled(vehicle, 3)}, + neonEnabled = { IsVehicleNeonLightEnabled(vehicle, 0), IsVehicleNeonLightEnabled(vehicle, 1), + IsVehicleNeonLightEnabled(vehicle, 2), IsVehicleNeonLightEnabled(vehicle, 3) }, neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)), extras = extras, @@ -720,7 +714,7 @@ function ESX.Game.GetVehicleProperties(vehicle) modXenon = IsToggleModOn(vehicle, 22), modFrontWheels = GetVehicleMod(vehicle, 23), - modCustomFrontWheels = GetVehicleModVariation(vehicle, 23), + modCustomFrontWheels = GetVehicleModVariation(vehicle, 23), modBackWheels = GetVehicleMod(vehicle, 24), modCustomBackWheels = GetVehicleModVariation(vehicle, 24), @@ -909,7 +903,7 @@ function ESX.Game.SetVehicleProperties(vehicle, props) if props.modFrontWheels ~= nil then SetVehicleMod(vehicle, 23, props.modFrontWheels, false) end - if props.modCustomFrontWheels ~= nil then + if props.modCustomFrontWheels ~= nil then SetVehicleMod(vehicle, 23, props.modCustomFrontWheels, false) end if props.modBackWheels ~= nil then @@ -1062,7 +1056,7 @@ function ESX.ShowInventory() local playerPed = ESX.PlayerData.ped local elements = { - {unselectable = true, icon = 'fas fa-box', title = 'Player Inventory'} + { unselectable = true, icon = 'fas fa-box', title = 'Player Inventory' } } local currentWeight = 0 @@ -1071,7 +1065,7 @@ function ESX.ShowInventory() local formattedMoney = TranslateCap('locale_currency', ESX.Math.GroupDigits(ESX.PlayerData.accounts[i].money)) local canDrop = ESX.PlayerData.accounts[i].name ~= 'bank' - elements[#elements+1] = { + elements[#elements + 1] = { icon = 'fas fa-money-bill-wave', title = ('%s: %s'):format(ESX.PlayerData.accounts[i].label, formattedMoney), count = ESX.PlayerData.accounts[i].money, @@ -1088,7 +1082,7 @@ function ESX.ShowInventory() if v.count > 0 then currentWeight = currentWeight + (v.weight * v.count) - elements[#elements+1] = { + elements[#elements + 1] = { icon = 'fas fa-box', title = ('%s x%s'):format(v.label, v.count), count = v.count, @@ -1107,7 +1101,7 @@ function ESX.ShowInventory() if HasPedGotWeapon(playerPed, weaponHash, false) then local ammo = GetAmmoInPedWeapon(playerPed, weaponHash) - elements[#elements+1] = { + elements[#elements + 1] = { icon = 'fas fa-gun', title = v.ammo and ('%s - %s %s'):format(v.label, ammo, v.ammo.label) or v.label, count = 1, @@ -1122,10 +1116,10 @@ function ESX.ShowInventory() end end - elements[#elements+1] = { + elements[#elements + 1] = { unselectable = true, icon = "fas fa-weight", - title = "Current Weight: "..currentWeight + title = "Current Weight: " .. currentWeight } ESX.CloseContext() @@ -1136,7 +1130,7 @@ function ESX.ShowInventory() local elements2 = {} if element.usable then - elements2[#elements2+1] = { + elements2[#elements2 + 1] = { icon = "fas fa-utensils", title = TranslateCap('use'), action = 'use', @@ -1147,7 +1141,7 @@ function ESX.ShowInventory() if element.canRemove then if player ~= -1 and distance <= 3.0 then - elements2[#elements2+1] = { + elements2[#elements2 + 1] = { icon = "fas fa-hands", title = TranslateCap('give'), action = 'give', @@ -1156,7 +1150,7 @@ function ESX.ShowInventory() } end - elements2[#elements2+1] = { + elements2[#elements2 + 1] = { icon = "fas fa-trash", title = TranslateCap('remove'), action = 'remove', @@ -1166,7 +1160,7 @@ function ESX.ShowInventory() end if element.type == 'item_weapon' and element.canGiveAmmo and element.ammo > 0 and player ~= -1 and distance <= 3.0 then - elements2[#elements2+1] = { + elements2[#elements2 + 1] = { icon = "fas fa-gun", title = TranslateCap('giveammo'), action = 'give_ammo', @@ -1175,7 +1169,7 @@ function ESX.ShowInventory() } end - elements2[#elements2+1] = { + elements2[#elements2 + 1] = { icon = "fas fa-arrow-left", title = TranslateCap('return'), action = 'return' @@ -1190,7 +1184,7 @@ function ESX.ShowInventory() if #playersNearby > 0 then local players = {} local elements3 = { - {unselectable = true, icon = "fas fa-users", title = "Nearby Players"} + { unselectable = true, icon = "fas fa-users", title = "Nearby Players" } } for _, playerNearby in ipairs(playersNearby) do @@ -1199,7 +1193,7 @@ function ESX.ShowInventory() ESX.TriggerServerCallback('esx:getPlayerNames', function(returnedPlayers) for playerId, playerName in pairs(returnedPlayers) do - elements3[#elements3+1] = { + elements3[#elements3 + 1] = { icon = "fas fa-user", title = playerName, playerId = playerId @@ -1220,9 +1214,9 @@ function ESX.ShowInventory() ESX.CloseContext() else local elementsG = { - {unselectable = true, icon = "fas fa-trash", title = element.title}, - {icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to give..", inputMin = 1, inputMax = 1000}, - {icon = "fas fa-check-double", title = "Confirm", val = "confirm"} + { unselectable = true, icon = "fas fa-trash", title = element.title }, + { icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to give..", inputMin = 1, inputMax = 1000 }, + { icon = "fas fa-check-double", title = "Confirm", val = "confirm" } } ESX.OpenContext("right", elementsG, function(menuG) @@ -1259,9 +1253,9 @@ function ESX.ShowInventory() TriggerServerEvent('esx:removeInventoryItem', type, item) else local elementsR = { - {unselectable = true, icon = "fas fa-trash", title = element.title}, - {icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to remove..", inputMin = 1, inputMax = 1000}, - {icon = "fas fa-check-double", title = "Confirm", val = "confirm"} + { unselectable = true, icon = "fas fa-trash", title = element.title }, + { icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to remove..", inputMin = 1, inputMax = 1000 }, + { icon = "fas fa-check-double", title = "Confirm", val = "confirm" } } ESX.OpenContext("right", elementsR, function(menuR) @@ -1294,9 +1288,9 @@ function ESX.ShowInventory() if closestPlayer ~= -1 and closestDistance < 3.0 then if pedAmmo > 0 then local elementsGA = { - {unselectable = true, icon = "fas fa-trash", title = element.title}, - {icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to give..", inputMin = 1, inputMax = 1000}, - {icon = "fas fa-check-double", title = "Confirm", val = "confirm"} + { unselectable = true, icon = "fas fa-trash", title = element.title }, + { icon = "fas fa-tally", title = "Amount.", input = true, inputType = "number", inputPlaceholder = "Amount to give..", inputMin = 1, inputMax = 1000 }, + { icon = "fas fa-check-double", title = "Confirm", val = "confirm" } } ESX.OpenContext("right", elementsGA, function(menuGA) @@ -1348,20 +1342,20 @@ end) function ESX.GetVehicleType(model) model = type(model) == 'string' and joaat(model) or model - if model == `submersible` or model == `submersible2` then + if model == `submersible` or model == `submersible2` then return 'submarine' - end + end - local vehicleType = GetVehicleClassFromName(model) - local types = { - [8] = "bike", - [11] = "trailer", - [13] = "bike", - [14] = "boat", - [15] = "heli", - [16] = "plane", - [21] = "train", - } + local vehicleType = GetVehicleClassFromName(model) + local types = { + [8] = "bike", + [11] = "trailer", + [13] = "bike", + [14] = "boat", + [15] = "heli", + [16] = "plane", + [21] = "train", + } return types[vehicleType] or "automobile" end diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 60098916..34a0f3e2 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -3,7 +3,7 @@ local pickups = {} CreateThread(function() while not Config.Multichar do Wait(100) - + if NetworkIsPlayerActive(PlayerId()) then exports.spawnmanager:setAutoSpawn(false) DoScreenFadeOut(0) @@ -101,7 +101,7 @@ AddEventHandler('esx:playerLoaded', function(xPlayer, isNew, skin) SetPlayerLockonRangeOverride(playerId, 2.0) end end - + if Config.DisableVehicleRewards then DisablePlayerVehicleRewards(playerId) end @@ -173,7 +173,7 @@ AddEventHandler('esx:playerLoaded', function(xPlayer, isNew, skin) 'WORLD_VEHICLE_DISTANT_EMPTY_GROUND', 'WORLD_HUMAN_PAPARAZZI' } - + for _, v in pairs(scenarios) do SetScenarioTypeEnabled(v, false) end @@ -246,25 +246,25 @@ AddStateBagChangeHandler('VehicleProperties', nil, function(bagName, _, value) return end - local netId = bagName:gsub('entity:', '') - local timer = GetGameTimer() - while not NetworkDoesEntityExistWithNetworkId(tonumber(netId)) do - Wait(0) - if GetGameTimer() - timer > 10000 then - return - end - end + local netId = bagName:gsub('entity:', '') + local timer = GetGameTimer() + while not NetworkDoesEntityExistWithNetworkId(tonumber(netId)) do + Wait(0) + if GetGameTimer() - timer > 10000 then + return + end + end - local vehicle = NetToVeh(tonumber(netId)) - local timer2 = GetGameTimer() - while NetworkGetEntityOwner(vehicle) ~= PlayerId() do - Wait(0) - if GetGameTimer() - timer2 > 10000 then - return - end - end + local vehicle = NetToVeh(tonumber(netId)) + local timer2 = GetGameTimer() + while NetworkGetEntityOwner(vehicle) ~= PlayerId() do + Wait(0) + if GetGameTimer() - timer2 > 10000 then + return + end + end - ESX.Game.SetVehicleProperties(vehicle, value) + ESX.Game.SetVehicleProperties(vehicle, value) end) RegisterNetEvent('esx:setAccountMoney') @@ -332,7 +332,6 @@ if not Config.OxInventory then RegisterNetEvent('esx:setWeaponTint') AddEventHandler('esx:setWeaponTint', function(weapon, weaponTintIndex) SetPedWeaponTintIndex(ESX.PlayerData.ped, joaat(weapon), weaponTintIndex) - end) RegisterNetEvent('esx:removeWeapon') @@ -392,7 +391,7 @@ if not Config.OxInventory then AddEventHandler('esx:createMissingPickups', function(missingPickups) for pickupId, pickup in pairs(missingPickups) do TriggerEvent('esx:createPickup', pickupId, pickup.label, pickup.coords - vector3(0, 0, 1.0), pickup.type, pickup.name - , pickup.components, pickup.tintIndex) + , pickup.components, pickup.tintIndex) end end) end diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index aec543e9..219c3508 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -21,7 +21,6 @@ end CreateThread(function() while true do - if playerPed ~= PlayerPedId() then playerPed = PlayerPedId() ESX.SetPlayerData('ped', playerPed) @@ -37,7 +36,7 @@ CreateThread(function() isJumping = false end - if IsPauseMenuActive() and not inPauseMenu then + if IsPauseMenuActive() and not inPauseMenu then inPauseMenu = true TriggerEvent('esx:pauseMenuActive', inPauseMenu) elseif not IsPauseMenuActive() and inPauseMenu then @@ -87,7 +86,6 @@ CreateThread(function() end) if Config.EnableDebug then - AddEventHandler('esx:playerPedChanged', function(netId) print('esx:playerPedChanged', netId) end) @@ -111,5 +109,4 @@ if Config.EnableDebug then AddEventHandler('esx:exitedVehicle', function(vehicle, plate, seat, displayName, netId) print('esx:exitedVehicle', 'vehicle', vehicle, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) end) - end diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index dfeae8fa..e6d38cdc 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -8,7 +8,7 @@ local clientCallbacks = {} ---@param ... any ESX.TriggerServerCallback = function(eventName, callback, ...) serverRequests[RequestId] = callback - + TriggerServerEvent('esx:triggerServerCallback', eventName, RequestId, GetInvokingResource() or "unknown", ...) RequestId = RequestId + 1 diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index be39fe3b..51d8aec7 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -4,7 +4,7 @@ AddEventHandler('gameEventTriggered', function(event, data) if not IsPedAPlayer(victim) then return end local player = PlayerId() local playerPed = PlayerPedId() - if victimDied and NetworkGetPlayerIndexFromPed(victim) == player and (IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim)) then + if victimDied and NetworkGetPlayerIndexFromPed(victim) == player and (IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim)) then local killerEntity, deathCause = GetPedSourceOfDeath(playerPed), GetPedCauseOfDeath(playerPed) local killerClientId = NetworkGetPlayerIndexFromPed(killerEntity) if killerEntity ~= playerPed and killerClientId and NetworkIsPlayerActive(killerClientId) then @@ -21,8 +21,8 @@ function PlayerKilledByPlayer(killerServerId, killerClientId, deathCause) local distance = #(victimCoords - killerCoords) local data = { - victimCoords = {x = ESX.Math.Round(victimCoords.x, 1), y = ESX.Math.Round(victimCoords.y, 1), z = ESX.Math.Round(victimCoords.z, 1)}, - killerCoords = {x = ESX.Math.Round(killerCoords.x, 1), y = ESX.Math.Round(killerCoords.y, 1), z = ESX.Math.Round(killerCoords.z, 1)}, + victimCoords = { x = ESX.Math.Round(victimCoords.x, 1), y = ESX.Math.Round(victimCoords.y, 1), z = ESX.Math.Round(victimCoords.z, 1) }, + killerCoords = { x = ESX.Math.Round(killerCoords.x, 1), y = ESX.Math.Round(killerCoords.y, 1), z = ESX.Math.Round(killerCoords.z, 1) }, killedByPlayer = true, deathCause = deathCause, @@ -41,7 +41,7 @@ function PlayerKilled(deathCause) local victimCoords = GetEntityCoords(playerPed) local data = { - victimCoords = {x = ESX.Math.Round(victimCoords.x, 1), y = ESX.Math.Round(victimCoords.y, 1), z = ESX.Math.Round(victimCoords.z, 1)}, + victimCoords = { x = ESX.Math.Round(victimCoords.x, 1), y = ESX.Math.Round(victimCoords.y, 1), z = ESX.Math.Round(victimCoords.z, 1) }, killedByPlayer = false, deathCause = deathCause diff --git a/[core]/es_extended/client/modules/npwd.lua b/[core]/es_extended/client/modules/npwd.lua index b6c7ac75..cac2e111 100644 --- a/[core]/es_extended/client/modules/npwd.lua +++ b/[core]/es_extended/client/modules/npwd.lua @@ -15,7 +15,7 @@ AddEventHandler('onClientResourceStart', function(resource) if resource ~= 'npwd' then return end - + npwd = GetResourceState('npwd'):find('start') and exports.npwd or nil if ESX.PlayerLoaded then diff --git a/[core]/es_extended/common/functions.lua b/[core]/es_extended/common/functions.lua index c96241fb..1bf9f8b7 100644 --- a/[core]/es_extended/common/functions.lua +++ b/[core]/es_extended/common/functions.lua @@ -1,7 +1,7 @@ local Charset = {} -for i = 48, 57 do table.insert(Charset, string.char(i)) end -for i = 65, 90 do table.insert(Charset, string.char(i)) end +for i = 48, 57 do table.insert(Charset, string.char(i)) end +for i = 65, 90 do table.insert(Charset, string.char(i)) end for i = 97, 122 do table.insert(Charset, string.char(i)) end local weaponsByName = {} @@ -78,11 +78,11 @@ function ESX.DumpTable(table, nb) s = '{\n' for k, v in pairs(table) do - if type(k) ~= 'number' then k = '"'..k..'"' end + if type(k) ~= 'number' then k = '"' .. k .. '"' end for _ = 1, nb, 1 do s = s .. " " end - s = s .. '['..k..'] = ' .. ESX.DumpTable(v, nb + 1) .. ',\n' + s = s .. '[' .. k .. '] = ' .. ESX.DumpTable(v, nb + 1) .. ',\n' end for _ = 1, nb, 1 do diff --git a/[core]/es_extended/common/modules/math.lua b/[core]/es_extended/common/modules/math.lua index 20856f09..c851c08f 100644 --- a/[core]/es_extended/common/modules/math.lua +++ b/[core]/es_extended/common/modules/math.lua @@ -2,7 +2,7 @@ ESX.Math = {} function ESX.Math.Round(value, numDecimalPlaces) if numDecimalPlaces then - local power = 10^numDecimalPlaces + local power = 10 ^ numDecimalPlaces return math.floor((value * power) + 0.5) / (power) else return math.floor(value + 0.5) @@ -11,9 +11,9 @@ end -- credit http://richard.warburton.it function ESX.Math.GroupDigits(value) - local left,num,right = string.match(value,'^([^%d]*%d)(%d*)(.-)$') + local left, num, right = string.match(value, '^([^%d]*%d)(%d*)(.-)$') - return left..(num:reverse():gsub('(%d%d%d)','%1' .. TranslateCap('locale_digit_grouping_symbol')):reverse())..right + return left .. (num:reverse():gsub('(%d%d%d)', '%1' .. TranslateCap('locale_digit_grouping_symbol')):reverse()) .. right end function ESX.Math.Trim(value) @@ -22,4 +22,4 @@ function ESX.Math.Trim(value) else return nil end -end \ No newline at end of file +end diff --git a/[core]/es_extended/common/modules/table.lua b/[core]/es_extended/common/modules/table.lua index c582d59b..3593b245 100644 --- a/[core]/es_extended/common/modules/table.lua +++ b/[core]/es_extended/common/modules/table.lua @@ -4,7 +4,7 @@ ESX.Table = {} function ESX.Table.SizeOf(t) local count = 0 - for _,_ in pairs(t) do + for _, _ in pairs(t) do count = count + 1 end @@ -28,7 +28,7 @@ function ESX.Table.IndexOf(t, value) end function ESX.Table.LastIndexOf(t, value) - for i=#t, 1, -1 do + for i = #t, 1, -1 do if t[i] == value then return i end @@ -82,7 +82,7 @@ end function ESX.Table.Reverse(t) local newTable = {} - for i=#t, 1, -1 do + for i = #t, 1, -1 do table.insert(newTable, t[i]) end @@ -134,21 +134,21 @@ end -- Credits: https://github.com/JonasDev99/qb-garages/blob/b0335d67cb72a6b9ac60f62a87fb3946f5c2f33d/server/main.lua#L5 function ESX.Table.TableContains(tab, val) - if type(val) == "table" then - for _, value in pairs(tab) do - if ESX.Table.TableContains(val, value) then - return true - end - end - return false - else - for _, value in pairs(tab) do - if value == val then - return true - end - end - end - return false + if type(val) == "table" then + for _, value in pairs(tab) do + if ESX.Table.TableContains(val, value) then + return true + end + end + return false + else + for _, value in pairs(tab) do + if value == val then + return true + end + end + end + return false end -- Credit: https://stackoverflow.com/a/15706820 @@ -157,14 +157,14 @@ function ESX.Table.Sort(t, order) -- collect the keys local keys = {} - for k,_ in pairs(t) do + for k, _ in pairs(t) do keys[#keys + 1] = k end -- if order function given, sort by it by passing the table and keys a, b, -- otherwise just sort the keys if order then - table.sort(keys, function(a,b) + table.sort(keys, function(a, b) return order(t, a, b) end) else diff --git a/[core]/es_extended/config.lua b/[core]/es_extended/config.lua index a4245685..7f0c7989 100644 --- a/[core]/es_extended/config.lua +++ b/[core]/es_extended/config.lua @@ -1,7 +1,7 @@ -Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config = {} +Config.Locale = GetConvar('esx:locale', 'en') -Config.Accounts = { +Config.Accounts = { bank = { label = TranslateCap('account_bank'), round = true @@ -16,15 +16,15 @@ Config.Accounts = { } } -Config.StartingAccountMoney = {bank = 50000} +Config.StartingAccountMoney = { bank = 50000 } Config.DefaultSpawns = { -- If you want to have more spawn positions and select them randomly uncomment commented code or add more locations - {x = 222.2027, y = -864.0162, z = 30.2922, heading = 1.0}, - --{x = 224.9865, y = -865.0871, z = 30.2922, heading = 1.0}, - --{x = 227.8436, y = -866.0400, z = 30.2922, heading = 1.0}, - --{x = 230.6051, y = -867.1450, z = 30.2922, heading = 1.0}, - --{x = 233.5459, y = -868.2626, z = 30.2922, heading = 1.0} + { x = 222.2027, y = -864.0162, z = 30.2922, heading = 1.0 }, + --{x = 224.9865, y = -865.0871, z = 30.2922, heading = 1.0}, + --{x = 227.8436, y = -866.0400, z = 30.2922, heading = 1.0}, + --{x = 230.6051, y = -867.1450, z = 30.2922, heading = 1.0}, + --{x = 233.5459, y = -868.2626, z = 30.2922, heading = 1.0} } Config.AdminGroups = { @@ -33,57 +33,57 @@ Config.AdminGroups = { } -Config.EnablePaycheck = true -- enable paycheck -Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via webhook (default is false) -Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society -Config.MaxWeight = 24 -- the max inventory weight without backpack -Config.PaycheckInterval = 7 * 60000 -- how often to recieve pay checks in milliseconds -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.EnablePaycheck = true -- enable paycheck +Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via webhook (default is false) +Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society +Config.MaxWeight = 24 -- the max inventory weight without backpack +Config.PaycheckInterval = 7 * 60000 -- how often to recieve pay checks in milliseconds +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.Multichar = GetResourceState("esx_multicharacter") ~= "missing" -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.Multichar = GetResourceState("esx_multicharacter") ~= "missing" +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.AdminLogging = false -- Logs the usage of certain commands by those with group.admin ace permissions (default is false) +Config.AdminLogging = false -- Logs the usage of certain commands by those with group.admin ace permissions (default is false) -Config.DisableHealthRegeneration = false -- Player will no longer regenerate health -Config.DisableVehicleRewards = false -- Disables Player Recieving weapons from vehicles -Config.DisableNPCDrops = false -- stops NPCs from dropping weapons on death -Config.DisableDispatchServices = false -- Disable Dispatch services -Config.DisableScenarios = false -- Disable Scenarios -Config.DisableWeaponWheel = false -- Disables default weapon wheel -Config.DisableAimAssist = false -- disables AIM assist (mainly on controllers) -Config.DisableVehicleSeatShuff = false -- Disables vehicle seat shuff -Config.RemoveHudCommonents = { - [1] = false, --WANTED_STARS, - [2] = false, --WEAPON_ICON - [3] = false, --CASH - [4] = false, --MP_CASH - [5] = false, --MP_MESSAGE - [6] = false, --VEHICLE_NAME - [7] = false,-- AREA_NAME - [8] = false,-- VEHICLE_CLASS - [9] = false, --STREET_NAME - [10] = false, --HELP_TEXT - [11] = false, --FLOATING_HELP_TEXT_1 - [12] = false, --FLOATING_HELP_TEXT_2 - [13] = false, --CASH_CHANGE - [14] = false, --RETICLE - [15] = false, --SUBTITLE_TEXT - [16] = false, --RADIO_STATIONS - [17] = false, --SAVING_GAME, - [18] = false, --GAME_STREAM - [19] = false, --WEAPON_WHEEL - [20] = false, --WEAPON_WHEEL_STATS - [21] = false, --HUD_COMPONENTS - [22] = false, --HUD_WEAPONS +Config.DisableHealthRegeneration = false -- Player will no longer regenerate health +Config.DisableVehicleRewards = false -- Disables Player Recieving weapons from vehicles +Config.DisableNPCDrops = false -- stops NPCs from dropping weapons on death +Config.DisableDispatchServices = false -- Disable Dispatch services +Config.DisableScenarios = false -- Disable Scenarios +Config.DisableWeaponWheel = false -- Disables default weapon wheel +Config.DisableAimAssist = false -- disables AIM assist (mainly on controllers) +Config.DisableVehicleSeatShuff = false -- Disables vehicle seat shuff +Config.RemoveHudCommonents = { + [1] = false, --WANTED_STARS, + [2] = false, --WEAPON_ICON + [3] = false, --CASH + [4] = false, --MP_CASH + [5] = false, --MP_MESSAGE + [6] = false, --VEHICLE_NAME + [7] = false, -- AREA_NAME + [8] = false, -- VEHICLE_CLASS + [9] = false, --STREET_NAME + [10] = false, --HELP_TEXT + [11] = false, --FLOATING_HELP_TEXT_1 + [12] = false, --FLOATING_HELP_TEXT_2 + [13] = false, --CASH_CHANGE + [14] = false, --RETICLE + [15] = false, --SUBTITLE_TEXT + [16] = false, --RADIO_STATIONS + [17] = false, --SAVING_GAME, + [18] = false, --GAME_STREAM + [19] = false, --WEAPON_WHEEL + [20] = false, --WEAPON_WHEEL_STATS + [21] = false, --HUD_COMPONENTS + [22] = false, --HUD_WEAPONS } -Config.SpawnVehMaxUpgrades = true -- admin vehicles spawn with max vehcle settings -Config.CustomAIPlates = 'ESX.A111' -- Custom plates for AI vehicles +Config.SpawnVehMaxUpgrades = true -- admin vehicles spawn with max vehcle settings +Config.CustomAIPlates = 'ESX.A111' -- Custom plates for AI vehicles -- Pattern string format --1 will lead to a random number from 0-9. --A will lead to a random letter from A-Z. diff --git a/[core]/es_extended/config.weapons.lua b/[core]/es_extended/config.weapons.lua index 135d15b0..cd9bc1ec 100644 --- a/[core]/es_extended/config.weapons.lua +++ b/[core]/es_extended/config.weapons.lua @@ -11,983 +11,999 @@ Config.DefaultWeaponTints = { Config.Weapons = { -- Melee - {name = 'WEAPON_DAGGER', label = TranslateCap('weapon_dagger'), components = {}}, - {name = 'WEAPON_BAT', label = TranslateCap('weapon_bat'), components = {}}, - {name = 'WEAPON_BATTLEAXE', label = TranslateCap('weapon_battleaxe'), components = {}}, + { name = 'WEAPON_DAGGER', label = TranslateCap('weapon_dagger'), components = {} }, + { name = 'WEAPON_BAT', label = TranslateCap('weapon_bat'), components = {} }, + { name = 'WEAPON_BATTLEAXE', label = TranslateCap('weapon_battleaxe'), components = {} }, { name = 'WEAPON_KNUCKLE', label = TranslateCap('weapon_knuckle'), components = { - {name = 'knuckle_base', label = TranslateCap('component_knuckle_base'), hash = `COMPONENT_KNUCKLE_VARMOD_BASE`}, - {name = 'knuckle_pimp', label = TranslateCap('component_knuckle_pimp'), hash = `COMPONENT_KNUCKLE_VARMOD_PIMP`}, - {name = 'knuckle_ballas', label = TranslateCap('component_knuckle_ballas'), hash = `COMPONENT_KNUCKLE_VARMOD_BALLAS`}, - {name = 'knuckle_dollar', label = TranslateCap('component_knuckle_dollar'), hash = `COMPONENT_KNUCKLE_VARMOD_DOLLAR`}, - {name = 'knuckle_diamond', label = TranslateCap('component_knuckle_diamond'), hash = `COMPONENT_KNUCKLE_VARMOD_DIAMOND`}, - {name = 'knuckle_hate', label = TranslateCap('component_knuckle_hate'), hash = `COMPONENT_KNUCKLE_VARMOD_HATE`}, - {name = 'knuckle_love', label = TranslateCap('component_knuckle_love'), hash = `COMPONENT_KNUCKLE_VARMOD_LOVE`}, - {name = 'knuckle_player', label = TranslateCap('component_knuckle_player'), hash = `COMPONENT_KNUCKLE_VARMOD_PLAYER`}, - {name = 'knuckle_king', label = TranslateCap('component_knuckle_king'), hash = `COMPONENT_KNUCKLE_VARMOD_KING`}, - {name = 'knuckle_vagos', label = TranslateCap('component_knuckle_vagos'), hash = `COMPONENT_KNUCKLE_VARMOD_VAGOS`} + { name = 'knuckle_base', label = TranslateCap('component_knuckle_base'), hash = `COMPONENT_KNUCKLE_VARMOD_BASE` }, + { name = 'knuckle_pimp', label = TranslateCap('component_knuckle_pimp'), hash = `COMPONENT_KNUCKLE_VARMOD_PIMP` }, + { name = 'knuckle_ballas', label = TranslateCap('component_knuckle_ballas'), hash = `COMPONENT_KNUCKLE_VARMOD_BALLAS` }, + { name = 'knuckle_dollar', label = TranslateCap('component_knuckle_dollar'), hash = `COMPONENT_KNUCKLE_VARMOD_DOLLAR` }, + { name = 'knuckle_diamond', label = TranslateCap('component_knuckle_diamond'), hash = `COMPONENT_KNUCKLE_VARMOD_DIAMOND` }, + { name = 'knuckle_hate', label = TranslateCap('component_knuckle_hate'), hash = `COMPONENT_KNUCKLE_VARMOD_HATE` }, + { name = 'knuckle_love', label = TranslateCap('component_knuckle_love'), hash = `COMPONENT_KNUCKLE_VARMOD_LOVE` }, + { name = 'knuckle_player', label = TranslateCap('component_knuckle_player'), hash = `COMPONENT_KNUCKLE_VARMOD_PLAYER` }, + { name = 'knuckle_king', label = TranslateCap('component_knuckle_king'), hash = `COMPONENT_KNUCKLE_VARMOD_KING` }, + { name = 'knuckle_vagos', label = TranslateCap('component_knuckle_vagos'), hash = `COMPONENT_KNUCKLE_VARMOD_VAGOS` } } }, - {name = 'WEAPON_BOTTLE', label = TranslateCap('weapon_bottle'), components = {}}, - {name = 'WEAPON_CROWBAR', label = TranslateCap('weapon_crowbar'), components = {}}, - {name = 'WEAPON_FLASHLIGHT', label = TranslateCap('weapon_flashlight'), components = {}}, - {name = 'WEAPON_GOLFCLUB', label = TranslateCap('weapon_golfclub'), components = {}}, - {name = 'WEAPON_HAMMER', label = TranslateCap('weapon_hammer'), components = {}}, - {name = 'WEAPON_HATCHET', label = TranslateCap('weapon_hatchet'), components = {}}, - {name = 'WEAPON_KNIFE', label = TranslateCap('weapon_knife'), components = {}}, - {name = 'WEAPON_MACHETE', label = TranslateCap('weapon_machete'), components = {}}, - {name = 'WEAPON_NIGHTSTICK', label = TranslateCap('weapon_nightstick'), components = {}}, - {name = 'WEAPON_WRENCH', label = TranslateCap('weapon_wrench'), components = {}}, - {name = 'WEAPON_POOLCUE', label = TranslateCap('weapon_poolcue'), components = {}}, - {name = 'WEAPON_STONE_HATCHET', label = TranslateCap('weapon_stone_hatchet'), components = {}}, + { name = 'WEAPON_BOTTLE', label = TranslateCap('weapon_bottle'), components = {} }, + { name = 'WEAPON_CROWBAR', label = TranslateCap('weapon_crowbar'), components = {} }, + { name = 'WEAPON_FLASHLIGHT', label = TranslateCap('weapon_flashlight'), components = {} }, + { name = 'WEAPON_GOLFCLUB', label = TranslateCap('weapon_golfclub'), components = {} }, + { name = 'WEAPON_HAMMER', label = TranslateCap('weapon_hammer'), components = {} }, + { name = 'WEAPON_HATCHET', label = TranslateCap('weapon_hatchet'), components = {} }, + { name = 'WEAPON_KNIFE', label = TranslateCap('weapon_knife'), components = {} }, + { name = 'WEAPON_MACHETE', label = TranslateCap('weapon_machete'), components = {} }, + { name = 'WEAPON_NIGHTSTICK', label = TranslateCap('weapon_nightstick'), components = {} }, + { name = 'WEAPON_WRENCH', label = TranslateCap('weapon_wrench'), components = {} }, + { name = 'WEAPON_POOLCUE', label = TranslateCap('weapon_poolcue'), components = {} }, + { name = 'WEAPON_STONE_HATCHET', label = TranslateCap('weapon_stone_hatchet'), components = {} }, { name = 'WEAPON_SWITCHBLADE', label = TranslateCap('weapon_switchblade'), components = { - {name = 'handle_default', label = TranslateCap('component_handle_default'), hash = `COMPONENT_SWITCHBLADE_VARMOD_BASE`}, - {name = 'handle_vip', label = TranslateCap('component_handle_vip'), hash = `COMPONENT_SWITCHBLADE_VARMOD_VAR1`}, - {name = 'handle_bodyguard', label = TranslateCap('component_handle_bodyguard'), hash = `COMPONENT_SWITCHBLADE_VARMOD_VAR2`} + { name = 'handle_default', label = TranslateCap('component_handle_default'), hash = `COMPONENT_SWITCHBLADE_VARMOD_BASE` }, + { name = 'handle_vip', label = TranslateCap('component_handle_vip'), hash = `COMPONENT_SWITCHBLADE_VARMOD_VAR1` }, + { name = 'handle_bodyguard', label = TranslateCap('component_handle_bodyguard'), hash = `COMPONENT_SWITCHBLADE_VARMOD_VAR2` } } }, -- Handguns { name = 'WEAPON_APPISTOL', label = TranslateCap('weapon_appistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_APPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_APPISTOL_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_APPISTOL_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_APPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_APPISTOL_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_APPISTOL_VARMOD_LUXE` } } }, - {name = 'WEAPON_CERAMICPISTOL', label = TranslateCap('weapon_ceramicpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}}, + { name = 'WEAPON_CERAMICPISTOL', label = TranslateCap('weapon_ceramicpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` } }, { name = 'WEAPON_COMBATPISTOL', label = TranslateCap('weapon_combatpistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATPISTOL_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_COMBATPISTOL_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATPISTOL_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_COMBATPISTOL_VARMOD_LOWRIDER` } } }, - {name = 'WEAPON_DOUBLEACTION', label = TranslateCap('weapon_doubleaction'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}}, - {name = 'WEAPON_NAVYREVOLVER', label = TranslateCap('weapon_navyrevolver'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}}, - {name = 'WEAPON_FLAREGUN', label = TranslateCap('weapon_flaregun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_flaregun'), hash = `AMMO_FLAREGUN`}}, - {name = 'WEAPON_GADGETPISTOL', label = TranslateCap('weapon_gadgetpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}}, + { name = 'WEAPON_DOUBLEACTION', label = TranslateCap('weapon_doubleaction'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` } }, + { name = 'WEAPON_NAVYREVOLVER', label = TranslateCap('weapon_navyrevolver'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` } }, + { name = 'WEAPON_FLAREGUN', label = TranslateCap('weapon_flaregun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_flaregun'), hash = `AMMO_FLAREGUN` } }, + { name = 'WEAPON_GADGETPISTOL', label = TranslateCap('weapon_gadgetpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` } }, { name = 'WEAPON_HEAVYPISTOL', label = TranslateCap('weapon_heavypistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYPISTOL_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_HEAVYPISTOL_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYPISTOL_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_HEAVYPISTOL_VARMOD_LUXE` } } }, { name = 'WEAPON_REVOLVER', label = TranslateCap('weapon_revolver'), - ammo = {label = TranslateCap('ammo_rounds'),hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_REVOLVER_CLIP_01`}, - {name = 'vip_finish', label = TranslateCap('component_vip_finish'), hash = `COMPONENT_REVOLVER_VARMOD_BOSS`}, - {name = 'bodyguard_finish', label = TranslateCap('component_bodyguard_finish'), hash = `COMPONENT_REVOLVER_VARMOD_GOON`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_REVOLVER_CLIP_01` }, + { name = 'vip_finish', label = TranslateCap('component_vip_finish'), hash = `COMPONENT_REVOLVER_VARMOD_BOSS` }, + { name = 'bodyguard_finish', label = TranslateCap('component_bodyguard_finish'), hash = `COMPONENT_REVOLVER_VARMOD_GOON` } } }, { name = 'WEAPON_REVOLVER_MK2', label = TranslateCap('weapon_revolver_mk2'), - ammo = {label = TranslateCap('ammo_rounds'),hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_REVOLVER_MK2_CLIP_01`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_REVOLVER_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_REVOLVER_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_REVOLVER_MK2_CLIP_HOLLOWPOINT`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_REVOLVER_MK2_CLIP_FMJ`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_small', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'compensator', label = TranslateCap('component_compensator'), hash = `COMPONENT_AT_PI_COMP_03`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_REVOLVER_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_REVOLVER_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_REVOLVER_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_REVOLVER_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_REVOLVER_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_REVOLVER_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_REVOLVER_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_REVOLVER_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_REVOLVER_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_REVOLVER_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_REVOLVER_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_REVOLVER_MK2_CLIP_01` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_REVOLVER_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_REVOLVER_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_REVOLVER_MK2_CLIP_HOLLOWPOINT` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_REVOLVER_MK2_CLIP_FMJ` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_small', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'compensator', label = TranslateCap('component_compensator'), hash = `COMPONENT_AT_PI_COMP_03` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_REVOLVER_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_REVOLVER_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_REVOLVER_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_REVOLVER_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_REVOLVER_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_REVOLVER_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_REVOLVER_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_REVOLVER_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_REVOLVER_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_REVOLVER_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_REVOLVER_MK2_CAMO_IND_01` } } }, - {name = 'WEAPON_MARKSMANPISTOL', label = TranslateCap('weapon_marksmanpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}}, + { name = 'WEAPON_MARKSMANPISTOL', label = TranslateCap('weapon_marksmanpistol'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` } }, { name = 'WEAPON_PISTOL', label = TranslateCap('weapon_pistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PISTOL_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PISTOL_VARMOD_LUXE` } } }, { name = 'WEAPON_PISTOL_MK2', label = TranslateCap('weapon_pistol_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_PISTOL_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_PISTOL_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_PISTOL_MK2_CLIP_HOLLOWPOINT`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_PISTOL_MK2_CLIP_FMJ`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_PI_RAIL`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH_02`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02`}, - {name = 'compensator', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_COMP`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_PISTOL_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_PISTOL_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_PISTOL_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_PISTOL_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_PISTOL_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_PISTOL_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_PISTOL_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_PISTOL_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_PISTOL_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_PISTOL_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_PISTOL_MK2_CAMO_IND_01`}, - {name = 'camo_slide_finish', label = TranslateCap('component_camo_slide_finish'), hash = `COMPONENT_PISTOL_MK2_CAMO_SLIDE`}, - {name = 'camo_slide_finish2', label = TranslateCap('component_camo_slide_finish2'), hash = `COMPONENT_PISTOL_MK2_CAMO_02_SLIDE`}, - {name = 'camo_slide_finish3', label = TranslateCap('component_camo_slide_finish3'), hash = `COMPONENT_PISTOL_MK2_CAMO_03_SLIDE`}, - {name = 'camo_slide_finish4', label = TranslateCap('component_camo_slide_finish4'), hash = `COMPONENT_PISTOL_MK2_CAMO_04_SLIDE`}, - {name = 'camo_slide_finish5', label = TranslateCap('component_camo_slide_finish5'), hash = `COMPONENT_PISTOL_MK2_CAMO_05_SLIDE`}, - {name = 'camo_slide_finish6', label = TranslateCap('component_camo_slide_finish6'), hash = `COMPONENT_PISTOL_MK2_CAMO_06_SLIDE`}, - {name = 'camo_slide_finish7', label = TranslateCap('component_camo_slide_finish7'), hash = `COMPONENT_PISTOL_MK2_CAMO_07_SLIDE`}, - {name = 'camo_slide_finish8', label = TranslateCap('component_camo_slide_finish8'), hash = `COMPONENT_PISTOL_MK2_CAMO_08_SLIDE`}, - {name = 'camo_slide_finish9', label = TranslateCap('component_camo_slide_finish9'), hash = `COMPONENT_PISTOL_MK2_CAMO_09_SLIDE`}, - {name = 'camo_slide_finish10', label = TranslateCap('component_camo_slide_finish10'), hash = `COMPONENT_PISTOL_MK2_CAMO_10_SLIDE`}, - {name = 'camo_slide_finish11', label = TranslateCap('component_camo_slide_finish11'), hash = `COMPONENT_PISTOL_MK2_CAMO_IND_01_SLIDE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_PISTOL_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_PISTOL_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_PISTOL_MK2_CLIP_HOLLOWPOINT` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_PISTOL_MK2_CLIP_FMJ` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_PI_RAIL` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH_02` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02` }, + { name = 'compensator', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_COMP` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_PISTOL_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_PISTOL_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_PISTOL_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_PISTOL_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_PISTOL_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_PISTOL_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_PISTOL_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_PISTOL_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_PISTOL_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_PISTOL_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_PISTOL_MK2_CAMO_IND_01` }, + { name = 'camo_slide_finish', label = TranslateCap('component_camo_slide_finish'), hash = `COMPONENT_PISTOL_MK2_CAMO_SLIDE` }, + { name = 'camo_slide_finish2', label = TranslateCap('component_camo_slide_finish2'), hash = `COMPONENT_PISTOL_MK2_CAMO_02_SLIDE` }, + { name = 'camo_slide_finish3', label = TranslateCap('component_camo_slide_finish3'), hash = `COMPONENT_PISTOL_MK2_CAMO_03_SLIDE` }, + { name = 'camo_slide_finish4', label = TranslateCap('component_camo_slide_finish4'), hash = `COMPONENT_PISTOL_MK2_CAMO_04_SLIDE` }, + { name = 'camo_slide_finish5', label = TranslateCap('component_camo_slide_finish5'), hash = `COMPONENT_PISTOL_MK2_CAMO_05_SLIDE` }, + { name = 'camo_slide_finish6', label = TranslateCap('component_camo_slide_finish6'), hash = `COMPONENT_PISTOL_MK2_CAMO_06_SLIDE` }, + { name = 'camo_slide_finish7', label = TranslateCap('component_camo_slide_finish7'), hash = `COMPONENT_PISTOL_MK2_CAMO_07_SLIDE` }, + { name = 'camo_slide_finish8', label = TranslateCap('component_camo_slide_finish8'), hash = `COMPONENT_PISTOL_MK2_CAMO_08_SLIDE` }, + { name = 'camo_slide_finish9', label = TranslateCap('component_camo_slide_finish9'), hash = `COMPONENT_PISTOL_MK2_CAMO_09_SLIDE` }, + { name = 'camo_slide_finish10', label = TranslateCap('component_camo_slide_finish10'), hash = `COMPONENT_PISTOL_MK2_CAMO_10_SLIDE` }, + { name = 'camo_slide_finish11', label = TranslateCap('component_camo_slide_finish11'), hash = `COMPONENT_PISTOL_MK2_CAMO_IND_01_SLIDE` } } }, { name = 'WEAPON_PISTOL50', label = TranslateCap('weapon_pistol50'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL50_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL50_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PISTOL50_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOL50_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_PISTOL50_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PISTOL50_VARMOD_LUXE` } } }, { name = 'WEAPON_SNSPISTOL', label = TranslateCap('weapon_snspistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SNSPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SNSPISTOL_CLIP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SNSPISTOL_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SNSPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SNSPISTOL_CLIP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SNSPISTOL_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_SNSPISTOL_MK2', label = TranslateCap('weapon_snspistol_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_HOLLOWPOINT`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_FMJ`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_PI_RAIL_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH_03`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02`}, - {name = 'compensator', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_COMP_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_IND_01`}, - {name = 'camo_slide_finish', label = TranslateCap('component_camo_slide_finish'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_SLIDE`}, - {name = 'camo_slide_finish2', label = TranslateCap('component_camo_slide_finish2'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_02_SLIDE`}, - {name = 'camo_slide_finish3', label = TranslateCap('component_camo_slide_finish3'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_03_SLIDE`}, - {name = 'camo_slide_finish4', label = TranslateCap('component_camo_slide_finish4'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_04_SLIDE`}, - {name = 'camo_slide_finish5', label = TranslateCap('component_camo_slide_finish5'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_05_SLIDE`}, - {name = 'camo_slide_finish6', label = TranslateCap('component_camo_slide_finish6'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_06_SLIDE`}, - {name = 'camo_slide_finish7', label = TranslateCap('component_camo_slide_finish7'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_07_SLIDE`}, - {name = 'camo_slide_finish8', label = TranslateCap('component_camo_slide_finish8'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_08_SLIDE`}, - {name = 'camo_slide_finish9', label = TranslateCap('component_camo_slide_finish9'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_09_SLIDE`}, - {name = 'camo_slide_finish10', label = TranslateCap('component_camo_slide_finish10'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_10_SLIDE`}, - {name = 'camo_slide_finish11', label = TranslateCap('component_camo_slide_finish11'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_IND_01_SLIDE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_HOLLOWPOINT` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_FMJ` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_PI_RAIL_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH_03` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP_02` }, + { name = 'compensator', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_COMP_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_IND_01` }, + { name = 'camo_slide_finish', label = TranslateCap('component_camo_slide_finish'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_SLIDE` }, + { name = 'camo_slide_finish2', label = TranslateCap('component_camo_slide_finish2'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_02_SLIDE` }, + { name = 'camo_slide_finish3', label = TranslateCap('component_camo_slide_finish3'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_03_SLIDE` }, + { name = 'camo_slide_finish4', label = TranslateCap('component_camo_slide_finish4'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_04_SLIDE` }, + { name = 'camo_slide_finish5', label = TranslateCap('component_camo_slide_finish5'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_05_SLIDE` }, + { name = 'camo_slide_finish6', label = TranslateCap('component_camo_slide_finish6'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_06_SLIDE` }, + { name = 'camo_slide_finish7', label = TranslateCap('component_camo_slide_finish7'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_07_SLIDE` }, + { name = 'camo_slide_finish8', label = TranslateCap('component_camo_slide_finish8'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_08_SLIDE` }, + { name = 'camo_slide_finish9', label = TranslateCap('component_camo_slide_finish9'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_09_SLIDE` }, + { name = 'camo_slide_finish10', label = TranslateCap('component_camo_slide_finish10'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_10_SLIDE` }, + { name = 'camo_slide_finish11', label = TranslateCap('component_camo_slide_finish11'), hash = `COMPONENT_SNSPISTOL_MK2_CAMO_IND_01_SLIDE` } } }, - {name = 'WEAPON_STUNGUN', label = TranslateCap('weapon_stungun'), tints = Config.DefaultWeaponTints, components = {}}, - {name = 'WEAPON_RAYPISTOL', label = TranslateCap('weapon_raypistol'), tints = Config.DefaultWeaponTints, components = {}}, + { name = 'WEAPON_STUNGUN', label = TranslateCap('weapon_stungun'), tints = Config.DefaultWeaponTints, components = {} }, + { name = 'WEAPON_RAYPISTOL', label = TranslateCap('weapon_raypistol'), tints = Config.DefaultWeaponTints, components = {} }, { name = 'WEAPON_VINTAGEPISTOL', label = TranslateCap('weapon_vintagepistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_VINTAGEPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_VINTAGEPISTOL_CLIP_02`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_VINTAGEPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_VINTAGEPISTOL_CLIP_02` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` } } }, -- Shotguns { name = 'WEAPON_ASSAULTSHOTGUN', label = TranslateCap('weapon_assaultshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTSHOTGUN_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTSHOTGUN_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTSHOTGUN_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTSHOTGUN_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` } } }, - {name = 'WEAPON_AUTOSHOTGUN', label = TranslateCap('weapon_autoshotgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}}, + { name = 'WEAPON_AUTOSHOTGUN', label = TranslateCap('weapon_autoshotgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` } }, { name = 'WEAPON_BULLPUPSHOTGUN', label = TranslateCap('weapon_bullpupshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`} + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` } } }, { name = 'WEAPON_COMBATSHOTGUN', label = TranslateCap('weapon_combatshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`} + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` } } }, - {name = 'WEAPON_DBSHOTGUN', label = TranslateCap('weapon_dbshotgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}}, + { name = 'WEAPON_DBSHOTGUN', label = TranslateCap('weapon_dbshotgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` } }, { name = 'WEAPON_HEAVYSHOTGUN', label = TranslateCap('weapon_heavyshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_HEAVYSHOTGUN_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` } } }, - {name = 'WEAPON_MUSKET', label = TranslateCap('weapon_musket'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SHOTGUN`}}, + { name = 'WEAPON_MUSKET', label = TranslateCap('weapon_musket'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SHOTGUN` } }, { name = 'WEAPON_PUMPSHOTGUN', label = TranslateCap('weapon_pumpshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PUMPSHOTGUN_VARMOD_LOWRIDER`} + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_PUMPSHOTGUN_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_PUMPSHOTGUN_MK2', label = TranslateCap('weapon_pumpshotgun_mk2'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'shells_default', label = TranslateCap('component_shells_default'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_01`}, - {name = 'shells_incendiary', label = TranslateCap('component_shells_incendiary'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_INCENDIARY`}, - {name = 'shells_armor', label = TranslateCap('component_shells_armor'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_ARMORPIERCING`}, - {name = 'shells_hollowpoint', label = TranslateCap('component_shells_hollowpoint'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_HOLLOWPOINT`}, - {name = 'shells_explosive', label = TranslateCap('component_shells_explosive'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_EXPLOSIVE`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2`}, - {name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP_03`}, - {name = 'muzzle_squared', label = TranslateCap('component_muzzle_squared'), hash = `COMPONENT_AT_MUZZLE_08`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_IND_01`} + { name = 'shells_default', label = TranslateCap('component_shells_default'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_01` }, + { name = 'shells_incendiary', label = TranslateCap('component_shells_incendiary'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_INCENDIARY` }, + { name = 'shells_armor', label = TranslateCap('component_shells_armor'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_ARMORPIERCING` }, + { name = 'shells_hollowpoint', label = TranslateCap('component_shells_hollowpoint'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_HOLLOWPOINT` }, + { name = 'shells_explosive', label = TranslateCap('component_shells_explosive'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_EXPLOSIVE` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2` }, + { name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP_03` }, + { name = 'muzzle_squared', label = TranslateCap('component_muzzle_squared'), hash = `COMPONENT_AT_MUZZLE_08` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_PUMPSHOTGUN_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_SAWNOFFSHOTGUN', label = TranslateCap('weapon_sawnoffshotgun'), - ammo = {label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN`}, + ammo = { label = TranslateCap('ammo_shells'), hash = `AMMO_SHOTGUN` }, tints = Config.DefaultWeaponTints, components = { - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SAWNOFFSHOTGUN_VARMOD_LUXE`} + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SAWNOFFSHOTGUN_VARMOD_LUXE` } } }, -- SMG & LMG { name = 'WEAPON_ASSAULTSMG', label = TranslateCap('weapon_assaultsmg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTSMG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTSMG_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ASSAULTSMG_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTSMG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTSMG_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ASSAULTSMG_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_COMBATMG', label = TranslateCap('weapon_combatmg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATMG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATMG_CLIP_02`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_COMBATMG_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATMG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATMG_CLIP_02` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_COMBATMG_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_COMBATMG_MK2', label = TranslateCap('weapon_combatmg_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATMG_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATMG_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_COMBATMG_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_COMBATMG_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_COMBATMG_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_COMBATMG_MK2_CLIP_FMJ`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2`}, - {name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_MG_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_MG_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_COMBATMG_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_COMBATMG_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_COMBATMG_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_COMBATMG_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_COMBATMG_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_COMBATMG_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_COMBATMG_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_COMBATMG_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_COMBATMG_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_COMBATMG_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_COMBATMG_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATMG_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATMG_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_COMBATMG_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_COMBATMG_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_COMBATMG_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_COMBATMG_MK2_CLIP_FMJ` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2` }, + { name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_MG_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_MG_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_COMBATMG_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_COMBATMG_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_COMBATMG_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_COMBATMG_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_COMBATMG_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_COMBATMG_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_COMBATMG_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_COMBATMG_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_COMBATMG_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_COMBATMG_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_COMBATMG_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_COMBATPDW', label = TranslateCap('weapon_combatpdw'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATPDW_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATPDW_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_COMBATPDW_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMBATPDW_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMBATPDW_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_COMBATPDW_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL` } } }, { name = 'WEAPON_GUSENBERG', label = TranslateCap('weapon_gusenberg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_GUSENBERG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_GUSENBERG_CLIP_02`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_GUSENBERG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_GUSENBERG_CLIP_02` } } }, { name = 'WEAPON_MACHINEPISTOL', label = TranslateCap('weapon_machinepistol'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MACHINEPISTOL_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MACHINEPISTOL_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_MACHINEPISTOL_CLIP_03`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MACHINEPISTOL_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MACHINEPISTOL_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_MACHINEPISTOL_CLIP_03` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` } } }, { name = 'WEAPON_MG', label = TranslateCap('weapon_mg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MG_CLIP_02`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MG_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MG_CLIP_02` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MG_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_MICROSMG', label = TranslateCap('weapon_microsmg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MICROSMG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MICROSMG_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MICROSMG_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MICROSMG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MICROSMG_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_PI_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MICROSMG_VARMOD_LUXE` } } }, { name = 'WEAPON_MINISMG', label = TranslateCap('weapon_minismg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MINISMG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MINISMG_CLIP_02`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MINISMG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MINISMG_CLIP_02` } } }, { name = 'WEAPON_SMG', label = TranslateCap('weapon_smg'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SMG_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SMG_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_SMG_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO_02`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SMG_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SMG_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SMG_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_SMG_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO_02` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SMG_VARMOD_LUXE` } } }, { name = 'WEAPON_SMG_MK2', label = TranslateCap('weapon_smg_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SMG_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SMG_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SMG_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SMG_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_SMG_MK2_CLIP_HOLLOWPOINT`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SMG_MK2_CLIP_FMJ`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS_SMG`}, - {name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_02_SMG_MK2`}, - {name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_SMG_MK2`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SB_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SB_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SMG_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SMG_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SMG_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SMG_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SMG_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SMG_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SMG_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SMG_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SMG_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SMG_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SMG_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SMG_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SMG_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SMG_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SMG_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_hollowpoint', label = TranslateCap('component_ammo_hollowpoint'), hash = `COMPONENT_SMG_MK2_CLIP_HOLLOWPOINT` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SMG_MK2_CLIP_FMJ` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS_SMG` }, + { name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_02_SMG_MK2` }, + { name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_SMG_MK2` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_PI_SUPP` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SB_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SB_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SMG_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SMG_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SMG_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SMG_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SMG_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SMG_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SMG_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SMG_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SMG_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SMG_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SMG_MK2_CAMO_IND_01` } } }, - {name = 'WEAPON_RAYCARBINE', label = TranslateCap('weapon_raycarbine'), ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG`}, tints = Config.DefaultWeaponTints, components = {}}, + { name = 'WEAPON_RAYCARBINE', label = TranslateCap('weapon_raycarbine'), ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SMG` }, tints = Config.DefaultWeaponTints, components = {} }, -- Rifles { name = 'WEAPON_ADVANCEDRIFLE', label = TranslateCap('weapon_advancedrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ADVANCEDRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ADVANCEDRIFLE_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ADVANCEDRIFLE_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ADVANCEDRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ADVANCEDRIFLE_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ADVANCEDRIFLE_VARMOD_LUXE` } } }, { name = 'WEAPON_ASSAULTRIFLE', label = TranslateCap('weapon_assaultrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ASSAULTRIFLE_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_ASSAULTRIFLE_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MACRO` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_ASSAULTRIFLE_VARMOD_LUXE` } } }, { name = 'WEAPON_ASSAULTRIFLE_MK2', label = TranslateCap('weapon_assaultrifle_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_FMJ`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2`}, - {name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_AR_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_AR_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_FMJ` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2` }, + { name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_AR_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_AR_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_ASSAULTRIFLE_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_BULLPUPRIFLE', label = TranslateCap('weapon_bullpuprifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_BULLPUPRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_BULLPUPRIFLE_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_BULLPUPRIFLE_VARMOD_LOW`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_BULLPUPRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_BULLPUPRIFLE_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_BULLPUPRIFLE_VARMOD_LOW` } } }, { name = 'WEAPON_BULLPUPRIFLE_MK2', label = TranslateCap('weapon_bullpuprifle_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_FMJ`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_02_MK2`}, - {name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_BP_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_BP_BARREL_02`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_FMJ` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_02_MK2` }, + { name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_SMALL_MK2` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_BP_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_BP_BARREL_02` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_BULLPUPRIFLE_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_CARBINERIFLE', label = TranslateCap('weapon_carbinerifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_CARBINERIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_CARBINERIFLE_CLIP_02`}, - {name = 'clip_box', label = TranslateCap('component_clip_box'), hash = `COMPONENT_CARBINERIFLE_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_CARBINERIFLE_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_CARBINERIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_CARBINERIFLE_CLIP_02` }, + { name = 'clip_box', label = TranslateCap('component_clip_box'), hash = `COMPONENT_CARBINERIFLE_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_CARBINERIFLE_VARMOD_LUXE` } } }, { name = 'WEAPON_CARBINERIFLE_MK2', label = TranslateCap('weapon_carbinerifle_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_FMJ`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2`}, - {name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_CR_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_CR_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_FMJ` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_medium', label = TranslateCap('component_scope_medium'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2` }, + { name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_CR_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_CR_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_CARBINERIFLE_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_COMPACTRIFLE', label = TranslateCap('weapon_compactrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMPACTRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMPACTRIFLE_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_COMPACTRIFLE_CLIP_03`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_COMPACTRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_COMPACTRIFLE_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_COMPACTRIFLE_CLIP_03` } } }, { name = 'WEAPON_MILITARYRIFLE', label = TranslateCap('weapon_militaryrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MILITARYRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MILITARYRIFLE_CLIP_02`}, - {name = 'ironsights', label = TranslateCap('component_ironsights'), hash = `COMPONENT_MILITARYRIFLE_SIGHT_01`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MILITARYRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MILITARYRIFLE_CLIP_02` }, + { name = 'ironsights', label = TranslateCap('component_ironsights'), hash = `COMPONENT_MILITARYRIFLE_SIGHT_01` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_SMALL` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` } } }, { name = 'WEAPON_SPECIALCARBINE', label = TranslateCap('weapon_specialcarbine'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SPECIALCARBINE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SPECIALCARBINE_CLIP_02`}, - {name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_SPECIALCARBINE_CLIP_03`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SPECIALCARBINE_VARMOD_LOWRIDER`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SPECIALCARBINE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SPECIALCARBINE_CLIP_02` }, + { name = 'clip_drum', label = TranslateCap('component_clip_drum'), hash = `COMPONENT_SPECIALCARBINE_CLIP_03` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SPECIALCARBINE_VARMOD_LOWRIDER` } } }, { name = 'WEAPON_SPECIALCARBINE_MK2', label = TranslateCap('weapon_specialcarbine_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_FMJ`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2`}, - {name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SC_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SC_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_FMJ` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_small', label = TranslateCap('component_scope_small'), hash = `COMPONENT_AT_SCOPE_MACRO_MK2` }, + { name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SC_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SC_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_SPECIALCARBINE_MK2_CAMO_IND_01` } } }, -- Sniper { name = 'WEAPON_HEAVYSNIPER', label = TranslateCap('weapon_heavysniper'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, tints = Config.DefaultWeaponTints, components = { - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE`}, - {name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX`} + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE` }, + { name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX` } } }, { name = 'WEAPON_HEAVYSNIPER_MK2', label = TranslateCap('weapon_heavysniper_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_02`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_FMJ`}, - {name = 'ammo_explosive', label = TranslateCap('component_ammo_explosive'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_EXPLOSIVE`}, - {name = 'scope_zoom', label = TranslateCap('component_scope_zoom'), hash = `COMPONENT_AT_SCOPE_LARGE_MK2`}, - {name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX`}, - {name = 'scope_nightvision', label = TranslateCap('component_scope_nightvision'), hash = `COMPONENT_AT_SCOPE_NV`}, - {name = 'scope_thermal', label = TranslateCap('component_scope_thermal'), hash = `COMPONENT_AT_SCOPE_THERMAL`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP_03`}, - {name = 'muzzle_squared', label = TranslateCap('component_muzzle_squared'), hash = `COMPONENT_AT_MUZZLE_08`}, - {name = 'muzzle_bell', label = TranslateCap('component_muzzle_bell'), hash = `COMPONENT_AT_MUZZLE_09`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SR_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SR_BARREL_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_02` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_FMJ` }, + { name = 'ammo_explosive', label = TranslateCap('component_ammo_explosive'), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_EXPLOSIVE` }, + { name = 'scope_zoom', label = TranslateCap('component_scope_zoom'), hash = `COMPONENT_AT_SCOPE_LARGE_MK2` }, + { name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX` }, + { name = 'scope_nightvision', label = TranslateCap('component_scope_nightvision'), hash = `COMPONENT_AT_SCOPE_NV` }, + { name = 'scope_thermal', label = TranslateCap('component_scope_thermal'), hash = `COMPONENT_AT_SCOPE_THERMAL` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_SR_SUPP_03` }, + { name = 'muzzle_squared', label = TranslateCap('component_muzzle_squared'), hash = `COMPONENT_AT_MUZZLE_08` }, + { name = 'muzzle_bell', label = TranslateCap('component_muzzle_bell'), hash = `COMPONENT_AT_MUZZLE_09` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_SR_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_SR_BARREL_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_HEAVYSNIPER_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_MARKSMANRIFLE', label = TranslateCap('weapon_marksmanrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MARKSMANRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MARKSMANRIFLE_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MARKSMANRIFLE_VARMOD_LUXE`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MARKSMANRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MARKSMANRIFLE_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_MARKSMANRIFLE_VARMOD_LUXE` } } }, { name = 'WEAPON_MARKSMANRIFLE_MK2', label = TranslateCap('weapon_marksmanrifle_mk2'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_02`}, - {name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_TRACER`}, - {name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_INCENDIARY`}, - {name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_ARMORPIERCING`}, - {name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_FMJ`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS`}, - {name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2`}, - {name = 'scope_zoom', label = TranslateCap('component_scope_zoom'), hash = `COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM_MK2`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP`}, - {name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01`}, - {name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02`}, - {name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03`}, - {name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04`}, - {name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05`}, - {name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06`}, - {name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07`}, - {name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_MRFL_BARREL_01`}, - {name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_MRFL_BARREL_02`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02`}, - {name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO`}, - {name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_02`}, - {name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_03`}, - {name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_04`}, - {name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_05`}, - {name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_06`}, - {name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_07`}, - {name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_08`}, - {name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_09`}, - {name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_10`}, - {name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_IND_01`} + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_02` }, + { name = 'ammo_tracer', label = TranslateCap('component_ammo_tracer'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_TRACER` }, + { name = 'ammo_incendiary', label = TranslateCap('component_ammo_incendiary'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_INCENDIARY` }, + { name = 'ammo_armor', label = TranslateCap('component_ammo_armor'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_ARMORPIERCING` }, + { name = 'ammo_fmj', label = TranslateCap('component_ammo_fmj'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_FMJ` }, + { name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_AT_SIGHTS` }, + { name = 'scope_large', label = TranslateCap('component_scope_large'), hash = `COMPONENT_AT_SCOPE_MEDIUM_MK2` }, + { name = 'scope_zoom', label = TranslateCap('component_scope_zoom'), hash = `COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM_MK2` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP` }, + { name = 'muzzle_flat', label = TranslateCap('component_muzzle_flat'), hash = `COMPONENT_AT_MUZZLE_01` }, + { name = 'muzzle_tactical', label = TranslateCap('component_muzzle_tactical'), hash = `COMPONENT_AT_MUZZLE_02` }, + { name = 'muzzle_fat', label = TranslateCap('component_muzzle_fat'), hash = `COMPONENT_AT_MUZZLE_03` }, + { name = 'muzzle_precision', label = TranslateCap('component_muzzle_precision'), hash = `COMPONENT_AT_MUZZLE_04` }, + { name = 'muzzle_heavy', label = TranslateCap('component_muzzle_heavy'), hash = `COMPONENT_AT_MUZZLE_05` }, + { name = 'muzzle_slanted', label = TranslateCap('component_muzzle_slanted'), hash = `COMPONENT_AT_MUZZLE_06` }, + { name = 'muzzle_split', label = TranslateCap('component_muzzle_split'), hash = `COMPONENT_AT_MUZZLE_07` }, + { name = 'barrel_default', label = TranslateCap('component_barrel_default'), hash = `COMPONENT_AT_MRFL_BARREL_01` }, + { name = 'barrel_heavy', label = TranslateCap('component_barrel_heavy'), hash = `COMPONENT_AT_MRFL_BARREL_02` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP_02` }, + { name = 'camo_finish', label = TranslateCap('component_camo_finish'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO` }, + { name = 'camo_finish2', label = TranslateCap('component_camo_finish2'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_02` }, + { name = 'camo_finish3', label = TranslateCap('component_camo_finish3'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_03` }, + { name = 'camo_finish4', label = TranslateCap('component_camo_finish4'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_04` }, + { name = 'camo_finish5', label = TranslateCap('component_camo_finish5'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_05` }, + { name = 'camo_finish6', label = TranslateCap('component_camo_finish6'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_06` }, + { name = 'camo_finish7', label = TranslateCap('component_camo_finish7'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_07` }, + { name = 'camo_finish8', label = TranslateCap('component_camo_finish8'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_08` }, + { name = 'camo_finish9', label = TranslateCap('component_camo_finish9'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_09` }, + { name = 'camo_finish10', label = TranslateCap('component_camo_finish10'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_10` }, + { name = 'camo_finish11', label = TranslateCap('component_camo_finish11'), hash = `COMPONENT_MARKSMANRIFLE_MK2_CAMO_IND_01` } } }, { name = 'WEAPON_SNIPERRIFLE', label = TranslateCap('weapon_sniperrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, tints = Config.DefaultWeaponTints, components = { - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE`}, - {name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`}, - {name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SNIPERRIFLE_VARMOD_LUXE`} + { name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_LARGE` }, + { name = 'scope_advanced', label = TranslateCap('component_scope_advanced'), hash = `COMPONENT_AT_SCOPE_MAX` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` }, + { name = 'luxary_finish', label = TranslateCap('component_luxary_finish'), hash = `COMPONENT_SNIPERRIFLE_VARMOD_LUXE` } } }, -- Heavy / Launchers - {name = 'WEAPON_COMPACTLAUNCHER', label = TranslateCap('weapon_compactlauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_grenadelauncher'), hash = `AMMO_GRENADELAUNCHER`}}, - {name = 'WEAPON_FIREWORK', label = TranslateCap('weapon_firework'), components = {}, ammo = {label = TranslateCap('ammo_firework'), hash = `AMMO_FIREWORK`}}, - {name = 'WEAPON_GRENADELAUNCHER', label = TranslateCap('weapon_grenadelauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_grenadelauncher'), hash = `AMMO_GRENADELAUNCHER`}}, - {name = 'WEAPON_HOMINGLAUNCHER', label = TranslateCap('weapon_hominglauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rockets'), hash = `AMMO_HOMINGLAUNCHER`}}, - {name = 'WEAPON_MINIGUN', label = TranslateCap('weapon_minigun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MINIGUN`}}, - {name = 'WEAPON_RAILGUN', label = TranslateCap('weapon_railgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RAILGUN`}}, - {name = 'WEAPON_RPG', label = TranslateCap('weapon_rpg'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rockets'), hash = `AMMO_RPG`}}, - {name = 'WEAPON_RAYMINIGUN', label = TranslateCap('weapon_rayminigun'), tints = Config.DefaultWeaponTints, components = {}, ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_MINIGUN`}}, + { name = 'WEAPON_COMPACTLAUNCHER', label = TranslateCap('weapon_compactlauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_grenadelauncher'), hash = `AMMO_GRENADELAUNCHER` } }, + { name = 'WEAPON_FIREWORK', label = TranslateCap('weapon_firework'), components = {}, ammo = { label = TranslateCap('ammo_firework'), hash = `AMMO_FIREWORK` } }, + { name = 'WEAPON_GRENADELAUNCHER', label = TranslateCap('weapon_grenadelauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_grenadelauncher'), hash = `AMMO_GRENADELAUNCHER` } }, + { name = 'WEAPON_HOMINGLAUNCHER', label = TranslateCap('weapon_hominglauncher'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rockets'), hash = `AMMO_HOMINGLAUNCHER` } }, + { name = 'WEAPON_MINIGUN', label = TranslateCap('weapon_minigun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MINIGUN` } }, + { name = 'WEAPON_RAILGUN', label = TranslateCap('weapon_railgun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RAILGUN` } }, + { name = 'WEAPON_RPG', label = TranslateCap('weapon_rpg'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rockets'), hash = `AMMO_RPG` } }, + { name = 'WEAPON_RAYMINIGUN', label = TranslateCap('weapon_rayminigun'), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_MINIGUN` } }, -- Thrown - {name = 'WEAPON_BALL', label = TranslateCap('weapon_ball'), components = {}, ammo = {label = TranslateCap('ammo_ball'), hash = `AMMO_BALL`}}, - {name = 'WEAPON_BZGAS', label = TranslateCap('weapon_bzgas'), components = {}, ammo = {label = TranslateCap('ammo_bzgas'), hash = `AMMO_BZGAS`}}, - {name = 'WEAPON_FLARE', label = TranslateCap('weapon_flare'), components = {}, ammo = {label = TranslateCap('ammo_flare'), hash = `AMMO_FLARE`}}, - {name = 'WEAPON_GRENADE', label = TranslateCap('weapon_grenade'), components = {}, ammo = {label = TranslateCap('ammo_grenade'), hash = `AMMO_GRENADE`}}, - {name = 'WEAPON_PETROLCAN', label = TranslateCap('weapon_petrolcan'), components = {}, ammo = {label = TranslateCap('ammo_petrol'), hash = `AMMO_PETROLCAN`}}, - {name = 'WEAPON_HAZARDCAN', label = TranslateCap('weapon_hazardcan'), components = {}, ammo = {label = TranslateCap('ammo_petrol'), hash = `AMMO_PETROLCAN`}}, - {name = 'WEAPON_MOLOTOV', label = TranslateCap('weapon_molotov'), components = {}, ammo = {label = TranslateCap('ammo_molotov'), hash = `AMMO_MOLOTOV`}}, - {name = 'WEAPON_PROXMINE', label = TranslateCap('weapon_proxmine'), components = {}, ammo = {label = TranslateCap('ammo_proxmine'), hash = `AMMO_PROXMINE`}}, - {name = 'WEAPON_PIPEBOMB', label = TranslateCap('weapon_pipebomb'), components = {}, ammo = {label = TranslateCap('ammo_pipebomb'), hash = `AMMO_PIPEBOMB`}}, - {name = 'WEAPON_SNOWBALL', label = TranslateCap('weapon_snowball'), components = {}, ammo = {label = TranslateCap('ammo_snowball'), hash = `AMMO_SNOWBALL`}}, - {name = 'WEAPON_STICKYBOMB', label = TranslateCap('weapon_stickybomb'), components = {}, ammo = {label = TranslateCap('ammo_stickybomb'), hash = `AMMO_STICKYBOMB`}}, - {name = 'WEAPON_SMOKEGRENADE', label = TranslateCap('weapon_smokegrenade'), components = {}, ammo = {label = TranslateCap('ammo_smokebomb'), hash = `AMMO_SMOKEGRENADE`}}, + { name = 'WEAPON_BALL', label = TranslateCap('weapon_ball'), components = {}, ammo = { label = TranslateCap('ammo_ball'), hash = `AMMO_BALL` } }, + { name = 'WEAPON_BZGAS', label = TranslateCap('weapon_bzgas'), components = {}, ammo = { label = TranslateCap('ammo_bzgas'), hash = `AMMO_BZGAS` } }, + { name = 'WEAPON_FLARE', label = TranslateCap('weapon_flare'), components = {}, ammo = { label = TranslateCap('ammo_flare'), hash = `AMMO_FLARE` } }, + { name = 'WEAPON_GRENADE', label = TranslateCap('weapon_grenade'), components = {}, ammo = { label = TranslateCap('ammo_grenade'), hash = `AMMO_GRENADE` } }, + { name = 'WEAPON_PETROLCAN', label = TranslateCap('weapon_petrolcan'), components = {}, ammo = { label = TranslateCap('ammo_petrol'), hash = `AMMO_PETROLCAN` } }, + { name = 'WEAPON_HAZARDCAN', label = TranslateCap('weapon_hazardcan'), components = {}, ammo = { label = TranslateCap('ammo_petrol'), hash = `AMMO_PETROLCAN` } }, + { name = 'WEAPON_MOLOTOV', label = TranslateCap('weapon_molotov'), components = {}, ammo = { label = TranslateCap('ammo_molotov'), hash = `AMMO_MOLOTOV` } }, + { name = 'WEAPON_PROXMINE', label = TranslateCap('weapon_proxmine'), components = {}, ammo = { label = TranslateCap('ammo_proxmine'), hash = `AMMO_PROXMINE` } }, + { name = 'WEAPON_PIPEBOMB', label = TranslateCap('weapon_pipebomb'), components = {}, ammo = { label = TranslateCap('ammo_pipebomb'), hash = `AMMO_PIPEBOMB` } }, + { name = 'WEAPON_SNOWBALL', label = TranslateCap('weapon_snowball'), components = {}, ammo = { label = TranslateCap('ammo_snowball'), hash = `AMMO_SNOWBALL` } }, + { name = 'WEAPON_STICKYBOMB', label = TranslateCap('weapon_stickybomb'), components = {}, ammo = { label = TranslateCap('ammo_stickybomb'), hash = `AMMO_STICKYBOMB` } }, + { name = 'WEAPON_SMOKEGRENADE', label = TranslateCap('weapon_smokegrenade'), components = {}, ammo = { label = TranslateCap('ammo_smokebomb'), hash = `AMMO_SMOKEGRENADE` } }, -- Tools - {name = 'WEAPON_FIREEXTINGUISHER', label = TranslateCap('weapon_fireextinguisher'), components = {}, ammo = {label = TranslateCap('ammo_charge'), hash = `AMMO_FIREEXTINGUISHER`}}, - {name = 'WEAPON_DIGISCANNER', label = TranslateCap('weapon_digiscanner'), components = {}}, - {name = 'GADGET_PARACHUTE', label = TranslateCap('gadget_parachute'), components = {}}, - {name = 'WEAPON_TACTICALRIFLE',label = TranslateCap('weapon_tactilerifle'),ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`},tints = Config.DefaultWeaponTints, + { name = 'WEAPON_FIREEXTINGUISHER', label = TranslateCap('weapon_fireextinguisher'), components = {}, ammo = { label = TranslateCap('ammo_charge'), hash = `AMMO_FIREEXTINGUISHER` } }, + { name = 'WEAPON_DIGISCANNER', label = TranslateCap('weapon_digiscanner'), components = {} }, + { name = 'GADGET_PARACHUTE', label = TranslateCap('gadget_parachute'), components = {} }, + { + name = 'WEAPON_TACTICALRIFLE', + label = TranslateCap('weapon_tactilerifle'), + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE` }, + tints = Config.DefaultWeaponTints, components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_TACTICALRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_TACTICALRIFLE_CLIP_02`}, - {name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH_REH`}, - {name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02`} - } + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_TACTICALRIFLE_CLIP_01` }, + { name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_TACTICALRIFLE_CLIP_02` }, + { name = 'flashlight', label = TranslateCap('component_flashlight'), hash = `COMPONENT_AT_AR_FLSH_REH` }, + { name = 'grip', label = TranslateCap('component_grip'), hash = `COMPONENT_AT_AR_AFGRIP` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_AT_AR_SUPP_02` } + } }, - {name = 'WEAPON_PRECISIONRIFLE', label = TranslateCap('weapon_precisionrifle'), ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER`}, tints = Config.DefaultWeaponTints, - components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PRECISIONRIFLE_CLIP_01`}, - } + { + name = 'WEAPON_PRECISIONRIFLE', + label = TranslateCap('weapon_precisionrifle'), + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_SNIPER` }, + tints = Config.DefaultWeaponTints, + components = { + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PRECISIONRIFLE_CLIP_01` }, + } }, - {name = 'WEAPON_METALDETECTOR', label = TranslateCap('weapon_metaldetector'), components = {}}, - {name = 'WEAPON_PISTOLXM3', label = TranslateCap('weapon_pistolxm3'), ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL`}, tints = Config.DefaultWeaponTints, - components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOLXM3_CLIP_01`}, - {name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_PISTOLXM3_SUPP`} - } + { name = 'WEAPON_METALDETECTOR', label = TranslateCap('weapon_metaldetector'), components = {} }, + { + name = 'WEAPON_PISTOLXM3', + label = TranslateCap('weapon_pistolxm3'), + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_PISTOL` }, + tints = Config.DefaultWeaponTints, + components = { + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_PISTOLXM3_CLIP_01` }, + { name = 'suppressor', label = TranslateCap('component_suppressor'), hash = `COMPONENT_PISTOLXM3_SUPP` } + } }, - {name = 'WEAPON_ACIDPACKAGE', label = TranslateCap('weapon_acidpackage'), components = {}}, - {name = 'WEAPON_CANDYCANE', label = TranslateCap('weapon_candycane'), components = {}}, - {name = 'WEAPON_RAILGUNXM3', label = TranslateCap('weapon_railgunxm3'), ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RAILGUN`}, tints = Config.DefaultWeaponTints, - components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_RAILGUNXM3_CLIP_01`}, - }, + { name = 'WEAPON_ACIDPACKAGE', label = TranslateCap('weapon_acidpackage'), components = {} }, + { name = 'WEAPON_CANDYCANE', label = TranslateCap('weapon_candycane'), components = {} }, + { + name = 'WEAPON_RAILGUNXM3', + label = TranslateCap('weapon_railgunxm3'), + ammo = { label = TranslateCap('ammo_rounds'), hash = `AMMO_RAILGUN` }, + tints = Config.DefaultWeaponTints, + components = { + { name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_RAILGUNXM3_CLIP_01` }, + }, }, } diff --git a/[core]/es_extended/fxmanifest.lua b/[core]/es_extended/fxmanifest.lua index 2acd5ad2..193f9518 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -5,7 +5,7 @@ game 'gta5' description 'ES Extended' lua54 'yes' -version '1.9.4' +version '1.9.5' shared_scripts { 'locale.lua', @@ -42,7 +42,7 @@ client_scripts { 'client/modules/callback.lua', 'client/main.lua', - + 'common/modules/*.lua', 'common/functions.lua', diff --git a/[core]/es_extended/locale.lua b/[core]/es_extended/locale.lua index 37c7e091..a5e2207e 100644 --- a/[core]/es_extended/locale.lua +++ b/[core]/es_extended/locale.lua @@ -1,6 +1,6 @@ Locales = {} -function Translate(str, ...) -- Translate string +function Translate(str, ...) -- Translate string if not str then print(("[^1ERROR^7] Resource ^5%s^7 You did not specify a parameter for the Translate function or the value is nil!"):format(GetInvokingResource() or GetCurrentResourceName())) return 'Given translate function parameter is nil!' @@ -14,7 +14,7 @@ function Translate(str, ...) -- Translate string return 'Translation [' .. Config.Locale .. '][' .. str .. '] does not exist' end elseif Config.Locale ~= 'en' and Locales['en'] and Locales['en'][str] then - return string.format(Locales['en'][str], ...) + return string.format(Locales['en'][str], ...) else return 'Locale [' .. Config.Locale .. '] does not exist' end diff --git a/[core]/es_extended/locales/cs.lua b/[core]/es_extended/locales/cs.lua index 16f95ac6..c71f8433 100644 --- a/[core]/es_extended/locales/cs.lua +++ b/[core]/es_extended/locales/cs.lua @@ -217,10 +217,10 @@ Locales["cs"] = { ["weapon_tactilerifle"] = "Service Carbine", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Míček", diff --git a/[core]/es_extended/locales/da.lua b/[core]/es_extended/locales/da.lua index 56c4e755..23a12c0c 100644 --- a/[core]/es_extended/locales/da.lua +++ b/[core]/es_extended/locales/da.lua @@ -223,10 +223,10 @@ Locales["da"] = { ["weapon_tactilerifle"] = "Service Carbine", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Baseball", diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index c2d5d36e..bc77ed6c 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -223,10 +223,10 @@ Locales["de"] = { ["weapon_tactilerifle"] = "Service Karabiner", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Baseball", diff --git a/[core]/es_extended/locales/en.lua b/[core]/es_extended/locales/en.lua index c22bc880..bb158fb1 100644 --- a/[core]/es_extended/locales/en.lua +++ b/[core]/es_extended/locales/en.lua @@ -366,4 +366,4 @@ Locales["en"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", -} \ No newline at end of file +} diff --git a/[core]/es_extended/locales/es.lua b/[core]/es_extended/locales/es.lua index bf4854da..f3ed5440 100644 --- a/[core]/es_extended/locales/es.lua +++ b/[core]/es_extended/locales/es.lua @@ -116,10 +116,10 @@ Locales["es"] = { -- Weapons -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Melee ["weapon_dagger"] = "Daga", @@ -357,7 +357,7 @@ Locales["es"] = { ["tint_lspd"] = "Skin Azul", ["tint_orange"] = "Skin Naranja", ["tint_platinum"] = "Skin Plata", - + -- Duty related ["stopped_duty"] = "Has salido de servicio.", ["started_duty"] = "Has entrado de servicio.", diff --git a/[core]/es_extended/locales/fi.lua b/[core]/es_extended/locales/fi.lua index 27ab2fa7..fd5b41b0 100644 --- a/[core]/es_extended/locales/fi.lua +++ b/[core]/es_extended/locales/fi.lua @@ -109,10 +109,10 @@ Locales["fi"] = { ["locale_currency"] = "$%s", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Weapons ["weapon_knife"] = "Veitsi", diff --git a/[core]/es_extended/locales/fr.lua b/[core]/es_extended/locales/fr.lua index e4f7ad35..eef72dd9 100644 --- a/[core]/es_extended/locales/fr.lua +++ b/[core]/es_extended/locales/fr.lua @@ -197,10 +197,10 @@ Locales["fr"] = { ["component_luxary_finish"] = "finition de luxe", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Weapon Ammo ["ammo_rounds"] = "cartouche(s)", @@ -231,7 +231,7 @@ 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/[core]/es_extended/locales/hu.lua b/[core]/es_extended/locales/hu.lua index 79c04b34..7b1ff007 100644 --- a/[core]/es_extended/locales/hu.lua +++ b/[core]/es_extended/locales/hu.lua @@ -64,7 +64,7 @@ Locales["hu"] = { ["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_freeze"] = "Játékos fagyasztása", - ["command_unfreeze"] = "Játékos kiolvasztása", + ["command_unfreeze"] = "Játékos kiolvasztása", ["command_giveaccountmoney"] = "Pénz adás a megadott típusban", ["command_giveaccountmoney_account"] = "Típus", ["command_giveaccountmoney_amount"] = "Mennyiség", @@ -82,7 +82,7 @@ Locales["hu"] = { ["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_goto"] = "Teleportálás játékoshoz", - ["command_kill"] = "Játékos megölése", + ["command_kill"] = "Játékos megölése", ["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", @@ -223,10 +223,10 @@ Locales["hu"] = { ["weapon_tactilerifle"] = "Service Carbine", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Baseball", diff --git a/[core]/es_extended/locales/it.lua b/[core]/es_extended/locales/it.lua index cc401bd9..ddbe6473 100644 --- a/[core]/es_extended/locales/it.lua +++ b/[core]/es_extended/locales/it.lua @@ -223,10 +223,10 @@ Locales["it"] = { ["weapon_tactilerifle"] = "Carabina di servizio", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Palla", diff --git a/[core]/es_extended/locales/nl.lua b/[core]/es_extended/locales/nl.lua index 844ca85c..6dcd1890 100644 --- a/[core]/es_extended/locales/nl.lua +++ b/[core]/es_extended/locales/nl.lua @@ -36,10 +36,10 @@ Locales["nl"] = { ["threw_weapon_already"] = "Je hebt dit wapen al !", ["threw_cannot_pickup"] = "Inventoraris is vol, Kan niet oppakken!", ["threw_pickup_prompt"] = "Druk op E om op te pakken", - + -- Key mapping ["keymap_showinventory"] = "Laat inventaris zien", - + -- Salary related ["received_salary"] = "Je bent betaald: €%s", ["received_help"] = "Je hebt je uitkering gekregen: €%s", @@ -49,10 +49,10 @@ Locales["nl"] = { ["account_bank"] = "Bank", ["account_black_money"] = "Zwart geld", ["account_money"] = "Cash", - + ["act_imp"] = "Kan actie niet uitvoeren", ["in_vehicle"] = "Kan actie niet uitvoeren, de speler zit in een voertuig.", - + -- Commands ["command_bring"] = "Breng speler naar jou", ["command_car"] = "Spawn een voertuig", @@ -110,17 +110,17 @@ Locales["nl"] = { ["command_giveammo_ammo"] = "Ammo Hoeveelheid", ["tpm_nowaypoint"] = "Geen waypoint gezet.", ["tpm_success"] = "Successvol geteleporteerd", - + ["noclip_message"] = "Noclip is %s", ["enabled"] = "~g~aangezet~s~", ["disabled"] = "~r~uitgezet~s~", - + -- Locale settings ["locale_digit_grouping_symbol"] = ",", ["locale_currency"] = "€%s", - + -- Weapons - + -- Melee ["weapon_dagger"] = "Dolk", ["weapon_bat"] = "Knuppel", @@ -139,7 +139,7 @@ Locales["nl"] = { ["weapon_poolcue"] = "Pool Cue", ["weapon_stone_hatchet"] = "Steenbijl", ["weapon_switchblade"] = "Switchblade", - + -- Handguns ["weapon_appistol"] = "AP-pistool", ["weapon_ceramicpistol"] = "Keramische pistool", @@ -160,7 +160,7 @@ Locales["nl"] = { ["weapon_stungun"] = "Taser", ["weapon_raypistol"] = "Up-N-Atomizer", ["weapon_vintagepistol"] = "Vintage Pistool", - + -- Shotguns ["weapon_assaultshotgun"] = "Aanvalsgeweer", ["weapon_autoshotgun"] = "Automatisch jachtgeweer", @@ -172,7 +172,7 @@ Locales["nl"] = { ["weapon_pumpshotgun"] = "Pompgeweer", ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", ["weapon_sawnoffshotgun"] = "Afgezaagd jachtgeweer", - + -- SMG & LMG ["weapon_assaultsmg"] = "Aanval SMG", ["weapon_combatmg"] = "Gevecht MG", @@ -186,7 +186,7 @@ Locales["nl"] = { ["weapon_smg"] = "SMG", ["weapon_smg_mk2"] = "SMG MK2", ["weapon_raycarbine"] = "Onheilige Hellbringer", - + -- Rifles ["weapon_advancedrifle"] = "Geavanceerd geweer", ["weapon_assaultrifle"] = "Aanvalsgeweer", @@ -199,14 +199,14 @@ Locales["nl"] = { ["weapon_militaryrifle"] = "Militair geweer", ["weapon_specialcarbine"] = "Speciale karabijn", ["weapon_specialcarbine_mk2"] = "Speciale karabijn MK2", - + -- Sniper ["weapon_heavysniper"] = "Zware sluipschutter", ["weapon_heavysniper_mk2"] = "Zware Sniper MK2", ["weapon_marksmanrifle"] = "Schuttersgeweer", ["weapon_marksmanrifle_mk2"] = "Schuttersgeweer MK2", ["weapon_sniperrifle"] = "Sniper Rifle", - + -- Heavy / Launchers ["weapon_compactlauncher"] = "Compacte Launcher", ["weapon_firework"] = "Vuurwerkstarter", @@ -216,18 +216,18 @@ Locales["nl"] = { ["weapon_railgun"] = "Spoorgeweer", ["weapon_rpg"] = "Raketwerper", ["weapon_rayminigun"] = "Weduwemaker", - + -- Criminal Enterprises DLC ["weapon_metaldetector"] = "Metaal Detector", ["weapon_precisionrifle"] = "Precisiegeweer", ["weapon_tactilerifle"] = "Service Carbine", - -- Drug Wars DLC - ["weapon_candycane"] = "Candy Cane", -- not translated + -- Drug Wars DLC + ["weapon_candycane"] = "Candy Cane", -- not translated ["weapon_acidpackage"] = "Acid Package", -- not translated - ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated - ["weapon_railgunxm3"] = "Railgun", -- not translated - + ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated + ["weapon_railgunxm3"] = "Railgun", -- not translated + -- Thrown ["weapon_ball"] = "Honkbal", ["weapon_bzgas"] = "BZ-gas", @@ -241,7 +241,7 @@ Locales["nl"] = { ["weapon_snowball"] = "Sneeuwbal", ["weapon_stickybomb"] = "Kleefbom", ["weapon_smokegrenade"] = "Traangas", - + -- Special ["weapon_firebluser"] = "Brandblusser", ["weapon_digiscanner"] = "Digitale scanner", @@ -249,7 +249,7 @@ Locales["nl"] = { ["weapon_handcuffs"] = "Handboeien", ["gadget_nightvision"] = "Nachtzicht", ["gadget_parachute"] = "parachute", - + -- Weapon Components ["component_knuckle_base"] = "basismodel", ["component_knuckle_pimp"] = "de pooier", @@ -261,16 +261,16 @@ Locales["nl"] = { ["component_knuckle_player"] = "de speler", ["component_knuckle_king"] = "de koning", ["component_knuckle_vagos"] = "de Vagos", - + ["component_luxary_finish"] = "luxe wapenafwerking", - + ["component_handle_default"] = "standaard handvat", ["component_handle_vip"] = "VIP-handvat", ["component_handle_bodyguard"] = "bodyguard-handvat", - + ["component_vip_finish"] = "VIP Finish", ["component_bodyguard_finish"] = "bodyguard Finish", - + ["component_camo_finish"] = "digitale camouflage", ["component_camo_finish2"] = "penseelstreek camouflage", ["component_camo_finish3"] = "bos camouflage", @@ -282,7 +282,7 @@ Locales["nl"] = { ["component_camo_finish9"] = "geometrische camouflage", ["component_camo_finish10"] = "boom camouflage", ["component_camo_finish11"] = "patriottische camouflage", - + ["component_camo_slide_finish"] = "digitale diacamouflage", ["component_camo_slide_finish2"] = "penseelstreek Dia Camo", ["component_camo_slide_finish3"] = "bos Slide camouflage", @@ -294,12 +294,12 @@ Locales["nl"] = { ["component_camo_slide_finish9"] = "geometrische diacamouflage", ["component_camo_slide_finish10"] = "boom Slide camouflage", ["component_camo_slide_finish11"] = "patriottische diacamouflage", - + ["component_clip_default"] = "standaard magazijn", ["component_clip_extended"] = "uitgebreid magazijn", ["component_clip_drum"] = "drum magazijn", ["component_clip_box"] = "box magazijn", - + ["component_scope_holo"] = "holografisch bereik", ["component_scope_small"] = "klein bereik", ["component_scope_medium"] = "gemiddeld bereik", @@ -307,10 +307,10 @@ Locales["nl"] = { ["component_scope"] = "gemonteerde scope", ["component_scope_advanced"] = "geavanceerd bereik", ["component_ironsights"] = "ironsights", - + ["component_suppressor"] = "suppressor", ["component_compensator"] = "compensator", - + ["component_muzzle_flat"] = "platte mondingsrem", ["component_muzzle_tactical"] = "tactische mondingsrem", ["component_muzzle_fat"] = "fat-end mondingsrem", @@ -319,26 +319,26 @@ Locales["nl"] = { ["component_muzzle_slanted"] = "schuine mondingsrem", ["component_muzzle_split"] = "gespleten mondingsrem", ["component_muzzle_squared"] = "kwadraat mondingsrem", - + ["component_flashlight"] = "zaklamp", ["component_grip"] = "grip", - + ["component_barrel_default"] = "standaard handvat", ["component_barrel_heavy"] = "zware handvat", - + ["component_ammo_tracer"] = "tracermunitie", ["component_ammo_incendiary"] = "brandgevaarlijke munitie", ["component_ammo_hollowpoint"] = "hollowpoint munitie", ["component_ammo_fmj"] = "fMJ-munitie", ["component_ammo_armor"] = "pantser piercing munitie", ["component_ammo_explosive"] = "pantserpiercing brandgevaarlijke munitie", - + ["component_shells_default"] = "standaard shells", ["component_shells_incendiary"] = "draken ademschelpen", ["component_shells_armor"] = "stalen Buckshot Shells", ["component_shells_hollowpoint"] = "flechette schelpen", ["component_shells_explosive"] = "explosieve slakkenhuizen", - + -- Weapon Ammo ["ammo_rounds"] = "ronde(n)", ["ammo_shells"] = "huls/(zen)", @@ -358,7 +358,7 @@ Locales["nl"] = { ["ammo_snowball"] = "sneeuwbal(len)", ["ammo_flare"] = "flare(s)", ["ammo_flaregun"] = "flare(s)", - + -- Weapon Tints ["tint_default"] = "standaard skin", ["tint_green"] = "groene skin", diff --git a/[core]/es_extended/locales/pl.lua b/[core]/es_extended/locales/pl.lua index 173d3686..b1014f82 100644 --- a/[core]/es_extended/locales/pl.lua +++ b/[core]/es_extended/locales/pl.lua @@ -196,10 +196,10 @@ Locales["pl"] = { ["component_luxary_finish"] = "luksusowe wykończenie broni", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Weapon Ammo ["ammo_rounds"] = "nabój/oi", diff --git a/[core]/es_extended/locales/sl.lua b/[core]/es_extended/locales/sl.lua index d34ce361..468f9fb8 100644 --- a/[core]/es_extended/locales/sl.lua +++ b/[core]/es_extended/locales/sl.lua @@ -36,10 +36,10 @@ Locales["sl"] = { ["threw_weapon_already"] = "Ti ze imas to orozje", ["threw_cannot_pickup"] = "Shramba je poln, nemorem pobrati!", ["threw_pickup_prompt"] = "Pritisni E da poberes", - + -- Key mapping ["keymap_showinventory"] = "Pokazi Shrambo", - + -- Salary related ["received_salary"] = "Vi ste plačali: $%s", ["received_help"] = "Vi ste placali svoj CEK v vrednosti: $%s", @@ -49,10 +49,10 @@ Locales["sl"] = { ["account_bank"] = "Banka", ["account_black_money"] = "Umazan Denar", ["account_money"] = "Denar", - + ["act_imp"] = "Dejanja ni mogoče izvesti", ["in_vehicle"] = "Dejanja ni mogoče izvesti, Oseba je v vozilu", - + -- Commands ["command_bring"] = "Teleportiraj osebo do sebe", ["command_car"] = "Spawnaj si vozilo", @@ -110,17 +110,17 @@ Locales["sl"] = { ["command_giveammo_ammo"] = "Kolicina streliva", ["tpm_nowaypoint"] = "Ni nastavljene poti!.", ["tpm_success"] = "Uspesno teleportiran", - + ["noclip_message"] = "Noclip je bil %s", ["enabled"] = "~g~Vkljucen~s~", ["disabled"] = "~r~Izkljucen~s~", - + -- Locale settings ["locale_digit_grouping_symbol"] = ",", ["locale_currency"] = "€%s", - + -- Weapons - + -- Melee ["weapon_dagger"] = "Dagger", ["weapon_bat"] = "Bat", @@ -139,7 +139,7 @@ Locales["sl"] = { ["weapon_poolcue"] = "Pool Cue", ["weapon_stone_hatchet"] = "Stone Hatchet", ["weapon_switchblade"] = "Switchblade", - + -- Handguns ["weapon_appistol"] = "AP Pistol", ["weapon_ceramicpistol"] = "Ceramic Pistol", @@ -160,7 +160,7 @@ Locales["sl"] = { ["weapon_stungun"] = "Taser", ["weapon_raypistol"] = "Up-N-Atomizer", ["weapon_vintagepistol"] = "Vintage Pistol", - + -- Shotguns ["weapon_assaultshotgun"] = "Assault Shotgun", ["weapon_autoshotgun"] = "Auto Shotgun", @@ -172,7 +172,7 @@ Locales["sl"] = { ["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", @@ -186,7 +186,7 @@ Locales["sl"] = { ["weapon_smg"] = "SMG", ["weapon_smg_mk2"] = "SMG MK2", ["weapon_raycarbine"] = "Unholy Hellbringer", - + -- Rifles ["weapon_advancedrifle"] = "Advanced Rifle", ["weapon_assaultrifle"] = "Assault Rifle", @@ -199,14 +199,14 @@ Locales["sl"] = { ["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", @@ -216,18 +216,18 @@ Locales["sl"] = { ["weapon_railgun"] = "Railgun", ["weapon_rpg"] = "Rocket Launcher", ["weapon_rayminigun"] = "Widowmaker", - + -- Criminal Enterprises DLC ["weapon_metaldetector"] = "Metal Detector", ["weapon_precisionrifle"] = "Precision Rifle", ["weapon_tactilerifle"] = "Service Carbine", -- Drug Wars DLC - ["weapon_candycane"] = "Candy Cane", -- not translated + ["weapon_candycane"] = "Candy Cane", -- not translated ["weapon_acidpackage"] = "Acid Package", -- not translated ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated - ["weapon_railgunxm3"] = "Railgun", -- not translated - + ["weapon_railgunxm3"] = "Railgun", -- not translated + -- Thrown ["weapon_ball"] = "Baseball", ["weapon_bzgas"] = "BZ Gas", @@ -241,7 +241,7 @@ Locales["sl"] = { ["weapon_snowball"] = "Snowball", ["weapon_stickybomb"] = "Sticky Bomb", ["weapon_smokegrenade"] = "Tear Gas", - + -- Special ["weapon_fireextinguisher"] = "Fire Extinguisher", ["weapon_digiscanner"] = "Digital Scanner", @@ -249,7 +249,7 @@ Locales["sl"] = { ["weapon_handcuffs"] = "Handcuffs", ["gadget_nightvision"] = "Night Vision", ["gadget_parachute"] = "parachute", - + -- Weapon Components ["component_knuckle_base"] = "base Model", ["component_knuckle_pimp"] = "the Pimp", @@ -261,16 +261,16 @@ Locales["sl"] = { ["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", @@ -282,7 +282,7 @@ Locales["sl"] = { ["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", @@ -294,12 +294,12 @@ Locales["sl"] = { ["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", @@ -307,10 +307,10 @@ Locales["sl"] = { ["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", @@ -319,26 +319,26 @@ Locales["sl"] = { ["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)", @@ -358,7 +358,7 @@ Locales["sl"] = { ["ammo_snowball"] = "snowball(s)", ["ammo_flare"] = "flare(s)", ["ammo_flaregun"] = "flare(s)", - + -- Weapon Tints ["tint_default"] = "default skin", ["tint_green"] = "green skin", @@ -368,5 +368,4 @@ Locales["sl"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", - } - \ No newline at end of file +} diff --git a/[core]/es_extended/locales/sr.lua b/[core]/es_extended/locales/sr.lua index f5b11993..1243da34 100644 --- a/[core]/es_extended/locales/sr.lua +++ b/[core]/es_extended/locales/sr.lua @@ -223,10 +223,10 @@ Locales["sr"] = { ["weapon_tactilerifle"] = "Service Carbine", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "Baseball", diff --git a/[core]/es_extended/locales/zh-cn.lua b/[core]/es_extended/locales/zh-cn.lua index 021585c3..3839e5d9 100644 --- a/[core]/es_extended/locales/zh-cn.lua +++ b/[core]/es_extended/locales/zh-cn.lua @@ -223,10 +223,10 @@ Locales["zh-cn"] = { ["weapon_tactilerifle"] = "制式卡宾步枪", -- Drug Wars DLC - ['weapon_candycane'] = 'Candy Cane', -- not translated + ['weapon_candycane'] = 'Candy Cane', -- not translated ['weapon_acidpackage'] = 'Acid Package', -- not translated ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated + ['weapon_railgunxm3'] = 'Railgun', -- not translated -- Thrown ["weapon_ball"] = "棒球", diff --git a/[core]/es_extended/server/classes/overrides/oxinventory.lua b/[core]/es_extended/server/classes/overrides/oxinventory.lua index dfab6174..7aa52c07 100644 --- a/[core]/es_extended/server/classes/overrides/oxinventory.lua +++ b/[core]/es_extended/server/classes/overrides/oxinventory.lua @@ -20,7 +20,7 @@ Core.PlayerFunctionOverrides.OxInventory = { metadata = nil end - minimalInventory[#minimalInventory+1] = { + minimalInventory[#minimalInventory + 1] = { name = v.name, count = v.count, slot = k, @@ -43,7 +43,7 @@ Core.PlayerFunctionOverrides.OxInventory = { end, setAccountMoney = function(self) - return function(accountName,money, reason) + return function(accountName, money, reason) reason = reason or 'unknown' if money >= 0 then local account = self.getAccount(accountName) @@ -63,16 +63,16 @@ Core.PlayerFunctionOverrides.OxInventory = { end, addAccountMoney = function(self) - return function(accountName,money, reason) + return function(accountName, money, reason) reason = reason or 'unknown' if money > 0 then local account = self.getAccount(accountName) if account then - money = account.round and ESX.Math.Round(money) or money - self.accounts[account.index].money = self.accounts[account.index].money + money - self.triggerEvent('esx:setAccountMoney', account) - TriggerEvent('esx:addAccountMoney', self.source, accountName, money, reason) + money = account.round and ESX.Math.Round(money) or money + self.accounts[account.index].money = self.accounts[account.index].money + money + self.triggerEvent('esx:setAccountMoney', account) + TriggerEvent('esx:addAccountMoney', self.source, accountName, money, reason) if Inventory.accounts[accountName] then Inventory.AddItem(self.source, accountName, money) end @@ -82,7 +82,7 @@ Core.PlayerFunctionOverrides.OxInventory = { end, removeAccountMoney = function(self) - return function(accountName,money, reason) + return function(accountName, money, reason) reason = reason or 'unknown' if money > 0 then local account = self.getAccount(accountName) @@ -101,31 +101,31 @@ Core.PlayerFunctionOverrides.OxInventory = { end, getInventoryItem = function(self) - return function(name,metadata) + return function(name, metadata) return Inventory.GetItem(self.source, name, metadata) end end, addInventoryItem = function(self) - return function(name,count,metadata,slot) + return function(name, count, metadata, slot) return Inventory.AddItem(self.source, name, count or 1, metadata, slot) end end, removeInventoryItem = function(self) - return function(name,count,metadata,slot) + return function(name, count, metadata, slot) return Inventory.RemoveItem(self.source, name, count or 1, metadata, slot) end end, setInventoryItem = function(self) - return function(name,count,metadata) + return function(name, count, metadata) return Inventory.SetItem(self.source, name, count, metadata) end end, canCarryItem = function(self) - return function(name,count,metadata) + return function(name, count, metadata) return Inventory.CanCarryItem(self.source, name, count, metadata) end end, @@ -193,7 +193,7 @@ Core.PlayerFunctionOverrides.OxInventory = { end, hasItem = function(self) - return function(name,metadata) + return function(name, metadata) return Inventory.GetItem(self.source, name, metadata) end end, diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 382c42a7..a3ee47f5 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -3,7 +3,7 @@ local GetEntityCoords = GetEntityCoords function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, weight, job, loadout, name, coords, metadata) local targetOverrides = Config.PlayerFunctionOverride and Core.PlayerFunctionOverrides[Config.PlayerFunctionOverride] or {} - + local self = {} self.accounts = accounts @@ -20,10 +20,10 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.weight = weight self.maxWeight = Config.MaxWeight self.metadata = metadata - if Config.Multichar then self.license = 'license'.. identifier:sub(identifier:find(':'), identifier:len()) else self.license = 'license:'..identifier end + if Config.Multichar then self.license = 'license' .. identifier:sub(identifier:find(':'), identifier:len()) else self.license = 'license:' .. identifier end ExecuteCommand(('add_principal identifier.%s group.%s'):format(self.license, self.group)) - + local stateBag = Player(self.source).state stateBag:set("identifier", self.identifier, true) stateBag:set("license", self.license, true) @@ -39,7 +39,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, function self.setCoords(coordinates) local Ped = GetPlayerPed(self.source) local vector = type(coordinates) == "vector4" and coordinates or type(coordinates) == "vector3" and vector4(coordinates, 0.0) or - vec(coordinates.x, coordinates.y, coordinates.z, coordinates.heading or 0.0) + vec(coordinates.x, coordinates.y, coordinates.z, coordinates.heading or 0.0) SetEntityCoords(Ped, vector.xyz, false, false, false, false) SetEntityHeading(Ped, vector.w) end @@ -156,7 +156,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, local minimalLoadout = {} for _, v in ipairs(self.loadout) do - minimalLoadout[v.name] = {ammo = v.ammo} + minimalLoadout[v.name] = { ammo = v.ammo } if v.tintIndex > 0 then minimalLoadout[v.name].tintIndex = v.tintIndex end if #v.components > 0 then @@ -319,14 +319,14 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end function self.canCarryItem(itemName, count) - if ESX.Items[itemName] then - local currentWeight, itemWeight = self.weight, ESX.Items[itemName].weight - local newWeight = currentWeight + (itemWeight * count) + if ESX.Items[itemName] then + local currentWeight, itemWeight = self.weight, ESX.Items[itemName].weight + local newWeight = currentWeight + (itemWeight * count) - return newWeight <= self.maxWeight - else - print(('[^3WARNING^7] Item ^5"%s"^7 was used but does not exist!'):format(itemName)) - end + return newWeight <= self.maxWeight + else + print(('[^3WARNING^7] Item ^5"%s"^7 was used but does not exist!'):format(itemName)) + end end function self.canSwapItem(firstItem, firstItemCount, testItem, testItemCount) @@ -355,14 +355,14 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, if ESX.DoesJobExist(newJob, grade) then local jobObject, gradeObject = ESX.Jobs[newJob], ESX.Jobs[newJob].grades[grade] - self.job.id = jobObject.id - self.job.name = jobObject.name - self.job.label = jobObject.label + self.job.id = jobObject.id + self.job.name = jobObject.name + self.job.label = jobObject.label - self.job.grade = tonumber(grade) - self.job.grade_name = gradeObject.name - self.job.grade_label = gradeObject.label - self.job.grade_salary = gradeObject.salary + self.job.grade = tonumber(grade) + self.job.grade_name = gradeObject.name + self.job.grade_label = gradeObject.label + self.job.grade_salary = gradeObject.salary if gradeObject.skin_male then self.job.skin_male = json.decode(gradeObject.skin_male) @@ -466,7 +466,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, if v.name == weaponName then weaponLabel = v.label - for _,v2 in ipairs(v.components) do + for _, v2 in ipairs(v.components) do self.removeWeaponComponent(weaponName, v2) end @@ -568,47 +568,46 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.triggerEvent('esx:showHelpNotification', msg, thisFrame, beep, duration) end - function self.getMeta(index, subIndex) - if not (index) then return self.metadata end + function self.getMeta(index, subIndex) + if not (index) then return self.metadata end - if type(index) ~= "string" then - return print("[^1ERROR^7] xPlayer.getMeta ^5index^7 should be ^5string^7!") - end + if type(index) ~= "string" then + return print("[^1ERROR^7] xPlayer.getMeta ^5index^7 should be ^5string^7!") + end - local metaData = self.metadata[index] - if (metaData == nil) then - return Config.EnableDebug and print(("[^1ERROR^7] xPlayer.getMeta ^5%s^7 not exist!"):format(index)) or nil - end + local metaData = self.metadata[index] + if (metaData == nil) then + return Config.EnableDebug and print(("[^1ERROR^7] xPlayer.getMeta ^5%s^7 not exist!"):format(index)) or nil + end - if (subIndex and type(metaData) == "table") then - local _type = type(subIndex) + if (subIndex and type(metaData) == "table") then + local _type = type(subIndex) - if (_type == "string") then - local value = metaData[subIndex] - return value - end + if (_type == "string") then + local value = metaData[subIndex] + return value + end - if (_type == "table") then - local returnValues = {} + if (_type == "table") then + local returnValues = {} - for i = 1, #subIndex do - local key = subIndex[i] - if (type(key) == "string") then - returnValues[key] = self.getMeta(index, key) - else - print(("[^1ERROR^7] xPlayer.getMeta subIndex should be ^5string^7 or ^5table^7! that contains ^5string^7, received ^5%s^7!, skipping..."):format(type(key))) - end - end + for i = 1, #subIndex do + local key = subIndex[i] + if (type(key) == "string") then + returnValues[key] = self.getMeta(index, key) + else + print(("[^1ERROR^7] xPlayer.getMeta subIndex should be ^5string^7 or ^5table^7! that contains ^5string^7, received ^5%s^7!, skipping..."):format(type(key))) + end + end - return returnValues - end + return returnValues + end - return print(("[^1ERROR^7] xPlayer.getMeta subIndex should be ^5string^7 or ^5table^7!, received ^5%s^7!"):format(_type)) - end - - return metaData - end + return print(("[^1ERROR^7] xPlayer.getMeta subIndex should be ^5string^7 or ^5table^7!, received ^5%s^7!"):format(_type)) + end + return metaData + end function self.setMeta(index, value, subValue) if not index then @@ -626,14 +625,12 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, local _type = type(value) if not subValue then - if _type ~= "number" and _type ~= "string" and _type ~= "table" then return print(("[^1ERROR^7] xPlayer.setMeta ^5%s^7 should be ^5number^7 or ^5string^7 or ^5table^7!"):format(value)) end self.metadata[index] = value else - if _type ~= "string" then return print(("[^1ERROR^7] xPlayer.setMeta ^5value^7 should be ^5string^7 as a subIndex!"):format(value)) end @@ -668,7 +665,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, Player(self.source).state:set('metadata', self.metadata, true) end - for fnName,fn in pairs(targetOverrides) do + for fnName, fn in pairs(targetOverrides) do self[fnName] = fn(self) end diff --git a/[core]/es_extended/server/commands.lua b/[core]/es_extended/server/commands.lua index 831e6b76..3521b270 100644 --- a/[core]/es_extended/server/commands.lua +++ b/[core]/es_extended/server/commands.lua @@ -1,19 +1,23 @@ ESX.RegisterCommand('setcoords', 'admin', function(xPlayer, args) - xPlayer.setCoords({x = args.x, y = args.y, z = args.z}) + xPlayer.setCoords({ x = args.x, y = args.y, z = args.z }) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Coordinates /setcoords Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "X Coord", value = args.x, inline = true}, - {name = "Y Coord", value = args.y, inline = true}, - {name = "Z Coord", value = args.z, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "X Coord", value = args.x, inline = true }, + { name = "Y Coord", value = args.y, inline = true }, + { name = "Z Coord", value = args.z, inline = true }, }) end -end, false, {help = TranslateCap('command_setcoords'), validate = true, arguments = { - {name = 'x', help = TranslateCap('command_setcoords_x'), type = 'number'}, - {name = 'y', help = TranslateCap('command_setcoords_y'), type = 'number'}, - {name = 'z', help = TranslateCap('command_setcoords_z'), type = 'number'} -}}) +end, false, { + help = TranslateCap('command_setcoords'), + validate = true, + arguments = { + { name = 'x', help = TranslateCap('command_setcoords_x'), type = 'number' }, + { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'number' }, + { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'number' } + } +}) ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) if not ESX.DoesJobExist(args.job, args.grade) then @@ -23,35 +27,39 @@ ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) args.playerId.setJob(args.job, args.grade) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Job", value = args.playerId, inline = true}, - {name = "Grade", value = args.playerId, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Job", value = args.playerId, inline = true }, + { name = "Grade", value = args.playerId, inline = true }, }) end -end, true, {help = TranslateCap('command_setjob'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'job', help = TranslateCap('command_setjob_job'), type = 'string'}, - {name = 'grade', help = TranslateCap('command_setjob_grade'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_setjob'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'job', help = TranslateCap('command_setjob_job'), type = 'string' }, + { name = 'grade', help = TranslateCap('command_setjob_grade'), type = 'number' } + } +}) local upgrades = Config.SpawnVehMaxUpgrades and - { - plate = "ADMINCAR", - modEngine = 3, - modBrakes = 2, - modTransmission = 2, - modSuspension = 3, - modArmor = true, - windowTint = 1 - } or {} + { + plate = "ADMINCAR", + modEngine = 3, + modBrakes = 2, + modTransmission = 2, + modSuspension = 3, + modArmor = true, + windowTint = 1 + } or {} ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) if not xPlayer then return showError('[^1ERROR^7] The xPlayer value is nil') end - + local playerPed = GetPlayerPed(xPlayer.source) local playerCoords = GetEntityCoords(playerPed) local playerHeading = GetEntityHeading(playerPed) @@ -67,9 +75,9 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Vehicle", value = args.car, inline = true} + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Vehicle", value = args.car, inline = true } }) end @@ -79,7 +87,7 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) for _ = 1, 20 do Wait(0) SetPedIntoVehicle(playerPed, vehicle, -1) - + if GetVehiclePedIsIn(playerPed, false) == vehicle then break end @@ -89,11 +97,15 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) end end end) -end, false, {help = TranslateCap('command_car'), validate = false, arguments = { - {name = 'car',validate = false, help = TranslateCap('command_car_car'), type = 'string'} -}}) +end, false, { + help = TranslateCap('command_car'), + validate = false, + arguments = { + { name = 'car', validate = false, help = TranslateCap('command_car_car'), type = 'string' } + } +}) -ESX.RegisterCommand({'cardel', 'dv'}, 'admin', function(xPlayer, args) +ESX.RegisterCommand({ 'cardel', 'dv' }, 'admin', function(xPlayer, args) local PedVehicle = GetVehiclePedIsIn(GetPlayerPed(xPlayer.source), false) if DoesEntityExist(PedVehicle) then DeleteEntity(PedVehicle) @@ -107,13 +119,17 @@ ESX.RegisterCommand({'cardel', 'dv'}, 'admin', function(xPlayer, args) end if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end -end, false, {help = TranslateCap('command_cardel'), validate = false, arguments = { - {name = 'radius',validate = false, help = TranslateCap('command_cardel_radius'), type = 'number'} -}}) +end, false, { + help = TranslateCap('command_cardel'), + validate = false, + arguments = { + { name = 'radius', validate = false, help = TranslateCap('command_cardel_radius'), type = 'number' } + } +}) ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showError) if not args.playerId.getAccount(args.account) then @@ -122,18 +138,22 @@ ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showErro args.playerId.setAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Account Money /setaccountmoney Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Account", value = args.account, inline = true}, - {name = "Amount", value = args.amount, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Account", value = args.account, inline = true }, + { name = "Amount", value = args.amount, inline = true }, }) end -end, true, {help = TranslateCap('command_setaccountmoney'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'account', help = TranslateCap('command_giveaccountmoney_account'), type = 'string'}, - {name = 'amount', help = TranslateCap('command_setaccountmoney_amount'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_setaccountmoney'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'account', help = TranslateCap('command_giveaccountmoney_account'), type = 'string' }, + { name = 'amount', help = TranslateCap('command_setaccountmoney_amount'), type = 'number' } + } +}) ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showError) if not args.playerId.getAccount(args.account) then @@ -142,18 +162,22 @@ ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showErr args.playerId.addAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Account Money /giveaccountmoney Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Account", value = args.account, inline = true}, - {name = "Amount", value = args.amount, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Account", value = args.account, inline = true }, + { name = "Amount", value = args.amount, inline = true }, }) end -end, true, {help = TranslateCap('command_giveaccountmoney'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'account', help = TranslateCap('command_giveaccountmoney_account'), type = 'string'}, - {name = 'amount', help = TranslateCap('command_giveaccountmoney_amount'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_giveaccountmoney'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'account', help = TranslateCap('command_giveaccountmoney_account'), type = 'string' }, + { name = 'amount', help = TranslateCap('command_giveaccountmoney_amount'), type = 'number' } + } +}) ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showError) if not args.playerId.getAccount(args.account) then @@ -162,36 +186,44 @@ ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showE args.playerId.removeAccountMoney(args.account, args.amount, "Government Tax") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Remove Account Money /removeaccountmoney Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Account", value = args.account, inline = true}, - {name = "Amount", value = args.amount, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Account", value = args.account, inline = true }, + { name = "Amount", value = args.amount, inline = true }, }) end -end, true, {help = TranslateCap('command_removeaccountmoney'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'account', help = TranslateCap('command_removeaccountmoney_account'), type = 'string'}, - {name = 'amount', help = TranslateCap('command_removeaccountmoney_amount'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_removeaccountmoney'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'account', help = TranslateCap('command_removeaccountmoney_account'), type = 'string' }, + { name = 'amount', help = TranslateCap('command_removeaccountmoney_amount'), type = 'number' } + } +}) if not Config.OxInventory then ESX.RegisterCommand('giveitem', 'admin', function(xPlayer, args) args.playerId.addInventoryItem(args.item, args.count) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Item /giveitem Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Item", value = args.item, inline = true}, - {name = "Quantity", value = args.count, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Item", value = args.item, inline = true }, + { name = "Quantity", value = args.count, inline = true }, }) end - end, true, {help = TranslateCap('command_giveitem'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'item', help = TranslateCap('command_giveitem_item'), type = 'item'}, - {name = 'count', help = TranslateCap('command_giveitem_count'), type = 'number'} - }}) + end, true, { + help = TranslateCap('command_giveitem'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'item', help = TranslateCap('command_giveitem_item'), type = 'item' }, + { name = 'count', help = TranslateCap('command_giveitem_count'), type = 'number' } + } + }) ESX.RegisterCommand('giveweapon', 'admin', function(xPlayer, args, showError) if args.playerId.hasWeapon(args.weapon) then @@ -200,18 +232,22 @@ if not Config.OxInventory then args.playerId.addWeapon(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Weapon", value = args.weapon, inline = true}, - {name = "Ammo", value = args.ammo, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Weapon", value = args.weapon, inline = true }, + { name = "Ammo", value = args.ammo, inline = true }, }) end - end, true, {help = TranslateCap('command_giveweapon'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'weapon', help = TranslateCap('command_giveweapon_weapon'), type = 'weapon'}, - {name = 'ammo', help = TranslateCap('command_giveweapon_ammo'), type = 'number'} - }}) + end, true, { + help = TranslateCap('command_giveweapon'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'weapon', help = TranslateCap('command_giveweapon_weapon'), type = 'weapon' }, + { name = 'ammo', help = TranslateCap('command_giveweapon_ammo'), type = 'number' } + } + }) ESX.RegisterCommand('giveammo', 'admin', function(xPlayer, args, showError) if not args.playerId.hasWeapon(args.weapon) then @@ -220,18 +256,22 @@ if not Config.OxInventory then args.playerId.addWeaponAmmo(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Weapon", value = args.weapon, inline = true}, - {name = "Ammo", value = args.ammo, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Weapon", value = args.weapon, inline = true }, + { name = "Ammo", value = args.ammo, inline = true }, }) end - end, true, {help = TranslateCap('command_giveweapon'), validate = false, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'weapon', help = TranslateCap('command_giveammo_weapon'), type = 'weapon'}, - {name = 'ammo', help = TranslateCap('command_giveammo_ammo'), type = 'number'} - }}) + end, true, { + help = TranslateCap('command_giveweapon'), + validate = false, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'weapon', help = TranslateCap('command_giveammo_weapon'), type = 'weapon' }, + { name = 'ammo', help = TranslateCap('command_giveammo_ammo'), type = 'number' } + } + }) ESX.RegisterCommand('giveweaponcomponent', 'admin', function(xPlayer, args, showError) if args.playerId.hasWeapon(args.weaponName) then @@ -244,11 +284,11 @@ if not Config.OxInventory then args.playerId.addWeaponComponent(args.weaponName, args.componentName) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Weapon", value = args.weaponName, inline = true}, - {name = "Component", value = args.componentName, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Weapon", value = args.weaponName, inline = true }, + { name = "Component", value = args.componentName, inline = true }, }) end end @@ -258,30 +298,34 @@ if not Config.OxInventory then else showError(TranslateCap('command_giveweaponcomponent_missingweapon')) end - end, true, {help = TranslateCap('command_giveweaponcomponent'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'weaponName', help = TranslateCap('command_giveweapon_weapon'), type = 'weapon'}, - {name = 'componentName', help = TranslateCap('command_giveweaponcomponent_component'), type = 'string'} - }}) + end, true, { + help = TranslateCap('command_giveweaponcomponent'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'weaponName', help = TranslateCap('command_giveweapon_weapon'), type = 'weapon' }, + { name = 'componentName', help = TranslateCap('command_giveweaponcomponent_component'), type = 'string' } + } + }) end -ESX.RegisterCommand({'clear', 'cls'}, 'user', function(xPlayer) +ESX.RegisterCommand({ 'clear', 'cls' }, 'user', function(xPlayer) xPlayer.triggerEvent('chat:clear') -end, false, {help = TranslateCap('command_clear')}) +end, false, { help = TranslateCap('command_clear') }) -ESX.RegisterCommand({'clearall', 'clsall'}, 'admin', function(xPlayer) +ESX.RegisterCommand({ 'clearall', 'clsall' }, 'admin', function(xPlayer) TriggerClientEvent('chat:clear', -1) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end -end, true, {help = TranslateCap('command_clearall')}) +end, true, { help = TranslateCap('command_clearall') }) ESX.RegisterCommand("refreshjobs", 'admin', function() ESX.RefreshJobs() -end, true, {help = TranslateCap('command_clearall')}) +end, true, { help = TranslateCap('command_clearall') }) if not Config.OxInventory then ESX.RegisterCommand('clearinventory', 'admin', function(xPlayer, args) @@ -290,90 +334,109 @@ if not Config.OxInventory then args.playerId.setInventoryItem(v.name, 0) end end - TriggerEvent('esx:playerInventoryCleared',args.playerId) + TriggerEvent('esx:playerInventoryCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, }) end - end, true, {help = TranslateCap('command_clearinventory'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} - }}) + end, true, { + help = TranslateCap('command_clearinventory'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } + }) ESX.RegisterCommand('clearloadout', 'admin', function(xPlayer, args) - for i=#args.playerId.loadout, 1, -1 do + for i = #args.playerId.loadout, 1, -1 do args.playerId.removeWeapon(args.playerId.loadout[i].name) end - TriggerEvent('esx:playerLoadoutCleared',args.playerId) + TriggerEvent('esx:playerLoadoutCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, }) end - end, true, {help = TranslateCap('command_clearloadout'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} - }}) + end, true, { + help = TranslateCap('command_clearloadout'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } + }) end ESX.RegisterCommand('setgroup', 'admin', function(xPlayer, args) if not args.playerId then args.playerId = xPlayer.source end - if args.group == "superadmin" then args.group = "admin" print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7") end + if args.group == "superadmin" then + args.group = "admin" + print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7") + end args.playerId.setGroup(args.group) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Group", value = args.group, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Group", value = args.group, inline = true }, }) end -end, true, {help = TranslateCap('command_setgroup'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'}, - {name = 'group', help = TranslateCap('command_setgroup_group'), type = 'string'}, -}}) +end, true, { + help = TranslateCap('command_setgroup'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' }, + { name = 'group', help = TranslateCap('command_setgroup_group'), type = 'string' }, + } +}) ESX.RegisterCommand('save', 'admin', function(_, args) Core.SavePlayer(args.playerId) - print("[^2Info^0] Saved Player - ^5".. args.playerId.source .. "^0") -end, true, {help = TranslateCap('command_save'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) + print("[^2Info^0] Saved Player - ^5" .. args.playerId.source .. "^0") +end, true, { + help = TranslateCap('command_save'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand('saveall', 'admin', function() Core.SavePlayers() -end, true, {help = TranslateCap('command_saveall')}) +end, true, { help = TranslateCap('command_saveall') }) -ESX.RegisterCommand('group', {"user", "admin"}, function(xPlayer) - print(xPlayer.getName()..", You are currently: ^5".. xPlayer.getGroup() .. "^0") +ESX.RegisterCommand('group', { "user", "admin" }, function(xPlayer) + print(xPlayer.getName() .. ", You are currently: ^5" .. xPlayer.getGroup() .. "^0") end, true) -ESX.RegisterCommand('job', {"user", "admin"}, function(xPlayer) - print(xPlayer.getName()..", You are currently: ^5".. xPlayer.getJob().name.. "^0 - ^5".. xPlayer.getJob().grade_label .. "^0") +ESX.RegisterCommand('job', { "user", "admin" }, function(xPlayer) + 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) +ESX.RegisterCommand('info', { "user", "admin" }, function(xPlayer) local job = xPlayer.getJob().name - print("^2ID : ^5"..xPlayer.source.." ^0| ^2Name:^5"..xPlayer.getName().." ^0 | ^2Group:^5"..xPlayer.getGroup().."^0 | ^2Job:^5".. job.."^0") + print("^2ID : ^5" .. xPlayer.source .. " ^0| ^2Name:^5" .. xPlayer.getName() .. " ^0 | ^2Group:^5" .. xPlayer.getGroup() .. "^0 | ^2Job:^5" .. job .. "^0") end, true) ESX.RegisterCommand('coords', "admin", function(xPlayer) - local ped = GetPlayerPed(xPlayer.source) + local ped = GetPlayerPed(xPlayer.source) local coords = GetEntityCoords(ped, false) local heading = GetEntityHeading(ped) - 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") + 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) ESX.RegisterCommand('tpm', "admin", function(xPlayer) xPlayer.triggerEvent("esx:tpm") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, true) @@ -383,15 +446,19 @@ ESX.RegisterCommand('goto', "admin", function(xPlayer, args) xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Target Coords", value = targetCoords, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Target Coords", value = targetCoords, inline = true }, }) end -end, true, {help = TranslateCap('command_goto'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) +end, true, { + help = TranslateCap('command_goto'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand('bring', "admin", function(xPlayer, args) local targetCoords = args.playerId.getCoords() @@ -399,70 +466,86 @@ ESX.RegisterCommand('bring', "admin", function(xPlayer, args) args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, - {name = "Target Coords", value = targetCoords, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Target Coords", value = targetCoords, inline = true }, }) end -end, true, {help = TranslateCap('command_bring'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) +end, true, { + help = TranslateCap('command_bring'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand('kill', "admin", function(xPlayer, args) args.playerId.triggerEvent("esx:killPlayer") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Kill Command /kill Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, }) end -end, true, {help = TranslateCap('command_kill'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) +end, true, { + help = TranslateCap('command_kill'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand('freeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "freeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Freeze /freeze Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, }) end -end, true, {help = TranslateCap('command_freeze'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) +end, true, { + help = TranslateCap('command_freeze'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand('unfreeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "unfreeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin UnFreeze /unfreeze Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Target", value = args.playerId.name, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, }) end -end, true, {help = TranslateCap('command_unfreeze'), validate = true, arguments = { - {name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player'} -}}) +end, true, { + help = TranslateCap('command_unfreeze'), + validate = true, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) ESX.RegisterCommand("noclip", 'admin', function(xPlayer) xPlayer.triggerEvent('esx:noclip') if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, false) ESX.RegisterCommand('players', "admin", function() local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers - print("^5"..#xPlayers.." ^2online player(s)^0") + print("^5" .. #xPlayers .. " ^2online player(s)^0") for i = 1, #(xPlayers) do local xPlayer = xPlayers[i] - print("^1[ ^2ID : ^5"..xPlayer.source.." ^0| ^2Name : ^5"..xPlayer.getName().." ^0 | ^2Group : ^5"..xPlayer.getGroup().." ^0 | ^2Identifier : ^5".. xPlayer.identifier .."^1]^0\n") + 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/[core]/es_extended/server/common.lua b/[core]/es_extended/server/common.lua index 638593c0..c0749590 100644 --- a/[core]/es_extended/server/common.lua +++ b/[core]/es_extended/server/common.lua @@ -43,7 +43,7 @@ MySQL.ready(function() if not Config.OxInventory then local items = MySQL.query.await('SELECT * FROM items') for _, v in ipairs(items) do - ESX.Items[v.name] = {label = v.label, weight = v.weight, rare = v.rare, canRemove = v.can_remove} + ESX.Items[v.name] = { label = v.label, weight = v.weight, rare = v.rare, canRemove = v.can_remove } end else TriggerEvent('__cfx_export_ox_inventory_Items', function(ref) @@ -64,7 +64,7 @@ MySQL.ready(function() ESX.RefreshJobs() print(('[^2INFO^7] ESX ^5Legacy %s^0 initialized!'):format(GetResourceMetadata(GetCurrentResourceName(), "version", 0))) - + StartDBSync() if Config.EnablePaycheck then StartPayCheck() diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 01a63d5b..8a5670bf 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -32,7 +32,7 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion) TriggerClientEvent('chat:addSuggestion', -1, ('/%s'):format(name), suggestion.help, suggestion.arguments) end - Core.RegisteredCommands[name] = {group = group, cb = cb, allowConsole = allowConsole, suggestion = suggestion} + Core.RegisteredCommands[name] = { group = group, cb = cb, allowConsole = allowConsole, suggestion = suggestion } RegisterCommand(name, function(playerId, args) local command = Core.RegisteredCommands[name] @@ -100,10 +100,10 @@ function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion) end elseif v.type == 'any' then newArgs[v.name] = args[k] - elseif v.type == 'merge' then + elseif v.type == 'merge' then local lenght = 0 - for i = 1, k-1 do - lenght = lenght + string.len(args[i]) +1 + for i = 1, k - 1 do + lenght = lenght + string.len(args[i]) + 1 end local merge = table.concat(args, " ") @@ -188,7 +188,7 @@ function Core.SavePlayers(cb) if not next(xPlayers) then return end - + local startTime = os.time() local parameters = {} @@ -217,7 +217,7 @@ function Core.SavePlayers(cb) if type(cb) == 'function' then return cb() end - + print(('[^2INFO^7] Saved ^5%s^7 %s over ^5%s^7 ms'):format(#parameters, #parameters > 1 and 'players' or 'player', ESX.Math.Round((os.time() - startTime) / 1000000, 2))) end ) @@ -226,35 +226,35 @@ end ESX.GetPlayers = GetPlayers local function checkTable(key, val, player, xPlayers) - for valIndex = 1, #val do - local value = val[valIndex] - if not xPlayers[value] then - xPlayers[value] = {} - end - - if (key == 'job' and player.job.name == value) or player[key] == value then - xPlayers[value][#xPlayers[value] + 1] = player - end - end + for valIndex = 1, #val do + local value = val[valIndex] + if not xPlayers[value] then + xPlayers[value] = {} + end + + if (key == 'job' and player.job.name == value) or player[key] == value then + xPlayers[value][#xPlayers[value] + 1] = player + end + end end function ESX.GetExtendedPlayers(key, val) - if not key then return ESX.Players end + if not key then return ESX.Players end - local xPlayers = {} - if type(val) == "table" then - for _, v in pairs(ESX.Players) do - checkTable(key, val, v, xPlayers) - end - else - for _, v in pairs(ESX.Players) do - if (key == 'job' and v.job.name == val) or v[key] == val then - xPlayers[#xPlayers + 1] = v - end - end - end + local xPlayers = {} + if type(val) == "table" then + for _, v in pairs(ESX.Players) do + checkTable(key, val, v, xPlayers) + end + else + for _, v in pairs(ESX.Players) do + if (key == 'job' and v.job.name == val) or v[key] == val then + xPlayers[#xPlayers + 1] = v + end + end + end - return xPlayers + return xPlayers end function ESX.GetPlayerFromId(source) @@ -284,7 +284,7 @@ end function ESX.GetVehicleType(model, player, cb) model = type(model) == 'string' and joaat(model) or model - + if Core.vehicleTypesByModel[model] then return cb(Core.vehicleTypesByModel[model]) end @@ -296,50 +296,49 @@ function ESX.GetVehicleType(model, player, cb) end function ESX.DiscordLog(name, title, color, message) - local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default - local embedData = {{ - ['title'] = title, - ['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default, - ['footer'] = { - ['text'] = "| ESX Logs | " .. os.date(), - ['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png" - }, - ['description'] = message, - ['author'] = { - ['name'] = "ESX Framework", - ['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless" - } - }} + local embedData = { { + ['title'] = title, + ['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default, + ['footer'] = { + ['text'] = "| ESX Logs | " .. os.date(), + ['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png" + }, + ['description'] = message, + ['author'] = { + ['name'] = "ESX Framework", + ['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless" + } + } } PerformHttpRequest(webHook, nil, 'POST', json.encode({ - username = 'Logs', - embeds = embedData + username = 'Logs', + embeds = embedData }), { - ['Content-Type'] = 'application/json' + ['Content-Type'] = 'application/json' }) end function ESX.DiscordLogFields(name, title, color, fields) local webHook = Config.DiscordLogs.Webhooks[name] or Config.DiscordLogs.Webhooks.default - local embedData = {{ - ['title'] = title, - ['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default, - ['footer'] = { - ['text'] = "| ESX Logs | " .. os.date(), - ['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png" - }, - ['fields'] = fields, - ['description'] = "", - ['author'] = { - ['name'] = "ESX Framework", - ['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless" - } - }} + local embedData = { { + ['title'] = title, + ['color'] = Config.DiscordLogs.Colors[color] or Config.DiscordLogs.Colors.default, + ['footer'] = { + ['text'] = "| ESX Logs | " .. os.date(), + ['icon_url'] = "https://cdn.discordapp.com/attachments/944789399852417096/1020099828266586193/blanc-800x800.png" + }, + ['fields'] = fields, + ['description'] = "", + ['author'] = { + ['name'] = "ESX Framework", + ['icon_url'] = "https://cdn.discordapp.com/emojis/939245183621558362.webp?size=128&quality=lossless" + } + } } PerformHttpRequest(webHook, nil, 'POST', json.encode({ - username = 'Logs', - embeds = embedData + username = 'Logs', + embeds = embedData }), { - ['Content-Type'] = 'application/json' + ['Content-Type'] = 'application/json' }) end @@ -348,30 +347,30 @@ end --- @param label string --- @param grades table function ESX.CreateJob(name, label, grades) - if not name then - return print('[^3WARNING^7] missing argument `name(string)` while creating a job') - end - - if not label then - return print('[^3WARNING^7] missing argument `label(string)` while creating a job') - end - - if not grades or not next(grades) then - return print('[^3WARNING^7] missing argument `grades(table)` while creating a job!') - end + if not name then + return print('[^3WARNING^7] missing argument `name(string)` while creating a job') + end - local parameters = {} - local job = {name = name, label = label, grades = {}} + if not label then + return print('[^3WARNING^7] missing argument `label(string)` while creating a job') + end - for _,v in pairs(grades) do - job.grades[tostring(v.grade)] = {job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = {}, skin_female = {}} - parameters[#parameters + 1] = { name, v.grade, v.name, v.label, v.salary} - end + if not grades or not next(grades) then + return print('[^3WARNING^7] missing argument `grades(table)` while creating a job!') + end - MySQL.insert('INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)', {name, label}) - MySQL.prepare('INSERT INTO job_grades (job_name, grade, name, label, salary) VALUES (?, ?, ?, ?, ?)', parameters) - - ESX.Jobs[name] = job + local parameters = {} + local job = { name = name, label = label, grades = {} } + + for _, v in pairs(grades) do + job.grades[tostring(v.grade)] = { job_name = name, grade = v.grade, name = v.name, label = v.label, salary = v.salary, skin_male = {}, skin_female = {} } + parameters[#parameters + 1] = { name, v.grade, v.name, v.label, v.salary } + end + + MySQL.insert('INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)', { name, label }) + MySQL.prepare('INSERT INTO job_grades (job_name, grade, name, label, salary) VALUES (?, ?, ?, ?, ?)', parameters) + + ESX.Jobs[name] = job end function ESX.RefreshJobs() @@ -402,8 +401,10 @@ function ESX.RefreshJobs() if not Jobs then -- Fallback data, if no jobs exist - ESX.Jobs['unemployed'] = {label = 'Unemployed', - grades = {['0'] = {grade = 0, label = 'Unemployed', salary = 200, skin_male = {}, skin_female = {}}}} + ESX.Jobs['unemployed'] = { + label = 'Unemployed', + grades = { ['0'] = { grade = 0, label = 'Unemployed', salary = 200, skin_male = {}, skin_female = {} } } + } else ESX.Jobs = Jobs end @@ -422,7 +423,7 @@ function ESX.UseItem(source, item, ...) if not success then return result and print(result) or - print(('[^3WARNING^7] An error occured when using item ^5"%s"^7! This was not caused by ESX.'):format(item)) + print(('[^3WARNING^7] An error occured when using item ^5"%s"^7! This was not caused by ESX.'):format(item)) end end else @@ -475,7 +476,7 @@ if not Config.OxInventory then local xPlayer = ESX.Players[playerId] local coords = xPlayer.getCoords() - Core.Pickups[pickupId] = {type = type, name = name, count = count, label = label, coords = coords} + Core.Pickups[pickupId] = { type = type, name = name, count = count, label = label, coords = coords } if type == 'item_weapon' then Core.Pickups[pickupId].components = components diff --git a/[core]/es_extended/server/modules/actions.lua b/[core]/es_extended/server/modules/actions.lua index 049e0ca1..c0513126 100644 --- a/[core]/es_extended/server/modules/actions.lua +++ b/[core]/es_extended/server/modules/actions.lua @@ -6,7 +6,6 @@ RegisterServerEvent('esx:enteredVehicle') RegisterServerEvent('esx:exitedVehicle') if Config.EnableDebug then - AddEventHandler('esx:playerPedChanged', function(netId) print('esx:playerPedChanged', source, netId) end) @@ -30,5 +29,4 @@ if Config.EnableDebug then AddEventHandler('esx:exitedVehicle', function(plate, seat, displayName, netId) print('esx:exitedVehicle', 'source', source, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) end) - -end \ No newline at end of file +end diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index f517531e..d78e9d4a 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -35,7 +35,7 @@ end RegisterNetEvent('esx:clientCallback', function(requestId, invoker, ...) if not clientRequests[requestId] then - return print(('[^1ERROR^7] Client Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist.'):format(requestId, invoker)) + return print(('[^1ERROR^7] Client Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist.'):format(requestId, invoker)) end clientRequests[requestId](...) diff --git a/[core]/es_extended/server/onesync.lua b/[core]/es_extended/server/onesync.lua index e43f70b4..515b5145 100644 --- a/[core]/es_extended/server/onesync.lua +++ b/[core]/es_extended/server/onesync.lua @@ -27,12 +27,12 @@ local function getNearbyPlayers(source, closest, distance, ignore) local dist = #(source - coords) if dist <= distance then count = count + 1 - result[count] = {id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist} + result[count] = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } end else local dist = #(source - coords) if dist <= (result.dist or distance) then - result = {id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist} + result = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } end end end @@ -83,7 +83,6 @@ function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) end) end - ---@param model number|string ---@param coords vector3|table ---@param heading number @@ -133,7 +132,7 @@ local function getNearbyEntities(entities, coords, modelFilter, maxDistance, isP if not modelFilter or modelFilter[GetEntityModel(entity)] then local entityCoords = GetEntityCoords(entity) if not maxDistance or #(coords - entityCoords) <= maxDistance then - nearbyEntities[#nearbyEntities+1] = NetworkGetNetworkIdFromEntity(entity) + nearbyEntities[#nearbyEntities + 1] = NetworkGetNetworkIdFromEntity(entity) end end end diff --git a/[core]/es_extended/server/paycheck.lua b/[core]/es_extended/server/paycheck.lua index 1ef999de..98138293 100644 --- a/[core]/es_extended/server/paycheck.lua +++ b/[core]/es_extended/server/paycheck.lua @@ -1,7 +1,7 @@ function StartPayCheck() - CreateThread(function() - while true do - Wait(Config.PaycheckInterval) + CreateThread(function() + while true do + Wait(Config.PaycheckInterval) for player, xPlayer in pairs(ESX.Players) do local jobLabel = xPlayer.job.label local job = xPlayer.job.grade_name @@ -14,23 +14,23 @@ function StartPayCheck() 'CHAR_BANK_MAZE', 9) if Config.LogPaycheck then ESX.DiscordLogFields("Paycheck", "Paycheck - Unemployment Benefits", "green", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Amount", value = salary, inline = true} + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Amount", value = salary, inline = true } }) end elseif Config.EnableSocietyPayouts then -- possibly a society TriggerEvent('esx_society:getSociety', xPlayer.job.name, function(society) - if society ~= nil then -- verified society + if society ~= nil then -- verified society TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function(account) if account.money >= salary then -- does the society money to pay its employees? xPlayer.addAccountMoney('bank', salary, "Paycheck") account.removeMoney(salary) if Config.LogPaycheck then - ESX.DiscordLogFields("Paycheck", "Paycheck - "..jobLabel, "green", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Amount", value = salary, inline = true} + ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", { + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Amount", value = salary, inline = true } }) end @@ -43,10 +43,10 @@ function StartPayCheck() else -- not a society xPlayer.addAccountMoney('bank', salary, "Paycheck") if Config.LogPaycheck then - ESX.DiscordLogFields("Paycheck", "Paycheck - "..jobLabel, "green", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Amount", value = salary, inline = true} + ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", { + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Amount", value = salary, inline = true } }) end TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), @@ -57,9 +57,9 @@ function StartPayCheck() xPlayer.addAccountMoney('bank', salary, "Paycheck") if Config.LogPaycheck then ESX.DiscordLogFields("Paycheck", "Paycheck - Generic", "green", { - {name = "Player", value = xPlayer.name, inline = true}, - {name = "ID", value = xPlayer.source, inline = true}, - {name = "Amount", value = salary, inline = true} + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Amount", value = salary, inline = true } }) end TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), diff --git a/[core]/esx_context/config.lua b/[core]/esx_context/config.lua index c8812138..58301301 100644 --- a/[core]/esx_context/config.lua +++ b/[core]/esx_context/config.lua @@ -1 +1 @@ -PREVIEW_KEYBIND = "LMENU" \ No newline at end of file +PREVIEW_KEYBIND = "LMENU" diff --git a/[core]/esx_context/fxmanifest.lua b/[core]/esx_context/fxmanifest.lua index ff68b532..2841b9b3 100644 --- a/[core]/esx_context/fxmanifest.lua +++ b/[core]/esx_context/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' author 'ESX-Framework & Brayden' description 'Offical ESX Legacy Context Menu' lua54 'yes' -version '1.9.4' +version '1.9.5' ui_page 'index.html' @@ -21,4 +21,4 @@ files { dependencies { 'es_extended' -} \ No newline at end of file +} diff --git a/[core]/esx_identity/client/main.lua b/[core]/esx_identity/client/main.lua index ffabca5a..d81d30f3 100644 --- a/[core]/esx_identity/client/main.lua +++ b/[core]/esx_identity/client/main.lua @@ -39,7 +39,7 @@ if not Config.UseDeferrals then ClearTimecycleModifier() end - SendNUIMessage({type = "enableui", enable = state}) + SendNUIMessage({ type = "enableui", enable = state }) end RegisterNetEvent('esx_identity:showRegisterIdentity', function() diff --git a/[core]/esx_identity/config.lua b/[core]/esx_identity/config.lua index 8eeb007c..2c16096b 100644 --- a/[core]/esx_identity/config.lua +++ b/[core]/esx_identity/config.lua @@ -1,23 +1,23 @@ -Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config = {} +Config.Locale = GetConvar('esx:locale', 'en') -- [Config.EnableCommands] -- Enables Commands Such As /char and /chardel -Config.EnableCommands = ESX.GetConfig().EnableDebug +Config.EnableCommands = ESX.GetConfig().EnableDebug -- EXPERIMENTAL Character Registration Method -Config.UseDeferrals = false +Config.UseDeferrals = false -- These values are for the date format in the registration menu -- Choices: DD/MM/YYYY | MM/DD/YYYY | YYYY/MM/DD -Config.DateFormat = 'DD/MM/YYYY' +Config.DateFormat = 'DD/MM/YYYY' -- These values are for the second input validation in server/main.lua -Config.MaxNameLength = 20 -- Max Name Length. -Config.MinHeight = 120 -- 120 cm lowest height -Config.MaxHeight = 220 -- 220 cm max height. -Config.LowestYear = 1900 -- 112 years old is the oldest you can be. -Config.HighestYear = 2005 -- 18 years old is the youngest you can be. +Config.MaxNameLength = 20 -- Max Name Length. +Config.MinHeight = 120 -- 120 cm lowest height +Config.MaxHeight = 220 -- 220 cm max height. +Config.LowestYear = 1900 -- 112 years old is the oldest you can be. +Config.HighestYear = 2005 -- 18 years old is the youngest you can be. -Config.FullCharDelete = true -- Delete all reference to character. -Config.EnableDebugging = ESX.GetConfig().EnableDebug -- prints for debugging :) +Config.FullCharDelete = true -- Delete all reference to character. +Config.EnableDebugging = ESX.GetConfig().EnableDebug -- prints for debugging :) diff --git a/[core]/esx_identity/fxmanifest.lua b/[core]/esx_identity/fxmanifest.lua index 618224aa..2a916e95 100644 --- a/[core]/esx_identity/fxmanifest.lua +++ b/[core]/esx_identity/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Identity' lua54 'yes' -version '1.9.4' +version '1.9.5' shared_scripts { '@es_extended/imports.lua', @@ -32,4 +32,4 @@ files { 'html/css/style.css', } -dependency 'es_extended' \ No newline at end of file +dependency 'es_extended' diff --git a/[core]/esx_identity/locales/da.lua b/[core]/esx_identity/locales/da.lua index 68a4f5c4..aa4b83de 100644 --- a/[core]/esx_identity/locales/da.lua +++ b/[core]/esx_identity/locales/da.lua @@ -1,39 +1,38 @@ Locales["da"] = { - ["show_active_character"] = "Vis aktiv karakter", - ["active_character"] = "Aktiv karakter: %s", - ["error_active_character"] = "Der opstod en fejl under indhentning af dine data.", - ["delete_character"] = "Slet din nuværende karakter.", - ["deleted_character"] = "Karakter slettet", - ["error_delete_character"] = "Der opstod et problem med at slette din karakter.", - ["thank_you_for_registering"] = "Registreringen lykkedes. God fornøjelse!", - ["debug_xPlayer_get_first_name"] = "Returnerer dit fornavn", - ["debug_xPlayer_get_last_name"] = "Returnerer dit efternavn", - ["debug_xPlayer_get_full_name"] = "Returnerer dit fulde navn", - ["debug_xPlayer_get_sex"] = "Returnerer dit køn", - ["debug_xPlayer_get_dob"] = "Returnerer din fødselsdato", - ["debug_xPlayer_get_height"] = "Giver din højde tilbage", - ["error_debug_xPlayer_get_first_name"] = "Der opstod et problem med at få dit fornavn.", - ["error_debug_xPlayer_get_last_name"] = "Der opstod et problem med at få dit efternavn.", - ["error_debug_xPlayer_get_full_name"] = "Der opstod et problem under indhentning af dit fulde navn.", - ["error_debug_xPlayer_get_sex"] = "Der var et problem med at få dit sex.", - ["error_debug_xPlayer_get_dob"] = "Der var et problem med at få din fødselsdato.", - ["error_debug_xPlayer_get_height"] = "Der var et problem med at få din højde.", - ["return_debug_xPlayer_get_first_name"] = "Fornavn: %s", - ["return_debug_xPlayer_get_last_name"] = "Efternavn: %s", - ["return_debug_xPlayer_get_full_name"] = "Fulde Navn: %s", - ["return_debug_xPlayer_get_sex"] = "Køn: %s", - ["return_debug_xPlayer_get_dob"] = "Fødselsdato: %s", - ["return_debug_xPlayer_get_height"] = "Højde: %s Tommer", - ["data_incorrect"] = "Ugyldige data. Prøv venligst igen.", - ["invalid_format"] = "Ugyldigt dataformat. Prøv venligst igen.", - ["no_identifier"] = "[ESX Identitet]\nDer var et problem under indlæsning af din karakter!\nFejlkode: identifikator mangler\n\nDette skyldes, at din identifikator mangler. Venligst vend tilbage senere eller rapporter dette problem til serverejeren.", - ["missing_identity"] = "[ESX Identitet]\nDer var et problem med at indlæse din karakter!\nFejlkode: identitet mangler\n\nDet ser ud til, at din identitet mangler, prøv at oprette forbindelse igen.", - ["deleted_identity"] = "Tegn slettet. Tilmeld dig igen for at oprette en ny karakter.", - ["already_registered"] = "Du har allerede tilmeldt dig.", - ["invalid_firstname_format"] = "Ugyldigt format (fornavn): Prøv venligst igen.", - ["invalid_lastname_format"] = "Ugyldigt format (efternavn): Prøv igen.", - ["invalid_dob_format"] = "Ugyldigt format (DOB): Prøv venligst igen.", - ["invalid_sex_format"] = "Ugyldigt format (køn): Prøv venligst igen.", - ["invalid_height_format"] = "Ugyldigt format (højde): Prøv venligst igen.", - } - + ["show_active_character"] = "Vis aktiv karakter", + ["active_character"] = "Aktiv karakter: %s", + ["error_active_character"] = "Der opstod en fejl under indhentning af dine data.", + ["delete_character"] = "Slet din nuværende karakter.", + ["deleted_character"] = "Karakter slettet", + ["error_delete_character"] = "Der opstod et problem med at slette din karakter.", + ["thank_you_for_registering"] = "Registreringen lykkedes. God fornøjelse!", + ["debug_xPlayer_get_first_name"] = "Returnerer dit fornavn", + ["debug_xPlayer_get_last_name"] = "Returnerer dit efternavn", + ["debug_xPlayer_get_full_name"] = "Returnerer dit fulde navn", + ["debug_xPlayer_get_sex"] = "Returnerer dit køn", + ["debug_xPlayer_get_dob"] = "Returnerer din fødselsdato", + ["debug_xPlayer_get_height"] = "Giver din højde tilbage", + ["error_debug_xPlayer_get_first_name"] = "Der opstod et problem med at få dit fornavn.", + ["error_debug_xPlayer_get_last_name"] = "Der opstod et problem med at få dit efternavn.", + ["error_debug_xPlayer_get_full_name"] = "Der opstod et problem under indhentning af dit fulde navn.", + ["error_debug_xPlayer_get_sex"] = "Der var et problem med at få dit sex.", + ["error_debug_xPlayer_get_dob"] = "Der var et problem med at få din fødselsdato.", + ["error_debug_xPlayer_get_height"] = "Der var et problem med at få din højde.", + ["return_debug_xPlayer_get_first_name"] = "Fornavn: %s", + ["return_debug_xPlayer_get_last_name"] = "Efternavn: %s", + ["return_debug_xPlayer_get_full_name"] = "Fulde Navn: %s", + ["return_debug_xPlayer_get_sex"] = "Køn: %s", + ["return_debug_xPlayer_get_dob"] = "Fødselsdato: %s", + ["return_debug_xPlayer_get_height"] = "Højde: %s Tommer", + ["data_incorrect"] = "Ugyldige data. Prøv venligst igen.", + ["invalid_format"] = "Ugyldigt dataformat. Prøv venligst igen.", + ["no_identifier"] = "[ESX Identitet]\nDer var et problem under indlæsning af din karakter!\nFejlkode: identifikator mangler\n\nDette skyldes, at din identifikator mangler. Venligst vend tilbage senere eller rapporter dette problem til serverejeren.", + ["missing_identity"] = "[ESX Identitet]\nDer var et problem med at indlæse din karakter!\nFejlkode: identitet mangler\n\nDet ser ud til, at din identitet mangler, prøv at oprette forbindelse igen.", + ["deleted_identity"] = "Tegn slettet. Tilmeld dig igen for at oprette en ny karakter.", + ["already_registered"] = "Du har allerede tilmeldt dig.", + ["invalid_firstname_format"] = "Ugyldigt format (fornavn): Prøv venligst igen.", + ["invalid_lastname_format"] = "Ugyldigt format (efternavn): Prøv igen.", + ["invalid_dob_format"] = "Ugyldigt format (DOB): Prøv venligst igen.", + ["invalid_sex_format"] = "Ugyldigt format (køn): Prøv venligst igen.", + ["invalid_height_format"] = "Ugyldigt format (højde): Prøv venligst igen.", +} diff --git a/[core]/esx_identity/locales/es.lua b/[core]/esx_identity/locales/es.lua index 018ee8a2..d6385eac 100644 --- a/[core]/esx_identity/locales/es.lua +++ b/[core]/esx_identity/locales/es.lua @@ -1,38 +1,38 @@ Locales["es"] = { -["show_active_character"] = "Mostrar personaje actual", -["active_character"] = "Personaje actual: %s", -["error_active_character"] = "Se produjo un error al recuperar tu nombre. Por favor contacta con un administrador", -["delete_character"] = "Elimina tu personaje y crea uno nuevo", -["deleted_character"] = "Tu personaje ha sido eliminado", -["error_delete_character"] = "Se produjo un error al eliminar tu personaje. Por favor contacta con un administrador", -["thank_you_for_registering"] = "Gracias por registrarte. Bienvenido a la ciudad", -["debug_xPlayer_get_first_name"] = "Devuelve tu nombre", -["debug_xPlayer_get_last_name"] = "Devuelve tu apellido", -["debug_xPlayer_get_full_name"] = "Devuelve tu nombre completo", -["debug_xPlayer_get_sex"] = "Devuelve tu sexo", -["debug_xPlayer_get_dob"] = "Devuelve tu fecha de nacimiento", -["debug_xPlayer_get_height"] = "Devuelve tu altura", -["error_debug_xPlayer_get_first_name"] = "Se produjo un error al recuperar tu nombre", -["error_debug_xPlayer_get_last_name"] = "Se produjo un error al recuperar tu apellido", -["error_debug_xPlayer_get_full_name"] = "Se produjo un error al recuperar tu nombre completo", -["error_debug_xPlayer_get_sex"] = "Se produjo un error al recuperar tu sexo", -["error_debug_xPlayer_get_dob"] = "Se produjo un error al recuperar tu fecha de nacimiento", -["error_debug_xPlayer_get_height"] = "Se produjo un error al recuperar tu altura", -["return_debug_xPlayer_get_first_name"] = "Nombre: %s", -["return_debug_xPlayer_get_last_name"] = "Apellido: %s", -["return_debug_xPlayer_get_full_name"] = "Nombre completo: %s", -["return_debug_xPlayer_get_sex"] = "Sexo: %s", -["return_debug_xPlayer_get_dob"] = "Fecha de nacimiento: %s", -["return_debug_xPlayer_get_height"] = "Altura: %s centímetros", -["data_incorrect"] = "Datos introducidos de forma incorrecta. Inténtalo de nuevo", -["invalid_format"] = "Datos con formato incorrecto. Inténtalo de nuevo", -["no_identifier"] = "¡Se ha producido un error al cargar tu personaje!\nCódigo de error: identifier-missing\n\nSe desconoce la causa de este error, no se pudo encontrar su identificador. Intentalo más tarde o informa de este problema al equipo administrativo del servidor", -["missing_identity"] = "¡Se ha producido un error al cargar tu personaje!\nCódigo de error: identity-missing\n\nParece que falta su identidad, intenta conectarte nuevamente", -["deleted_identity"] = "Tu personaje ha sido borrado. Vuelva a iniciar sesión para crear un nuevo personaje", -["already_registered"] = "Ya estás registrado.", -["invalid_firstname_format"] = "Formato Inválido (Nombre): Inténtalo de nuevo.", -["invalid_lastname_format"] = "Formato Inválido (Apellido): Inténtalo de nuevo.", -["invalid_dob_format"] = "Formato Inválido (Fec. Nac.): Inténtalo de nuevo.", -["invalid_sex_format"] = "Formato Inválido (Sexo): Inténtalo de nuevo.", -["invalid_height_format"] = "Formato Inválido (Altura): Inténtalo de nuevo.", + ["show_active_character"] = "Mostrar personaje actual", + ["active_character"] = "Personaje actual: %s", + ["error_active_character"] = "Se produjo un error al recuperar tu nombre. Por favor contacta con un administrador", + ["delete_character"] = "Elimina tu personaje y crea uno nuevo", + ["deleted_character"] = "Tu personaje ha sido eliminado", + ["error_delete_character"] = "Se produjo un error al eliminar tu personaje. Por favor contacta con un administrador", + ["thank_you_for_registering"] = "Gracias por registrarte. Bienvenido a la ciudad", + ["debug_xPlayer_get_first_name"] = "Devuelve tu nombre", + ["debug_xPlayer_get_last_name"] = "Devuelve tu apellido", + ["debug_xPlayer_get_full_name"] = "Devuelve tu nombre completo", + ["debug_xPlayer_get_sex"] = "Devuelve tu sexo", + ["debug_xPlayer_get_dob"] = "Devuelve tu fecha de nacimiento", + ["debug_xPlayer_get_height"] = "Devuelve tu altura", + ["error_debug_xPlayer_get_first_name"] = "Se produjo un error al recuperar tu nombre", + ["error_debug_xPlayer_get_last_name"] = "Se produjo un error al recuperar tu apellido", + ["error_debug_xPlayer_get_full_name"] = "Se produjo un error al recuperar tu nombre completo", + ["error_debug_xPlayer_get_sex"] = "Se produjo un error al recuperar tu sexo", + ["error_debug_xPlayer_get_dob"] = "Se produjo un error al recuperar tu fecha de nacimiento", + ["error_debug_xPlayer_get_height"] = "Se produjo un error al recuperar tu altura", + ["return_debug_xPlayer_get_first_name"] = "Nombre: %s", + ["return_debug_xPlayer_get_last_name"] = "Apellido: %s", + ["return_debug_xPlayer_get_full_name"] = "Nombre completo: %s", + ["return_debug_xPlayer_get_sex"] = "Sexo: %s", + ["return_debug_xPlayer_get_dob"] = "Fecha de nacimiento: %s", + ["return_debug_xPlayer_get_height"] = "Altura: %s centímetros", + ["data_incorrect"] = "Datos introducidos de forma incorrecta. Inténtalo de nuevo", + ["invalid_format"] = "Datos con formato incorrecto. Inténtalo de nuevo", + ["no_identifier"] = "¡Se ha producido un error al cargar tu personaje!\nCódigo de error: identifier-missing\n\nSe desconoce la causa de este error, no se pudo encontrar su identificador. Intentalo más tarde o informa de este problema al equipo administrativo del servidor", + ["missing_identity"] = "¡Se ha producido un error al cargar tu personaje!\nCódigo de error: identity-missing\n\nParece que falta su identidad, intenta conectarte nuevamente", + ["deleted_identity"] = "Tu personaje ha sido borrado. Vuelva a iniciar sesión para crear un nuevo personaje", + ["already_registered"] = "Ya estás registrado.", + ["invalid_firstname_format"] = "Formato Inválido (Nombre): Inténtalo de nuevo.", + ["invalid_lastname_format"] = "Formato Inválido (Apellido): Inténtalo de nuevo.", + ["invalid_dob_format"] = "Formato Inválido (Fec. Nac.): Inténtalo de nuevo.", + ["invalid_sex_format"] = "Formato Inválido (Sexo): Inténtalo de nuevo.", + ["invalid_height_format"] = "Formato Inválido (Altura): Inténtalo de nuevo.", } diff --git a/[core]/esx_identity/locales/fr.lua b/[core]/esx_identity/locales/fr.lua index b35b227d..08c93f41 100644 --- a/[core]/esx_identity/locales/fr.lua +++ b/[core]/esx_identity/locales/fr.lua @@ -1,38 +1,38 @@ Locales["fr"] = { - ["show_active_character"] = "Afficher le personnage actif", - ["active_character"] = "Personnage actif: %s", - ["error_active_character"] = "Une erreur s'est produite lors de l'obtention de vos données.", - ["delete_character"] = "Supprimez votre personnage actuel.", - ["deleted_character"] = "Caractère supprimé", - ["error_delete_character"] = "Un problème est survenu lors de la suppression de votre personnage.", - ["thank_you_for_registering"] = "Inscription réussi. Profitez!", - ["debug_xPlayer_get_first_name"] = "Renvoie votre prénom", - ["debug_xPlayer_get_last_name"] = "Renvoie votre nom de famille", - ["debug_xPlayer_get_full_name"] = "Renvoie votre nom complet", - ["debug_xPlayer_get_sex"] = "Renvoie votre sexe", - ["debug_xPlayer_get_dob"] = "Renvoie votre date de naissance", - ["debug_xPlayer_get_height"] = "Renvoie votre taille", - ["error_debug_xPlayer_get_first_name"] = "Un problème est survenu lors de l'obtention de votre prénom.", - ["error_debug_xPlayer_get_last_name"] = "Un problème est survenu lors de l'obtention de votre nom de famille.", - ["error_debug_xPlayer_get_full_name"] = "Un problème est survenu lors de l'obtention de votre nom complet.", - ["error_debug_xPlayer_get_sex"] = "Il y a eu un problème lors de l'obtention de votre sexe.", - ["error_debug_xPlayer_get_dob"] = "Un problème est survenu lors de l'obtention de votre date de naissance.", - ["error_debug_xPlayer_get_height"] = "Un problème est survenu lors de l'obtention de votre taille.", - ["return_debug_xPlayer_get_first_name"] = "Prénom: %s", - ["return_debug_xPlayer_get_last_name"] = "Nom de famille: %s", - ["return_debug_xPlayer_get_full_name"] = "Nom: %s", - ["return_debug_xPlayer_get_sex"] = "Sexe: %s", - ["return_debug_xPlayer_get_dob"] = "Date de naissance: %s", - ["return_debug_xPlayer_get_height"] = "Hauteur: %s pouces", - ["data_incorrect"] = "Données non valides, veuillez réessayer.", - ["invalid_format"] = "Format de données non valide, veuillez réessayer.", - ["no_identifier"] = "[ESX Identity]\nIl y a eu un problème lors du chargement de votre personnage !\nCode d'erreur : identifiant manquant\n\nCela est dû au fait que votre identifiant est manquant. Veuillez revenir plus tard ou signaler ce problème au propriétaire du serveur.", - ["missing_identity"] = "[ESX Identity]Un problème est survenu lors du chargement de votre personnage !Code d'erreur : identité manquante\n\nIl semble que votre identité soit manquante, essayez de vous reconnecter.", - ["deleted_identity"] = "Personnage supprimé. Veuillez vous réinscrire pour créer un nouveau personnage.", - ["already_registered"] = "Vous êtes déjà inscrit.", - ["invalid_firstname_format"] = "Format non valide (prénom) : veuillez réessayer.", - ["invalid_lastname_format"] = "Format non valide (nom de famille) : veuillez réessayer.", - ["invalid_dob_format"] = "Format non valide (DDN) : veuillez réessayer.", - ["invalid_sex_format"] = "Format non valide (sexe) : veuillez réessayer.", - ["invalid_height_format"] = "Format non valide (hauteur) : veuillez réessayer.", - } + ["show_active_character"] = "Afficher le personnage actif", + ["active_character"] = "Personnage actif: %s", + ["error_active_character"] = "Une erreur s'est produite lors de l'obtention de vos données.", + ["delete_character"] = "Supprimez votre personnage actuel.", + ["deleted_character"] = "Caractère supprimé", + ["error_delete_character"] = "Un problème est survenu lors de la suppression de votre personnage.", + ["thank_you_for_registering"] = "Inscription réussi. Profitez!", + ["debug_xPlayer_get_first_name"] = "Renvoie votre prénom", + ["debug_xPlayer_get_last_name"] = "Renvoie votre nom de famille", + ["debug_xPlayer_get_full_name"] = "Renvoie votre nom complet", + ["debug_xPlayer_get_sex"] = "Renvoie votre sexe", + ["debug_xPlayer_get_dob"] = "Renvoie votre date de naissance", + ["debug_xPlayer_get_height"] = "Renvoie votre taille", + ["error_debug_xPlayer_get_first_name"] = "Un problème est survenu lors de l'obtention de votre prénom.", + ["error_debug_xPlayer_get_last_name"] = "Un problème est survenu lors de l'obtention de votre nom de famille.", + ["error_debug_xPlayer_get_full_name"] = "Un problème est survenu lors de l'obtention de votre nom complet.", + ["error_debug_xPlayer_get_sex"] = "Il y a eu un problème lors de l'obtention de votre sexe.", + ["error_debug_xPlayer_get_dob"] = "Un problème est survenu lors de l'obtention de votre date de naissance.", + ["error_debug_xPlayer_get_height"] = "Un problème est survenu lors de l'obtention de votre taille.", + ["return_debug_xPlayer_get_first_name"] = "Prénom: %s", + ["return_debug_xPlayer_get_last_name"] = "Nom de famille: %s", + ["return_debug_xPlayer_get_full_name"] = "Nom: %s", + ["return_debug_xPlayer_get_sex"] = "Sexe: %s", + ["return_debug_xPlayer_get_dob"] = "Date de naissance: %s", + ["return_debug_xPlayer_get_height"] = "Hauteur: %s pouces", + ["data_incorrect"] = "Données non valides, veuillez réessayer.", + ["invalid_format"] = "Format de données non valide, veuillez réessayer.", + ["no_identifier"] = "[ESX Identity]\nIl y a eu un problème lors du chargement de votre personnage !\nCode d'erreur : identifiant manquant\n\nCela est dû au fait que votre identifiant est manquant. Veuillez revenir plus tard ou signaler ce problème au propriétaire du serveur.", + ["missing_identity"] = "[ESX Identity]Un problème est survenu lors du chargement de votre personnage !Code d'erreur : identité manquante\n\nIl semble que votre identité soit manquante, essayez de vous reconnecter.", + ["deleted_identity"] = "Personnage supprimé. Veuillez vous réinscrire pour créer un nouveau personnage.", + ["already_registered"] = "Vous êtes déjà inscrit.", + ["invalid_firstname_format"] = "Format non valide (prénom) : veuillez réessayer.", + ["invalid_lastname_format"] = "Format non valide (nom de famille) : veuillez réessayer.", + ["invalid_dob_format"] = "Format non valide (DDN) : veuillez réessayer.", + ["invalid_sex_format"] = "Format non valide (sexe) : veuillez réessayer.", + ["invalid_height_format"] = "Format non valide (hauteur) : veuillez réessayer.", +} diff --git a/[core]/esx_identity/locales/pt.lua b/[core]/esx_identity/locales/pt.lua index 0ad97de7..108f8cc2 100644 --- a/[core]/esx_identity/locales/pt.lua +++ b/[core]/esx_identity/locales/pt.lua @@ -1,38 +1,38 @@ Locales["pt"] = { - ["show_active_character"] = "Mostrar personagem ativa", - ["active_character"] = "Personagem ativa: %s", - ["error_active_character"] = "Houve um erro a obter os teus dados.", - ["delete_character"] = "Apagar a tua personagem atual.", - ["deleted_character"] = "Personagem apagada!", - ["error_delete_character"] = "Houve um problema ao apagar a tua personagem.", - ["thank_you_for_registering"] = "Registo concluído. Diverte-te!", - ["debug_xPlayer_get_first_name"] = "Retorna o teu primeiro nome", - ["debug_xPlayer_get_last_name"] = "Retorna o teu último nome", - ["debug_xPlayer_get_full_name"] = "Retorna o teu nome completo", - ["debug_xPlayer_get_sex"] = "Retorna o teu sexo", - ["debug_xPlayer_get_dob"] = "Retorna a tua data de nascimento", - ["debug_xPlayer_get_height"] = "Retorna a tua altura", - ["error_debug_xPlayer_get_first_name"] = "Houve um problema ao obter o teu primeiro nome.", - ["error_debug_xPlayer_get_last_name"] = "Houve um problema ao obter o teu último nome.", - ["error_debug_xPlayer_get_full_name"] = "Houve um problema ao obter o teu nome completo.", - ["error_debug_xPlayer_get_sex"] = "Houve um problema ao obter o teu sexo.", - ["error_debug_xPlayer_get_dob"] = "Houve um problema ao obter a tua data de nascimento.", - ["error_debug_xPlayer_get_height"] = "Houve um problema ao obter a tua altura.", - ["return_debug_xPlayer_get_first_name"] = "Primeiro nome: %s", - ["return_debug_xPlayer_get_last_name"] = "Último nome: %s", - ["return_debug_xPlayer_get_full_name"] = "Nome: %s", - ["return_debug_xPlayer_get_sex"] = "Sexo: %s", - ["return_debug_xPlayer_get_dob"] = "Data de nascimento: %s", - ["return_debug_xPlayer_get_height"] = "Altura: %s cm", - ["data_incorrect"] = "Dados inválidos, tenta novamente.", - ["invalid_format"] = "Formato dos dados inválido, tenta novamente.", - ["no_identifier"] = "[ESX Identity]\nHouve um erro ao carregar a tua personagem!\nCódigo do erro: identifier-missing\n\nEste erro é devido à falta do teu identificador. Porfavor volta mais tarde ou reporta este problema a um Administrador.", - ["missing_identity"] = "[ESX Identity]\nHouve um erro ao carregar a tua personagem!\nCódigo do erro: identity-missing\n\nParece que a tua identidade está em falta, experimenta reentrar no servidor!", - ["deleted_identity"] = "Personagem apagada. Porfavor reentra para criar uma nova personagem.", - ["already_registered"] = "Tu já estás registado.", - ["invalid_firstname_format"] = "Formato inválido (Primeiro nome): Porfavor tenta novamente!", - ["invalid_lastname_format"] = "Formato inválido (Último nome): Porfavor tenta novamente!", - ["invalid_dob_format"] = "Formato inválido (Data de nascimento): Porfavor tenta novamente!", - ["invalid_sex_format"] = "Formato inválido (Sexo): Porfavor tenta novamente!", - ["invalid_height_format"] = "Formato inválido (Altura): Porfavor tenta novamente!", - } + ["show_active_character"] = "Mostrar personagem ativa", + ["active_character"] = "Personagem ativa: %s", + ["error_active_character"] = "Houve um erro a obter os teus dados.", + ["delete_character"] = "Apagar a tua personagem atual.", + ["deleted_character"] = "Personagem apagada!", + ["error_delete_character"] = "Houve um problema ao apagar a tua personagem.", + ["thank_you_for_registering"] = "Registo concluído. Diverte-te!", + ["debug_xPlayer_get_first_name"] = "Retorna o teu primeiro nome", + ["debug_xPlayer_get_last_name"] = "Retorna o teu último nome", + ["debug_xPlayer_get_full_name"] = "Retorna o teu nome completo", + ["debug_xPlayer_get_sex"] = "Retorna o teu sexo", + ["debug_xPlayer_get_dob"] = "Retorna a tua data de nascimento", + ["debug_xPlayer_get_height"] = "Retorna a tua altura", + ["error_debug_xPlayer_get_first_name"] = "Houve um problema ao obter o teu primeiro nome.", + ["error_debug_xPlayer_get_last_name"] = "Houve um problema ao obter o teu último nome.", + ["error_debug_xPlayer_get_full_name"] = "Houve um problema ao obter o teu nome completo.", + ["error_debug_xPlayer_get_sex"] = "Houve um problema ao obter o teu sexo.", + ["error_debug_xPlayer_get_dob"] = "Houve um problema ao obter a tua data de nascimento.", + ["error_debug_xPlayer_get_height"] = "Houve um problema ao obter a tua altura.", + ["return_debug_xPlayer_get_first_name"] = "Primeiro nome: %s", + ["return_debug_xPlayer_get_last_name"] = "Último nome: %s", + ["return_debug_xPlayer_get_full_name"] = "Nome: %s", + ["return_debug_xPlayer_get_sex"] = "Sexo: %s", + ["return_debug_xPlayer_get_dob"] = "Data de nascimento: %s", + ["return_debug_xPlayer_get_height"] = "Altura: %s cm", + ["data_incorrect"] = "Dados inválidos, tenta novamente.", + ["invalid_format"] = "Formato dos dados inválido, tenta novamente.", + ["no_identifier"] = "[ESX Identity]\nHouve um erro ao carregar a tua personagem!\nCódigo do erro: identifier-missing\n\nEste erro é devido à falta do teu identificador. Porfavor volta mais tarde ou reporta este problema a um Administrador.", + ["missing_identity"] = "[ESX Identity]\nHouve um erro ao carregar a tua personagem!\nCódigo do erro: identity-missing\n\nParece que a tua identidade está em falta, experimenta reentrar no servidor!", + ["deleted_identity"] = "Personagem apagada. Porfavor reentra para criar uma nova personagem.", + ["already_registered"] = "Tu já estás registado.", + ["invalid_firstname_format"] = "Formato inválido (Primeiro nome): Porfavor tenta novamente!", + ["invalid_lastname_format"] = "Formato inválido (Último nome): Porfavor tenta novamente!", + ["invalid_dob_format"] = "Formato inválido (Data de nascimento): Porfavor tenta novamente!", + ["invalid_sex_format"] = "Formato inválido (Sexo): Porfavor tenta novamente!", + ["invalid_height_format"] = "Formato inválido (Altura): Porfavor tenta novamente!", +} diff --git a/[core]/esx_identity/locales/sl.lua b/[core]/esx_identity/locales/sl.lua index 2499f7c2..4096ba4a 100644 --- a/[core]/esx_identity/locales/sl.lua +++ b/[core]/esx_identity/locales/sl.lua @@ -1,38 +1,38 @@ Locales["sl"] = { - ["show_active_character"] = "Prikazi aktivni Karakter", - ["active_character"] = "Aktivni Karakter: %s", - ["error_active_character"] = "Pri pridobivanju vasih podatkov je prislo do napake.", - ["delete_character"] = "Izbrisi vas trenutni Karakter.", - ["deleted_character"] = "Karakter izbrisan", - ["error_delete_character"] = "Pri brisanju vasega lika je prislo do tezave.", - ["thank_you_for_registering"] = "Registracija uspesna. Uzivajte!", - ["debug_xPlayer_get_first_name"] = "Vrne vase ime", - ["debug_xPlayer_get_last_name"] = "Vrne vas priimek", - ["debug_xPlayer_get_full_name"] = "Vrne vase polno ime", - ["debug_xPlayer_get_sex"] = "Vrne vas spol", - ["debug_xPlayer_get_dob"] = "Vrne vas DOB", - ["debug_xPlayer_get_height"] = "Vrne vaso visino", - ["error_debug_xPlayer_get_first_name"] = "Pri pridobivanju vasega imena je prislo do tezave.", - ["error_debug_xPlayer_get_last_name"] = "Pri pridobivanju vasega priimka je prislo do tezave.", - ["error_debug_xPlayer_get_full_name"] = "Pri pridobivanju vasega polnega imena je prislo do tezave.", - ["error_debug_xPlayer_get_sex"] = "Pri pridobivanju vasega spola je prislo do tezave.", - ["error_debug_xPlayer_get_dob"] = "Pri pridobivanju vasega datuma rojstva je prislo do tezave.", - ["error_debug_xPlayer_get_height"] = "Pri pridobivanju vase visine je prislo do tezave.", - ["return_debug_xPlayer_get_first_name"] = "Ime: %s", - ["return_debug_xPlayer_get_last_name"] = "Priimek: %s", - ["return_debug_xPlayer_get_full_name"] = "Ime: %s", - ["return_debug_xPlayer_get_sex"] = "Spol: %s", - ["return_debug_xPlayer_get_dob"] = "DOB: %s", - ["return_debug_xPlayer_get_height"] = "Visina: %s palcev", - ["data_incorrect"] = "Neveljavni podatki, poskusite znova.", - ["invalid_format"] = "Neveljavna oblika podatkov, poskusite znova.", - ["no_identifier"] = "[ESX Identiteta]\nPri nalaganju vasega lika je prislo do tezave!\nKoda napake: identifikator-manjka\n\nTo je posledica tega, da manjka vas identifikator. Vrnite se pozneje ali prijavite to tezavo lastniku streznika.", - ["missing_identity"] = "[ESX Identity]\nPri nalaganju vasega lika je prislo do tezave!\nKoda napake: identity-missing\n\nVideti je, da vasa identiteta manjka, poskusite znova vzpostaviti povezavo.", - ["deleted_identity"] = "Karakter izbrisan. Ponovno se pridruzite, da ustvarite nov lik.", - ["already_registered"] = "Registrirali ste se ze.", - ["invalid_firstname_format"] = "Neveljavna oblika (ime): Prosimo, poskusite znova.", - ["invalid_lastname_format"] = "Neveljavna oblika (priimek): Poskusite ponovno.", - ["invalid_dob_format"] = "Neveljavna oblika (DOB): Prosimo, poskusite znova.", - ["invalid_sex_format"] = "Neveljavna oblika (spol): Poskusite ponovno.", - ["invalid_height_format"] = "Neveljavna oblika (visina): Prosimo, poskusite znova.", - } \ No newline at end of file + ["show_active_character"] = "Prikazi aktivni Karakter", + ["active_character"] = "Aktivni Karakter: %s", + ["error_active_character"] = "Pri pridobivanju vasih podatkov je prislo do napake.", + ["delete_character"] = "Izbrisi vas trenutni Karakter.", + ["deleted_character"] = "Karakter izbrisan", + ["error_delete_character"] = "Pri brisanju vasega lika je prislo do tezave.", + ["thank_you_for_registering"] = "Registracija uspesna. Uzivajte!", + ["debug_xPlayer_get_first_name"] = "Vrne vase ime", + ["debug_xPlayer_get_last_name"] = "Vrne vas priimek", + ["debug_xPlayer_get_full_name"] = "Vrne vase polno ime", + ["debug_xPlayer_get_sex"] = "Vrne vas spol", + ["debug_xPlayer_get_dob"] = "Vrne vas DOB", + ["debug_xPlayer_get_height"] = "Vrne vaso visino", + ["error_debug_xPlayer_get_first_name"] = "Pri pridobivanju vasega imena je prislo do tezave.", + ["error_debug_xPlayer_get_last_name"] = "Pri pridobivanju vasega priimka je prislo do tezave.", + ["error_debug_xPlayer_get_full_name"] = "Pri pridobivanju vasega polnega imena je prislo do tezave.", + ["error_debug_xPlayer_get_sex"] = "Pri pridobivanju vasega spola je prislo do tezave.", + ["error_debug_xPlayer_get_dob"] = "Pri pridobivanju vasega datuma rojstva je prislo do tezave.", + ["error_debug_xPlayer_get_height"] = "Pri pridobivanju vase visine je prislo do tezave.", + ["return_debug_xPlayer_get_first_name"] = "Ime: %s", + ["return_debug_xPlayer_get_last_name"] = "Priimek: %s", + ["return_debug_xPlayer_get_full_name"] = "Ime: %s", + ["return_debug_xPlayer_get_sex"] = "Spol: %s", + ["return_debug_xPlayer_get_dob"] = "DOB: %s", + ["return_debug_xPlayer_get_height"] = "Visina: %s palcev", + ["data_incorrect"] = "Neveljavni podatki, poskusite znova.", + ["invalid_format"] = "Neveljavna oblika podatkov, poskusite znova.", + ["no_identifier"] = "[ESX Identiteta]\nPri nalaganju vasega lika je prislo do tezave!\nKoda napake: identifikator-manjka\n\nTo je posledica tega, da manjka vas identifikator. Vrnite se pozneje ali prijavite to tezavo lastniku streznika.", + ["missing_identity"] = "[ESX Identity]\nPri nalaganju vasega lika je prislo do tezave!\nKoda napake: identity-missing\n\nVideti je, da vasa identiteta manjka, poskusite znova vzpostaviti povezavo.", + ["deleted_identity"] = "Karakter izbrisan. Ponovno se pridruzite, da ustvarite nov lik.", + ["already_registered"] = "Registrirali ste se ze.", + ["invalid_firstname_format"] = "Neveljavna oblika (ime): Prosimo, poskusite znova.", + ["invalid_lastname_format"] = "Neveljavna oblika (priimek): Poskusite ponovno.", + ["invalid_dob_format"] = "Neveljavna oblika (DOB): Prosimo, poskusite znova.", + ["invalid_sex_format"] = "Neveljavna oblika (spol): Poskusite ponovno.", + ["invalid_height_format"] = "Neveljavna oblika (visina): Prosimo, poskusite znova.", +} diff --git a/[core]/esx_identity/server/main.lua b/[core]/esx_identity/server/main.lua index ec992464..a2884c76 100644 --- a/[core]/esx_identity/server/main.lua +++ b/[core]/esx_identity/server/main.lua @@ -3,16 +3,12 @@ local alreadyRegistered = {} local multichar = ESX.GetConfig().Multichar local function deleteIdentityFromDatabase(xPlayer) - MySQL.query.await( - 'UPDATE users SET firstname = ?, lastname = ?, dateofbirth = ?, sex = ?, height = ?, skin = ? WHERE identifier = ?', - { nil, nil, nil, nil, nil, nil, xPlayer.identifier }) + MySQL.query.await('UPDATE users SET firstname = ?, lastname = ?, dateofbirth = ?, sex = ?, height = ?, skin = ? WHERE identifier = ?', { nil, nil, nil, nil, nil, nil, xPlayer.identifier }) if Config.FullCharDelete then - MySQL.update.await('UPDATE addon_account_data SET money = 0 WHERE account_name IN (?) AND owner = ?', - { { 'bank_savings', 'caution' }, xPlayer.identifier }) + MySQL.update.await('UPDATE addon_account_data SET money = 0 WHERE account_name IN (?) AND owner = ?', { { 'bank_savings', 'caution' }, xPlayer.identifier }) - MySQL.prepare.await('UPDATE datastore_data SET data = ? WHERE name IN (?) AND owner = ?', - { '\'{}\'', { 'user_ears', 'user_glasses', 'user_helmet', 'user_mask' }, xPlayer.identifier }) + MySQL.prepare.await('UPDATE datastore_data SET data = ? WHERE name IN (?) AND owner = ?', { '\'{}\'', { 'user_ears', 'user_glasses', 'user_helmet', 'user_mask' }, xPlayer.identifier }) end end @@ -31,9 +27,7 @@ local function deleteIdentity(xPlayer) end local function saveIdentityToDatabase(identifier, identity) - MySQL.update.await( - 'UPDATE users SET firstname = ?, lastname = ?, dateofbirth = ?, sex = ?, height = ? WHERE identifier = ?', - { identity.firstName, identity.lastName, identity.dateOfBirth, identity.sex, identity.height, identifier }) + MySQL.update.await('UPDATE users SET firstname = ?, lastname = ?, dateofbirth = ?, sex = ?, height = ? WHERE identifier = ?', { identity.firstName, identity.lastName, identity.dateOfBirth, identity.sex, identity.height, identifier }) end local function checkDOBFormat(str) @@ -125,22 +119,21 @@ if Config.UseDeferrals then Wait(100) if identifier then - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', - { identifier }, function(result) - if result then - if result.firstname then - playerIdentity[identifier] = { - firstName = result.firstname, - lastName = result.lastname, - dateOfBirth = result.dateofbirth, - sex = result.sex, - height = result.height - } + MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { identifier }, function(result) + if result then + if result.firstname then + playerIdentity[identifier] = { + firstName = result.firstname, + lastName = result.lastname, + dateOfBirth = result.dateofbirth, + sex = result.sex, + height = result.height + } - deferrals.done() - else - deferrals.presentCard( - [==[{"type": "AdaptiveCard","body":[{"type":"Container","items":[{"type":"ColumnSet", + deferrals.done() + else + deferrals.presentCard( + [==[{"type": "AdaptiveCard","body":[{"type":"Container","items":[{"type":"ColumnSet", "columns":[{"type":"Column","items":[{"type":"Input.Text","placeholder":"First Name", "id":"firstname","maxLength":15},{"type":"Input.Text","placeholder":"Date of Birth (MM/DD/YYYY)", "id":"dateofbirth","maxLength":10}],"width":"stretch"},{"type":"Column","width":"stretch", @@ -150,33 +143,33 @@ if Config.UseDeferrals then {"title":"Female","value":"f"}],"style":"expanded","id":"sex"}]},{"type": "ActionSet", "actions": [{"type":"Action.Submit","title":"Submit"}]}], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json","version":"1.0"}]==], - function(data) - if data.firstname == '' or data.lastname == '' or data.dateofbirth == '' or data.sex == - '' or data.height == '' then - deferrals.done(TranslateCap('data_incorrect')) - else - if checkNameFormat(data.firstname) and checkNameFormat(data.lastname) and - checkDOBFormat(data.dateofbirth) and checkSexFormat(data.sex) and - checkHeightFormat(data.height) then - playerIdentity[identifier] = { - firstName = formatName(data.firstname), - lastName = formatName(data.lastname), - dateOfBirth = data.dateofbirth, - sex = data.sex, - height = tonumber(data.height), - saveToDatabase = true - } + function(data) + if data.firstname == '' or data.lastname == '' or data.dateofbirth == '' or data.sex == + '' or data.height == '' then + deferrals.done(TranslateCap('data_incorrect')) + else + if checkNameFormat(data.firstname) and checkNameFormat(data.lastname) and + checkDOBFormat(data.dateofbirth) and checkSexFormat(data.sex) and + checkHeightFormat(data.height) then + playerIdentity[identifier] = { + firstName = formatName(data.firstname), + lastName = formatName(data.lastname), + dateOfBirth = data.dateofbirth, + sex = data.sex, + height = tonumber(data.height), + saveToDatabase = true + } - deferrals.done() - else - deferrals.done(TranslateCap('invalid_format')) - end + deferrals.done() + else + deferrals.done(TranslateCap('invalid_format')) end - end) - end - else - deferrals.presentCard( - [==[{"type": "AdaptiveCard","body":[{"type":"Container","items":[{"type":"ColumnSet","columns":[{ + end + end) + end + else + deferrals.presentCard( + [==[{"type": "AdaptiveCard","body":[{"type":"Container","items":[{"type":"ColumnSet","columns":[{ "type":"Column","items":[{"type":"Input.Text","placeholder":"First Name","id":"firstname", "maxLength":15},{"type":"Input.Text","placeholder":"Date of Birth (MM/DD/YYYY)","id":"dateofbirth", "maxLength":10}],"width":"stretch"},{"type":"Column","width":"stretch","items":[{"type":"Input.Text", @@ -185,39 +178,39 @@ if Config.UseDeferrals then "placeholder":"Sex","choices":[{"title":"Male","value":"m"},{"title":"Female","value":"f"}], "style":"expanded","id":"sex"}]},{"type": "ActionSet","actions": [{"type":"Action.Submit", "title":"Submit"}]}],"$schema": "http://adaptivecards.io/schemas/adaptive-card.json","version":"1.0"}]==], - function(data) - if data.firstname == '' or data.lastname == '' or data.dateofbirth == '' or data.sex == '' or data.height == '' then - return deferrals.done(TranslateCap('data_incorrect')) - end - if not checkNameFormat(data.firstname) then - return deferrals.done(TranslateCap('invalid_firstname_format')) - end - if not checkNameFormat(data.lastname) then - return deferrals.done(TranslateCap('invalid_lastname_format')) - end - if not checkDOBFormat(data.dateofbirth) then - return deferrals.done(TranslateCap('invalid_dob_format')) - end - if not checkSexFormat(data.sex) then - return deferrals.done(TranslateCap('invalid_sex_format')) - end - if not checkHeightFormat(data.height) then - return deferrals.done(TranslateCap('invalid_height_format')) - end + function(data) + if data.firstname == '' or data.lastname == '' or data.dateofbirth == '' or data.sex == '' or data.height == '' then + return deferrals.done(TranslateCap('data_incorrect')) + end + if not checkNameFormat(data.firstname) then + return deferrals.done(TranslateCap('invalid_firstname_format')) + end + if not checkNameFormat(data.lastname) then + return deferrals.done(TranslateCap('invalid_lastname_format')) + end + if not checkDOBFormat(data.dateofbirth) then + return deferrals.done(TranslateCap('invalid_dob_format')) + end + if not checkSexFormat(data.sex) then + return deferrals.done(TranslateCap('invalid_sex_format')) + end + if not checkHeightFormat(data.height) then + return deferrals.done(TranslateCap('invalid_height_format')) + end - playerIdentity[identifier] = { - firstName = formatName(data.firstname), - lastName = formatName(data.lastname), - dateOfBirth = formatDate(data.dateofbirth), - sex = data.sex, - height = tonumber(data.height), - saveToDatabase = true - } + playerIdentity[identifier] = { + firstName = formatName(data.firstname), + lastName = formatName(data.lastname), + dateOfBirth = formatDate(data.dateofbirth), + sex = data.sex, + height = tonumber(data.height), + saveToDatabase = true + } - deferrals.done() - end) - end - end) + deferrals.done() + end) + end + end) else deferrals.done(TranslateCap('no_identifier')) end @@ -267,29 +260,27 @@ else end local function checkIdentity(xPlayer) - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', - { xPlayer.identifier }, - function(result) - if not result then - return TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) - end - if not result.firstname then - playerIdentity[xPlayer.identifier] = nil - alreadyRegistered[xPlayer.identifier] = false - return TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) - end - - playerIdentity[xPlayer.identifier] = { - firstName = result.firstname, - lastName = result.lastname, - dateOfBirth = result.dateofbirth, - sex = result.sex, - height = result.height - } - - alreadyRegistered[xPlayer.identifier] = true - setIdentity(xPlayer) + MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { xPlayer.identifier }, function(result) + if not result then + return TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) end + if not result.firstname then + playerIdentity[xPlayer.identifier] = nil + alreadyRegistered[xPlayer.identifier] = false + return TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) + end + + playerIdentity[xPlayer.identifier] = { + firstName = result.firstname, + lastName = result.lastname, + dateOfBirth = result.dateofbirth, + sex = result.sex, + height = result.height + } + + alreadyRegistered[xPlayer.identifier] = true + setIdentity(xPlayer) + end ) end @@ -302,32 +293,30 @@ else if not identifier then return deferrals.done(TranslateCap('no_identifier')) end - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', - { identifier }, - function(result) - if not result then - playerIdentity[identifier] = nil - alreadyRegistered[identifier] = false - return deferrals.done() - end - if not result.firstname then - playerIdentity[identifier] = nil - alreadyRegistered[identifier] = false - return deferrals.done() - end + MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { identifier }, function(result) + if not result then + playerIdentity[identifier] = nil + alreadyRegistered[identifier] = false + return deferrals.done() + end + if not result.firstname then + playerIdentity[identifier] = nil + alreadyRegistered[identifier] = false + return deferrals.done() + end - playerIdentity[identifier] = { - firstName = result.firstname, - lastName = result.lastname, - dateOfBirth = result.dateofbirth, - sex = result.sex, - height = result.height - } + playerIdentity[identifier] = { + firstName = result.firstname, + lastName = result.lastname, + dateOfBirth = result.dateofbirth, + sex = result.sex, + height = result.height + } - alreadyRegistered[identifier] = true + alreadyRegistered[identifier] = true - deferrals.done() - end) + deferrals.done() + end) end) AddEventHandler('onResourceStart', function(resource) diff --git a/[core]/esx_loadingscreen/client/client.lua b/[core]/esx_loadingscreen/client/client.lua index 62125c3b..383454ce 100644 --- a/[core]/esx_loadingscreen/client/client.lua +++ b/[core]/esx_loadingscreen/client/client.lua @@ -1,6 +1,6 @@ local ClientLoadESX = false -AddEventHandler("playerSpawned", function () +AddEventHandler("playerSpawned", function() if not ClientLoadESX then ShutdownLoadingScreenNui() ClientLoadESX = true @@ -10,4 +10,4 @@ AddEventHandler("playerSpawned", function () DoScreenFadeIn(2500) end end -end) \ No newline at end of file +end) diff --git a/[core]/esx_loadingscreen/config.lua b/[core]/esx_loadingscreen/config.lua index 67f639b2..302c9a5c 100644 --- a/[core]/esx_loadingscreen/config.lua +++ b/[core]/esx_loadingscreen/config.lua @@ -1,3 +1,3 @@ Config = {} -Config.Fade = true \ No newline at end of file +Config.Fade = true diff --git a/[core]/esx_loadingscreen/fxmanifest.lua b/[core]/esx_loadingscreen/fxmanifest.lua index bf772ad6..d0d9a914 100644 --- a/[core]/esx_loadingscreen/fxmanifest.lua +++ b/[core]/esx_loadingscreen/fxmanifest.lua @@ -1,5 +1,5 @@ game 'common' -version '1.9.4' +version '1.9.5' fx_version 'cerulean' author 'ESX-Framework' lua54 'yes' @@ -11,4 +11,4 @@ loadscreen_manual_shutdown "yes" client_script 'client/client.lua' -files {'index.html', './vid/*.mp4', './vid/*.webm', './js/index.js', './css/index.css'} +files { 'index.html', './vid/*.mp4', './vid/*.webm', './js/index.js', './css/index.css' } diff --git a/[core]/esx_menu_default/client/main.lua b/[core]/esx_menu_default/client/main.lua index f1d37826..b1fbc586 100644 --- a/[core]/esx_menu_default/client/main.lua +++ b/[core]/esx_menu_default/client/main.lua @@ -26,7 +26,7 @@ local function closeMenu(namespace, name) end AddEventHandler('onResourceStop', function(resource) - if GetCurrentResourceName() == resource and OpenedMenus > 0 then + if GetCurrentResourceName() == resource and OpenedMenus > 0 then ESX.UI.Menu.CloseAll() elseif CurrentNameSpace ~= nil and CurrentNameSpace == resource and OpenedMenus > 0 then ESX.UI.Menu.CloseAll() diff --git a/[core]/esx_menu_default/fxmanifest.lua b/[core]/esx_menu_default/fxmanifest.lua index 8bab549c..7b82980b 100644 --- a/[core]/esx_menu_default/fxmanifest.lua +++ b/[core]/esx_menu_default/fxmanifest.lua @@ -4,12 +4,12 @@ game 'gta5' description 'ESX Menu Default' lua54 'yes' -version '1.9.4' +version '1.9.5' -client_scripts {'@es_extended/imports.lua', 'client/main.lua'} +client_scripts { '@es_extended/imports.lua', 'client/main.lua' } -ui_page {'html/ui.html'} +ui_page { 'html/ui.html' } -files {'html/ui.html', 'html/css/app.css', 'html/js/mustache.min.js', 'html/js/app.js'} +files { 'html/ui.html', 'html/css/app.css', 'html/js/mustache.min.js', 'html/js/app.js' } -dependencies {'es_extended'} +dependencies { 'es_extended' } diff --git a/[core]/esx_menu_dialog/client/main.lua b/[core]/esx_menu_dialog/client/main.lua index 2d5bfd0d..d9aab2cc 100644 --- a/[core]/esx_menu_dialog/client/main.lua +++ b/[core]/esx_menu_dialog/client/main.lua @@ -77,4 +77,4 @@ AddEventHandler('esx_menu_dialog:message:menu_change', function(data) if menu.change ~= nil then menu.change(data, menu) end -end) \ No newline at end of file +end) diff --git a/[core]/esx_menu_dialog/fxmanifest.lua b/[core]/esx_menu_dialog/fxmanifest.lua index 55ade7e8..62188ede 100644 --- a/[core]/esx_menu_dialog/fxmanifest.lua +++ b/[core]/esx_menu_dialog/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Menu Dialog' lua54 'yes' -version '1.9.4' +version '1.9.5' client_scripts { '@es_extended/imports.lua', diff --git a/[core]/esx_menu_list/client/main.lua b/[core]/esx_menu_list/client/main.lua index 3ccc1e95..6b21b2e4 100644 --- a/[core]/esx_menu_list/client/main.lua +++ b/[core]/esx_menu_list/client/main.lua @@ -3,7 +3,6 @@ CreateThread(function() local OpenedMenus = {} local function openMenu(namespace, name, data) - OpenedMenus[namespace .. '_' .. name] = true SendNUIMessage({ @@ -13,12 +12,11 @@ CreateThread(function() data = data }) SetTimeout(200, function() - SetNuiFocus(true, true) - end) + SetNuiFocus(true, true) + end) end local function closeMenu(namespace, name) - OpenedMenus[namespace .. '_' .. name] = nil local OpenedMenuCount = 0 @@ -37,7 +35,6 @@ CreateThread(function() if OpenedMenuCount == 0 then SetNuiFocus(false) end - end ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) @@ -59,5 +56,4 @@ CreateThread(function() cb('OK') end) - end) diff --git a/[core]/esx_menu_list/fxmanifest.lua b/[core]/esx_menu_list/fxmanifest.lua index 292f5c81..09340c9b 100644 --- a/[core]/esx_menu_list/fxmanifest.lua +++ b/[core]/esx_menu_list/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Menu List' lua54 'yes' -version '1.9.4' +version '1.9.5' client_scripts { '@es_extended/imports.lua', diff --git a/[core]/esx_multicharacter/client/main.lua b/[core]/esx_multicharacter/client/main.lua index 4e5c5915..572fd8ad 100644 --- a/[core]/esx_multicharacter/client/main.lua +++ b/[core]/esx_multicharacter/client/main.lua @@ -4,11 +4,10 @@ local mp_f_freemode_01 = `mp_f_freemode_01` local SpawnCoords = Config.Spawn[math.random(#Config.Spawn)] if ESX.GetConfig().Multichar then - CreateThread(function() while not ESX.PlayerLoaded do Wait(100) - + if NetworkIsPlayerActive(PlayerId()) then exports.spawnmanager:setAutoSpawn(false) DoScreenFadeOut(0) @@ -22,7 +21,7 @@ if ESX.GetConfig().Multichar then end) local canRelog, cam, spawned = true, nil, nil - local Characters = {} + local Characters = {} RegisterNetEvent('esx_multicharacter:SetupCharacters') AddEventHandler('esx_multicharacter:SetupCharacters', function() @@ -51,7 +50,7 @@ if ESX.GetConfig().Multichar then hidePlayers = true MumbleSetVolumeOverride(PlayerId(), 0.0) CreateThread(function() - local keys = {18, 27, 172, 173, 174, 175, 176, 177, 187, 188, 191, 201, 108, 109} + local keys = { 18, 27, 172, 173, 174, 175, 176, 177, 187, 188, 191, 201, 108, 109 } while hidePlayers do DisableAllControlActions(0) for i = 1, #keys do @@ -118,8 +117,7 @@ if ESX.GetConfig().Multichar then end DoScreenFadeIn(600) end) - repeat Wait(200) until not IsScreenFadedOut() - + repeat Wait(200) until not IsScreenFadedOut() elseif Characters[index] and Characters[index].skin then if Characters[spawned] and Characters[spawned].model then RequestModel(Characters[index].model) @@ -145,11 +143,11 @@ if ESX.GetConfig().Multichar then function CharacterDeleteConfirmation(Characters, slots, SelectedCharacter, value) local elements = { - {title = TranslateCap('char_delete_confirmation'), icon = "fa-solid fa-users", description = TranslateCap('char_delete_confirmation_description'), unselectable = true}, - {title = TranslateCap('char_delete'), icon ="fa-solid fa-xmark", description = TranslateCap('char_delete_yes_description'), action = 'delete', value = value}, - {title = TranslateCap('return'), unselectable = false, icon = "fa-solid fa-arrow-left", description = TranslateCap('char_delete_no_description'), action = "return"} + { title = TranslateCap('char_delete_confirmation'), icon = "fa-solid fa-users", description = TranslateCap('char_delete_confirmation_description'), unselectable = true }, + { title = TranslateCap('char_delete'), icon = "fa-solid fa-xmark", description = TranslateCap('char_delete_yes_description'), action = 'delete', value = value }, + { title = TranslateCap('return'), unselectable = false, icon = "fa-solid fa-arrow-left", description = TranslateCap('char_delete_no_description'), action = "return" } } - + ESX.OpenContext("left", elements, function(_, Action) if Action.action == "delete" then ESX.CloseContext() @@ -162,14 +160,14 @@ if ESX.GetConfig().Multichar then end function CharacterOptions(Characters, slots, SelectedCharacter) - local elements = {{title = TranslateCap('character', Characters[SelectedCharacter.value].firstname .. " ".. Characters[SelectedCharacter.value].lastname),icon = "fa-regular fa-user", unselectable = true}, - {title = TranslateCap('return'), unselectable = false,icon = "fa-solid fa-arrow-left",description = TranslateCap('return_description'), action = "return"}} + local elements = { { title = TranslateCap('character', Characters[SelectedCharacter.value].firstname .. " " .. Characters[SelectedCharacter.value].lastname), icon = "fa-regular fa-user", unselectable = true }, + { title = TranslateCap('return'), unselectable = false, icon = "fa-solid fa-arrow-left", description = TranslateCap('return_description'), action = "return" } } if not Characters[SelectedCharacter.value].disabled then - elements[3] = {title = TranslateCap('char_play'), description = TranslateCap('char_play_description'), icon ="fa-solid fa-play",action = 'play', value = SelectedCharacter.value} + elements[3] = { title = TranslateCap('char_play'), description = TranslateCap('char_play_description'), icon = "fa-solid fa-play", action = 'play', value = SelectedCharacter.value } else - elements[3] = {title = TranslateCap('char_disabled'), value = SelectedCharacter.value, icon ="fa-solid fa-xmark", description = TranslateCap('char_disabled_description'),} + elements[3] = { title = TranslateCap('char_disabled'), value = SelectedCharacter.value, icon = "fa-solid fa-xmark", description = TranslateCap('char_disabled_description'), } end - if Config.CanDelete then elements[4] = {title = TranslateCap('char_delete'),icon ="fa-solid fa-xmark",description = TranslateCap('char_delete_description'), action = 'delete', value = SelectedCharacter.value} end + if Config.CanDelete then elements[4] = { title = TranslateCap('char_delete'), icon = "fa-solid fa-xmark", description = TranslateCap('char_delete_description'), action = 'delete', value = SelectedCharacter.value } end ESX.OpenContext("left", elements, function(_, Action) if Action.action == "play" then SendNUIMessage({ @@ -187,21 +185,21 @@ if ESX.GetConfig().Multichar then function SelectCharacterMenu(Characters, slots) local Character = next(Characters) - local elements = {{title = TranslateCap('select_char') , icon = "fa-solid fa-users", description = TranslateCap('select_char_description') , unselectable = true}} + local elements = { { title = TranslateCap('select_char'), icon = "fa-solid fa-users", description = TranslateCap('select_char_description'), unselectable = true } } for k, v in pairs(Characters) do if not v.model and v.skin then if v.skin.model then v.model = v.skin.model elseif v.skin.sex == 1 then v.model = mp_f_freemode_01 else v.model = mp_m_freemode_01 end end if not spawned then SetupCharacter(Character) end - local label = v.firstname..' '..v.lastname + local label = v.firstname .. ' ' .. v.lastname if Characters[k].disabled then - elements[#elements+1] = {title = label,icon = "fa-regular fa-user", value = v.id} + elements[#elements + 1] = { title = label, icon = "fa-regular fa-user", value = v.id } else - elements[#elements+1] = {title = label,icon = "fa-regular fa-user", value = v.id} + elements[#elements + 1] = { title = label, icon = "fa-regular fa-user", value = v.id } end end if #elements - 1 < slots then - elements[#elements+1] = {title = TranslateCap('create_char'), icon = "fa-solid fa-plus", value = (#elements+1), new = true} + elements[#elements + 1] = { title = TranslateCap('create_char'), icon = "fa-solid fa-plus", value = (#elements + 1), new = true } end ESX.OpenContext("left", elements, function(_, SelectedCharacter) @@ -218,13 +216,13 @@ if ESX.GetConfig().Multichar then TriggerServerEvent('esx_multicharacter:CharacterChosen', slot, true) TriggerEvent('esx_identity:showRegisterIdentity') local playerPed = PlayerPedId() - SetPedAoBlobRendering(playerPed, false) - SetEntityAlpha(playerPed, 0) - SendNUIMessage({ - action = "closeui" - }) + SetPedAoBlobRendering(playerPed, false) + SetEntityAlpha(playerPed, 0) + SendNUIMessage({ + action = "closeui" + }) else - CharacterOptions(Characters,slots, SelectedCharacter) + CharacterOptions(Characters, slots, SelectedCharacter) SetupCharacter(SelectedCharacter.value) local playerPed = PlayerPedId() SetPedAoBlobRendering(playerPed, true) @@ -232,6 +230,7 @@ if ESX.GetConfig().Multichar then end end, nil, false) end + RegisterNetEvent('esx_multicharacter:SetupUI') AddEventHandler('esx_multicharacter:SetupUI', function(data, slots) DoScreenFadeOut(0) @@ -286,7 +285,9 @@ if ESX.GetConfig().Multichar then SetPedAoBlobRendering(playerPed, true) ResetEntityAlpha(playerPed) TriggerEvent('esx_skin:openSaveableMenu', function() - finished = true end, function() finished = true + finished = true + end, function() + finished = true end) end) repeat Wait(200) until finished @@ -331,5 +332,4 @@ if ESX.GetConfig().Multichar then end end) end - end diff --git a/[core]/esx_multicharacter/fxmanifest.lua b/[core]/esx_multicharacter/fxmanifest.lua index 9bf4734c..62cf6896 100644 --- a/[core]/esx_multicharacter/fxmanifest.lua +++ b/[core]/esx_multicharacter/fxmanifest.lua @@ -2,17 +2,17 @@ fx_version 'cerulean' game 'gta5' author 'ESX-Framework - Linden - KASH' description 'Official Multicharacter System For ESX Legacy' -version '1.9.4' +version '1.9.5' lua54 'yes' -dependencies {'es_extended', 'esx_context', 'esx_identity', 'esx_skin'} +dependencies { 'es_extended', 'esx_context', 'esx_identity', 'esx_skin' } -shared_scripts {'@es_extended/imports.lua', '@es_extended/locale.lua', 'locales/*.lua', 'config.lua'} +shared_scripts { '@es_extended/imports.lua', '@es_extended/locale.lua', 'locales/*.lua', 'config.lua' } -server_scripts {'@oxmysql/lib/MySQL.lua', 'server/*.lua'} +server_scripts { '@oxmysql/lib/MySQL.lua', 'server/*.lua' } -client_scripts {'client/*.lua'} +client_scripts { 'client/*.lua' } -ui_page {'html/ui.html'} +ui_page { 'html/ui.html' } -files {'html/ui.html', 'html/css/main.css', 'html/js/app.js', 'html/locales/*.js'} +files { 'html/ui.html', 'html/css/main.css', 'html/js/app.js', 'html/locales/*.js' } diff --git a/[core]/esx_multicharacter/locales/sl.lua b/[core]/esx_multicharacter/locales/sl.lua index aa203105..799a1563 100644 --- a/[core]/esx_multicharacter/locales/sl.lua +++ b/[core]/esx_multicharacter/locales/sl.lua @@ -10,11 +10,11 @@ Locales["sl"] = { ["char_disabled_description"] = "Ta znak je neuporaben.", ["char_delete"] = "Izbriši", ["char_delete_description"] = "Trajno odstrani ta znak.", - ["char_delete_confirmation"] = "Potrditev brisanja", - ["char_delete_confirmation_description"] = "Ali ste prepicani da hocete zbrisati svoj karakter*", - ["char_delete_yes_description"] = "Da", - ["char_delete_no_description"] = "Ne", - ["character"] = "Znak: %s", + ["char_delete_confirmation"] = "Potrditev brisanja", + ["char_delete_confirmation_description"] = "Ali ste prepicani da hocete zbrisati svoj karakter*", + ["char_delete_yes_description"] = "Da", + ["char_delete_no_description"] = "Ne", + ["character"] = "Znak: %s", ["return"] = "Vrni se", ["return_description"] = "Nazaj na izbiro znakov.", ["command_setslots"] = "Nastavi število večznakovnih mest za igralca", @@ -30,4 +30,4 @@ Locales["sl"] = { ["charenabled"] = "Omogočili ste znak #%s od %s", ["chardisabled"] = "Onemogočili ste znak #%s od %s", ["charnotfound"] = "Znak #%s od %s ne obstaja", -} \ No newline at end of file +} diff --git a/[core]/esx_multicharacter/locales/sr.lua b/[core]/esx_multicharacter/locales/sr.lua index e99474ae..261322f7 100644 --- a/[core]/esx_multicharacter/locales/sr.lua +++ b/[core]/esx_multicharacter/locales/sr.lua @@ -30,4 +30,4 @@ Locales["sr"] = { ["charenabled"] = "Dozvolili ste karakter #%s od %s", ["chardisabled"] = "Zabranili ste karakter #%s od %s", ["charnotfound"] = "Karakter #%s od %s ne postoji", -} \ No newline at end of file +} diff --git a/[core]/esx_multicharacter/server/commands.lua b/[core]/esx_multicharacter/server/commands.lua index 10ff74ce..bd35aec4 100644 --- a/[core]/esx_multicharacter/server/commands.lua +++ b/[core]/esx_multicharacter/server/commands.lua @@ -1,13 +1,17 @@ ESX.RegisterCommand('setslots', 'admin', function(xPlayer, args) - MySQL.insert('INSERT INTO `multicharacter_slots` (`identifier`, `slots`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `slots` = VALUES(`slots`)', { - args.identifier, - args.slots, - }) - xPlayer.triggerEvent('esx:showNotification', TranslateCap('slotsadd', args.slots, args.identifier)) -end, true, {help = TranslateCap('command_setslots'), validate = true, arguments = { - {name = 'identifier', help = TranslateCap('command_identifier'), type = 'string'}, - {name = 'slots', help = TranslateCap('command_slots'), type = 'number'} -}}) + MySQL.insert('INSERT INTO `multicharacter_slots` (`identifier`, `slots`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `slots` = VALUES(`slots`)', { + args.identifier, + args.slots, + }) + xPlayer.triggerEvent('esx:showNotification', TranslateCap('slotsadd', args.slots, args.identifier)) +end, true, { + help = TranslateCap('command_setslots'), + validate = true, + arguments = { + { name = 'identifier', help = TranslateCap('command_identifier'), type = 'string' }, + { name = 'slots', help = TranslateCap('command_slots'), type = 'number' } + } +}) ESX.RegisterCommand('remslots', 'admin', function(xPlayer, args) local slots = MySQL.scalar.await('SELECT `slots` FROM `multicharacter_slots` WHERE identifier = ?', { @@ -20,14 +24,17 @@ ESX.RegisterCommand('remslots', 'admin', function(xPlayer, args) }) xPlayer.triggerEvent('esx:showNotification', TranslateCap('slotsrem', args.identifier)) end -end, true, {help = TranslateCap('command_remslots'), validate = true, arguments = { - {name = 'identifier', help = TranslateCap('command_identifier'), type = 'string'} -}}) +end, true, { + help = TranslateCap('command_remslots'), + validate = true, + arguments = { + { name = 'identifier', help = TranslateCap('command_identifier'), type = 'string' } + } +}) ESX.RegisterCommand('enablechar', 'admin', function(xPlayer, args) + local selectedCharacter = 'char' .. args.charslot .. ':' .. args.identifier; - local selectedCharacter = 'char'..args.charslot..':'..args.identifier; - MySQL.update('UPDATE `users` SET `disabled` = 0 WHERE identifier = ?', { selectedCharacter }, function(result) @@ -37,16 +44,18 @@ ESX.RegisterCommand('enablechar', 'admin', function(xPlayer, args) xPlayer.triggerEvent('esx:showNotification', TranslateCap('charnotfound', args.charslot, args.identifier)) end end) - -end, true, {help = TranslateCap('command_enablechar'), validate = true, arguments = { - {name = 'identifier', help = TranslateCap('command_identifier'), type = 'string'}, - {name = 'charslot', help = TranslateCap('command_charslot'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_enablechar'), + validate = true, + arguments = { + { name = 'identifier', help = TranslateCap('command_identifier'), type = 'string' }, + { name = 'charslot', help = TranslateCap('command_charslot'), type = 'number' } + } +}) ESX.RegisterCommand('disablechar', 'admin', function(xPlayer, args) + local selectedCharacter = 'char' .. args.charslot .. ':' .. args.identifier; - local selectedCharacter = 'char'..args.charslot..':'..args.identifier; - MySQL.update('UPDATE `users` SET `disabled` = 1 WHERE identifier = ?', { selectedCharacter }, function(result) @@ -56,12 +65,15 @@ ESX.RegisterCommand('disablechar', 'admin', function(xPlayer, args) xPlayer.triggerEvent('esx:showNotification', TranslateCap('charnotfound', args.charslot, args.identifier)) end end) - -end, true, {help = TranslateCap('command_disablechar'), validate = true, arguments = { - {name = 'identifier', help = TranslateCap('command_identifier'), type = 'string'}, - {name = 'charslot', help = TranslateCap('command_charslot'), type = 'number'} -}}) +end, true, { + help = TranslateCap('command_disablechar'), + validate = true, + arguments = { + { name = 'identifier', help = TranslateCap('command_identifier'), type = 'string' }, + { name = 'charslot', help = TranslateCap('command_charslot'), type = 'number' } + } +}) RegisterCommand('forcelog', function(source) TriggerEvent('esx:playerLogout', source) -end, true) \ No newline at end of file +end, true) diff --git a/[core]/esx_notify/Notify.lua b/[core]/esx_notify/Notify.lua index f1798c72..e2ab2644 100644 --- a/[core]/esx_notify/Notify.lua +++ b/[core]/esx_notify/Notify.lua @@ -4,11 +4,10 @@ local Debug = ESX.GetConfig().EnableDebug ---@param length number the length of the notification ---@param message any the message :D local function Notify(notificatonType, length, message) - if Debug then - print("1 ".. tostring(notificatonType)) - print("2 "..tostring(length)) - print("3 "..message) + print("1 " .. tostring(notificatonType)) + print("2 " .. tostring(length)) + print("3 " .. message) end if type(notificatonType) ~= "string" then @@ -20,9 +19,9 @@ local function Notify(notificatonType, length, message) end if Debug then - print("4 ".. tostring(notificatonType)) - print("5 "..tostring(length)) - print("6 "..message) + print("4 " .. tostring(notificatonType)) + print("5 " .. tostring(length)) + print("6 " .. message) end SendNuiMessage(json.encode({ @@ -56,4 +55,4 @@ if Debug then RegisterCommand("notify3", function() ESX.ShowNotification("You Did something ~r~WRONG~s~!", "error", 3000) end) -end \ No newline at end of file +end diff --git a/[core]/esx_notify/fxmanifest.lua b/[core]/esx_notify/fxmanifest.lua index 62fd6195..a8719b76 100644 --- a/[core]/esx_notify/fxmanifest.lua +++ b/[core]/esx_notify/fxmanifest.lua @@ -1,7 +1,7 @@ fx_version 'adamant' lua54 'yes' game 'gta5' -version '1.9.4' +version '1.9.5' author 'ESX-Framework' description 'Official NUI Notification system for ESX' diff --git a/[core]/esx_progressbar/Progress.lua b/[core]/esx_progressbar/Progress.lua index ab11bd24..abcffec7 100644 --- a/[core]/esx_progressbar/Progress.lua +++ b/[core]/esx_progressbar/Progress.lua @@ -1,6 +1,6 @@ local CurrentProgress = nil -local function Progressbar(message,length,Options) +local function Progressbar(message, length, Options) if CurrentProgress then return false end @@ -8,7 +8,7 @@ local function Progressbar(message,length,Options) if CurrentProgress.animation then if CurrentProgress.animation.type == "anim" then ESX.Streaming.RequestAnimDict(CurrentProgress.animation.dict, function() - TaskPlayAnim(ESX.PlayerData.ped, CurrentProgress.animation.dict, CurrentProgress.animation.lib, 1.0, 1.0, length, 1, 1.0, false,false,false) + TaskPlayAnim(ESX.PlayerData.ped, CurrentProgress.animation.dict, CurrentProgress.animation.lib, 1.0, 1.0, length, 1, 1.0, false, false, false) RemoveAnimDict(CurrentProgress.animation.dict) end) elseif CurrentProgress.animation.type == "Scenario" then diff --git a/[core]/esx_progressbar/fxmanifest.lua b/[core]/esx_progressbar/fxmanifest.lua index 0939b36f..5982fb01 100644 --- a/[core]/esx_progressbar/fxmanifest.lua +++ b/[core]/esx_progressbar/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'adamant' game 'gta5' author 'ESX-Framework' lua54 'yes' -version '1.9.4' +version '1.9.5' description 'ESX Progressbar' client_scripts { 'Progress.lua' } diff --git a/[core]/esx_skin/client/main.lua b/[core]/esx_skin/client/main.lua index de5b919f..572692a7 100644 --- a/[core]/esx_skin/client/main.lua +++ b/[core]/esx_skin/client/main.lua @@ -23,7 +23,7 @@ function OpenMenu(submitCb, cancelCb, restrict) for i = 1, #components, 1 do local found = false - for j=1, #restrict, 1 do + for j = 1, #restrict, 1 do if components[i].name == restrict[j] then found = true end @@ -49,7 +49,7 @@ function OpenMenu(submitCb, cancelCb, restrict) value = value, min = _components[i].min, textureof = _components[i].textureof, - zoomOffset= _components[i].zoomOffset, + zoomOffset = _components[i].zoomOffset, camOffset = _components[i].camOffset, type = 'slider' } @@ -112,7 +112,7 @@ function OpenMenu(submitCb, cancelCb, restrict) newData.value = 0 end - menu.update({name = elements[i].name}, newData) + menu.update({ name = elements[i].name }, newData) end menu.refresh() @@ -161,16 +161,16 @@ CreateThread(function() DisableControlAction(0, 25, true) -- Input Aim DisableControlAction(0, 24, true) -- Input Attack - local playerPed = PlayerPedId() - local coords = GetEntityCoords(playerPed) + local playerPed = PlayerPedId() + local coords = GetEntityCoords(playerPed) - local angle = heading * math.pi / 180.0 - local theta = { + local angle = heading * math.pi / 180.0 + local theta = { x = math.cos(angle), y = math.sin(angle) } - local pos = { + local pos = { x = coords.x + (zoomOffset * theta.x), y = coords.y + (zoomOffset * theta.y) } @@ -224,7 +224,7 @@ CreateThread(function() heading = angle + 0.0 end - Wait(sleep) + Wait(sleep) end end) @@ -242,7 +242,6 @@ function OpenSaveableMenu(submitCb, cancelCb, restrict) submitCb(data, menu) end end) - end, cancelCb, restrict) end @@ -260,7 +259,7 @@ AddEventHandler('esx_skin:playerRegistered', function() if firstSpawn then ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin) if skin == nil then - TriggerEvent('skinchanger:loadSkin', {sex = 0}, OpenSaveableMenu) + TriggerEvent('skinchanger:loadSkin', { sex = 0 }, OpenSaveableMenu) Wait(100) else TriggerEvent('skinchanger:loadSkin', skin) diff --git a/[core]/esx_skin/fxmanifest.lua b/[core]/esx_skin/fxmanifest.lua index 58e5386c..2af52b09 100644 --- a/[core]/esx_skin/fxmanifest.lua +++ b/[core]/esx_skin/fxmanifest.lua @@ -4,7 +4,7 @@ game 'gta5' description 'ESX Skin' -version '1.9.4' +version '1.9.5' lua54 'yes' shared_script '@es_extended/imports.lua' diff --git a/[core]/esx_skin/locales/da.lua b/[core]/esx_skin/locales/da.lua index 3a1963a8..5d8c452f 100644 --- a/[core]/esx_skin/locales/da.lua +++ b/[core]/esx_skin/locales/da.lua @@ -3,4 +3,4 @@ Locales["da"] = { ["use_rotate_view"] = "brug ~INPUT_FRONTEND_LS~ og ~INPUT_CHARACTER_WHEEL~ for at dreje kameraet.", ["skin"] = "skift udseende", ["saveskin"] = "gem udseende til en fil", -} \ No newline at end of file +} diff --git a/[core]/esx_skin/locales/pt.lua b/[core]/esx_skin/locales/pt.lua index f35017f7..fdf5a8f7 100644 --- a/[core]/esx_skin/locales/pt.lua +++ b/[core]/esx_skin/locales/pt.lua @@ -1,6 +1,6 @@ Locales["pt"] = { - ["skin_menu"] = "Menu de Skin", - ["use_rotate_view"] = "Usa ~INPUT_FRONTEND_LS~ e ~INPUT_CHARACTER_WHEEL~ para rodar a câmara.", - ["skin"] = "alterar skin", - ["saveskin"] = "salvar a skin num ficheiro", - } + ["skin_menu"] = "Menu de Skin", + ["use_rotate_view"] = "Usa ~INPUT_FRONTEND_LS~ e ~INPUT_CHARACTER_WHEEL~ para rodar a câmara.", + ["skin"] = "alterar skin", + ["saveskin"] = "salvar a skin num ficheiro", +} diff --git a/[core]/esx_skin/locales/zh-cn.lua b/[core]/esx_skin/locales/zh-cn.lua index 858fce10..49d2f09e 100644 --- a/[core]/esx_skin/locales/zh-cn.lua +++ b/[core]/esx_skin/locales/zh-cn.lua @@ -1,6 +1,6 @@ Locales["zh-cn"] = { - ["skin_menu"] = "皮肤选单", - ["use_rotate_view"] = "使用 ~INPUT_FRONTEND_LS~ 和 ~INPUT_CHARACTER_WHEEL~ 旋转镜头视角.", - ["skin"] = "更换皮肤数据", - ["saveskin"] = "保存皮肤数据", - } + ["skin_menu"] = "皮肤选单", + ["use_rotate_view"] = "使用 ~INPUT_FRONTEND_LS~ 和 ~INPUT_CHARACTER_WHEEL~ 旋转镜头视角.", + ["skin"] = "更换皮肤数据", + ["saveskin"] = "保存皮肤数据", +} diff --git a/[core]/esx_skin/server/main.lua b/[core]/esx_skin/server/main.lua index 29d3da28..7528c8c2 100644 --- a/[core]/esx_skin/server/main.lua +++ b/[core]/esx_skin/server/main.lua @@ -21,18 +21,18 @@ end) RegisterServerEvent('esx_skin:setWeight') AddEventHandler('esx_skin:setWeight', function(skin) - local xPlayer = ESX.GetPlayerFromId(source) + local xPlayer = ESX.GetPlayerFromId(source) - if not ESX.GetConfig().OxInventory then - local defaultMaxWeight = ESX.GetConfig().MaxWeight - local backpackModifier = Config.BackpackWeight[skin.bags_1] + if not ESX.GetConfig().OxInventory then + local defaultMaxWeight = ESX.GetConfig().MaxWeight + local backpackModifier = Config.BackpackWeight[skin.bags_1] - if backpackModifier then - xPlayer.setMaxWeight(defaultMaxWeight + backpackModifier) - else - xPlayer.setMaxWeight(defaultMaxWeight) - end - end + if backpackModifier then + xPlayer.setMaxWeight(defaultMaxWeight + backpackModifier) + else + xPlayer.setMaxWeight(defaultMaxWeight) + end + end end) RegisterServerEvent('esx_skin:responseSaveSkin') @@ -73,8 +73,8 @@ end) ESX.RegisterCommand('skin', 'admin', function(xPlayer) xPlayer.triggerEvent('esx_skin:openSaveableMenu') -end, false, {help = TranslateCap('skin')}) +end, false, { help = TranslateCap('skin') }) ESX.RegisterCommand('skinsave', 'admin', function(xPlayer) xPlayer.triggerEvent('esx_skin:requestSaveSkin') -end, false, {help = TranslateCap('saveskin')}) +end, false, { help = TranslateCap('saveskin') }) diff --git a/[core]/esx_textui/TextUI.lua b/[core]/esx_textui/TextUI.lua index b70709f9..68aea84e 100644 --- a/[core]/esx_textui/TextUI.lua +++ b/[core]/esx_textui/TextUI.lua @@ -12,8 +12,8 @@ local function TextUI(message, typ) end local function HideUI() - if not isShowing then return end - isShowing = false + if not isShowing then return end + isShowing = false SendNUIMessage({ action = 'hide' }) diff --git a/[core]/esx_textui/fxmanifest.lua b/[core]/esx_textui/fxmanifest.lua index 54925025..3c276e99 100644 --- a/[core]/esx_textui/fxmanifest.lua +++ b/[core]/esx_textui/fxmanifest.lua @@ -1,7 +1,7 @@ fx_version 'adamant' game 'gta5' author 'ESX-Framework' -version '1.9.4' +version '1.9.5' description 'ESX TextUI' lua54 'yes' client_scripts { 'TextUI.lua' } diff --git a/[core]/skinchanger/client/main.lua b/[core]/skinchanger/client/main.lua index ea03d602..d19befd1 100644 --- a/[core]/skinchanger/client/main.lua +++ b/[core]/skinchanger/client/main.lua @@ -178,47 +178,47 @@ function ApplySkin(skin, clothes) SetPedHeadBlendData(playerPed, Character['mom'], Character['dad'], 0, Character['mom'], Character['dad'], 0, face_weight, skin_weight, 0.0, false) - SetPedFaceFeature(playerPed, 0, (Character['nose_1'] / 10) + 0.0) -- Nose Width - SetPedFaceFeature(playerPed, 1, (Character['nose_2'] / 10) + 0.0) -- Nose Peak Height - SetPedFaceFeature(playerPed, 2, (Character['nose_3'] / 10) + 0.0) -- Nose Peak Length - SetPedFaceFeature(playerPed, 3, (Character['nose_4'] / 10) + 0.0) -- Nose Bone Height - SetPedFaceFeature(playerPed, 4, (Character['nose_5'] / 10) + 0.0) -- Nose Peak Lowering - SetPedFaceFeature(playerPed, 5, (Character['nose_6'] / 10) + 0.0) -- Nose Bone Twist - SetPedFaceFeature(playerPed, 6, (Character['eyebrows_5'] / 10) + 0.0) -- Eyebrow height - SetPedFaceFeature(playerPed, 7, (Character['eyebrows_6'] / 10) + 0.0) -- Eyebrow depth - SetPedFaceFeature(playerPed, 8, (Character['cheeks_1'] / 10) + 0.0) -- Cheekbones Height - SetPedFaceFeature(playerPed, 9, (Character['cheeks_2'] / 10) + 0.0) -- Cheekbones Width - SetPedFaceFeature(playerPed, 10, (Character['cheeks_3'] / 10) + 0.0) -- Cheeks Width - SetPedFaceFeature(playerPed, 11, (Character['eye_squint'] / 10) + 0.0) -- Eyes squint - SetPedFaceFeature(playerPed, 12, (Character['lip_thickness'] / 10) + 0.0) -- Lip Fullness - SetPedFaceFeature(playerPed, 13, (Character['jaw_1'] / 10) + 0.0) -- Jaw Bone Width - SetPedFaceFeature(playerPed, 14, (Character['jaw_2'] / 10) + 0.0) -- Jaw Bone Length - SetPedFaceFeature(playerPed, 15, (Character['chin_1'] / 10) + 0.0) -- Chin Height - SetPedFaceFeature(playerPed, 16, (Character['chin_2'] / 10) + 0.0) -- Chin Length - SetPedFaceFeature(playerPed, 17, (Character['chin_3'] / 10) + 0.0) -- Chin Width - SetPedFaceFeature(playerPed, 18, (Character['chin_4'] / 10) + 0.0) -- Chin Hole Size - SetPedFaceFeature(playerPed, 19, (Character['neck_thickness'] / 10) + 0.0) -- Neck Thickness + SetPedFaceFeature(playerPed, 0, (Character['nose_1'] / 10) + 0.0) -- Nose Width + SetPedFaceFeature(playerPed, 1, (Character['nose_2'] / 10) + 0.0) -- Nose Peak Height + SetPedFaceFeature(playerPed, 2, (Character['nose_3'] / 10) + 0.0) -- Nose Peak Length + SetPedFaceFeature(playerPed, 3, (Character['nose_4'] / 10) + 0.0) -- Nose Bone Height + SetPedFaceFeature(playerPed, 4, (Character['nose_5'] / 10) + 0.0) -- Nose Peak Lowering + SetPedFaceFeature(playerPed, 5, (Character['nose_6'] / 10) + 0.0) -- Nose Bone Twist + SetPedFaceFeature(playerPed, 6, (Character['eyebrows_5'] / 10) + 0.0) -- Eyebrow height + SetPedFaceFeature(playerPed, 7, (Character['eyebrows_6'] / 10) + 0.0) -- Eyebrow depth + SetPedFaceFeature(playerPed, 8, (Character['cheeks_1'] / 10) + 0.0) -- Cheekbones Height + SetPedFaceFeature(playerPed, 9, (Character['cheeks_2'] / 10) + 0.0) -- Cheekbones Width + SetPedFaceFeature(playerPed, 10, (Character['cheeks_3'] / 10) + 0.0) -- Cheeks Width + SetPedFaceFeature(playerPed, 11, (Character['eye_squint'] / 10) + 0.0) -- Eyes squint + SetPedFaceFeature(playerPed, 12, (Character['lip_thickness'] / 10) + 0.0) -- Lip Fullness + SetPedFaceFeature(playerPed, 13, (Character['jaw_1'] / 10) + 0.0) -- Jaw Bone Width + SetPedFaceFeature(playerPed, 14, (Character['jaw_2'] / 10) + 0.0) -- Jaw Bone Length + SetPedFaceFeature(playerPed, 15, (Character['chin_1'] / 10) + 0.0) -- Chin Height + SetPedFaceFeature(playerPed, 16, (Character['chin_2'] / 10) + 0.0) -- Chin Length + SetPedFaceFeature(playerPed, 17, (Character['chin_3'] / 10) + 0.0) -- Chin Width + SetPedFaceFeature(playerPed, 18, (Character['chin_4'] / 10) + 0.0) -- Chin Hole Size + SetPedFaceFeature(playerPed, 19, (Character['neck_thickness'] / 10) + 0.0) -- Neck Thickness - SetPedHairColor(playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color - SetPedHeadOverlay(playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity - SetPedHeadOverlay(playerPed, 0, Character['blemishes_1'], (Character['blemishes_2'] / 10) + 0.0) -- Blemishes + opacity - SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity - SetPedEyeColor(playerPed, Character['eye_color']) -- Eyes color - SetPedHeadOverlay(playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity - SetPedHeadOverlay(playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity - SetPedHeadOverlay(playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity - SetPedComponentVariation(playerPed, 2, Character['hair_1'], Character['hair_2'], 2) -- Hair - SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color - SetPedHeadOverlayColor(playerPed, 2, 1, Character['eyebrows_3'], Character['eyebrows_4']) -- Eyebrows Color - SetPedHeadOverlayColor(playerPed, 4, 2, Character['makeup_3'], Character['makeup_4']) -- Makeup Color - SetPedHeadOverlayColor(playerPed, 8, 1, Character['lipstick_3'], Character['lipstick_4']) -- Lipstick Color - SetPedHeadOverlay(playerPed, 5, Character['blush_1'], (Character['blush_2'] / 10) + 0.0) -- Blush + opacity - SetPedHeadOverlayColor(playerPed, 5, 2, Character['blush_3']) -- Blush Color + SetPedHairColor(playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color + SetPedHeadOverlay(playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity + SetPedHeadOverlay(playerPed, 0, Character['blemishes_1'], (Character['blemishes_2'] / 10) + 0.0) -- Blemishes + opacity + SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity + SetPedEyeColor(playerPed, Character['eye_color']) -- Eyes color + SetPedHeadOverlay(playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity + SetPedHeadOverlay(playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity + SetPedHeadOverlay(playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity + SetPedComponentVariation(playerPed, 2, Character['hair_1'], Character['hair_2'], 2) -- Hair + SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color + SetPedHeadOverlayColor(playerPed, 2, 1, Character['eyebrows_3'], Character['eyebrows_4']) -- Eyebrows Color + SetPedHeadOverlayColor(playerPed, 4, 2, Character['makeup_3'], Character['makeup_4']) -- Makeup Color + SetPedHeadOverlayColor(playerPed, 8, 1, Character['lipstick_3'], Character['lipstick_4']) -- Lipstick Color + SetPedHeadOverlay(playerPed, 5, Character['blush_1'], (Character['blush_2'] / 10) + 0.0) -- Blush + opacity + SetPedHeadOverlayColor(playerPed, 5, 2, Character['blush_3']) -- Blush Color SetPedHeadOverlay(playerPed, 6, Character['complexion_1'], (Character['complexion_2'] / 10) + 0.0) -- Complexion + opacity - SetPedHeadOverlay(playerPed, 7, Character['sun_1'], (Character['sun_2'] / 10) + 0.0) -- Sun Damage + opacity - SetPedHeadOverlay(playerPed, 9, Character['moles_1'], (Character['moles_2'] / 10) + 0.0) -- Moles/Freckles + opacity - SetPedHeadOverlay(playerPed, 10, Character['chest_1'], (Character['chest_2'] / 10) + 0.0) -- Chest Hair + opacity - SetPedHeadOverlayColor(playerPed, 10, 1, Character['chest_3']) -- Torso Color + SetPedHeadOverlay(playerPed, 7, Character['sun_1'], (Character['sun_2'] / 10) + 0.0) -- Sun Damage + opacity + SetPedHeadOverlay(playerPed, 9, Character['moles_1'], (Character['moles_2'] / 10) + 0.0) -- Moles/Freckles + opacity + SetPedHeadOverlay(playerPed, 10, Character['chest_1'], (Character['chest_2'] / 10) + 0.0) -- Chest Hair + opacity + SetPedHeadOverlayColor(playerPed, 10, 1, Character['chest_3']) -- Torso Color if Character['bodyb_1'] == -1 then SetPedHeadOverlay(playerPed, 11, 255, (Character['bodyb_2'] / 10) + 0.0) -- Body Blemishes + opacity @@ -238,16 +238,16 @@ function ApplySkin(skin, clothes) SetPedPropIndex(playerPed, 2, Character['ears_1'], Character['ears_2'], 2) -- Ears Accessories end - SetPedComponentVariation(playerPed, 8, Character['tshirt_1'], Character['tshirt_2'], 2) -- Tshirt - SetPedComponentVariation(playerPed, 11, Character['torso_1'], Character['torso_2'], 2) -- torso parts - SetPedComponentVariation(playerPed, 3, Character['arms'], Character['arms_2'], 2) -- Arms + SetPedComponentVariation(playerPed, 8, Character['tshirt_1'], Character['tshirt_2'], 2) -- Tshirt + SetPedComponentVariation(playerPed, 11, Character['torso_1'], Character['torso_2'], 2) -- torso parts + SetPedComponentVariation(playerPed, 3, Character['arms'], Character['arms_2'], 2) -- Arms SetPedComponentVariation(playerPed, 10, Character['decals_1'], Character['decals_2'], 2) -- decals - SetPedComponentVariation(playerPed, 4, Character['pants_1'], Character['pants_2'], 2) -- pants - SetPedComponentVariation(playerPed, 6, Character['shoes_1'], Character['shoes_2'], 2) -- shoes - SetPedComponentVariation(playerPed, 1, Character['mask_1'], Character['mask_2'], 2) -- mask - SetPedComponentVariation(playerPed, 9, Character['bproof_1'], Character['bproof_2'], 2) -- bulletproof - SetPedComponentVariation(playerPed, 7, Character['chain_1'], Character['chain_2'], 2) -- chain - SetPedComponentVariation(playerPed, 5, Character['bags_1'], Character['bags_2'], 2) -- Bag + SetPedComponentVariation(playerPed, 4, Character['pants_1'], Character['pants_2'], 2) -- pants + SetPedComponentVariation(playerPed, 6, Character['shoes_1'], Character['shoes_2'], 2) -- shoes + SetPedComponentVariation(playerPed, 1, Character['mask_1'], Character['mask_2'], 2) -- mask + SetPedComponentVariation(playerPed, 9, Character['bproof_1'], Character['bproof_2'], 2) -- bulletproof + SetPedComponentVariation(playerPed, 7, Character['chain_1'], Character['chain_2'], 2) -- chain + SetPedComponentVariation(playerPed, 5, Character['bags_1'], Character['bags_2'], 2) -- Bag if Character['helmet_1'] == -1 then ClearPedProp(playerPed, 0) diff --git a/[core]/skinchanger/config.lua b/[core]/skinchanger/config.lua index ee7c4f33..02e5715d 100644 --- a/[core]/skinchanger/config.lua +++ b/[core]/skinchanger/config.lua @@ -2,7 +2,7 @@ Config = {} Config.Locale = GetConvar('esx:locale', 'en') -Config.Components = {{ +Config.Components = { { label = TranslateCap('sex'), name = 'sex', value = 0, @@ -702,4 +702,4 @@ Config.Components = {{ min = 0, zoomOffset = 0.4, camOffset = 0.65 -}} +} } diff --git a/[core]/skinchanger/fxmanifest.lua b/[core]/skinchanger/fxmanifest.lua index abd1ca5a..b10e3fb3 100644 --- a/[core]/skinchanger/fxmanifest.lua +++ b/[core]/skinchanger/fxmanifest.lua @@ -6,7 +6,7 @@ lua54 'yes' description 'Official ESX-Legacy resource for handling the Player`s Skin' -version '1.9.4' +version '1.9.5' client_scripts { '@es_extended/locale.lua', diff --git a/[core]/skinchanger/locales/da.lua b/[core]/skinchanger/locales/da.lua index 6a5e85c6..ab6d6c93 100644 --- a/[core]/skinchanger/locales/da.lua +++ b/[core]/skinchanger/locales/da.lua @@ -97,4 +97,4 @@ Locales["da"] = { ["bodyb_size"] = "krops pletter tykkelse", ["bodyb_extra"] = "pletter kropseffekt", ["bodyb_extra_thickness"] = "pletter kropseffekt tykkelse", -} \ No newline at end of file +} diff --git a/[core]/skinchanger/locales/fi.lua b/[core]/skinchanger/locales/fi.lua index 7b902c97..bf3bbe59 100644 --- a/[core]/skinchanger/locales/fi.lua +++ b/[core]/skinchanger/locales/fi.lua @@ -56,7 +56,7 @@ Locales["fi"] = { ["bag"] = "Reput", ["bag_color"] = "Repun väri", ["blemishes"] = "Pisamat", - ["blemishes_size"]= "Pisamien vahvuus", + ["blemishes_size"] = "Pisamien vahvuus", ["ageing"] = "Ikääntyminen", ["ageing_1"] = "Ikääntyminen vahvuus", ["blush"] = "Punastuminen", diff --git a/[core]/skinchanger/locales/nl.lua b/[core]/skinchanger/locales/nl.lua index 432940c0..a371fada 100644 --- a/[core]/skinchanger/locales/nl.lua +++ b/[core]/skinchanger/locales/nl.lua @@ -1,100 +1,100 @@ Locales["nl"] = { - ["sex"] = "geslacht", - ["mom"] = "gezicht moeder", - ["dad"] = "gezicht vader", - ["resemblance"] = "gelijkenis", - ["skin_tone"] = "huidskleur", - ["nose_1"] = "neusbreedte", - ["nose_2"] = "neuspiek hoogte", - ["nose_3"] = "neuspiek lengte", - ["nose_4"] = "neusbeen hoogte", - ["nose_5"] = "neusbeen verlaging", - ["nose_6"] = "neusbeen verdraaiing", - ["cheeks_1"] = "jukbeenderen hoogte", - ["cheeks_2"] = "jukbeenderen breedte", - ["cheeks_3"] = "wangen breedte", - ["lip_fullness"] = "lipvolheid", - ["jaw_bone_width"] = "kaakbeen breedte", - ["jaw_bone_length"] = "kaakbeen lengte", - ["chin_height"] = "kin hoogte", - ["chin_length"] = "kin lengte", - ["chin_width"] = "kin breedte", - ["chin_hole"] = "grootte van het kin-gat", - ["neck_thickness"] = "nek dikte", - ["wrinkles"] = "rimpels", - ["wrinkle_thickness"] = "rimpels dikte", - ["beard_type"] = "baard type", - ["beard_size"] = "baard grootte", - ["beard_color_1"] = "baard kleur 1", - ["beard_color_2"] = "baard kleur 2", - ["hair_1"] = "haar 1", - ["hair_2"] = "haar 2", - ["hair_color_1"] = "haar kleur 1", - ["hair_color_2"] = "haar kleur 2", - ["eye_color"] = "oogkleur", - ["eye_squint"] = "oog scheelte", - ["eyebrow_type"] = "wenkbrauw type", - ["eyebrow_size"] = "wenkbrauw formaat", - ["eyebrow_color_1"] = "wenkbrauw kleur 1", - ["eyebrow_color_2"] = "wenkbrauw kleur 2", - ["eyebrow_depth"] = "wenkbrauw diepte", - ["eyebrow_height"] = "wenkbrauw hoogte", - ["makeup_type"] = "makeup type", - ["makeup_thickness"] = "makeup dikte", - ["makeup_color_1"] = "makeup kleur 1", - ["makeup_color_2"] = "makeup kleur 2", - ["lipstick_type"] = "lippenstift type", - ["lipstick_thickness"] = "lippenstift dikte", - ["lipstick_color_1"] = "lippenstift kleur 1", - ["lipstick_color_2"] = "lippenstift kleur 2", - ["ear_accessories"] = "ooraccessoires", - ["ear_accessories_color"] = "ooraccessoires kleur", - ["tshirt_1"] = "t-shirt 1", - ["tshirt_2"] = "t-shirt 2", - ["torso_1"] = "vest 1", - ["torso_2"] = "vest 2", - ["decals_1"] = "stickers 1", - ["decals_2"] = "stickers 2", - ["arms"] = "armen", - ["arms_2"] = "armen 2", - ["pants_1"] = "broek 1", - ["pants_2"] = "broek 2", - ["shoes_1"] = "shoenen 1", - ["shoes_2"] = "shoenen 2", - ["mask_1"] = "masker 1", - ["mask_2"] = "masker 2", - ["bproof_1"] = "kogelvrij vest 1", - ["bproof_2"] = "kogelvrij vest 2", - ["chain_1"] = "ketting 1", - ["chain_2"] = "ketting 2", - ["helmet_1"] = "helm 1", - ["helmet_2"] = "helm 2", - ["watches_1"] = "horloge 1", - ["watches_2"] = "horloge 2", - ["bracelets_1"] = "armband(en) 1", - ["bracelets_2"] = "armband(en) 2", - ["glasses_1"] = "bril 1", - ["glasses_2"] = "bril 2", - ["bag"] = "rugzak", - ["bag_color"] = "rugzak kleur", - ["blemishes"] = "vlekken", - ["blemishes_size"] = "vlekken dikte", - ["ageing"] = "veroudering", - ["ageing_1"] = "veroudering zichtbaarheid", - ["blush"] = "blozen", - ["blush_1"] = "blozen zichtbaarheid", - ["blush_color"] = "blozen kleur", - ["complexion"] = "gelaatskleur", - ["complexion_1"] = "gelaatskleur 1", - ["sun"] = "zon", - ["sun_1"] = "zon dikte", - ["freckles"] = "sproeten", - ["freckles_1"] = "sproeten dikte", - ["chest_hair"] = "borsthaar", - ["chest_hair_1"] = "borsthaar dikte", - ["chest_color"] = "borsthaar kleur", - ["bodyb"] = "lichaamsvlekken", - ["bodyb_size"] = "lichaamsvlekken zichtbaarheid", - ["bodyb_extra"] = "lichaamsvlekken effect", - ["bodyb_extra_thickness"] = "lichaamsvlekken effect zichtbaarheid", - } + ["sex"] = "geslacht", + ["mom"] = "gezicht moeder", + ["dad"] = "gezicht vader", + ["resemblance"] = "gelijkenis", + ["skin_tone"] = "huidskleur", + ["nose_1"] = "neusbreedte", + ["nose_2"] = "neuspiek hoogte", + ["nose_3"] = "neuspiek lengte", + ["nose_4"] = "neusbeen hoogte", + ["nose_5"] = "neusbeen verlaging", + ["nose_6"] = "neusbeen verdraaiing", + ["cheeks_1"] = "jukbeenderen hoogte", + ["cheeks_2"] = "jukbeenderen breedte", + ["cheeks_3"] = "wangen breedte", + ["lip_fullness"] = "lipvolheid", + ["jaw_bone_width"] = "kaakbeen breedte", + ["jaw_bone_length"] = "kaakbeen lengte", + ["chin_height"] = "kin hoogte", + ["chin_length"] = "kin lengte", + ["chin_width"] = "kin breedte", + ["chin_hole"] = "grootte van het kin-gat", + ["neck_thickness"] = "nek dikte", + ["wrinkles"] = "rimpels", + ["wrinkle_thickness"] = "rimpels dikte", + ["beard_type"] = "baard type", + ["beard_size"] = "baard grootte", + ["beard_color_1"] = "baard kleur 1", + ["beard_color_2"] = "baard kleur 2", + ["hair_1"] = "haar 1", + ["hair_2"] = "haar 2", + ["hair_color_1"] = "haar kleur 1", + ["hair_color_2"] = "haar kleur 2", + ["eye_color"] = "oogkleur", + ["eye_squint"] = "oog scheelte", + ["eyebrow_type"] = "wenkbrauw type", + ["eyebrow_size"] = "wenkbrauw formaat", + ["eyebrow_color_1"] = "wenkbrauw kleur 1", + ["eyebrow_color_2"] = "wenkbrauw kleur 2", + ["eyebrow_depth"] = "wenkbrauw diepte", + ["eyebrow_height"] = "wenkbrauw hoogte", + ["makeup_type"] = "makeup type", + ["makeup_thickness"] = "makeup dikte", + ["makeup_color_1"] = "makeup kleur 1", + ["makeup_color_2"] = "makeup kleur 2", + ["lipstick_type"] = "lippenstift type", + ["lipstick_thickness"] = "lippenstift dikte", + ["lipstick_color_1"] = "lippenstift kleur 1", + ["lipstick_color_2"] = "lippenstift kleur 2", + ["ear_accessories"] = "ooraccessoires", + ["ear_accessories_color"] = "ooraccessoires kleur", + ["tshirt_1"] = "t-shirt 1", + ["tshirt_2"] = "t-shirt 2", + ["torso_1"] = "vest 1", + ["torso_2"] = "vest 2", + ["decals_1"] = "stickers 1", + ["decals_2"] = "stickers 2", + ["arms"] = "armen", + ["arms_2"] = "armen 2", + ["pants_1"] = "broek 1", + ["pants_2"] = "broek 2", + ["shoes_1"] = "shoenen 1", + ["shoes_2"] = "shoenen 2", + ["mask_1"] = "masker 1", + ["mask_2"] = "masker 2", + ["bproof_1"] = "kogelvrij vest 1", + ["bproof_2"] = "kogelvrij vest 2", + ["chain_1"] = "ketting 1", + ["chain_2"] = "ketting 2", + ["helmet_1"] = "helm 1", + ["helmet_2"] = "helm 2", + ["watches_1"] = "horloge 1", + ["watches_2"] = "horloge 2", + ["bracelets_1"] = "armband(en) 1", + ["bracelets_2"] = "armband(en) 2", + ["glasses_1"] = "bril 1", + ["glasses_2"] = "bril 2", + ["bag"] = "rugzak", + ["bag_color"] = "rugzak kleur", + ["blemishes"] = "vlekken", + ["blemishes_size"] = "vlekken dikte", + ["ageing"] = "veroudering", + ["ageing_1"] = "veroudering zichtbaarheid", + ["blush"] = "blozen", + ["blush_1"] = "blozen zichtbaarheid", + ["blush_color"] = "blozen kleur", + ["complexion"] = "gelaatskleur", + ["complexion_1"] = "gelaatskleur 1", + ["sun"] = "zon", + ["sun_1"] = "zon dikte", + ["freckles"] = "sproeten", + ["freckles_1"] = "sproeten dikte", + ["chest_hair"] = "borsthaar", + ["chest_hair_1"] = "borsthaar dikte", + ["chest_color"] = "borsthaar kleur", + ["bodyb"] = "lichaamsvlekken", + ["bodyb_size"] = "lichaamsvlekken zichtbaarheid", + ["bodyb_extra"] = "lichaamsvlekken effect", + ["bodyb_extra_thickness"] = "lichaamsvlekken effect zichtbaarheid", +} diff --git a/[core]/skinchanger/locales/pl.lua b/[core]/skinchanger/locales/pl.lua index cd7f5cb0..b8cf29b1 100644 --- a/[core]/skinchanger/locales/pl.lua +++ b/[core]/skinchanger/locales/pl.lua @@ -80,7 +80,7 @@ Locales["pl"] = { ["bag"] = "torba", ["bag_color"] = "kolor torby", ["blemishes"] = "skazy", - ["blemishes_size"]= "wielkość skaz", + ["blemishes_size"] = "wielkość skaz", ["ageing"] = "starzenie", ["ageing_1"] = "wielkość starzenia", ["blush"] = "rumieńce", diff --git a/[core]/skinchanger/locales/pt.lua b/[core]/skinchanger/locales/pt.lua index 268c2373..32592146 100644 --- a/[core]/skinchanger/locales/pt.lua +++ b/[core]/skinchanger/locales/pt.lua @@ -1,100 +1,100 @@ Locales["pt"] = { - ["sex"] = "sexo", - ["mom"] = "cara da mãe", - ["dad"] = "cara do pai", - ["resemblance"] = "semelhanças", - ["skin_tone"] = "tom de pele", - ["nose_1"] = "largura do nariz", - ["nose_2"] = "altura da ponta do nariz", - ["nose_3"] = "tamanho da ponta do nariz", - ["nose_4"] = "altura do nariz", - ["nose_5"] = "reduzir ponta do nariz", - ["nose_6"] = "torcer o nariz", - ["cheeks_1"] = "altura das maçãs do rosto", - ["cheeks_2"] = "largura das maçãs do rosto", - ["cheeks_3"] = "largura das bochechas", - ["lip_fullness"] = "preenchimento labial", - ["jaw_bone_width"] = "largura do maxilar", - ["jaw_bone_length"] = "comprimento do maxilar", - ["chin_height"] = "altura do queixo", - ["chin_length"] = "comprimento do queixo", - ["chin_width"] = "largura do queixo", - ["chin_hole"] = "tamanho do buraco do queixo", - ["neck_thickness"] = "espessura do pescoço", - ["wrinkles"] = "rugas", - ["wrinkle_thickness"] = "espessura das rugas", - ["beard_type"] = "tipo de barba", - ["beard_size"] = "tamanho da barba", - ["beard_color_1"] = "cor da barba 1", - ["beard_color_2"] = "cor da barba 2", - ["hair_1"] = "cabelo 1", - ["hair_2"] = "cabelo 2", - ["hair_color_1"] = "cor do cabelo 1", - ["hair_color_2"] = "cor do cabelo 2", - ["eye_color"] = "cor dos olhos", - ["eye_squint"] = "estrabismo", - ["eyebrow_type"] = "tipo de sobrancelha", - ["eyebrow_size"] = "tamanho da sobrancelha", - ["eyebrow_color_1"] = "cor da sobrancelha 1", - ["eyebrow_color_2"] = "cor da sobrancelha 2", - ["eyebrow_depth"] = "profundidade da sobrancelha", - ["eyebrow_height"] = "altura da sobrancelha", - ["makeup_type"] = "tipo de maquiagem", - ["makeup_thickness"] = "espessura da maquiagem", - ["makeup_color_1"] = "cor da maquiagem 1", - ["makeup_color_2"] = "cor da maquiagem 2", - ["lipstick_type"] = "tipo de batom", - ["lipstick_thickness"] = "espessura do batom", - ["lipstick_color_1"] = "cor do batom 1", - ["lipstick_color_2"] = "cor do batom 2", - ["ear_accessories"] = "acessórios de ouvido", - ["ear_accessories_color"] = "cor dos acessórios de ouvido", - ["tshirt_1"] = "t-Shirt 1", - ["tshirt_2"] = "t-Shirt 2", - ["torso_1"] = "casaco 1", - ["torso_2"] = "casaco 2", - ["decals_1"] = "autocolantes 1", - ["decals_2"] = "autocolantes 2", - ["arms"] = "braços", - ["arms_2"] = "braços 2", - ["pants_1"] = "calças 1", - ["pants_2"] = "calças 2", - ["shoes_1"] = "sapatos 1", - ["shoes_2"] = "sapatos 2", - ["mask_1"] = "máscara 1", - ["mask_2"] = "máscara 2", - ["bproof_1"] = "colete 1", - ["bproof_2"] = "colete 2", - ["chain_1"] = "colar 1", - ["chain_2"] = "colar 2", - ["helmet_1"] = "capacete 1", - ["helmet_2"] = "capacete 2", - ["watches_1"] = "relógio 1", - ["watches_2"] = "relógio 2", - ["bracelets_1"] = "pulseiras 1", - ["bracelets_2"] = "pulseiras 2", - ["glasses_1"] = "óculos 1", - ["glasses_2"] = "óculos 2", - ["bag"] = "mochila", - ["bag_color"] = "cor da mochila", - ["blemishes"] = "manchas", - ["blemishes_size"] = "espessura de manchas", - ["ageing"] = "envelhecimento", - ["ageing_1"] = "espessura de envelhecimento", - ["blush"] = "corar", - ["blush_1"] = "espessura do blush", - ["blush_color"] = "cor de blush", - ["complexion"] = "aparência", - ["complexion_1"] = "aparência 2", - ["sun"] = "sol", - ["sun_1"] = "espessura do sol", - ["freckles"] = "sardas", - ["freckles_1"] = "espessura das sardas", - ["chest_hair"] = "pelos no peito", - ["chest_hair_1"] = "espessura dos pelos do peito", - ["chest_color"] = "cor dos pelos dos peitos", - ["bodyb"] = "manchas no corpo", - ["bodyb_size"] = "espessura das manchas no corpo", - ["bodyb_extra"] = "extra das manchas no corpo", - ["bodyb_extra_thickness"] = "cor do extra das manchas no corpo", - } + ["sex"] = "sexo", + ["mom"] = "cara da mãe", + ["dad"] = "cara do pai", + ["resemblance"] = "semelhanças", + ["skin_tone"] = "tom de pele", + ["nose_1"] = "largura do nariz", + ["nose_2"] = "altura da ponta do nariz", + ["nose_3"] = "tamanho da ponta do nariz", + ["nose_4"] = "altura do nariz", + ["nose_5"] = "reduzir ponta do nariz", + ["nose_6"] = "torcer o nariz", + ["cheeks_1"] = "altura das maçãs do rosto", + ["cheeks_2"] = "largura das maçãs do rosto", + ["cheeks_3"] = "largura das bochechas", + ["lip_fullness"] = "preenchimento labial", + ["jaw_bone_width"] = "largura do maxilar", + ["jaw_bone_length"] = "comprimento do maxilar", + ["chin_height"] = "altura do queixo", + ["chin_length"] = "comprimento do queixo", + ["chin_width"] = "largura do queixo", + ["chin_hole"] = "tamanho do buraco do queixo", + ["neck_thickness"] = "espessura do pescoço", + ["wrinkles"] = "rugas", + ["wrinkle_thickness"] = "espessura das rugas", + ["beard_type"] = "tipo de barba", + ["beard_size"] = "tamanho da barba", + ["beard_color_1"] = "cor da barba 1", + ["beard_color_2"] = "cor da barba 2", + ["hair_1"] = "cabelo 1", + ["hair_2"] = "cabelo 2", + ["hair_color_1"] = "cor do cabelo 1", + ["hair_color_2"] = "cor do cabelo 2", + ["eye_color"] = "cor dos olhos", + ["eye_squint"] = "estrabismo", + ["eyebrow_type"] = "tipo de sobrancelha", + ["eyebrow_size"] = "tamanho da sobrancelha", + ["eyebrow_color_1"] = "cor da sobrancelha 1", + ["eyebrow_color_2"] = "cor da sobrancelha 2", + ["eyebrow_depth"] = "profundidade da sobrancelha", + ["eyebrow_height"] = "altura da sobrancelha", + ["makeup_type"] = "tipo de maquiagem", + ["makeup_thickness"] = "espessura da maquiagem", + ["makeup_color_1"] = "cor da maquiagem 1", + ["makeup_color_2"] = "cor da maquiagem 2", + ["lipstick_type"] = "tipo de batom", + ["lipstick_thickness"] = "espessura do batom", + ["lipstick_color_1"] = "cor do batom 1", + ["lipstick_color_2"] = "cor do batom 2", + ["ear_accessories"] = "acessórios de ouvido", + ["ear_accessories_color"] = "cor dos acessórios de ouvido", + ["tshirt_1"] = "t-Shirt 1", + ["tshirt_2"] = "t-Shirt 2", + ["torso_1"] = "casaco 1", + ["torso_2"] = "casaco 2", + ["decals_1"] = "autocolantes 1", + ["decals_2"] = "autocolantes 2", + ["arms"] = "braços", + ["arms_2"] = "braços 2", + ["pants_1"] = "calças 1", + ["pants_2"] = "calças 2", + ["shoes_1"] = "sapatos 1", + ["shoes_2"] = "sapatos 2", + ["mask_1"] = "máscara 1", + ["mask_2"] = "máscara 2", + ["bproof_1"] = "colete 1", + ["bproof_2"] = "colete 2", + ["chain_1"] = "colar 1", + ["chain_2"] = "colar 2", + ["helmet_1"] = "capacete 1", + ["helmet_2"] = "capacete 2", + ["watches_1"] = "relógio 1", + ["watches_2"] = "relógio 2", + ["bracelets_1"] = "pulseiras 1", + ["bracelets_2"] = "pulseiras 2", + ["glasses_1"] = "óculos 1", + ["glasses_2"] = "óculos 2", + ["bag"] = "mochila", + ["bag_color"] = "cor da mochila", + ["blemishes"] = "manchas", + ["blemishes_size"] = "espessura de manchas", + ["ageing"] = "envelhecimento", + ["ageing_1"] = "espessura de envelhecimento", + ["blush"] = "corar", + ["blush_1"] = "espessura do blush", + ["blush_color"] = "cor de blush", + ["complexion"] = "aparência", + ["complexion_1"] = "aparência 2", + ["sun"] = "sol", + ["sun_1"] = "espessura do sol", + ["freckles"] = "sardas", + ["freckles_1"] = "espessura das sardas", + ["chest_hair"] = "pelos no peito", + ["chest_hair_1"] = "espessura dos pelos do peito", + ["chest_color"] = "cor dos pelos dos peitos", + ["bodyb"] = "manchas no corpo", + ["bodyb_size"] = "espessura das manchas no corpo", + ["bodyb_extra"] = "extra das manchas no corpo", + ["bodyb_extra_thickness"] = "cor do extra das manchas no corpo", +}