diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql index 848c0fa36..308c608c9 100644 --- a/[SQL]/legacy.sql +++ b/[SQL]/legacy.sql @@ -1011,6 +1011,7 @@ CREATE TABLE IF NOT EXISTS `banking` ( `time` bigint(20) DEFAULT NULL, `ID` int(11) NOT NULL AUTO_INCREMENT, `balance` int(11) DEFAULT 0, + `label` varchar(255) DEFAULT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; diff --git a/[core]/cron/server/main.lua b/[core]/cron/server/main.lua index e82df4fef..e38963892 100644 --- a/[core]/cron/server/main.lua +++ b/[core]/cron/server/main.lua @@ -2,49 +2,49 @@ local Jobs = {} local LastTime = nil function RunAt(h, m, cb) - Jobs[#Jobs + 1] = { - h = h, - m = m, - cb = cb - } + Jobs[#Jobs + 1] = { + h = h, + m = m, + cb = cb, + } end function GetUnixTimestamp() - return os.time() + return os.time() end function OnTime(time) - for i = 1, #Jobs, 1 do - local scheduledTimestamp = os.time({ - hour = Jobs[i].h, - minute = Jobs[i].m, - second = 0, -- Assuming tasks run at the start of the minute - day = os.date('%d', time), - month = os.date('%m', time), - year = os.date('%Y', time) - }) - - if time >= scheduledTimestamp and (not LastTime or LastTime < scheduledTimestamp) then - Jobs[i].cb(Jobs[i].h, Jobs[i].m) - end - end + for i = 1, #Jobs, 1 do + local scheduledTimestamp = os.time({ + hour = Jobs[i].h, + minute = Jobs[i].m, + second = 0, -- Assuming tasks run at the start of the minute + day = os.date("%d", time), + month = os.date("%m", time), + year = os.date("%Y", time), + }) + + if time >= scheduledTimestamp and (not LastTime or LastTime < scheduledTimestamp) then + Jobs[i].cb(Jobs[i].h, Jobs[i].m) + end + end end function Tick() - local time = GetUnixTimestamp() + local time = GetUnixTimestamp() - if not LastTime or os.date('%M', time) ~= os.date('%M', LastTime) then - OnTime(time) - LastTime = time - end + if not LastTime or os.date("%M", time) ~= os.date("%M", LastTime) then + OnTime(time) + LastTime = time + end - SetTimeout(60000, Tick) + SetTimeout(60000, Tick) end LastTime = GetUnixTimestamp() Tick() -AddEventHandler('cron:runAt', function(h, m, cb) - RunAt(h, m, cb) +AddEventHandler("cron:runAt", function(h, m, cb) + RunAt(h, m, cb) end) diff --git a/[core]/es_extended/client/common.lua b/[core]/es_extended/client/common.lua index e18f2884b..121de089e 100644 --- a/[core]/es_extended/client/common.lua +++ b/[core]/es_extended/client/common.lua @@ -1,12 +1,10 @@ -exports('getSharedObject', function() - return ESX +exports("getSharedObject", function() + return ESX end) -if GetResourceState('ox_inventory') ~= 'missing' then - Config.OxInventory = true -end +Config.OxInventory = GetResourceState("ox_inventory"):find("start") and true AddEventHandler("esx:getSharedObject", function() - local Invoke = GetInvokingResource() - print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke)) + local Invoke = GetInvokingResource() + print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke)) end) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 63955e737..bb545f4e8 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -25,39 +25,26 @@ function ESX.GetPlayerData() end function ESX.SearchInventory(items, count) - if type(items) == 'string' then - items = { items } - end - - local returnData = {} - local itemCount = #items - - for i = 1, itemCount do - local itemName = items[i] - returnData[itemName] = count and 0 + items = type(items) == "string" and { items } or items - for _, item in pairs(ESX.PlayerData.inventory) do - if item.name == itemName then - if count then - returnData[itemName] = returnData[itemName] + item.count - else - returnData[itemName] = item - end + local data = {} + for i = 1, #items do + for c = 1, #ESX.PlayerData.inventory do + if ESX.PlayerData.inventory[c].name == items[i] then + data[items[i]] = (count and ESX.PlayerData.inventory[c].count) or ESX.PlayerData.inventory[c] end end end - if next(returnData) then - return itemCount == 1 and returnData[items[1]] or returnData - end + return #items == 1 and data[items[1]] or data end function ESX.SetPlayerData(key, val) local current = ESX.PlayerData[key] ESX.PlayerData[key] = val - if key ~= 'inventory' and key ~= 'loadout' then - if type(val) == 'table' or val ~= current then - TriggerEvent('esx:setPlayerData', key, val, current) + if key ~= "inventory" and key ~= "loadout" then + if type(val) == "table" or val ~= current then + TriggerEvent("esx:setPlayerData", key, val, current) end end end @@ -98,8 +85,8 @@ function ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconTyp if saveToBrief == nil then saveToBrief = true end - AddTextEntry('esxAdvancedNotification', msg) - BeginTextCommandThefeedPost('esxAdvancedNotification') + AddTextEntry("esxAdvancedNotification", msg) + BeginTextCommandThefeedPost("esxAdvancedNotification") if hudColorIndex then ThefeedSetNextPostBackgroundColor(hudColorIndex) end @@ -108,24 +95,24 @@ function ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconTyp end function ESX.ShowHelpNotification(msg, thisFrame, beep, duration) - AddTextEntry('esxHelpNotification', msg) + AddTextEntry("esxHelpNotification", msg) if thisFrame then - DisplayHelpTextThisFrame('esxHelpNotification', false) + DisplayHelpTextThisFrame("esxHelpNotification", false) else if beep == nil then beep = true end - BeginTextCommandDisplayHelp('esxHelpNotification') + BeginTextCommandDisplayHelp("esxHelpNotification") EndTextCommandDisplayHelp(0, false, beep, duration or -1) end end function ESX.ShowFloatingHelpNotification(msg, coords) - AddTextEntry('esxFloatingHelpNotification', msg) + AddTextEntry("esxFloatingHelpNotification", msg) SetFloatingHelpTextWorldPosition(1, coords) SetFloatingHelpTextStyle(1, 1, 2, -1, 3, 0) - BeginTextCommandDisplayHelp('esxFloatingHelpNotification') + BeginTextCommandDisplayHelp("esxFloatingHelpNotification") EndTextCommandDisplayHelp(2, false, false, -1) end @@ -170,7 +157,7 @@ end function ESX.UI.Menu.RegisterType(menuType, open, close) ESX.UI.Menu.RegisteredTypes[menuType] = { open = open, - close = close + close = close, } end @@ -191,8 +178,7 @@ function ESX.UI.Menu.Open(menuType, namespace, name, data, submit, cancel, chang for i = 1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then - if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and - ESX.UI.Menu.Opened[i].name == name then + if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then ESX.UI.Menu.Opened[i] = nil end end @@ -259,8 +245,7 @@ end function ESX.UI.Menu.Close(menuType, namespace, name) for i = 1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then - if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and - ESX.UI.Menu.Opened[i].name == name then + if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then ESX.UI.Menu.Opened[i].close() ESX.UI.Menu.Opened[i] = nil end @@ -280,8 +265,7 @@ end function ESX.UI.Menu.GetOpened(menuType, namespace, name) for i = 1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then - if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and - ESX.UI.Menu.Opened[i].name == name then + if ESX.UI.Menu.Opened[i].type == menuType and ESX.UI.Menu.Opened[i].namespace == namespace and ESX.UI.Menu.Opened[i].name == name then return ESX.UI.Menu.Opened[i] end end @@ -298,15 +282,17 @@ end function ESX.UI.ShowInventoryItemNotification(add, item, count) SendNUIMessage({ - action = 'inventoryNotification', + action = "inventoryNotification", add = add, item = item, - count = count + count = count, }) end function ESX.Game.GetPedMugshot(ped, transparent) - if not DoesEntityExist(ped) then return end + if not DoesEntityExist(ped) then + return + end local mugshot = transparent and RegisterPedheadshotTransparent(ped) or RegisterPedheadshot(ped) while not IsPedheadshotReady(mugshot) do @@ -336,34 +322,17 @@ end function ESX.Game.SpawnObject(object, coords, cb, networked) networked = networked == nil and true or networked - if networked then - ESX.TriggerServerCallback('esx:Onesync:SpawnObject', function(NetworkID) - if cb then - local obj = NetworkGetEntityFromNetworkId(NetworkID) - local Tries = 0 - while not DoesEntityExist(obj) do - obj = NetworkGetEntityFromNetworkId(NetworkID) - Wait(0) - Tries = Tries + 1 - if Tries > 250 then - break - end - end - cb(obj) - end - end, object, coords, 0.0) - else - local model = type(object) == 'number' and object or joaat(object) - local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) - CreateThread(function() - ESX.Streaming.RequestModel(model) - - local obj = CreateObject(model, vector.xyz, networked, false, true) - if cb then - cb(obj) - end - end) - end + + local model = type(object) == "number" and object or joaat(object) + local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) + CreateThread(function() + ESX.Streaming.RequestModel(model) + + local obj = CreateObject(model, vector.xyz, networked, false, true) + if cb then + cb(obj) + end + end) end function ESX.Game.SpawnLocalObject(object, coords, cb) @@ -381,7 +350,7 @@ function ESX.Game.DeleteObject(object) end function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) - local model = type(vehicleModel) == 'number' and vehicleModel or joaat(vehicleModel) + local model = type(vehicleModel) == "number" and vehicleModel or joaat(vehicleModel) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) networked = networked == nil and true or networked @@ -389,6 +358,7 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) if not vector or not playerCoords then return end + local dist = #(playerCoords - vector) if dist > 424 then -- Onesync infinity Range (https://docs.fivem.net/docs/scripting-reference/onesync/) local executingResource = GetInvokingResource() or "Unknown" @@ -408,7 +378,7 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) SetVehicleHasBeenOwnedByPlayer(vehicle, true) SetVehicleNeedsToBeHotwired(vehicle, false) SetModelAsNoLongerNeeded(model) - SetVehRadioStation(vehicle, 'OFF') + SetVehRadioStation(vehicle, "OFF") RequestCollisionAtCoord(vector.xyz) while not HasCollisionLoadedAroundEntity(vehicle) do @@ -433,41 +403,42 @@ function ESX.Game.IsVehicleEmpty(vehicle) end function ESX.Game.GetObjects() -- Leave the function for compatibility - return GetGamePool('CObject') + return GetGamePool("CObject") end function ESX.Game.GetPeds(onlyOtherPeds) - local myPed, pool = ESX.PlayerData.ped, GetGamePool('CPed') - - if not onlyOtherPeds then - return pool - end - - local peds = {} - for i = 1, #pool do - if pool[i] ~= myPed then - peds[#peds + 1] = pool[i] + local pool = GetGamePool("CPed") + + if onlyOtherPeds then + local myPed = ESX.PlayerData.ped + for i = 1, #pool do + if pool[i] == myPed then + table.remove(pool, i) + break + end end end - return peds + return pool end function ESX.Game.GetVehicles() -- Leave the function for compatibility - return GetGamePool('CVehicle') + return GetGamePool("CVehicle") end function ESX.Game.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds) local players, myPlayer = {}, PlayerId() + local active = GetActivePlayers() - for _, player in ipairs(GetActivePlayers()) do - local ped = GetPlayerPed(player) + for i = 1, #active do + local currentPlayer = active[i] + local ped = GetPlayerPed(currentPlayer) - if DoesEntityExist(ped) and ((onlyOtherPlayers and player ~= myPlayer) or not onlyOtherPlayers) then + if DoesEntityExist(ped) and ((onlyOtherPlayers and currentPlayer ~= myPlayer) or not onlyOtherPlayers) then if returnKeyValue then - players[player] = ped + players[currentPlayer] = ped else - players[#players + 1] = returnPeds and ped or player + players[#players + 1] = returnPeds and ped or currentPlayer end end end @@ -607,11 +578,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 @@ -620,7 +591,7 @@ function ESX.Game.GetVehicleProperties(vehicle) end end - for windowId = 0, 7 do -- 13 + for windowId = 0, 7 do -- 13 RollUpWindow(vehicle, windowId) --fix when you put the car away with the window down windowsBroken[tostring(windowId)] = not IsVehicleWindowIntact(vehicle, windowId) end @@ -663,8 +634,7 @@ 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, @@ -722,7 +692,7 @@ function ESX.Game.GetVehicleProperties(vehicle) modTank = GetVehicleMod(vehicle, 45), modWindows = GetVehicleMod(vehicle, 46), modLivery = GetVehicleMod(vehicle, 48) == -1 and GetVehicleLivery(vehicle) or GetVehicleMod(vehicle, 48), - modLightbar = GetVehicleMod(vehicle, 49) + modLightbar = GetVehicleMod(vehicle, 49), } end @@ -760,12 +730,10 @@ function ESX.Game.SetVehicleProperties(vehicle, props) SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0) end if props.customPrimaryColor ~= nil then - SetVehicleCustomPrimaryColour(vehicle, props.customPrimaryColor[1], props.customPrimaryColor[2], - props.customPrimaryColor[3]) + SetVehicleCustomPrimaryColour(vehicle, props.customPrimaryColor[1], props.customPrimaryColor[2], props.customPrimaryColor[3]) end if props.customSecondaryColor ~= nil then - SetVehicleCustomSecondaryColour(vehicle, props.customSecondaryColor[1], props.customSecondaryColor[2], - props.customSecondaryColor[3]) + SetVehicleCustomSecondaryColour(vehicle, props.customSecondaryColor[1], props.customSecondaryColor[2], props.customSecondaryColor[3]) end if props.color1 ~= nil then SetVehicleColours(vehicle, props.color1, colorSecondary) @@ -815,8 +783,7 @@ function ESX.Game.SetVehicleProperties(vehicle, props) SetVehicleXenonLightsColor(vehicle, props.xenonColor) end if props.customXenonColor ~= nil then - SetVehicleXenonLightsCustomColor(vehicle, props.customXenonColor[1], props.customXenonColor[2], - props.customXenonColor[3]) + SetVehicleXenonLightsCustomColor(vehicle, props.customXenonColor[1], props.customXenonColor[2], props.customXenonColor[3]) end if props.modSmokeEnabled ~= nil then ToggleVehicleMod(vehicle, 20, true) @@ -995,12 +962,8 @@ function ESX.Game.Utils.DrawText3D(coords, text, size, font) local camCoords = GetFinalRenderedCamCoord() local distance = #(vector - camCoords) - if not size then - size = 1 - end - if not font then - font = 0 - end + size = size or 1 + font = font or 0 local scale = (size / distance) * 2 local fov = (1 / GetGameplayCamFov()) * 100 @@ -1010,7 +973,7 @@ function ESX.Game.Utils.DrawText3D(coords, text, size, font) SetTextFont(font) SetTextProportional(1) SetTextColour(255, 255, 255, 215) - BeginTextCommandDisplayText('STRING') + BeginTextCommandDisplayText("STRING") SetTextCentre(true) AddTextComponentSubstringPlayerName(text) SetDrawOrigin(vector.xyz, 0) @@ -1036,46 +999,47 @@ function ESX.ShowInventory() local playerPed = ESX.PlayerData.ped local elements = { - { unselectable = true, icon = 'fas fa-box' } + { unselectable = true, icon = "fas fa-box" }, } local currentWeight = 0 - for i = 1, #(ESX.PlayerData.accounts) do + for i = 1, #ESX.PlayerData.accounts do if ESX.PlayerData.accounts[i].money > 0 then - local formattedMoney = TranslateCap('locale_currency', ESX.Math.GroupDigits(ESX.PlayerData.accounts[i].money)) - local canDrop = ESX.PlayerData.accounts[i].name ~= 'bank' + local formattedMoney = TranslateCap("locale_currency", ESX.Math.GroupDigits(ESX.PlayerData.accounts[i].money)) + local canDrop = ESX.PlayerData.accounts[i].name ~= "bank" elements[#elements + 1] = { - icon = 'fas fa-money-bill-wave', + icon = "fas fa-money-bill-wave", title = ('%s: %s'):format(ESX.PlayerData.accounts[i].label, formattedMoney), count = ESX.PlayerData.accounts[i].money, - type = 'item_account', + type = "item_account", value = ESX.PlayerData.accounts[i].name, usable = false, rare = false, - canRemove = canDrop + canRemove = canDrop, } end end - for _, v in ipairs(ESX.PlayerData.inventory) do + for i = 1, #ESX.PlayerData.inventory do + local v = ESX.PlayerData.inventory[i] if v.count > 0 then currentWeight = currentWeight + (v.weight * v.count) elements[#elements + 1] = { - icon = 'fas fa-box', - title = ('%s x%s'):format(v.label, v.count), + icon = "fas fa-box", + title = ("%s x%s"):format(v.label, v.count), count = v.count, - type = 'item_standard', + type = "item_standard", value = v.name, usable = v.usable, rare = v.rare, - canRemove = v.canRemove + canRemove = v.canRemove, } end end - elements[1].title = TranslateCap('inventory', currentWeight, Config.MaxWeight) + elements[1].title = TranslateCap("inventory", currentWeight, Config.MaxWeight) for i = 1, #Config.Weapons do local v = Config.Weapons[i] @@ -1085,16 +1049,16 @@ function ESX.ShowInventory() local ammo = GetAmmoInPedWeapon(playerPed, weaponHash) elements[#elements + 1] = { - icon = 'fas fa-gun', - title = v.ammo and ('%s - %s %s'):format(v.label, ammo, v.ammo.label) or v.label, + icon = "fas fa-gun", + title = v.ammo and ("%s - %s %s"):format(v.label, ammo, v.ammo.label) or v.label, count = 1, - type = 'item_weapon', + type = "item_weapon", value = v.name, usable = false, rare = false, ammo = ammo, canGiveAmmo = (v.ammo ~= nil), - canRemove = true + canRemove = true, } end end @@ -1109,10 +1073,10 @@ function ESX.ShowInventory() if element.usable then elements2[#elements2 + 1] = { icon = "fas fa-utensils", - title = TranslateCap('use'), - action = 'use', + title = TranslateCap("use"), + action = "use", type = element.type, - value = element.value + value = element.value, } end @@ -1120,36 +1084,36 @@ function ESX.ShowInventory() if player ~= -1 and distance <= 3.0 then elements2[#elements2 + 1] = { icon = "fas fa-hands", - title = TranslateCap('give'), - action = 'give', + title = TranslateCap("give"), + action = "give", type = element.type, - value = element.value + value = element.value, } end elements2[#elements2 + 1] = { icon = "fas fa-trash", - title = TranslateCap('remove'), - action = 'remove', + title = TranslateCap("remove"), + action = "remove", type = element.type, - value = element.value + value = element.value, } end - if element.type == 'item_weapon' and element.canGiveAmmo and element.ammo > 0 and player ~= -1 and distance <= 3.0 then + if element.type == "item_weapon" and element.canGiveAmmo and element.ammo > 0 and player ~= -1 and distance <= 3.0 then elements2[#elements2 + 1] = { icon = "fas fa-gun", - title = TranslateCap('giveammo'), - action = 'give_ammo', + title = TranslateCap("giveammo"), + action = "give_ammo", type = element.type, - value = element.value + value = element.value, } end elements2[#elements2 + 1] = { icon = "fas fa-arrow-left", - title = TranslateCap('return'), - action = 'return' + title = TranslateCap("return"), + action = "return", } ESX.OpenContext("right", elements2, function(_, element2) @@ -1161,19 +1125,19 @@ 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 players[GetPlayerServerId(playerNearby)] = true end - ESX.TriggerServerCallback('esx:getPlayerNames', function(returnedPlayers) + ESX.TriggerServerCallback("esx:getPlayerNames", function(returnedPlayers) for playerId, playerName in pairs(returnedPlayers) do elements3[#elements3 + 1] = { icon = "fas fa-user", title = playerName, - playerId = playerId + playerId = playerId, } end @@ -1186,32 +1150,32 @@ function ESX.ShowInventory() local selectedPlayerPed = GetPlayerPed(selectedPlayer) if IsPedOnFoot(selectedPlayerPed) and not IsPedFalling(selectedPlayerPed) then - if itemType == 'item_weapon' then - TriggerServerEvent('esx:giveInventoryItem', selectedPlayerId, itemType, item, nil) + if itemType == "item_weapon" then + TriggerServerEvent("esx:giveInventoryItem", selectedPlayerId, itemType, item, nil) 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, _) local quantity = tonumber(menuG.eles[2].inputValue) if quantity and quantity > 0 and element.count >= quantity then - TriggerServerEvent('esx:giveInventoryItem', selectedPlayerId, itemType, item, quantity) + TriggerServerEvent("esx:giveInventoryItem", selectedPlayerId, itemType, item, quantity) ESX.CloseContext() else - ESX.ShowNotification(TranslateCap('amount_invalid')) + ESX.ShowNotification(TranslateCap("amount_invalid")) end end) end else - ESX.ShowNotification(TranslateCap('in_vehicle')) + ESX.ShowNotification(TranslateCap("in_vehicle")) end else - ESX.ShowNotification(TranslateCap('players_nearby')) + ESX.ShowNotification(TranslateCap("players_nearby")) ESX.CloseContext() end end) @@ -1219,20 +1183,20 @@ function ESX.ShowInventory() end elseif element2.action == "remove" then if IsPedOnFoot(playerPed) and not IsPedFalling(playerPed) then - local dict, anim = 'weapons@first_person@aim_rng@generic@projectile@sticky_bomb@', 'plant_floor' + local dict, anim = "weapons@first_person@aim_rng@generic@projectile@sticky_bomb@", "plant_floor" ESX.Streaming.RequestAnimDict(dict) - if itemType == 'item_weapon' then + if itemType == "item_weapon" then ESX.CloseContext() TaskPlayAnim(playerPed, dict, anim, 8.0, 1.0, 1000, 16, 0.0, false, false, false) RemoveAnimDict(dict) Wait(1000) - TriggerServerEvent('esx:removeInventoryItem', itemType, item) + TriggerServerEvent("esx:removeInventoryItem", itemType, 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, _) @@ -1243,16 +1207,16 @@ function ESX.ShowInventory() TaskPlayAnim(playerPed, dict, anim, 8.0, 1.0, 1000, 16, 0.0, false, false, false) RemoveAnimDict(dict) Wait(1000) - TriggerServerEvent('esx:removeInventoryItem', itemType, item, quantity) + TriggerServerEvent("esx:removeInventoryItem", itemType, item, quantity) else - ESX.ShowNotification(TranslateCap('amount_invalid')) + ESX.ShowNotification(TranslateCap("amount_invalid")) end end) end end elseif element2.action == "use" then ESX.CloseContext() - TriggerServerEvent('esx:useItem', item) + TriggerServerEvent("esx:useItem", item) elseif element2.action == "return" then ESX.CloseContext() ESX.ShowInventory() @@ -1265,9 +1229,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, _) @@ -1275,46 +1239,45 @@ function ESX.ShowInventory() if quantity and quantity > 0 then if pedAmmo >= quantity then - TriggerServerEvent('esx:giveInventoryItem', GetPlayerServerId(closestPlayer), 'item_ammo', item, quantity) + TriggerServerEvent("esx:giveInventoryItem", GetPlayerServerId(closestPlayer), "item_ammo", item, quantity) ESX.CloseContext() else - ESX.ShowNotification(TranslateCap('noammo')) + ESX.ShowNotification(TranslateCap("noammo")) end else - ESX.ShowNotification(TranslateCap('amount_invalid')) + ESX.ShowNotification(TranslateCap("amount_invalid")) end end) else - ESX.ShowNotification(TranslateCap('noammo')) + ESX.ShowNotification(TranslateCap("noammo")) end else - ESX.ShowNotification(TranslateCap('players_nearby')) + ESX.ShowNotification(TranslateCap("players_nearby")) end else - ESX.ShowNotification(TranslateCap('in_vehicle')) + ESX.ShowNotification(TranslateCap("in_vehicle")) end end end) end) end -RegisterNetEvent('esx:showNotification') -AddEventHandler('esx:showNotification', function(msg, notifyType, length) +RegisterNetEvent("esx:showNotification") +AddEventHandler("esx:showNotification", function(msg, notifyType, length) ESX.ShowNotification(msg, notifyType, length) end) -RegisterNetEvent('esx:showAdvancedNotification') -AddEventHandler('esx:showAdvancedNotification', - function(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) - ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) - end) +RegisterNetEvent("esx:showAdvancedNotification") +AddEventHandler("esx:showAdvancedNotification", function(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) + ESX.ShowAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) +end) -RegisterNetEvent('esx:showHelpNotification') -AddEventHandler('esx:showHelpNotification', function(msg, thisFrame, beep, duration) +RegisterNetEvent("esx:showHelpNotification") +AddEventHandler("esx:showHelpNotification", function(msg, thisFrame, beep, duration) ESX.ShowHelpNotification(msg, thisFrame, beep, duration) end) -AddEventHandler('onResourceStop', function(resourceName) +AddEventHandler("onResourceStop", function(resourceName) for i = 1, #ESX.UI.Menu.Opened, 1 do if ESX.UI.Menu.Opened[i] then if ESX.UI.Menu.Opened[i].resourceName == resourceName or ESX.UI.Menu.Opened[i].namespace == resourceName then @@ -1326,37 +1289,37 @@ AddEventHandler('onResourceStop', function(resourceName) end) -- Credits to txAdmin for the list. local mismatchedTypes = { - [`airtug`] = "automobile", -- trailer - [`avisa`] = "submarine", -- boat - [`blimp`] = "heli", -- plane - [`blimp2`] = "heli", -- plane - [`blimp3`] = "heli", -- plane - [`caddy`] = "automobile", -- trailer - [`caddy2`] = "automobile", -- trailer - [`caddy3`] = "automobile", -- trailer - [`chimera`] = "automobile", -- bike - [`docktug`] = "automobile", -- trailer - [`forklift`] = "automobile", -- trailer - [`kosatka`] = "submarine", -- boat - [`mower`] = "automobile", -- trailer - [`policeb`] = "bike", -- automobile - [`ripley`] = "automobile", -- trailer - [`rrocket`] = "automobile", -- bike - [`sadler`] = "automobile", -- trailer - [`sadler2`] = "automobile", -- trailer - [`scrap`] = "automobile", -- trailer - [`slamtruck`] = "automobile", -- trailer - [`Stryder`] = "automobile", -- bike - [`submersible`] = "submarine", -- boat - [`submersible2`] = "submarine", -- boat - [`thruster`] = "heli", -- automobile - [`towtruck`] = "automobile", -- trailer - [`towtruck2`] = "automobile", -- trailer - [`tractor`] = "automobile", -- trailer - [`tractor2`] = "automobile", -- trailer - [`tractor3`] = "automobile", -- trailer - [`trailersmall2`] = "trailer", -- automobile - [`utillitruck`] = "automobile", -- trailer + [`airtug`] = "automobile", -- trailer + [`avisa`] = "submarine", -- boat + [`blimp`] = "heli", -- plane + [`blimp2`] = "heli", -- plane + [`blimp3`] = "heli", -- plane + [`caddy`] = "automobile", -- trailer + [`caddy2`] = "automobile", -- trailer + [`caddy3`] = "automobile", -- trailer + [`chimera`] = "automobile", -- bike + [`docktug`] = "automobile", -- trailer + [`forklift`] = "automobile", -- trailer + [`kosatka`] = "submarine", -- boat + [`mower`] = "automobile", -- trailer + [`policeb`] = "bike", -- automobile + [`ripley`] = "automobile", -- trailer + [`rrocket`] = "automobile", -- bike + [`sadler`] = "automobile", -- trailer + [`sadler2`] = "automobile", -- trailer + [`scrap`] = "automobile", -- trailer + [`slamtruck`] = "automobile", -- trailer + [`Stryder`] = "automobile", -- bike + [`submersible`] = "submarine", -- boat + [`submersible2`] = "submarine", -- boat + [`thruster`] = "heli", -- automobile + [`towtruck`] = "automobile", -- trailer + [`towtruck2`] = "automobile", -- trailer + [`tractor`] = "automobile", -- trailer + [`tractor2`] = "automobile", -- trailer + [`tractor3`] = "automobile", -- trailer + [`trailersmall2`] = "trailer", -- automobile + [`utillitruck`] = "automobile", -- trailer [`utillitruck2`] = "automobile", -- trailer [`utillitruck3`] = "automobile", -- trailer } @@ -1364,8 +1327,10 @@ local mismatchedTypes = { ---@param model number|string ---@return string function ESX.GetVehicleType(model) - model = type(model) == 'string' and joaat(model) or model - if not IsModelInCdimage(model) then return end + model = type(model) == "string" and joaat(model) or model + if not IsModelInCdimage(model) then + return + end if mismatchedTypes[model] then return mismatchedTypes[model] end diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 3804cfc10..bbc9528d2 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -1,64 +1,70 @@ local pickups = {} CreateThread(function() - while not Config.Multichar do - Wait(100) - - if NetworkIsPlayerActive(PlayerId()) then - exports.spawnmanager:setAutoSpawn(false) - DoScreenFadeOut(0) - Wait(500) - TriggerServerEvent('esx:onPlayerJoined') - break - end - end + while not Config.Multichar do + Wait(100) + + if NetworkIsPlayerActive(PlayerId()) then + exports.spawnmanager:setAutoSpawn(false) + DoScreenFadeOut(0) + Wait(500) + TriggerServerEvent("esx:onPlayerJoined") + break + end + end end) RegisterNetEvent("esx:requestModel", function(model) - ESX.Streaming.RequestModel(model) + ESX.Streaming.RequestModel(model) end) -RegisterNetEvent('esx:playerLoaded') -AddEventHandler('esx:playerLoaded', function(xPlayer, isNew, skin) - ESX.PlayerData = xPlayer - - if Config.Multichar then - Wait(3000) - else - exports.spawnmanager:spawnPlayer({ - x = ESX.PlayerData.coords.x, - y = ESX.PlayerData.coords.y, - z = ESX.PlayerData.coords.z + 0.25, - heading = ESX.PlayerData.coords.heading, - model = `mp_m_freemode_01`, - skipFade = false - }, function() - TriggerServerEvent('esx:onPlayerSpawn') - TriggerEvent('esx:onPlayerSpawn') - TriggerEvent('esx:restoreLoadout') - - if isNew then - TriggerEvent('skinchanger:loadDefaultModel', skin.sex == 0) - elseif skin then - TriggerEvent('skinchanger:loadSkin', skin) - end - - TriggerEvent('esx:loadingScreenOff') - ShutdownLoadingScreen() - ShutdownLoadingScreenNui() - end) - end - - ESX.PlayerLoaded = true - - while ESX.PlayerData.ped == nil do Wait(20) end - - if Config.EnablePVP then - SetCanAttackFriendly(ESX.PlayerData.ped, true, false) - NetworkSetFriendlyFireOption(true) - end - - local playerId = PlayerId() +RegisterNetEvent("esx:playerLoaded") +AddEventHandler("esx:playerLoaded", function(xPlayer, isNew, skin) + ESX.PlayerData = xPlayer + + if Config.Multichar then + Wait(3000) + else + exports.spawnmanager:spawnPlayer({ + x = ESX.PlayerData.coords.x, + y = ESX.PlayerData.coords.y, + z = ESX.PlayerData.coords.z + 0.25, + heading = ESX.PlayerData.coords.heading, + model = `mp_m_freemode_01`, + skipFade = false, + }, function() + TriggerServerEvent("esx:onPlayerSpawn") + TriggerEvent("esx:onPlayerSpawn") + TriggerEvent("esx:restoreLoadout") + + if isNew then + TriggerEvent("skinchanger:loadDefaultModel", skin.sex == 0) + elseif skin then + TriggerEvent("skinchanger:loadSkin", skin) + end + + TriggerEvent("esx:loadingScreenOff") + ShutdownLoadingScreen() + ShutdownLoadingScreenNui() + end) + end + + ESX.PlayerLoaded = true + + while ESX.PlayerData.ped == nil do + Wait(20) + end + + while not HasCollisionLoadedAroundEntity(ESX.PlayerData.ped) do + Wait(0) + end + + if Config.EnablePVP then + SetCanAttackFriendly(ESX.PlayerData.ped, true, false) + NetworkSetFriendlyFireOption(true) + end + + local playerId = PlayerId() local metadata = ESX.PlayerData.metadata if metadata.health then SetEntityHealth(ESX.PlayerData.ped, metadata.health) @@ -68,541 +74,540 @@ AddEventHandler('esx:playerLoaded', function(xPlayer, isNew, skin) SetPedArmour(ESX.PlayerData.ped, metadata.armor) end - -- RemoveHudComponents - for i = 1, #(Config.RemoveHudComponents) do - if Config.RemoveHudComponents[i] then - SetHudComponentPosition(i, 999999.0, 999999.0) - end - end - - -- DisableNPCDrops - if Config.DisableNPCDrops then - local weaponPickups = { `PICKUP_WEAPON_CARBINERIFLE`, `PICKUP_WEAPON_PISTOL`, `PICKUP_WEAPON_PUMPSHOTGUN` } - for i = 1, #weaponPickups do - ToggleUsePickupsForPlayer(playerId, weaponPickups[i], false) - end - end - - if Config.DisableVehicleSeatShuff then - AddEventHandler('esx:enteredVehicle', function(vehicle, _, seat) - if seat == 0 then - SetPedIntoVehicle(ESX.PlayerData.ped, vehicle, 0) - SetPedConfigFlag(ESX.PlayerData.ped, 184, true) - end - end) - end - - if Config.DisableHealthRegeneration then - SetPlayerHealthRechargeMultiplier(playerId, 0.0) - end - - if Config.DisableWeaponWheel or Config.DisableAimAssist or Config.DisableVehicleRewards then - CreateThread(function() - while true do - if Config.DisableDisplayAmmo then - DisplayAmmoThisFrame(false) - end - - if Config.DisableWeaponWheel then - BlockWeaponWheelThisFrame() - DisableControlAction(0, 37, true) - end - - if Config.DisableAimAssist then - if IsPedArmed(ESX.PlayerData.ped, 4) then - SetPlayerLockonRangeOverride(playerId, 2.0) - end - end - - if Config.DisableVehicleRewards then - DisablePlayerVehicleRewards(playerId) - end - - Wait(0) - end - end) - end - - -- Disable Dispatch services - if Config.DisableDispatchServices then - for i = 1, 15 do - EnableDispatchService(i, false) - end - end - - -- Disable Scenarios - if Config.DisableScenarios then - local scenarios = { - 'WORLD_VEHICLE_ATTRACTOR', - 'WORLD_VEHICLE_AMBULANCE', - 'WORLD_VEHICLE_BICYCLE_BMX', - 'WORLD_VEHICLE_BICYCLE_BMX_BALLAS', - 'WORLD_VEHICLE_BICYCLE_BMX_FAMILY', - 'WORLD_VEHICLE_BICYCLE_BMX_HARMONY', - 'WORLD_VEHICLE_BICYCLE_BMX_VAGOS', - 'WORLD_VEHICLE_BICYCLE_MOUNTAIN', - 'WORLD_VEHICLE_BICYCLE_ROAD', - 'WORLD_VEHICLE_BIKE_OFF_ROAD_RACE', - 'WORLD_VEHICLE_BIKER', - 'WORLD_VEHICLE_BOAT_IDLE', - 'WORLD_VEHICLE_BOAT_IDLE_ALAMO', - 'WORLD_VEHICLE_BOAT_IDLE_MARQUIS', - 'WORLD_VEHICLE_BOAT_IDLE_MARQUIS', - 'WORLD_VEHICLE_BROKEN_DOWN', - 'WORLD_VEHICLE_BUSINESSMEN', - 'WORLD_VEHICLE_HELI_LIFEGUARD', - 'WORLD_VEHICLE_CLUCKIN_BELL_TRAILER', - 'WORLD_VEHICLE_CONSTRUCTION_SOLO', - 'WORLD_VEHICLE_CONSTRUCTION_PASSENGERS', - 'WORLD_VEHICLE_DRIVE_PASSENGERS', - 'WORLD_VEHICLE_DRIVE_PASSENGERS_LIMITED', - 'WORLD_VEHICLE_DRIVE_SOLO', - 'WORLD_VEHICLE_FIRE_TRUCK', - 'WORLD_VEHICLE_EMPTY', - 'WORLD_VEHICLE_MARIACHI', - 'WORLD_VEHICLE_MECHANIC', - 'WORLD_VEHICLE_MILITARY_PLANES_BIG', - 'WORLD_VEHICLE_MILITARY_PLANES_SMALL', - 'WORLD_VEHICLE_PARK_PARALLEL', - 'WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN', - 'WORLD_VEHICLE_PASSENGER_EXIT', - 'WORLD_VEHICLE_POLICE_BIKE', - 'WORLD_VEHICLE_POLICE_CAR', - 'WORLD_VEHICLE_POLICE', - 'WORLD_VEHICLE_POLICE_NEXT_TO_CAR', - 'WORLD_VEHICLE_QUARRY', - 'WORLD_VEHICLE_SALTON', - 'WORLD_VEHICLE_SALTON_DIRT_BIKE', - 'WORLD_VEHICLE_SECURITY_CAR', - 'WORLD_VEHICLE_STREETRACE', - 'WORLD_VEHICLE_TOURBUS', - 'WORLD_VEHICLE_TOURIST', - 'WORLD_VEHICLE_TANDL', - 'WORLD_VEHICLE_TRACTOR', - 'WORLD_VEHICLE_TRACTOR_BEACH', - 'WORLD_VEHICLE_TRUCK_LOGS', - 'WORLD_VEHICLE_TRUCKS_TRAILERS', - 'WORLD_VEHICLE_DISTANT_EMPTY_GROUND', - 'WORLD_HUMAN_PAPARAZZI' - } - - for _, v in pairs(scenarios) do - SetScenarioTypeEnabled(v, false) - end - end - - SetDefaultVehicleNumberPlateTextPattern(-1, Config.CustomAIPlates) - StartServerSyncLoops() + -- RemoveHudComponents + for i = 1, #Config.RemoveHudComponents do + if Config.RemoveHudComponents[i] then + SetHudComponentPosition(i, 999999.0, 999999.0) + end + end + + -- DisableNPCDrops + if Config.DisableNPCDrops then + local weaponPickups = { `PICKUP_WEAPON_CARBINERIFLE`, `PICKUP_WEAPON_PISTOL`, `PICKUP_WEAPON_PUMPSHOTGUN` } + for i = 1, #weaponPickups do + ToggleUsePickupsForPlayer(playerId, weaponPickups[i], false) + end + end + + if Config.DisableVehicleSeatShuff then + AddEventHandler("esx:enteredVehicle", function(vehicle, _, seat) + if seat == 0 then + SetPedIntoVehicle(ESX.PlayerData.ped, vehicle, 0) + SetPedConfigFlag(ESX.PlayerData.ped, 184, true) + end + end) + end + + if Config.DisableHealthRegeneration then + SetPlayerHealthRechargeMultiplier(playerId, 0.0) + end + + if Config.DisableWeaponWheel or Config.DisableAimAssist or Config.DisableVehicleRewards then + CreateThread(function() + while true do + if Config.DisableDisplayAmmo then + DisplayAmmoThisFrame(false) + end + + if Config.DisableWeaponWheel then + BlockWeaponWheelThisFrame() + DisableControlAction(0, 37, true) + end + + if Config.DisableAimAssist then + if IsPedArmed(ESX.PlayerData.ped, 4) then + SetPlayerLockonRangeOverride(playerId, 2.0) + end + end + + if Config.DisableVehicleRewards then + DisablePlayerVehicleRewards(playerId) + end + + Wait(0) + end + end) + end + + -- Disable Dispatch services + if Config.DisableDispatchServices then + for i = 1, 15 do + EnableDispatchService(i, false) + end + end + + -- Disable Scenarios + if Config.DisableScenarios then + local scenarios = { + "WORLD_VEHICLE_ATTRACTOR", + "WORLD_VEHICLE_AMBULANCE", + "WORLD_VEHICLE_BICYCLE_BMX", + "WORLD_VEHICLE_BICYCLE_BMX_BALLAS", + "WORLD_VEHICLE_BICYCLE_BMX_FAMILY", + "WORLD_VEHICLE_BICYCLE_BMX_HARMONY", + "WORLD_VEHICLE_BICYCLE_BMX_VAGOS", + "WORLD_VEHICLE_BICYCLE_MOUNTAIN", + "WORLD_VEHICLE_BICYCLE_ROAD", + "WORLD_VEHICLE_BIKE_OFF_ROAD_RACE", + "WORLD_VEHICLE_BIKER", + "WORLD_VEHICLE_BOAT_IDLE", + "WORLD_VEHICLE_BOAT_IDLE_ALAMO", + "WORLD_VEHICLE_BOAT_IDLE_MARQUIS", + "WORLD_VEHICLE_BOAT_IDLE_MARQUIS", + "WORLD_VEHICLE_BROKEN_DOWN", + "WORLD_VEHICLE_BUSINESSMEN", + "WORLD_VEHICLE_HELI_LIFEGUARD", + "WORLD_VEHICLE_CLUCKIN_BELL_TRAILER", + "WORLD_VEHICLE_CONSTRUCTION_SOLO", + "WORLD_VEHICLE_CONSTRUCTION_PASSENGERS", + "WORLD_VEHICLE_DRIVE_PASSENGERS", + "WORLD_VEHICLE_DRIVE_PASSENGERS_LIMITED", + "WORLD_VEHICLE_DRIVE_SOLO", + "WORLD_VEHICLE_FIRE_TRUCK", + "WORLD_VEHICLE_EMPTY", + "WORLD_VEHICLE_MARIACHI", + "WORLD_VEHICLE_MECHANIC", + "WORLD_VEHICLE_MILITARY_PLANES_BIG", + "WORLD_VEHICLE_MILITARY_PLANES_SMALL", + "WORLD_VEHICLE_PARK_PARALLEL", + "WORLD_VEHICLE_PARK_PERPENDICULAR_NOSE_IN", + "WORLD_VEHICLE_PASSENGER_EXIT", + "WORLD_VEHICLE_POLICE_BIKE", + "WORLD_VEHICLE_POLICE_CAR", + "WORLD_VEHICLE_POLICE", + "WORLD_VEHICLE_POLICE_NEXT_TO_CAR", + "WORLD_VEHICLE_QUARRY", + "WORLD_VEHICLE_SALTON", + "WORLD_VEHICLE_SALTON_DIRT_BIKE", + "WORLD_VEHICLE_SECURITY_CAR", + "WORLD_VEHICLE_STREETRACE", + "WORLD_VEHICLE_TOURBUS", + "WORLD_VEHICLE_TOURIST", + "WORLD_VEHICLE_TANDL", + "WORLD_VEHICLE_TRACTOR", + "WORLD_VEHICLE_TRACTOR_BEACH", + "WORLD_VEHICLE_TRUCK_LOGS", + "WORLD_VEHICLE_TRUCKS_TRAILERS", + "WORLD_VEHICLE_DISTANT_EMPTY_GROUND", + "WORLD_HUMAN_PAPARAZZI", + } + + for _, v in pairs(scenarios) do + SetScenarioTypeEnabled(v, false) + end + end + + SetDefaultVehicleNumberPlateTextPattern(-1, Config.CustomAIPlates) + StartServerSyncLoops() end) -RegisterNetEvent('esx:onPlayerLogout') -AddEventHandler('esx:onPlayerLogout', function() - ESX.PlayerLoaded = false +RegisterNetEvent("esx:onPlayerLogout") +AddEventHandler("esx:onPlayerLogout", function() + ESX.PlayerLoaded = false end) -RegisterNetEvent('esx:setMaxWeight') -AddEventHandler('esx:setMaxWeight', function(newMaxWeight) ESX.SetPlayerData("maxWeight", newMaxWeight) end) +RegisterNetEvent("esx:setMaxWeight") +AddEventHandler("esx:setMaxWeight", function(newMaxWeight) + ESX.SetPlayerData("maxWeight", newMaxWeight) +end) local function onPlayerSpawn() - ESX.SetPlayerData('ped', PlayerPedId()) - ESX.SetPlayerData('dead', false) + ESX.SetPlayerData("ped", PlayerPedId()) + ESX.SetPlayerData("dead", false) end -AddEventHandler('playerSpawned', onPlayerSpawn) -AddEventHandler('esx:onPlayerSpawn', onPlayerSpawn) +AddEventHandler("playerSpawned", onPlayerSpawn) +AddEventHandler("esx:onPlayerSpawn", onPlayerSpawn) -AddEventHandler('esx:onPlayerDeath', function() - ESX.SetPlayerData('ped', PlayerPedId()) - ESX.SetPlayerData('dead', true) +AddEventHandler("esx:onPlayerDeath", function() + ESX.SetPlayerData("ped", PlayerPedId()) + ESX.SetPlayerData("dead", true) end) -AddEventHandler('skinchanger:modelLoaded', function() - while not ESX.PlayerLoaded do - Wait(100) - end - TriggerEvent('esx:restoreLoadout') +AddEventHandler("skinchanger:modelLoaded", function() + while not ESX.PlayerLoaded do + Wait(100) + end + TriggerEvent("esx:restoreLoadout") end) -AddEventHandler('esx:restoreLoadout', function() - ESX.SetPlayerData('ped', PlayerPedId()) +AddEventHandler("esx:restoreLoadout", function() + ESX.SetPlayerData("ped", PlayerPedId()) - if not Config.OxInventory then - local ammoTypes = {} - RemoveAllPedWeapons(ESX.PlayerData.ped, true) + if not Config.OxInventory then + local ammoTypes = {} + RemoveAllPedWeapons(ESX.PlayerData.ped, true) - for _, v in ipairs(ESX.PlayerData.loadout) do - local weaponName = v.name - local weaponHash = joaat(weaponName) + for _, v in ipairs(ESX.PlayerData.loadout) do + local weaponName = v.name + local weaponHash = joaat(weaponName) - GiveWeaponToPed(ESX.PlayerData.ped, weaponHash, 0, false, false) - SetPedWeaponTintIndex(ESX.PlayerData.ped, weaponHash, v.tintIndex) + GiveWeaponToPed(ESX.PlayerData.ped, weaponHash, 0, false, false) + SetPedWeaponTintIndex(ESX.PlayerData.ped, weaponHash, v.tintIndex) - local ammoType = GetPedAmmoTypeFromWeapon(ESX.PlayerData.ped, weaponHash) + local ammoType = GetPedAmmoTypeFromWeapon(ESX.PlayerData.ped, weaponHash) - for _, v2 in ipairs(v.components) do - local componentHash = ESX.GetWeaponComponent(weaponName, v2).hash - GiveWeaponComponentToPed(ESX.PlayerData.ped, weaponHash, componentHash) - end + for _, v2 in ipairs(v.components) do + local componentHash = ESX.GetWeaponComponent(weaponName, v2).hash + GiveWeaponComponentToPed(ESX.PlayerData.ped, weaponHash, componentHash) + end - if not ammoTypes[ammoType] then - AddAmmoToPed(ESX.PlayerData.ped, weaponHash, v.ammo) - ammoTypes[ammoType] = true - end - end - end + if not ammoTypes[ammoType] then + AddAmmoToPed(ESX.PlayerData.ped, weaponHash, v.ammo) + ammoTypes[ammoType] = true + end + end + end end) -- Credit: https://github.com/LukeWasTakenn, https://github.com/LukeWasTakenn/luke_garages/blob/master/client/client.lua#L331-L352 -AddStateBagChangeHandler('VehicleProperties', nil, function(bagName, _, value) - if not value then - 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 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) +AddStateBagChangeHandler("VehicleProperties", nil, function(bagName, _, value) + if not value then + 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 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) end) -RegisterNetEvent('esx:setAccountMoney') -AddEventHandler('esx:setAccountMoney', function(account) - for i = 1, #(ESX.PlayerData.accounts) do - if ESX.PlayerData.accounts[i].name == account.name then - ESX.PlayerData.accounts[i] = account - break - end - end +RegisterNetEvent("esx:setAccountMoney") +AddEventHandler("esx:setAccountMoney", function(account) + for i = 1, #ESX.PlayerData.accounts do + if ESX.PlayerData.accounts[i].name == account.name then + ESX.PlayerData.accounts[i] = account + break + end + end - ESX.SetPlayerData('accounts', ESX.PlayerData.accounts) + ESX.SetPlayerData("accounts", ESX.PlayerData.accounts) end) if not Config.OxInventory then - RegisterNetEvent('esx:addInventoryItem') - AddEventHandler('esx:addInventoryItem', function(item, count, showNotification) - for k, v in ipairs(ESX.PlayerData.inventory) do - if v.name == item then - ESX.UI.ShowInventoryItemNotification(true, v.label, count - v.count) - ESX.PlayerData.inventory[k].count = count - break - end - end - - if showNotification then - ESX.UI.ShowInventoryItemNotification(true, item, count) - end - end) - - RegisterNetEvent('esx:removeInventoryItem') - AddEventHandler('esx:removeInventoryItem', function(item, count, showNotification) - for k, v in ipairs(ESX.PlayerData.inventory) do - if v.name == item then - ESX.UI.ShowInventoryItemNotification(false, v.label, v.count - count) - ESX.PlayerData.inventory[k].count = count - break - end - end - - if showNotification then - ESX.UI.ShowInventoryItemNotification(false, item, count) - end - end) - - RegisterNetEvent('esx:addWeapon') - AddEventHandler('esx:addWeapon', function() - print("[^1ERROR^7] event ^5'esx:addWeapon'^7 Has Been Removed. Please use ^5xPlayer.addWeapon^7 Instead!") - end) - - RegisterNetEvent('esx:addWeaponComponent') - AddEventHandler('esx:addWeaponComponent', function() - print("[^1ERROR^7] event ^5'esx:addWeaponComponent'^7 Has Been Removed. Please use ^5xPlayer.addWeaponComponent^7 Instead!") - end) - - RegisterNetEvent('esx:setWeaponAmmo') - AddEventHandler('esx:setWeaponAmmo', function() - print("[^1ERROR^7] event ^5'esx:setWeaponAmmo'^7 Has Been Removed. Please use ^5xPlayer.addWeaponAmmo^7 Instead!") - end) - - RegisterNetEvent('esx:setWeaponTint') - AddEventHandler('esx:setWeaponTint', function(weapon, weaponTintIndex) - SetPedWeaponTintIndex(ESX.PlayerData.ped, joaat(weapon), weaponTintIndex) - end) - - RegisterNetEvent('esx:removeWeapon') - AddEventHandler('esx:removeWeapon', function() - print("[^1ERROR^7] event ^5'esx:removeWeapon'^7 Has Been Removed. Please use ^5xPlayer.removeWeapon^7 Instead!") - end) - - RegisterNetEvent('esx:removeWeaponComponent') - AddEventHandler('esx:removeWeaponComponent', function(weapon, weaponComponent) - local componentHash = ESX.GetWeaponComponent(weapon, weaponComponent).hash - RemoveWeaponComponentFromPed(ESX.PlayerData.ped, joaat(weapon), componentHash) - end) + RegisterNetEvent("esx:addInventoryItem") + AddEventHandler("esx:addInventoryItem", function(item, count, showNotification) + for k, v in ipairs(ESX.PlayerData.inventory) do + if v.name == item then + ESX.UI.ShowInventoryItemNotification(true, v.label, count - v.count) + ESX.PlayerData.inventory[k].count = count + break + end + end + + if showNotification then + ESX.UI.ShowInventoryItemNotification(true, item, count) + end + end) + + RegisterNetEvent("esx:removeInventoryItem") + AddEventHandler("esx:removeInventoryItem", function(item, count, showNotification) + for i = 1, #ESX.PlayerData.inventory do + if ESX.PlayerData.inventory[i].name == item then + ESX.UI.ShowInventoryItemNotification(false, ESX.PlayerData.inventory[i].label, ESX.PlayerData.inventory[i].count - count) + ESX.PlayerData.inventory[i].count = count + break + end + end + + if showNotification then + ESX.UI.ShowInventoryItemNotification(false, item, count) + end + end) + + RegisterNetEvent("esx:addWeapon") + AddEventHandler("esx:addWeapon", function() + print("[^1ERROR^7] event ^5'esx:addWeapon'^7 Has Been Removed. Please use ^5xPlayer.addWeapon^7 Instead!") + end) + + RegisterNetEvent("esx:addWeaponComponent") + AddEventHandler("esx:addWeaponComponent", function() + print("[^1ERROR^7] event ^5'esx:addWeaponComponent'^7 Has Been Removed. Please use ^5xPlayer.addWeaponComponent^7 Instead!") + end) + + RegisterNetEvent("esx:setWeaponAmmo") + AddEventHandler("esx:setWeaponAmmo", function() + print("[^1ERROR^7] event ^5'esx:setWeaponAmmo'^7 Has Been Removed. Please use ^5xPlayer.addWeaponAmmo^7 Instead!") + end) + + RegisterNetEvent("esx:setWeaponTint") + AddEventHandler("esx:setWeaponTint", function(weapon, weaponTintIndex) + SetPedWeaponTintIndex(ESX.PlayerData.ped, joaat(weapon), weaponTintIndex) + end) + + RegisterNetEvent("esx:removeWeapon") + AddEventHandler("esx:removeWeapon", function() + print("[^1ERROR^7] event ^5'esx:removeWeapon'^7 Has Been Removed. Please use ^5xPlayer.removeWeapon^7 Instead!") + end) + + RegisterNetEvent("esx:removeWeaponComponent") + AddEventHandler("esx:removeWeaponComponent", function(weapon, weaponComponent) + local componentHash = ESX.GetWeaponComponent(weapon, weaponComponent).hash + RemoveWeaponComponentFromPed(ESX.PlayerData.ped, joaat(weapon), componentHash) + end) end -RegisterNetEvent('esx:setJob') -AddEventHandler('esx:setJob', function(Job) - ESX.SetPlayerData('job', Job) +RegisterNetEvent("esx:setJob") +AddEventHandler("esx:setJob", function(Job) + ESX.SetPlayerData("job", Job) end) if not Config.OxInventory then - RegisterNetEvent('esx:createPickup') - AddEventHandler('esx:createPickup', function(pickupId, label, coords, itemType, name, components, tintIndex) - local function setObjectProperties(object) - SetEntityAsMissionEntity(object, true, false) - PlaceObjectOnGroundProperly(object) - FreezeEntityPosition(object, true) - SetEntityCollision(object, false, true) - - pickups[pickupId] = { - obj = object, - label = label, - inRange = false, - coords = coords - } - end - - if itemType == 'item_weapon' then - local weaponHash = joaat(name) - ESX.Streaming.RequestWeaponAsset(weaponHash) - local pickupObject = CreateWeaponObject(weaponHash, 50, coords.x, coords.y, coords.z, true, 1.0, 0) - SetWeaponObjectTintIndex(pickupObject, tintIndex) - - for _, v in ipairs(components) do - local component = ESX.GetWeaponComponent(name, v) - GiveWeaponComponentToWeaponObject(pickupObject, component.hash) - end - - setObjectProperties(pickupObject) - else - ESX.Game.SpawnLocalObject('prop_money_bag_01', coords, setObjectProperties) - end - end) - - RegisterNetEvent('esx:createMissingPickups') - AddEventHandler('esx:createMissingPickups', function(missingPickups) - for pickupId, pickup in pairs(missingPickups) do - TriggerEvent('esx:createPickup', pickupId, pickup.label, vector3(pickup.coords.x, pickup.coords.y, pickup.coords.z - 1.0), pickup.type, pickup.name - , pickup.components, pickup.tintIndex) - end - end) + RegisterNetEvent("esx:createPickup") + AddEventHandler("esx:createPickup", function(pickupId, label, coords, itemType, name, components, tintIndex) + local function setObjectProperties(object) + SetEntityAsMissionEntity(object, true, false) + PlaceObjectOnGroundProperly(object) + FreezeEntityPosition(object, true) + SetEntityCollision(object, false, true) + + pickups[pickupId] = { + obj = object, + label = label, + inRange = false, + coords = coords, + } + end + + if itemType == "item_weapon" then + local weaponHash = joaat(name) + ESX.Streaming.RequestWeaponAsset(weaponHash) + local pickupObject = CreateWeaponObject(weaponHash, 50, coords.x, coords.y, coords.z, true, 1.0, 0) + SetWeaponObjectTintIndex(pickupObject, tintIndex) + + for _, v in ipairs(components) do + local component = ESX.GetWeaponComponent(name, v) + GiveWeaponComponentToWeaponObject(pickupObject, component.hash) + end + + setObjectProperties(pickupObject) + else + ESX.Game.SpawnLocalObject("prop_money_bag_01", coords, setObjectProperties) + end + end) + + RegisterNetEvent("esx:createMissingPickups") + AddEventHandler("esx:createMissingPickups", function(missingPickups) + for pickupId, pickup in pairs(missingPickups) do + TriggerEvent("esx:createPickup", pickupId, pickup.label, vector3(pickup.coords.x, pickup.coords.y, pickup.coords.z - 1.0), pickup.type, pickup.name, pickup.components, pickup.tintIndex) + end + end) end -RegisterNetEvent('esx:registerSuggestions') -AddEventHandler('esx:registerSuggestions', function(registeredCommands) - for name, command in pairs(registeredCommands) do - if command.suggestion then - TriggerEvent('chat:addSuggestion', ('/%s'):format(name), command.suggestion.help, command.suggestion.arguments) - end - end +RegisterNetEvent("esx:registerSuggestions") +AddEventHandler("esx:registerSuggestions", function(registeredCommands) + for name, command in pairs(registeredCommands) do + if command.suggestion then + TriggerEvent("chat:addSuggestion", ("/%s"):format(name), command.suggestion.help, command.suggestion.arguments) + end + end end) if not Config.OxInventory then - RegisterNetEvent('esx:removePickup') - AddEventHandler('esx:removePickup', function(pickupId) - if pickups[pickupId] and pickups[pickupId].obj then - ESX.Game.DeleteObject(pickups[pickupId].obj) - pickups[pickupId] = nil - end - end) + RegisterNetEvent("esx:removePickup") + AddEventHandler("esx:removePickup", function(pickupId) + if pickups[pickupId] and pickups[pickupId].obj then + ESX.Game.DeleteObject(pickups[pickupId].obj) + pickups[pickupId] = nil + end + end) end function StartServerSyncLoops() - if not Config.OxInventory then - -- keep track of ammo - - CreateThread(function() - local currentWeapon = { Ammo = 0 } - while ESX.PlayerLoaded do - local sleep = 1500 - if GetSelectedPedWeapon(ESX.PlayerData.ped) ~= -1569615261 then - sleep = 1000 - local _, weaponHash = GetCurrentPedWeapon(ESX.PlayerData.ped, true) - local weapon = ESX.GetWeaponFromHash(weaponHash) - if weapon then - local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, weaponHash) - if weapon.name ~= currentWeapon.name then - currentWeapon.Ammo = ammoCount - currentWeapon.name = weapon.name - else - if ammoCount ~= currentWeapon.Ammo then - currentWeapon.Ammo = ammoCount - TriggerServerEvent('esx:updateWeaponAmmo', weapon.name, ammoCount) - end - end - end - end - Wait(sleep) - end - end) - end + if not Config.OxInventory then + -- keep track of ammo + + CreateThread(function() + local currentWeapon = { Ammo = 0 } + while ESX.PlayerLoaded do + local sleep = 1500 + if GetSelectedPedWeapon(ESX.PlayerData.ped) ~= -1569615261 then + sleep = 1000 + local _, weaponHash = GetCurrentPedWeapon(ESX.PlayerData.ped, true) + local weapon = ESX.GetWeaponFromHash(weaponHash) + if weapon then + local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, weaponHash) + if weapon.name ~= currentWeapon.name then + currentWeapon.Ammo = ammoCount + currentWeapon.name = weapon.name + else + if ammoCount ~= currentWeapon.Ammo then + currentWeapon.Ammo = ammoCount + TriggerServerEvent("esx:updateWeaponAmmo", weapon.name, ammoCount) + end + end + end + end + Wait(sleep) + end + end) + end end if not Config.OxInventory and Config.EnableDefaultInventory then - RegisterCommand('showinv', function() - if not ESX.PlayerData.dead then - ESX.ShowInventory() - end - end) - - RegisterKeyMapping('showinv', TranslateCap('keymap_showinventory'), 'keyboard', 'F2') + ESX.RegisterInput("showinv", TranslateCap("keymap_showinventory"), "keyboard", "F2", function() + if not ESX.PlayerData.dead then + ESX.ShowInventory() + end + end) end -- disable wanted level if not Config.EnableWantedLevel then - ClearPlayerWantedLevel(PlayerId()) - SetMaxWantedLevel(0) + ClearPlayerWantedLevel(PlayerId()) + SetMaxWantedLevel(0) end if not Config.OxInventory then - CreateThread(function() - while true do - local Sleep = 1500 - local playerCoords = GetEntityCoords(ESX.PlayerData.ped) - local _, closestDistance = ESX.Game.GetClosestPlayer(playerCoords) - - for pickupId, pickup in pairs(pickups) do - local distance = #(playerCoords - pickup.coords) - - if distance < 5 then - Sleep = 0 - local label = pickup.label - - if distance < 1 then - if IsControlJustReleased(0, 38) then - if IsPedOnFoot(ESX.PlayerData.ped) and (closestDistance == -1 or closestDistance > 3) and not pickup.inRange then - pickup.inRange = true - - local dict, anim = 'weapons@first_person@aim_rng@generic@projectile@sticky_bomb@', 'plant_floor' - ESX.Streaming.RequestAnimDict(dict) - TaskPlayAnim(ESX.PlayerData.ped, dict, anim, 8.0, 1.0, 1000, 16, 0.0, false, false, false) - RemoveAnimDict(dict) - Wait(1000) - - TriggerServerEvent('esx:onPickup', pickupId) - PlaySoundFrontend(-1, 'PICK_UP', 'HUD_FRONTEND_DEFAULT_SOUNDSET', false) - end - end - - label = ('%s~n~%s'):format(label, TranslateCap('threw_pickup_prompt')) - end - - ESX.Game.Utils.DrawText3D({ - x = pickup.coords.x, - y = pickup.coords.y, - z = pickup.coords.z + 0.25 - }, label, 1.2, 1) - elseif pickup.inRange then - pickup.inRange = false - end - end - Wait(Sleep) - end - end) + CreateThread(function() + while true do + local Sleep = 1500 + local playerCoords = GetEntityCoords(ESX.PlayerData.ped) + local _, closestDistance = ESX.Game.GetClosestPlayer(playerCoords) + + for pickupId, pickup in pairs(pickups) do + local distance = #(playerCoords - pickup.coords) + + if distance < 5 then + Sleep = 0 + local label = pickup.label + + if distance < 1 then + if IsControlJustReleased(0, 38) then + if IsPedOnFoot(ESX.PlayerData.ped) and (closestDistance == -1 or closestDistance > 3) and not pickup.inRange then + pickup.inRange = true + + local dict, anim = "weapons@first_person@aim_rng@generic@projectile@sticky_bomb@", "plant_floor" + ESX.Streaming.RequestAnimDict(dict) + TaskPlayAnim(ESX.PlayerData.ped, dict, anim, 8.0, 1.0, 1000, 16, 0.0, false, false, false) + RemoveAnimDict(dict) + Wait(1000) + + TriggerServerEvent("esx:onPickup", pickupId) + PlaySoundFrontend(-1, "PICK_UP", "HUD_FRONTEND_DEFAULT_SOUNDSET", false) + end + end + + label = ("%s~n~%s"):format(label, TranslateCap("threw_pickup_prompt")) + end + + ESX.Game.Utils.DrawText3D({ + x = pickup.coords.x, + y = pickup.coords.y, + z = pickup.coords.z + 0.25, + }, label, 1.2, 1) + elseif pickup.inRange then + pickup.inRange = false + end + end + Wait(Sleep) + end + end) end ----- Admin commands from esx_adminplus RegisterNetEvent("esx:tpm") AddEventHandler("esx:tpm", function() - local GetEntityCoords = GetEntityCoords - local GetGroundZFor_3dCoord = GetGroundZFor_3dCoord - local GetFirstBlipInfoId = GetFirstBlipInfoId - local DoesBlipExist = DoesBlipExist - local DoScreenFadeOut = DoScreenFadeOut - local GetBlipInfoIdCoord = GetBlipInfoIdCoord - local GetVehiclePedIsIn = GetVehiclePedIsIn - - ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) - if not admin then - return - end - local blipMarker = GetFirstBlipInfoId(8) - if not DoesBlipExist(blipMarker) then - ESX.ShowNotification(TranslateCap('tpm_nowaypoint'), true, false, 140) - return 'marker' - end - - -- Fade screen to hide how clients get teleported. - DoScreenFadeOut(650) - while not IsScreenFadedOut() do - Wait(0) - end - - local ped, coords = ESX.PlayerData.ped, GetBlipInfoIdCoord(blipMarker) - local vehicle = GetVehiclePedIsIn(ped, false) - local oldCoords = GetEntityCoords(ped) - - -- Unpack coords instead of having to unpack them while iterating. - -- 825.0 seems to be the max a player can reach while 0.0 being the lowest. - local x, y, groundZ, Z_START = coords['x'], coords['y'], 850.0, 950.0 - local found = false - FreezeEntityPosition(vehicle > 0 and vehicle or ped, true) - - for i = Z_START, 0, -25.0 do - local z = i - if (i % 2) ~= 0 then - z = Z_START - i - end - - NewLoadSceneStart(x, y, z, x, y, z, 50.0, 0) - local curTime = GetGameTimer() - while IsNetworkLoadingScene() do - if GetGameTimer() - curTime > 1000 then - break - end - Wait(0) - end - NewLoadSceneStop() - SetPedCoordsKeepVehicle(ped, x, y, z) - - while not HasCollisionLoadedAroundEntity(ped) do - RequestCollisionAtCoord(x, y, z) - if GetGameTimer() - curTime > 1000 then - break - end - Wait(0) - end - - -- Get ground coord. As mentioned in the natives, this only works if the client is in render distance. - found, groundZ = GetGroundZFor_3dCoord(x, y, z, false) - if found then - Wait(0) - SetPedCoordsKeepVehicle(ped, x, y, groundZ) - break - end - Wait(0) - end - - -- Remove black screen once the loop has ended. - DoScreenFadeIn(650) - FreezeEntityPosition(vehicle > 0 and vehicle or ped, false) - - if not found then - -- If we can't find the coords, set the coords to the old ones. - -- We don't unpack them before since they aren't in a loop and only called once. - SetPedCoordsKeepVehicle(ped, oldCoords['x'], oldCoords['y'], oldCoords['z'] - 1.0) - ESX.ShowNotification(TranslateCap('tpm_success'), true, false, 140) - end - - -- If Z coord was found, set coords in found coords. - SetPedCoordsKeepVehicle(ped, x, y, groundZ) - ESX.ShowNotification(TranslateCap('tpm_success'), true, false, 140) - end) + local GetEntityCoords = GetEntityCoords + local GetGroundZFor_3dCoord = GetGroundZFor_3dCoord + local GetFirstBlipInfoId = GetFirstBlipInfoId + local DoesBlipExist = DoesBlipExist + local DoScreenFadeOut = DoScreenFadeOut + local GetBlipInfoIdCoord = GetBlipInfoIdCoord + local GetVehiclePedIsIn = GetVehiclePedIsIn + + ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) + if not admin then + return + end + local blipMarker = GetFirstBlipInfoId(8) + if not DoesBlipExist(blipMarker) then + ESX.ShowNotification(TranslateCap("tpm_nowaypoint"), true, false, 140) + return "marker" + end + + -- Fade screen to hide how clients get teleported. + DoScreenFadeOut(650) + while not IsScreenFadedOut() do + Wait(0) + end + + local ped, coords = ESX.PlayerData.ped, GetBlipInfoIdCoord(blipMarker) + local vehicle = GetVehiclePedIsIn(ped, false) + local oldCoords = GetEntityCoords(ped) + + -- Unpack coords instead of having to unpack them while iterating. + -- 825.0 seems to be the max a player can reach while 0.0 being the lowest. + local x, y, groundZ, Z_START = coords["x"], coords["y"], 850.0, 950.0 + local found = false + FreezeEntityPosition(vehicle > 0 and vehicle or ped, true) + + for i = Z_START, 0, -25.0 do + local z = i + if (i % 2) ~= 0 then + z = Z_START - i + end + + NewLoadSceneStart(x, y, z, x, y, z, 50.0, 0) + local curTime = GetGameTimer() + while IsNetworkLoadingScene() do + if GetGameTimer() - curTime > 1000 then + break + end + Wait(0) + end + NewLoadSceneStop() + SetPedCoordsKeepVehicle(ped, x, y, z) + + while not HasCollisionLoadedAroundEntity(ped) do + RequestCollisionAtCoord(x, y, z) + if GetGameTimer() - curTime > 1000 then + break + end + Wait(0) + end + + -- Get ground coord. As mentioned in the natives, this only works if the client is in render distance. + found, groundZ = GetGroundZFor_3dCoord(x, y, z, false) + if found then + Wait(0) + SetPedCoordsKeepVehicle(ped, x, y, groundZ) + break + end + Wait(0) + end + + -- Remove black screen once the loop has ended. + DoScreenFadeIn(650) + FreezeEntityPosition(vehicle > 0 and vehicle or ped, false) + + if not found then + -- If we can't find the coords, set the coords to the old ones. + -- We don't unpack them before since they aren't in a loop and only called once. + SetPedCoordsKeepVehicle(ped, oldCoords["x"], oldCoords["y"], oldCoords["z"] - 1.0) + ESX.ShowNotification(TranslateCap("tpm_success"), true, false, 140) + end + + -- If Z coord was found, set coords in found coords. + SetPedCoordsKeepVehicle(ped, x, y, groundZ) + ESX.ShowNotification(TranslateCap("tpm_success"), true, false, 140) + end) end) local noclip = false @@ -610,100 +615,100 @@ local noclip_pos = vector3(0, 0, 70) local heading = 0 local function noclipThread() - while noclip do - SetEntityCoordsNoOffset(ESX.PlayerData.ped, noclip_pos.x, noclip_pos.y, noclip_pos.z, 0, 0, 0) - - if IsControlPressed(1, 34) then - heading = heading + 1.5 - if heading > 360 then - heading = 0 - end - - SetEntityHeading(ESX.PlayerData.ped, heading) - end - - if IsControlPressed(1, 9) then - heading = heading - 1.5 - if heading < 0 then - heading = 360 - end - - SetEntityHeading(ESX.PlayerData.ped, heading) - end - - if IsControlPressed(1, 8) then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 1.0, 0.0) - end - - if IsControlPressed(1, 32) then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, -1.0, 0.0) - end - - if IsControlPressed(1, 27) then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, 1.0) - end - - if IsControlPressed(1, 173) then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, -1.0) - end - Wait(0) - end + while noclip do + SetEntityCoordsNoOffset(ESX.PlayerData.ped, noclip_pos.x, noclip_pos.y, noclip_pos.z, 0, 0, 0) + + if IsControlPressed(1, 34) then + heading = heading + 1.5 + if heading > 360 then + heading = 0 + end + + SetEntityHeading(ESX.PlayerData.ped, heading) + end + + if IsControlPressed(1, 9) then + heading = heading - 1.5 + if heading < 0 then + heading = 360 + end + + SetEntityHeading(ESX.PlayerData.ped, heading) + end + + if IsControlPressed(1, 8) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 1.0, 0.0) + end + + if IsControlPressed(1, 32) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, -1.0, 0.0) + end + + if IsControlPressed(1, 27) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, 1.0) + end + + if IsControlPressed(1, 173) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, -1.0) + end + Wait(0) + end end RegisterNetEvent("esx:noclip") AddEventHandler("esx:noclip", function() - ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) - if not admin then - return - end - - if not noclip then - noclip_pos = GetEntityCoords(ESX.PlayerData.ped, false) - heading = GetEntityHeading(ESX.PlayerData.ped) - end - - noclip = not noclip - if noclip then - CreateThread(noclipThread) - end - - ESX.ShowNotification(TranslateCap('noclip_message', noclip and Translate('enabled') or Translate('disabled')), true, false, 140) - end) + ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) + if not admin then + return + end + + if not noclip then + noclip_pos = GetEntityCoords(ESX.PlayerData.ped, false) + heading = GetEntityHeading(ESX.PlayerData.ped) + end + + noclip = not noclip + if noclip then + CreateThread(noclipThread) + end + + ESX.ShowNotification(TranslateCap("noclip_message", noclip and Translate("enabled") or Translate("disabled")), true, false, 140) + end) end) RegisterNetEvent("esx:killPlayer") AddEventHandler("esx:killPlayer", function() - SetEntityHealth(ESX.PlayerData.ped, 0) + SetEntityHealth(ESX.PlayerData.ped, 0) end) RegisterNetEvent("esx:repairPedVehicle") AddEventHandler("esx:repairPedVehicle", function() - local ped = ESX.PlayerData.ped - local vehicle = GetVehiclePedIsIn(ped, false) - SetVehicleEngineHealth(vehicle, 1000) - SetVehicleEngineOn(vehicle, true, true) - SetVehicleFixed(vehicle) - SetVehicleDirtLevel(vehicle, 0) + local ped = ESX.PlayerData.ped + local vehicle = GetVehiclePedIsIn(ped, false) + SetVehicleEngineHealth(vehicle, 1000) + SetVehicleEngineOn(vehicle, true, true) + SetVehicleFixed(vehicle) + SetVehicleDirtLevel(vehicle, 0) end) RegisterNetEvent("esx:freezePlayer") AddEventHandler("esx:freezePlayer", function(input) - local player = PlayerId() - if input == 'freeze' then - SetEntityCollision(ESX.PlayerData.ped, false) - FreezeEntityPosition(ESX.PlayerData.ped, true) - SetPlayerInvincible(player, true) - elseif input == 'unfreeze' then - SetEntityCollision(ESX.PlayerData.ped, true) - FreezeEntityPosition(ESX.PlayerData.ped, false) - SetPlayerInvincible(player, false) - end + local player = PlayerId() + if input == "freeze" then + SetEntityCollision(ESX.PlayerData.ped, false) + FreezeEntityPosition(ESX.PlayerData.ped, true) + SetPlayerInvincible(player, true) + elseif input == "unfreeze" then + SetEntityCollision(ESX.PlayerData.ped, true) + FreezeEntityPosition(ESX.PlayerData.ped, false) + SetPlayerInvincible(player, false) + end end) ESX.RegisterClientCallback("esx:GetVehicleType", function(cb, model) - cb(ESX.GetVehicleType(model)) + cb(ESX.GetVehicleType(model)) end) -AddStateBagChangeHandler('metadata', 'player:' .. tostring(GetPlayerServerId(PlayerId())), function(_, key, val) - ESX.SetPlayerData(key, val) +AddStateBagChangeHandler("metadata", "player:" .. tostring(GetPlayerServerId(PlayerId())), function(_, key, val) + ESX.SetPlayerData(key, val) end) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 2e4e0e675..cbe34fa0c 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -1,116 +1,119 @@ -local isInVehicle, isEnteringVehicle, isJumping, inPauseMenu = false, false, false, false -local playerPed = PlayerPedId() -local current = {} - -local function GetPedVehicleSeat(ped, vehicle) - for i = -1, 16 do - if (GetPedInVehicleSeat(vehicle, i) == ped) then return i end - end - return -1 -end - -local function GetData(vehicle) - if not DoesEntityExist(vehicle) then - return - end - local model = GetEntityModel(vehicle) - local displayName = GetDisplayNameFromVehicleModel(model) - local netId = vehicle - if NetworkGetEntityIsNetworked(vehicle) then - netId = VehToNet(vehicle) - end - return displayName, netId -end - -CreateThread(function() - while true do - ESX.SetPlayerData('coords',GetEntityCoords(playerPed)) - if playerPed ~= PlayerPedId() then - playerPed = PlayerPedId() - ESX.SetPlayerData('ped', playerPed) - TriggerEvent('esx:playerPedChanged', playerPed) - TriggerServerEvent('esx:playerPedChanged', PedToNet(playerPed)) - end - - if IsPedJumping(playerPed) and not isJumping then - isJumping = true - TriggerEvent('esx:playerJumping') - TriggerServerEvent('esx:playerJumping') - elseif not IsPedJumping(playerPed) and isJumping then - isJumping = false - end - - if IsPauseMenuActive() and not inPauseMenu then - inPauseMenu = true - TriggerEvent('esx:pauseMenuActive', inPauseMenu) - elseif not IsPauseMenuActive() and inPauseMenu then - inPauseMenu = false - TriggerEvent('esx:pauseMenuActive', inPauseMenu) - end - - - if not isInVehicle and not IsPlayerDead(PlayerId()) then - if DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not isEnteringVehicle then - -- trying to enter a vehicle! - local vehicle = GetVehiclePedIsTryingToEnter(playerPed) - local plate = GetVehicleNumberPlateText(vehicle) - local seat = GetSeatPedIsTryingToEnter(playerPed) - local _, netId = GetData(vehicle) - isEnteringVehicle = true - TriggerEvent('esx:enteringVehicle', vehicle, plate, seat, netId) - TriggerServerEvent('esx:enteringVehicle', plate, seat, netId) - elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and - not IsPedInAnyVehicle(playerPed, true) and isEnteringVehicle then - -- vehicle entering aborted - TriggerEvent('esx:enteringVehicleAborted') - TriggerServerEvent('esx:enteringVehicleAborted') - isEnteringVehicle = false - elseif IsPedInAnyVehicle(playerPed, false) then - -- suddenly appeared in a vehicle, possible teleport - isEnteringVehicle = false - isInVehicle = true - current.vehicle = GetVehiclePedIsUsing(playerPed) - current.seat = GetPedVehicleSeat(playerPed, current.vehicle) - current.plate = GetVehicleNumberPlateText(current.vehicle) - current.displayName, current.netId = GetData(current.vehicle) - TriggerEvent('esx:enteredVehicle', current.vehicle, current.plate, current.seat, current.displayName, current.netId) - TriggerServerEvent('esx:enteredVehicle', current.plate, current.seat, current.displayName, current.netId) - end - elseif isInVehicle then - if not IsPedInAnyVehicle(playerPed, false) or IsPlayerDead(PlayerId()) then - -- bye, vehicle - TriggerEvent('esx:exitedVehicle', current.vehicle, current.plate, current.seat, current.displayName, current.netId) - TriggerServerEvent('esx:exitedVehicle', current.plate, current.seat, current.displayName, current.netId) - isInVehicle = false - current = {} - end - end - Wait(200) - end -end) - -if Config.EnableDebug then - AddEventHandler('esx:playerPedChanged', function(netId) - print('esx:playerPedChanged', netId) - end) - - AddEventHandler('esx:playerJumping', function() - print('esx:playerJumping') - end) - - AddEventHandler('esx:enteringVehicle', function(vehicle, plate, seat, netId) - print('esx:enteringVehicle', 'vehicle', vehicle, 'plate', plate, 'seat', seat, 'netId', netId) - end) - - AddEventHandler('esx:enteringVehicleAborted', function() - print('esx:enteringVehicleAborted') - end) - - AddEventHandler('esx:enteredVehicle', function(vehicle, plate, seat, displayName, netId) - print('esx:enteredVehicle', 'vehicle', vehicle, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) - end) - - AddEventHandler('esx:exitedVehicle', function(vehicle, plate, seat, displayName, netId) - print('esx:exitedVehicle', 'vehicle', vehicle, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) - end) -end +local isInVehicle, isEnteringVehicle, isJumping, inPauseMenu = false, false, false, false +local playerPed = PlayerPedId() +local current = {} + +local function GetPedVehicleSeat(ped, vehicle) + for i = -1, 16 do + if GetPedInVehicleSeat(vehicle, i) == ped then + return i + end + end + return -1 +end + +local function GetData(vehicle) + if not DoesEntityExist(vehicle) then + return + end + local model = GetEntityModel(vehicle) + local displayName = GetDisplayNameFromVehicleModel(model) + local netId = vehicle + if NetworkGetEntityIsNetworked(vehicle) then + netId = VehToNet(vehicle) + end + return displayName, netId +end + +CreateThread(function() + while true do + ESX.SetPlayerData("coords", GetEntityCoords(playerPed)) + if playerPed ~= PlayerPedId() then + playerPed = PlayerPedId() + ESX.SetPlayerData("ped", playerPed) + TriggerEvent("esx:playerPedChanged", playerPed) + TriggerServerEvent("esx:playerPedChanged", PedToNet(playerPed)) + if Config.DisableHealthRegeneration then + SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0) + end + end + + if IsPedJumping(playerPed) and not isJumping then + isJumping = true + TriggerEvent("esx:playerJumping") + TriggerServerEvent("esx:playerJumping") + elseif not IsPedJumping(playerPed) and isJumping then + isJumping = false + end + + if IsPauseMenuActive() and not inPauseMenu then + inPauseMenu = true + TriggerEvent("esx:pauseMenuActive", inPauseMenu) + elseif not IsPauseMenuActive() and inPauseMenu then + inPauseMenu = false + TriggerEvent("esx:pauseMenuActive", inPauseMenu) + end + + if not isInVehicle and not IsPlayerDead(PlayerId()) then + if DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not isEnteringVehicle then + -- trying to enter a vehicle! + local vehicle = GetVehiclePedIsTryingToEnter(playerPed) + local plate = GetVehicleNumberPlateText(vehicle) + local seat = GetSeatPedIsTryingToEnter(playerPed) + local _, netId = GetData(vehicle) + isEnteringVehicle = true + TriggerEvent("esx:enteringVehicle", vehicle, plate, seat, netId) + TriggerServerEvent("esx:enteringVehicle", plate, seat, netId) + elseif not DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not IsPedInAnyVehicle(playerPed, true) and isEnteringVehicle then + -- vehicle entering aborted + TriggerEvent("esx:enteringVehicleAborted") + TriggerServerEvent("esx:enteringVehicleAborted") + isEnteringVehicle = false + elseif IsPedInAnyVehicle(playerPed, false) then + -- suddenly appeared in a vehicle, possible teleport + isEnteringVehicle = false + isInVehicle = true + current.vehicle = GetVehiclePedIsUsing(playerPed) + current.seat = GetPedVehicleSeat(playerPed, current.vehicle) + current.plate = GetVehicleNumberPlateText(current.vehicle) + current.displayName, current.netId = GetData(current.vehicle) + TriggerEvent("esx:enteredVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId) + TriggerServerEvent("esx:enteredVehicle", current.plate, current.seat, current.displayName, current.netId) + end + elseif isInVehicle then + if not IsPedInAnyVehicle(playerPed, false) or IsPlayerDead(PlayerId()) then + -- bye, vehicle + TriggerEvent("esx:exitedVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId) + TriggerServerEvent("esx:exitedVehicle", current.plate, current.seat, current.displayName, current.netId) + isInVehicle = false + current = {} + end + end + Wait(200) + end +end) + +if Config.EnableDebug then + AddEventHandler("esx:playerPedChanged", function(netId) + print("esx:playerPedChanged", netId) + end) + + AddEventHandler("esx:playerJumping", function() + print("esx:playerJumping") + end) + + AddEventHandler("esx:enteringVehicle", function(vehicle, plate, seat, netId) + print("esx:enteringVehicle", "vehicle", vehicle, "plate", plate, "seat", seat, "netId", netId) + end) + + AddEventHandler("esx:enteringVehicleAborted", function() + print("esx:enteringVehicleAborted") + end) + + AddEventHandler("esx:enteredVehicle", function(vehicle, plate, seat, displayName, netId) + print("esx:enteredVehicle", "vehicle", vehicle, "plate", plate, "seat", seat, "displayName", displayName, "netId", netId) + end) + + 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 e6d38cdc4..cf58c391c 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -7,34 +7,34 @@ local clientCallbacks = {} ---@param callback function ---@param ... any ESX.TriggerServerCallback = function(eventName, callback, ...) - serverRequests[RequestId] = callback + serverRequests[RequestId] = callback - TriggerServerEvent('esx:triggerServerCallback', eventName, RequestId, GetInvokingResource() or "unknown", ...) + TriggerServerEvent("esx:triggerServerCallback", eventName, RequestId, GetInvokingResource() or "unknown", ...) - RequestId = RequestId + 1 + RequestId = RequestId + 1 end -RegisterNetEvent('esx:serverCallback', function(requestId, invoker, ...) - if not serverRequests[requestId] then - return print(('[^1ERROR^7] Server Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist.'):format(requestId, invoker)) - end +RegisterNetEvent("esx:serverCallback", function(requestId, invoker, ...) + if not serverRequests[requestId] then + return print(("[^1ERROR^7] Server Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist."):format(requestId, invoker)) + end - serverRequests[requestId](...) - serverRequests[requestId] = nil + serverRequests[requestId](...) + serverRequests[requestId] = nil end) ---@param eventName string ---@param callback function ESX.RegisterClientCallback = function(eventName, callback) - clientCallbacks[eventName] = callback + clientCallbacks[eventName] = callback end -RegisterNetEvent('esx:triggerClientCallback', function(eventName, requestId, invoker, ...) - if not clientCallbacks[eventName] then - return print(('[^1ERROR^7] Client Callback not registered, name: ^5%s^7, invoker resource: ^5%s^7'):format(eventName, invoker)) - end +RegisterNetEvent("esx:triggerClientCallback", function(eventName, requestId, invoker, ...) + if not clientCallbacks[eventName] then + return print(("[^1ERROR^7] Client Callback not registered, name: ^5%s^7, invoker resource: ^5%s^7"):format(eventName, invoker)) + end - clientCallbacks[eventName](function(...) - TriggerServerEvent('esx:clientCallback', requestId, invoker, ...) - end, ...) + clientCallbacks[eventName](function(...) + TriggerServerEvent("esx:clientCallback", requestId, invoker, ...) + end, ...) end) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 51d8aec70..ed3347f07 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -1,52 +1,56 @@ -AddEventHandler('gameEventTriggered', function(event, data) - if event ~= 'CEventNetworkEntityDamage' then return end - local victim, victimDied = data[1], data[4] - 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 - local killerEntity, deathCause = GetPedSourceOfDeath(playerPed), GetPedCauseOfDeath(playerPed) - local killerClientId = NetworkGetPlayerIndexFromPed(killerEntity) - if killerEntity ~= playerPed and killerClientId and NetworkIsPlayerActive(killerClientId) then - PlayerKilledByPlayer(GetPlayerServerId(killerClientId), killerClientId, deathCause) - else - PlayerKilled(deathCause) - end - end +AddEventHandler("gameEventTriggered", function(event, data) + if event ~= "CEventNetworkEntityDamage" then + return + end + local victim, victimDied = data[1], data[4] + 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 + local killerEntity, deathCause = GetPedSourceOfDeath(playerPed), GetPedCauseOfDeath(playerPed) + local killerClientId = NetworkGetPlayerIndexFromPed(killerEntity) + if killerEntity ~= playerPed and killerClientId and NetworkIsPlayerActive(killerClientId) then + PlayerKilledByPlayer(GetPlayerServerId(killerClientId), killerClientId, deathCause) + else + PlayerKilled(deathCause) + end + end end) function PlayerKilledByPlayer(killerServerId, killerClientId, deathCause) - local victimCoords = GetEntityCoords(PlayerPedId()) - local killerCoords = GetEntityCoords(GetPlayerPed(killerClientId)) - local distance = #(victimCoords - killerCoords) + local victimCoords = GetEntityCoords(PlayerPedId()) + local killerCoords = GetEntityCoords(GetPlayerPed(killerClientId)) + 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) }, + 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) }, - killedByPlayer = true, - deathCause = deathCause, - distance = ESX.Math.Round(distance, 1), + killedByPlayer = true, + deathCause = deathCause, + distance = ESX.Math.Round(distance, 1), - killerServerId = killerServerId, - killerClientId = killerClientId - } + killerServerId = killerServerId, + killerClientId = killerClientId, + } - TriggerEvent('esx:onPlayerDeath', data) - TriggerServerEvent('esx:onPlayerDeath', data) + TriggerEvent("esx:onPlayerDeath", data) + TriggerServerEvent("esx:onPlayerDeath", data) end function PlayerKilled(deathCause) - local playerPed = PlayerPedId() - local victimCoords = GetEntityCoords(playerPed) + local playerPed = PlayerPedId() + 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) }, + local data = { + 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 - } + killedByPlayer = false, + deathCause = deathCause, + } - TriggerEvent('esx:onPlayerDeath', data) - TriggerServerEvent('esx:onPlayerDeath', data) + TriggerEvent("esx:onPlayerDeath", data) + TriggerServerEvent("esx:onPlayerDeath", data) end diff --git a/[core]/es_extended/client/modules/npwd.lua b/[core]/es_extended/client/modules/npwd.lua index cac2e111f..fd88354aa 100644 --- a/[core]/es_extended/client/modules/npwd.lua +++ b/[core]/es_extended/client/modules/npwd.lua @@ -1,57 +1,57 @@ -local npwd = GetResourceState('npwd'):find('start') and exports.npwd or nil +local npwd = GetResourceState("npwd"):find("start") and exports.npwd or nil local function checkPhone() - if not npwd then - return - end + if not npwd then + return + end - local phoneItem = ESX.SearchInventory('phone') - npwd:setPhoneDisabled((phoneItem and phoneItem.count or 0) <= 0) + local phoneItem = ESX.SearchInventory("phone") + npwd:setPhoneDisabled((phoneItem and phoneItem.count or 0) <= 0) end -RegisterNetEvent('esx:playerLoaded', checkPhone) +RegisterNetEvent("esx:playerLoaded", checkPhone) -AddEventHandler('onClientResourceStart', function(resource) - if resource ~= 'npwd' then - return - end +AddEventHandler("onClientResourceStart", function(resource) + if resource ~= "npwd" then + return + end - npwd = GetResourceState('npwd'):find('start') and exports.npwd or nil + npwd = GetResourceState("npwd"):find("start") and exports.npwd or nil - if ESX.PlayerLoaded then - checkPhone() - end + if ESX.PlayerLoaded then + checkPhone() + end end) -AddEventHandler('onClientResourceStop', function(resource) - if resource == 'npwd' then - npwd = nil - end +AddEventHandler("onClientResourceStop", function(resource) + if resource == "npwd" then + npwd = nil + end end) -RegisterNetEvent('esx:onPlayerLogout', function() - if not npwd then - return - end +RegisterNetEvent("esx:onPlayerLogout", function() + if not npwd then + return + end - npwd:setPhoneVisible(false) - npwd:setPhoneDisabled(true) + npwd:setPhoneVisible(false) + npwd:setPhoneDisabled(true) end) -RegisterNetEvent('esx:removeInventoryItem', function(item, count) - if not npwd then - return - end +RegisterNetEvent("esx:removeInventoryItem", function(item, count) + if not npwd then + return + end - if item == 'phone' and count == 0 then - npwd:setPhoneDisabled(true) - end + if item == "phone" and count == 0 then + npwd:setPhoneDisabled(true) + end end) -RegisterNetEvent('esx:addInventoryItem', function(item) - if not npwd or item ~= 'phone' then - return - end +RegisterNetEvent("esx:addInventoryItem", function(item) + if not npwd or item ~= "phone" then + return + end - npwd:setPhoneDisabled(false) + npwd:setPhoneDisabled(false) end) diff --git a/[core]/es_extended/client/modules/scaleform.lua b/[core]/es_extended/client/modules/scaleform.lua index 6ef9357a6..46e20e125 100644 --- a/[core]/es_extended/client/modules/scaleform.lua +++ b/[core]/es_extended/client/modules/scaleform.lua @@ -1,98 +1,98 @@ function ESX.Scaleform.ShowFreemodeMessage(title, msg, sec) - local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('MP_BIG_MESSAGE_FREEMODE') + local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie("MP_BIG_MESSAGE_FREEMODE") - BeginScaleformMovieMethod(scaleform, 'SHOW_SHARD_WASTED_MP_MESSAGE') - ScaleformMovieMethodAddParamTextureNameString(title) - ScaleformMovieMethodAddParamTextureNameString(msg) - EndScaleformMovieMethod() + BeginScaleformMovieMethod(scaleform, "SHOW_SHARD_WASTED_MP_MESSAGE") + ScaleformMovieMethodAddParamTextureNameString(title) + ScaleformMovieMethodAddParamTextureNameString(msg) + EndScaleformMovieMethod() - while sec > 0 do - Wait(0) - sec = sec - 0.01 + while sec > 0 do + Wait(0) + sec = sec - 0.01 - DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) - end + DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) + end - SetScaleformMovieAsNoLongerNeeded(scaleform) + SetScaleformMovieAsNoLongerNeeded(scaleform) end function ESX.Scaleform.ShowBreakingNews(title, msg, bottom, sec) - local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('BREAKING_NEWS') + local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie("BREAKING_NEWS") - BeginScaleformMovieMethod(scaleform, 'SET_TEXT') - ScaleformMovieMethodAddParamTextureNameString(msg) - ScaleformMovieMethodAddParamTextureNameString(bottom) - EndScaleformMovieMethod() + BeginScaleformMovieMethod(scaleform, "SET_TEXT") + ScaleformMovieMethodAddParamTextureNameString(msg) + ScaleformMovieMethodAddParamTextureNameString(bottom) + EndScaleformMovieMethod() - BeginScaleformMovieMethod(scaleform, 'SET_SCROLL_TEXT') - ScaleformMovieMethodAddParamInt(0) -- top ticker - ScaleformMovieMethodAddParamInt(0) -- Since this is the first string, start at 0 - ScaleformMovieMethodAddParamTextureNameString(title) + BeginScaleformMovieMethod(scaleform, "SET_SCROLL_TEXT") + ScaleformMovieMethodAddParamInt(0) -- top ticker + ScaleformMovieMethodAddParamInt(0) -- Since this is the first string, start at 0 + ScaleformMovieMethodAddParamTextureNameString(title) - EndScaleformMovieMethod() + EndScaleformMovieMethod() - BeginScaleformMovieMethod(scaleform, 'DISPLAY_SCROLL_TEXT') - ScaleformMovieMethodAddParamInt(0) -- Top ticker - ScaleformMovieMethodAddParamInt(0) -- Index of string + BeginScaleformMovieMethod(scaleform, "DISPLAY_SCROLL_TEXT") + ScaleformMovieMethodAddParamInt(0) -- Top ticker + ScaleformMovieMethodAddParamInt(0) -- Index of string - EndScaleformMovieMethod() + EndScaleformMovieMethod() - while sec > 0 do - Wait(0) - sec = sec - 0.01 + while sec > 0 do + Wait(0) + sec = sec - 0.01 - DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) - end + DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) + end - SetScaleformMovieAsNoLongerNeeded(scaleform) + SetScaleformMovieAsNoLongerNeeded(scaleform) end function ESX.Scaleform.ShowPopupWarning(title, msg, bottom, sec) - local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('POPUP_WARNING') + local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie("POPUP_WARNING") - BeginScaleformMovieMethod(scaleform, 'SHOW_POPUP_WARNING') + BeginScaleformMovieMethod(scaleform, "SHOW_POPUP_WARNING") - ScaleformMovieMethodAddParamFloat(500.0) -- black background - ScaleformMovieMethodAddParamTextureNameString(title) - ScaleformMovieMethodAddParamTextureNameString(msg) - ScaleformMovieMethodAddParamTextureNameString(bottom) - ScaleformMovieMethodAddParamBool(true) + ScaleformMovieMethodAddParamFloat(500.0) -- black background + ScaleformMovieMethodAddParamTextureNameString(title) + ScaleformMovieMethodAddParamTextureNameString(msg) + ScaleformMovieMethodAddParamTextureNameString(bottom) + ScaleformMovieMethodAddParamBool(true) - EndScaleformMovieMethod() + EndScaleformMovieMethod() - while sec > 0 do - Wait(0) - sec = sec - 0.01 + while sec > 0 do + Wait(0) + sec = sec - 0.01 - DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) - end + DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) + end - SetScaleformMovieAsNoLongerNeeded(scaleform) + SetScaleformMovieAsNoLongerNeeded(scaleform) end function ESX.Scaleform.ShowTrafficMovie(sec) - local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie('TRAFFIC_CAM') + local scaleform = ESX.Scaleform.Utils.RequestScaleformMovie("TRAFFIC_CAM") - BeginScaleformMovieMethod(scaleform, 'PLAY_CAM_MOVIE') + BeginScaleformMovieMethod(scaleform, "PLAY_CAM_MOVIE") - EndScaleformMovieMethod() + EndScaleformMovieMethod() - while sec > 0 do - Wait(0) - sec = sec - 0.01 + while sec > 0 do + Wait(0) + sec = sec - 0.01 - DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) - end + DrawScaleformMovieFullscreen(scaleform, 255, 255, 255, 255) + end - SetScaleformMovieAsNoLongerNeeded(scaleform) + SetScaleformMovieAsNoLongerNeeded(scaleform) end function ESX.Scaleform.Utils.RequestScaleformMovie(movie) - local scaleform = RequestScaleformMovie(movie) + local scaleform = RequestScaleformMovie(movie) - while not HasScaleformMovieLoaded(scaleform) do - Wait(0) - end + while not HasScaleformMovieLoaded(scaleform) do + Wait(0) + end - return scaleform + return scaleform end diff --git a/[core]/es_extended/client/modules/streaming.lua b/[core]/es_extended/client/modules/streaming.lua index bde539b28..958509783 100644 --- a/[core]/es_extended/client/modules/streaming.lua +++ b/[core]/es_extended/client/modules/streaming.lua @@ -1,85 +1,85 @@ function ESX.Streaming.RequestModel(modelHash, cb) - modelHash = (type(modelHash) == 'number' and modelHash or joaat(modelHash)) + modelHash = (type(modelHash) == "number" and modelHash or joaat(modelHash)) - if not HasModelLoaded(modelHash) and IsModelInCdimage(modelHash) then - RequestModel(modelHash) + if not HasModelLoaded(modelHash) and IsModelInCdimage(modelHash) then + RequestModel(modelHash) - while not HasModelLoaded(modelHash) do - Wait(0) - end - end + while not HasModelLoaded(modelHash) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end function ESX.Streaming.RequestStreamedTextureDict(textureDict, cb) - if not HasStreamedTextureDictLoaded(textureDict) then - RequestStreamedTextureDict(textureDict) + if not HasStreamedTextureDictLoaded(textureDict) then + RequestStreamedTextureDict(textureDict) - while not HasStreamedTextureDictLoaded(textureDict) do - Wait(0) - end - end + while not HasStreamedTextureDictLoaded(textureDict) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end function ESX.Streaming.RequestNamedPtfxAsset(assetName, cb) - if not HasNamedPtfxAssetLoaded(assetName) then - RequestNamedPtfxAsset(assetName) + if not HasNamedPtfxAssetLoaded(assetName) then + RequestNamedPtfxAsset(assetName) - while not HasNamedPtfxAssetLoaded(assetName) do - Wait(0) - end - end + while not HasNamedPtfxAssetLoaded(assetName) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end function ESX.Streaming.RequestAnimSet(animSet, cb) - if not HasAnimSetLoaded(animSet) then - RequestAnimSet(animSet) + if not HasAnimSetLoaded(animSet) then + RequestAnimSet(animSet) - while not HasAnimSetLoaded(animSet) do - Wait(0) - end - end + while not HasAnimSetLoaded(animSet) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end function ESX.Streaming.RequestAnimDict(animDict, cb) - if not HasAnimDictLoaded(animDict) then - RequestAnimDict(animDict) + if not HasAnimDictLoaded(animDict) then + RequestAnimDict(animDict) - while not HasAnimDictLoaded(animDict) do - Wait(0) - end - end + while not HasAnimDictLoaded(animDict) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end function ESX.Streaming.RequestWeaponAsset(weaponHash, cb) - if not HasWeaponAssetLoaded(weaponHash) then - RequestWeaponAsset(weaponHash) + if not HasWeaponAssetLoaded(weaponHash) then + RequestWeaponAsset(weaponHash) - while not HasWeaponAssetLoaded(weaponHash) do - Wait(0) - end - end + while not HasWeaponAssetLoaded(weaponHash) do + Wait(0) + end + end - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end end diff --git a/[core]/es_extended/client/wrapper.lua b/[core]/es_extended/client/wrapper.lua index 441312d8e..10247fefe 100644 --- a/[core]/es_extended/client/wrapper.lua +++ b/[core]/es_extended/client/wrapper.lua @@ -1,14 +1,14 @@ local Chunks = {} -RegisterNUICallback('__chunk', function(data, cb) - Chunks[data.id] = Chunks[data.id] or '' - Chunks[data.id] = Chunks[data.id] .. data.chunk +RegisterNUICallback("__chunk", function(data, cb) + Chunks[data.id] = Chunks[data.id] or "" + Chunks[data.id] = Chunks[data.id] .. data.chunk - if data['end'] then - local msg = json.decode(Chunks[data.id]) - TriggerEvent(GetCurrentResourceName() .. ':message:' .. data.__type, msg) - Chunks[data.id] = nil - end + if data["end"] then + local msg = json.decode(Chunks[data.id]) + TriggerEvent(GetCurrentResourceName() .. ":message:" .. data.__type, msg) + Chunks[data.id] = nil + end - cb('') + cb("") end) diff --git a/[core]/es_extended/common/functions.lua b/[core]/es_extended/common/functions.lua index 1bf9f8b76..f6414bdc8 100644 --- a/[core]/es_extended/common/functions.lua +++ b/[core]/es_extended/common/functions.lua @@ -1,100 +1,108 @@ 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 = 97, 122 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 = {} local weaponsByHash = {} CreateThread(function() - for index, weapon in pairs(Config.Weapons) do - weaponsByName[weapon.name] = index - weaponsByHash[joaat(weapon.name)] = weapon - end + for index, weapon in pairs(Config.Weapons) do + weaponsByName[weapon.name] = index + weaponsByHash[joaat(weapon.name)] = weapon + end end) function ESX.GetRandomString(length) - math.randomseed(GetGameTimer()) + math.randomseed(GetGameTimer()) - return length > 0 and ESX.GetRandomString(length - 1) .. Charset[math.random(1, #Charset)] or '' + return length > 0 and ESX.GetRandomString(length - 1) .. Charset[math.random(1, #Charset)] or "" end function ESX.GetConfig() - return Config + return Config end function ESX.GetWeapon(weaponName) - weaponName = string.upper(weaponName) + weaponName = string.upper(weaponName) - assert(weaponsByName[weaponName], "Invalid weapon name!") + assert(weaponsByName[weaponName], "Invalid weapon name!") - local index = weaponsByName[weaponName] - return index, Config.Weapons[index] + local index = weaponsByName[weaponName] + return index, Config.Weapons[index] end function ESX.GetWeaponFromHash(weaponHash) - weaponHash = type(weaponHash) == "string" and joaat(weaponHash) or weaponHash + weaponHash = type(weaponHash) == "string" and joaat(weaponHash) or weaponHash - return weaponsByHash[weaponHash] + return weaponsByHash[weaponHash] end function ESX.GetWeaponList(byHash) - return byHash and weaponsByHash or Config.Weapons + return byHash and weaponsByHash or Config.Weapons end function ESX.GetWeaponLabel(weaponName) - weaponName = string.upper(weaponName) + weaponName = string.upper(weaponName) - assert(weaponsByName[weaponName], "Invalid weapon name!") + assert(weaponsByName[weaponName], "Invalid weapon name!") - local index = weaponsByName[weaponName] - return Config.Weapons[index].label or "" + local index = weaponsByName[weaponName] + return Config.Weapons[index].label or "" end function ESX.GetWeaponComponent(weaponName, weaponComponent) - weaponName = string.upper(weaponName) + weaponName = string.upper(weaponName) - assert(weaponsByName[weaponName], "Invalid weapon name!") - local weapon = Config.Weapons[weaponsByName[weaponName]] + assert(weaponsByName[weaponName], "Invalid weapon name!") + local weapon = Config.Weapons[weaponsByName[weaponName]] - for _, component in ipairs(weapon.components) do - if component.name == weaponComponent then - return component - end - end + for _, component in ipairs(weapon.components) do + if component.name == weaponComponent then + return component + end + end end function ESX.DumpTable(table, nb) - if nb == nil then - nb = 0 - end - - if type(table) == 'table' then - local s = '' - for _ = 1, nb + 1, 1 do - s = s .. " " - end - - s = '{\n' - for k, v in pairs(table) do - 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' - end - - for _ = 1, nb, 1 do - s = s .. " " - end - - return s .. '}' - else - return tostring(table) - end + if nb == nil then + nb = 0 + end + + if type(table) == "table" then + local s = "" + for _ = 1, nb + 1, 1 do + s = s .. " " + end + + s = "{\n" + for k, v in pairs(table) do + 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" + end + + for _ = 1, nb, 1 do + s = s .. " " + end + + return s .. "}" + else + return tostring(table) + end end function ESX.Round(value, numDecimalPlaces) - return ESX.Math.Round(value, numDecimalPlaces) + return ESX.Math.Round(value, numDecimalPlaces) end diff --git a/[core]/es_extended/common/modules/math.lua b/[core]/es_extended/common/modules/math.lua index c851c08fb..9910d17e8 100644 --- a/[core]/es_extended/common/modules/math.lua +++ b/[core]/es_extended/common/modules/math.lua @@ -1,25 +1,25 @@ ESX.Math = {} function ESX.Math.Round(value, numDecimalPlaces) - if numDecimalPlaces then - local power = 10 ^ numDecimalPlaces - return math.floor((value * power) + 0.5) / (power) - else - return math.floor(value + 0.5) - end + if numDecimalPlaces then + local power = 10 ^ numDecimalPlaces + return math.floor((value * power) + 0.5) / power + else + return math.floor(value + 0.5) + end 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) - if value then - return (string.gsub(value, "^%s*(.-)%s*$", "%1")) - else - return nil - end + if value then + return (string.gsub(value, "^%s*(.-)%s*$", "%1")) + else + return nil + end end diff --git a/[core]/es_extended/common/modules/table.lua b/[core]/es_extended/common/modules/table.lua index 3593b245b..860f68c7f 100644 --- a/[core]/es_extended/common/modules/table.lua +++ b/[core]/es_extended/common/modules/table.lua @@ -2,182 +2,186 @@ ESX.Table = {} -- nil proof alternative to #table function ESX.Table.SizeOf(t) - local count = 0 + local count = 0 - for _, _ in pairs(t) do - count = count + 1 - end + for _, _ in pairs(t) do + count = count + 1 + end - return count + return count end function ESX.Table.Set(t) - local set = {} - for _, v in ipairs(t) do set[v] = true end - return set + local set = {} + for _, v in ipairs(t) do + set[v] = true + end + return set end function ESX.Table.IndexOf(t, value) - for i = 1, #t, 1 do - if t[i] == value then - return i - end - end + for i = 1, #t, 1 do + if t[i] == value then + return i + end + end - return -1 + return -1 end function ESX.Table.LastIndexOf(t, value) - for i = #t, 1, -1 do - if t[i] == value then - return i - end - end + for i = #t, 1, -1 do + if t[i] == value then + return i + end + end - return -1 + return -1 end function ESX.Table.Find(t, cb) - for i = 1, #t, 1 do - if cb(t[i]) then - return t[i] - end - end + for i = 1, #t, 1 do + if cb(t[i]) then + return t[i] + end + end - return nil + return nil end function ESX.Table.FindIndex(t, cb) - for i = 1, #t, 1 do - if cb(t[i]) then - return i - end - end + for i = 1, #t, 1 do + if cb(t[i]) then + return i + end + end - return -1 + return -1 end function ESX.Table.Filter(t, cb) - local newTable = {} + local newTable = {} - for i = 1, #t, 1 do - if cb(t[i]) then - table.insert(newTable, t[i]) - end - end + for i = 1, #t, 1 do + if cb(t[i]) then + table.insert(newTable, t[i]) + end + end - return newTable + return newTable end function ESX.Table.Map(t, cb) - local newTable = {} + local newTable = {} - for i = 1, #t, 1 do - newTable[i] = cb(t[i], i) - end + for i = 1, #t, 1 do + newTable[i] = cb(t[i], i) + end - return newTable + return newTable end function ESX.Table.Reverse(t) - local newTable = {} + local newTable = {} - for i = #t, 1, -1 do - table.insert(newTable, t[i]) - end + for i = #t, 1, -1 do + table.insert(newTable, t[i]) + end - return newTable + return newTable end function ESX.Table.Clone(t) - if type(t) ~= 'table' then return t end + if type(t) ~= "table" then + return t + end - local meta = getmetatable(t) - local target = {} + local meta = getmetatable(t) + local target = {} - for k, v in pairs(t) do - if type(v) == 'table' then - target[k] = ESX.Table.Clone(v) - else - target[k] = v - end - end + for k, v in pairs(t) do + if type(v) == "table" then + target[k] = ESX.Table.Clone(v) + else + target[k] = v + end + end - setmetatable(target, meta) + setmetatable(target, meta) - return target + return target end function ESX.Table.Concat(t1, t2) - local t3 = ESX.Table.Clone(t1) + local t3 = ESX.Table.Clone(t1) - for i = 1, #t2, 1 do - table.insert(t3, t2[i]) - end + for i = 1, #t2, 1 do + table.insert(t3, t2[i]) + end - return t3 + return t3 end function ESX.Table.Join(t, sep) - local str = '' + local str = "" - for i = 1, #t, 1 do - if i > 1 then - str = str .. (sep or ',') - end + for i = 1, #t, 1 do + if i > 1 then + str = str .. (sep or ",") + end - str = str .. t[i] - end + str = str .. t[i] + end - return str + return str 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 -- Description: sort function for pairs function ESX.Table.Sort(t, order) - -- collect the keys - local keys = {} - - 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) - return order(t, a, b) - end) - else - table.sort(keys) - end - - -- return the iterator function - local i = 0 - - return function() - i = i + 1 - if keys[i] then - return keys[i], t[keys[i]] - end - end + -- collect the keys + local keys = {} + + 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) + return order(t, a, b) + end) + else + table.sort(keys) + end + + -- return the iterator function + local i = 0 + + return function() + i = i + 1 + if keys[i] then + return keys[i], t[keys[i]] + end + end end diff --git a/[core]/es_extended/common/modules/timeout.lua b/[core]/es_extended/common/modules/timeout.lua index 814b086ce..381cbbcc3 100644 --- a/[core]/es_extended/common/modules/timeout.lua +++ b/[core]/es_extended/common/modules/timeout.lua @@ -2,22 +2,22 @@ local TimeoutCount = 0 local CancelledTimeouts = {} ESX.SetTimeout = function(msec, cb) - local id = TimeoutCount + 1 + local id = TimeoutCount + 1 - SetTimeout(msec, function() - if CancelledTimeouts[id] then - CancelledTimeouts[id] = nil - return - end + SetTimeout(msec, function() + if CancelledTimeouts[id] then + CancelledTimeouts[id] = nil + return + end - cb() - end) + cb() + end) - TimeoutCount = id + TimeoutCount = id - return id + return id end ESX.ClearTimeout = function(id) - CancelledTimeouts[id] = true + CancelledTimeouts[id] = true end diff --git a/[core]/es_extended/config.logs.lua b/[core]/es_extended/config.logs.lua index 34f916418..34c013a03 100644 --- a/[core]/es_extended/config.logs.lua +++ b/[core]/es_extended/config.logs.lua @@ -1,11 +1,11 @@ Config.DiscordLogs = { Webhooks = { - default = '', - test = '', - Chat = '', - UserActions = '', - Resources = '', - Paycheck = '' + default = "", + test = "", + Chat = "", + UserActions = "", + Resources = "", + Paycheck = "", }, Colors = { -- https://www.spycolor.com/ @@ -18,6 +18,6 @@ Config.DiscordLogs = { orange = 16744192, yellow = 16776960, pink = 16761035, - lightgreen = 65309 - } + lightgreen = 65309, + }, } diff --git a/[core]/es_extended/config.lua b/[core]/es_extended/config.lua index 574876b3c..996377542 100644 --- a/[core]/es_extended/config.lua +++ b/[core]/es_extended/config.lua @@ -1,19 +1,19 @@ -Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config = {} +Config.Locale = GetConvar("esx:locale", "en") -Config.Accounts = { - bank = { - label = TranslateCap('account_bank'), - round = true - }, - black_money = { - label = TranslateCap('account_black_money'), - round = true - }, - money = { - label = TranslateCap('account_money'), - round = true - } +Config.Accounts = { + bank = { + label = TranslateCap("account_bank"), + round = true, + }, + black_money = { + label = TranslateCap("account_black_money"), + round = true, + }, + money = { + label = TranslateCap("account_money"), + round = true, + }, } Config.StartingAccountMoney = { bank = 50000 } @@ -21,71 +21,70 @@ Config.StartingAccountMoney = { bank = 50000 } Config.StartingInventoryItems = false -- table/false 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 = { - ['owner'] = true, - ['admin'] = true + ["owner"] = true, + ["admin"] = true, } +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.DisableDisplayAmmo = false -- Disable ammunition display -Config.RemoveHudComponents = { - [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.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.DisableDisplayAmmo = false -- Disable ammunition display +Config.RemoveHudComponents = { + [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 = '........' -- Custom plates for AI vehicles +Config.SpawnVehMaxUpgrades = true -- admin vehicles spawn with max vehcle settings +Config.CustomAIPlates = "........" -- 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 89723d5c1..cbeecb54d 100644 --- a/[core]/es_extended/config.weapons.lua +++ b/[core]/es_extended/config.weapons.lua @@ -1,1024 +1,1036 @@ Config.DefaultWeaponTints = { - [0] = TranslateCap('tint_default'), - [1] = TranslateCap('tint_green'), - [2] = TranslateCap('tint_gold'), - [3] = TranslateCap('tint_pink'), - [4] = TranslateCap('tint_army'), - [5] = TranslateCap('tint_lspd'), - [6] = TranslateCap('tint_orange'), - [7] = TranslateCap('tint_platinum') + [0] = TranslateCap("tint_default"), + [1] = TranslateCap("tint_green"), + [2] = TranslateCap("tint_gold"), + [3] = TranslateCap("tint_pink"), + [4] = TranslateCap("tint_army"), + [5] = TranslateCap("tint_lspd"), + [6] = TranslateCap("tint_orange"), + [7] = TranslateCap("tint_platinum"), } 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_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 = '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` } - } - }, - -- Handguns - { - name = 'WEAPON_APPISTOL', - label = TranslateCap('weapon_appistol'), - 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 = '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` }, - 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 = '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` }, - 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 = 'WEAPON_REVOLVER', - label = TranslateCap('weapon_revolver'), - 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 = 'WEAPON_REVOLVER_MK2', - label = TranslateCap('weapon_revolver_mk2'), - 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 = '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` }, - 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 = 'WEAPON_PISTOL_MK2', - label = TranslateCap('weapon_pistol_mk2'), - 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 = 'WEAPON_PISTOL50', - label = TranslateCap('weapon_pistol50'), - 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 = 'WEAPON_SNSPISTOL', - label = TranslateCap('weapon_snspistol'), - 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 = 'WEAPON_SNSPISTOL_MK2', - label = TranslateCap('weapon_snspistol_mk2'), - 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 = '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` }, - 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` } - } - }, - -- Shotguns - { - name = 'WEAPON_ASSAULTSHOTGUN', - label = TranslateCap('weapon_assaultshotgun'), - 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 = '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` }, - 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 = 'WEAPON_COMBATSHOTGUN', - label = TranslateCap('weapon_combatshotgun'), - 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 = '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` }, - 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 = '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` }, - 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 = 'WEAPON_PUMPSHOTGUN_MK2', - label = TranslateCap('weapon_pumpshotgun_mk2'), - 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 = 'WEAPON_SAWNOFFSHOTGUN', - label = TranslateCap('weapon_sawnoffshotgun'), - 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` } - } - }, - -- SMG & LMG - { - name = 'WEAPON_ASSAULTSMG', - label = TranslateCap('weapon_assaultsmg'), - 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 = 'WEAPON_COMBATMG', - label = TranslateCap('weapon_combatmg'), - 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 = 'WEAPON_COMBATMG_MK2', - label = TranslateCap('weapon_combatmg_mk2'), - 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 = 'WEAPON_COMBATPDW', - label = TranslateCap('weapon_combatpdw'), - 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 = 'WEAPON_GUSENBERG', - label = TranslateCap('weapon_gusenberg'), - 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 = 'WEAPON_MACHINEPISTOL', - label = TranslateCap('weapon_machinepistol'), - 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 = 'WEAPON_MG', - label = TranslateCap('weapon_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 = 'WEAPON_MICROSMG', - label = TranslateCap('weapon_microsmg'), - 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 = 'WEAPON_MINISMG', - label = TranslateCap('weapon_minismg'), - 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 = 'WEAPON_SMG', - label = TranslateCap('weapon_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 = 'WEAPON_SMG_MK2', - label = TranslateCap('weapon_smg_mk2'), - 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 = '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` }, - 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 = 'WEAPON_ASSAULTRIFLE', - label = TranslateCap('weapon_assaultrifle'), - 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 = 'WEAPON_ASSAULTRIFLE_MK2', - label = TranslateCap('weapon_assaultrifle_mk2'), - 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 = 'WEAPON_BULLPUPRIFLE', - label = TranslateCap('weapon_bullpuprifle'), - 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 = 'WEAPON_BULLPUPRIFLE_MK2', - label = TranslateCap('weapon_bullpuprifle_mk2'), - 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 = 'WEAPON_CARBINERIFLE', - label = TranslateCap('weapon_carbinerifle'), - 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 = 'WEAPON_CARBINERIFLE_MK2', - label = TranslateCap('weapon_carbinerifle_mk2'), - 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 = 'WEAPON_COMPACTRIFLE', - label = TranslateCap('weapon_compactrifle'), - 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 = 'WEAPON_MILITARYRIFLE', - label = TranslateCap('weapon_militaryrifle'), - 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 = 'WEAPON_SPECIALCARBINE', - label = TranslateCap('weapon_specialcarbine'), - 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 = 'WEAPON_SPECIALCARBINE_MK2', - label = TranslateCap('weapon_specialcarbine_mk2'), - 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 = 'WEAPON_HEAVYRIFLE', - label = TranslateCap('weapon_heavyrifle'), - ammo = {label = TranslateCap('ammo_rounds'), hash = `AMMO_RIFLE`}, - tints = Config.DefaultWeaponTints, - components = { - {name = 'clip_default', label = TranslateCap('component_clip_default'), hash = `COMPONENT_HEAVYRIFLE_CLIP_01`}, - {name = 'clip_extended', label = TranslateCap('component_clip_extended'), hash = `COMPONENT_HEAVYRIFLE_CLIP_02`}, - {name = 'scope_holo', label = TranslateCap('component_scope_holo'), hash = `COMPONENT_HEAVYRIFLE_SIGHT_01` }, - {name = 'scope', label = TranslateCap('component_scope'), hash = `COMPONENT_AT_SCOPE_MEDIUM` }, - {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`} - } - }, - -- Sniper - { - name = 'WEAPON_HEAVYSNIPER', - label = TranslateCap('weapon_heavysniper'), - 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 = 'WEAPON_HEAVYSNIPER_MK2', - label = TranslateCap('weapon_heavysniper_mk2'), - 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 = 'WEAPON_MARKSMANRIFLE', - label = TranslateCap('weapon_marksmanrifle'), - 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 = 'WEAPON_MARKSMANRIFLE_MK2', - label = TranslateCap('weapon_marksmanrifle_mk2'), - 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 = 'WEAPON_SNIPERRIFLE', - label = TranslateCap('weapon_sniperrifle'), - 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` } - } - }, - -- 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` } }, - -- 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` } }, - -- 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, - 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 = '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_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` }, - }, - }, -} \ No newline at end of file + -- 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_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 = "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` }, + }, + }, + -- Handguns + { + name = "WEAPON_APPISTOL", + label = TranslateCap("weapon_appistol"), + 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 = "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` }, + 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 = "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` }, + 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 = "WEAPON_REVOLVER", + label = TranslateCap("weapon_revolver"), + 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 = "WEAPON_REVOLVER_MK2", + label = TranslateCap("weapon_revolver_mk2"), + 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 = "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` }, + 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 = "WEAPON_PISTOL_MK2", + label = TranslateCap("weapon_pistol_mk2"), + 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 = "WEAPON_PISTOL50", + label = TranslateCap("weapon_pistol50"), + 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 = "WEAPON_SNSPISTOL", + label = TranslateCap("weapon_snspistol"), + 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 = "WEAPON_SNSPISTOL_MK2", + label = TranslateCap("weapon_snspistol_mk2"), + 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 = "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` }, + 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` }, + }, + }, + -- Shotguns + { + name = "WEAPON_ASSAULTSHOTGUN", + label = TranslateCap("weapon_assaultshotgun"), + 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 = "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` }, + 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 = "WEAPON_COMBATSHOTGUN", + label = TranslateCap("weapon_combatshotgun"), + 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 = "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` }, + 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 = "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` }, + 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 = "WEAPON_PUMPSHOTGUN_MK2", + label = TranslateCap("weapon_pumpshotgun_mk2"), + 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 = "WEAPON_SAWNOFFSHOTGUN", + label = TranslateCap("weapon_sawnoffshotgun"), + 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` }, + }, + }, + -- SMG & LMG + { + name = "WEAPON_ASSAULTSMG", + label = TranslateCap("weapon_assaultsmg"), + 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 = "WEAPON_COMBATMG", + label = TranslateCap("weapon_combatmg"), + 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 = "WEAPON_COMBATMG_MK2", + label = TranslateCap("weapon_combatmg_mk2"), + 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 = "WEAPON_COMBATPDW", + label = TranslateCap("weapon_combatpdw"), + 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 = "WEAPON_GUSENBERG", + label = TranslateCap("weapon_gusenberg"), + 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 = "WEAPON_MACHINEPISTOL", + label = TranslateCap("weapon_machinepistol"), + 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 = "WEAPON_MG", + label = TranslateCap("weapon_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 = "WEAPON_MICROSMG", + label = TranslateCap("weapon_microsmg"), + 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 = "WEAPON_MINISMG", + label = TranslateCap("weapon_minismg"), + 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 = "WEAPON_SMG", + label = TranslateCap("weapon_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 = "WEAPON_SMG_MK2", + label = TranslateCap("weapon_smg_mk2"), + 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 = "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` }, + 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 = "WEAPON_ASSAULTRIFLE", + label = TranslateCap("weapon_assaultrifle"), + 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 = "WEAPON_ASSAULTRIFLE_MK2", + label = TranslateCap("weapon_assaultrifle_mk2"), + 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 = "WEAPON_BULLPUPRIFLE", + label = TranslateCap("weapon_bullpuprifle"), + 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 = "WEAPON_BULLPUPRIFLE_MK2", + label = TranslateCap("weapon_bullpuprifle_mk2"), + 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 = "WEAPON_CARBINERIFLE", + label = TranslateCap("weapon_carbinerifle"), + 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 = "WEAPON_CARBINERIFLE_MK2", + label = TranslateCap("weapon_carbinerifle_mk2"), + 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 = "WEAPON_COMPACTRIFLE", + label = TranslateCap("weapon_compactrifle"), + 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 = "WEAPON_MILITARYRIFLE", + label = TranslateCap("weapon_militaryrifle"), + 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 = "WEAPON_SPECIALCARBINE", + label = TranslateCap("weapon_specialcarbine"), + 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 = "WEAPON_SPECIALCARBINE_MK2", + label = TranslateCap("weapon_specialcarbine_mk2"), + 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 = "WEAPON_HEAVYRIFLE", + label = TranslateCap("weapon_heavyrifle"), + ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_RIFLE` }, + tints = Config.DefaultWeaponTints, + components = { + { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_HEAVYRIFLE_CLIP_01` }, + { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_HEAVYRIFLE_CLIP_02` }, + { name = "scope_holo", label = TranslateCap("component_scope_holo"), hash = `COMPONENT_HEAVYRIFLE_SIGHT_01` }, + { name = "scope", label = TranslateCap("component_scope"), hash = `COMPONENT_AT_SCOPE_MEDIUM` }, + { 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` }, + }, + }, + -- Sniper + { + name = "WEAPON_HEAVYSNIPER", + label = TranslateCap("weapon_heavysniper"), + 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 = "WEAPON_HEAVYSNIPER_MK2", + label = TranslateCap("weapon_heavysniper_mk2"), + 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 = "WEAPON_MARKSMANRIFLE", + label = TranslateCap("weapon_marksmanrifle"), + 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 = "WEAPON_MARKSMANRIFLE_MK2", + label = TranslateCap("weapon_marksmanrifle_mk2"), + 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 = "WEAPON_SNIPERRIFLE", + label = TranslateCap("weapon_sniperrifle"), + 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` }, + }, + }, + -- 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` } }, + -- 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` } }, + -- 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, + 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 = "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_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 8c7306869..712ea3d66 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -73,6 +73,7 @@ files { dependencies { '/native:0x6AE51D4B', + '/native:0xA61C8FC6', 'oxmysql', 'spawnmanager', } diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index 7a7933010..a81a71efb 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -1,8 +1,8 @@ -ESX = exports['es_extended']:getSharedObject() +ESX = exports["es_extended"]:getSharedObject() if not IsDuplicityVersion() then -- Only register this event for the client - AddEventHandler('esx:setPlayerData', function(key, val, last) - if GetInvokingResource() == 'es_extended' then + AddEventHandler("esx:setPlayerData", function(key, val, last) + if GetInvokingResource() == "es_extended" then ESX.PlayerData[key] = val if OnPlayerData then OnPlayerData(key, val, last) @@ -10,12 +10,12 @@ if not IsDuplicityVersion() then -- Only register this event for the client end end) - RegisterNetEvent('esx:playerLoaded', function(xPlayer) + RegisterNetEvent("esx:playerLoaded", function(xPlayer) ESX.PlayerData = xPlayer ESX.PlayerLoaded = true end) - RegisterNetEvent('esx:onPlayerLogout', function() + RegisterNetEvent("esx:onPlayerLogout", function() ESX.PlayerLoaded = false ESX.PlayerData = {} end) diff --git a/[core]/es_extended/locale.lua b/[core]/es_extended/locale.lua index a5e2207ea..98a323db8 100644 --- a/[core]/es_extended/locale.lua +++ b/[core]/es_extended/locale.lua @@ -1,27 +1,27 @@ Locales = {} 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!' - end - if Locales[Config.Locale] then - if Locales[Config.Locale][str] then - return string.format(Locales[Config.Locale][str], ...) - elseif Config.Locale ~= 'en' and Locales['en'] and Locales['en'][str] then - return string.format(Locales['en'][str], ...) - else - 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], ...) - else - return 'Locale [' .. Config.Locale .. '] does not exist' - end + 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!" + end + if Locales[Config.Locale] then + if Locales[Config.Locale][str] then + return string.format(Locales[Config.Locale][str], ...) + elseif Config.Locale ~= "en" and Locales["en"] and Locales["en"][str] then + return string.format(Locales["en"][str], ...) + else + 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], ...) + else + return "Locale [" .. Config.Locale .. "] does not exist" + end end function TranslateCap(str, ...) -- Translate string first char uppercase - return _(str, ...):gsub("^%l", string.upper) + return _(str, ...):gsub("^%l", string.upper) end _ = Translate diff --git a/[core]/es_extended/locales/cs.lua b/[core]/es_extended/locales/cs.lua index e658fc612..0e9d3a92b 100644 --- a/[core]/es_extended/locales/cs.lua +++ b/[core]/es_extended/locales/cs.lua @@ -1,371 +1,371 @@ Locales["cs"] = { - -- Inventory - ["inventory"] = "Inventář ( Váha %s / %s )", - ["use"] = "Použít", - ["give"] = "Darovat", - ["remove"] = "Odhodit", - ["return"] = "Vrátit", - ["give_to"] = "Darováno", - ["amount"] = "Počet", - ["giveammo"] = "Podat náboje", - ["amountammo"] = "Počet nábojů", - ["noammo"] = "Nedostatek!", - ["gave_item"] = "Daroval %sx %s pro %s", - ["received_item"] = "Získáno %sx %s od %s", - ["gave_weapon"] = "Předání %s pro %s", - ["gave_weapon_ammo"] = "Darování ~o~%sx %s do %s pro %s", - ["gave_weapon_withammo"] = "Darování %s s ~o~%sx %s pro %s", - ["gave_weapon_hasalready"] = "%s již vlastní %s", - ["gave_weapon_noweapon"] = "%s nemá tuto zbraň", - ["received_weapon"] = "Obdrženo %s od %s", - ["received_weapon_ammo"] = "Obdrženo ~o~%sx %s pro zbraň %s od %s", - ["received_weapon_withammo"] = "Obdrženo %s s ~o~%sx %s od %s", - ["received_weapon_hasalready"] = "%s se snažil darovat %s, ale již tuto zbraň máš", - ["received_weapon_noweapon"] = "%s se snažil ti dát náboje %s, ale nemáš potřebnou zbrań", - ["gave_account_money"] = "Darováno $%s (%s) pro %s", - ["received_account_money"] = "Získáno $%s (%s) od %s", - ["amount_invalid"] = "Špatné množství", - ["players_nearby"] = "Žádný hráč není poblíž", - ["ex_inv_lim"] = "Nelze sebrat,protože máš plné kapsy %s", - ["imp_invalid_quantity"] = "Neplatné množství", - ["imp_invalid_amount"] = "Nelze provést, neplatné množství", - ["threw_standard"] = "Zahozeno %sx %s", - ["threw_account"] = "Zahozeno $%s %s", - ["threw_weapon"] = "Zahozeno %s", - ["threw_weapon_ammo"] = "Zahozeno %s s ~o~%sx %s", - ["threw_weapon_already"] = "Již vlastníš tuto zbraň", - ["threw_cannot_pickup"] = "Kapsy máš plné, nemůžeš sebrat!", - ["threw_pickup_prompt"] = "Zmáčkni E pro sebrání!", - - -- Key mapping - ["keymap_showinventory"] = "Otevřít inventář", - - -- Salary related - ["received_salary"] = "Obdržel jsi: $%s", - ["received_help"] = "Obdržel jsi svůj podíl: $%s", - ["company_nomoney"] = "Firma kde pracujete je příliš chudá, aby vám zaplatila", - ["received_paycheck"] = "Obdržena platba", - ["bank"] = "Banka", - ["account_bank"] = "V bance", - ["account_black_money"] = "Špináve peníze", - ["account_money"] = "V kapse", - - ["act_imp"] = "Nelze provést", - ["in_vehicle"] = "Nelze provést, hráč je v autě", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'Přivolat si hráče k sobě', - ['command_car'] = 'Spawnout vozidlo', - ['command_car_car'] = 'Zadej jméno vozidla nebo spawnname', - ['command_cardel'] = 'Odstranění vozidla v okolí', - ['command_cardel_radius'] = 'Odstranění vozidla v určeném dosahu', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Vymazat text v chatu', - ['command_clearall'] = 'Vymazat chet pro všechny hráče', - ['command_clearinventory'] = 'Vymazat všechny věci z invetáře hráče', - ['command_clearloadout'] = 'Vymazat všechny zbraně z inventáře hráče', - ['command_freeze'] = 'Zmrazit hráče', - ['command_unfreeze'] = 'Odmrazit hráče', - ['command_giveaccountmoney'] = 'Poslat peníze na účet ', - ['command_giveaccountmoney_account'] = 'Převést peníze na účet', - ['command_giveaccountmoney_amount'] = 'Částka k poslání', - ['command_giveaccountmoney_invalid'] = 'Neplátné jméno', - ['command_giveitem'] = 'Darovat věc hráči', - ['command_giveitem_item'] = 'Název věci', - ['command_giveitem_count'] = 'Množství', - ['command_giveweapon'] = 'Dát zbraň hráči', - ['command_giveweapon_weapon'] = 'Název zbraně', - ['command_giveweapon_ammo'] = 'Množství náboje', - ['command_giveweapon_hasalready'] = 'Hráč již má tuto zbraň', - ['command_giveweaponcomponent'] = 'Darovat přídavek na zbraň', - ['command_giveweaponcomponent_component'] = 'Název zbraně', - ['command_giveweaponcomponent_invalid'] = 'Špatné jméno přídavku', - ['command_giveweaponcomponent_hasalready'] = 'Hráč již má tento přídavek', - ['command_giveweaponcomponent_missingweapon'] = 'Hráč nemá tuto zbrań', - ['command_goto'] = 'Teleportování sebe k hráči', - ['command_kill'] = 'Zabití hráče', - ['command_save'] = 'Uložení dat hráče', - ['command_saveall'] = 'Uložení veškerých dat hráče', - ['command_setaccountmoney'] = 'Nastavení určeného počtu peněz', - ['command_setaccountmoney_amount'] = 'Počet peněz', - ['command_setcoords'] = 'Teleportování na určené souřadnice', - ['command_setcoords_x'] = 'Hodnota X', - ['command_setcoords_y'] = 'Hodnota Y', - ['command_setcoords_z'] = 'Hodnota Z', - ['command_setjob'] = 'Nastavit práci hráči', - ['command_setjob_job'] = 'Název práce', - ['command_setjob_grade'] = 'Pozice ve firmě', - ['command_setjob_invalid'] = 'Špatné zadání práce,hodnosti nebo i obou hodnot', - ['command_setgroup'] = 'Nastavení práv hráči', - ['command_setgroup_group'] = 'Název skupiny', - ['commanderror_argumentmismatch'] = 'Chybný počet hodnot (správně %s, potřebných %s)', - ['commanderror_argumentmismatch_number'] = 'Chybně zadaná hodnot #%s (správně, špatně)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Špatný předmět', - ['commanderror_invalidweapon'] = 'Špatná zbraň', - ['commanderror_console'] = 'příkaz nelze být zpracován v konzoli', - ['commanderror_invalidcommand'] = 'Špatný příakz - /%s', - ['commanderror_invalidplayerid'] = 'Hráč není dostupný', - ['commandgeneric_playerid'] = 'Id hráče', - ['command_giveammo_noweapon_found'] = '%s nemá tuto zbraň', - ['command_giveammo_weapon'] = 'Název zbraně', - ['command_giveammo_ammo'] = 'Počet nábojů', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "£%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dýka", - ["weapon_bat"] = "Baseballová pálka", - ["weapon_battleaxe"] = "Bitevní sekera", - ["weapon_bottle"] = "Rozbitá lahve", - ["weapon_crowbar"] = "Páčidlo", - ["weapon_flashlight"] = "Baterka", - ["weapon_golfclub"] = "Golfová hůl", - ["weapon_hammer"] = "Kladivo", - ["weapon_hatchet"] = "Sekera", - ["weapon_knife"] = "Nůž", - ["weapon_knuckle"] = "Boxer", - ["weapon_machete"] = "Mačeta", - ["weapon_nightstick"] = "Policejní obušek", - ["weapon_wrench"] = "Francouzský klíč", - ["weapon_poolcue"] = "Kulečníkové tágo", - ["weapon_stone_hatchet"] = "Kamenná sekera", - ["weapon_switchblade"] = "Vystřelovací nůž", - - -- Handguns - ["weapon_appistol"] = "AP pistol", - ["weapon_ceramicpistol"] = "Ceramic pistol", - ["weapon_combatpistol"] = "Combat pistol", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadget Pistol", - ["weapon_heavypistol"] = "Heavy Pistol", - ["weapon_revolver"] = "Heavy Revolver", - ["weapon_revolver_mk2"] = "Heavy Revolver MK2", - ["weapon_marksmanpistol"] = "Marksman Pistol", - ["weapon_pistol"] = "Pistol", - ["weapon_pistol_mk2"] = "Pistol MK2", - ["weapon_pistol50"] = "Pistol .50", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistol", - - -- Shotguns - ["weapon_assaultshotgun"] = "Assault Shotgun", - ["weapon_autoshotgun"] = "Auto Shotgun", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Combat Shotgun", - ["weapon_dbshotgun"] = "Double Barrel Shotgun", - ["weapon_heavyshotgun"] = "Heavy Shotgun", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pump Shotgun", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Assault SMG", - ["weapon_combatmg"] = "Combat MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Machine Pistol", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unholy Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Advanced Rifle", - ["weapon_assaultrifle"] = "Assault Rifle", - ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", - ["weapon_bullpuprifle"] = "Bullpup Rifle", - ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", - ["weapon_carbinerifle"] = "Carbine Rifle", - ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", - ["weapon_compactrifle"] = "Compact Rifle", - ["weapon_militaryrifle"] = "Military Rifle", - ["weapon_specialcarbine"] = "Special Carbine", - ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - - -- Sniper - ["weapon_heavysniper"] = "Heavy Sniper", - ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", - ["weapon_marksmanrifle"] = "Marksman Rifle", - ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", - ["weapon_sniperrifle"] = "Sniper Rifle", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Compact Launcher", - ["weapon_firework"] = "Firework Launcher", - ["weapon_grenadelauncher"] = "Grenade Launcher", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Rocket Launcher", - ["weapon_rayminigun"] = "Widowmaker", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Detektor kovu", - ["weapon_precisionrifle"] = "Precision Rifle", - ["weapon_tactilerifle"] = "Service Carbine", - - -- 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 - - -- Thrown - ["weapon_ball"] = "Míček", - ["weapon_bzgas"] = "Smrtící slzný plyn", - ["weapon_flare"] = "Světlice", - ["weapon_grenade"] = "Granát", - ["weapon_petrolcan"] = "Kanistr", - ["weapon_hazardcan"] = "Hazardous Jerrycan", - ["weapon_molotov"] = "Molotův koktejl", - ["weapon_proxmine"] = "Pohybová mina", - ["weapon_pipebomb"] = "Trubková bomba", - ["weapon_snowball"] = "Sněhová koule", - ["weapon_stickybomb"] = "C4", - ["weapon_smokegrenade"] = "Slzný plyn", - - -- Special - ["weapon_fireextinguisher"] = "Hasící přístroj", - ["weapon_digiscanner"] = "Skener", - ["weapon_garbagebag"] = "Odpadkový pytel", - ["weapon_handcuffs"] = "Pouta", - ["gadget_nightvision"] = "Noční vidění", - ["gadget_parachute"] = "Padák", - - -- Weapon Components - ["component_knuckle_base"] = "base Model", - ["component_knuckle_pimp"] = "the Pimp", - ["component_knuckle_ballas"] = "the Ballas", - ["component_knuckle_dollar"] = "the Hustler", - ["component_knuckle_diamond"] = "the Rock", - ["component_knuckle_hate"] = "the Hater", - ["component_knuckle_love"] = "the Lover", - ["component_knuckle_player"] = "the Player", - ["component_knuckle_king"] = "the King", - ["component_knuckle_vagos"] = "the Vagos", - - ["component_luxary_finish"] = "luxary Weapon Finish", - - ["component_handle_default"] = "default Handle", - ["component_handle_vip"] = "vIP Handle", - ["component_handle_bodyguard"] = "bodyguard Handle", - - ["component_vip_finish"] = "vIP Finish", - ["component_bodyguard_finish"] = "bodyguard Finish", - - ["component_camo_finish"] = "digital Camo", - ["component_camo_finish2"] = "brushstroke Camo", - ["component_camo_finish3"] = "woodland Camo", - ["component_camo_finish4"] = "skull Camo", - ["component_camo_finish5"] = "sessanta Nove Camo", - ["component_camo_finish6"] = "perseus Camo", - ["component_camo_finish7"] = "leopard Camo", - ["component_camo_finish8"] = "zebra Camo", - ["component_camo_finish9"] = "geometric Camo", - ["component_camo_finish10"] = "boom Camo", - ["component_camo_finish11"] = "patriotic Camo", - - ["component_camo_slide_finish"] = "digital Slide Camo", - ["component_camo_slide_finish2"] = "brushstroke Slide Camo", - ["component_camo_slide_finish3"] = "woodland Slide Camo", - ["component_camo_slide_finish4"] = "skull Slide Camo", - ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", - ["component_camo_slide_finish6"] = "perseus Slide Camo", - ["component_camo_slide_finish7"] = "leopard Slide Camo", - ["component_camo_slide_finish8"] = "zebra Slide Camo", - ["component_camo_slide_finish9"] = "geometric Slide Camo", - ["component_camo_slide_finish10"] = "boom Slide Camo", - ["component_camo_slide_finish11"] = "patriotic Slide Camo", - - ["component_clip_default"] = "default Magazine", - ["component_clip_extended"] = "extended Magazine", - ["component_clip_drum"] = "drum Magazine", - ["component_clip_box"] = "box Magazine", - - ["component_scope_holo"] = "holographic Scope", - ["component_scope_small"] = "small Scope", - ["component_scope_medium"] = "medium Scope", - ["component_scope_large"] = "large Scope", - ["component_scope"] = "mounted Scope", - ["component_scope_advanced"] = "advanced Scope", - ["component_ironsights"] = "ironsights", - - ["component_suppressor"] = "suppressor", - ["component_compensator"] = "compensator", - - ["component_muzzle_flat"] = "flat Muzzle Brake", - ["component_muzzle_tactical"] = "tactical Muzzle Brake", - ["component_muzzle_fat"] = "fat-End Muzzle Brake", - ["component_muzzle_precision"] = "precision Muzzle Brake", - ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", - ["component_muzzle_slanted"] = "slanted Muzzle Brake", - ["component_muzzle_split"] = "split-End Muzzle Brake", - ["component_muzzle_squared"] = "squared Muzzle Brake", - - ["component_flashlight"] = "flashlight", - ["component_grip"] = "grip", - - ["component_barrel_default"] = "default Barrel", - ["component_barrel_heavy"] = "heavy Barrel", - - ["component_ammo_tracer"] = "tracer Ammo", - ["component_ammo_incendiary"] = "incendiary Ammo", - ["component_ammo_hollowpoint"] = "hollowpoint Ammo", - ["component_ammo_fmj"] = "fMJ Ammo", - ["component_ammo_armor"] = "armor Piercing Ammo", - ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", - - ["component_shells_default"] = "default Shells", - ["component_shells_incendiary"] = "dragons Breath Shells", - ["component_shells_armor"] = "steel Buckshot Shells", - ["component_shells_hollowpoint"] = "flechette Shells", - ["component_shells_explosive"] = "explosive Slug Shells", - - -- Weapon Ammo - ["ammo_rounds"] = "round(s)", - ["ammo_shells"] = "shell(s)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "gallons of fuel", - ["ammo_firework"] = "firework(s)", - ["ammo_rockets"] = "rocket(s)", - ["ammo_grenadelauncher"] = "grenade(s)", - ["ammo_grenade"] = "grenade(s)", - ["ammo_stickybomb"] = "bomb(s)", - ["ammo_pipebomb"] = "bomb(s)", - ["ammo_smokebomb"] = "bomb(s)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mine(s)", - ["ammo_bzgas"] = "can(s)", - ["ammo_ball"] = "ball(s)", - ["ammo_snowball"] = "snowball(s)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "default skin", - ["tint_green"] = "green skin", - ["tint_gold"] = "gold skin", - ["tint_pink"] = "pink skin", - ["tint_army"] = "army skin", - ["tint_lspd"] = "blue skin", - ["tint_orange"] = "orange skin", - ["tint_platinum"] = "platinum skin", + -- Inventory + ["inventory"] = "Inventář ( Váha %s / %s )", + ["use"] = "Použít", + ["give"] = "Darovat", + ["remove"] = "Odhodit", + ["return"] = "Vrátit", + ["give_to"] = "Darováno", + ["amount"] = "Počet", + ["giveammo"] = "Podat náboje", + ["amountammo"] = "Počet nábojů", + ["noammo"] = "Nedostatek!", + ["gave_item"] = "Daroval %sx %s pro %s", + ["received_item"] = "Získáno %sx %s od %s", + ["gave_weapon"] = "Předání %s pro %s", + ["gave_weapon_ammo"] = "Darování ~o~%sx %s do %s pro %s", + ["gave_weapon_withammo"] = "Darování %s s ~o~%sx %s pro %s", + ["gave_weapon_hasalready"] = "%s již vlastní %s", + ["gave_weapon_noweapon"] = "%s nemá tuto zbraň", + ["received_weapon"] = "Obdrženo %s od %s", + ["received_weapon_ammo"] = "Obdrženo ~o~%sx %s pro zbraň %s od %s", + ["received_weapon_withammo"] = "Obdrženo %s s ~o~%sx %s od %s", + ["received_weapon_hasalready"] = "%s se snažil darovat %s, ale již tuto zbraň máš", + ["received_weapon_noweapon"] = "%s se snažil ti dát náboje %s, ale nemáš potřebnou zbrań", + ["gave_account_money"] = "Darováno $%s (%s) pro %s", + ["received_account_money"] = "Získáno $%s (%s) od %s", + ["amount_invalid"] = "Špatné množství", + ["players_nearby"] = "Žádný hráč není poblíž", + ["ex_inv_lim"] = "Nelze sebrat,protože máš plné kapsy %s", + ["imp_invalid_quantity"] = "Neplatné množství", + ["imp_invalid_amount"] = "Nelze provést, neplatné množství", + ["threw_standard"] = "Zahozeno %sx %s", + ["threw_account"] = "Zahozeno $%s %s", + ["threw_weapon"] = "Zahozeno %s", + ["threw_weapon_ammo"] = "Zahozeno %s s ~o~%sx %s", + ["threw_weapon_already"] = "Již vlastníš tuto zbraň", + ["threw_cannot_pickup"] = "Kapsy máš plné, nemůžeš sebrat!", + ["threw_pickup_prompt"] = "Zmáčkni E pro sebrání!", + + -- Key mapping + ["keymap_showinventory"] = "Otevřít inventář", + + -- Salary related + ["received_salary"] = "Obdržel jsi: $%s", + ["received_help"] = "Obdržel jsi svůj podíl: $%s", + ["company_nomoney"] = "Firma kde pracujete je příliš chudá, aby vám zaplatila", + ["received_paycheck"] = "Obdržena platba", + ["bank"] = "Banka", + ["account_bank"] = "V bance", + ["account_black_money"] = "Špináve peníze", + ["account_money"] = "V kapse", + + ["act_imp"] = "Nelze provést", + ["in_vehicle"] = "Nelze provést, hráč je v autě", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "Přivolat si hráče k sobě", + ["command_car"] = "Spawnout vozidlo", + ["command_car_car"] = "Zadej jméno vozidla nebo spawnname", + ["command_cardel"] = "Odstranění vozidla v okolí", + ["command_cardel_radius"] = "Odstranění vozidla v určeném dosahu", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Vymazat text v chatu", + ["command_clearall"] = "Vymazat chet pro všechny hráče", + ["command_clearinventory"] = "Vymazat všechny věci z invetáře hráče", + ["command_clearloadout"] = "Vymazat všechny zbraně z inventáře hráče", + ["command_freeze"] = "Zmrazit hráče", + ["command_unfreeze"] = "Odmrazit hráče", + ["command_giveaccountmoney"] = "Poslat peníze na účet ", + ["command_giveaccountmoney_account"] = "Převést peníze na účet", + ["command_giveaccountmoney_amount"] = "Částka k poslání", + ["command_giveaccountmoney_invalid"] = "Neplátné jméno", + ["command_giveitem"] = "Darovat věc hráči", + ["command_giveitem_item"] = "Název věci", + ["command_giveitem_count"] = "Množství", + ["command_giveweapon"] = "Dát zbraň hráči", + ["command_giveweapon_weapon"] = "Název zbraně", + ["command_giveweapon_ammo"] = "Množství náboje", + ["command_giveweapon_hasalready"] = "Hráč již má tuto zbraň", + ["command_giveweaponcomponent"] = "Darovat přídavek na zbraň", + ["command_giveweaponcomponent_component"] = "Název zbraně", + ["command_giveweaponcomponent_invalid"] = "Špatné jméno přídavku", + ["command_giveweaponcomponent_hasalready"] = "Hráč již má tento přídavek", + ["command_giveweaponcomponent_missingweapon"] = "Hráč nemá tuto zbrań", + ["command_goto"] = "Teleportování sebe k hráči", + ["command_kill"] = "Zabití hráče", + ["command_save"] = "Uložení dat hráče", + ["command_saveall"] = "Uložení veškerých dat hráče", + ["command_setaccountmoney"] = "Nastavení určeného počtu peněz", + ["command_setaccountmoney_amount"] = "Počet peněz", + ["command_setcoords"] = "Teleportování na určené souřadnice", + ["command_setcoords_x"] = "Hodnota X", + ["command_setcoords_y"] = "Hodnota Y", + ["command_setcoords_z"] = "Hodnota Z", + ["command_setjob"] = "Nastavit práci hráči", + ["command_setjob_job"] = "Název práce", + ["command_setjob_grade"] = "Pozice ve firmě", + ["command_setjob_invalid"] = "Špatné zadání práce,hodnosti nebo i obou hodnot", + ["command_setgroup"] = "Nastavení práv hráči", + ["command_setgroup_group"] = "Název skupiny", + ["commanderror_argumentmismatch"] = "Chybný počet hodnot (správně %s, potřebných %s)", + ["commanderror_argumentmismatch_number"] = "Chybně zadaná hodnot #%s (správně, špatně)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Špatný předmět", + ["commanderror_invalidweapon"] = "Špatná zbraň", + ["commanderror_console"] = "příkaz nelze být zpracován v konzoli", + ["commanderror_invalidcommand"] = "Špatný příkaz - /%s", + ["commanderror_invalidplayerid"] = "Hráč není dostupný", + ["commandgeneric_playerid"] = "Id hráče", + ["command_giveammo_noweapon_found"] = "%s nemá tuto zbraň", + ["command_giveammo_weapon"] = "Název zbraně", + ["command_giveammo_ammo"] = "Počet nábojů", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dýka", + ["weapon_bat"] = "Baseballová pálka", + ["weapon_battleaxe"] = "Bitevní sekera", + ["weapon_bottle"] = "Rozbitá lahve", + ["weapon_crowbar"] = "Páčidlo", + ["weapon_flashlight"] = "Baterka", + ["weapon_golfclub"] = "Golfová hůl", + ["weapon_hammer"] = "Kladivo", + ["weapon_hatchet"] = "Sekera", + ["weapon_knife"] = "Nůž", + ["weapon_knuckle"] = "Boxer", + ["weapon_machete"] = "Mačeta", + ["weapon_nightstick"] = "Policejní obušek", + ["weapon_wrench"] = "Francouzský klíč", + ["weapon_poolcue"] = "Kulečníkové tágo", + ["weapon_stone_hatchet"] = "Kamenná sekera", + ["weapon_switchblade"] = "Vystřelovací nůž", + + -- Handguns + ["weapon_appistol"] = "AP pistol", + ["weapon_ceramicpistol"] = "Ceramic pistol", + ["weapon_combatpistol"] = "Combat pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Detektor kovu", + ["weapon_precisionrifle"] = "Precision Rifle", + ["weapon_tactilerifle"] = "Service Carbine", + + -- 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 + + -- Thrown + ["weapon_ball"] = "Míček", + ["weapon_bzgas"] = "Smrtící slzný plyn", + ["weapon_flare"] = "Světlice", + ["weapon_grenade"] = "Granát", + ["weapon_petrolcan"] = "Kanistr", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotův koktejl", + ["weapon_proxmine"] = "Pohybová mina", + ["weapon_pipebomb"] = "Trubková bomba", + ["weapon_snowball"] = "Sněhová koule", + ["weapon_stickybomb"] = "C4", + ["weapon_smokegrenade"] = "Slzný plyn", + + -- Special + ["weapon_fireextinguisher"] = "Hasící přístroj", + ["weapon_digiscanner"] = "Skener", + ["weapon_garbagebag"] = "Odpadkový pytel", + ["weapon_handcuffs"] = "Pouta", + ["gadget_nightvision"] = "Noční vidění", + ["gadget_parachute"] = "Padák", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", } diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index 52f4dd16c..4b48d3128 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -1,381 +1,381 @@ Locales["de"] = { - -- Inventory - ["inventory"] = "Inventar ( Gewicht %s / %s )", - ["use"] = "Benutzen", - ["give"] = "Geben", - ["remove"] = "Entsorgen", - ["return"] = "Zurück", - ["give_to"] = "Geben an", - ["amount"] = "Anzahl", - ["giveammo"] = "Munition geben", - ["amountammo"] = "Munitions Anzahl", - ["noammo"] = "Nicht Genug!", - ["gave_item"] = "Du gibst %sx %s an %s", - ["received_item"] = "Du bekommst %sx %s von %s", - ["gave_weapon"] = "Du gibst %s an %s", - ["gave_weapon_ammo"] = "Du gibst ~o~%sx %s für %s an %s", - ["gave_weapon_withammo"] = "Du gibst %s mit ~o~%sx %s an %s", - ["gave_weapon_hasalready"] = "%s hat bereits %s", - ["gave_weapon_noweapon"] = "%s hat diese Waffe nicht", - ["received_weapon"] = "Du bekommst %s von %s", - ["received_weapon_ammo"] = "Du bekommst ~o~%sx %s für deine %s von %s", - ["received_weapon_withammo"] = "Du bekommst %s mit ~o~%sx %s von %s", - ["received_weapon_hasalready"] = "%s hat versucht dir eine %s zu geben, jedoch hast du diese Waffe bereits!", - ["received_weapon_noweapon"] = "%s hat versucht dir Munition für eine %s zu geben, jedoch hast du diese Waffe bereits!", - ["gave_account_money"] = "Du gibst %s€ (%s) an %s", - ["received_account_money"] = "Du bekommst %s€ (%s) von %s", - ["amount_invalid"] = "Ungültige Anzahl", - ["players_nearby"] = "Keine Personen in der Nähe!", - ["ex_inv_lim"] = "Du kannst diese Aktion nicht ausführen!, Inventarlimit für %s überschritten.", - ["imp_invalid_quantity"] = "Du kannst diese Aktion nicht ausführen!, Ungültige Anzahl!", - ["imp_invalid_amount"] = "Du kannst diese Aktion nicht ausführen!, Ungültige Anzahl", - ["threw_standard"] = "Du entsorgst %sx %s", - ["threw_account"] = "Du Entsorgst %s€ %s", - ["threw_weapon"] = "Du entsorgst %s", - ["threw_weapon_ammo"] = "Du entsorgst %s mit ~o~%sx %s", - ["threw_weapon_already"] = "Du hast diese Waffe bereits!", - ["threw_cannot_pickup"] = "Inventar ist voll! Du kannst dies nicht aufheben", - ["threw_pickup_prompt"] = "Drücke [E] zum aufheben", - - -- Key mapping - ["keymap_showinventory"] = "Inventar Anzeigen", - - -- Salary related - ["received_salary"] = "Dein Gehaltscheck ist angekommen!: %s€", - ["received_help"] = "Deine Sozialhilfe ist angekommen: %s€", - ["company_nomoney"] = "Die Firma an der du Angestellt bist, ist leider Arm und kann dich nicht bezahlen :(", - ["received_paycheck"] = "Gehaltscheck erhalten", - ["bank"] = "Maze Bank", - ["account_bank"] = "Bank", - ["account_black_money"] = "Schwarzgeld", - ["account_money"] = "Bargeld", - - ["act_imp"] = "Du kannst diese Aktion nicht ausführen!", - ["in_vehicle"] = "Du kannst diese Aktion nicht ausführen! Person ist in einem Fahrzeug", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'Person zu dir bringen', - ['command_car'] = 'Fahrzeug Spawnen', - ['command_car_car'] = 'Fahrzeug Model oder Hash', - ['command_cardel'] = 'Fahrzeuge entfernen', - ['command_cardel_radius'] = 'Entfernt alle Fahrzeuge in einem bestimmten Radius', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Textchat leeren', - ['command_clearall'] = 'Textchat leeren für alle Spieler leeren', - ['command_clearinventory'] = 'Alle Items von dem Inventar eines Spielers entfernen', - ['command_clearloadout'] = 'Alle waffen von dem Spieler Loadout entfernen', - ['command_freeze'] = 'Spieler Freezen', - ['command_unfreeze'] = 'Spieler Entfreezen', - ['command_giveaccountmoney'] = 'Geld an einen bestimmten Account geben', - ['command_giveaccountmoney_account'] = 'Account wohin das Geld hinzugefügt werden soll', - ['command_giveaccountmoney_amount'] = 'Anzahl zum hinzufügen', - ['command_giveaccountmoney_invalid'] = 'Accountname Ungültig', - ['command_giveitem'] = 'Spieler ein item geben', - ['command_giveitem_item'] = 'Item Name', - ['command_giveitem_count'] = 'Anzahl', - ['command_giveweapon'] = 'Spieler eine Waffe geben', - ['command_giveweapon_weapon'] = 'Waffenname', - ['command_giveweapon_ammo'] = 'Munitionsanzahl', - ['command_giveweapon_hasalready'] = 'Spieler hat bereits diese Waffe', - ['command_giveweaponcomponent'] = 'Waffenkomponent an einen Spieler geben', - ['command_giveweaponcomponent_component'] = 'Komponent Name', - ['command_giveweaponcomponent_invalid'] = 'Ungültiger Komponent Name', - ['command_giveweaponcomponent_hasalready'] = 'Spieler hat bereits diesen Komponent', - ['command_giveweaponcomponent_missingweapon'] = 'Spieler hat diese Waffe nicht', - ['command_goto'] = 'Teleportiere dich zu einem Spieler', - ['command_kill'] = 'Spieler Töten', - ['command_save'] = 'Von einem bestimmten Spieler die Spielerdaten Speichern', - ['command_saveall'] = 'Von allen Spielern die Spielerdaten Speichern', - ['command_setaccountmoney'] = 'Geld auf einem bestimmten Account setzen', - ['command_setaccountmoney_amount'] = 'Anzahl', - ['command_setcoords'] = 'Zu den bestimmten Koordinaten teleportieren', - ['command_setcoords_x'] = 'X Koordinate', - ['command_setcoords_y'] = 'Y Koordinate', - ['command_setcoords_z'] = 'Z Koordinate', - ['command_setjob'] = 'Job eines Spielers setzen', - ['command_setjob_job'] = 'Name', - ['command_setjob_grade'] = 'Job Grad', - ['command_setjob_invalid'] = 'Der Job Grad oder beides sind ungültig', - ['command_setgroup'] = 'Setzt eine Berechtigungs Gruppe für einen User', - ['command_setgroup_group'] = 'Name der Gruppe', - ['command_removeaccountmoney'] = 'Entfernt Geld von einem bestimmten Account', - ['command_removeaccountmoney_account'] = 'Account von wem es entfernt werden soll', - ['command_removeaccountmoney_amount'] = 'Anzahl die Entfernt werden soll', - ['command_removeaccountmoney_invalid'] = 'Name des Accounts Ungültig', - ['commanderror_argumentmismatch'] = 'Ungültiger Argument (gegeben %s, gewollt %s)', - ['commanderror_argumentmismatch_number'] = 'Ungültiges Argument #%s daten typ (string gegeben, gewollte nummer)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Ungültiges Item', - ['commanderror_invalidweapon'] = 'Ungültige Waffe', - ['commanderror_console'] = 'Befehl kann nicht von der Konsole aus ausgeführt werden', - ['commanderror_invalidcommand'] = 'Ungültiger Befehl - /%s', - ['commanderror_invalidplayerid'] = 'Angegebener Spieler ist nicht online!', - ['commandgeneric_playerid'] = 'Spieler`s ID', - ['command_giveammo_noweapon_found'] = '%s besitzt diese Waffe nicht', - ['command_giveammo_weapon'] = 'Waffenname', - ['command_giveammo_ammo'] = 'Munitionsanzahl', - ['tpm_nowaypoint'] = 'Kein Wegpunkt gesetzt.', - ['tpm_success'] = 'Erfolgreich teleportiert', - - ['noclip_message'] = 'Noclip wurde %s', - ['enabled'] = '~g~Aktiviert~s~', - ['disabled'] = '~r~Deaktiviert~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "%s€", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dolch", - ["weapon_bat"] = "Baseballschläger", - ["weapon_battleaxe"] = "Kampfaxt", - ["weapon_bottle"] = "Flasche", - ["weapon_crowbar"] = "Brechstange", - ["weapon_flashlight"] = "Taschenlampe", - ["weapon_golfclub"] = "Golfschläger", - ["weapon_hammer"] = "Hammer", - ["weapon_hatchet"] = "Beil", - ["weapon_knife"] = "Messer", - ["weapon_knuckle"] = "Schlagring", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Schlagstock", - ["weapon_wrench"] = "Rohrzange", - ["weapon_poolcue"] = "Billiardstange", - ["weapon_stone_hatchet"] = "Steinbeil", - ["weapon_switchblade"] = "Springmesser", - - -- Handguns - ["weapon_appistol"] = "AP Pistole", - ["weapon_ceramicpistol"] = "Keramikpistole", - ["weapon_combatpistol"] = "Kampfpistole", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadgetpistole", - ["weapon_heavypistol"] = "Schwere Pistole", - ["weapon_revolver"] = "Schwerer Revolver", - ["weapon_revolver_mk2"] = "Schwerer Revolver MK2", - ["weapon_marksmanpistol"] = "Scharfschützen Pistole", - ["weapon_pistol"] = "Pistole", - ["weapon_pistol_mk2"] = "Pistole MK2", - ["weapon_pistol50"] = "Pistole 50 Kaliber", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintagepistole", - - -- Shotguns - ["weapon_assaultshotgun"] = "Sturmschrotflinte", - ["weapon_autoshotgun"] = "Automatische Schrotflinte", - ["weapon_bullpupshotgun"] = "Bullpup-Schrotflinte", - ["weapon_combatshotgun"] = "Kampfschrotfline", - ["weapon_dbshotgun"] = "Doppelbarrel Schrotflinte", - ["weapon_heavyshotgun"] = "Schwere Schrotflinte", - ["weapon_musket"] = "Muskete", - ["weapon_pumpshotgun"] = "Pump Schrotflinte", - ["weapon_pumpshotgun_mk2"] = "Pump Schrotflinte MK2", - ["weapon_sawnoffshotgun"] = "Abgesägte Schrotflinte", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Sturm SMG", - ["weapon_combatmg"] = "Kampf MG", - ["weapon_combatmg_mk2"] = "Kampf MG MK2", - ["weapon_combatpdw"] = "Kampf PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Maschinenpistole", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Mikro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unheiliger Höllenbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Fortgeschrittenes Gewehr", - ["weapon_assaultrifle"] = "Sturmgewehr", - ["weapon_assaultrifle_mk2"] = "Sturmgewehr MK2", - ["weapon_bullpuprifle"] = "Bullpup Gewehr", - ["weapon_bullpuprifle_mk2"] = "Bullpup Gewehr MK2", - ["weapon_carbinerifle"] = "Karabinergewehr", - ["weapon_carbinerifle_mk2"] = "Karabinergewehr MK2", - ["weapon_compactrifle"] = "Kompaktesgewehr", - ["weapon_militaryrifle"] = "Militärgewehr", - ["weapon_specialcarbine"] = "Spezialkarabiner", - ["weapon_specialcarbine_mk2"] = "Spezialkarabiner MK2", - ["weapon_heavyrifle"] = "Schweres Gewehr", - - -- Sniper - ["weapon_heavysniper"] = "Schwere Sniper", - ["weapon_heavysniper_mk2"] = "Schwere Sniper MK2", - ["weapon_marksmanrifle"] = "Scharfschützengewehr", - ["weapon_marksmanrifle_mk2"] = "Scharfschützengewehr MK2", - ["weapon_sniperrifle"] = "Sniper", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Kompaktlauncher", - ["weapon_firework"] = "Feuerwerklauncher", - ["weapon_grenadelauncher"] = "Granatwerfer", - ["weapon_hominglauncher"] = "Lenkraketenwerfer", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Raketenwerfer", - ["weapon_rayminigun"] = "Witwenmacher", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Metalldetektor", - ["weapon_precisionrifle"] = "Präzisionsgewehr", - ["weapon_tactilerifle"] = "Service Karabiner", - - -- Drug Wars DLC - ['weapon_candycane'] = 'Zuckerstange', - ['weapon_acidpackage'] = 'Säure Paket', - ['weapon_pistolxm3'] = 'WM 29 Pistole', - ['weapon_railgunxm3'] = 'Railgun', - - -- Thrown - ["weapon_ball"] = "Baseball", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Leuchtfackel", - ["weapon_grenade"] = "Granate", - ["weapon_petrolcan"] = "Benzinkanister", - ["weapon_hazardcan"] = "Gefährliche Kanister", - ["weapon_molotov"] = "Molotov Cocktail", - ["weapon_proxmine"] = "Annährungsmine", - ["weapon_pipebomb"] = "Rohrbombe", - ["weapon_snowball"] = "Schneeball", - ["weapon_stickybomb"] = "Haftbombe", - ["weapon_smokegrenade"] = "Tränengas", - - -- Special - ["weapon_fireextinguisher"] = "Feuerlöscher", - ["weapon_digiscanner"] = "Digitalscanner", - ["weapon_garbagebag"] = "Müllsack", - ["weapon_handcuffs"] = "Handschelle", - ["gadget_nightvision"] = "Nachtsicht", - ["gadget_parachute"] = "Fallschirm", - - -- Weapon Components - ["component_knuckle_base"] = "Basismodell", - ["component_knuckle_pimp"] = "Der Pimp", - ["component_knuckle_ballas"] = "Die Ballas", - ["component_knuckle_dollar"] = "Der Hustler", - ["component_knuckle_diamond"] = "Der Stein", - ["component_knuckle_hate"] = "Der Hater", - ["component_knuckle_love"] = "Der Lover", - ["component_knuckle_player"] = "Der Player", - ["component_knuckle_king"] = "Der King", - ["component_knuckle_vagos"] = "Die Vagos", - - ["component_luxary_finish"] = "Luxuswaffenlackierung", - - ["component_handle_default"] = "Normaler Handgriff", - ["component_handle_vip"] = "VIP Handgriff", - ["component_handle_bodyguard"] = "Bodyguard Handgriff", - - ["component_vip_finish"] = "VIP Lackierung", - ["component_bodyguard_finish"] = "Bodyguard Lackierung", - - ["component_camo_finish"] = "Digitales Camouflage", - ["component_camo_finish2"] = "Pinselstrich Camouflage", - ["component_camo_finish3"] = "Holzland Camouflage", - ["component_camo_finish4"] = "Kopf Camouflage", - ["component_camo_finish5"] = "Sessebta-Nove Camouflage", - ["component_camo_finish6"] = "Perseus Camouflage", - ["component_camo_finish7"] = "Leopard Camouflage", - ["component_camo_finish8"] = "Zebra Camouflage", - ["component_camo_finish9"] = "Geometrisch Camouflage", - ["component_camo_finish10"] = "BOOM Camouflage", - ["component_camo_finish11"] = "Patriotisch Camouflage", - - ["component_camo_slide_finish"] = "Digital Rutschen Camouflage", - ["component_camo_slide_finish2"] = "Pinselstrich Rutschen Camouflage", - ["component_camo_slide_finish3"] = "Holzland Rutschen Camouflage", - ["component_camo_slide_finish4"] = "Kopf Rutschen Camouflage", - ["component_camo_slide_finish5"] = "Sessebta-Nove Nove Rutschen Camouflage", - ["component_camo_slide_finish6"] = "Perseus Rutschen Camouflage", - ["component_camo_slide_finish7"] = "Leopard Rutschen Camouflage", - ["component_camo_slide_finish8"] = "Zebra Rutschen Camouflage", - ["component_camo_slide_finish9"] = "Geometrisch Rutschen Camouflage", - ["component_camo_slide_finish10"] = "BOOM Rutschen Camouflage", - ["component_camo_slide_finish11"] = "Patriotisch Rutschen Camouflage", - - ["component_clip_default"] = "Standart Magazin", - ["component_clip_extended"] = "Erweiterters Magazin", - ["component_clip_drum"] = "Trommelmagazin", - ["component_clip_box"] = "Kastenmagazin", - - ["component_scope_holo"] = "Holographisches Zielfernrohr", - ["component_scope_small"] = "Kleines Zielfernrohr", - ["component_scope_medium"] = "Mittleres Zielfernrohr", - ["component_scope_large"] = "Großes Zielfernrohr", - ["component_scope"] = "Montiertes Zielfernrohr", - ["component_scope_advanced"] = "Fortgeschrittenes Zielfernrohr", - ["component_ironsights"] = "Ironsights", - - ["component_suppressor"] = "Entstörer", - ["component_compensator"] = "Kompensator", - - ["component_muzzle_flat"] = "Flache Mündung", - ["component_muzzle_tactical"] = "Taktische Mündung", - ["component_muzzle_fat"] = "Fettes-Ende Mündung", - ["component_muzzle_precision"] = "Präzision Mündung", - ["component_muzzle_heavy"] = "Schwere Mündung", - ["component_muzzle_slanted"] = "Schräge Mündung", - ["component_muzzle_split"] = "Geteiletes-Ende Mündung", - ["component_muzzle_squared"] = "Quadratische Mündung", - - ["component_flashlight"] = "Taschenlampe", - ["component_grip"] = "Grip", - - ["component_barrel_default"] = "Normales Fass", - ["component_barrel_heavy"] = "Schweres Fass", - - ["component_ammo_tracer"] = "Tracer Munition", - ["component_ammo_incendiary"] = "Aufruhr Munition", - ["component_ammo_hollowpoint"] = "Hohlspitze Munition", - ["component_ammo_fmj"] = "FMJ Munition", - ["component_ammo_armor"] = "Panzerbrechende Munition", - ["component_ammo_explosive"] = "Panzerbrechende brennende Munition", - - ["component_shells_default"] = "Normale Hülsen", - ["component_shells_incendiary"] = "Drachenatem Hülsen", - ["component_shells_armor"] = "Stahlschrot Hülsen", - ["component_shells_hollowpoint"] = "Flechette Hülsen", - ["component_shells_explosive"] = "Explosives Geschoss Hülsen", - - -- Weapon Ammo - ["ammo_rounds"] = "Kugel(n)", - ["ammo_shells"] = "Schrotpatrone(n)", - ["ammo_charge"] = "Nachladen", - ["ammo_petrol"] = "Benzinkanister", - ["ammo_firework"] = "Feuerwerksrakete(n)", - ["ammo_rockets"] = "Rakete(n)", - ["ammo_grenadelauncher"] = "Granate(n)", - ["ammo_grenade"] = "Granate(n)", - ["ammo_stickybomb"] = "C4(s)", - ["ammo_pipebomb"] = "Rohrbombe(n)", - ["ammo_smokebomb"] = "Rauchgranate(n)", - ["ammo_molotov"] = "Molotovcocktail(s)", - ["ammo_proxmine"] = "Annäherungsmine(n)", - ["ammo_bzgas"] = "Bzgas", - ["ammo_ball"] = "Ball", - ["ammo_snowball"] = "Schneebälle", - ["ammo_flare"] = "Signalfackel(n)", - ["ammo_flaregun"] = "Signalfackeln(munition)", - - -- Weapon Tints - ["tint_default"] = "Standard", - ["tint_green"] = "Grün", - ["tint_gold"] = "Gold", - ["tint_pink"] = "Pink", - ["tint_army"] = "Camouflage", - ["tint_lspd"] = "Blau", - ["tint_orange"] = "Orange", - ["tint_platinum"] = "Platin", + -- Inventory + ["inventory"] = "Inventar ( Gewicht %s / %s )", + ["use"] = "Benutzen", + ["give"] = "Geben", + ["remove"] = "Entsorgen", + ["return"] = "Zurück", + ["give_to"] = "Geben an", + ["amount"] = "Anzahl", + ["giveammo"] = "Munition geben", + ["amountammo"] = "Munitions Anzahl", + ["noammo"] = "Nicht Genug!", + ["gave_item"] = "Du gibst %sx %s an %s", + ["received_item"] = "Du bekommst %sx %s von %s", + ["gave_weapon"] = "Du gibst %s an %s", + ["gave_weapon_ammo"] = "Du gibst ~o~%sx %s für %s an %s", + ["gave_weapon_withammo"] = "Du gibst %s mit ~o~%sx %s an %s", + ["gave_weapon_hasalready"] = "%s hat bereits %s", + ["gave_weapon_noweapon"] = "%s hat diese Waffe nicht", + ["received_weapon"] = "Du bekommst %s von %s", + ["received_weapon_ammo"] = "Du bekommst ~o~%sx %s für deine %s von %s", + ["received_weapon_withammo"] = "Du bekommst %s mit ~o~%sx %s von %s", + ["received_weapon_hasalready"] = "%s hat versucht dir eine %s zu geben, jedoch hast du diese Waffe bereits!", + ["received_weapon_noweapon"] = "%s hat versucht dir Munition für eine %s zu geben, jedoch hast du diese Waffe bereits!", + ["gave_account_money"] = "Du gibst %s€ (%s) an %s", + ["received_account_money"] = "Du bekommst %s€ (%s) von %s", + ["amount_invalid"] = "Ungültige Anzahl", + ["players_nearby"] = "Keine Personen in der Nähe!", + ["ex_inv_lim"] = "Du kannst diese Aktion nicht ausführen!, Inventarlimit für %s überschritten.", + ["imp_invalid_quantity"] = "Du kannst diese Aktion nicht ausführen!, Ungültige Anzahl!", + ["imp_invalid_amount"] = "Du kannst diese Aktion nicht ausführen!, Ungültige Anzahl", + ["threw_standard"] = "Du entsorgst %sx %s", + ["threw_account"] = "Du Entsorgst %s€ %s", + ["threw_weapon"] = "Du entsorgst %s", + ["threw_weapon_ammo"] = "Du entsorgst %s mit ~o~%sx %s", + ["threw_weapon_already"] = "Du hast diese Waffe bereits!", + ["threw_cannot_pickup"] = "Inventar ist voll! Du kannst dies nicht aufheben", + ["threw_pickup_prompt"] = "Drücke [E] zum aufheben", + + -- Key mapping + ["keymap_showinventory"] = "Inventar Anzeigen", + + -- Salary related + ["received_salary"] = "Dein Gehaltscheck ist angekommen!: %s€", + ["received_help"] = "Deine Sozialhilfe ist angekommen: %s€", + ["company_nomoney"] = "Die Firma an der du Angestellt bist, ist leider Arm und kann dich nicht bezahlen :(", + ["received_paycheck"] = "Gehaltscheck erhalten", + ["bank"] = "Maze Bank", + ["account_bank"] = "Bank", + ["account_black_money"] = "Schwarzgeld", + ["account_money"] = "Bargeld", + + ["act_imp"] = "Du kannst diese Aktion nicht ausführen!", + ["in_vehicle"] = "Person darf nicht in einem Fahrzeug sein!", + ["not_in_vehicle"] = "Person muss in einem Fahrzeug sein!", + + -- Commands + ["command_bring"] = "Person zu dir bringen", + ["command_car"] = "Fahrzeug Spawnen", + ["command_car_car"] = "Fahrzeug Model oder Hash", + ["command_cardel"] = "Fahrzeuge entfernen", + ["command_cardel_radius"] = "Entfernt alle Fahrzeuge in einem bestimmten Radius", + ["command_repair"] = "Fahrzeug reparieren", + ["command_repair_success"] = "Fahrzeug erfolgreich repariert.", + ["command_repair_success_target"] = "Ein Admin hat dein Fahrzeug repariert.", + ["command_clear"] = "Textchat leeren", + ["command_clearall"] = "Textchat für alle Spieler leeren", + ["command_clearinventory"] = "Alle Gegenstände vom Inventar eines Spielers entfernen", + ["command_clearloadout"] = "Alle Waffen vom Loadout eines Spielers entfernen", + ["command_freeze"] = "Spieler Freezen", + ["command_unfreeze"] = "Spieler Entfreezen", + ["command_giveaccountmoney"] = "Geld an ein bestimmtes Konto geben", + ["command_giveaccountmoney_account"] = "Konto, wohin das Geld hinzugefügt werden soll", + ["command_giveaccountmoney_amount"] = "Menge zum Hinzufügen", + ["command_giveaccountmoney_invalid"] = "Accountname ungültig!", + ["command_giveitem"] = "Spieler ein Gegenstand geben", + ["command_giveitem_item"] = "Gegenstand Name", + ["command_giveitem_count"] = "Menge", + ["command_giveweapon"] = "Spieler eine Waffe geben", + ["command_giveweapon_weapon"] = "Waffenname", + ["command_giveweapon_ammo"] = "Munitionsanzahl", + ["command_giveweapon_hasalready"] = "Spieler hat diese Waffe bereits!", + ["command_giveweaponcomponent"] = "Waffenkomponent an einen Spieler geben", + ["command_giveweaponcomponent_component"] = "Komponentenname", + ["command_giveweaponcomponent_invalid"] = "Ungültiger Komponentenname", + ["command_giveweaponcomponent_hasalready"] = "Spieler hat diese Komponente bereits!", + ["command_giveweaponcomponent_missingweapon"] = "Spieler hat diese Waffe nicht!", + ["command_goto"] = "Teleportiere dich zu einem Spieler", + ["command_kill"] = "Spieler Töten", + ["command_save"] = "Von einem bestimmten Spieler die Spielerdaten speichern", + ["command_saveall"] = "Von allen Spielern die Spielerdaten speichern", + ["command_setaccountmoney"] = "Geld auf einem bestimmten Konto festlegen", + ["command_setaccountmoney_amount"] = "Menge", + ["command_setcoords"] = "Zu den bestimmten Koordinaten teleportieren", + ["command_setcoords_x"] = "X Koordinate", + ["command_setcoords_y"] = "Y Koordinate", + ["command_setcoords_z"] = "Z Koordinate", + ["command_setjob"] = "Job eines Spielers setzen", + ["command_setjob_job"] = "Name", + ["command_setjob_grade"] = "Job Rang", + ["command_setjob_invalid"] = "Der Rang oder der Name und Rang sind ungültig", + ["command_setgroup"] = "Setzt eine Berechtigungs Gruppe für einen Benutzer", + ["command_setgroup_group"] = "Name der Gruppe", + ["command_removeaccountmoney"] = "Entfernt Geld von einem bestimmten Konto", + ["command_removeaccountmoney_account"] = "Konto von dem es entfernt werden soll", + ["command_removeaccountmoney_amount"] = "Menge, die entfernt werden soll", + ["command_removeaccountmoney_invalid"] = "Name des Kontos ungültig", + ["commanderror_argumentmismatch"] = "Ungültiges Argument (gegeben %s, gewollt %s)", + ["commanderror_argumentmismatch_number"] = "Ungültiges Argument #%s Datentyp (String gegeben, Nummer gefordert)", + ["commanderror_argumentmismatch_string"] = "Ungültiges Argument #%s Datentyp (Nummer gegeben, String gefordert)", + ["commanderror_invaliditem"] = "Ungültiger Gegenstand", + ["commanderror_invalidweapon"] = "Ungültige Waffe", + ["commanderror_console"] = "Befehl kann nicht von der Konsole aus ausgeführt werden!", + ["commanderror_invalidcommand"] = "Ungültiger Befehl - /%s", + ["commanderror_invalidplayerid"] = "Angegebener Spieler ist nicht online!", + ["commandgeneric_playerid"] = "Spieler ID", + ["command_giveammo_noweapon_found"] = "%s besitzt diese Waffe nicht!", + ["command_giveammo_weapon"] = "Waffenname", + ["command_giveammo_ammo"] = "Munitionsanzahl", + ["tpm_nowaypoint"] = "Kein Wegpunkt gesetzt!", + ["tpm_success"] = "Erfolgreich teleportiert.", + + ["noclip_message"] = "Noclip wurde %s", + ["enabled"] = "~g~Aktiviert~s~", + ["disabled"] = "~r~Deaktiviert~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "%s€", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dolch", + ["weapon_bat"] = "Baseballschläger", + ["weapon_battleaxe"] = "Kampfaxt", + ["weapon_bottle"] = "Flasche", + ["weapon_crowbar"] = "Brechstange", + ["weapon_flashlight"] = "Taschenlampe", + ["weapon_golfclub"] = "Golfschläger", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Beil", + ["weapon_knife"] = "Messer", + ["weapon_knuckle"] = "Schlagring", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Schlagstock", + ["weapon_wrench"] = "Rohrzange", + ["weapon_poolcue"] = "Billiardstange", + ["weapon_stone_hatchet"] = "Steinbeil", + ["weapon_switchblade"] = "Springmesser", + + -- Handguns + ["weapon_appistol"] = "AP Pistole", + ["weapon_ceramicpistol"] = "Keramikpistole", + ["weapon_combatpistol"] = "Kampfpistole", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadgetpistole", + ["weapon_heavypistol"] = "Schwere Pistole", + ["weapon_revolver"] = "Schwerer Revolver", + ["weapon_revolver_mk2"] = "Schwerer Revolver MK2", + ["weapon_marksmanpistol"] = "Scharfschützen Pistole", + ["weapon_pistol"] = "Pistole", + ["weapon_pistol_mk2"] = "Pistole MK2", + ["weapon_pistol50"] = "Pistole 50 Kaliber", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintagepistole", + + -- Shotguns + ["weapon_assaultshotgun"] = "Sturmschrotflinte", + ["weapon_autoshotgun"] = "Automatische Schrotflinte", + ["weapon_bullpupshotgun"] = "Bullpup-Schrotflinte", + ["weapon_combatshotgun"] = "Kampfschrotfline", + ["weapon_dbshotgun"] = "Doppelbarrel Schrotflinte", + ["weapon_heavyshotgun"] = "Schwere Schrotflinte", + ["weapon_musket"] = "Muskete", + ["weapon_pumpshotgun"] = "Pump Schrotflinte", + ["weapon_pumpshotgun_mk2"] = "Pump Schrotflinte MK2", + ["weapon_sawnoffshotgun"] = "Abgesägte Schrotflinte", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Sturm SMG", + ["weapon_combatmg"] = "Kampf MG", + ["weapon_combatmg_mk2"] = "Kampf MG MK2", + ["weapon_combatpdw"] = "Kampf PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Maschinenpistole", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Mikro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unheiliger Höllenbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Fortgeschrittenes Gewehr", + ["weapon_assaultrifle"] = "Sturmgewehr", + ["weapon_assaultrifle_mk2"] = "Sturmgewehr MK2", + ["weapon_bullpuprifle"] = "Bullpup Gewehr", + ["weapon_bullpuprifle_mk2"] = "Bullpup Gewehr MK2", + ["weapon_carbinerifle"] = "Karabinergewehr", + ["weapon_carbinerifle_mk2"] = "Karabinergewehr MK2", + ["weapon_compactrifle"] = "Kompaktesgewehr", + ["weapon_militaryrifle"] = "Militärgewehr", + ["weapon_specialcarbine"] = "Spezialkarabiner", + ["weapon_specialcarbine_mk2"] = "Spezialkarabiner MK2", + ["weapon_heavyrifle"] = "Schweres Gewehr", + + -- Sniper + ["weapon_heavysniper"] = "Schwere Sniper", + ["weapon_heavysniper_mk2"] = "Schwere Sniper MK2", + ["weapon_marksmanrifle"] = "Scharfschützengewehr", + ["weapon_marksmanrifle_mk2"] = "Scharfschützengewehr MK2", + ["weapon_sniperrifle"] = "Sniper", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Kompaktlauncher", + ["weapon_firework"] = "Feuerwerklauncher", + ["weapon_grenadelauncher"] = "Granatwerfer", + ["weapon_hominglauncher"] = "Lenkraketenwerfer", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Raketenwerfer", + ["weapon_rayminigun"] = "Witwenmacher", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Metalldetektor", + ["weapon_precisionrifle"] = "Präzisionsgewehr", + ["weapon_tactilerifle"] = "Service Karabiner", + + -- Drug Wars DLC + ["weapon_candycane"] = "Zuckerstange", + ["weapon_acidpackage"] = "Säure Paket", + ["weapon_pistolxm3"] = "WM 29 Pistole", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Leuchtfackel", + ["weapon_grenade"] = "Granate", + ["weapon_petrolcan"] = "Benzinkanister", + ["weapon_hazardcan"] = "Gefährliche Kanister", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Annährungsmine", + ["weapon_pipebomb"] = "Rohrbombe", + ["weapon_snowball"] = "Schneeball", + ["weapon_stickybomb"] = "Haftbombe", + ["weapon_smokegrenade"] = "Tränengas", + + -- Special + ["weapon_fireextinguisher"] = "Feuerlöscher", + ["weapon_digiscanner"] = "Digitalscanner", + ["weapon_garbagebag"] = "Müllsack", + ["weapon_handcuffs"] = "Handschelle", + ["gadget_nightvision"] = "Nachtsicht", + ["gadget_parachute"] = "Fallschirm", + + -- Weapon Components + ["component_knuckle_base"] = "Basismodell", + ["component_knuckle_pimp"] = "Der Pimp", + ["component_knuckle_ballas"] = "Die Ballas", + ["component_knuckle_dollar"] = "Der Hustler", + ["component_knuckle_diamond"] = "Der Stein", + ["component_knuckle_hate"] = "Der Hater", + ["component_knuckle_love"] = "Der Lover", + ["component_knuckle_player"] = "Der Player", + ["component_knuckle_king"] = "Der King", + ["component_knuckle_vagos"] = "Die Vagos", + + ["component_luxary_finish"] = "Luxuswaffenlackierung", + + ["component_handle_default"] = "Normaler Handgriff", + ["component_handle_vip"] = "VIP Handgriff", + ["component_handle_bodyguard"] = "Bodyguard Handgriff", + + ["component_vip_finish"] = "VIP Lackierung", + ["component_bodyguard_finish"] = "Bodyguard Lackierung", + + ["component_camo_finish"] = "Digitales Camouflage", + ["component_camo_finish2"] = "Pinselstrich Camouflage", + ["component_camo_finish3"] = "Holzland Camouflage", + ["component_camo_finish4"] = "Kopf Camouflage", + ["component_camo_finish5"] = "Sessebta-Nove Camouflage", + ["component_camo_finish6"] = "Perseus Camouflage", + ["component_camo_finish7"] = "Leopard Camouflage", + ["component_camo_finish8"] = "Zebra Camouflage", + ["component_camo_finish9"] = "Geometrisch Camouflage", + ["component_camo_finish10"] = "BOOM Camouflage", + ["component_camo_finish11"] = "Patriotisch Camouflage", + + ["component_camo_slide_finish"] = "Digital Rutschen Camouflage", + ["component_camo_slide_finish2"] = "Pinselstrich Rutschen Camouflage", + ["component_camo_slide_finish3"] = "Holzland Rutschen Camouflage", + ["component_camo_slide_finish4"] = "Kopf Rutschen Camouflage", + ["component_camo_slide_finish5"] = "Sessebta-Nove Nove Rutschen Camouflage", + ["component_camo_slide_finish6"] = "Perseus Rutschen Camouflage", + ["component_camo_slide_finish7"] = "Leopard Rutschen Camouflage", + ["component_camo_slide_finish8"] = "Zebra Rutschen Camouflage", + ["component_camo_slide_finish9"] = "Geometrisch Rutschen Camouflage", + ["component_camo_slide_finish10"] = "BOOM Rutschen Camouflage", + ["component_camo_slide_finish11"] = "Patriotisch Rutschen Camouflage", + + ["component_clip_default"] = "Standart Magazin", + ["component_clip_extended"] = "Erweiterters Magazin", + ["component_clip_drum"] = "Trommelmagazin", + ["component_clip_box"] = "Kastenmagazin", + + ["component_scope_holo"] = "Holographisches Zielfernrohr", + ["component_scope_small"] = "Kleines Zielfernrohr", + ["component_scope_medium"] = "Mittleres Zielfernrohr", + ["component_scope_large"] = "Großes Zielfernrohr", + ["component_scope"] = "Montiertes Zielfernrohr", + ["component_scope_advanced"] = "Fortgeschrittenes Zielfernrohr", + ["component_ironsights"] = "Ironsights", + + ["component_suppressor"] = "Entstörer", + ["component_compensator"] = "Kompensator", + + ["component_muzzle_flat"] = "Flache Mündung", + ["component_muzzle_tactical"] = "Taktische Mündung", + ["component_muzzle_fat"] = "Fettes-Ende Mündung", + ["component_muzzle_precision"] = "Präzision Mündung", + ["component_muzzle_heavy"] = "Schwere Mündung", + ["component_muzzle_slanted"] = "Schräge Mündung", + ["component_muzzle_split"] = "Geteiletes-Ende Mündung", + ["component_muzzle_squared"] = "Quadratische Mündung", + + ["component_flashlight"] = "Taschenlampe", + ["component_grip"] = "Grip", + + ["component_barrel_default"] = "Normales Fass", + ["component_barrel_heavy"] = "Schweres Fass", + + ["component_ammo_tracer"] = "Tracer Munition", + ["component_ammo_incendiary"] = "Aufruhr Munition", + ["component_ammo_hollowpoint"] = "Hohlspitze Munition", + ["component_ammo_fmj"] = "FMJ Munition", + ["component_ammo_armor"] = "Panzerbrechende Munition", + ["component_ammo_explosive"] = "Panzerbrechende brennende Munition", + + ["component_shells_default"] = "Normale Hülsen", + ["component_shells_incendiary"] = "Drachenatem Hülsen", + ["component_shells_armor"] = "Stahlschrot Hülsen", + ["component_shells_hollowpoint"] = "Flechette Hülsen", + ["component_shells_explosive"] = "Explosives Geschoss Hülsen", + + -- Weapon Ammo + ["ammo_rounds"] = "Kugel(n)", + ["ammo_shells"] = "Schrotpatrone(n)", + ["ammo_charge"] = "Nachladen", + ["ammo_petrol"] = "Benzinkanister", + ["ammo_firework"] = "Feuerwerksrakete(n)", + ["ammo_rockets"] = "Rakete(n)", + ["ammo_grenadelauncher"] = "Granate(n)", + ["ammo_grenade"] = "Granate(n)", + ["ammo_stickybomb"] = "C4(s)", + ["ammo_pipebomb"] = "Rohrbombe(n)", + ["ammo_smokebomb"] = "Rauchgranate(n)", + ["ammo_molotov"] = "Molotovcocktail(s)", + ["ammo_proxmine"] = "Annäherungsmine(n)", + ["ammo_bzgas"] = "Bzgas", + ["ammo_ball"] = "Ball", + ["ammo_snowball"] = "Schneebälle", + ["ammo_flare"] = "Signalfackel(n)", + ["ammo_flaregun"] = "Signalfackeln(munition)", + + -- Weapon Tints + ["tint_default"] = "Standard", + ["tint_green"] = "Grün", + ["tint_gold"] = "Gold", + ["tint_pink"] = "Pink", + ["tint_army"] = "Camouflage", + ["tint_lspd"] = "Blau", + ["tint_orange"] = "Orange", + ["tint_platinum"] = "Platin", } diff --git a/[core]/es_extended/locales/el.lua b/[core]/es_extended/locales/el.lua index 7bca2071a..1de660c6f 100644 --- a/[core]/es_extended/locales/el.lua +++ b/[core]/es_extended/locales/el.lua @@ -1,381 +1,381 @@ Locales["el"] = { - -- Inventory - ["inventory"] = "Αποθήκη ( Βάρος %s / %s )", - ["use"] = "Χρήση", - ["give"] = "Δώσε", - ["remove"] = "Πέτα", - ["return"] = "Επιστροφή", - ["give_to"] = "Δώσε σε", - ["amount"] = "Ποσότητα", - ["giveammo"] = "Δώσε σφαίρες", - ["amountammo"] = "Ποσότητα σφαιρών", - ["noammo"] = "Δεν υπάρχουν αρκετές σφαίρες!", - ["gave_item"] = "Δώσατε %sx %s στον/στην %s", - ["received_item"] = "Λάβατε %sx %s από τον/την %s", - ["gave_weapon"] = "Δίνετε %s στον/στην %s", - ["gave_weapon_ammo"] = "Δίνετε ~o~%sx %s για %s στον/στην %s", - ["gave_weapon_withammo"] = "Δίνετε %s με ~o~%sx %s στον/στην %s", - ["gave_weapon_hasalready"] = "Ο/Η %s έχει ήδη ένα %s", - ["gave_weapon_noweapon"] = "Ο/Η %s δεν έχει αυτό το όπλο", - ["received_weapon"] = "Λάβατε %s από τον/την %s", - ["received_weapon_ammo"] = "Λάβατε ~o~%sx %s για το %s από τον/την %s", - ["received_weapon_withammo"] = "Λάβατε %s για ~o~%sx %s από τον/την %s", - ["received_weapon_hasalready"] = "Ο/Η %s προσπάθησε να σας δώσει ένα %s, αλλά το έχετε ήδη", - ["received_weapon_noweapon"] = "Ο/Η %s προσπάθησε να σας δώσει σφαίρες για το %s, αλλά δεν έχετε αυτό το όπλο", - ["gave_account_money"] = "Δίνετε $%s (%s) στον/στην %s", - ["received_account_money"] = "Λάβατε $%s (%s) από τον/την %s", - ["amount_invalid"] = "Μη έγκυρη ποσότητα", - ["players_nearby"] = "Δεν υπάρχουν κοντινοί παίκτες", - ["ex_inv_lim"] = "Δεν είναι δυνατή η ενέργεια, υπέρβαση του μέγιστου βάρους των %s", - ["imp_invalid_quantity"] = "Δεν είναι δυνατή η ενέργεια, η ποσότητα δεν είναι έγκυρη", - ["imp_invalid_amount"] = "Δεν είναι δυνατή η ενέργεια, το ποσό δεν είναι έγκυρο", - ["threw_standard"] = "Ρίχνοντας %sx %s", - ["threw_account"] = "Ρίχνοντας $%s %s", - ["threw_weapon"] = "Ρίχνοντας %s", - ["threw_weapon_ammo"] = "Ρίχνοντας %s με ~o~%sx %s", - ["threw_weapon_already"] = "Ήδη έχετε αυτό το όπλο", - ["threw_cannot_pickup"] = "Η αποθήκη είναι γεμάτη, δεν μπορείτε να σηκώσετε!", - ["threw_pickup_prompt"] = "Πατήστε E για να σηκώσετε", - - -- Key mapping - ["keymap_showinventory"] = "Εμφάνιση Αποθήκης", - - -- Salary related - ["received_salary"] = "Έχετε λάβει μισθό: $%s", - ["received_help"] = "Έχετε λάβει το βοήθημά σας: $%s", - ["company_nomoney"] = "Η εταιρεία στην οποία είστε απασχολούμενος/η δεν έχει αρκετά χρήματα για να καταβάλει τον μισθό σας", - ["received_paycheck"] = "λάβατε μισθό", - ["bank"] = "Τράπεζα Maze", - ["account_bank"] = "Τραπεζικός Λογαριασμός", - ["account_black_money"] = "Βρώμικα Χρήματα", - ["account_money"] = "Μετρητά", - - ["act_imp"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας", - ["in_vehicle"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας, ο παίκτης βρίσκεται σε όχημα", - ["not_in_vehicle"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας, ο παίκτης δεν βρίσκεται σε κάποιο όχημα", - - -- Commands - ['command_bring'] = 'Φέρτε τον παίκτη σε εσάς', - ['command_car'] = 'Κλήση οχήματος', - ['command_car_car'] = 'Μοντέλο ή κωδικός οχήματος', - ['command_cardel'] = 'Κατάργηση οχημάτων κοντά', - ['command_cardel_radius'] = 'Καταργεί όλα τα οχήματα εντός της καθορισμένης ακτίνας', - ['command_repair'] = 'Επισκέυασε το όχημα σου', - ['command_repair_success'] = 'Το όχημα σου επισκευάστηκε', - ['command_repair_success_target'] = 'Ένας διαχειριστής επισκεύασε το όχημα σου', - ['command_clear'] = 'Καθαρισμός κειμένου στο chat', - ['command_clearall'] = 'Καθαρισμός κειμένου στο chat για όλους τους παίκτες', - ['command_clearinventory'] = 'Κατάργηση όλων των αντικειμένων από την αποθήκη των παικτών', - ['command_clearloadout'] = 'Κατάργηση όλων των όπλων από την εξάρτηση των παικτών', - ['command_freeze'] = 'Πάγωμα ενός παίκτη', - ['command_unfreeze'] = 'Ξεπάγωμα ενός παίκτη', - ['command_giveaccountmoney'] = 'Δώστε χρήματα σε καθορισμένο λογαριασμό', - ['command_giveaccountmoney_account'] = 'Λογαριασμός προς προσθήκη', - ['command_giveaccountmoney_amount'] = 'Ποσό προς προσθήκη', - ['command_giveaccountmoney_invalid'] = 'Μη έγκυρο όνομα λογαριασμού', - ['command_removeaccountmoney'] = 'Κατάργηση χρημάτων από καθορισμένο λογαριασμό', - ['command_removeaccountmoney_account'] = 'Λογαριασμός από τον οποίο θα καταργηθούν τα χρήματα', - ['command_removeaccountmoney_amount'] = 'Ποσό προς αφαίρεση', - ['command_removeaccountmoney_invalid'] = 'Μη έγκυρο όνομα λογαριασμού', - ['command_giveitem'] = 'Δώστε σε έναν παίκτη ένα αντικείμενο', - ['command_giveitem_item'] = 'Όνομα αντικειμένου', - ['command_giveitem_count'] = 'Ποσότητα', - ['command_giveweapon'] = 'Δώστε σε έναν παίκτη ένα όπλο', - ['command_giveweapon_weapon'] = 'Όνομα όπλου', - ['command_giveweapon_ammo'] = 'Ποσότητα πυρομαχικών', - ['command_giveweapon_hasalready'] = 'Ο παίκτης έχει ήδη αυτό το όπλο', - ['command_giveweaponcomponent'] = 'Δώστε σε έναν παίκτη μια εξάρτηση όπλου', - ['command_giveweaponcomponent_component'] = 'Όνομα εξάρτησης', - ['command_giveweaponcomponent_invalid'] = 'Μη έγκυρη εξάρτηση όπλου', - ['command_giveweaponcomponent_hasalready'] = 'Ο παίκτης έχει ήδη αυτήν την εξάρτηση όπλου', - ['command_giveweaponcomponent_missingweapon'] = 'Ο παίκτης δεν έχει αυτό το όπλο', - ['command_goto'] = 'Τηλεμεταφέρεστε σε έναν παίκτη', - ['command_kill'] = 'Σκοτώστε έναν παίκτη', - ['command_save'] = 'Εξαναγκαστική αποθήκευση δεδομένων ενός παίκτη', - ['command_saveall'] = 'Εξαναγκαστική αποθήκευση όλων των δεδομένων των παικτών', - ['command_setaccountmoney'] = 'Ορίστε τα χρήματα σε έναν καθορισμένο λογαριασμό', - ['command_setaccountmoney_amount'] = 'Ποσό', - ['command_setcoords'] = 'Τηλεμεταφερθείτε σε καθορισμένες συντεταγμένες', - ['command_setcoords_x'] = 'Τιμή X', - ['command_setcoords_y'] = 'Τιμή Y', - ['command_setcoords_z'] = 'Τιμή Z', - ['command_setjob'] = 'Ορίστε το επάγγελμα ενός παίκτη', - ['command_setjob_job'] = 'Όνομα', - ['command_setjob_grade'] = 'Βαθμός επαγγέλματος', - ['command_setjob_invalid'] = 'Το επάγγελμα, ο βαθμός ή και οι δύο είναι μη έγκυρα', - ['command_setgroup'] = 'Ορίστε την ομάδα δικαιωμάτων ενός παίκτη', - ['command_setgroup_group'] = 'Όνομα Ομάδας', - ['commanderror_argumentmismatch'] = 'Μη έγκυρος αριθμός ορισμάτων (δόθηκαν %s, αναμενόμενα %s)', - ['commanderror_argumentmismatch_number'] = 'Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε συμβολοσειρά, αναμενόμενος αριθμός)', - ['commanderror_argumentmismatch_string'] = 'Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε αριθμός, αναμενόμενη συμβολοσειρά)', - ['commanderror_invaliditem'] = 'Μη έγκυρο αντικείμενο', - ['commanderror_invalidweapon'] = 'Μη έγκυρο όπλο', - ['commanderror_console'] = 'Η εντολή δεν μπορεί να εκτελεστεί από την κονσόλα', - ['commanderror_invalidcommand'] = 'Μη έγκυρη εντολή - /%s', - ['commanderror_invalidplayerid'] = 'Ο καθορισμένος παίκτης δεν είναι συνδεδεμένος', - ['commandgeneric_playerid'] = 'Αναγνωριστικό διακομιστή του παίκτη', - ['command_giveammo_noweapon_found'] = 'Ο %s δεν έχει αυτό το όπλο', - ['command_giveammo_weapon'] = 'Όνομα όπλου', - ['command_giveammo_ammo'] = 'Ποσότητα πυρομαχικών', - ['tpm_nowaypoint'] = 'Δεν έχει οριστεί σημείο προορισμού.', - ['tpm_success'] = 'Επιτυχής τηλεμεταφορά', - - ['noclip_message'] = 'Το Noclip έχει %s', - ['enabled'] = '~g~ενεργοποιήθηκε~s~', - ['disabled'] = '~r~απενεργοποιήθηκε~s~', - - -- Ρυθμίσεις τοπικής γλώσσας - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "£%s", - - -- Όπλα - - -- Χειροποίητα - ["weapon_dagger"] = "Στιλέτο", - ["weapon_bat"] = "Μπαστούνι", - ["weapon_battleaxe"] = "Πολεμική σείρα", - ["weapon_bottle"] = "Μπουκάλι", - ["weapon_crowbar"] = "Ροπαλάκι", - ["weapon_flashlight"] = "Φακός", - ["weapon_golfclub"] = "Γκολφ", - ["weapon_hammer"] = "Σφυρί", - ["weapon_hatchet"] = "Πέλεκυς", - ["weapon_knife"] = "Μαχαίρι", - ["weapon_knuckle"] = "Χειροπέδες", - ["weapon_machete"] = "Μαχαίρι μαχαιροπίρουνου", - ["weapon_nightstick"] = "Ρόπαλο νυχτερίδας", - ["weapon_wrench"] = "Ροκανίδι", - ["weapon_poolcue"] = "Καστήλα", - ["weapon_stone_hatchet"] = "Πέλεκυς από πέτρα", - ["weapon_switchblade"] = "Ξυραφάκι", - - -- Πιστόλια - ["weapon_appistol"] = "AP Πιστόλι", - ["weapon_ceramicpistol"] = "Κεραμικό πιστόλι", - ["weapon_combatpistol"] = "Πολεμικό πιστόλι", - ["weapon_doubleaction"] = "Διπλής δράσης Ριβόλβερ", - ["weapon_navyrevolver"] = "Ναυτικό Ρεβόλβερ", - ["weapon_flaregun"] = "Πιστόλι αστραπών", - ["weapon_gadgetpistol"] = "Πιστόλι συσκευών", - ["weapon_heavypistol"] = "Βαρύ πιστόλι", - ["weapon_revolver"] = "Βαρύ Ρεβόλβερ", - ["weapon_revolver_mk2"] = "Βαρύ Ρεβόλβερ MK2", - ["weapon_marksmanpistol"] = "Πιστόλι μονομάχου", - ["weapon_pistol"] = "Πιστόλι", - ["weapon_pistol_mk2"] = "Πιστόλι MK2", - ["weapon_pistol50"] = "Πιστόλι .50", - ["weapon_snspistol"] = "Πιστόλι SNS", - ["weapon_snspistol_mk2"] = "Πιστόλι SNS MK2", - ["weapon_stungun"] = "Ηλεκτροπληξία", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Βιομηχανικό πιστόλι", - - -- Καραμπίνες - ["weapon_assaultshotgun"] = "Πολεμική Καραμπίνα", - ["weapon_autoshotgun"] = "Αυτόματη Καραμπίνα", - ["weapon_bullpupshotgun"] = "Bullpup Καραμπίνα", - ["weapon_combatshotgun"] = "Καραμπίνα πολέμου", - ["weapon_dbshotgun"] = "Διπλής κάννης Καραμπίνα", - ["weapon_heavyshotgun"] = "Βαριά Καραμπίνα", - ["weapon_musket"] = "Μουσκέτα", - ["weapon_pumpshotgun"] = "Καραμπίνα αντλίας", - ["weapon_pumpshotgun_mk2"] = "Καραμπίνα αντλίας MK2", - ["weapon_sawnoffshotgun"] = "Καραμπίνα με κοντά κάννη", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Πολεμικό SMG", - ["weapon_combatmg"] = "Πολεμικό MG", - ["weapon_combatmg_mk2"] = "Πολεμικό MG MK2", - ["weapon_combatpdw"] = "Πολεμικό PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Πιστόλι Αυτόματης Καραμπίνας", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Μικρό SMG", - ["weapon_minismg"] = "Μικρό SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Ανεξίτηλο Hellbringer", - - -- Καραμπίνες - ["weapon_advancedrifle"] = "Προηγμένη Καραμπίνα", - ["weapon_assaultrifle"] = "Καραμπίνα Επίθεσης", - ["weapon_assaultrifle_mk2"] = "Καραμπίνα Επίθεσης MK2", - ["weapon_bullpuprifle"] = "Bullpup Καραμπίνα", - ["weapon_bullpuprifle_mk2"] = "Bullpup Καραμπίνα MK2", - ["weapon_carbinerifle"] = "Καραμπίνα", - ["weapon_carbinerifle_mk2"] = "Καραμπίνα MK2", - ["weapon_compactrifle"] = "Συμπαγής Καραμπίνα", - ["weapon_militaryrifle"] = "Στρατιωτική Καραμπίνα", - ["weapon_specialcarbine"] = "Ειδική Καραμπίνα", - ["weapon_specialcarbine_mk2"] = "Ειδική Καραμπίνα MK2", - - -- Κυνηγετικά - ["weapon_heavysniper"] = "Βαρύ Κυνηγετικό Ρίφλε", - ["weapon_heavysniper_mk2"] = "Βαρύ Κυνηγετικό Ρίφλε MK2", - ["weapon_marksmanrifle"] = "Ρίφλε Επαγγελματία Σκοπευτή", - ["weapon_marksmanrifle_mk2"] = "Ρίφλε Επαγγελματία Σκοπευτή MK2", - ["weapon_sniperrifle"] = "Κυνηγετικό Ρίφλε", - ["weapon_heavyrifle"] = "βαρύ τουφέκι", - - -- Βαριά / Εκτοξευτές - ["weapon_compactlauncher"] = "Συμπαγής Εκτοξευτής", - ["weapon_firework"] = "Εκτοξευτής Πυροτεχνημάτων", - ["weapon_grenadelauncher"] = "Εκτοξευτής Γρανατών", - ["weapon_hominglauncher"] = "Εκτοξευτής Εξόρυξης", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Εκτοξευτής Πυραύλων", - ["weapon_rayminigun"] = "Widowmaker", - - -- Επιπλέον Όπλα από το Criminal Enterprises DLC - ["weapon_metaldetector"] = "Ανιχνευτής Μετάλλων", - ["weapon_precisionrifle"] = "Όπλο Ακρίβειας", - ["weapon_tactilerifle"] = "Όπλο Εξυπηρέτησης", - - -- Drug wars dlc - ["weapon_candycane"] = "Candycane", - ["weapon_acidpackage"] = "Acid Package", - ["weapon_pistolxm3"] = "Pistol8 x3m", - ["weapon_railgunxm3"] = "Railgun", - - -- Ρίψεις - ["weapon_ball"] = "Μπάλα", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Πυροτεχνήματα", - ["weapon_grenade"] = "Χειροβομβίδα", - ["weapon_petrolcan"] = "Κανέλα Βενζίνης", - ["weapon_hazardcan"] = "Κανέλα Επικίνδυνης Υλικότητας", - ["weapon_molotov"] = "Μολότοφ", - ["weapon_proxmine"] = "Νάρκη Εγγύτητας", - ["weapon_pipebomb"] = "Βόμβα Σωλήνα", - ["weapon_snowball"] = "Χιονόμπαλα", - ["weapon_stickybomb"] = "Κολλητή Βόμβα", - ["weapon_smokegrenade"] = "Δακρυγόνο", - - -- Ειδικά - ["weapon_fireextinguisher"] = "Πυροσβεστήρας", - ["weapon_digiscanner"] = "Ψηφιακός Σαρωτής", - ["weapon_garbagebag"] = "Σακούλα Απορριμμάτων", - ["weapon_handcuffs"] = "Χειροπέδες", - ["gadget_nightvision"] = "Νυχτερινή Όραση", - ["gadget_parachute"] = "Αλεξίπτωτο", - - -- Συστατικά Όπλων - ["component_knuckle_base"] = "Βασικό Μοντέλο", - ["component_knuckle_pimp"] = "Ο Φιλότιμος", - ["component_knuckle_ballas"] = "Οι Ballas", - ["component_knuckle_dollar"] = "Ο Εξαπατητής", - ["component_knuckle_diamond"] = "Η Ρόκα", - ["component_knuckle_hate"] = "Ο Μισητός", - ["component_knuckle_love"] = "Ο Εραστής", - ["component_knuckle_player"] = "Ο Παίκτης", - ["component_knuckle_king"] = "Ο Βασιλιάς", - ["component_knuckle_vagos"] = "Οι Vagos", - - ["component_luxary_finish"] = "Πολυτελές Φινίρισμα Όπλου", - - ["component_handle_default"] = "Προεπιλεγμένη Χειρολαβή", - ["component_handle_vip"] = "Χειρολαβή VIP", - ["component_handle_bodyguard"] = "Χειρολαβή Σωματοφύλακα", - - ["component_vip_finish"] = "Πολυτελές Φινίρισμα VIP", - ["component_bodyguard_finish"] = "Πολυτελές Φινίρισμα Σωματοφύλακα", - - ["component_camo_finish"] = "Ψηφιακό Καμουφλάζ", - ["component_camo_finish2"] = "Καμουφλάζ Πινελίου", - ["component_camo_finish3"] = "Καμουφλάζ Δάσους", - ["component_camo_finish4"] = "Καμουφλάζ Κρανίου", - ["component_camo_finish5"] = "Καμουφλάζ Sessanta Nove", - ["component_camo_finish6"] = "Καμουφλάζ Perseus", - ["component_camo_finish7"] = "Καμουφλάζ Λεοπάρδαλης", - ["component_camo_finish8"] = "Καμουφλάζ Ζέβρας", - ["component_camo_finish9"] = "Γεωμετρικό Καμουφλάζ", - ["component_camo_finish10"] = "Καμουφλάζ Boom", - ["component_camo_finish11"] = "Πατριωτικό Καμουφλάζ", - - ["component_camo_slide_finish"] = "Ψηφιακό Καμουφλάζ Slide", - ["component_camo_slide_finish2"] = "Καμουφλάζ Πινελίου Slide", - ["component_camo_slide_finish3"] = "Καμουφλάζ Δάσους Slide", - ["component_camo_slide_finish4"] = "Καμουφλάζ Κρανίου Slide", - ["component_camo_slide_finish5"] = "Καμουφλάζ Sessanta Nove Slide", - ["component_camo_slide_finish6"] = "Καμουφλάζ Perseus Slide", - ["component_camo_slide_finish7"] = "Καμουφλάζ Λεοπάρδαλης Slide", - ["component_camo_slide_finish8"] = "Καμουφλάζ Ζέβρας Slide", - ["component_camo_slide_finish9"] = "Γεωμετρικό Καμουφλάζ Slide", - ["component_camo_slide_finish10"] = "Καμουφλάζ Boom Slide", - ["component_camo_slide_finish11"] = "Πατριωτικό Καμουφλάζ Slide", - - ["component_clip_default"] = "Προεπιλεγμένο Περιοδικό", - ["component_clip_extended"] = "Επέκταση Περιοδικού", - ["component_clip_drum"] = "Περιοδικό Κάδος", - ["component_clip_box"] = "Περιοδικό Κιβώτιο", - - ["component_scope_holo"] = "Ολογραφική Σκοπευτική Συσκευή", - ["component_scope_small"] = "Μικρή Σκοπευτική Συσκευή", - ["component_scope_medium"] = "Μεσαία Σκοπευτική Συσκευή", - ["component_scope_large"] = "Μεγάλη Σκοπευτική Συσκευή", - ["component_scope"] = "Σκοπευτική Συσκευή Εγκατεστημένη", - ["component_scope_advanced"] = "Προηγμένη Σκοπευτική Συσκευή", - ["component_ironsights"] = "Σκοπευτικά Σιδερά", - - ["component_suppressor"] = "Καταστεναγματοποιητής", - ["component_compensator"] = "Αποζημιωτής", - - ["component_muzzle_flat"] = "Επίπεδο Φρένο Αέρα", - ["component_muzzle_tactical"] = "Τακτικό Φρένο Αέρα", - ["component_muzzle_fat"] = "Φρένο Αέρα Παχύ Άκρο", - ["component_muzzle_precision"] = "Φρένο Αέρα Ακρίβειας", - ["component_muzzle_heavy"] = "Φρένο Αέρα Βαρέως Τύπου", - ["component_muzzle_slanted"] = "Φρένο Αέρα Ανοιγοκλειστό", - ["component_muzzle_split"] = "Φρένο Αέρα Υποκλιμακούμενο", - ["component_muzzle_squared"] = "Φρένο Αέρα Τετραγωνισμένο", - - ["component_flashlight"] = "Φακός", - ["component_grip"] = "Λαβή", - - ["component_barrel_default"] = "Προεπιλεγμένο Κάννα", - ["component_barrel_heavy"] = "Βαριά Κάννα", - - ["component_ammo_tracer"] = "Σφαίρες με Ιχνηθέν Φωτός", - ["component_ammo_incendiary"] = "Σφαίρες Φωτιάς", - ["component_ammo_hollowpoint"] = "Σφαίρες Κενές Άκρες", - ["component_ammo_fmj"] = "Σφαίρες FMJ", - ["component_ammo_armor"] = "Σφαίρες Διάτρησης Θωράκισης", - ["component_ammo_explosive"] = "Εκρηκτικές Σφαίρες Διάτρησης Θωράκισης", - - ["component_shells_default"] = "Προεπιλεγμένες Φυσίγγια", - ["component_shells_incendiary"] = "Φυσίγγια Διαμαντινών", - ["component_shells_armor"] = "Φυσίγγια Θωράκισης Χάλυβα", - ["component_shells_hollowpoint"] = "Φυσίγγια Κενών Άκρων", - ["component_shells_explosive"] = "Φυσίγγια Εκρηκτικών", - - -- Πυρομαχικά Όπλων - ["ammo_rounds"] = "σφαιρίδιο(α)", - ["ammo_shells"] = "φυσίγγιο(α)", - ["ammo_charge"] = "φορτίο", - ["ammo_petrol"] = "γαλόνια καυσίμου", - ["ammo_firework"] = "πυροτεχνήματο(α)", - ["ammo_rockets"] = "πύραυλο(ι)", - ["ammo_grenadelauncher"] = "χειροβομβίδα(ες)", - ["ammo_grenade"] = "χειροβομβίδα(ες)", - ["ammo_stickybomb"] = "βόμβα(ες)", - ["ammo_pipebomb"] = "βόμβα(ες)", - ["ammo_smokebomb"] = "βόμβα(ες) καπνού", - ["ammo_molotov"] = "κοκτέιλ μολότοφ(α)", - ["ammo_proxmine"] = "μίνα(ες) εγγύτητας", - ["ammo_bzgas"] = "κανίστρα(ες)", - ["ammo_ball"] = "μπάλα(ες)", - ["ammo_snowball"] = "χιονόμπαλα(ες)", - ["ammo_flare"] = "φλογοβολίδα(ες)", - ["ammo_flaregun"] = "φλογοβολίδα(ες)", - - -- Επιστρώσεις Όπλων - ["tint_default"] = "προεπιλεγμένο δέρμα", - ["tint_green"] = "πράσινο δέρμα", - ["tint_gold"] = "χρυσό δέρμα", - ["tint_pink"] = "ροζ δέρμα", - ["tint_army"] = "στρατιωτικό δέρμα", - ["tint_lspd"] = "μπλε δέρμα", - ["tint_orange"] = "πορτοκαλί δέρμα", - ["tint_platinum"] = "πλατίνενο δέρμα", + -- Inventory + ["inventory"] = "Αποθήκη ( Βάρος %s / %s )", + ["use"] = "Χρήση", + ["give"] = "Δώσε", + ["remove"] = "Πέτα", + ["return"] = "Επιστροφή", + ["give_to"] = "Δώσε σε", + ["amount"] = "Ποσότητα", + ["giveammo"] = "Δώσε σφαίρες", + ["amountammo"] = "Ποσότητα σφαιρών", + ["noammo"] = "Δεν υπάρχουν αρκετές σφαίρες!", + ["gave_item"] = "Δώσατε %sx %s στον/στην %s", + ["received_item"] = "Λάβατε %sx %s από τον/την %s", + ["gave_weapon"] = "Δίνετε %s στον/στην %s", + ["gave_weapon_ammo"] = "Δίνετε ~o~%sx %s για %s στον/στην %s", + ["gave_weapon_withammo"] = "Δίνετε %s με ~o~%sx %s στον/στην %s", + ["gave_weapon_hasalready"] = "Ο/Η %s έχει ήδη ένα %s", + ["gave_weapon_noweapon"] = "Ο/Η %s δεν έχει αυτό το όπλο", + ["received_weapon"] = "Λάβατε %s από τον/την %s", + ["received_weapon_ammo"] = "Λάβατε ~o~%sx %s για το %s από τον/την %s", + ["received_weapon_withammo"] = "Λάβατε %s για ~o~%sx %s από τον/την %s", + ["received_weapon_hasalready"] = "Ο/Η %s προσπάθησε να σας δώσει ένα %s, αλλά το έχετε ήδη", + ["received_weapon_noweapon"] = "Ο/Η %s προσπάθησε να σας δώσει σφαίρες για το %s, αλλά δεν έχετε αυτό το όπλο", + ["gave_account_money"] = "Δίνετε $%s (%s) στον/στην %s", + ["received_account_money"] = "Λάβατε $%s (%s) από τον/την %s", + ["amount_invalid"] = "Μη έγκυρη ποσότητα", + ["players_nearby"] = "Δεν υπάρχουν κοντινοί παίκτες", + ["ex_inv_lim"] = "Δεν είναι δυνατή η ενέργεια, υπέρβαση του μέγιστου βάρους των %s", + ["imp_invalid_quantity"] = "Δεν είναι δυνατή η ενέργεια, η ποσότητα δεν είναι έγκυρη", + ["imp_invalid_amount"] = "Δεν είναι δυνατή η ενέργεια, το ποσό δεν είναι έγκυρο", + ["threw_standard"] = "Ρίχνοντας %sx %s", + ["threw_account"] = "Ρίχνοντας $%s %s", + ["threw_weapon"] = "Ρίχνοντας %s", + ["threw_weapon_ammo"] = "Ρίχνοντας %s με ~o~%sx %s", + ["threw_weapon_already"] = "Ήδη έχετε αυτό το όπλο", + ["threw_cannot_pickup"] = "Η αποθήκη είναι γεμάτη, δεν μπορείτε να σηκώσετε!", + ["threw_pickup_prompt"] = "Πατήστε E για να σηκώσετε", + + -- Key mapping + ["keymap_showinventory"] = "Εμφάνιση Αποθήκης", + + -- Salary related + ["received_salary"] = "Έχετε λάβει μισθό: $%s", + ["received_help"] = "Έχετε λάβει το βοήθημά σας: $%s", + ["company_nomoney"] = "Η εταιρεία στην οποία είστε απασχολούμενος/η δεν έχει αρκετά χρήματα για να καταβάλει τον μισθό σας", + ["received_paycheck"] = "λάβατε μισθό", + ["bank"] = "Τράπεζα Maze", + ["account_bank"] = "Τραπεζικός Λογαριασμός", + ["account_black_money"] = "Βρώμικα Χρήματα", + ["account_money"] = "Μετρητά", + + ["act_imp"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας", + ["in_vehicle"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας, ο παίκτης βρίσκεται σε όχημα", + ["not_in_vehicle"] = "Δεν είναι δυνατή η εκτέλεση της ενέργειας, ο παίκτης δεν βρίσκεται σε κάποιο όχημα", + + -- Commands + ["command_bring"] = "Φέρτε τον παίκτη σε εσάς", + ["command_car"] = "Κλήση οχήματος", + ["command_car_car"] = "Μοντέλο ή κωδικός οχήματος", + ["command_cardel"] = "Κατάργηση οχημάτων κοντά", + ["command_cardel_radius"] = "Καταργεί όλα τα οχήματα εντός της καθορισμένης ακτίνας", + ["command_repair"] = "Επισκέυασε το όχημα σου", + ["command_repair_success"] = "Το όχημα σου επισκευάστηκε", + ["command_repair_success_target"] = "Ένας διαχειριστής επισκεύασε το όχημα σου", + ["command_clear"] = "Καθαρισμός κειμένου στο chat", + ["command_clearall"] = "Καθαρισμός κειμένου στο chat για όλους τους παίκτες", + ["command_clearinventory"] = "Κατάργηση όλων των αντικειμένων από την αποθήκη των παικτών", + ["command_clearloadout"] = "Κατάργηση όλων των όπλων από την εξάρτηση των παικτών", + ["command_freeze"] = "Πάγωμα ενός παίκτη", + ["command_unfreeze"] = "Ξεπάγωμα ενός παίκτη", + ["command_giveaccountmoney"] = "Δώστε χρήματα σε καθορισμένο λογαριασμό", + ["command_giveaccountmoney_account"] = "Λογαριασμός προς προσθήκη", + ["command_giveaccountmoney_amount"] = "Ποσό προς προσθήκη", + ["command_giveaccountmoney_invalid"] = "Μη έγκυρο όνομα λογαριασμού", + ["command_removeaccountmoney"] = "Κατάργηση χρημάτων από καθορισμένο λογαριασμό", + ["command_removeaccountmoney_account"] = "Λογαριασμός από τον οποίο θα καταργηθούν τα χρήματα", + ["command_removeaccountmoney_amount"] = "Ποσό προς αφαίρεση", + ["command_removeaccountmoney_invalid"] = "Μη έγκυρο όνομα λογαριασμού", + ["command_giveitem"] = "Δώστε σε έναν παίκτη ένα αντικείμενο", + ["command_giveitem_item"] = "Όνομα αντικειμένου", + ["command_giveitem_count"] = "Ποσότητα", + ["command_giveweapon"] = "Δώστε σε έναν παίκτη ένα όπλο", + ["command_giveweapon_weapon"] = "Όνομα όπλου", + ["command_giveweapon_ammo"] = "Ποσότητα πυρομαχικών", + ["command_giveweapon_hasalready"] = "Ο παίκτης έχει ήδη αυτό το όπλο", + ["command_giveweaponcomponent"] = "Δώστε σε έναν παίκτη μια εξάρτηση όπλου", + ["command_giveweaponcomponent_component"] = "Όνομα εξάρτησης", + ["command_giveweaponcomponent_invalid"] = "Μη έγκυρη εξάρτηση όπλου", + ["command_giveweaponcomponent_hasalready"] = "Ο παίκτης έχει ήδη αυτήν την εξάρτηση όπλου", + ["command_giveweaponcomponent_missingweapon"] = "Ο παίκτης δεν έχει αυτό το όπλο", + ["command_goto"] = "Τηλεμεταφέρεστε σε έναν παίκτη", + ["command_kill"] = "Σκοτώστε έναν παίκτη", + ["command_save"] = "Εξαναγκαστική αποθήκευση δεδομένων ενός παίκτη", + ["command_saveall"] = "Εξαναγκαστική αποθήκευση όλων των δεδομένων των παικτών", + ["command_setaccountmoney"] = "Ορίστε τα χρήματα σε έναν καθορισμένο λογαριασμό", + ["command_setaccountmoney_amount"] = "Ποσό", + ["command_setcoords"] = "Τηλεμεταφερθείτε σε καθορισμένες συντεταγμένες", + ["command_setcoords_x"] = "Τιμή X", + ["command_setcoords_y"] = "Τιμή Y", + ["command_setcoords_z"] = "Τιμή Z", + ["command_setjob"] = "Ορίστε το επάγγελμα ενός παίκτη", + ["command_setjob_job"] = "Όνομα", + ["command_setjob_grade"] = "Βαθμός επαγγέλματος", + ["command_setjob_invalid"] = "Το επάγγελμα, ο βαθμός ή και οι δύο είναι μη έγκυρα", + ["command_setgroup"] = "Ορίστε την ομάδα δικαιωμάτων ενός παίκτη", + ["command_setgroup_group"] = "Όνομα Ομάδας", + ["commanderror_argumentmismatch"] = "Μη έγκυρος αριθμός ορισμάτων (δόθηκαν %s, αναμενόμενα %s)", + ["commanderror_argumentmismatch_number"] = "Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε συμβολοσειρά, αναμενόμενος αριθμός)", + ["commanderror_argumentmismatch_string"] = "Μη έγκυρος τύπος δεδομένων για το όρισμα #%s (δόθηκε αριθμός, αναμενόμενη συμβολοσειρά)", + ["commanderror_invaliditem"] = "Μη έγκυρο αντικείμενο", + ["commanderror_invalidweapon"] = "Μη έγκυρο όπλο", + ["commanderror_console"] = "Η εντολή δεν μπορεί να εκτελεστεί από την κονσόλα", + ["commanderror_invalidcommand"] = "Μη έγκυρη εντολή - /%s", + ["commanderror_invalidplayerid"] = "Ο καθορισμένος παίκτης δεν είναι συνδεδεμένος", + ["commandgeneric_playerid"] = "Αναγνωριστικό διακομιστή του παίκτη", + ["command_giveammo_noweapon_found"] = "Ο %s δεν έχει αυτό το όπλο", + ["command_giveammo_weapon"] = "Όνομα όπλου", + ["command_giveammo_ammo"] = "Ποσότητα πυρομαχικών", + ["tpm_nowaypoint"] = "Δεν έχει οριστεί σημείο προορισμού.", + ["tpm_success"] = "Επιτυχής τηλεμεταφορά", + + ["noclip_message"] = "Το Noclip έχει %s", + ["enabled"] = "~g~ενεργοποιήθηκε~s~", + ["disabled"] = "~r~απενεργοποιήθηκε~s~", + + -- Ρυθμίσεις τοπικής γλώσσας + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Όπλα + + -- Χειροποίητα + ["weapon_dagger"] = "Στιλέτο", + ["weapon_bat"] = "Μπαστούνι", + ["weapon_battleaxe"] = "Πολεμική σείρα", + ["weapon_bottle"] = "Μπουκάλι", + ["weapon_crowbar"] = "Ροπαλάκι", + ["weapon_flashlight"] = "Φακός", + ["weapon_golfclub"] = "Γκολφ", + ["weapon_hammer"] = "Σφυρί", + ["weapon_hatchet"] = "Πέλεκυς", + ["weapon_knife"] = "Μαχαίρι", + ["weapon_knuckle"] = "Χειροπέδες", + ["weapon_machete"] = "Μαχαίρι μαχαιροπίρουνου", + ["weapon_nightstick"] = "Ρόπαλο νυχτερίδας", + ["weapon_wrench"] = "Ροκανίδι", + ["weapon_poolcue"] = "Καστήλα", + ["weapon_stone_hatchet"] = "Πέλεκυς από πέτρα", + ["weapon_switchblade"] = "Ξυραφάκι", + + -- Πιστόλια + ["weapon_appistol"] = "AP Πιστόλι", + ["weapon_ceramicpistol"] = "Κεραμικό πιστόλι", + ["weapon_combatpistol"] = "Πολεμικό πιστόλι", + ["weapon_doubleaction"] = "Διπλής δράσης Ριβόλβερ", + ["weapon_navyrevolver"] = "Ναυτικό Ρεβόλβερ", + ["weapon_flaregun"] = "Πιστόλι αστραπών", + ["weapon_gadgetpistol"] = "Πιστόλι συσκευών", + ["weapon_heavypistol"] = "Βαρύ πιστόλι", + ["weapon_revolver"] = "Βαρύ Ρεβόλβερ", + ["weapon_revolver_mk2"] = "Βαρύ Ρεβόλβερ MK2", + ["weapon_marksmanpistol"] = "Πιστόλι μονομάχου", + ["weapon_pistol"] = "Πιστόλι", + ["weapon_pistol_mk2"] = "Πιστόλι MK2", + ["weapon_pistol50"] = "Πιστόλι .50", + ["weapon_snspistol"] = "Πιστόλι SNS", + ["weapon_snspistol_mk2"] = "Πιστόλι SNS MK2", + ["weapon_stungun"] = "Ηλεκτροπληξία", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Βιομηχανικό πιστόλι", + + -- Καραμπίνες + ["weapon_assaultshotgun"] = "Πολεμική Καραμπίνα", + ["weapon_autoshotgun"] = "Αυτόματη Καραμπίνα", + ["weapon_bullpupshotgun"] = "Bullpup Καραμπίνα", + ["weapon_combatshotgun"] = "Καραμπίνα πολέμου", + ["weapon_dbshotgun"] = "Διπλής κάννης Καραμπίνα", + ["weapon_heavyshotgun"] = "Βαριά Καραμπίνα", + ["weapon_musket"] = "Μουσκέτα", + ["weapon_pumpshotgun"] = "Καραμπίνα αντλίας", + ["weapon_pumpshotgun_mk2"] = "Καραμπίνα αντλίας MK2", + ["weapon_sawnoffshotgun"] = "Καραμπίνα με κοντά κάννη", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Πολεμικό SMG", + ["weapon_combatmg"] = "Πολεμικό MG", + ["weapon_combatmg_mk2"] = "Πολεμικό MG MK2", + ["weapon_combatpdw"] = "Πολεμικό PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Πιστόλι Αυτόματης Καραμπίνας", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Μικρό SMG", + ["weapon_minismg"] = "Μικρό SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Ανεξίτηλο Hellbringer", + + -- Καραμπίνες + ["weapon_advancedrifle"] = "Προηγμένη Καραμπίνα", + ["weapon_assaultrifle"] = "Καραμπίνα Επίθεσης", + ["weapon_assaultrifle_mk2"] = "Καραμπίνα Επίθεσης MK2", + ["weapon_bullpuprifle"] = "Bullpup Καραμπίνα", + ["weapon_bullpuprifle_mk2"] = "Bullpup Καραμπίνα MK2", + ["weapon_carbinerifle"] = "Καραμπίνα", + ["weapon_carbinerifle_mk2"] = "Καραμπίνα MK2", + ["weapon_compactrifle"] = "Συμπαγής Καραμπίνα", + ["weapon_militaryrifle"] = "Στρατιωτική Καραμπίνα", + ["weapon_specialcarbine"] = "Ειδική Καραμπίνα", + ["weapon_specialcarbine_mk2"] = "Ειδική Καραμπίνα MK2", + + -- Κυνηγετικά + ["weapon_heavysniper"] = "Βαρύ Κυνηγετικό Ρίφλε", + ["weapon_heavysniper_mk2"] = "Βαρύ Κυνηγετικό Ρίφλε MK2", + ["weapon_marksmanrifle"] = "Ρίφλε Επαγγελματία Σκοπευτή", + ["weapon_marksmanrifle_mk2"] = "Ρίφλε Επαγγελματία Σκοπευτή MK2", + ["weapon_sniperrifle"] = "Κυνηγετικό Ρίφλε", + ["weapon_heavyrifle"] = "βαρύ τουφέκι", + + -- Βαριά / Εκτοξευτές + ["weapon_compactlauncher"] = "Συμπαγής Εκτοξευτής", + ["weapon_firework"] = "Εκτοξευτής Πυροτεχνημάτων", + ["weapon_grenadelauncher"] = "Εκτοξευτής Γρανατών", + ["weapon_hominglauncher"] = "Εκτοξευτής Εξόρυξης", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Εκτοξευτής Πυραύλων", + ["weapon_rayminigun"] = "Widowmaker", + + -- Επιπλέον Όπλα από το Criminal Enterprises DLC + ["weapon_metaldetector"] = "Ανιχνευτής Μετάλλων", + ["weapon_precisionrifle"] = "Όπλο Ακρίβειας", + ["weapon_tactilerifle"] = "Όπλο Εξυπηρέτησης", + + -- Drug wars dlc + ["weapon_candycane"] = "Candycane", + ["weapon_acidpackage"] = "Acid Package", + ["weapon_pistolxm3"] = "Pistol8 x3m", + ["weapon_railgunxm3"] = "Railgun", + + -- Ρίψεις + ["weapon_ball"] = "Μπάλα", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Πυροτεχνήματα", + ["weapon_grenade"] = "Χειροβομβίδα", + ["weapon_petrolcan"] = "Κανέλα Βενζίνης", + ["weapon_hazardcan"] = "Κανέλα Επικίνδυνης Υλικότητας", + ["weapon_molotov"] = "Μολότοφ", + ["weapon_proxmine"] = "Νάρκη Εγγύτητας", + ["weapon_pipebomb"] = "Βόμβα Σωλήνα", + ["weapon_snowball"] = "Χιονόμπαλα", + ["weapon_stickybomb"] = "Κολλητή Βόμβα", + ["weapon_smokegrenade"] = "Δακρυγόνο", + + -- Ειδικά + ["weapon_fireextinguisher"] = "Πυροσβεστήρας", + ["weapon_digiscanner"] = "Ψηφιακός Σαρωτής", + ["weapon_garbagebag"] = "Σακούλα Απορριμμάτων", + ["weapon_handcuffs"] = "Χειροπέδες", + ["gadget_nightvision"] = "Νυχτερινή Όραση", + ["gadget_parachute"] = "Αλεξίπτωτο", + + -- Συστατικά Όπλων + ["component_knuckle_base"] = "Βασικό Μοντέλο", + ["component_knuckle_pimp"] = "Ο Φιλότιμος", + ["component_knuckle_ballas"] = "Οι Ballas", + ["component_knuckle_dollar"] = "Ο Εξαπατητής", + ["component_knuckle_diamond"] = "Η Ρόκα", + ["component_knuckle_hate"] = "Ο Μισητός", + ["component_knuckle_love"] = "Ο Εραστής", + ["component_knuckle_player"] = "Ο Παίκτης", + ["component_knuckle_king"] = "Ο Βασιλιάς", + ["component_knuckle_vagos"] = "Οι Vagos", + + ["component_luxary_finish"] = "Πολυτελές Φινίρισμα Όπλου", + + ["component_handle_default"] = "Προεπιλεγμένη Χειρολαβή", + ["component_handle_vip"] = "Χειρολαβή VIP", + ["component_handle_bodyguard"] = "Χειρολαβή Σωματοφύλακα", + + ["component_vip_finish"] = "Πολυτελές Φινίρισμα VIP", + ["component_bodyguard_finish"] = "Πολυτελές Φινίρισμα Σωματοφύλακα", + + ["component_camo_finish"] = "Ψηφιακό Καμουφλάζ", + ["component_camo_finish2"] = "Καμουφλάζ Πινελίου", + ["component_camo_finish3"] = "Καμουφλάζ Δάσους", + ["component_camo_finish4"] = "Καμουφλάζ Κρανίου", + ["component_camo_finish5"] = "Καμουφλάζ Sessanta Nove", + ["component_camo_finish6"] = "Καμουφλάζ Perseus", + ["component_camo_finish7"] = "Καμουφλάζ Λεοπάρδαλης", + ["component_camo_finish8"] = "Καμουφλάζ Ζέβρας", + ["component_camo_finish9"] = "Γεωμετρικό Καμουφλάζ", + ["component_camo_finish10"] = "Καμουφλάζ Boom", + ["component_camo_finish11"] = "Πατριωτικό Καμουφλάζ", + + ["component_camo_slide_finish"] = "Ψηφιακό Καμουφλάζ Slide", + ["component_camo_slide_finish2"] = "Καμουφλάζ Πινελίου Slide", + ["component_camo_slide_finish3"] = "Καμουφλάζ Δάσους Slide", + ["component_camo_slide_finish4"] = "Καμουφλάζ Κρανίου Slide", + ["component_camo_slide_finish5"] = "Καμουφλάζ Sessanta Nove Slide", + ["component_camo_slide_finish6"] = "Καμουφλάζ Perseus Slide", + ["component_camo_slide_finish7"] = "Καμουφλάζ Λεοπάρδαλης Slide", + ["component_camo_slide_finish8"] = "Καμουφλάζ Ζέβρας Slide", + ["component_camo_slide_finish9"] = "Γεωμετρικό Καμουφλάζ Slide", + ["component_camo_slide_finish10"] = "Καμουφλάζ Boom Slide", + ["component_camo_slide_finish11"] = "Πατριωτικό Καμουφλάζ Slide", + + ["component_clip_default"] = "Προεπιλεγμένο Περιοδικό", + ["component_clip_extended"] = "Επέκταση Περιοδικού", + ["component_clip_drum"] = "Περιοδικό Κάδος", + ["component_clip_box"] = "Περιοδικό Κιβώτιο", + + ["component_scope_holo"] = "Ολογραφική Σκοπευτική Συσκευή", + ["component_scope_small"] = "Μικρή Σκοπευτική Συσκευή", + ["component_scope_medium"] = "Μεσαία Σκοπευτική Συσκευή", + ["component_scope_large"] = "Μεγάλη Σκοπευτική Συσκευή", + ["component_scope"] = "Σκοπευτική Συσκευή Εγκατεστημένη", + ["component_scope_advanced"] = "Προηγμένη Σκοπευτική Συσκευή", + ["component_ironsights"] = "Σκοπευτικά Σιδερά", + + ["component_suppressor"] = "Καταστεναγματοποιητής", + ["component_compensator"] = "Αποζημιωτής", + + ["component_muzzle_flat"] = "Επίπεδο Φρένο Αέρα", + ["component_muzzle_tactical"] = "Τακτικό Φρένο Αέρα", + ["component_muzzle_fat"] = "Φρένο Αέρα Παχύ Άκρο", + ["component_muzzle_precision"] = "Φρένο Αέρα Ακρίβειας", + ["component_muzzle_heavy"] = "Φρένο Αέρα Βαρέως Τύπου", + ["component_muzzle_slanted"] = "Φρένο Αέρα Ανοιγοκλειστό", + ["component_muzzle_split"] = "Φρένο Αέρα Υποκλιμακούμενο", + ["component_muzzle_squared"] = "Φρένο Αέρα Τετραγωνισμένο", + + ["component_flashlight"] = "Φακός", + ["component_grip"] = "Λαβή", + + ["component_barrel_default"] = "Προεπιλεγμένο Κάννα", + ["component_barrel_heavy"] = "Βαριά Κάννα", + + ["component_ammo_tracer"] = "Σφαίρες με Ιχνηθέν Φωτός", + ["component_ammo_incendiary"] = "Σφαίρες Φωτιάς", + ["component_ammo_hollowpoint"] = "Σφαίρες Κενές Άκρες", + ["component_ammo_fmj"] = "Σφαίρες FMJ", + ["component_ammo_armor"] = "Σφαίρες Διάτρησης Θωράκισης", + ["component_ammo_explosive"] = "Εκρηκτικές Σφαίρες Διάτρησης Θωράκισης", + + ["component_shells_default"] = "Προεπιλεγμένες Φυσίγγια", + ["component_shells_incendiary"] = "Φυσίγγια Διαμαντινών", + ["component_shells_armor"] = "Φυσίγγια Θωράκισης Χάλυβα", + ["component_shells_hollowpoint"] = "Φυσίγγια Κενών Άκρων", + ["component_shells_explosive"] = "Φυσίγγια Εκρηκτικών", + + -- Πυρομαχικά Όπλων + ["ammo_rounds"] = "σφαιρίδιο(α)", + ["ammo_shells"] = "φυσίγγιο(α)", + ["ammo_charge"] = "φορτίο", + ["ammo_petrol"] = "γαλόνια καυσίμου", + ["ammo_firework"] = "πυροτεχνήματο(α)", + ["ammo_rockets"] = "πύραυλο(ι)", + ["ammo_grenadelauncher"] = "χειροβομβίδα(ες)", + ["ammo_grenade"] = "χειροβομβίδα(ες)", + ["ammo_stickybomb"] = "βόμβα(ες)", + ["ammo_pipebomb"] = "βόμβα(ες)", + ["ammo_smokebomb"] = "βόμβα(ες) καπνού", + ["ammo_molotov"] = "κοκτέιλ μολότοφ(α)", + ["ammo_proxmine"] = "μίνα(ες) εγγύτητας", + ["ammo_bzgas"] = "κανίστρα(ες)", + ["ammo_ball"] = "μπάλα(ες)", + ["ammo_snowball"] = "χιονόμπαλα(ες)", + ["ammo_flare"] = "φλογοβολίδα(ες)", + ["ammo_flaregun"] = "φλογοβολίδα(ες)", + + -- Επιστρώσεις Όπλων + ["tint_default"] = "προεπιλεγμένο δέρμα", + ["tint_green"] = "πράσινο δέρμα", + ["tint_gold"] = "χρυσό δέρμα", + ["tint_pink"] = "ροζ δέρμα", + ["tint_army"] = "στρατιωτικό δέρμα", + ["tint_lspd"] = "μπλε δέρμα", + ["tint_orange"] = "πορτοκαλί δέρμα", + ["tint_platinum"] = "πλατίνενο δέρμα", } diff --git a/[core]/es_extended/locales/en.lua b/[core]/es_extended/locales/en.lua index 81eb738b7..10a0bdd5f 100644 --- a/[core]/es_extended/locales/en.lua +++ b/[core]/es_extended/locales/en.lua @@ -1,381 +1,381 @@ Locales["en"] = { - -- Inventory - ["inventory"] = "Inventory ( Weight %s / %s )", - ["use"] = "Use", - ["give"] = "Give", - ["remove"] = "Throw", - ["return"] = "Return", - ["give_to"] = "Give to", - ["amount"] = "Amount", - ["giveammo"] = "Give ammo", - ["amountammo"] = "Ammo Amount", - ["noammo"] = "Not Enough!", - ["gave_item"] = "Giving %sx %s to %s", - ["received_item"] = "Received %sx %s from %s", - ["gave_weapon"] = "Giving %s to %s", - ["gave_weapon_ammo"] = "Giving ~o~%sx %s for %s to %s", - ["gave_weapon_withammo"] = "Giving %s with ~o~%sx %s to %s", - ["gave_weapon_hasalready"] = "%s already has a %s", - ["gave_weapon_noweapon"] = "%s does not have that weapon", - ["received_weapon"] = "Received %s from %s", - ["received_weapon_ammo"] = "Received ~o~%sx %s for your %s from %s", - ["received_weapon_withammo"] = "Received %s with ~o~%sx %s from %s", - ["received_weapon_hasalready"] = "%s has attempted to give you a %s, but you already this weapon", - ["received_weapon_noweapon"] = "%s has attempted to give you ammo for a %s, but you do not have this weapon", - ["gave_account_money"] = "Giving $%s (%s) to %s", - ["received_account_money"] = "Received $%s (%s) from %s", - ["amount_invalid"] = "Invalid quantity", - ["players_nearby"] = "No nearby Players", - ["ex_inv_lim"] = "Cannot perfom action,exceeding max weight of %s", - ["imp_invalid_quantity"] = "Cannot perfom action, the quantity is invalid", - ["imp_invalid_amount"] = "Cannot perfom action, the amount is invalid", - ["threw_standard"] = "Throwing %sx %s", - ["threw_account"] = "Throwing $%s %s", - ["threw_weapon"] = "Throwing %s", - ["threw_weapon_ammo"] = "Throwing %s with ~o~%sx %s", - ["threw_weapon_already"] = "You already have this weapon", - ["threw_cannot_pickup"] = "Inventory is full, Cannot Pickup!", - ["threw_pickup_prompt"] = "Press E to Pickup", - - -- Key mapping - ["keymap_showinventory"] = "Show Inventory", - - -- Salary related - ["received_salary"] = "You have been paid: $%s", - ["received_help"] = "You have been paid your welfare check: $%s", - ["company_nomoney"] = "the company you're employeed at is too poor to pay out your salary", - ["received_paycheck"] = "received paycheck", - ["bank"] = "Maze Bank", - ["account_bank"] = "Bank", - ["account_black_money"] = "Dirty Money", - ["account_money"] = "Cash", - - ["act_imp"] = "Cannot Perform Action", - ["in_vehicle"] = "Cannot Perform Action, Player is in a vehicle", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'Bring player to you', - ['command_car'] = 'Spawn a vehicle', - ['command_car_car'] = 'Vehicle model or hash', - ['command_cardel'] = 'Remove vehicles in proximity', - ['command_cardel_radius'] = 'Removes all vehicles within the specified radius', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Clear chat Text', - ['command_clearall'] = 'Clear chat Text for all players', - ['command_clearinventory'] = 'Remove All items from the Players Inventory', - ['command_clearloadout'] = 'Remove All weapons from the Players Loadout', - ['command_freeze'] = 'Freeze a player', - ['command_unfreeze'] = 'Unfreeze a player', - ['command_giveaccountmoney'] = 'Give Money to a specified Account', - ['command_giveaccountmoney_account'] = 'Account to add to', - ['command_giveaccountmoney_amount'] = 'Amount to add', - ['command_giveaccountmoney_invalid'] = 'Account Name Invalid', - ['command_removeaccountmoney'] = 'Remove Money from a specified Account', - ['command_removeaccountmoney_account'] = 'Account to remove from', - ['command_removeaccountmoney_amount'] = 'Amount to remove', - ['command_removeaccountmoney_invalid'] = 'Account Name Invalid', - ['command_giveitem'] = 'Give Player an item', - ['command_giveitem_item'] = 'Item name', - ['command_giveitem_count'] = 'Quantity', - ['command_giveweapon'] = 'Give player a weapon', - ['command_giveweapon_weapon'] = 'Weapon name', - ['command_giveweapon_ammo'] = 'Ammo Quantity', - ['command_giveweapon_hasalready'] = 'Player already has this weapon', - ['command_giveweaponcomponent'] = 'Give weapon component to player', - ['command_giveweaponcomponent_component'] = 'Component name', - ['command_giveweaponcomponent_invalid'] = 'Invalid weapon component', - ['command_giveweaponcomponent_hasalready'] = 'Player already has this weapon component', - ['command_giveweaponcomponent_missingweapon'] = 'Player does not have this weapon', - ['command_goto'] = 'Teleport yourself to a player', - ['command_kill'] = 'Kill a player', - ['command_save'] = 'Force Save a player`s Data', - ['command_saveall'] = 'Force Save all player data', - ['command_setaccountmoney'] = 'Set the money within a specified account', - ['command_setaccountmoney_amount'] = 'Amount', - ['command_setcoords'] = 'Teleport to specified Coordinates', - ['command_setcoords_x'] = 'X value', - ['command_setcoords_y'] = 'Y value', - ['command_setcoords_z'] = 'Z value', - ['command_setjob'] = 'Set a player`s job', - ['command_setjob_job'] = 'Name', - ['command_setjob_grade'] = 'Job grade', - ['command_setjob_invalid'] = 'the job, grade or both are invalid', - ['command_setgroup'] = 'Set a players permission group', - ['command_setgroup_group'] = 'Name of Group', - ['commanderror_argumentmismatch'] = 'Invalid Argument Count (passed %s, wanted %s)', - ['commanderror_argumentmismatch_number'] = 'Invalid Argument #%s data type (passed string, wanted number)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Invalid item', - ['commanderror_invalidweapon'] = 'Invalid weapon', - ['commanderror_console'] = 'Command Cannot be executed from console', - ['commanderror_invalidcommand'] = 'Invalid Command - /%s', - ['commanderror_invalidplayerid'] = 'Specified Player is not online', - ['commandgeneric_playerid'] = 'Player`s Server Id', - ['command_giveammo_noweapon_found'] = '%s does not have that weapon', - ['command_giveammo_weapon'] = 'Weapon name', - ['command_giveammo_ammo'] = 'Ammo Quantity', - ['tpm_nowaypoint'] = 'No Waypoint Set.', - ['tpm_success'] = 'Successfully Teleported', - - ['noclip_message'] = 'Noclip has been %s', - ['enabled'] = '~g~enabled~s~', - ['disabled'] = '~r~disabled~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "£%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dagger", - ["weapon_bat"] = "Bat", - ["weapon_battleaxe"] = "Battle Axe", - ["weapon_bottle"] = "Bottle", - ["weapon_crowbar"] = "Crowbar", - ["weapon_flashlight"] = "Flashlight", - ["weapon_golfclub"] = "Golf Club", - ["weapon_hammer"] = "Hammer", - ["weapon_hatchet"] = "Hatchet", - ["weapon_knife"] = "Knife", - ["weapon_knuckle"] = "Knuckledusters", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Nightstick", - ["weapon_wrench"] = "Pipe Wrench", - ["weapon_poolcue"] = "Pool Cue", - ["weapon_stone_hatchet"] = "Stone Hatchet", - ["weapon_switchblade"] = "Switchblade", - - -- Handguns - ["weapon_appistol"] = "AP Pistol", - ["weapon_ceramicpistol"] = "Ceramic Pistol", - ["weapon_combatpistol"] = "Combat Pistol", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadget Pistol", - ["weapon_heavypistol"] = "Heavy Pistol", - ["weapon_revolver"] = "Heavy Revolver", - ["weapon_revolver_mk2"] = "Heavy Revolver MK2", - ["weapon_marksmanpistol"] = "Marksman Pistol", - ["weapon_pistol"] = "Pistol", - ["weapon_pistol_mk2"] = "Pistol MK2", - ["weapon_pistol50"] = "Pistol .50", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistol", - - -- Shotguns - ["weapon_assaultshotgun"] = "Assault Shotgun", - ["weapon_autoshotgun"] = "Auto Shotgun", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Combat Shotgun", - ["weapon_dbshotgun"] = "Double Barrel Shotgun", - ["weapon_heavyshotgun"] = "Heavy Shotgun", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pump Shotgun", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Assault SMG", - ["weapon_combatmg"] = "Combat MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Machine Pistol", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unholy Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Advanced Rifle", - ["weapon_assaultrifle"] = "Assault Rifle", - ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", - ["weapon_bullpuprifle"] = "Bullpup Rifle", - ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", - ["weapon_carbinerifle"] = "Carbine Rifle", - ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", - ["weapon_compactrifle"] = "Compact Rifle", - ["weapon_militaryrifle"] = "Military Rifle", - ["weapon_specialcarbine"] = "Special Carbine", - ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", - - -- Sniper - ["weapon_heavysniper"] = "Heavy Sniper", - ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", - ["weapon_marksmanrifle"] = "Marksman Rifle", - ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", - ["weapon_sniperrifle"] = "Sniper Rifle", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Compact Launcher", - ["weapon_firework"] = "Firework Launcher", - ["weapon_grenadelauncher"] = "Grenade Launcher", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Rocket Launcher", - ["weapon_rayminigun"] = "Widowmaker", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Metal Detector", - ["weapon_precisionrifle"] = "Precision Rifle", - ["weapon_tactilerifle"] = "Service Carbine", - - -- Drug wars dlc - ["weapon_candycane"] = "Candycane", - ["weapon_acidpackage"] = "Acid Package", - ["weapon_pistolxm3"] = "Pistol8 x3m", - ["weapon_railgunxm3"] = "Railgun", - - -- Thrown - ["weapon_ball"] = "Baseball", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Grenade", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Hazardous Jerrycan", - ["weapon_molotov"] = "Molotov Cocktail", - ["weapon_proxmine"] = "Proximity Mine", - ["weapon_pipebomb"] = "Pipe Bomb", - ["weapon_snowball"] = "Snowball", - ["weapon_stickybomb"] = "Sticky Bomb", - ["weapon_smokegrenade"] = "Tear Gas", - - -- Special - ["weapon_fireextinguisher"] = "Fire Extinguisher", - ["weapon_digiscanner"] = "Digital Scanner", - ["weapon_garbagebag"] = "Garbage Bag", - ["weapon_handcuffs"] = "Handcuffs", - ["gadget_nightvision"] = "Night Vision", - ["gadget_parachute"] = "parachute", - - -- Weapon Components - ["component_knuckle_base"] = "base Model", - ["component_knuckle_pimp"] = "the Pimp", - ["component_knuckle_ballas"] = "the Ballas", - ["component_knuckle_dollar"] = "the Hustler", - ["component_knuckle_diamond"] = "the Rock", - ["component_knuckle_hate"] = "the Hater", - ["component_knuckle_love"] = "the Lover", - ["component_knuckle_player"] = "the Player", - ["component_knuckle_king"] = "the King", - ["component_knuckle_vagos"] = "the Vagos", - - ["component_luxary_finish"] = "luxary Weapon Finish", - - ["component_handle_default"] = "default Handle", - ["component_handle_vip"] = "vIP Handle", - ["component_handle_bodyguard"] = "bodyguard Handle", - - ["component_vip_finish"] = "vIP Finish", - ["component_bodyguard_finish"] = "bodyguard Finish", - - ["component_camo_finish"] = "digital Camo", - ["component_camo_finish2"] = "brushstroke Camo", - ["component_camo_finish3"] = "woodland Camo", - ["component_camo_finish4"] = "skull Camo", - ["component_camo_finish5"] = "sessanta Nove Camo", - ["component_camo_finish6"] = "perseus Camo", - ["component_camo_finish7"] = "leopard Camo", - ["component_camo_finish8"] = "zebra Camo", - ["component_camo_finish9"] = "geometric Camo", - ["component_camo_finish10"] = "boom Camo", - ["component_camo_finish11"] = "patriotic Camo", - - ["component_camo_slide_finish"] = "digital Slide Camo", - ["component_camo_slide_finish2"] = "brushstroke Slide Camo", - ["component_camo_slide_finish3"] = "woodland Slide Camo", - ["component_camo_slide_finish4"] = "skull Slide Camo", - ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", - ["component_camo_slide_finish6"] = "perseus Slide Camo", - ["component_camo_slide_finish7"] = "leopard Slide Camo", - ["component_camo_slide_finish8"] = "zebra Slide Camo", - ["component_camo_slide_finish9"] = "geometric Slide Camo", - ["component_camo_slide_finish10"] = "boom Slide Camo", - ["component_camo_slide_finish11"] = "patriotic Slide Camo", - - ["component_clip_default"] = "default Magazine", - ["component_clip_extended"] = "extended Magazine", - ["component_clip_drum"] = "drum Magazine", - ["component_clip_box"] = "box Magazine", - - ["component_scope_holo"] = "holographic Scope", - ["component_scope_small"] = "small Scope", - ["component_scope_medium"] = "medium Scope", - ["component_scope_large"] = "large Scope", - ["component_scope"] = "mounted Scope", - ["component_scope_advanced"] = "advanced Scope", - ["component_ironsights"] = "ironsights", - - ["component_suppressor"] = "suppressor", - ["component_compensator"] = "compensator", - - ["component_muzzle_flat"] = "flat Muzzle Brake", - ["component_muzzle_tactical"] = "tactical Muzzle Brake", - ["component_muzzle_fat"] = "fat-End Muzzle Brake", - ["component_muzzle_precision"] = "precision Muzzle Brake", - ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", - ["component_muzzle_slanted"] = "slanted Muzzle Brake", - ["component_muzzle_split"] = "split-End Muzzle Brake", - ["component_muzzle_squared"] = "squared Muzzle Brake", - - ["component_flashlight"] = "flashlight", - ["component_grip"] = "grip", - - ["component_barrel_default"] = "default Barrel", - ["component_barrel_heavy"] = "heavy Barrel", - - ["component_ammo_tracer"] = "tracer Ammo", - ["component_ammo_incendiary"] = "incendiary Ammo", - ["component_ammo_hollowpoint"] = "hollowpoint Ammo", - ["component_ammo_fmj"] = "fMJ Ammo", - ["component_ammo_armor"] = "armor Piercing Ammo", - ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", - - ["component_shells_default"] = "default Shells", - ["component_shells_incendiary"] = "dragons Breath Shells", - ["component_shells_armor"] = "steel Buckshot Shells", - ["component_shells_hollowpoint"] = "flechette Shells", - ["component_shells_explosive"] = "explosive Slug Shells", - - -- Weapon Ammo - ["ammo_rounds"] = "round(s)", - ["ammo_shells"] = "shell(s)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "gallons of fuel", - ["ammo_firework"] = "firework(s)", - ["ammo_rockets"] = "rocket(s)", - ["ammo_grenadelauncher"] = "grenade(s)", - ["ammo_grenade"] = "grenade(s)", - ["ammo_stickybomb"] = "bomb(s)", - ["ammo_pipebomb"] = "bomb(s)", - ["ammo_smokebomb"] = "bomb(s)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mine(s)", - ["ammo_bzgas"] = "can(s)", - ["ammo_ball"] = "ball(s)", - ["ammo_snowball"] = "snowball(s)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "default skin", - ["tint_green"] = "green skin", - ["tint_gold"] = "gold skin", - ["tint_pink"] = "pink skin", - ["tint_army"] = "army skin", - ["tint_lspd"] = "blue skin", - ["tint_orange"] = "orange skin", - ["tint_platinum"] = "platinum skin", + -- Inventory + ["inventory"] = "Inventory ( Weight %s / %s )", + ["use"] = "Use", + ["give"] = "Give", + ["remove"] = "Throw", + ["return"] = "Return", + ["give_to"] = "Give to", + ["amount"] = "Amount", + ["giveammo"] = "Give ammo", + ["amountammo"] = "Ammo Amount", + ["noammo"] = "Not Enough!", + ["gave_item"] = "Giving %sx %s to %s", + ["received_item"] = "Received %sx %s from %s", + ["gave_weapon"] = "Giving %s to %s", + ["gave_weapon_ammo"] = "Giving ~o~%sx %s for %s to %s", + ["gave_weapon_withammo"] = "Giving %s with ~o~%sx %s to %s", + ["gave_weapon_hasalready"] = "%s already has a %s", + ["gave_weapon_noweapon"] = "%s does not have that weapon", + ["received_weapon"] = "Received %s from %s", + ["received_weapon_ammo"] = "Received ~o~%sx %s for your %s from %s", + ["received_weapon_withammo"] = "Received %s with ~o~%sx %s from %s", + ["received_weapon_hasalready"] = "%s has attempted to give you a %s, but you already this weapon", + ["received_weapon_noweapon"] = "%s has attempted to give you ammo for a %s, but you do not have this weapon", + ["gave_account_money"] = "Giving $%s (%s) to %s", + ["received_account_money"] = "Received $%s (%s) from %s", + ["amount_invalid"] = "Invalid quantity", + ["players_nearby"] = "No nearby Players", + ["ex_inv_lim"] = "Cannot perfom action,exceeding max weight of %s", + ["imp_invalid_quantity"] = "Cannot perfom action, the quantity is invalid", + ["imp_invalid_amount"] = "Cannot perfom action, the amount is invalid", + ["threw_standard"] = "Throwing %sx %s", + ["threw_account"] = "Throwing $%s %s", + ["threw_weapon"] = "Throwing %s", + ["threw_weapon_ammo"] = "Throwing %s with ~o~%sx %s", + ["threw_weapon_already"] = "You already have this weapon", + ["threw_cannot_pickup"] = "Inventory is full, Cannot Pickup!", + ["threw_pickup_prompt"] = "Press E to Pickup", + + -- Key mapping + ["keymap_showinventory"] = "Show Inventory", + + -- Salary related + ["received_salary"] = "You have been paid: $%s", + ["received_help"] = "You have been paid your welfare check: $%s", + ["company_nomoney"] = "the company you're employeed at is too poor to pay out your salary", + ["received_paycheck"] = "received paycheck", + ["bank"] = "Maze Bank", + ["account_bank"] = "Bank", + ["account_black_money"] = "Dirty Money", + ["account_money"] = "Cash", + + ["act_imp"] = "Cannot Perform Action", + ["in_vehicle"] = "Cannot Perform Action, Player is in a vehicle", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "Bring player to you", + ["command_car"] = "Spawn a vehicle", + ["command_car_car"] = "Vehicle model or hash", + ["command_cardel"] = "Remove vehicles in proximity", + ["command_cardel_radius"] = "Removes all vehicles within the specified radius", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Clear chat Text", + ["command_clearall"] = "Clear chat Text for all players", + ["command_clearinventory"] = "Remove All items from the Players Inventory", + ["command_clearloadout"] = "Remove All weapons from the Players Loadout", + ["command_freeze"] = "Freeze a player", + ["command_unfreeze"] = "Unfreeze a player", + ["command_giveaccountmoney"] = "Give Money to a specified Account", + ["command_giveaccountmoney_account"] = "Account to add to", + ["command_giveaccountmoney_amount"] = "Amount to add", + ["command_giveaccountmoney_invalid"] = "Account Name Invalid", + ["command_removeaccountmoney"] = "Remove Money from a specified Account", + ["command_removeaccountmoney_account"] = "Account to remove from", + ["command_removeaccountmoney_amount"] = "Amount to remove", + ["command_removeaccountmoney_invalid"] = "Account Name Invalid", + ["command_giveitem"] = "Give Player an item", + ["command_giveitem_item"] = "Item name", + ["command_giveitem_count"] = "Quantity", + ["command_giveweapon"] = "Give player a weapon", + ["command_giveweapon_weapon"] = "Weapon name", + ["command_giveweapon_ammo"] = "Ammo Quantity", + ["command_giveweapon_hasalready"] = "Player already has this weapon", + ["command_giveweaponcomponent"] = "Give weapon component to player", + ["command_giveweaponcomponent_component"] = "Component name", + ["command_giveweaponcomponent_invalid"] = "Invalid weapon component", + ["command_giveweaponcomponent_hasalready"] = "Player already has this weapon component", + ["command_giveweaponcomponent_missingweapon"] = "Player does not have this weapon", + ["command_goto"] = "Teleport yourself to a player", + ["command_kill"] = "Kill a player", + ["command_save"] = "Force Save a player`s Data", + ["command_saveall"] = "Force Save all player data", + ["command_setaccountmoney"] = "Set the money within a specified account", + ["command_setaccountmoney_amount"] = "Amount", + ["command_setcoords"] = "Teleport to specified Coordinates", + ["command_setcoords_x"] = "X value", + ["command_setcoords_y"] = "Y value", + ["command_setcoords_z"] = "Z value", + ["command_setjob"] = "Set a player`s job", + ["command_setjob_job"] = "Name", + ["command_setjob_grade"] = "Job grade", + ["command_setjob_invalid"] = "the job, grade or both are invalid", + ["command_setgroup"] = "Set a players permission group", + ["command_setgroup_group"] = "Name of Group", + ["commanderror_argumentmismatch"] = "Invalid Argument Count (passed %s, wanted %s)", + ["commanderror_argumentmismatch_number"] = "Invalid Argument #%s data type (passed string, wanted number)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Invalid item", + ["commanderror_invalidweapon"] = "Invalid weapon", + ["commanderror_console"] = "Command Cannot be executed from console", + ["commanderror_invalidcommand"] = "Invalid Command - /%s", + ["commanderror_invalidplayerid"] = "Specified Player is not online", + ["commandgeneric_playerid"] = "Player`s Server Id", + ["command_giveammo_noweapon_found"] = "%s does not have that weapon", + ["command_giveammo_weapon"] = "Weapon name", + ["command_giveammo_ammo"] = "Ammo Quantity", + ["tpm_nowaypoint"] = "No Waypoint Set.", + ["tpm_success"] = "Successfully Teleported", + + ["noclip_message"] = "Noclip has been %s", + ["enabled"] = "~g~enabled~s~", + ["disabled"] = "~r~disabled~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dagger", + ["weapon_bat"] = "Bat", + ["weapon_battleaxe"] = "Battle Axe", + ["weapon_bottle"] = "Bottle", + ["weapon_crowbar"] = "Crowbar", + ["weapon_flashlight"] = "Flashlight", + ["weapon_golfclub"] = "Golf Club", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Hatchet", + ["weapon_knife"] = "Knife", + ["weapon_knuckle"] = "Knuckledusters", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Nightstick", + ["weapon_wrench"] = "Pipe Wrench", + ["weapon_poolcue"] = "Pool Cue", + ["weapon_stone_hatchet"] = "Stone Hatchet", + ["weapon_switchblade"] = "Switchblade", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Metal Detector", + ["weapon_precisionrifle"] = "Precision Rifle", + ["weapon_tactilerifle"] = "Service Carbine", + + -- Drug wars dlc + ["weapon_candycane"] = "Candycane", + ["weapon_acidpackage"] = "Acid Package", + ["weapon_pistolxm3"] = "Pistol8 x3m", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Proximity Mine", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snowball", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tear Gas", + + -- Special + ["weapon_fireextinguisher"] = "Fire Extinguisher", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Garbage Bag", + ["weapon_handcuffs"] = "Handcuffs", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "parachute", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", } diff --git a/[core]/es_extended/locales/es.lua b/[core]/es_extended/locales/es.lua index 9a3791a09..9ee9a33b2 100644 --- a/[core]/es_extended/locales/es.lua +++ b/[core]/es_extended/locales/es.lua @@ -1,370 +1,370 @@ Locales["es"] = { - -- Inventory - ["inventory"] = "Inventario %s / %s", - ["use"] = "Usar", - ["give"] = "Dar", - ["remove"] = "Tirar", - ["return"] = "Volver", - ["give_to"] = "Dar a", - ["amount"] = "Cantidad", - ["giveammo"] = "Dar munición", - ["amountammo"] = "Cantidad de munición", - ["noammo"] = "No tienes suficiente munición!", - ["gave_item"] = "Has dado %sx %s a %s", - ["received_item"] = "Has recibido %sx %s de %s", - ["gave_weapon"] = "Has dado %s a %s", - ["gave_weapon_ammo"] = "Has dado ~o~%sx %s para %s a %s", - ["gave_weapon_withammo"] = "Has dado %s con ~o~%sx %s a %s", - ["gave_weapon_hasalready"] = "%s ya tiene un/a %s", - ["gave_weapon_noweapon"] = "%s no tiene ese arma", - ["received_weapon"] = "Has recibido %s de %s", - ["received_weapon_ammo"] = "Has recibido ~o~%sx %s para su %s de %s", - ["received_weapon_withammo"] = "Has recibido %s con ~o~%sx %s de %s", - ["received_weapon_hasalready"] = "%s intentó darle un/a %s, pero ya tienes uno", - ["received_weapon_noweapon"] = "%s intentó darles munición para un %s, pero no tiene uno", - ["gave_account_money"] = "Has dado $%s (%s) a %s", - ["received_account_money"] = "Has recibido $%s (%s) de %s", - ["amount_invalid"] = "Cantidad inválida", - ["players_nearby"] = "No hay jugadores cerca", - ["ex_inv_lim"] = "Acción no posible, excediendo el límite de inventario para %s", - ["imp_invalid_quantity"] = "Acción imposible, cantidad inválida", - ["imp_invalid_amount"] = "Acción imposible, cantidad inválida", - ["threw_standard"] = "Has tirado %sx %s", - ["threw_account"] = "Has tirado $%s %s", - ["threw_weapon"] = "Has tirado %s", - ["threw_weapon_ammo"] = "Has tirado %s con ~o~%sx %s", - ["threw_weapon_already"] = "Ya llevas el mismo arma", - ["threw_cannot_pickup"] = "No puedes recogerlo porque tu inventario está lleno!", - ["threw_pickup_prompt"] = "Pulsa E para recoger", - - -- Key mapping - ["keymap_showinventory"] = "Ver Inventario", - - -- Salary related - ["received_salary"] = "Has recibido tu sueldo: $%s", - ["received_help"] = "Has recibido su cheque de bienestar: $%s", - ["company_nomoney"] = "La empresa en la que trabajas no tiene dinero para pagar tu sueldo", - ["received_paycheck"] = "Recibió su paga", - ["bank"] = "Banco", - ["account_bank"] = "Banco", - ["account_black_money"] = "Dinero Negro", - ["account_money"] = "Efectivo", - - ["act_imp"] = "No se pudo realizar la acción.", - ["in_vehicle"] = "Acción rechazada. El jugador se encuentra en un vehículo", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'Traer un jugador hacia ti', - ['command_car'] = 'Spawnear un vehículo', - ['command_car_car'] = 'Nombre del vehículo', - ['command_cardel'] = 'Eliminar vehículos cercanos', - ['command_cardel_radius'] = 'Opcional, eliminar todos los vehículos en el radio especificado', - ['command_repair'] = 'Reparar tu vehiculo', - ['command_repair_success'] = 'Vehiculo reparado correctamente', - ['command_repair_success_target'] = 'Un administrador reparo tu vehiculo', - ['command_clear'] = 'Limpiar chat para ti', - ['command_clearall'] = 'Limpiar chat para todos los jugadores', - ['command_clearinventory'] = 'Limpiar el inventario del jugador', - ['command_clearloadout'] = 'Limpiar inventario de un jugador', - ['command_freeze'] = 'Congelar un jugador', - ['command_unfreeze'] = 'Descongelar un jugador', - ['command_giveaccountmoney'] = 'Dar dinero', - ['command_giveaccountmoney_account'] = 'Nombre de cuenta válido', - ['command_giveaccountmoney_amount'] = 'Cantidad a añadir', - ['command_giveaccountmoney_invalid'] = 'Nombre de cuenta no existente. [bank, money, black_money]', - ['command_giveitem'] = 'Dar un objeto a un jugador', - ['command_giveitem_item'] = 'Nombre del artículo', - ['command_giveitem_count'] = 'Cantidad de articulos', - ['command_giveweapon'] = 'Dar un arma a un jugador', - ['command_giveweapon_weapon'] = 'Nombre del arma', - ['command_giveweapon_ammo'] = 'Cantidad de municion', - ['command_giveweapon_hasalready'] = 'El jugador ya tiene esa arma', - ['command_giveweaponcomponent'] = 'Dar el componente del arma', - ['command_giveweaponcomponent_component'] = 'Nombre del componente', - ['command_giveweaponcomponent_invalid'] = 'Componente del arma no válido', - ['command_giveweaponcomponent_hasalready'] = 'El jugador ya tiene ese componente del arma', - ['command_giveweaponcomponent_missingweapon'] = 'El jugador no tiene esa arma', - ['command_goto'] = 'Teletransportarte hacia un jugador', - ['command_kill'] = 'Matar un jugador', - ['command_save'] = 'Guardar la informacion de un jugador en la base de datos.', - ['command_saveall'] = 'Guardar toda la informacion de jugadores en la base de datos.', - ['command_setaccountmoney'] = 'Establecer el dinero de la cuenta para un jugador', - ['command_setaccountmoney_amount'] = 'Cantidad de dinero a establecer', - ['command_setcoords'] = 'Teletransporte a coordenadas', - ['command_setcoords_x'] = 'Eje X', - ['command_setcoords_y'] = 'Eje Y', - ['command_setcoords_z'] = 'Eje Z', - ['command_setjob'] = 'Dar un trabajo a un jugador', - ['command_setjob_job'] = 'Nombre del trabajo', - ['command_setjob_grade'] = 'Rango del trabajo', - ['command_setjob_invalid'] = 'El trabajo o el rango no son válidos', - ['command_setgroup'] = 'Establecer el grupo de un jugador', - ['command_setgroup_group'] = 'Nombre del grupo', - ['commanderror_argumentmismatch'] = 'Error en el recuento de argumentos (pasado %s, deseado %s)', - ['commanderror_argumentmismatch_number'] = 'Argumento #%s tipo no coincide (cadena pasada, número deseado)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Nombre del artículo no válido', - ['commanderror_invalidweapon'] = 'Arma inválida', - ['commanderror_console'] = 'Ese comando no se puede ejecutar desde la consola', - ['commanderror_invalidcommand'] = '/%s ¡No es un comando válido!', - ['commanderror_invalidplayerid'] = 'No hay ningún jugador online con la ID especificada', - ['commandgeneric_playerid'] = 'ID del jugador', - ['command_giveammo_noweapon_found'] = '%s no posee esa arma', - ['command_giveammo_weapon'] = 'Nombre del arma', - ['command_giveammo_ammo'] = 'Cantidad de municion', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "$%s", - - -- Weapons - - -- Drug Wars DLC - ['weapon_candycane'] = 'Hacha de Caramelo ', - ['weapon_acidpackage'] = 'Paquete de Acido', - ['weapon_pistolxm3'] = 'Pistola WM 29', - ['weapon_railgunxm3'] = 'Fusil electromagnético', - - -- Melee - ["weapon_dagger"] = "Daga", - ["weapon_bat"] = "Bate", - ["weapon_battleaxe"] = "Hacha de combate", - ["weapon_bottle"] = "Botella", - ["weapon_crowbar"] = "Palanca", - ["weapon_flashlight"] = "Linterna", - ["weapon_golfclub"] = "Palo de Golf", - ["weapon_hammer"] = "Martillo", - ["weapon_hatchet"] = "Hacha", - ["weapon_knife"] = "Cuchillo", - ["weapon_knuckle"] = "Puño Americano", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Porra", - ["weapon_wrench"] = "Llave Inglesa", - ["weapon_poolcue"] = "Taco de Billar", - ["weapon_stone_hatchet"] = "Hacha de Piedra", - ["weapon_switchblade"] = "Navaja", - - -- Handguns - ["weapon_appistol"] = "Pistola AP", - ["weapon_ceramicpistol"] = "Pistola de Ceramica", - ["weapon_combatpistol"] = "Pistola de Combate", - ["weapon_doubleaction"] = "Revólver de Doble Acción", - ["weapon_navyrevolver"] = "Revólver de la Armada", - ["weapon_flaregun"] = "Pistola de Bengalas", - ["weapon_gadgetpistol"] = "Pistola de Perico", - ["weapon_heavypistol"] = "Pistola Pesada", - ["weapon_revolver"] = "Revólver Pesado", - ["weapon_revolver_mk2"] = "Revólver Pesado MK2", - ["weapon_marksmanpistol"] = "Pistola Marksman", - ["weapon_pistol"] = "Pistola 9mm", - ["weapon_pistol_mk2"] = "Pistola MK2", - ["weapon_pistol50"] = "Pistola .50", - ["weapon_snspistol"] = "Pistola SNS", - ["weapon_snspistol_mk2"] = "Pistola SNS MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Pistola Vintage", - - -- Shotguns - ["weapon_assaultshotgun"] = "Escopeta de Asalto", - ["weapon_autoshotgun"] = "Escopeta Automática", - ["weapon_bullpupshotgun"] = "Escopeta Bullpup", - ["weapon_combatshotgun"] = "Escopeta Combate", - ["weapon_dbshotgun"] = "Escopeta de Doble Barril", - ["weapon_heavyshotgun"] = "Escopeta Pesada", - ["weapon_musket"] = "Mosquete", - ["weapon_pumpshotgun"] = "Escopeta de Bombeo", - ["weapon_pumpshotgun_mk2"] = "Escopeta de Bombeo MK2", - ["weapon_sawnoffshotgun"] = "Escopeta Recortada", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Subfusil de Asalto", - ["weapon_combatmg"] = "Ametralladora de Combate", - ["weapon_combatmg_mk2"] = "Ametralladora MK2", - ["weapon_combatpdw"] = "Subfusil PDW", - ["weapon_gusenberg"] = "Subfusil de Barril", - ["weapon_machinepistol"] = "Pistola Ametralladora", - ["weapon_mg"] = "Ametralladora", - ["weapon_microsmg"] = "Micro Subfusil", - ["weapon_minismg"] = "Mini Subfusil", - ["weapon_smg"] = "Subfusil", - ["weapon_smg_mk2"] = "Subfusil MK2", - ["weapon_raycarbine"] = "Ametralladora de Rayos", - - -- Rifles - ["weapon_advancedrifle"] = "Rifle Avanzado", - ["weapon_assaultrifle"] = "Rifle de Asalto", - ["weapon_assaultrifle_mk2"] = "Rifle de Asalto MK2", - ["weapon_bullpuprifle"] = "Rifle Bullpup", - ["weapon_bullpuprifle_mk2"] = "Rifle Bullpup MK2", - ["weapon_carbinerifle"] = "Carabina", - ["weapon_carbinerifle_mk2"] = "Carabina MK2", - ["weapon_compactrifle"] = "Rifle Compacto", - ["weapon_militaryrifle"] = "Rifle Militar", - ["weapon_specialcarbine"] = "Carabina Especial", - ["weapon_specialcarbine_mk2"] = "Carabina Especial MK2", - ["weapon_heavyrifle"] = "Rifle Pesado", - - -- Sniper - ["weapon_heavysniper"] = "Francotirador Pesado", - ["weapon_heavysniper_mk2"] = "Francotirador Pesado MK2", - ["weapon_marksmanrifle"] = "Rifle Marksman", - ["weapon_marksmanrifle_mk2"] = "Rifle Marksman MK2", - ["weapon_sniperrifle"] = "Rifle de Francotirador", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Lanzador Compacto", - ["weapon_firework"] = "Lanzador de Fuegos Artificiales", - ["weapon_grenadelauncher"] = "Lanzagranadas", - ["weapon_hominglauncher"] = "Lanzacohetes Guiado", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Cañón de riel", - ["weapon_rpg"] = "Lanzador de cohetes", - ["weapon_rayminigun"] = "Minigun de Rayos", - - -- Thrown - ["weapon_ball"] = "Pelota de Beisbol", - ["weapon_bzgas"] = "Gas Pimienta", - ["weapon_flare"] = "Bengala", - ["weapon_grenade"] = "Granada", - ["weapon_petrolcan"] = "Bidon de Gasolina", - ["weapon_hazardcan"] = "Bidón de Gasolina Peligroso", - ["weapon_molotov"] = "Molotov", - ["weapon_proxmine"] = "Mina de Proximidad ", - ["weapon_pipebomb"] = "Bomba casera", - ["weapon_snowball"] = "Bola de nieve", - ["weapon_stickybomb"] = "C4", - ["weapon_smokegrenade"] = "Granada de Humo", - - -- Special - ["weapon_fireextinguisher"] = "Extintor", - ["weapon_digiscanner"] = "Escaner Digital", - ["weapon_garbagebag"] = "Bolsa de Basura", - ["weapon_handcuffs"] = "Grilletes", - ["gadget_nightvision"] = "Vision Nocturna", - ["gadget_parachute"] = "Paracaidas", - - -- Weapon Components - ["component_knuckle_base"] = "Modelo Basico", - ["component_knuckle_pimp"] = "el Proxeneta", - ["component_knuckle_ballas"] = "los Ballas", - ["component_knuckle_dollar"] = "el Buscavidas", - ["component_knuckle_diamond"] = "la Roca", - ["component_knuckle_hate"] = "el Hater", - ["component_knuckle_love"] = "el Amante", - ["component_knuckle_player"] = "el Jugador", - ["component_knuckle_king"] = "el Rey", - ["component_knuckle_vagos"] = "los Vagos", - - ["component_luxary_finish"] = "Acabado de Armas de Lujo", - - ["component_handle_default"] = "Mango Default", - ["component_handle_vip"] = "Mango VIP", - ["component_handle_bodyguard"] = "Mango de Guardaespaldas", - - ["component_vip_finish"] = "Acabado VIP", - ["component_bodyguard_finish"] = "Acabado Guardaespaldas", - - ["component_camo_finish"] = "Camuflaje Digital", - ["component_camo_finish2"] = "Camuflaje Pincelada", - ["component_camo_finish3"] = "Camuflaje Bosque", - ["component_camo_finish4"] = "Camuflaje Calavera", - ["component_camo_finish5"] = "Camuflaje Sessanta Nove", - ["component_camo_finish6"] = "Camuflaje Perseo", - ["component_camo_finish7"] = "Camuflaje Leopardo", - ["component_camo_finish8"] = "Camuflaje Zebra", - ["component_camo_finish9"] = "Camuflaje Geométrico", - ["component_camo_finish10"] = "Camuflaje Boom", - ["component_camo_finish11"] = "Camuflaje Patriotico", - - ["component_camo_slide_finish"] = "Camuflaje Digital Deslizante", - ["component_camo_slide_finish2"] = "Camuflaje Pincelada Deslizante", - ["component_camo_slide_finish3"] = "Camuflaje Bosque Deslizante", - ["component_camo_slide_finish4"] = "Camuflaje Calavera Deslizante", - ["component_camo_slide_finish5"] = "Camuflaje Sessanta Nove Deslizante", - ["component_camo_slide_finish6"] = "Camuflaje Perseo Deslizante", - ["component_camo_slide_finish7"] = "Camuflaje Leopardo Deslizante", - ["component_camo_slide_finish8"] = "Camuflaje Zebra Deslizante", - ["component_camo_slide_finish9"] = "Camuflaje Geométrico Deslizante", - ["component_camo_slide_finish10"] = "Camuflaje Boom Deslizante", - ["component_camo_slide_finish11"] = "Camuflaje Patriotico Deslizante", - - ["component_clip_default"] = "Cargador Default", - ["component_clip_extended"] = "Cargador Extendido", - ["component_clip_drum"] = "Cargador Barril", - ["component_clip_box"] = "Caja de Cargador", - - ["component_scope_holo"] = "Mira Holográfica", - ["component_scope_small"] = "Mira Pequeña", - ["component_scope_medium"] = "Mira Mediana", - ["component_scope_large"] = "Mira Larga", - ["component_scope"] = "Mira", - ["component_scope_advanced"] = "Mira Avanzada", - ["component_ironsights"] = "Mira de Hierro", - - ["component_suppressor"] = "Silenciador", - ["component_compensator"] = "Estabilizador", - - ["component_muzzle_flat"] = "Boquilla de Freno Plana", - ["component_muzzle_tactical"] = "Boquilla de Freno Tactica", - ["component_muzzle_fat"] = "Boquilla de Freno Punta Gorda", - ["component_muzzle_precision"] = "Boquilla de Freno de Precision", - ["component_muzzle_heavy"] = "Boquilla de Freno Pesada", - ["component_muzzle_slanted"] = "Boquilla de Freno inclinada", - ["component_muzzle_split"] = "Boquilla de Freno de Puntas Abiertas", - ["component_muzzle_squared"] = "Boquilla de Freno Cuadrada", - - ["component_flashlight"] = "Linterna", - ["component_grip"] = "Agarre", - - ["component_barrel_default"] = "Barril Por Defecto", - ["component_barrel_heavy"] = "Barril Pesado", - - ["component_ammo_tracer"] = "Munición de Rastreo", - ["component_ammo_incendiary"] = "Munición Incendiaria", - ["component_ammo_hollowpoint"] = "Munición de Punta Hueca", - ["component_ammo_fmj"] = "Munición fMJ", - ["component_ammo_armor"] = "Munición Perforante para Blindaje", - ["component_ammo_explosive"] = "Munición Incendiaria Perforadora de Blindajes", - - ["component_shells_default"] = "Casquillos Por Defecto", - ["component_shells_incendiary"] = "Casquillos Aliento de Dragón", - ["component_shells_armor"] = "Casquillos Perdigones de Acero", - ["component_shells_hollowpoint"] = "Casquillos Punta Hueca", - ["component_shells_explosive"] = "Casquillos Posta Explosiva", - - -- Weapon Ammo - ["ammo_rounds"] = "Redonda/s", - ["ammo_shells"] = "Casquillo/s", - ["ammo_charge"] = "Carga", - ["ammo_petrol"] = "Galones de Combustible", - ["ammo_firework"] = "Fuegos Artificiale/s", - ["ammo_rockets"] = "Cohete/s", - ["ammo_grenadelauncher"] = "Granada/s", - ["ammo_grenade"] = "Granada/s", - ["ammo_stickybomb"] = "Bomba/s", - ["ammo_pipebomb"] = "Bomba/s", - ["ammo_smokebomb"] = "Bomba/s", - ["ammo_molotov"] = "Molotov/s", - ["ammo_proxmine"] = "Mina(s)", - ["ammo_bzgas"] = "Lata(s)", - ["ammo_ball"] = "Bola(s)", - ["ammo_snowball"] = "Bola(s)", - ["ammo_flare"] = "Bengala(s)", - ["ammo_flaregun"] = "Bengala(s)", - - -- Weapon Tints - ["tint_default"] = "Skin común", - ["tint_green"] = "Skin Verde", - ["tint_gold"] = "Skin Oro", - ["tint_pink"] = "Skin Rosa", - ["tint_army"] = "Skin Militar", - ["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.", + -- Inventory + ["inventory"] = "Inventario %s / %s", + ["use"] = "Usar", + ["give"] = "Dar", + ["remove"] = "Tirar", + ["return"] = "Volver", + ["give_to"] = "Dar a", + ["amount"] = "Cantidad", + ["giveammo"] = "Dar munición", + ["amountammo"] = "Cantidad de munición", + ["noammo"] = "No tienes suficiente munición!", + ["gave_item"] = "Has dado %sx %s a %s", + ["received_item"] = "Has recibido %sx %s de %s", + ["gave_weapon"] = "Has dado %s a %s", + ["gave_weapon_ammo"] = "Has dado ~o~%sx %s para %s a %s", + ["gave_weapon_withammo"] = "Has dado %s con ~o~%sx %s a %s", + ["gave_weapon_hasalready"] = "%s ya tiene un/a %s", + ["gave_weapon_noweapon"] = "%s no tiene ese arma", + ["received_weapon"] = "Has recibido %s de %s", + ["received_weapon_ammo"] = "Has recibido ~o~%sx %s para su %s de %s", + ["received_weapon_withammo"] = "Has recibido %s con ~o~%sx %s de %s", + ["received_weapon_hasalready"] = "%s intentó darle un/a %s, pero ya tienes uno", + ["received_weapon_noweapon"] = "%s intentó darles munición para un %s, pero no tiene uno", + ["gave_account_money"] = "Has dado $%s (%s) a %s", + ["received_account_money"] = "Has recibido $%s (%s) de %s", + ["amount_invalid"] = "Cantidad inválida", + ["players_nearby"] = "No hay jugadores cerca", + ["ex_inv_lim"] = "Acción no posible, excediendo el límite de inventario para %s", + ["imp_invalid_quantity"] = "Acción imposible, cantidad inválida", + ["imp_invalid_amount"] = "Acción imposible, cantidad inválida", + ["threw_standard"] = "Has tirado %sx %s", + ["threw_account"] = "Has tirado $%s %s", + ["threw_weapon"] = "Has tirado %s", + ["threw_weapon_ammo"] = "Has tirado %s con ~o~%sx %s", + ["threw_weapon_already"] = "Ya llevas el mismo arma", + ["threw_cannot_pickup"] = "No puedes recogerlo porque tu inventario está lleno!", + ["threw_pickup_prompt"] = "Pulsa E para recoger", + + -- Key mapping + ["keymap_showinventory"] = "Ver Inventario", + + -- Salary related + ["received_salary"] = "Has recibido tu sueldo: $%s", + ["received_help"] = "Has recibido su cheque de bienestar: $%s", + ["company_nomoney"] = "La empresa en la que trabajas no tiene dinero para pagar tu sueldo", + ["received_paycheck"] = "Recibió su paga", + ["bank"] = "Banco", + ["account_bank"] = "Banco", + ["account_black_money"] = "Dinero Negro", + ["account_money"] = "Efectivo", + + ["act_imp"] = "No se pudo realizar la acción.", + ["in_vehicle"] = "Acción rechazada. El jugador se encuentra en un vehículo", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "Traer un jugador hacia ti", + ["command_car"] = "Spawnear un vehículo", + ["command_car_car"] = "Nombre del vehículo", + ["command_cardel"] = "Eliminar vehículos cercanos", + ["command_cardel_radius"] = "Opcional, eliminar todos los vehículos en el radio especificado", + ["command_repair"] = "Reparar tu vehiculo", + ["command_repair_success"] = "Vehiculo reparado correctamente", + ["command_repair_success_target"] = "Un administrador reparo tu vehiculo", + ["command_clear"] = "Limpiar chat para ti", + ["command_clearall"] = "Limpiar chat para todos los jugadores", + ["command_clearinventory"] = "Limpiar el inventario del jugador", + ["command_clearloadout"] = "Limpiar inventario de un jugador", + ["command_freeze"] = "Congelar un jugador", + ["command_unfreeze"] = "Descongelar un jugador", + ["command_giveaccountmoney"] = "Dar dinero", + ["command_giveaccountmoney_account"] = "Nombre de cuenta válido", + ["command_giveaccountmoney_amount"] = "Cantidad a añadir", + ["command_giveaccountmoney_invalid"] = "Nombre de cuenta no existente. [bank, money, black_money]", + ["command_giveitem"] = "Dar un objeto a un jugador", + ["command_giveitem_item"] = "Nombre del artículo", + ["command_giveitem_count"] = "Cantidad de articulos", + ["command_giveweapon"] = "Dar un arma a un jugador", + ["command_giveweapon_weapon"] = "Nombre del arma", + ["command_giveweapon_ammo"] = "Cantidad de municion", + ["command_giveweapon_hasalready"] = "El jugador ya tiene esa arma", + ["command_giveweaponcomponent"] = "Dar el componente del arma", + ["command_giveweaponcomponent_component"] = "Nombre del componente", + ["command_giveweaponcomponent_invalid"] = "Componente del arma no válido", + ["command_giveweaponcomponent_hasalready"] = "El jugador ya tiene ese componente del arma", + ["command_giveweaponcomponent_missingweapon"] = "El jugador no tiene esa arma", + ["command_goto"] = "Teletransportarte hacia un jugador", + ["command_kill"] = "Matar un jugador", + ["command_save"] = "Guardar la informacion de un jugador en la base de datos.", + ["command_saveall"] = "Guardar toda la informacion de jugadores en la base de datos.", + ["command_setaccountmoney"] = "Establecer el dinero de la cuenta para un jugador", + ["command_setaccountmoney_amount"] = "Cantidad de dinero a establecer", + ["command_setcoords"] = "Teletransporte a coordenadas", + ["command_setcoords_x"] = "Eje X", + ["command_setcoords_y"] = "Eje Y", + ["command_setcoords_z"] = "Eje Z", + ["command_setjob"] = "Dar un trabajo a un jugador", + ["command_setjob_job"] = "Nombre del trabajo", + ["command_setjob_grade"] = "Rango del trabajo", + ["command_setjob_invalid"] = "El trabajo o el rango no son válidos", + ["command_setgroup"] = "Establecer el grupo de un jugador", + ["command_setgroup_group"] = "Nombre del grupo", + ["commanderror_argumentmismatch"] = "Error en el recuento de argumentos (pasado %s, deseado %s)", + ["commanderror_argumentmismatch_number"] = "Argumento #%s tipo no coincide (cadena pasada, número deseado)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Nombre del artículo no válido", + ["commanderror_invalidweapon"] = "Arma inválida", + ["commanderror_console"] = "Ese comando no se puede ejecutar desde la consola", + ["commanderror_invalidcommand"] = "/%s ¡No es un comando válido!", + ["commanderror_invalidplayerid"] = "No hay ningún jugador online con la ID especificada", + ["commandgeneric_playerid"] = "ID del jugador", + ["command_giveammo_noweapon_found"] = "%s no posee esa arma", + ["command_giveammo_weapon"] = "Nombre del arma", + ["command_giveammo_ammo"] = "Cantidad de municion", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "$%s", + + -- Weapons + + -- Drug Wars DLC + ["weapon_candycane"] = "Hacha de Caramelo ", + ["weapon_acidpackage"] = "Paquete de Acido", + ["weapon_pistolxm3"] = "Pistola WM 29", + ["weapon_railgunxm3"] = "Fusil electromagnético", + + -- Melee + ["weapon_dagger"] = "Daga", + ["weapon_bat"] = "Bate", + ["weapon_battleaxe"] = "Hacha de combate", + ["weapon_bottle"] = "Botella", + ["weapon_crowbar"] = "Palanca", + ["weapon_flashlight"] = "Linterna", + ["weapon_golfclub"] = "Palo de Golf", + ["weapon_hammer"] = "Martillo", + ["weapon_hatchet"] = "Hacha", + ["weapon_knife"] = "Cuchillo", + ["weapon_knuckle"] = "Puño Americano", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Porra", + ["weapon_wrench"] = "Llave Inglesa", + ["weapon_poolcue"] = "Taco de Billar", + ["weapon_stone_hatchet"] = "Hacha de Piedra", + ["weapon_switchblade"] = "Navaja", + + -- Handguns + ["weapon_appistol"] = "Pistola AP", + ["weapon_ceramicpistol"] = "Pistola de Ceramica", + ["weapon_combatpistol"] = "Pistola de Combate", + ["weapon_doubleaction"] = "Revólver de Doble Acción", + ["weapon_navyrevolver"] = "Revólver de la Armada", + ["weapon_flaregun"] = "Pistola de Bengalas", + ["weapon_gadgetpistol"] = "Pistola de Perico", + ["weapon_heavypistol"] = "Pistola Pesada", + ["weapon_revolver"] = "Revólver Pesado", + ["weapon_revolver_mk2"] = "Revólver Pesado MK2", + ["weapon_marksmanpistol"] = "Pistola Marksman", + ["weapon_pistol"] = "Pistola 9mm", + ["weapon_pistol_mk2"] = "Pistola MK2", + ["weapon_pistol50"] = "Pistola .50", + ["weapon_snspistol"] = "Pistola SNS", + ["weapon_snspistol_mk2"] = "Pistola SNS MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Pistola Vintage", + + -- Shotguns + ["weapon_assaultshotgun"] = "Escopeta de Asalto", + ["weapon_autoshotgun"] = "Escopeta Automática", + ["weapon_bullpupshotgun"] = "Escopeta Bullpup", + ["weapon_combatshotgun"] = "Escopeta Combate", + ["weapon_dbshotgun"] = "Escopeta de Doble Barril", + ["weapon_heavyshotgun"] = "Escopeta Pesada", + ["weapon_musket"] = "Mosquete", + ["weapon_pumpshotgun"] = "Escopeta de Bombeo", + ["weapon_pumpshotgun_mk2"] = "Escopeta de Bombeo MK2", + ["weapon_sawnoffshotgun"] = "Escopeta Recortada", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Subfusil de Asalto", + ["weapon_combatmg"] = "Ametralladora de Combate", + ["weapon_combatmg_mk2"] = "Ametralladora MK2", + ["weapon_combatpdw"] = "Subfusil PDW", + ["weapon_gusenberg"] = "Subfusil de Barril", + ["weapon_machinepistol"] = "Pistola Ametralladora", + ["weapon_mg"] = "Ametralladora", + ["weapon_microsmg"] = "Micro Subfusil", + ["weapon_minismg"] = "Mini Subfusil", + ["weapon_smg"] = "Subfusil", + ["weapon_smg_mk2"] = "Subfusil MK2", + ["weapon_raycarbine"] = "Ametralladora de Rayos", + + -- Rifles + ["weapon_advancedrifle"] = "Rifle Avanzado", + ["weapon_assaultrifle"] = "Rifle de Asalto", + ["weapon_assaultrifle_mk2"] = "Rifle de Asalto MK2", + ["weapon_bullpuprifle"] = "Rifle Bullpup", + ["weapon_bullpuprifle_mk2"] = "Rifle Bullpup MK2", + ["weapon_carbinerifle"] = "Carabina", + ["weapon_carbinerifle_mk2"] = "Carabina MK2", + ["weapon_compactrifle"] = "Rifle Compacto", + ["weapon_militaryrifle"] = "Rifle Militar", + ["weapon_specialcarbine"] = "Carabina Especial", + ["weapon_specialcarbine_mk2"] = "Carabina Especial MK2", + ["weapon_heavyrifle"] = "Rifle Pesado", + + -- Sniper + ["weapon_heavysniper"] = "Francotirador Pesado", + ["weapon_heavysniper_mk2"] = "Francotirador Pesado MK2", + ["weapon_marksmanrifle"] = "Rifle Marksman", + ["weapon_marksmanrifle_mk2"] = "Rifle Marksman MK2", + ["weapon_sniperrifle"] = "Rifle de Francotirador", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Lanzador Compacto", + ["weapon_firework"] = "Lanzador de Fuegos Artificiales", + ["weapon_grenadelauncher"] = "Lanzagranadas", + ["weapon_hominglauncher"] = "Lanzacohetes Guiado", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Cañón de riel", + ["weapon_rpg"] = "Lanzador de cohetes", + ["weapon_rayminigun"] = "Minigun de Rayos", + + -- Thrown + ["weapon_ball"] = "Pelota de Beisbol", + ["weapon_bzgas"] = "Gas Pimienta", + ["weapon_flare"] = "Bengala", + ["weapon_grenade"] = "Granada", + ["weapon_petrolcan"] = "Bidon de Gasolina", + ["weapon_hazardcan"] = "Bidón de Gasolina Peligroso", + ["weapon_molotov"] = "Molotov", + ["weapon_proxmine"] = "Mina de Proximidad ", + ["weapon_pipebomb"] = "Bomba casera", + ["weapon_snowball"] = "Bola de nieve", + ["weapon_stickybomb"] = "C4", + ["weapon_smokegrenade"] = "Granada de Humo", + + -- Special + ["weapon_fireextinguisher"] = "Extintor", + ["weapon_digiscanner"] = "Escaner Digital", + ["weapon_garbagebag"] = "Bolsa de Basura", + ["weapon_handcuffs"] = "Grilletes", + ["gadget_nightvision"] = "Vision Nocturna", + ["gadget_parachute"] = "Paracaidas", + + -- Weapon Components + ["component_knuckle_base"] = "Modelo Basico", + ["component_knuckle_pimp"] = "el Proxeneta", + ["component_knuckle_ballas"] = "los Ballas", + ["component_knuckle_dollar"] = "el Buscavidas", + ["component_knuckle_diamond"] = "la Roca", + ["component_knuckle_hate"] = "el Hater", + ["component_knuckle_love"] = "el Amante", + ["component_knuckle_player"] = "el Jugador", + ["component_knuckle_king"] = "el Rey", + ["component_knuckle_vagos"] = "los Vagos", + + ["component_luxary_finish"] = "Acabado de Armas de Lujo", + + ["component_handle_default"] = "Mango Default", + ["component_handle_vip"] = "Mango VIP", + ["component_handle_bodyguard"] = "Mango de Guardaespaldas", + + ["component_vip_finish"] = "Acabado VIP", + ["component_bodyguard_finish"] = "Acabado Guardaespaldas", + + ["component_camo_finish"] = "Camuflaje Digital", + ["component_camo_finish2"] = "Camuflaje Pincelada", + ["component_camo_finish3"] = "Camuflaje Bosque", + ["component_camo_finish4"] = "Camuflaje Calavera", + ["component_camo_finish5"] = "Camuflaje Sessanta Nove", + ["component_camo_finish6"] = "Camuflaje Perseo", + ["component_camo_finish7"] = "Camuflaje Leopardo", + ["component_camo_finish8"] = "Camuflaje Zebra", + ["component_camo_finish9"] = "Camuflaje Geométrico", + ["component_camo_finish10"] = "Camuflaje Boom", + ["component_camo_finish11"] = "Camuflaje Patriotico", + + ["component_camo_slide_finish"] = "Camuflaje Digital Deslizante", + ["component_camo_slide_finish2"] = "Camuflaje Pincelada Deslizante", + ["component_camo_slide_finish3"] = "Camuflaje Bosque Deslizante", + ["component_camo_slide_finish4"] = "Camuflaje Calavera Deslizante", + ["component_camo_slide_finish5"] = "Camuflaje Sessanta Nove Deslizante", + ["component_camo_slide_finish6"] = "Camuflaje Perseo Deslizante", + ["component_camo_slide_finish7"] = "Camuflaje Leopardo Deslizante", + ["component_camo_slide_finish8"] = "Camuflaje Zebra Deslizante", + ["component_camo_slide_finish9"] = "Camuflaje Geométrico Deslizante", + ["component_camo_slide_finish10"] = "Camuflaje Boom Deslizante", + ["component_camo_slide_finish11"] = "Camuflaje Patriotico Deslizante", + + ["component_clip_default"] = "Cargador Default", + ["component_clip_extended"] = "Cargador Extendido", + ["component_clip_drum"] = "Cargador Barril", + ["component_clip_box"] = "Caja de Cargador", + + ["component_scope_holo"] = "Mira Holográfica", + ["component_scope_small"] = "Mira Pequeña", + ["component_scope_medium"] = "Mira Mediana", + ["component_scope_large"] = "Mira Larga", + ["component_scope"] = "Mira", + ["component_scope_advanced"] = "Mira Avanzada", + ["component_ironsights"] = "Mira de Hierro", + + ["component_suppressor"] = "Silenciador", + ["component_compensator"] = "Estabilizador", + + ["component_muzzle_flat"] = "Boquilla de Freno Plana", + ["component_muzzle_tactical"] = "Boquilla de Freno Tactica", + ["component_muzzle_fat"] = "Boquilla de Freno Punta Gorda", + ["component_muzzle_precision"] = "Boquilla de Freno de Precision", + ["component_muzzle_heavy"] = "Boquilla de Freno Pesada", + ["component_muzzle_slanted"] = "Boquilla de Freno inclinada", + ["component_muzzle_split"] = "Boquilla de Freno de Puntas Abiertas", + ["component_muzzle_squared"] = "Boquilla de Freno Cuadrada", + + ["component_flashlight"] = "Linterna", + ["component_grip"] = "Agarre", + + ["component_barrel_default"] = "Barril Por Defecto", + ["component_barrel_heavy"] = "Barril Pesado", + + ["component_ammo_tracer"] = "Munición de Rastreo", + ["component_ammo_incendiary"] = "Munición Incendiaria", + ["component_ammo_hollowpoint"] = "Munición de Punta Hueca", + ["component_ammo_fmj"] = "Munición fMJ", + ["component_ammo_armor"] = "Munición Perforante para Blindaje", + ["component_ammo_explosive"] = "Munición Incendiaria Perforadora de Blindajes", + + ["component_shells_default"] = "Casquillos Por Defecto", + ["component_shells_incendiary"] = "Casquillos Aliento de Dragón", + ["component_shells_armor"] = "Casquillos Perdigones de Acero", + ["component_shells_hollowpoint"] = "Casquillos Punta Hueca", + ["component_shells_explosive"] = "Casquillos Posta Explosiva", + + -- Weapon Ammo + ["ammo_rounds"] = "Redonda/s", + ["ammo_shells"] = "Casquillo/s", + ["ammo_charge"] = "Carga", + ["ammo_petrol"] = "Galones de Combustible", + ["ammo_firework"] = "Fuegos Artificiale/s", + ["ammo_rockets"] = "Cohete/s", + ["ammo_grenadelauncher"] = "Granada/s", + ["ammo_grenade"] = "Granada/s", + ["ammo_stickybomb"] = "Bomba/s", + ["ammo_pipebomb"] = "Bomba/s", + ["ammo_smokebomb"] = "Bomba/s", + ["ammo_molotov"] = "Molotov/s", + ["ammo_proxmine"] = "Mina(s)", + ["ammo_bzgas"] = "Lata(s)", + ["ammo_ball"] = "Bola(s)", + ["ammo_snowball"] = "Bola(s)", + ["ammo_flare"] = "Bengala(s)", + ["ammo_flaregun"] = "Bengala(s)", + + -- Weapon Tints + ["tint_default"] = "Skin común", + ["tint_green"] = "Skin Verde", + ["tint_gold"] = "Skin Oro", + ["tint_pink"] = "Skin Rosa", + ["tint_army"] = "Skin Militar", + ["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 bd32d952d..983fa79b8 100644 --- a/[core]/es_extended/locales/fi.lua +++ b/[core]/es_extended/locales/fi.lua @@ -1,240 +1,240 @@ Locales["fi"] = { - -- Inventory - ["inventory"] = "Reppu %s / %s", - ["use"] = "Käytä", - ["give"] = "Anna", - ["remove"] = "Poista", - ["return"] = "Takaisin", - ["give_to"] = "Anna henkilölle", - ["amount"] = "Määrä", - ["giveammo"] = "Anna ammuksia", - ["amountammo"] = "Ammusten määrä", - ["noammo"] = "Sinulla ei ole ammuksia!", - ["gave_item"] = "Sinä annoit %sx %s henkilölle %s", - ["received_item"] = "Sinä sait %sx %s henkilöltä %s", - ["gave_weapon"] = "Sinä annoit 1x %s henkilölle %s", - ["gave_weapon_ammo"] = "Annoit ~o~%sx %s kohteelle %s henkilölle %s", - ["gave_weapon_withammo"] = "Sinä annoit 1x %s ammuksella ~o~%sx %s henkilölle %s", - ["gave_weapon_hasalready"] = "%s omistaa jo %s", - ["gave_weapon_noweapon"] = "%s ei ole kyseistä asetta", - ["received_weapon"] = "Vastaanotit 1x %s henkilöltä %s", - ["received_weapon_ammo"] = "Sinä sait ~o~%sx %s sinun %s varten henkilöltä %s", - ["received_weapon_withammo"] = "Sinä sait 1x %s ammuksella ~o~%sx %s henkilöltä %s", - ["received_weapon_hasalready"] = "%s yritti antaa sinulle %s, mutta sinulla on jo sellainen", - ["received_weapon_noweapon"] = "%s yritti antaa sinulle ammuksia %s:lle, mutta sinulla ei ole sellaista", - ["gave_account_money"] = "Sinä annoit $%s (%s) henkilölle %s", - ["received_account_money"] = "Sinä sait $%s (%s) henkilöltä %s", - ["amount_invalid"] = "Virheellinen määrä", - ["players_nearby"] = "Ei pelaajia lähettyvillä", - ["ex_inv_lim"] = "Toiminto mahdoton, reppu alkaa olla täysi %s", - ["imp_invalid_quantity"] = "Toiminto mahdoton, virheellinen määrä", - ["imp_invalid_amount"] = "Toiminto mahdoton, virhellinen summa", - ["threw_standard"] = "Sinä heitit %sx %s", - ["threw_account"] = "Sinä heitit $%s %s", - ["threw_weapon"] = "Sinä heitit 1x %s", - ["threw_weapon_ammo"] = "Heitit 1x %s ammuksella ~o~%sx %s", - ["threw_weapon_already"] = "Sinulla on jo sama ase", - ["threw_cannot_pickup"] = "Et voi kerätä sitä, koska reppusi on täynnä", - ["threw_pickup_prompt"] = "Paina E kerätäksesi", + -- Inventory + ["inventory"] = "Reppu %s / %s", + ["use"] = "Käytä", + ["give"] = "Anna", + ["remove"] = "Poista", + ["return"] = "Takaisin", + ["give_to"] = "Anna henkilölle", + ["amount"] = "Määrä", + ["giveammo"] = "Anna ammuksia", + ["amountammo"] = "Ammusten määrä", + ["noammo"] = "Sinulla ei ole ammuksia!", + ["gave_item"] = "Sinä annoit %sx %s henkilölle %s", + ["received_item"] = "Sinä sait %sx %s henkilöltä %s", + ["gave_weapon"] = "Sinä annoit 1x %s henkilölle %s", + ["gave_weapon_ammo"] = "Annoit ~o~%sx %s kohteelle %s henkilölle %s", + ["gave_weapon_withammo"] = "Sinä annoit 1x %s ammuksella ~o~%sx %s henkilölle %s", + ["gave_weapon_hasalready"] = "%s omistaa jo %s", + ["gave_weapon_noweapon"] = "%s ei ole kyseistä asetta", + ["received_weapon"] = "Vastaanotit 1x %s henkilöltä %s", + ["received_weapon_ammo"] = "Sinä sait ~o~%sx %s sinun %s varten henkilöltä %s", + ["received_weapon_withammo"] = "Sinä sait 1x %s ammuksella ~o~%sx %s henkilöltä %s", + ["received_weapon_hasalready"] = "%s yritti antaa sinulle %s, mutta sinulla on jo sellainen", + ["received_weapon_noweapon"] = "%s yritti antaa sinulle ammuksia %s:lle, mutta sinulla ei ole sellaista", + ["gave_account_money"] = "Sinä annoit $%s (%s) henkilölle %s", + ["received_account_money"] = "Sinä sait $%s (%s) henkilöltä %s", + ["amount_invalid"] = "Virheellinen määrä", + ["players_nearby"] = "Ei pelaajia lähettyvillä", + ["ex_inv_lim"] = "Toiminto mahdoton, reppu alkaa olla täysi %s", + ["imp_invalid_quantity"] = "Toiminto mahdoton, virheellinen määrä", + ["imp_invalid_amount"] = "Toiminto mahdoton, virhellinen summa", + ["threw_standard"] = "Sinä heitit %sx %s", + ["threw_account"] = "Sinä heitit $%s %s", + ["threw_weapon"] = "Sinä heitit 1x %s", + ["threw_weapon_ammo"] = "Heitit 1x %s ammuksella ~o~%sx %s", + ["threw_weapon_already"] = "Sinulla on jo sama ase", + ["threw_cannot_pickup"] = "Et voi kerätä sitä, koska reppusi on täynnä", + ["threw_pickup_prompt"] = "Paina E kerätäksesi", - -- Key mapping - ["keymap_showinventory"] = "Avaa reppu", + -- Key mapping + ["keymap_showinventory"] = "Avaa reppu", - -- Salary related - ["received_salary"] = "Vastaanotit palkkaa: $%s", - ["received_help"] = "Vastaanotit valtion tukea: $%s", - ["company_nomoney"] = "Yrityksellä jolle teet töitä ei ole varaa maksaa palkkaasi", - ["received_paycheck"] = "Sait palkan", - ["bank"] = "Pankki", - ["account_bank"] = "Pankki", - ["account_black_money"] = "Likainen raha", - ["account_money"] = "Käteinen", + -- Salary related + ["received_salary"] = "Vastaanotit palkkaa: $%s", + ["received_help"] = "Vastaanotit valtion tukea: $%s", + ["company_nomoney"] = "Yrityksellä jolle teet töitä ei ole varaa maksaa palkkaasi", + ["received_paycheck"] = "Sait palkan", + ["bank"] = "Pankki", + ["account_bank"] = "Pankki", + ["account_black_money"] = "Likainen raha", + ["account_money"] = "Käteinen", - ["act_imp"] = "Toiminto mahdoton", - ["in_vehicle"] = "Et voi antaa ajoneuvossa olevalle mitään", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + ["act_imp"] = "Toiminto mahdoton", + ["in_vehicle"] = "Et voi antaa ajoneuvossa olevalle mitään", + ["not_in_vehicle"] = "Toimintoa ei voida suorittaa, pelaaja ei ole ajoneuvossa", - -- Commands - ['command_car'] = 'Luo ajoneuvo', - ['command_car_car'] = 'Ajoneuvon nimi tai hash', - ['command_cardel'] = 'Poistaa ajoneuvon läheltä', - ['command_cardel_radius'] = 'Valinnainen, poista kaikki ajoneuvot määritetyllä säteellä', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Tyhjennä keskustelu', - ['command_clearall'] = 'Tyhjennä keskustelu kaikilta pelaajilta', - ['command_clearinventory'] = 'Tyhjennä pelaajan reppu', - ['command_clearloadout'] = 'Tyhjennä pelaajan varustus', - ['command_giveaccountmoney'] = 'Anna tilirahaa', - ['command_giveaccountmoney_account'] = 'Kelvollinen tilin nimi', - ['command_giveaccountmoney_amount'] = 'Lisättävä määrä', - ['command_giveaccountmoney_invalid'] = 'Virheellinen tili nimi', - ['command_giveitem'] = 'Anna pelaajalle esine', - ['command_giveitem_item'] = 'Esineen nimi', - ['command_giveitem_count'] = 'Esineiden määrä', - ['command_giveweapon'] = 'Anna pelaajalle ase', - ['command_giveweapon_weapon'] = 'Aseen nimi', - ['command_giveweapon_ammo'] = 'Ammusten määrä', - ['command_giveweapon_hasalready'] = 'Pelaajalla on jo kyseinen ase', - ['command_giveweaponcomponent'] = 'Anna aseen komponentti', - ['command_giveweaponcomponent_component'] = 'Komponentin nimi', - ['command_giveweaponcomponent_invalid'] = 'Virheellinen aseen komponentti', - ['command_giveweaponcomponent_hasalready'] = 'Pelaajalla on jo kyseinen asekomponentti', - ['command_giveweaponcomponent_missingweapon'] = 'Pelaajalla ei ole kyseistä asetta', - ['command_save'] = 'Talenna pelaaja tietokantaan', - ['command_saveall'] = 'Tallenna kaikki pelaajat tietokantaan', - ['command_setaccountmoney'] = 'Aseta tilirahaa pelaajalle', - ['command_setaccountmoney_amount'] = 'Asetettava rahamäärä', - ['command_setcoords'] = 'Teleporttaa koordinaatteihin', - ['command_setcoords_x'] = 'x akseli', - ['command_setcoords_y'] = 'y akseli', - ['command_setcoords_z'] = 'z akseli', - ['command_setjob'] = 'Aseta pelaajalle työ', - ['command_setjob_job'] = 'Työ', - ['command_setjob_grade'] = 'Arvo', - ['command_setjob_invalid'] = 'Työ ja arvo tai molemmat ovat virheellisiä', - ['command_setgroup'] = 'Aseta pelaajan ryhmä', - ['command_setgroup_group'] = 'Ryhmän nimi', - ['commanderror_argumentmismatch'] = 'Argumenttien määrä ei täsmää (hyväksytty %s, haluttu %s)', - ['commanderror_argumentmismatch_number'] = 'Argumentin #%s tyyppi ei täsmää (syötetty merkkijono, haluttu numero)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Virheellinen esineen nimi', - ['commanderror_invalidweapon'] = 'Virheellinen ase', - ['commanderror_console'] = 'Komentoa ei voi suorittaa konsolissa', - ['commanderror_invalidcommand'] = '/%s ei ole kelvollinen komento!', - ['commanderror_invalidplayerid'] = 'Palvelimella ei ole pelaajaa, joka vastaa annetua ID', - ['commandgeneric_playerid'] = 'Pelaajan ID', - ['command_giveammo_noweapon_found'] = '%s ei ole sitä asetta', - ['command_giveammo_weapon'] = 'Aseen nimi', - ['command_giveammo_ammo'] = 'Ammusten määrä', + -- Commands + ["command_car"] = "Luo ajoneuvo", + ["command_car_car"] = "Ajoneuvon nimi tai hash", + ["command_cardel"] = "Poistaa ajoneuvon läheltä", + ["command_cardel_radius"] = "Valinnainen, poista kaikki ajoneuvot määritetyllä säteellä", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Tyhjennä keskustelu", + ["command_clearall"] = "Tyhjennä keskustelu kaikilta pelaajilta", + ["command_clearinventory"] = "Tyhjennä pelaajan reppu", + ["command_clearloadout"] = "Tyhjennä pelaajan varustus", + ["command_giveaccountmoney"] = "Anna tilirahaa", + ["command_giveaccountmoney_account"] = "Kelvollinen tilin nimi", + ["command_giveaccountmoney_amount"] = "Lisättävä määrä", + ["command_giveaccountmoney_invalid"] = "Virheellinen tili nimi", + ["command_giveitem"] = "Anna pelaajalle esine", + ["command_giveitem_item"] = "Esineen nimi", + ["command_giveitem_count"] = "Esineiden määrä", + ["command_giveweapon"] = "Anna pelaajalle ase", + ["command_giveweapon_weapon"] = "Aseen nimi", + ["command_giveweapon_ammo"] = "Ammusten määrä", + ["command_giveweapon_hasalready"] = "Pelaajalla on jo kyseinen ase", + ["command_giveweaponcomponent"] = "Anna aseen komponentti", + ["command_giveweaponcomponent_component"] = "Komponentin nimi", + ["command_giveweaponcomponent_invalid"] = "Virheellinen aseen komponentti", + ["command_giveweaponcomponent_hasalready"] = "Pelaajalla on jo kyseinen asekomponentti", + ["command_giveweaponcomponent_missingweapon"] = "Pelaajalla ei ole kyseistä asetta", + ["command_save"] = "Talenna pelaaja tietokantaan", + ["command_saveall"] = "Tallenna kaikki pelaajat tietokantaan", + ["command_setaccountmoney"] = "Aseta tilirahaa pelaajalle", + ["command_setaccountmoney_amount"] = "Asetettava rahamäärä", + ["command_setcoords"] = "Teleporttaa koordinaatteihin", + ["command_setcoords_x"] = "x akseli", + ["command_setcoords_y"] = "y akseli", + ["command_setcoords_z"] = "z akseli", + ["command_setjob"] = "Aseta pelaajalle ammatti", + ["command_setjob_job"] = "Ammatti", + ["command_setjob_grade"] = "Arvo", + ["command_setjob_invalid"] = "Ammatti ja arvo tai molemmat ovat virheellisiä", + ["command_setgroup"] = "Aseta pelaajan ryhmä", + ["command_setgroup_group"] = "Ryhmän nimi", + ["commanderror_argumentmismatch"] = "Argumenttien määrä ei täsmää (hyväksytty %s, haluttu %s)", + ["commanderror_argumentmismatch_number"] = "Argumentin #%s tyyppi ei täsmää (syötetty merkkijono, haluttu numero)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Virheellinen esineen nimi", + ["commanderror_invalidweapon"] = "Virheellinen ase", + ["commanderror_console"] = "Komentoa ei voi suorittaa konsolissa", + ["commanderror_invalidcommand"] = "/%s ei ole kelvollinen komento!", + ["commanderror_invalidplayerid"] = "Palvelimella ei ole pelaajaa, joka vastaa annetua ID", + ["commandgeneric_playerid"] = "Pelaajan ID", + ["command_giveammo_noweapon_found"] = "%s ei ole sitä asetta", + ["command_giveammo_weapon"] = "Aseen nimi", + ["command_giveammo_ammo"] = "Ammusten määrä", - -- Locale settings - ["locale_digit_grouping_symbol"] = "", - ["locale_currency"] = "$%s", + -- Locale settings + ["locale_digit_grouping_symbol"] = "", + ["locale_currency"] = "€%s", - -- 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 + -- Drug Wars DLC + ["weapon_candycane"] = "Karkkitanko", + ["weapon_acidpackage"] = "Happo pakkaus", + ["weapon_pistolxm3"] = "WM 29 Pistooli", + ["weapon_railgunxm3"] = "Raidetykki", - -- Weapons - ["weapon_knife"] = "Veitsi", - ["weapon_nightstick"] = "Pamppu", - ["weapon_hammer"] = "Vasara", - ["weapon_bat"] = "Pesäpallomaila", - ["weapon_golfclub"] = "Golf maila", - ["weapon_crowbar"] = "Sorkkarauta", - ["weapon_pistol"] = "Pistooli", - ["weapon_combatpistol"] = "Taistelu pistooli", - ["weapon_appistol"] = "Automaatti pistooli", - ["weapon_pistol50"] = "50 kaliiperinen pistooli", - ["weapon_microsmg"] = "Mikro konepistooli", - ["weapon_smg"] = "Konepistooli", - ["weapon_assaultsmg"] = "Rynnäkkö konepistooli", - ["weapon_assaultrifle"] = "Rynnäkkökivääri", - ["weapon_carbinerifle"] = "Karbiini kivääri", - ["weapon_advancedrifle"] = "Edistynyt kivääri", - ["weapon_mg"] = "Konekivääri", - ["weapon_combatmg"] = "Rynnäkkö konekivääri", - ["weapon_pumpshotgun"] = "Pumppu haulikko", - ["weapon_sawnoffshotgun"] = "Katkaistuhaulikko", - ["weapon_assaultshotgun"] = "Hyökkäyshaulikko", - ["weapon_bullpupshotgun"] = "Bullpup haulikko", - ["weapon_stungun"] = "Tainutusase", - ["weapon_sniperrifle"] = "Tarkkuuskivääri", - ["weapon_heavysniper"] = "Raskas tarkkuuskivääri", - ["weapon_grenadelauncher"] = "Kranaatinheitin", - ["weapon_rpg"] = "Raketinheitin", - ["weapon_minigun"] = "Minigun", - ["weapon_grenade"] = "Kranaatti", - ["weapon_stickybomb"] = "Tahma pommi", - ["weapon_smokegrenade"] = "Savukranaatti", - ["weapon_bzgas"] = "Bz-kaasu", - ["weapon_molotov"] = "Polttopullo", - ["weapon_fireextinguisher"] = "Palosammutin", - ["weapon_petrolcan"] = "Jerrykannu", - ["weapon_ball"] = "Pallo", - ["weapon_snspistol"] = "Pienpistooli", - ["weapon_bottle"] = "Pullo", - ["weapon_gusenberg"] = "Thompson-konepistooli", - ["weapon_specialcarbine"] = "G86C", - ["weapon_heavypistol"] = "Raskas pistooli", - ["weapon_bullpuprifle"] = "Bullpup kivääri", - ["weapon_dagger"] = "Tikari", - ["weapon_vintagepistol"] = "Vanha pistooli", - ["weapon_firework"] = "Ilotulite", - ["weapon_musket"] = "Musketti", - ["weapon_heavyshotgun"] = "Raskas haulikko", - ["weapon_marksmanrifle"] = "Marksman kivääri", - ["weapon_hominglauncher"] = "Ohjautuva raketinheitin", - ["weapon_proxmine"] = "Lähellä räjähtävä miina", - ["weapon_snowball"] = "Lumipallo", - ["weapon_flaregun"] = "Valopistooli", - ["weapon_combatpdw"] = "Rynnäkkö pdw", - ["weapon_marksmanpistol"] = "Marksman pistooli", - ["weapon_knuckle"] = "Nyrkkirauta", - ["weapon_hatchet"] = "Kirves", - ["weapon_railgun"] = "Raidetykki", - ["weapon_machete"] = "Viidakkoveitsi", - ["weapon_machinepistol"] = "Konepistooli", - ["weapon_switchblade"] = "Stiletti", - ["weapon_revolver"] = "Raskas revolveri", - ["weapon_dbshotgun"] = "Kaksipiippunen haulikko", - ["weapon_compactrifle"] = "Pikku AK", - ["weapon_autoshotgun"] = "Automaattinen haulikko", - ["weapon_battleaxe"] = "Taistelukirves", - ["weapon_compactlauncher"] = "Pien kranaatinheitin", - ["weapon_minismg"] = "Mini konepistooli", - ["weapon_pipebomb"] = "Putkipommi", - ["weapon_poolcue"] = "Biljardimaila", - ["weapon_wrench"] = "Putkipihdit", - ["weapon_flashlight"] = "Taskulamppu", - ["gadget_parachute"] = "Laskuvarjo", - ["weapon_flare"] = "Hätäraketti", - ["weapon_doubleaction"] = "Double action revolveri", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + -- Weapons + ["weapon_knife"] = "Veitsi", + ["weapon_nightstick"] = "Pamppu", + ["weapon_hammer"] = "Vasara", + ["weapon_bat"] = "Pesäpallomaila", + ["weapon_golfclub"] = "Golf maila", + ["weapon_crowbar"] = "Sorkkarauta", + ["weapon_pistol"] = "Pistooli", + ["weapon_combatpistol"] = "Taistelu pistooli", + ["weapon_appistol"] = "Automaatti pistooli", + ["weapon_pistol50"] = "50 kaliiperinen pistooli", + ["weapon_microsmg"] = "Mikro konepistooli", + ["weapon_smg"] = "Konepistooli", + ["weapon_assaultsmg"] = "Rynnäkkö konepistooli", + ["weapon_assaultrifle"] = "Rynnäkkökivääri", + ["weapon_carbinerifle"] = "Karbiini kivääri", + ["weapon_advancedrifle"] = "Edistynyt kivääri", + ["weapon_mg"] = "Konekivääri", + ["weapon_combatmg"] = "Rynnäkkö konekivääri", + ["weapon_pumpshotgun"] = "Pumppu haulikko", + ["weapon_sawnoffshotgun"] = "Katkaistuhaulikko", + ["weapon_assaultshotgun"] = "Hyökkäyshaulikko", + ["weapon_bullpupshotgun"] = "Bullpup haulikko", + ["weapon_stungun"] = "Tainutusase", + ["weapon_sniperrifle"] = "Tarkkuuskivääri", + ["weapon_heavysniper"] = "Raskas tarkkuuskivääri", + ["weapon_grenadelauncher"] = "Kranaatinheitin", + ["weapon_rpg"] = "Raketinheitin", + ["weapon_minigun"] = "Minigun", + ["weapon_grenade"] = "Kranaatti", + ["weapon_stickybomb"] = "Tahma pommi", + ["weapon_smokegrenade"] = "Savukranaatti", + ["weapon_bzgas"] = "Bz-kaasu", + ["weapon_molotov"] = "Polttopullo", + ["weapon_fireextinguisher"] = "Palosammutin", + ["weapon_petrolcan"] = "Jerrykannu", + ["weapon_ball"] = "Pallo", + ["weapon_snspistol"] = "Pienpistooli", + ["weapon_bottle"] = "Pullo", + ["weapon_gusenberg"] = "Thompson-konepistooli", + ["weapon_specialcarbine"] = "G86C", + ["weapon_heavypistol"] = "Raskas pistooli", + ["weapon_bullpuprifle"] = "Bullpup kivääri", + ["weapon_dagger"] = "Tikari", + ["weapon_vintagepistol"] = "Vanha pistooli", + ["weapon_firework"] = "Ilotulite", + ["weapon_musket"] = "Musketti", + ["weapon_heavyshotgun"] = "Raskas haulikko", + ["weapon_marksmanrifle"] = "Marksman kivääri", + ["weapon_hominglauncher"] = "Ohjautuva raketinheitin", + ["weapon_proxmine"] = "Lähellä räjähtävä miina", + ["weapon_snowball"] = "Lumipallo", + ["weapon_flaregun"] = "Valopistooli", + ["weapon_combatpdw"] = "Rynnäkkö pdw", + ["weapon_marksmanpistol"] = "Marksman pistooli", + ["weapon_knuckle"] = "Nyrkkirauta", + ["weapon_hatchet"] = "Kirves", + ["weapon_railgun"] = "Raidetykki", + ["weapon_machete"] = "Viidakkoveitsi", + ["weapon_machinepistol"] = "Konepistooli", + ["weapon_switchblade"] = "Stiletti", + ["weapon_revolver"] = "Raskas revolveri", + ["weapon_dbshotgun"] = "Kaksipiippunen haulikko", + ["weapon_compactrifle"] = "Pikku AK", + ["weapon_autoshotgun"] = "Automaattinen haulikko", + ["weapon_battleaxe"] = "Taistelukirves", + ["weapon_compactlauncher"] = "Pien kranaatinheitin", + ["weapon_minismg"] = "Mini konepistooli", + ["weapon_pipebomb"] = "Putkipommi", + ["weapon_poolcue"] = "Biljardimaila", + ["weapon_wrench"] = "Putkipihdit", + ["weapon_flashlight"] = "Taskulamppu", + ["gadget_parachute"] = "Laskuvarjo", + ["weapon_flare"] = "Hätäraketti", + ["weapon_doubleaction"] = "Double action revolveri", + ["weapon_heavyrifle"] = "Raskas kivääri", - -- Weapon Components - ["component_clip_default"] = "Oletus lipas", - ["component_clip_extended"] = "Paranneltu lipas", - ["component_clip_drum"] = "Rumpulipas", - ["component_clip_box"] = "Laatikkolipas", - ["component_flashlight"] = "Taskulamppu", - ["component_scope"] = "Tähtäin", - ["component_scope_advanced"] = "Paranneltu tähtäin", - ["component_suppressor"] = "Äänenvaimennin", - ["component_grip"] = "Kahva", - ["component_luxary_finish"] = "Luksus ulkokuori", + -- Weapon Components + ["component_clip_default"] = "Oletus lipas", + ["component_clip_extended"] = "Paranneltu lipas", + ["component_clip_drum"] = "Rumpulipas", + ["component_clip_box"] = "Laatikkolipas", + ["component_flashlight"] = "Taskulamppu", + ["component_scope"] = "Tähtäin", + ["component_scope_advanced"] = "Paranneltu tähtäin", + ["component_suppressor"] = "Äänenvaimennin", + ["component_grip"] = "Kahva", + ["component_luxary_finish"] = "Luksus ulkokuori", - -- Weapon Ammo - ["ammo_rounds"] = "Ammukset(s)", - ["ammo_shells"] = "Hylsy(s)", - ["ammo_charge"] = "Lataa", - ["ammo_petrol"] = "Gallonaa polttoainetta", - ["ammo_firework"] = "Ilotulite(s)", - ["ammo_rockets"] = "Raketti(s)", - ["ammo_grenadelauncher"] = "Kranaatti(s)", - ["ammo_grenade"] = "Kranaatti(s)", - ["ammo_stickybomb"] = "Pommi(s)", - ["ammo_pipebomb"] = "Pommi(s)", - ["ammo_smokebomb"] = "Pommi(s)", - ["ammo_molotov"] = "Polttopullo(s)", - ["ammo_proxmine"] = "Miina(s)", - ["ammo_bzgas"] = "Tölkki(s)", - ["ammo_ball"] = "Pallo(s)", - ["ammo_snowball"] = "Lumipallo(s)", - ["ammo_flare"] = "Valoraketti(s)", - ["ammo_flaregun"] = "Valoraketti(s)", + -- Weapon Ammo + ["ammo_rounds"] = "Ammukset(s)", + ["ammo_shells"] = "Hylsy(s)", + ["ammo_charge"] = "Lataa", + ["ammo_petrol"] = "Gallonaa polttoainetta", + ["ammo_firework"] = "Ilotulite(s)", + ["ammo_rockets"] = "Raketti(s)", + ["ammo_grenadelauncher"] = "Kranaatti(s)", + ["ammo_grenade"] = "Kranaatti(s)", + ["ammo_stickybomb"] = "Pommi(s)", + ["ammo_pipebomb"] = "Pommi(s)", + ["ammo_smokebomb"] = "Pommi(s)", + ["ammo_molotov"] = "Polttopullo(s)", + ["ammo_proxmine"] = "Miina(s)", + ["ammo_bzgas"] = "Tölkki(s)", + ["ammo_ball"] = "Pallo(s)", + ["ammo_snowball"] = "Lumipallo(s)", + ["ammo_flare"] = "Valoraketti(s)", + ["ammo_flaregun"] = "Valoraketti(s)", - -- Weapon Tints - ["tint_default"] = "Oletus ulkokuori", - ["tint_green"] = "Vihreä ulkokuori", - ["tint_gold"] = "Kultainen ulkokuori", - ["tint_pink"] = "Vaaleanpunainen ulkokuori", - ["tint_army"] = "Armeija ulkokuori", - ["tint_lspd"] = "Sininen ulkokuori", - ["tint_orange"] = "Oranssi ulkokuori", - ["tint_platinum"] = "Platina ulkokuori", + -- Weapon Tints + ["tint_default"] = "Oletus ulkokuori", + ["tint_green"] = "Vihreä ulkokuori", + ["tint_gold"] = "Kultainen ulkokuori", + ["tint_pink"] = "Vaaleanpunainen ulkokuori", + ["tint_army"] = "Armeija ulkokuori", + ["tint_lspd"] = "Sininen ulkokuori", + ["tint_orange"] = "Oranssi ulkokuori", + ["tint_platinum"] = "Platina ulkokuori", } diff --git a/[core]/es_extended/locales/fr.lua b/[core]/es_extended/locales/fr.lua index 3dedf7928..44760c691 100644 --- a/[core]/es_extended/locales/fr.lua +++ b/[core]/es_extended/locales/fr.lua @@ -1,381 +1,381 @@ Locales["fr"] = { - -- Inventory - ["inventory"] = "Inventaire ( Poids %s / %s )", - ["use"] = "Utiliser", - ["give"] = "Donner", - ["remove"] = "Jeter", - ["return"] = "Retour", - ["give_to"] = "Donner à", - ["amount"] = "Quantité", - ["giveammo"] = "Donner des munitions", - ["amountammo"] = "Nombre de munitions", - ["noammo"] = "Vous n'avez pas autant de munitions!", - ["gave_item"] = "Vous avez donné %sx %s à %s", - ["received_item"] = "Vous avez reçu %sx %s de %s", - ["gave_weapon"] = "Vous avez donné 1x %s à %s", - ["gave_weapon_ammo"] = "Vous avez donné ~o~%sx %s pour %s à %s", - ["gave_weapon_withammo"] = "Vous avez donné 1x %s avec ~o~%sx %s à %s", - ["gave_weapon_hasalready"] = "%s a déjà 1x %s", - ["gave_weapon_noweapon"] = "%s n'a pas cette arme", - ["received_weapon"] = "Vous avez reçu 1x %s de %s", - ["received_weapon_ammo"] = "Vous avez reçu ~o~%sx %s pour votre %s de %s", - ["received_weapon_withammo"] = "Vous avez reçu 1x %s avec ~o~%sx %s de %s", - ["received_weapon_hasalready"] = "%s a tenté de vous donner 1x %s, mais vous en aviez déjà un exemplaire", - ["received_weapon_noweapon"] = "%s a tenté de vous donner des munitions pour %s, mais vous n'avez pas cette arme", - ["gave_account_money"] = "Vous avez donné $%s (%s) à %s", - ["received_account_money"] = "Vous avez reçu $%s (%s) de %s", - ["amount_invalid"] = "Le montant est invalide", - ["players_nearby"] = "Aucun joueur n'est à proximité", - ["ex_inv_lim"] = "Action impossible, dépassement du poids maximum de %s", - ["imp_invalid_quantity"] = "Action impossible, la quantité est invalide", - ["imp_invalid_amount"] = "Action impossible, le montant est invalide", - ["threw_standard"] = "Vous avez jeté %sx %s", - ["threw_account"] = "Vous avez jeté $%s %s", - ["threw_weapon"] = "Vous avez jeté 1x %s", - ["threw_weapon_ammo"] = "Vous avez jeté 1x %s avec ~o~%sx %s", - ["threw_weapon_already"] = "Vous avez déjà cette arme", - ["threw_cannot_pickup"] = "Votre inventaire est plein, vous ne pouvez donc pas ramasser cela!", - ["threw_pickup_prompt"] = "Appuyez sur E pour ramasser", - - -- Key mapping - ["keymap_showinventory"] = "Afficher l'inventaire", - - -- Salary related - ["received_salary"] = "Vous avez reçu votre salaire: $%s", - ["received_help"] = "Vous avez reçu une aide de l'état: $%s", - ["company_nomoney"] = "Votre entreprise n'a pas assez d'argent pour vous payer", - ["received_paycheck"] = "Paiement reçu", - ["bank"] = "Banque", - ["account_bank"] = "Banque", - ["account_black_money"] = "Argent sale", - ["account_money"] = "Espèces", - - ["act_imp"] = "Action impossible", - ["in_vehicle"] = "Action impossible, le joueur est dans un véhicule", - ["not_in_vehicle"] = "Action impossible, le joueur n'est pas dans un véhicule", - - -- Commands - ["command_bring"] = "Téléporter un joueur sur vous", - ["command_car"] = "Faire appaitre un véhicule", - ["command_car_car"] = "Nom ou hash du véhicule", - ["command_cardel"] = "Supprimer les véhicules à proximité", - ["command_cardel_radius"] = "Supprime tous les véhicules dans un rayon spécifié", - ["command_repair"] = "Réparer votre véhicule", - ["command_repair_success"] = "Véhicule réparé avec succès", - ["command_repair_success_target"] = "Votre véhicule a été réparé par un membre du staff", - ["command_clear"] = "Effacer le chat", - ["command_clearall"] = "Effacer le chat de tous les joueurs", - ["command_clearinventory"] = "Retirer tous les objets de l'inventaire du joueur", - ["command_clearloadout"] = "Retirer toutes les armes du joueur", - ["command_freeze"] = "Geler un joueur sur place", - ["command_unfreeze"] = "Dégeler un joueur", - ["command_giveaccountmoney"] = "Donner de l'argent à un compte spécifique", - ["command_giveaccountmoney_account"] = "Compte à créditer", - ["command_giveaccountmoney_amount"] = "Quantité d'argent à créditer", - ["command_giveaccountmoney_invalid"] = "Le nom de compte spécifié est invalide", - ["command_removeaccountmoney"] = "Retirer de l'argent d'un compte spécifique", - ["command_removeaccountmoney_account"] = "Compte à débiter", - ["command_removeaccountmoney_amount"] = "Quantité d'argent à débiter", - ["command_removeaccountmoney_invalid"] = "Le nom de compte spécifié est invalide", - ["command_giveitem"] = "Donner un objet à un joueur", - ["command_giveitem_item"] = "Nom de l'objet à donner", - ["command_giveitem_count"] = "Quantité à donner", - ["command_giveweapon"] = "Donner une arme à un joueur", - ["command_giveweapon_weapon"] = "Nom de l'arme à donner", - ["command_giveweapon_ammo"] = "Quantité de munitions à donner", - ["command_giveweapon_hasalready"] = "Le joueur a déjà cette arme", - ["command_giveweaponcomponent"] = "Donner un accessoire d'arme à un joueur", - ["command_giveweaponcomponent_component"] = "Nom de l'accessoire à donner", - ["command_giveweaponcomponent_invalid"] = "Le nom de l'accessoire d'arme spécifié est invalide", - ["command_giveweaponcomponent_hasalready"] = "Le joueur a déjà cet accessoire", - ["command_giveweaponcomponent_missingweapon"] = "Le joueur n'a pas l'arme associée à cet accessoire", - ["command_goto"] = "Se téléporter vers un joueur", - ["command_kill"] = "Tuer un joueur", - ["command_save"] = "Forcer la sauvegarde des données d'un joueur", - ["command_saveall"] = "Forcer la sauvegarde des données de tous les joueurs", - ["command_setaccountmoney"] = "Définir le montant d'argent d'un compte spécifique", - ["command_setaccountmoney_amount"] = "Montant d'argent à définir", - ["command_setcoords"] = "Se téléporter à des coordonnées spécifiques", - ["command_setcoords_x"] = "Valeur de l'axe X", - ["command_setcoords_y"] = "Valeur de l'axe Y", - ["command_setcoords_z"] = "Valeur de l'axe Z", - ["command_setjob"] = "Définir le métier d'un joueur", - ["command_setjob_job"] = "Nom du métier à définir", - ["command_setjob_grade"] = "Grade du métier", - ["command_setjob_invalid"] = "Le métier, le grade, ou les deux sont invalides", - ["command_setgroup"] = "Définir le groupe de permissions d'un joueur", - ["command_setgroup_group"] = "Nom du groupe à définir", - ["commanderror_argumentmismatch"] = "Le nombre d'arguments est invalide (Argument·s donné·s: %s, Argument·s demandé·s: %s)", - ["commanderror_argumentmismatch_number"] = "Type de données de l'argument #%s invalide (Type donné: texte, Type demandé: nombre)", - ["commanderror_argumentmismatch_string"] = "Type de données de l'argument #%s invalide (Type donné: nombre, Type demandé: texte)", - ["commanderror_invaliditem"] = "Le nom de l'objet est invalide", - ["commanderror_invalidweapon"] = "Le nom de l'arme est invalide", - ["commanderror_console"] = "Cette commande ne peut pas être éxécutée depuis la console", - ["commanderror_invalidcommand"] = "Commande invalide - /%s", - ["commanderror_invalidplayerid"] = "Le joueur spécifié n'est pas connecté", - ["commandgeneric_playerid"] = "Identifiant serveur du joueur", - ["command_giveammo_noweapon_found"] = "%s n'a pas cette arme", - ["command_giveammo_weapon"] = "Nom de l'arme", - ["command_giveammo_ammo"] = "Quantité de munitions", - ["tpm_nowaypoint"] = "Aucun point n'est défini sur la carte", - ["tpm_success"] = "Vous avez bien été téléporté", - - ["noclip_message"] = "Le mode noclip a été %s", - ["enabled"] = "~g~activé~s~", - ["disabled"] = "~r~désactivé~s~", - - -- Locale settings - ["locale_digit_grouping_symbol"] = " ", - ["locale_currency"] = "$%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dague", - ["weapon_bat"] = "Batte", - ["weapon_battleaxe"] = "Hache de combat", - ["weapon_bottle"] = "Bouteille", - ["weapon_crowbar"] = "Pied de biche", - ["weapon_flashlight"] = "Lampte torche", - ["weapon_golfclub"] = "Club de golf", - ["weapon_hammer"] = "Marteau", - ["weapon_hatchet"] = "Hachette", - ["weapon_knife"] = "Couteau", - ["weapon_knuckle"] = "Poing américain", - ["weapon_machete"] = "Machette", - ["weapon_nightstick"] = "Matraque", - ["weapon_wrench"] = "Clé à pipe", - ["weapon_poolcue"] = "Queue de billard", - ["weapon_stone_hatchet"] = "Hachette en pierre", - ["weapon_switchblade"] = "Couteau à cran d'arrêt", - - -- Handguns - ["weapon_appistol"] = "Pistolet automatique", - ["weapon_ceramicpistol"] = "Pistolet en céramique", - ["weapon_combatpistol"] = "Pistolet de combat", - ["weapon_doubleaction"] = "Revolver à double action", - ["weapon_navyrevolver"] = "Revolver de marine", - ["weapon_flaregun"] = "Pistolet de détresse", - ["weapon_gadgetpistol"] = "Pistolet gadget", - ["weapon_heavypistol"] = "Pistolet lourd", - ["weapon_revolver"] = "Revolver lourd", - ["weapon_revolver_mk2"] = "Revolver lourd MK2", - ["weapon_marksmanpistol"] = "Pistolet Marksman", - ["weapon_pistol"] = "Pistolet", - ["weapon_pistol_mk2"] = "Pistolet MK2", - ["weapon_pistol50"] = "Pistolet .50", - ["weapon_snspistol"] = "Pistolet SNS", - ["weapon_snspistol_mk2"] = "Pistolet SNS MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Atomiseur", - ["weapon_vintagepistol"] = "Pistolet vintage", - - -- Shotguns - ["weapon_assaultshotgun"] = "Fusil d'assaut", - ["weapon_autoshotgun"] = "Fusil à pompe automatique", - ["weapon_bullpupshotgun"] = "Fusil à pompe Bullpup", - ["weapon_combatshotgun"] = "Fusil de combat", - ["weapon_dbshotgun"] = "Fusil à pompe à double canon", - ["weapon_heavyshotgun"] = "Fusil à pompe lourd", - ["weapon_musket"] = "Mousquet", - ["weapon_pumpshotgun"] = "Fusil à pompe", - ["weapon_pumpshotgun_mk2"] = "Fusil à pompe MK2", - ["weapon_sawnoffshotgun"] = "Fusil à canon scié", - - -- SMG & LMG - ["weapon_assaultsmg"] = "SMG s'assaut", - ["weapon_combatmg"] = "MG de combat", - ["weapon_combatmg_mk2"] = "MG de combat MK2", - ["weapon_combatpdw"] = "PDW de combat", - ["weapon_gusenberg"] = "Balayeuse Gusenberg", - ["weapon_machinepistol"] = "Pistolet-mitrailleur", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Carabine à rayons", - - -- Rifles - ["weapon_advancedrifle"] = "Fusil avancé", - ["weapon_assaultrifle"] = "Fusil d'assaut", - ["weapon_assaultrifle_mk2"] = "Fusil d'assaut MK2", - ["weapon_bullpuprifle"] = "Fusil Bullpup", - ["weapon_bullpuprifle_mk2"] = "Fusil Bullpup MK2", - ["weapon_carbinerifle"] = "Fusil carabine", - ["weapon_carbinerifle_mk2"] = "Fusil carabine MK2", - ["weapon_compactrifle"] = "Fusil compacte", - ["weapon_militaryrifle"] = "Fusil militaire", - ["weapon_specialcarbine"] = "Carabine spéciale", - ["weapon_specialcarbine_mk2"] = "Carabine spéciale MK2", - ["weapon_heavyrifle"] = "Fusil lourd", - - -- Sniper - ["weapon_heavysniper"] = "Sniper lourd", - ["weapon_heavysniper_mk2"] = "Sniper lourd MK2", - ["weapon_marksmanrifle"] = "Fusil Marksman", - ["weapon_marksmanrifle_mk2"] = "Fusil Marksman MK2", - ["weapon_sniperrifle"] = "Fusil sniper", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Lanceur compacte", - ["weapon_firework"] = "Lanceur de feu d'artifice", - ["weapon_grenadelauncher"] = "Lanceur de grenade", - ["weapon_hominglauncher"] = "Lanceur de tête chercheuse", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Fusil à rail", - ["weapon_rpg"] = "Lanceur de rockette", - ["weapon_rayminigun"] = "Exterminateur", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Détecteur de métaux", - ["weapon_precisionrifle"] = "Fusil de précision", - ["weapon_tactilerifle"] = "Carabine tactique", - - -- Drug wars dlc - ["weapon_candycane"] = "Sucre d'orge", - ["weapon_acidpackage"] = "Paquet d'acide", - ["weapon_pistolxm3"] = "Pistolet 8 x3m", - ["weapon_railgunxm3"] = "Fusil électro-magnétique", - - -- Thrown - ["weapon_ball"] = "Base-ball", - ["weapon_bzgas"] = "Gaz BZ", - ["weapon_flare"] = "Fusée éclairante", - ["weapon_grenade"] = "Grenade", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Jerrycan dangereux", - ["weapon_molotov"] = "Cocktail Molotov", - ["weapon_proxmine"] = "Mine de proximité", - ["weapon_pipebomb"] = "Bombe tuyau", - ["weapon_snowball"] = "Boule de neige", - ["weapon_stickybomb"] = "Bombe collante", - ["weapon_smokegrenade"] = "Gaz lacrymogène", - - -- Special - ["weapon_fireextinguisher"] = "Extincteur", - ["weapon_digiscanner"] = "Scanner", - ["weapon_garbagebag"] = "Sac d'ordures", - ["weapon_handcuffs"] = "Menottes", - ["gadget_nightvision"] = "Vision nocturne", - ["gadget_parachute"] = "Parachute", - - -- Weapon Components - ["component_knuckle_base"] = "Modèle par défaut", - ["component_knuckle_pimp"] = "le Pimp", - ["component_knuckle_ballas"] = "le Ballas", - ["component_knuckle_dollar"] = "le Hustler", - ["component_knuckle_diamond"] = "le Rock", - ["component_knuckle_hate"] = "le Hater", - ["component_knuckle_love"] = "le Lover", - ["component_knuckle_player"] = "le Joueur", - ["component_knuckle_king"] = "le Roi", - ["component_knuckle_vagos"] = "le Vagos", - - ["component_luxary_finish"] = "Finition d'arme de luxe", - - ["component_handle_default"] = "Poignée par défaut", - ["component_handle_vip"] = "Poignée VIP", - ["component_handle_bodyguard"] = "Poignée bodyguard", - - ["component_vip_finish"] = "Finition VIP", - ["component_bodyguard_finish"] = "Finition bodyguard", - - ["component_camo_finish"] = "Camouflage numérique", - ["component_camo_finish2"] = "Camouflage pinceau", - ["component_camo_finish3"] = "Camouflage des bois", - ["component_camo_finish4"] = "Camouflage crâne", - ["component_camo_finish5"] = "Camouflage sessanta Nove", - ["component_camo_finish6"] = "Camouflage perseus", - ["component_camo_finish7"] = "Camouflage léopard", - ["component_camo_finish8"] = "Camouflage zèbre", - ["component_camo_finish9"] = "Camouflage géométrique", - ["component_camo_finish10"] = "Camouflage explosif", - ["component_camo_finish11"] = "Camouflage patriotique", - - ["component_camo_slide_finish"] = "Finitions slide à camouflage numérique", - ["component_camo_slide_finish2"] = "Finitions slide à camouflage pinceau", - ["component_camo_slide_finish3"] = "Finitions slide à camouflage des bois", - ["component_camo_slide_finish4"] = "Finitions slide à camouflage crâne", - ["component_camo_slide_finish5"] = "Finitions slide à camouflage sessanta Nove", - ["component_camo_slide_finish6"] = "Finitions slide à camouflage perseus", - ["component_camo_slide_finish7"] = "Finitions slide à camouflage léopard", - ["component_camo_slide_finish8"] = "Finitions slide à camouflage zèbre", - ["component_camo_slide_finish9"] = "Finitions slide à camouflage géométrique", - ["component_camo_slide_finish10"] = "Finitions slide à camouflage explosive", - ["component_camo_slide_finish11"] = "Finitions slide à camouflage patriotique", - - ["component_clip_default"] = "Chargeur par défaut", - ["component_clip_extended"] = "Chargeur à grande capacité", - ["component_clip_drum"] = "Chargeur à tambour", - ["component_clip_box"] = "Chargeur à très grande capacité", - - ["component_scope_holo"] = "Viseur holographique", - ["component_scope_small"] = "Viseur de petite taille", - ["component_scope_medium"] = "Viseur de taille moyenne", - ["component_scope_large"] = "Viseur de grande taille", - ["component_scope"] = "Viseur monté", - ["component_scope_advanced"] = "Viseur avancé", - ["component_ironsights"] = "Viseur à marqueurs alignés", - - ["component_suppressor"] = "silencieux", - ["component_compensator"] = "compensateur", - - ["component_muzzle_flat"] = "Frein plat", - ["component_muzzle_tactical"] = "Frein tactique", - ["component_muzzle_fat"] = "Frein large", - ["component_muzzle_precision"] = "Frein de précision", - ["component_muzzle_heavy"] = "Frein polyvalent", - ["component_muzzle_slanted"] = "Frein incliné", - ["component_muzzle_split"] = "Frein fendu", - ["component_muzzle_squared"] = "Frein carré", - - ["component_flashlight"] = "lampe torche", - ["component_grip"] = "poignée", - - ["component_barrel_default"] = "Canon par défaut", - ["component_barrel_heavy"] = "Canon lourd", - - ["component_ammo_tracer"] = "Munition traceuse", - ["component_ammo_incendiary"] = "Munition incendiaire", - ["component_ammo_hollowpoint"] = "Munition à pointe creuse", - ["component_ammo_fmj"] = "Munition fMJ", - ["component_ammo_armor"] = "Munition perforante", - ["component_ammo_explosive"] = "Munition perforante et Munition incendiaire", - - ["component_shells_default"] = "Coque par défaut", - ["component_shells_incendiary"] = "Coque souffle de dragon", - ["component_shells_armor"] = "Coque à chevrotine en acier", - ["component_shells_hollowpoint"] = "Coque à fléchettes", - ["component_shells_explosive"] = "Coque à limaces explosives", - - -- Weapon Ammo - ["ammo_rounds"] = "cartouche(s)", - ["ammo_shells"] = "obus", - ["ammo_charge"] = "charge·s", - ["ammo_petrol"] = "jerrican d'essence", - ["ammo_firework"] = "feu·x d'artifice", - ["ammo_rockets"] = "roquette·s", - ["ammo_grenadelauncher"] = "grenade·s", - ["ammo_grenade"] = "grenade·s", - ["ammo_stickybomb"] = "bombe·s", - ["ammo_pipebomb"] = "bombe·s", - ["ammo_smokebomb"] = "bombe·s", - ["ammo_molotov"] = "cocktail·s", - ["ammo_proxmine"] = "mine·s", - ["ammo_bzgas"] = "grenade·s", - ["ammo_ball"] = "balle·s", - ["ammo_snowball"] = "boule·s de neige", - ["ammo_flare"] = "fusée·s éclairante·s", - ["ammo_flaregun"] = "fusée·s", - - -- Weapon Tints - ["tint_default"] = "skin par défaut", - ["tint_green"] = "skin vert", - ["tint_gold"] = "skin doré", - ["tint_pink"] = "skin rose", - ["tint_army"] = "skin militaire", - ["tint_lspd"] = "skin bleu", - ["tint_orange"] = "skin orange", - ["tint_platinum"] = "skin platine", + -- Inventory + ["inventory"] = "Inventaire ( Poids %s / %s )", + ["use"] = "Utiliser", + ["give"] = "Donner", + ["remove"] = "Jeter", + ["return"] = "Retour", + ["give_to"] = "Donner à", + ["amount"] = "Quantité", + ["giveammo"] = "Donner des munitions", + ["amountammo"] = "Nombre de munitions", + ["noammo"] = "Vous n'avez pas autant de munitions!", + ["gave_item"] = "Vous avez donné %sx %s à %s", + ["received_item"] = "Vous avez reçu %sx %s de %s", + ["gave_weapon"] = "Vous avez donné 1x %s à %s", + ["gave_weapon_ammo"] = "Vous avez donné ~o~%sx %s pour %s à %s", + ["gave_weapon_withammo"] = "Vous avez donné 1x %s avec ~o~%sx %s à %s", + ["gave_weapon_hasalready"] = "%s a déjà 1x %s", + ["gave_weapon_noweapon"] = "%s n'a pas cette arme", + ["received_weapon"] = "Vous avez reçu 1x %s de %s", + ["received_weapon_ammo"] = "Vous avez reçu ~o~%sx %s pour votre %s de %s", + ["received_weapon_withammo"] = "Vous avez reçu 1x %s avec ~o~%sx %s de %s", + ["received_weapon_hasalready"] = "%s a tenté de vous donner 1x %s, mais vous en aviez déjà un exemplaire", + ["received_weapon_noweapon"] = "%s a tenté de vous donner des munitions pour %s, mais vous n'avez pas cette arme", + ["gave_account_money"] = "Vous avez donné $%s (%s) à %s", + ["received_account_money"] = "Vous avez reçu $%s (%s) de %s", + ["amount_invalid"] = "Le montant est invalide", + ["players_nearby"] = "Aucun joueur n'est à proximité", + ["ex_inv_lim"] = "Action impossible, dépassement du poids maximum de %s", + ["imp_invalid_quantity"] = "Action impossible, la quantité est invalide", + ["imp_invalid_amount"] = "Action impossible, le montant est invalide", + ["threw_standard"] = "Vous avez jeté %sx %s", + ["threw_account"] = "Vous avez jeté $%s %s", + ["threw_weapon"] = "Vous avez jeté 1x %s", + ["threw_weapon_ammo"] = "Vous avez jeté 1x %s avec ~o~%sx %s", + ["threw_weapon_already"] = "Vous avez déjà cette arme", + ["threw_cannot_pickup"] = "Votre inventaire est plein, vous ne pouvez donc pas ramasser cela!", + ["threw_pickup_prompt"] = "Appuyez sur E pour ramasser", + + -- Key mapping + ["keymap_showinventory"] = "Afficher l'inventaire", + + -- Salary related + ["received_salary"] = "Vous avez reçu votre salaire: $%s", + ["received_help"] = "Vous avez reçu une aide de l'état: $%s", + ["company_nomoney"] = "Votre entreprise n'a pas assez d'argent pour vous payer", + ["received_paycheck"] = "Paiement reçu", + ["bank"] = "Banque", + ["account_bank"] = "Banque", + ["account_black_money"] = "Argent sale", + ["account_money"] = "Espèces", + + ["act_imp"] = "Action impossible", + ["in_vehicle"] = "Action impossible, le joueur est dans un véhicule", + ["not_in_vehicle"] = "Action impossible, le joueur n'est pas dans un véhicule", + + -- Commands + ["command_bring"] = "Téléporter un joueur sur vous", + ["command_car"] = "Faire appaitre un véhicule", + ["command_car_car"] = "Nom ou hash du véhicule", + ["command_cardel"] = "Supprimer les véhicules à proximité", + ["command_cardel_radius"] = "Supprime tous les véhicules dans un rayon spécifié", + ["command_repair"] = "Réparer votre véhicule", + ["command_repair_success"] = "Véhicule réparé avec succès", + ["command_repair_success_target"] = "Votre véhicule a été réparé par un membre du staff", + ["command_clear"] = "Effacer le chat", + ["command_clearall"] = "Effacer le chat de tous les joueurs", + ["command_clearinventory"] = "Retirer tous les objets de l'inventaire du joueur", + ["command_clearloadout"] = "Retirer toutes les armes du joueur", + ["command_freeze"] = "Geler un joueur sur place", + ["command_unfreeze"] = "Dégeler un joueur", + ["command_giveaccountmoney"] = "Donner de l'argent à un compte spécifique", + ["command_giveaccountmoney_account"] = "Compte à créditer", + ["command_giveaccountmoney_amount"] = "Quantité d'argent à créditer", + ["command_giveaccountmoney_invalid"] = "Le nom de compte spécifié est invalide", + ["command_removeaccountmoney"] = "Retirer de l'argent d'un compte spécifique", + ["command_removeaccountmoney_account"] = "Compte à débiter", + ["command_removeaccountmoney_amount"] = "Quantité d'argent à débiter", + ["command_removeaccountmoney_invalid"] = "Le nom de compte spécifié est invalide", + ["command_giveitem"] = "Donner un objet à un joueur", + ["command_giveitem_item"] = "Nom de l'objet à donner", + ["command_giveitem_count"] = "Quantité à donner", + ["command_giveweapon"] = "Donner une arme à un joueur", + ["command_giveweapon_weapon"] = "Nom de l'arme à donner", + ["command_giveweapon_ammo"] = "Quantité de munitions à donner", + ["command_giveweapon_hasalready"] = "Le joueur a déjà cette arme", + ["command_giveweaponcomponent"] = "Donner un accessoire d'arme à un joueur", + ["command_giveweaponcomponent_component"] = "Nom de l'accessoire à donner", + ["command_giveweaponcomponent_invalid"] = "Le nom de l'accessoire d'arme spécifié est invalide", + ["command_giveweaponcomponent_hasalready"] = "Le joueur a déjà cet accessoire", + ["command_giveweaponcomponent_missingweapon"] = "Le joueur n'a pas l'arme associée à cet accessoire", + ["command_goto"] = "Se téléporter vers un joueur", + ["command_kill"] = "Tuer un joueur", + ["command_save"] = "Forcer la sauvegarde des données d'un joueur", + ["command_saveall"] = "Forcer la sauvegarde des données de tous les joueurs", + ["command_setaccountmoney"] = "Définir le montant d'argent d'un compte spécifique", + ["command_setaccountmoney_amount"] = "Montant d'argent à définir", + ["command_setcoords"] = "Se téléporter à des coordonnées spécifiques", + ["command_setcoords_x"] = "Valeur de l'axe X", + ["command_setcoords_y"] = "Valeur de l'axe Y", + ["command_setcoords_z"] = "Valeur de l'axe Z", + ["command_setjob"] = "Définir le métier d'un joueur", + ["command_setjob_job"] = "Nom du métier à définir", + ["command_setjob_grade"] = "Grade du métier", + ["command_setjob_invalid"] = "Le métier, le grade, ou les deux sont invalides", + ["command_setgroup"] = "Définir le groupe de permissions d'un joueur", + ["command_setgroup_group"] = "Nom du groupe à définir", + ["commanderror_argumentmismatch"] = "Le nombre d'arguments est invalide (Argument·s donné·s: %s, Argument·s demandé·s: %s)", + ["commanderror_argumentmismatch_number"] = "Type de données de l'argument #%s invalide (Type donné: texte, Type demandé: nombre)", + ["commanderror_argumentmismatch_string"] = "Type de données de l'argument #%s invalide (Type donné: nombre, Type demandé: texte)", + ["commanderror_invaliditem"] = "Le nom de l'objet est invalide", + ["commanderror_invalidweapon"] = "Le nom de l'arme est invalide", + ["commanderror_console"] = "Cette commande ne peut pas être éxécutée depuis la console", + ["commanderror_invalidcommand"] = "Commande invalide - /%s", + ["commanderror_invalidplayerid"] = "Le joueur spécifié n'est pas connecté", + ["commandgeneric_playerid"] = "Identifiant serveur du joueur", + ["command_giveammo_noweapon_found"] = "%s n'a pas cette arme", + ["command_giveammo_weapon"] = "Nom de l'arme", + ["command_giveammo_ammo"] = "Quantité de munitions", + ["tpm_nowaypoint"] = "Aucun point n'est défini sur la carte", + ["tpm_success"] = "Vous avez bien été téléporté", + + ["noclip_message"] = "Le mode noclip a été %s", + ["enabled"] = "~g~activé~s~", + ["disabled"] = "~r~désactivé~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = " ", + ["locale_currency"] = "$%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dague", + ["weapon_bat"] = "Batte", + ["weapon_battleaxe"] = "Hache de combat", + ["weapon_bottle"] = "Bouteille", + ["weapon_crowbar"] = "Pied de biche", + ["weapon_flashlight"] = "Lampte torche", + ["weapon_golfclub"] = "Club de golf", + ["weapon_hammer"] = "Marteau", + ["weapon_hatchet"] = "Hachette", + ["weapon_knife"] = "Couteau", + ["weapon_knuckle"] = "Poing américain", + ["weapon_machete"] = "Machette", + ["weapon_nightstick"] = "Matraque", + ["weapon_wrench"] = "Clé à pipe", + ["weapon_poolcue"] = "Queue de billard", + ["weapon_stone_hatchet"] = "Hachette en pierre", + ["weapon_switchblade"] = "Couteau à cran d'arrêt", + + -- Handguns + ["weapon_appistol"] = "Pistolet automatique", + ["weapon_ceramicpistol"] = "Pistolet en céramique", + ["weapon_combatpistol"] = "Pistolet de combat", + ["weapon_doubleaction"] = "Revolver à double action", + ["weapon_navyrevolver"] = "Revolver de marine", + ["weapon_flaregun"] = "Pistolet de détresse", + ["weapon_gadgetpistol"] = "Pistolet gadget", + ["weapon_heavypistol"] = "Pistolet lourd", + ["weapon_revolver"] = "Revolver lourd", + ["weapon_revolver_mk2"] = "Revolver lourd MK2", + ["weapon_marksmanpistol"] = "Pistolet Marksman", + ["weapon_pistol"] = "Pistolet", + ["weapon_pistol_mk2"] = "Pistolet MK2", + ["weapon_pistol50"] = "Pistolet .50", + ["weapon_snspistol"] = "Pistolet SNS", + ["weapon_snspistol_mk2"] = "Pistolet SNS MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Atomiseur", + ["weapon_vintagepistol"] = "Pistolet vintage", + + -- Shotguns + ["weapon_assaultshotgun"] = "Fusil d'assaut", + ["weapon_autoshotgun"] = "Fusil à pompe automatique", + ["weapon_bullpupshotgun"] = "Fusil à pompe Bullpup", + ["weapon_combatshotgun"] = "Fusil de combat", + ["weapon_dbshotgun"] = "Fusil à pompe à double canon", + ["weapon_heavyshotgun"] = "Fusil à pompe lourd", + ["weapon_musket"] = "Mousquet", + ["weapon_pumpshotgun"] = "Fusil à pompe", + ["weapon_pumpshotgun_mk2"] = "Fusil à pompe MK2", + ["weapon_sawnoffshotgun"] = "Fusil à canon scié", + + -- SMG & LMG + ["weapon_assaultsmg"] = "SMG s'assaut", + ["weapon_combatmg"] = "MG de combat", + ["weapon_combatmg_mk2"] = "MG de combat MK2", + ["weapon_combatpdw"] = "PDW de combat", + ["weapon_gusenberg"] = "Balayeuse Gusenberg", + ["weapon_machinepistol"] = "Pistolet-mitrailleur", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Carabine à rayons", + + -- Rifles + ["weapon_advancedrifle"] = "Fusil avancé", + ["weapon_assaultrifle"] = "Fusil d'assaut", + ["weapon_assaultrifle_mk2"] = "Fusil d'assaut MK2", + ["weapon_bullpuprifle"] = "Fusil Bullpup", + ["weapon_bullpuprifle_mk2"] = "Fusil Bullpup MK2", + ["weapon_carbinerifle"] = "Fusil carabine", + ["weapon_carbinerifle_mk2"] = "Fusil carabine MK2", + ["weapon_compactrifle"] = "Fusil compacte", + ["weapon_militaryrifle"] = "Fusil militaire", + ["weapon_specialcarbine"] = "Carabine spéciale", + ["weapon_specialcarbine_mk2"] = "Carabine spéciale MK2", + ["weapon_heavyrifle"] = "Fusil lourd", + + -- Sniper + ["weapon_heavysniper"] = "Sniper lourd", + ["weapon_heavysniper_mk2"] = "Sniper lourd MK2", + ["weapon_marksmanrifle"] = "Fusil Marksman", + ["weapon_marksmanrifle_mk2"] = "Fusil Marksman MK2", + ["weapon_sniperrifle"] = "Fusil sniper", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Lanceur compacte", + ["weapon_firework"] = "Lanceur de feu d'artifice", + ["weapon_grenadelauncher"] = "Lanceur de grenade", + ["weapon_hominglauncher"] = "Lanceur de tête chercheuse", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Fusil à rail", + ["weapon_rpg"] = "Lanceur de rockette", + ["weapon_rayminigun"] = "Exterminateur", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Détecteur de métaux", + ["weapon_precisionrifle"] = "Fusil de précision", + ["weapon_tactilerifle"] = "Carabine tactique", + + -- Drug wars dlc + ["weapon_candycane"] = "Sucre d'orge", + ["weapon_acidpackage"] = "Paquet d'acide", + ["weapon_pistolxm3"] = "Pistolet 8 x3m", + ["weapon_railgunxm3"] = "Fusil électro-magnétique", + + -- Thrown + ["weapon_ball"] = "Base-ball", + ["weapon_bzgas"] = "Gaz BZ", + ["weapon_flare"] = "Fusée éclairante", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Jerrycan dangereux", + ["weapon_molotov"] = "Cocktail Molotov", + ["weapon_proxmine"] = "Mine de proximité", + ["weapon_pipebomb"] = "Bombe tuyau", + ["weapon_snowball"] = "Boule de neige", + ["weapon_stickybomb"] = "Bombe collante", + ["weapon_smokegrenade"] = "Gaz lacrymogène", + + -- Special + ["weapon_fireextinguisher"] = "Extincteur", + ["weapon_digiscanner"] = "Scanner", + ["weapon_garbagebag"] = "Sac d'ordures", + ["weapon_handcuffs"] = "Menottes", + ["gadget_nightvision"] = "Vision nocturne", + ["gadget_parachute"] = "Parachute", + + -- Weapon Components + ["component_knuckle_base"] = "Modèle par défaut", + ["component_knuckle_pimp"] = "le Pimp", + ["component_knuckle_ballas"] = "le Ballas", + ["component_knuckle_dollar"] = "le Hustler", + ["component_knuckle_diamond"] = "le Rock", + ["component_knuckle_hate"] = "le Hater", + ["component_knuckle_love"] = "le Lover", + ["component_knuckle_player"] = "le Joueur", + ["component_knuckle_king"] = "le Roi", + ["component_knuckle_vagos"] = "le Vagos", + + ["component_luxary_finish"] = "Finition d'arme de luxe", + + ["component_handle_default"] = "Poignée par défaut", + ["component_handle_vip"] = "Poignée VIP", + ["component_handle_bodyguard"] = "Poignée bodyguard", + + ["component_vip_finish"] = "Finition VIP", + ["component_bodyguard_finish"] = "Finition bodyguard", + + ["component_camo_finish"] = "Camouflage numérique", + ["component_camo_finish2"] = "Camouflage pinceau", + ["component_camo_finish3"] = "Camouflage des bois", + ["component_camo_finish4"] = "Camouflage crâne", + ["component_camo_finish5"] = "Camouflage sessanta Nove", + ["component_camo_finish6"] = "Camouflage perseus", + ["component_camo_finish7"] = "Camouflage léopard", + ["component_camo_finish8"] = "Camouflage zèbre", + ["component_camo_finish9"] = "Camouflage géométrique", + ["component_camo_finish10"] = "Camouflage explosif", + ["component_camo_finish11"] = "Camouflage patriotique", + + ["component_camo_slide_finish"] = "Finitions slide à camouflage numérique", + ["component_camo_slide_finish2"] = "Finitions slide à camouflage pinceau", + ["component_camo_slide_finish3"] = "Finitions slide à camouflage des bois", + ["component_camo_slide_finish4"] = "Finitions slide à camouflage crâne", + ["component_camo_slide_finish5"] = "Finitions slide à camouflage sessanta Nove", + ["component_camo_slide_finish6"] = "Finitions slide à camouflage perseus", + ["component_camo_slide_finish7"] = "Finitions slide à camouflage léopard", + ["component_camo_slide_finish8"] = "Finitions slide à camouflage zèbre", + ["component_camo_slide_finish9"] = "Finitions slide à camouflage géométrique", + ["component_camo_slide_finish10"] = "Finitions slide à camouflage explosive", + ["component_camo_slide_finish11"] = "Finitions slide à camouflage patriotique", + + ["component_clip_default"] = "Chargeur par défaut", + ["component_clip_extended"] = "Chargeur à grande capacité", + ["component_clip_drum"] = "Chargeur à tambour", + ["component_clip_box"] = "Chargeur à très grande capacité", + + ["component_scope_holo"] = "Viseur holographique", + ["component_scope_small"] = "Viseur de petite taille", + ["component_scope_medium"] = "Viseur de taille moyenne", + ["component_scope_large"] = "Viseur de grande taille", + ["component_scope"] = "Viseur monté", + ["component_scope_advanced"] = "Viseur avancé", + ["component_ironsights"] = "Viseur à marqueurs alignés", + + ["component_suppressor"] = "silencieux", + ["component_compensator"] = "compensateur", + + ["component_muzzle_flat"] = "Frein plat", + ["component_muzzle_tactical"] = "Frein tactique", + ["component_muzzle_fat"] = "Frein large", + ["component_muzzle_precision"] = "Frein de précision", + ["component_muzzle_heavy"] = "Frein polyvalent", + ["component_muzzle_slanted"] = "Frein incliné", + ["component_muzzle_split"] = "Frein fendu", + ["component_muzzle_squared"] = "Frein carré", + + ["component_flashlight"] = "lampe torche", + ["component_grip"] = "poignée", + + ["component_barrel_default"] = "Canon par défaut", + ["component_barrel_heavy"] = "Canon lourd", + + ["component_ammo_tracer"] = "Munition traceuse", + ["component_ammo_incendiary"] = "Munition incendiaire", + ["component_ammo_hollowpoint"] = "Munition à pointe creuse", + ["component_ammo_fmj"] = "Munition fMJ", + ["component_ammo_armor"] = "Munition perforante", + ["component_ammo_explosive"] = "Munition perforante et Munition incendiaire", + + ["component_shells_default"] = "Coque par défaut", + ["component_shells_incendiary"] = "Coque souffle de dragon", + ["component_shells_armor"] = "Coque à chevrotine en acier", + ["component_shells_hollowpoint"] = "Coque à fléchettes", + ["component_shells_explosive"] = "Coque à limaces explosives", + + -- Weapon Ammo + ["ammo_rounds"] = "cartouche(s)", + ["ammo_shells"] = "obus", + ["ammo_charge"] = "charge·s", + ["ammo_petrol"] = "jerrican d'essence", + ["ammo_firework"] = "feu·x d'artifice", + ["ammo_rockets"] = "roquette·s", + ["ammo_grenadelauncher"] = "grenade·s", + ["ammo_grenade"] = "grenade·s", + ["ammo_stickybomb"] = "bombe·s", + ["ammo_pipebomb"] = "bombe·s", + ["ammo_smokebomb"] = "bombe·s", + ["ammo_molotov"] = "cocktail·s", + ["ammo_proxmine"] = "mine·s", + ["ammo_bzgas"] = "grenade·s", + ["ammo_ball"] = "balle·s", + ["ammo_snowball"] = "boule·s de neige", + ["ammo_flare"] = "fusée·s éclairante·s", + ["ammo_flaregun"] = "fusée·s", + + -- Weapon Tints + ["tint_default"] = "skin par défaut", + ["tint_green"] = "skin vert", + ["tint_gold"] = "skin doré", + ["tint_pink"] = "skin rose", + ["tint_army"] = "skin militaire", + ["tint_lspd"] = "skin bleu", + ["tint_orange"] = "skin orange", + ["tint_platinum"] = "skin platine", } diff --git a/[core]/es_extended/locales/he.lua b/[core]/es_extended/locales/he.lua index c2bafc991..12ebc9e5f 100644 --- a/[core]/es_extended/locales/he.lua +++ b/[core]/es_extended/locales/he.lua @@ -1,374 +1,375 @@ Locales["he"] = { - -- Inventory - ["inventory"] = "מלאי ( משקל %s / %s )", - ["use"] = "שימוש", - ["give"] = "תן", - ["remove"] = "זרוק", - ["return"] = "חזור", - ["give_to"] = "תן ל", - ["amount"] = "כמות", - ["giveammo"] = "תן תחמושת", - ["amountammo"] = "כמות תחמושת", - ["noammo"] = "אין מספיק!", - ["gave_item"] = "נתת %sx %s ל %s", - ["received_item"] = "קיבלת %sx %s מ %s", - ["gave_weapon"] = "נתת %s ל %s", - ["gave_weapon_ammo"] = "נתת ~o~%sx %s עבור %s ל %s", - ["gave_weapon_withammo"] = "נתת %s עם ~o~%sx %s ל %s", - ["gave_weapon_hasalready"] = "%s כבר יש לו %s", - ["gave_weapon_noweapon"] = "%s אין לו את הנשק", - ["received_weapon"] = "קיבלת %s מ %s", - ["received_weapon_ammo"] = "קיבלת ~o~%sx %s ל %s שלך מ %s", - ["received_weapon_withammo"] = "קיבלת %s עם ~o~%sx %s מ %s", - ["received_weapon_hasalready"] = "%s ניסה לתת לך %s, אבל כבר יש לך את הנשק הזה", - ["received_weapon_noweapon"] = "%s ניסה לתת לך תחמושת עבור %s, אבל אין לך את הנשק הזה", - ["gave_account_money"] = "נתת $%s (%s) ל %s", - ["received_account_money"] = "קיבלת $%s (%s) מ %s", - ["amount_invalid"] = "כמות לא חוקית", - ["players_nearby"] = "אין שחקנים בקרבת מקום", - ["ex_inv_lim"] = "לא ניתן לבצע פעולה, משקל מרבי של %s", - ["imp_invalid_quantity"] = "לא ניתן לבצע פעולה, הכמות לא חוקית", - ["imp_invalid_amount"] = "לא ניתן לבצע פעולה, הסכום לא חוקי", - ["threw_standard"] = "זרקת %sx %s", - ["threw_account"] = "זרקת $%s %s", - ["threw_weapon"] = "זרקת %s", - ["threw_weapon_ammo"] = "זרקת %s עם ~o~%sx %s", - ["threw_weapon_already"] = "כבר יש לך את הנשק הזה", - ["threw_cannot_pickup"] = "המלאי מלא, לא ניתן לאסוף!", - ["threw_pickup_prompt"] = "לחץ על E כדי לאסוף", - - -- Key mapping - ["keymap_showinventory"] = "הצג מלאי", - - -- Salary related - ["received_salary"] = "קיבלת שכר: $%s", - ["received_help"] = "קיבלת הוצאה לפנסיה: $%s", - ["company_nomoney"] = "החברה שאצלה אתה עובד אינה מסוגלת לשלם את השכר שלך", - ["received_paycheck"] = "קיבלת פיקדון שכר", - ["bank"] = "בנק Maze", - ["account_bank"] = "בנק", - ["account_black_money"] = "כסף מטונף", - ["account_money"] = "מזומן", - - ["act_imp"] = "לא ניתן לבצע פעולה", - ["in_vehicle"] = "לא ניתן לבצע פעולה, השחקן נמצא ברכב", - - -- Commands - ['command_bring'] = 'הבא שחקן אליך', - ['command_car'] = 'צור רכב', - ['command_car_car'] = 'דגם הרכב או הקוד', - ['command_cardel'] = 'הסר רכבים בסביבה', - ['command_cardel_radius'] = 'מסיר את כל הרכבים ברדיוס המצויין', - ['command_clear'] = 'נקה טקסט בצאט', - ['command_clearall'] = 'נקה טקסט בצאט עבור כל השחקנים', - ['command_clearinventory'] = 'הסר את כל הפריטים מהמלאי של השחקן', - ['command_clearloadout'] = 'הסר את כל הנשק מהשחקן', - ['command_freeze'] = 'הקפא שחקן', - ['command_unfreeze'] = 'בטל הקפאת שחקן', - ['command_giveaccountmoney'] = 'תן כסף לחשבון מסוים', - ['command_giveaccountmoney_account'] = 'חשבון להוספה', - ['command_giveaccountmoney_amount'] = 'סכום להוספה', - ['command_giveaccountmoney_invalid'] = 'שם חשבון לא חוקי', - ['command_removeaccountmoney'] = 'הסר כסף מחשבון מסוים', - ['command_removeaccountmoney_account'] = 'חשבון להסרה ממנו', - ['command_removeaccountmoney_amount'] = 'סכום להסרה', - ['command_removeaccountmoney_invalid'] = 'שם חשבון לא חוקי', - ['command_giveitem'] = 'תן לשחקן פריט', - ['command_giveitem_item'] = 'שם הפריט', - ['command_giveitem_count'] = 'כמות', - ['command_giveweapon'] = 'תן לשחקן נשק', - ['command_giveweapon_weapon'] = 'שם הנשק', - ['command_giveweapon_ammo'] = 'כמות תחמושת', - ['command_giveweapon_hasalready'] = 'לשחקן כבר יש את הנשק הזה', - ['command_giveweaponcomponent'] = 'תן רכיב נשק לשחקן', - ['command_giveweaponcomponent_component'] = 'שם הרכיב', - ['command_giveweaponcomponent_invalid'] = 'רכיב נשק לא חוקי', - ['command_giveweaponcomponent_hasalready'] = 'לשחקן כבר יש את הרכיב של הנשק', - ['command_giveweaponcomponent_missingweapon'] = 'לשחקן אין את הנשק הזה', - ['command_goto'] = 'העבר את עצמך לשחקן', - ['command_kill'] = 'הרוג שחקן', - ['command_save'] = 'שמור את המידע של השחקן', - ['command_saveall'] = 'שמור את המידע של כל השחקנים', - ['command_setaccountmoney'] = 'הגדר את הכסף בחשבון מסוים', - ['command_setaccountmoney_amount'] = 'סכום', - ['command_setcoords'] = 'העבר לנקודת הקואורדינטות שצוינו', - ['command_setcoords_x'] = 'ערך X', - ['command_setcoords_y'] = 'ערך Y', - ['command_setcoords_z'] = 'ערך Z', - ['command_setjob'] = 'הגדר את העבודה של השחקן', - ['command_setjob_job'] = 'שם', - ['command_setjob_grade'] = 'דרגת עבודה', - ['command_setjob_invalid'] = 'העבודה, הדרגה או שניהם לא חוקיים', - ['command_setgroup'] = 'הגדר את קבוצת ההרשאות של השחקן', - ['command_setgroup_group'] = 'שם הקבוצה', - ['commanderror_argumentmismatch'] = 'כמות הארגומנטים אינה תואמת (התקבלו %s, דרושים %s)', - ['commanderror_argumentmismatch_number'] = 'סוג הנתונים של הארגומנט #%s אינו תואם (התקבלה מחרוזת, נדרש מספר)', - ['commanderror_argumentmismatch_string'] = 'סוג הנתונים של הארגומנט #%s אינו תואם (התקבל מספר, נדרשה מחרוזת)', - ['commanderror_invaliditem'] = 'פריט לא חוקי', - ['commanderror_invalidweapon'] = 'נשק לא חוקי', - ['commanderror_console'] = 'לא ניתן לבצע את הפקודה מהקונסולה', - ['commanderror_invalidcommand'] = 'פקודה לא חוקית - /%s', - ['commanderror_invalidplayerid'] = 'השחקן שצוין אינו מחובר', - ['commandgeneric_playerid'] = 'מספר השחקן בשרת', - ['command_giveammo_noweapon_found'] = '%s אין לו את הנשק', - ['command_giveammo_weapon'] = 'שם הנשק', - ['command_giveammo_ammo'] = 'כמות תחמושת', - ['tpm_nowaypoint'] = 'לא הוגדרה נקודת דרך.', - ['tpm_success'] = 'הועברת בהצלחה', - - ['noclip_message'] = 'Noclip הופך להיות %s', - ['enabled'] = '~g~מופעל~s~', - ['disabled'] = '~r~מבוטל~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "£%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "סכין", - ["weapon_bat"] = "מקל", - ["weapon_battleaxe"] = "קרדום לחימה", - ["weapon_bottle"] = "בקבוק", - ["weapon_crowbar"] = "מפתח עגלה", - ["weapon_flashlight"] = "פנס יד", - ["weapon_golfclub"] = "מקל גולף", - ["weapon_hammer"] = "פטיש", - ["weapon_hatchet"] = "קרדום", - ["weapon_knife"] = "סכין", - ["weapon_knuckle"] = "אגרופים", - ["weapon_machete"] = "מאצ'טה", - ["weapon_nightstick"] = "מקלון", - ["weapon_wrench"] = "מפתח ברגים", - ["weapon_poolcue"] = "מקל ביליארד", - ["weapon_stone_hatchet"] = "קרדום אבן", - ["weapon_switchblade"] = "סכין מתקפלת", - - -- Handguns - ["weapon_appistol"] = "אקדח AP", - ["weapon_ceramicpistol"] = "אקדח קרמיקה", - ["weapon_combatpistol"] = "אקדח לחימה", - ["weapon_doubleaction"] = "רבולבר פעולה כפולה", - ["weapon_navyrevolver"] = "רבולבר חיל הים", - ["weapon_flaregun"] = "אקדח תותחני", - ["weapon_gadgetpistol"] = "אקדח גאדג'ט", - ["weapon_heavypistol"] = "אקדח כבד", - ["weapon_revolver"] = "רבולבר כבד", - ["weapon_revolver_mk2"] = "רבולבר כבד MK2", - ["weapon_marksmanpistol"] = "אקדח מציין", - ["weapon_pistol"] = "אקדח", - ["weapon_pistol_mk2"] = "אקדח MK2", - ["weapon_pistol50"] = "אקדח .50", - ["weapon_snspistol"] = "אקדח SNS", - ["weapon_snspistol_mk2"] = "אקדח SNS MK2", - ["weapon_stungun"] = "טייזר", - ["weapon_raypistol"] = "אקדח קרניים", - ["weapon_vintagepistol"] = "אקדח וינטג'", - - -- Shotguns - ["weapon_assaultshotgun"] = "רובה תוקף", - ["weapon_autoshotgun"] = "רובה אוטומטי", - ["weapon_bullpupshotgun"] = "רובה קטלב", - ["weapon_combatshotgun"] = "רובה לחימה", - ["weapon_dbshotgun"] = "רובה כפול", - ["weapon_heavyshotgun"] = "רובה כבד", - ["weapon_musket"] = "משקוף", - ["weapon_pumpshotgun"] = "רובה משאבה", - ["weapon_pumpshotgun_mk2"] = "רובה משאבה MK2", - ["weapon_sawnoffshotgun"] = "רובה קצוץ", - - -- SMG & LMG - ["weapon_assaultsmg"] = "SMG תוקף", - ["weapon_combatmg"] = "MG לחימה", - ["weapon_combatmg_mk2"] = "MG לחימה MK2", - ["weapon_combatpdw"] = "PDW לחימה", - ["weapon_gusenberg"] = "גוזנברג מכשיר", - ["weapon_machinepistol"] = "אקדח מכונה", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "SMG מיקרו", - ["weapon_minismg"] = "SMG מיני", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "קרבין הלל הרשע", - - -- Rifles - ["weapon_advancedrifle"] = "רובה מתקדם", - ["weapon_assaultrifle"] = "רובה תוקף", - ["weapon_assaultrifle_mk2"] = "רובה תוקף MK2", - ["weapon_bullpuprifle"] = "רובה קטלב", - ["weapon_bullpuprifle_mk2"] = "רובה קטלב MK2", - ["weapon_carbinerifle"] = "רובה קרבין", - ["weapon_carbinerifle_mk2"] = "רובה קרבין MK2", - ["weapon_compactrifle"] = "רובה קומפקטי", - ["weapon_militaryrifle"] = "רובה צבאי", - ["weapon_specialcarbine"] = "קרבין מיוחד", - ["weapon_specialcarbine_mk2"] = "קרבין מיוחד MK2", - - -- Sniper - ["weapon_heavysniper"] = "צלף כבד", - ["weapon_heavysniper_mk2"] = "צלף כבד MK2", - ["weapon_marksmanrifle"] = "רובה צלף", - ["weapon_marksmanrifle_mk2"] = "רובה צלף MK2", - ["weapon_sniperrifle"] = "רובה צלף", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "משגר קומפקטי", - ["weapon_firework"] = "משגר זיקוקים", - ["weapon_grenadelauncher"] = "משגר רימונים", - ["weapon_hominglauncher"] = "משגר חוקר", - ["weapon_minigun"] = "מיניגאן", - ["weapon_railgun"] = "רובה מסילות", - ["weapon_rpg"] = "משגר רקטות", - ["weapon_rayminigun"] = "וידוומייקר", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "חיישן מתכת", - ["weapon_precisionrifle"] = "רובה מדויק", - ["weapon_tactilerifle"] = "רובה טקטי", - - -- Thrown - ["weapon_ball"] = "כדור בייסבול", - ["weapon_bzgas"] = "גז BZ", - ["weapon_flare"] = "זיקוק", - ["weapon_grenade"] = "רימון", - ["weapon_petrolcan"] = "קנקן דלק", - ["weapon_hazardcan"] = "קנקן דלק מסוכן", - ["weapon_molotov"] = "קוקטייל מולוטוב", - ["weapon_proxmine"] = "מוקש קרבה", - ["weapon_pipebomb"] = "פצצת צנרת", - ["weapon_snowball"] = "כדור שלג", - ["weapon_stickybomb"] = "רימון דביק", - ["weapon_smokegrenade"] = "רימון עשן", - - -- Special - ["weapon_fireextinguisher"] = "מטף כיבוי", - ["weapon_digiscanner"] = "סורק דיגיטלי", - ["weapon_garbagebag"] = "שק אשפה", - ["weapon_handcuffs"] = "כאסמים", - ["gadget_nightvision"] = "משקפי ראיית לילה", - ["gadget_parachute"] = "צניחה", - - -- Weapon Components - ["component_knuckle_base"] = "דגם בסיס", - ["component_knuckle_pimp"] = "הפימפ", - ["component_knuckle_ballas"] = "הבאלס", - ["component_knuckle_dollar"] = "המרוויח", - ["component_knuckle_diamond"] = "האבן", - ["component_knuckle_hate"] = "השונא", - ["component_knuckle_love"] = "האוהב", - ["component_knuckle_player"] = "השחקן", - ["component_knuckle_king"] = "המלך", - ["component_knuckle_vagos"] = "הוואגוס", - - ["component_luxary_finish"] = "סיום מפואר", - - ["component_handle_default"] = "ידית ברירת מחדל", - ["component_handle_vip"] = "ידית VIP", - ["component_handle_bodyguard"] = "ידית שומר גוף", - - ["component_vip_finish"] = "סיום VIP", - ["component_bodyguard_finish"] = "סיום שומר גוף", - - ["component_camo_finish"] = "סיום דיגיטלי", - ["component_camo_finish2"] = "סיום ציור מברשת", - ["component_camo_finish3"] = "סיום חורשתי", - ["component_camo_finish4"] = "סיום גולגולת", - ["component_camo_finish5"] = "סיום ססנטה נובה", - ["component_camo_finish6"] = "סיום פרסאוס", - ["component_camo_finish7"] = "סיום נמר", - ["component_camo_finish8"] = "סיום זברה", - ["component_camo_finish9"] = "סיום גיאומטרי", - ["component_camo_finish10"] = "סיום פיצוץ", - ["component_camo_finish11"] = "סיום פטריוטי", - - ["component_camo_slide_finish"] = "סיום דיגיטלי שקופה", - ["component_camo_slide_finish2"] = "סיום ציור מברשת שקופה", - ["component_camo_slide_finish3"] = "סיום חורשתי שקופה", - ["component_camo_slide_finish4"] = "סיום גולגולת שקופה", - ["component_camo_slide_finish5"] = "סיום ססנטה נובה שקופה", - ["component_camo_slide_finish6"] = "סיום פרסאוס שקופה", - ["component_camo_slide_finish7"] = "סיום נמר שקופה", - ["component_camo_slide_finish8"] = "סיום זברה שקופה", - ["component_camo_slide_finish9"] = "סיום גיאומטרי שקופה", - ["component_camo_slide_finish10"] = "סיום פיצוץ שקופה", - ["component_camo_slide_finish11"] = "סיום פטריוטי שקופה", - - ["component_clip_default"] = "מחסנית ברירת מחדל", - ["component_clip_extended"] = "מחסנית מורחבת", - ["component_clip_drum"] = "מחסנית תוף", - ["component_clip_box"] = "מחסנית קופסה", - - ["component_scope_holo"] = "מכ מכוון הולוגרפי", - ["component_scope_small"] = "מכוון קטן", - ["component_scope_medium"] = "מכוון בינוני", - ["component_scope_large"] = "מכוון גדול", - ["component_scope"] = "מכוון מותקן", - ["component_scope_advanced"] = "מכוון מתקדם", - ["component_ironsights"] = "מכוון מתכת", - - ["component_suppressor"] = "משתיק", - ["component_compensator"] = "פיצוי", - - ["component_muzzle_flat"] = "קצה חלק", - ["component_muzzle_tactical"] = "קצה טקטי", - ["component_muzzle_fat"] = "קצה שמני", - ["component_muzzle_precision"] = "קצה מדויק", - ["component_muzzle_heavy"] = "קצה כבד", - ["component_muzzle_slanted"] = "קצה מוטה", - ["component_muzzle_split"] = "קצה מחולק", - ["component_muzzle_squared"] = "קצה מרובע", - - ["component_flashlight"] = "פנס", - ["component_grip"] = "ידית", - - ["component_barrel_default"] = "חילוף ברירת מחדל", - ["component_barrel_heavy"] = "חילוף כבד", - - ["component_ammo_tracer"] = "כדורי עקיבה", - ["component_ammo_incendiary"] = "כדורי שריפה", - ["component_ammo_hollowpoint"] = "כדורי ריק", - ["component_ammo_fmj"] = "כדורי FMJ", - ["component_ammo_armor"] = "כדורי פריצת שריון", - ["component_ammo_explosive"] = "כדורי שריון מבעירים", - - ["component_shells_default"] = "קליעים ברירת מחדל", - ["component_shells_incendiary"] = "קליעים של נשיפת הדרקון", - ["component_shells_armor"] = "קליעים פלדתיים", - ["component_shells_hollowpoint"] = "קליעים של הטילים", - ["component_shells_explosive"] = "קליעים מתפצלים", - - -- Weapon Ammo - ["ammo_rounds"] = "סיבוב(ים)", - ["ammo_shells"] = "קליע(ים)", - ["ammo_charge"] = "תשלום", - ["ammo_petrol"] = "גלונים של דלק", - ["ammo_firework"] = "זיקוק(ים)", - ["ammo_rockets"] = "רקטה(ות)", - ["ammo_grenadelauncher"] = "רימון(ים)", - ["ammo_grenade"] = "רימון(ים)", - ["ammo_stickybomb"] = "פצצה(ות)", - ["ammo_pipebomb"] = "פצצה(ות)", - ["ammo_smokebomb"] = "פצצה(ות)", - ["ammo_molotov"] = "קוקטייל(ים)", - ["ammo_proxmine"] = "מוקש(ים)", - ["ammo_bzgas"] = "פחית(ות)", - ["ammo_ball"] = "כדור(ים)", - ["ammo_snowball"] = "כדור שלג", - ["ammo_flare"] = "זיקוק(ים)", - ["ammo_flaregun"] = "זיקוק(ים)", - - -- Weapon Tints - ["tint_default"] = "עור ברירת מחדל", - ["tint_green"] = "עור ירוק", - ["tint_gold"] = "עור זהב", - ["tint_pink"] = "עור ורוד", - ["tint_army"] = "עור צבאי", - ["tint_lspd"] = "עור כחול", - ["tint_orange"] = "עור כתום", - ["tint_platinum"] = "עור פלטינה", + -- Inventory + ["inventory"] = "מלאי ( משקל %s / %s )", + ["use"] = "השתמש", + ["give"] = "תן", + ["remove"] = "זרוק", + ["return"] = "חזור", + ["give_to"] = "תן ל", + ["amount"] = "כמות", + ["giveammo"] = "תן תחמושת", + ["amountammo"] = "כמות תחמושת", + ["noammo"] = "לא מספיק!", + ["gave_item"] = "ניתן %sx %s ל %s", + ["received_item"] = "קיבלת %sx %s מ %s", + ["gave_weapon"] = "ניתן %s ל %s", + ["gave_weapon_ammo"] = "ניתן ~o~%sx %s ל %s ל %s", + ["gave_weapon_withammo"] = "ניתן %s עם ~o~%sx %s ל %s", + ["gave_weapon_hasalready"] = "%s כבר יש לו %s", + ["gave_weapon_noweapon"] = "%s אין לו את הנשק הזה", + ["received_weapon"] = "קיבלת %s מ %s", + ["received_weapon_ammo"] = "קיבלת ~o~%sx %s ל %s שלך מ %s", + ["received_weapon_withammo"] = "קיבלת %s עם ~o~%sx %s מ %s", + ["received_weapon_hasalready"] = "%s ניסה לתת לך %s, אך יש לך כבר נשק זה", + ["received_weapon_noweapon"] = "%s ניסה לתת לך תחמושת ל %s, אך אין לך נשק זה", + ["gave_account_money"] = "ניתן $%s (%s) ל %s", + ["received_account_money"] = "קיבלת $%s (%s) מ %s", + ["amount_invalid"] = "כמות לא חוקית", + ["players_nearby"] = "אין שחקנים קרובים", + ["ex_inv_lim"] = "לא ניתן לבצע פעולה, חורג מהמשקל המרבי של %s", + ["imp_invalid_quantity"] = "לא ניתן לבצע פעולה, הכמות אינה חוקית", + ["imp_invalid_amount"] = "לא ניתן לבצע פעולה, הסכום אינו חוקי", + ["threw_standard"] = "זורק %sx %s", + ["threw_account"] = "זורק $%s %s", + ["threw_weapon"] = "זורק %s", + ["threw_weapon_ammo"] = "זורק %s עם ~o~%sx %s", + ["threw_weapon_already"] = "כבר יש לך נשק זה", + ["threw_cannot_pickup"] = "המלאי מלא, לא ניתן לאסוף!", + ["threw_pickup_prompt"] = "לחץ E כדי לאסוף", + -- Key mapping + ["keymap_showinventory"] = "הצג מלאי", + + -- Salary related + ["received_salary"] = "קיבלת שכר: $%s", + ["received_help"] = "קיבלת הטבה: $%s", + ["company_nomoney"] = "החברה בה אתה עובד אינה יכולה לשלם לך את השכר", + ["received_paycheck"] = "קיבלת תלוש", + ["bank"] = "בנק מעץ", + ["account_bank"] = "בנק", + ["account_black_money"] = "כסף מטונף", + ["account_money"] = "מזומן", + + ["act_imp"] = "לא ניתן לבצע פעולה", + ["in_vehicle"] = "לא ניתן לבצע פעולה, השחקן ברכב", + ["not_in_vehicle"] = "לא ניתן לבצע פעולה, השחקן לא ברכב", + + -- Commands + ["command_bring"] = "הבא שחקן אליך", + ["command_car"] = "צור רכב", + ["command_car_car"] = "דגם הרכב או האש", + ["command_cardel"] = "הסר רכבים בקרבת מקום", + ["command_cardel_radius"] = "הסר את כל הרכבים ברדיוס המצוין", + ["command_repair"] = "תקן את הרכב שלך", + ["command_repair_success"] = "רכב תוקן בהצלחה", + ["command_repair_success_target"] = "אדמין תיקן לך את הרכב", + ["command_clear"] = 'נקה טקסט צ"אט', + ["command_clearall"] = 'נקה טקסט צ"אט לכל השחקנים', + ["command_clearinventory"] = "הסר את כל הפריטים מהמלאי של השחקן", + ["command_clearloadout"] = "הסר את כל הנשקים מהשחקן", + ["command_freeze"] = "הקפא שחקן", + ["command_unfreeze"] = "בטל הקפאה של שחקן", + ["command_giveaccountmoney"] = "תן כסף לחשבון מסוים", + ["command_giveaccountmoney_account"] = "חשבון להוספה", + ["command_giveaccountmoney_amount"] = "כמות להוספה", + ["command_giveaccountmoney_invalid"] = "שם חשבון לא חוקי", + ["command_removeaccountmoney"] = "הסר כסף מחשבון מסוים", + ["command_removeaccountmoney_account"] = "חשבון להסרה ממנו", + ["command_removeaccountmoney_amount"] = "כמות להסרה", + ["command_removeaccountmoney_invalid"] = "שם חשבון לא חוקי", + ["command_giveitem"] = "תן לשחקן פריט", + ["command_giveitem_item"] = "שם הפריט", + ["command_giveitem_count"] = "כמות", + ["command_giveweapon"] = "תן לשחקן נשק", + ["command_giveweapon_weapon"] = "שם הנשק", + ["command_giveweapon_ammo"] = "כמות תחמושת", + ["command_giveweapon_hasalready"] = "לשחקן כבר יש נשק זה", + ["command_giveweaponcomponent"] = "תן רכיב נשק לשחקן", + ["command_giveweaponcomponent_component"] = "שם הרכיב", + ["command_giveweaponcomponent_invalid"] = "רכיב נשק לא חוקי", + ["command_giveweaponcomponent_hasalready"] = "לשחקן כבר יש רכיב נשק זה", + ["command_giveweaponcomponent_missingweapon"] = "לשחקן אין נשק זה", + ["command_goto"] = "התעבר אל שחקן", + ["command_kill"] = "הרוג שחקן", + ["command_save"] = "שמור נתונים של שחקן בכפיה", + ["command_saveall"] = "שמור נתונים של כל השחקנים", + ["command_setaccountmoney"] = "קבע כמות כסף בחשבון מסוים", + ["command_setaccountmoney_amount"] = "כמות כסף להגדרה", + ["command_setcoords"] = "התעבר לקואורדינטות מסוימות", + ["command_setcoords_x"] = "ערך x", + ["command_setcoords_y"] = "ערך y", + ["command_setcoords_z"] = "ערך z", + ["command_setjob"] = "קבע משרה לשחקן", + ["command_setjob_job"] = "שם המשרה", + ["command_setjob_grade"] = "דרגת המשרה", + ["command_setjob_invalid"] = "המשרה, הדרגה או שניהם אינם חוקיים", + ["command_setgroup"] = "קבע קבוצת הרשאות לשחקן", + ["command_setgroup_group"] = "שם קבוצת הפקודות", + ["commanderror_argumentmismatch"] = "כמות וסוגי הארגומנטים אינם תואמים (נשלח %s, נדרש %s)", + ["commanderror_argumentmismatch_number"] = "טיפוס ארגומנט #%s לא תקין (נשלח מחרוזת, נדרש מספר)", + ["commanderror_argumentmismatch_string"] = "טיפוס ארגומנט #%s לא תקין (נשלח מספר, נדרש מחרוזת)", + ["commanderror_invaliditem"] = "שם פריט לא חוקי", + ["commanderror_invalidweapon"] = "נשק לא חוקי", + ["commanderror_console"] = "לא ניתן להפעיל פקודה מהקונסול", + ["commanderror_invalidcommand"] = "פקודה לא חוקית - /%s", + ["commanderror_invalidplayerid"] = "אין שחקן עם מזהה זה מחובר", + ["commandgeneric_playerid"] = "מזהה השחקן בשרת", + ["command_giveammo_noweapon_found"] = "ל-%s אין נשק כזה", + ["command_giveammo_weapon"] = "שם הנשק", + ["command_giveammo_ammo"] = "כמות תחמושת", + ["tpm_nowaypoint"] = "אין נקודת דרך מוגדרת", + ["tpm_success"] = "הועברת בהצלחה", + + ["noclip_message"] = "מצב Noclip %s", + ["enabled"] = "~g~מאופשר~s~", + ["disabled"] = "~r~מנוטרל~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "₪%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "סכין", + ["weapon_bat"] = "כותרת", + ["weapon_battleaxe"] = "גרזן קרב", + ["weapon_bottle"] = "בקבוק", + ["weapon_crowbar"] = "מפתח ברזל", + ["weapon_flashlight"] = "פנס יד", + ["weapon_golfclub"] = "מקל גולף", + ["weapon_hammer"] = "פטיש", + ["weapon_hatchet"] = "גרזן", + ["weapon_knife"] = "סכין", + ["weapon_knuckle"] = "עצמאות", + ["weapon_machete"] = 'מאצ"טה', + ["weapon_nightstick"] = "מקל לילה", + ["weapon_wrench"] = "מפתח אינגליזי", + ["weapon_poolcue"] = "מקל בריכה", + ["weapon_stone_hatchet"] = "גרזן אבן", + ["weapon_switchblade"] = "סכין קפיצית", + -- Handguns + ["weapon_appistol"] = "אקדח AP", + ["weapon_ceramicpistol"] = "אקדח קרמי", + ["weapon_combatpistol"] = "אקדח קרב", + ["weapon_doubleaction"] = "רבולבר פעולה כפולה", + ["weapon_navyrevolver"] = "רבולבר צי", + ["weapon_flaregun"] = "אקדח זיקוקים", + ["weapon_gadgetpistol"] = "אקדח חומרה", + ["weapon_heavypistol"] = "אקדח כבד", + ["weapon_revolver"] = "רבולבר כבד", + ["weapon_revolver_mk2"] = "רבולבר כבד MK2", + ["weapon_marksmanpistol"] = "אקדח צלף", + ["weapon_pistol"] = "אקדח", + ["weapon_pistol_mk2"] = "אקדח MK2", + ["weapon_pistol50"] = "אקדח .50", + ["weapon_snspistol"] = "אקדח SNS", + ["weapon_snspistol_mk2"] = "אקדח SNS MK2", + ["weapon_stungun"] = "טייזר", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "אקדח וינטג", + + -- Shotguns + ["weapon_assaultshotgun"] = "רובה סטורם", + ["weapon_autoshotgun"] = "רובה אוטומטי", + ["weapon_bullpupshotgun"] = "רובה Bullpup", + ["weapon_combatshotgun"] = "רובה קרב", + ["weapon_dbshotgun"] = "רובה קנה כפול", + ["weapon_heavyshotgun"] = "רובה כבד", + ["weapon_musket"] = "רובה חלילי", + ["weapon_pumpshotgun"] = "רובה פומפה", + ["weapon_pumpshotgun_mk2"] = "רובה פומפה MK2", + ["weapon_sawnoffshotgun"] = "רובה חתוך", + + -- SMG & LMG + ["weapon_assaultsmg"] = "רובה סטורם SMG", + ["weapon_combatmg"] = "רובה סטורם MG", + ["weapon_combatmg_mk2"] = "רובה סטורם MG MK2", + ["weapon_combatpdw"] = "רובה סטורם PDW", + ["weapon_gusenberg"] = "רובה גוזנברג", + ["weapon_machinepistol"] = "אקדח מכונה", + ["weapon_mg"] = "רובה מכונה", + ["weapon_microsmg"] = "רובה מכונה מיקרו", + ["weapon_minismg"] = "רובה מכונה מיני", + ["weapon_smg"] = "רובה מכונה", + ["weapon_smg_mk2"] = "רובה מכונה MK2", + ["weapon_raycarbine"] = "רובה אור", + -- Rifles + ["weapon_advancedrifle"] = "רובה מתקדם", + ["weapon_assaultrifle"] = "רובה סטורם", + ["weapon_assaultrifle_mk2"] = "רובה סטורם MK2", + ["weapon_bullpuprifle"] = "רובה Bullpup", + ["weapon_bullpuprifle_mk2"] = "רובה Bullpup MK2", + ["weapon_carbinerifle"] = "רובה קרבין", + ["weapon_carbinerifle_mk2"] = "רובה קרבין MK2", + ["weapon_compactrifle"] = "רובה קומפקטי", + ["weapon_militaryrifle"] = "רובה צבאי", + ["weapon_specialcarbine"] = "רובה קרבין מיוחד", + ["weapon_specialcarbine_mk2"] = "רובה קרבין מיוחד MK2", + ["weapon_heavyrifle"] = "רובה כבד", + + -- Sniper + ["weapon_heavysniper"] = "רובה צלפים כבד", + ["weapon_heavysniper_mk2"] = "רובה צלפים כבד MK2", + ["weapon_marksmanrifle"] = "רובה צלפים", + ["weapon_marksmanrifle_mk2"] = "רובה צלפים MK2", + ["weapon_sniperrifle"] = "רובה צלפים", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "משגר קומפקטי", + ["weapon_firework"] = "משגר זיקוקים", + ["weapon_grenadelauncher"] = "משגר רימונים", + ["weapon_hominglauncher"] = "משגר חפצים", + ["weapon_minigun"] = "מיניגן", + ["weapon_railgun"] = "רובה רכבת", + ["weapon_rpg"] = "משגר רקטות", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "גלאי מתכות", + ["weapon_precisionrifle"] = "רובה דיוק", + ["weapon_tactilerifle"] = "רובה טקטילי", + + -- Drug wars dlc + ["weapon_candycane"] = "מקל סוכר", + ["weapon_acidpackage"] = "חומצה", + ["weapon_pistolxm3"] = "אקדח xm3", + ["weapon_railgunxm3"] = "רובה רכבת xm3", + -- Thrown + ["weapon_ball"] = "כדור בייסבול", + ["weapon_bzgas"] = "גז BZ", + ["weapon_flare"] = "זיקוק", + ["weapon_grenade"] = "רימון", + ["weapon_petrolcan"] = "גררון דלק", + ["weapon_hazardcan"] = "גררון מסוכן", + ["weapon_molotov"] = "קוקטייל מולוטוב", + ["weapon_proxmine"] = "מוקש קרבה", + ["weapon_pipebomb"] = "פצצת צינור", + ["weapon_snowball"] = "כדור שלג", + ["weapon_stickybomb"] = "פצצה דביקה", + ["weapon_smokegrenade"] = "גז דמעות", + + -- Special + ["weapon_fireextinguisher"] = "מטף כיבוי", + ["weapon_digiscanner"] = "סורק דיגיטלי", + ["weapon_garbagebag"] = "שקית זבל", + ["weapon_handcuffs"] = "כפפות", + ["gadget_nightvision"] = "ראיה לילית", + ["gadget_parachute"] = "צניחה", + + -- Weapon Components + ["component_knuckle_base"] = "דגם בסיסי", + ["component_knuckle_pimp"] = "הפימפ", + ["component_knuckle_ballas"] = "הבאלס", + ["component_knuckle_dollar"] = "ההאסטלר", + ["component_knuckle_diamond"] = "הרוק", + ["component_knuckle_hate"] = "השונא", + ["component_knuckle_love"] = "האוהב", + ["component_knuckle_player"] = "השחקן", + ["component_knuckle_king"] = "המלך", + ["component_knuckle_vagos"] = "הואגוס", + ["component_luxary_finish"] = "גימור מפואר", + + ["component_handle_default"] = "ידית רגילה", + ["component_handle_vip"] = "ידית VIP", + ["component_handle_bodyguard"] = "ידית שומר גוף", + + ["component_vip_finish"] = "גימור VIP", + ["component_bodyguard_finish"] = "גימור שומר גוף", + + ["component_camo_finish"] = "צפיעה דיגיטלית", + ["component_camo_finish2"] = "צפיעה צבעים מעורבים", + ["component_camo_finish3"] = "צפיעה יערותית", + ["component_camo_finish4"] = "צפיעה גולגולת", + ["component_camo_finish5"] = "צפיעה Sessanta Nove", + ["component_camo_finish6"] = "צפיעה Perseus", + ["component_camo_finish7"] = "צפיעה נמרים", + ["component_camo_finish8"] = "צפיעה זברה", + ["component_camo_finish9"] = "צפיעה גיאומטרית", + ["component_camo_finish10"] = "צפיעה Boom", + ["component_camo_finish11"] = "צפיעה פטריוטית", + + ["component_camo_slide_finish"] = "צפיעה דיגיטלית למחצלה", + ["component_camo_slide_finish2"] = "צפיעה צבעים מעורבים למחצלה", + ["component_camo_slide_finish3"] = "צפיעה יערותית למחצלה", + ["component_camo_slide_finish4"] = "צפיעה גולגולת למחצלה", + ["component_camo_slide_finish5"] = "צפיעה Sessanta Nove למחצלה", + ["component_camo_slide_finish6"] = "צפיעה Perseus למחצלה", + ["component_camo_slide_finish7"] = "צפיעה נמרים למחצלה", + ["component_camo_slide_finish8"] = "צפיעה זברה למחצלה", + ["component_camo_slide_finish9"] = "צפיעה גיאומטרית למחצלה", + ["component_camo_slide_finish10"] = "צפיעה Boom למחצלה", + ["component_camo_slide_finish11"] = "צפיעה פטריוטית למחצלה", + ["component_clip_default"] = "מחצירה רגילה", + ["component_clip_extended"] = "מחצירה מורחבת", + ["component_clip_drum"] = "מחצירה תוף", + ["component_clip_box"] = "מחצירה קופסה", + + ["component_scope_holo"] = "כוונת הולוגרפית", + ["component_scope_small"] = "כוונת קטנה", + ["component_scope_medium"] = "כוונת בינונית", + ["component_scope_large"] = "כוונת גדולה", + ["component_scope"] = "כוונת מותקנת", + ["component_scope_advanced"] = "כוונת מתקדמת", + ["component_ironsights"] = "כוונת ברזל", + + ["component_suppressor"] = "מרגיע", + ["component_compensator"] = "פיצוי", + + ["component_muzzle_flat"] = "מרסור שטוח", + ["component_muzzle_tactical"] = "מרסור טקטי", + ["component_muzzle_fat"] = "מרסור עגלגל", + ["component_muzzle_precision"] = "מרסור מדויק", + ["component_muzzle_heavy"] = "מרסור כבד", + ["component_muzzle_slanted"] = "מרסור מוטה", + ["component_muzzle_split"] = "מרסור פצול", + ["component_muzzle_squared"] = "מרסור מרובע", + + ["component_flashlight"] = "פנס", + ["component_grip"] = "אחיזה", + + ["component_barrel_default"] = "עצם רגיל", + ["component_barrel_heavy"] = "עצם כבד", + + ["component_ammo_tracer"] = "כדורים עקובים", + ["component_ammo_incendiary"] = "כדורים מדליקים", + ["component_ammo_hollowpoint"] = "כדורים חדים", + ["component_ammo_fmj"] = "כדורים FMJ", + ["component_ammo_armor"] = "כדורים חודרי משרוע", + ["component_ammo_explosive"] = "כדורים חודרי משרוע מדליקים", + + ["component_shells_default"] = "גלעינים רגילים", + ["component_shells_incendiary"] = "גלעינים מדליקים", + ["component_shells_armor"] = "גלעינים פלדלים", + ["component_shells_hollowpoint"] = "גלעינים חדים", + ["component_shells_explosive"] = "גלעינים מתפוצצים", + + -- Weapon Ammo + ["ammo_rounds"] = "כדור(ים)", + ["ammo_shells"] = "גלעין(ים)", + ["ammo_charge"] = "טעינה", + ["ammo_petrol"] = "גלונים של דלק", + ["ammo_firework"] = "זיקוק(ים)", + ["ammo_rockets"] = "טיל(ים)", + ["ammo_grenadelauncher"] = "רימון(ים)", + ["ammo_grenade"] = "רימון(ים)", + ["ammo_stickybomb"] = "פצצה/ות", + ["ammo_pipebomb"] = "פצצה/ות", + ["ammo_smokebomb"] = "פצצה/ות", + ["ammo_molotov"] = "קוקטייל(ים)", + ["ammo_proxmine"] = "מוקש/ים", + ["ammo_bzgas"] = "פח/ית", + ["ammo_ball"] = "כדור/ים", + ["ammo_snowball"] = "כדור/ים שלג", + ["ammo_flare"] = "זיקוק/ים", + ["ammo_flaregun"] = "זיקוק/ים", + + -- Weapon Tints + ["tint_default"] = "צבע רגיל", + ["tint_green"] = "צבע ירוק", + ["tint_gold"] = "צבע זהב", + ["tint_pink"] = "צבע ורוד", + ["tint_army"] = "צבע צבאי", + ["tint_lspd"] = "צבע כחול", + ["tint_orange"] = "צבע כתום", + ["tint_platinum"] = "צבע פלטינה", } - - - - diff --git a/[core]/es_extended/locales/hu.lua b/[core]/es_extended/locales/hu.lua index 02feb4ed6..6971d6623 100644 --- a/[core]/es_extended/locales/hu.lua +++ b/[core]/es_extended/locales/hu.lua @@ -1,381 +1,381 @@ Locales["hu"] = { - -- Inventory - ["inventory"] = "Inventory ( Súly %s / %s )", - ["use"] = "Használ", - ["give"] = "Átad", - ["remove"] = "Eldob", - ["return"] = "Visszatérés", - ["give_to"] = "Adni valakinek", - ["amount"] = "Mennyiség", - ["giveammo"] = "Lőszer adás", - ["amountammo"] = "Lőszer mennyiség", - ["noammo"] = "Nincsen több lövedéked!", - ["gave_item"] = "Átadtál: %sx %s neki: %s", - ["received_item"] = "Kaptál: %sx %s töle: %s", - ["gave_weapon"] = "Átadtál: %s neki: %s", - ["gave_weapon_ammo"] = "Átadtál ~o~%sx %s %s neki: %s", - ["gave_weapon_withammo"] = "Átadtál %s ~o~%sx %s neki: %s", - ["gave_weapon_hasalready"] = "%s már rendelkezik %s", - ["gave_weapon_noweapon"] = "%s nincsen ilyen fegyere", - ["received_weapon"] = "Kaptál: %s töle: %s", - ["received_weapon_ammo"] = "Kaptál ~o~%sx %s %s töle: %s", - ["received_weapon_withammo"] = "Kaptál %s ~o~%sx %s töle: %s", - ["received_weapon_hasalready"] = "%s megpróbálta átadni a következöt: %s, nem már van rendelkezel egy ilyennel", - ["received_weapon_noweapon"] = "%s átakart adni %s, de nincsen ilyen fegyvered", - ["gave_account_money"] = "Átadtál: $%s (%s) neki: %s", - ["received_account_money"] = "Kaptál: $%s (%s) töle: %s", - ["amount_invalid"] = "Érvénytelen mennyiség", - ["players_nearby"] = "Nincsen játékos a közeledben", - ["ex_inv_lim"] = "Nincsen elég szabad helyed %s", - ["imp_invalid_quantity"] = "Érvénytelen mennyiség", - ["imp_invalid_amount"] = "Érvénytelen összeg", - ["threw_standard"] = "Kidobtál: %sx %s", - ["threw_account"] = "Kidobtál: $%s %s", - ["threw_weapon"] = "Kidobtál: %s", - ["threw_weapon_ammo"] = "Kidobtál: %s ~o~%sx %s", - ["threw_weapon_already"] = "Van már ilyen fegyvered", - ["threw_cannot_pickup"] = "Nincsen elég szabad helyed", - ["threw_pickup_prompt"] = "E hogy felvedd", - - -- Key mapping - ["keymap_showinventory"] = "Leltár mutatása", - - -- Salary related - ["received_salary"] = "Megkaptad a fizetésed: $%s", - ["received_help"] = "Megkaptad a segélyt: $%s", - ["company_nomoney"] = "Nem kaptál fizetést, mert a frakciónak nincs elég pénze!", - ["received_paycheck"] = "Fizetésed érkezett!", - ["bank"] = "maze Bank", - ["account_bank"] = "bank", - ["account_black_money"] = "Piszkos pénz", - ["account_money"] = "Készpénz", - - ["act_imp"] = "Érvénytelen mennyiség", - ["in_vehicle"] = "Nem tudod átadni, mivel benne ül a jármüben", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ["command_bring"] = "Játékos magadhoz teleportálása", - ["command_car"] = "Jármű lehívása", - ["command_car_car"] = "Jármű név vagy hash", - ["command_cardel"] = "Közeli járművek törlése", - ["command_cardel_radius"] = "Megadott radiusban lévő járművek törlése", - ["command_repair"] = "Repair your vehicle", - ["command_repair_success"] = "Successfully repaired vehicle", - ["command_repair_success_target"] = "An admin repaired your vehicle", - ["command_clear"] = "Chat ürítése", - ["command_clearall"] = "Chat ürítése minden játékosnál", - ["command_clearinventory"] = "Minden tárgy törlése a játékos inventoryból", - ["command_clearloadout"] = "Minden fegyver elvétele a játékostól", - ["command_freeze"] = "Játékos fagyasztá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", - ["command_giveaccountmoney_invalid"] = "Megadott típus hibás", - ["command_giveitem"] = "Tárgy adás a játékosnak", - ["command_giveitem_item"] = "Tárgy neve", - ["command_giveitem_count"] = "Mennyiség", - ["command_giveweapon"] = "Fegyver adás játékosnak", - ["command_giveweapon_weapon"] = "Fegyver neve", - ["command_giveweapon_ammo"] = "Lőszer mennyiség", - ["command_giveweapon_hasalready"] = "Játékosnak már van ilyen fegyvere", - ["command_giveweaponcomponent"] = "Fegyver kiegészítő adás a játékosnak", - ["command_giveweaponcomponent_component"] = "Kiegészítő neve", - ["command_giveweaponcomponent_invalid"] = "Érvénytelen fegyver kiegészítő", - ["command_giveweaponcomponent_hasalready"] = "Játékosnak már van ilyen fegyver kiegészítője", - ["command_giveweaponcomponent_missingweapon"] = "Játékosnak nincs ilyen fegyvere", - ["command_goto"] = "Teleportálás játékoshoz", - ["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", - ["command_setaccountmoney_amount"] = "Mennyiség", - ["command_setcoords"] = "Teleportálás megadott kordinátára", - ["command_setcoords_x"] = "X érték", - ["command_setcoords_y"] = "Y érték", - ["command_setcoords_z"] = "Z érték", - ["command_setjob"] = "Játékos munkájának beállítása", - ["command_setjob_job"] = "Munka neve", - ["command_setjob_grade"] = "Rang", - ["command_setjob_invalid"] = "Munka név vagy rang érvénytelen", - ["command_setgroup"] = "Játékos jogosultsági csoportjának beállítása", - ["command_setgroup_group"] = "Csoport neve", - ["commanderror_argumentmismatch"] = "Érvénytelen argumentumszám (%s megadva, %s szükséges)", - ["commanderror_argumentmismatch_number"] = "Érvénytelen argumentum #%s adat típus (szöveg megadva, szám szükséges)", - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ["commanderror_invaliditem"] = "Érvénytelen tárgy", - ["commanderror_invalidweapon"] = "Érvénytelen fegyver", - ["commanderror_console"] = "Parancs nem használható konzolból", - ["commanderror_invalidcommand"] = "Érvénytelen parancs - /%s", - ["commanderror_invalidplayerid"] = "Megadott játékos nem online.", - ["commandgeneric_playerid"] = "Játékos Szerver Id", - ["command_giveammo_noweapon_found"] = "Nincs ilyen fegyvered: %s", - ["command_giveammo_weapon"] = "Fegyver név", - ["command_giveammo_ammo"] = "Lőszer mennyiség", - ["tpm_nowaypoint"] = "Nincs kijelölve pozíció!", - ["tpm_success"] = "Sikeres teleportálás", - - ["noclip_message"] = "Noclip %s", - ["enabled"] = "~g~engedélyezve~s~", - ["disabled"] = "~r~letiltva~s~", - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "$%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dagger", - ["weapon_bat"] = "Bat", - ["weapon_battleaxe"] = "Battle Axe", - ["weapon_bottle"] = "Bottle", - ["weapon_crowbar"] = "Crowbar", - ["weapon_flashlight"] = "Flashlight", - ["weapon_golfclub"] = "Golf Club", - ["weapon_hammer"] = "Hammer", - ["weapon_hatchet"] = "Hatchet", - ["weapon_knife"] = "Knife", - ["weapon_knuckle"] = "Knuckledusters", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Nightstick", - ["weapon_wrench"] = "Pipe Wrench", - ["weapon_poolcue"] = "Pool Cue", - ["weapon_stone_hatchet"] = "Stone Hatchet", - ["weapon_switchblade"] = "Switchblade", - - -- Handguns - ["weapon_appistol"] = "AP Pistol", - ["weapon_ceramicpistol"] = "Ceramic Pistol", - ["weapon_combatpistol"] = "Combat Pistol", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadget Pistol", - ["weapon_heavypistol"] = "Heavy Pistol", - ["weapon_revolver"] = "Heavy Revolver", - ["weapon_revolver_mk2"] = "Heavy Revolver MK2", - ["weapon_marksmanpistol"] = "Marksman Pistol", - ["weapon_pistol"] = "Pistol", - ["weapon_pistol_mk2"] = "Pistol MK2", - ["weapon_pistol50"] = "Pistol .50", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistol", - - -- Shotguns - ["weapon_assaultshotgun"] = "Assault Shotgun", - ["weapon_autoshotgun"] = "Auto Shotgun", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Combat Shotgun", - ["weapon_dbshotgun"] = "Double Barrel Shotgun", - ["weapon_heavyshotgun"] = "Heavy Shotgun", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pump Shotgun", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Assault SMG", - ["weapon_combatmg"] = "Combat MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Machine Pistol", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unholy Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Advanced Rifle", - ["weapon_assaultrifle"] = "Assault Rifle", - ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", - ["weapon_bullpuprifle"] = "Bullpup Rifle", - ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", - ["weapon_carbinerifle"] = "Carbine Rifle", - ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", - ["weapon_compactrifle"] = "Compact Rifle", - ["weapon_militaryrifle"] = "Military Rifle", - ["weapon_specialcarbine"] = "Special Carbine", - ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - - -- Sniper - ["weapon_heavysniper"] = "Heavy Sniper", - ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", - ["weapon_marksmanrifle"] = "Marksman Rifle", - ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", - ["weapon_sniperrifle"] = "Sniper Rifle", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Compact Launcher", - ["weapon_firework"] = "Firework Launcher", - ["weapon_grenadelauncher"] = "Grenade Launcher", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Rocket Launcher", - ["weapon_rayminigun"] = "Widowmaker", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Fémkereső", - ["weapon_precisionrifle"] = "Precision Rifle", - ["weapon_tactilerifle"] = "Service Carbine", - - -- 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 - - -- Thrown - ["weapon_ball"] = "Baseball", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Grenade", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Hazardous Jerrycan", - ["weapon_molotov"] = "Molotov Cocktail", - ["weapon_proxmine"] = "Proximity Mine", - ["weapon_pipebomb"] = "Pipe Bomb", - ["weapon_snowball"] = "Snowball", - ["weapon_stickybomb"] = "Sticky Bomb", - ["weapon_smokegrenade"] = "Tear Gas", - - -- Special - ["weapon_fireextinguisher"] = "Fire Extinguisher", - ["weapon_digiscanner"] = "Digital Scanner", - ["weapon_garbagebag"] = "Garbage Bag", - ["weapon_handcuffs"] = "Handcuffs", - ["gadget_nightvision"] = "Night Vision", - ["gadget_parachute"] = "parachute", - - -- Weapon Components - ["component_knuckle_base"] = "base Model", - ["component_knuckle_pimp"] = "the Pimp", - ["component_knuckle_ballas"] = "the Ballas", - ["component_knuckle_dollar"] = "the Hustler", - ["component_knuckle_diamond"] = "the Rock", - ["component_knuckle_hate"] = "the Hater", - ["component_knuckle_love"] = "the Lover", - ["component_knuckle_player"] = "the Player", - ["component_knuckle_king"] = "the King", - ["component_knuckle_vagos"] = "the Vagos", - - ["component_luxary_finish"] = "luxary Weapon Finish", - - ["component_handle_default"] = "default Handle", - ["component_handle_vip"] = "vIP Handle", - ["component_handle_bodyguard"] = "bodyguard Handle", - - ["component_vip_finish"] = "vIP Finish", - ["component_bodyguard_finish"] = "bodyguard Finish", - - ["component_camo_finish"] = "digital Camo", - ["component_camo_finish2"] = "brushstroke Camo", - ["component_camo_finish3"] = "woodland Camo", - ["component_camo_finish4"] = "skull Camo", - ["component_camo_finish5"] = "sessanta Nove Camo", - ["component_camo_finish6"] = "perseus Camo", - ["component_camo_finish7"] = "leopard Camo", - ["component_camo_finish8"] = "zebra Camo", - ["component_camo_finish9"] = "geometric Camo", - ["component_camo_finish10"] = "boom Camo", - ["component_camo_finish11"] = "patriotic Camo", - - ["component_camo_slide_finish"] = "digital Slide Camo", - ["component_camo_slide_finish2"] = "brushstroke Slide Camo", - ["component_camo_slide_finish3"] = "woodland Slide Camo", - ["component_camo_slide_finish4"] = "skull Slide Camo", - ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", - ["component_camo_slide_finish6"] = "perseus Slide Camo", - ["component_camo_slide_finish7"] = "leopard Slide Camo", - ["component_camo_slide_finish8"] = "zebra Slide Camo", - ["component_camo_slide_finish9"] = "geometric Slide Camo", - ["component_camo_slide_finish10"] = "boom Slide Camo", - ["component_camo_slide_finish11"] = "patriotic Slide Camo", - - ["component_clip_default"] = "default Magazine", - ["component_clip_extended"] = "extended Magazine", - ["component_clip_drum"] = "drum Magazine", - ["component_clip_box"] = "box Magazine", - - ["component_scope_holo"] = "holographic Scope", - ["component_scope_small"] = "small Scope", - ["component_scope_medium"] = "medium Scope", - ["component_scope_large"] = "large Scope", - ["component_scope"] = "mounted Scope", - ["component_scope_advanced"] = "advanced Scope", - ["component_ironsights"] = "ironsights", - - ["component_suppressor"] = "suppressor", - ["component_compensator"] = "compensator", - - ["component_muzzle_flat"] = "flat Muzzle Brake", - ["component_muzzle_tactical"] = "tactical Muzzle Brake", - ["component_muzzle_fat"] = "fat-End Muzzle Brake", - ["component_muzzle_precision"] = "precision Muzzle Brake", - ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", - ["component_muzzle_slanted"] = "slanted Muzzle Brake", - ["component_muzzle_split"] = "split-End Muzzle Brake", - ["component_muzzle_squared"] = "squared Muzzle Brake", - - ["component_flashlight"] = "flashlight", - ["component_grip"] = "grip", - - ["component_barrel_default"] = "default Barrel", - ["component_barrel_heavy"] = "heavy Barrel", - - ["component_ammo_tracer"] = "tracer Ammo", - ["component_ammo_incendiary"] = "incendiary Ammo", - ["component_ammo_hollowpoint"] = "hollowpoint Ammo", - ["component_ammo_fmj"] = "fMJ Ammo", - ["component_ammo_armor"] = "armor Piercing Ammo", - ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", - - ["component_shells_default"] = "default Shells", - ["component_shells_incendiary"] = "dragons Breath Shells", - ["component_shells_armor"] = "steel Buckshot Shells", - ["component_shells_hollowpoint"] = "flechette Shells", - ["component_shells_explosive"] = "explosive Slug Shells", - - -- Weapon Ammo - ["ammo_rounds"] = "round(s)", - ["ammo_shells"] = "shell(s)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "gallons of fuel", - ["ammo_firework"] = "firework(s)", - ["ammo_rockets"] = "rocket(s)", - ["ammo_grenadelauncher"] = "grenade(s)", - ["ammo_grenade"] = "grenade(s)", - ["ammo_stickybomb"] = "bomb(s)", - ["ammo_pipebomb"] = "bomb(s)", - ["ammo_smokebomb"] = "bomb(s)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mine(s)", - ["ammo_bzgas"] = "can(s)", - ["ammo_ball"] = "ball(s)", - ["ammo_snowball"] = "snowball(s)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "default skin", - ["tint_green"] = "green skin", - ["tint_gold"] = "gold skin", - ["tint_pink"] = "pink skin", - ["tint_army"] = "army skin", - ["tint_lspd"] = "blue skin", - ["tint_orange"] = "orange skin", - ["tint_platinum"] = "platinum skin", - - -- Duty related - ["stopped_duty"] = "Leadtad a szolgálatot.", - ["started_duty"] = "Szolgálatba álltál.", + -- Inventory + ["inventory"] = "Inventory ( Súly %s / %s )", + ["use"] = "Használ", + ["give"] = "Átad", + ["remove"] = "Eldob", + ["return"] = "Visszatérés", + ["give_to"] = "Adni valakinek", + ["amount"] = "Mennyiség", + ["giveammo"] = "Lőszer adás", + ["amountammo"] = "Lőszer mennyiség", + ["noammo"] = "Nincsen több lövedéked!", + ["gave_item"] = "Átadtál: %sx %s neki: %s", + ["received_item"] = "Kaptál: %sx %s töle: %s", + ["gave_weapon"] = "Átadtál: %s neki: %s", + ["gave_weapon_ammo"] = "Átadtál ~o~%sx %s %s neki: %s", + ["gave_weapon_withammo"] = "Átadtál %s ~o~%sx %s neki: %s", + ["gave_weapon_hasalready"] = "%s már rendelkezik %s", + ["gave_weapon_noweapon"] = "%s nincsen ilyen fegyere", + ["received_weapon"] = "Kaptál: %s töle: %s", + ["received_weapon_ammo"] = "Kaptál ~o~%sx %s %s töle: %s", + ["received_weapon_withammo"] = "Kaptál %s ~o~%sx %s töle: %s", + ["received_weapon_hasalready"] = "%s megpróbálta átadni a következöt: %s, nem már van rendelkezel egy ilyennel", + ["received_weapon_noweapon"] = "%s átakart adni %s, de nincsen ilyen fegyvered", + ["gave_account_money"] = "Átadtál: $%s (%s) neki: %s", + ["received_account_money"] = "Kaptál: $%s (%s) töle: %s", + ["amount_invalid"] = "Érvénytelen mennyiség", + ["players_nearby"] = "Nincsen játékos a közeledben", + ["ex_inv_lim"] = "Nincsen elég szabad helyed %s", + ["imp_invalid_quantity"] = "Érvénytelen mennyiség", + ["imp_invalid_amount"] = "Érvénytelen összeg", + ["threw_standard"] = "Kidobtál: %sx %s", + ["threw_account"] = "Kidobtál: $%s %s", + ["threw_weapon"] = "Kidobtál: %s", + ["threw_weapon_ammo"] = "Kidobtál: %s ~o~%sx %s", + ["threw_weapon_already"] = "Van már ilyen fegyvered", + ["threw_cannot_pickup"] = "Nincsen elég szabad helyed", + ["threw_pickup_prompt"] = "E hogy felvedd", + + -- Key mapping + ["keymap_showinventory"] = "Leltár mutatása", + + -- Salary related + ["received_salary"] = "Megkaptad a fizetésed: $%s", + ["received_help"] = "Megkaptad a segélyt: $%s", + ["company_nomoney"] = "Nem kaptál fizetést, mert a frakciónak nincs elég pénze!", + ["received_paycheck"] = "Fizetésed érkezett!", + ["bank"] = "maze Bank", + ["account_bank"] = "bank", + ["account_black_money"] = "Piszkos pénz", + ["account_money"] = "Készpénz", + + ["act_imp"] = "Érvénytelen mennyiség", + ["in_vehicle"] = "Nem tudod átadni, mivel benne ül a jármüben", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "Játékos magadhoz teleportálása", + ["command_car"] = "Jármű lehívása", + ["command_car_car"] = "Jármű név vagy hash", + ["command_cardel"] = "Közeli járművek törlése", + ["command_cardel_radius"] = "Megadott radiusban lévő járművek törlése", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Chat ürítése", + ["command_clearall"] = "Chat ürítése minden játékosnál", + ["command_clearinventory"] = "Minden tárgy törlése a játékos inventoryból", + ["command_clearloadout"] = "Minden fegyver elvétele a játékostól", + ["command_freeze"] = "Játékos fagyasztá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", + ["command_giveaccountmoney_invalid"] = "Megadott típus hibás", + ["command_giveitem"] = "Tárgy adás a játékosnak", + ["command_giveitem_item"] = "Tárgy neve", + ["command_giveitem_count"] = "Mennyiség", + ["command_giveweapon"] = "Fegyver adás játékosnak", + ["command_giveweapon_weapon"] = "Fegyver neve", + ["command_giveweapon_ammo"] = "Lőszer mennyiség", + ["command_giveweapon_hasalready"] = "Játékosnak már van ilyen fegyvere", + ["command_giveweaponcomponent"] = "Fegyver kiegészítő adás a játékosnak", + ["command_giveweaponcomponent_component"] = "Kiegészítő neve", + ["command_giveweaponcomponent_invalid"] = "Érvénytelen fegyver kiegészítő", + ["command_giveweaponcomponent_hasalready"] = "Játékosnak már van ilyen fegyver kiegészítője", + ["command_giveweaponcomponent_missingweapon"] = "Játékosnak nincs ilyen fegyvere", + ["command_goto"] = "Teleportálás játékoshoz", + ["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", + ["command_setaccountmoney_amount"] = "Mennyiség", + ["command_setcoords"] = "Teleportálás megadott kordinátára", + ["command_setcoords_x"] = "X érték", + ["command_setcoords_y"] = "Y érték", + ["command_setcoords_z"] = "Z érték", + ["command_setjob"] = "Játékos munkájának beállítása", + ["command_setjob_job"] = "Munka neve", + ["command_setjob_grade"] = "Rang", + ["command_setjob_invalid"] = "Munka név vagy rang érvénytelen", + ["command_setgroup"] = "Játékos jogosultsági csoportjának beállítása", + ["command_setgroup_group"] = "Csoport neve", + ["commanderror_argumentmismatch"] = "Érvénytelen argumentumszám (%s megadva, %s szükséges)", + ["commanderror_argumentmismatch_number"] = "Érvénytelen argumentum #%s adat típus (szöveg megadva, szám szükséges)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Érvénytelen tárgy", + ["commanderror_invalidweapon"] = "Érvénytelen fegyver", + ["commanderror_console"] = "Parancs nem használható konzolból", + ["commanderror_invalidcommand"] = "Érvénytelen parancs - /%s", + ["commanderror_invalidplayerid"] = "Megadott játékos nem online.", + ["commandgeneric_playerid"] = "Játékos Szerver Id", + ["command_giveammo_noweapon_found"] = "Nincs ilyen fegyvered: %s", + ["command_giveammo_weapon"] = "Fegyver név", + ["command_giveammo_ammo"] = "Lőszer mennyiség", + ["tpm_nowaypoint"] = "Nincs kijelölve pozíció!", + ["tpm_success"] = "Sikeres teleportálás", + + ["noclip_message"] = "Noclip %s", + ["enabled"] = "~g~engedélyezve~s~", + ["disabled"] = "~r~letiltva~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "$%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dagger", + ["weapon_bat"] = "Bat", + ["weapon_battleaxe"] = "Battle Axe", + ["weapon_bottle"] = "Bottle", + ["weapon_crowbar"] = "Crowbar", + ["weapon_flashlight"] = "Flashlight", + ["weapon_golfclub"] = "Golf Club", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Hatchet", + ["weapon_knife"] = "Knife", + ["weapon_knuckle"] = "Knuckledusters", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Nightstick", + ["weapon_wrench"] = "Pipe Wrench", + ["weapon_poolcue"] = "Pool Cue", + ["weapon_stone_hatchet"] = "Stone Hatchet", + ["weapon_switchblade"] = "Switchblade", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Fémkereső", + ["weapon_precisionrifle"] = "Precision Rifle", + ["weapon_tactilerifle"] = "Service Carbine", + + -- 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 + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Proximity Mine", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snowball", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tear Gas", + + -- Special + ["weapon_fireextinguisher"] = "Fire Extinguisher", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Garbage Bag", + ["weapon_handcuffs"] = "Handcuffs", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "parachute", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", + + -- Duty related + ["stopped_duty"] = "Leadtad a szolgálatot.", + ["started_duty"] = "Szolgálatba álltál.", } diff --git a/[core]/es_extended/locales/id.lua b/[core]/es_extended/locales/id.lua new file mode 100644 index 000000000..1d7d1d822 --- /dev/null +++ b/[core]/es_extended/locales/id.lua @@ -0,0 +1,381 @@ +Locales["id"] = { + -- Inventory + ["inventory"] = "Inventaris ( Berat %s / %s )", + ["use"] = "Gunakan", + ["give"] = "Beri", + ["remove"] = "Buang", + ["return"] = "Kembali", + ["give_to"] = "Beri ke", + ["amount"] = "Jumlah", + ["giveammo"] = "Beri amunisi", + ["amountammo"] = "Jumlah Amunisi", + ["noammo"] = "Tidak cukup!", + ["gave_item"] = "Memberi %sx %s ke %s", + ["received_item"] = "Menerima %sx %s dari %s", + ["gave_weapon"] = "Memberi %s ke %s", + ["gave_weapon_ammo"] = "Memberi ~o~%sx %s untuk %s ke %s", + ["gave_weapon_withammo"] = "Memberi %s dengan ~o~%sx %s ke %s", + ["gave_weapon_hasalready"] = "%s sudah memiliki %s", + ["gave_weapon_noweapon"] = "%s tidak memiliki senjata tersebut", + ["received_weapon"] = "Menerima %s dari %s", + ["received_weapon_ammo"] = "Menerima ~o~%sx %s untuk %s Anda dari %s", + ["received_weapon_withammo"] = "Menerima %s dengan ~o~%sx %s dari %s", + ["received_weapon_hasalready"] = "%s mencoba memberimu %s, tapi kamu sudah memiliki senjata ini", + ["received_weapon_noweapon"] = "%s mencoba memberimu amunisi untuk %s, tapi kamu tidak memiliki senjata ini", + ["gave_account_money"] = "Memberi $%s (%s) ke %s", + ["received_account_money"] = "Menerima $%s (%s) dari %s", + ["amount_invalid"] = "Jumlah salah", + ["players_nearby"] = "Tidak ada Player di sekitar", + ["ex_inv_lim"] = "Tidak dapat melakukan aksi, melebihi batas berat dari %s", + ["imp_invalid_quantity"] = "Tidak dapat melakukan aksi, jumlah salah", + ["imp_invalid_amount"] = "Tidak dapat melakukan aksi, jumlah salah", + ["threw_standard"] = "Membuang %sx %s", + ["threw_account"] = "Membuang $%s %s", + ["threw_weapon"] = "Membuang %s", + ["threw_weapon_ammo"] = "Membuang %s dengan ~o~%sx %s", + ["threw_weapon_already"] = "Kamu sudah memiliki senjata ini", + ["threw_cannot_pickup"] = "Inventaris penuh, Tidak dapat mengambil!", + ["threw_pickup_prompt"] = "Tekan E untuk Mengambil", + + -- Key mapping + ["keymap_showinventory"] = "Buka Inventaris", + + -- Salary related + ["received_salary"] = "Anda telah dibayar: $%s", + ["received_help"] = "Anda telah menerima dana kesejahteraan: $%s", + ["company_nomoney"] = "perusahaan tempat Anda bekerja terlalu miskin untuk membayar gaji Anda", + ["received_paycheck"] = "menerima gaji", + ["bank"] = "Maze Bank", + ["account_bank"] = "Bank", + ["account_black_money"] = "Dirty Money", + ["account_money"] = "Cash", + + ["act_imp"] = "Tidak dapat melakukan aksi", + ["in_vehicle"] = "Tidak dapat melakukan aksi, Player di dalam kendaraan", + ["not_in_vehicle"] = "Tidak dapat melakukan aksi, Player tidak di dalam kendaraan", + + -- Commands + ["command_bring"] = "Bawa player kepadamu", + ["command_car"] = "Munculkan kendaraan", + ["command_car_car"] = "Model atau hash kendaraan", + ["command_cardel"] = "Menghilangkan kendaraan di sekitar", + ["command_cardel_radius"] = "Menghilangkan semua kendaraan dalam radius yang ditentukan", + ["command_repair"] = "Perbaiki kendaraanmu", + ["command_repair_success"] = "Berhasil memperbaiki kendaraan", + ["command_repair_success_target"] = "Admin memperbaiki kendaraanmu", + ["command_clear"] = "Bersihkan teks chat", + ["command_clearall"] = "Bersihkan teks chat untuk semua player", + ["command_clearinventory"] = "Hilangkan semua barang dari Inventaris Player", + ["command_clearloadout"] = "Hilangkan semua senjata dari Loadout Player", + ["command_freeze"] = "Bekukan player", + ["command_unfreeze"] = "Kembalikan player", + ["command_giveaccountmoney"] = "Beri uang ke rekening tertentu", + ["command_giveaccountmoney_account"] = "Rekening untuk ditambahkan", + ["command_giveaccountmoney_amount"] = "Jumlah untuk ditambahkan", + ["command_giveaccountmoney_invalid"] = "Nama Rekening Salah", + ["command_removeaccountmoney"] = "Hilangkan uang dari rekening tertentu", + ["command_removeaccountmoney_account"] = "Rekening yang akan dihapus", + ["command_removeaccountmoney_amount"] = "Jumlah yang dihapus", + ["command_removeaccountmoney_invalid"] = "Nama Rekening Salah", + ["command_giveitem"] = "Beri Player barang", + ["command_giveitem_item"] = "Nama Barang", + ["command_giveitem_count"] = "Jumlah", + ["command_giveweapon"] = "Beri player senjata", + ["command_giveweapon_weapon"] = "Nama Senjata", + ["command_giveweapon_ammo"] = "Jumlah Amunisi", + ["command_giveweapon_hasalready"] = "Player telah memiliki senjata ini", + ["command_giveweaponcomponent"] = "Beri komponen senjata ke player", + ["command_giveweaponcomponent_component"] = "Nama Komponen", + ["command_giveweaponcomponent_invalid"] = "Komponen Senjata Salah", + ["command_giveweaponcomponent_hasalready"] = "Player telah memiliki komponen senjata ini", + ["command_giveweaponcomponent_missingweapon"] = "Player tidak memiliki senjata ini", + ["command_goto"] = "Teleportasi dirimu ke player", + ["command_kill"] = "Bunuh player", + ["command_save"] = "Paksa Simpan Data player", + ["command_saveall"] = "Paksa Simpan Data semua player", + ["command_setaccountmoney"] = "Atur uang dalam rekening tertentu", + ["command_setaccountmoney_amount"] = "Jumlah", + ["command_setcoords"] = "Teleportasi ke koordinat tertentu", + ["command_setcoords_x"] = "Posisi X", + ["command_setcoords_y"] = "Posisi Y", + ["command_setcoords_z"] = "Posisi Z", + ["command_setjob"] = "Beri player pekerjaan", + ["command_setjob_job"] = "Nama", + ["command_setjob_grade"] = "Jabatan pekerjaan", + ["command_setjob_invalid"] = "pekerjaan, jabatan atau keduanya salah", + ["command_setgroup"] = "Atur izn grup player", + ["command_setgroup_group"] = "Nama Grup", + ["commanderror_argumentmismatch"] = "Jumlah Argument Salah (passed %s, wanted %s)", + ["commanderror_argumentmismatch_number"] = "Argument #%s salah tipe data (passed string, wanted number)", + ["commanderror_argumentmismatch_string"] = "Argument #%s salah tipe data (passed number, wanted string)", + ["commanderror_invaliditem"] = "Barang salah", + ["commanderror_invalidweapon"] = "Senjata salah", + ["commanderror_console"] = "Perintah tidak dapat dieksekusi dari console", + ["commanderror_invalidcommand"] = "Perintah Salah - /%s", + ["commanderror_invalidplayerid"] = "Player tersebut tidak online", + ["commandgeneric_playerid"] = "Id Server Player", + ["command_giveammo_noweapon_found"] = "%s tidak memiliki senjata tersebut", + ["command_giveammo_weapon"] = "Nama Senjata", + ["command_giveammo_ammo"] = "Jumlah Amunisi", + ["tpm_nowaypoint"] = "Titik Lokasi Tidak Diatur.", + ["tpm_success"] = "Berhasil Teleportasi", + + ["noclip_message"] = "Noclip telah %s", + ["enabled"] = "~g~diaktifkan~s~", + ["disabled"] = "~r~dimatikan~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dagger", + ["weapon_bat"] = "Bat", + ["weapon_battleaxe"] = "Battle Axe", + ["weapon_bottle"] = "Bottle", + ["weapon_crowbar"] = "Crowbar", + ["weapon_flashlight"] = "Flashlight", + ["weapon_golfclub"] = "Golf Club", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Hatchet", + ["weapon_knife"] = "Knife", + ["weapon_knuckle"] = "Knuckledusters", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Nightstick", + ["weapon_wrench"] = "Pipe Wrench", + ["weapon_poolcue"] = "Pool Cue", + ["weapon_stone_hatchet"] = "Stone Hatchet", + ["weapon_switchblade"] = "Switchblade", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Metal Detector", + ["weapon_precisionrifle"] = "Precision Rifle", + ["weapon_tactilerifle"] = "Service Carbine", + + -- Drug wars dlc + ["weapon_candycane"] = "Candycane", + ["weapon_acidpackage"] = "Acid Package", + ["weapon_pistolxm3"] = "Pistol8 x3m", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Proximity Mine", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snowball", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tear Gas", + + -- Special + ["weapon_fireextinguisher"] = "Pemadam Api", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Kantong Sampah", + ["weapon_handcuffs"] = "Borgol", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "Parasut", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "peluru", + ["ammo_shells"] = "peluru", + ["ammo_charge"] = "peluru", + ["ammo_petrol"] = "gallon bahan bakar", + ["ammo_firework"] = "kembang api", + ["ammo_rockets"] = "roket", + ["ammo_grenadelauncher"] = "granat", + ["ammo_grenade"] = "granat", + ["ammo_stickybomb"] = "bom", + ["ammo_pipebomb"] = "bom pipa", + ["ammo_smokebomb"] = "bom asap", + ["ammo_molotov"] = "molotov", + ["ammo_proxmine"] = "peledak", + ["ammo_bzgas"] = "kaleng", + ["ammo_ball"] = "bola", + ["ammo_snowball"] = "bola salju", + ["ammo_flare"] = "flare", + ["ammo_flaregun"] = "flare", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", +} diff --git a/[core]/es_extended/locales/it.lua b/[core]/es_extended/locales/it.lua index 227978cc2..24280c155 100644 --- a/[core]/es_extended/locales/it.lua +++ b/[core]/es_extended/locales/it.lua @@ -1,381 +1,381 @@ Locales["it"] = { - -- Inventory - ["inventory"] = "Inventario ( Peso %s / %s )", - ["use"] = "Usa", - ["give"] = "Dai", - ["remove"] = "Butta", - ["return"] = "Ritorna", - ["give_to"] = "Dai a", - ["amount"] = "Quantità", - ["giveammo"] = "Dai munizioni", - ["amountammo"] = "Quantità munizioni", - ["noammo"] = "Non abbastanza!", - ["gave_item"] = "Dando %sx %s a %s", - ["received_item"] = "Ricevuto %sx %s da %s", - ["gave_weapon"] = "Dando %s a %s", - ["gave_weapon_ammo"] = "Dando ~o~%sx %s for %s to %s", - ["gave_weapon_withammo"] = "Dando %s con ~o~%sx %s a %s", - ["gave_weapon_hasalready"] = "%s possiede già %s", - ["gave_weapon_noweapon"] = "%s non ha quell' arma", - ["received_weapon"] = "Ricevuto %s da %s", - ["received_weapon_ammo"] = "Ricevuto ~o~%sx %s per il tuo %s da %s", - ["received_weapon_withammo"] = "Ricevuto %s con ~o~%sx %s per %s", - ["received_weapon_hasalready"] = "%s ha tentato di darti %s, ma hai già l'arma", - ["received_weapon_noweapon"] = "%s ha tentato di darti munizioni per %s, ma non hai l'arma", - ["gave_account_money"] = "Dando $%s (%s) a %s", - ["received_account_money"] = "Ricevuto $%s (%s) da %s", - ["amount_invalid"] = "Quantità non valida", - ["players_nearby"] = "Nessun giocatore vicino", - ["ex_inv_lim"] = "Non puoi farlo, eccedi il peso di %s", - ["imp_invalid_quantity"] = "Non puoi farlo, quantità non valida", - ["imp_invalid_amount"] = "Non puoi farlo, importo non valido", - ["threw_standard"] = "Gettando %sx %s", - ["threw_account"] = "Gettando $%s %s", - ["threw_weapon"] = "Gettando %s", - ["threw_weapon_ammo"] = "Gettando %s con ~o~%sx %s", - ["threw_weapon_already"] = "Hai gia quest' arma", - ["threw_cannot_pickup"] = "Inventario pieno, non puoi raccogliere!", - ["threw_pickup_prompt"] = "Premi E per raccogliere", - - -- Key mapping - ["keymap_showinventory"] = "Apri inventario", - - -- Salary related - ["received_salary"] = "Sei stato pagato: $%s", - ["received_help"] = "Hai ricevuto il reddito di cittadinanza: $%s", - ["company_nomoney"] = "La tua compagnia è troppo povera per pagarti", - ["received_paycheck"] = "Ricveuto stipendio", - ["bank"] = "Banca", - ["account_bank"] = "Conto", - ["account_black_money"] = "Soldi sporchi", - ["account_money"] = "Contanti", - - ["act_imp"] = "Non puoi farlo", - ["in_vehicle"] = "Non puoi farlo, il giocatore è in un veicolo", - ["not_in_vehicle"] = "Non puoi farlo, il player non è in un veicolo", - - -- Commands - ['command_bring'] = 'Porta il giocatore da te', - ['command_car'] = 'Spawna un veicolo', - ['command_car_car'] = 'Modello o hash veicolo', - ['command_cardel'] = 'Rimuovi i veicoli nelle prossimità', - ['command_cardel_radius'] = 'Rimuovi i veicoli nel raggio specificato', - ['command_repair'] = 'Ripara il tuo veicolo', - ['command_repair_success'] = 'Hai riparato il veicolo con successo', - ['command_repair_success_target'] = 'Un admin ha riparato la tua macchina', - ['command_clear'] = 'Pulisci la chat testuale', - ['command_clearall'] = 'Pulisci la chat testuale per tutti i giocatori', - ['command_clearinventory'] = 'Rimuovi tutti gli oggetti dall\' inventario del giocatore', - ['command_clearloadout'] = 'Rimuovi tutte le armi dal loadout del giocatore', - ['command_freeze'] = 'Blocca un giocatore', - ['command_unfreeze'] = 'Sblocca un giocatore', - ['command_giveaccountmoney'] = 'Dai soldi a un\' account specifico', - ['command_giveaccountmoney_account'] = 'Account a cui aggiungere', - ['command_giveaccountmoney_amount'] = 'Quantità da aggiungere', - ['command_giveaccountmoney_invalid'] = 'Nome account non valido', - ['command_removeaccountmoney'] = 'Rimuovi soldi da un account specifico', - ['command_removeaccountmoney_account'] = 'Account a cui togliere', - ['command_removeaccountmoney_amount'] = 'Quantità da rimuovere', - ['command_removeaccountmoney_invalid'] = 'Nome account non valido', - ['command_giveitem'] = 'Dai un oggetto ad un giocatore', - ['command_giveitem_item'] = 'Nome oggetto', - ['command_giveitem_count'] = 'Quantità', - ['command_giveweapon'] = 'Dai un\' arma ad un giocatore', - ['command_giveweapon_weapon'] = 'Nome arma', - ['command_giveweapon_ammo'] = 'Quantità munizioni', - ['command_giveweapon_hasalready'] = 'Il giocatore ha già l\'arma', - ['command_giveweaponcomponent'] = 'Dai un componente arma ad un giocatore', - ['command_giveweaponcomponent_component'] = 'Nome componente', - ['command_giveweaponcomponent_invalid'] = 'Componente arma non valido', - ['command_giveweaponcomponent_hasalready'] = 'Il giocatore ha già questo componente arma', - ['command_giveweaponcomponent_missingweapon'] = 'Il giocatore non ha l\'arma', - ['command_goto'] = 'Teletrasportati da un giocatore', - ['command_kill'] = 'Uccidi un giocatore', - ['command_save'] = 'Salva forzatamente i dati di un giocatore', - ['command_saveall'] = 'Salva forzatamente i dati di tutti igiocatoria', - ['command_setaccountmoney'] = 'Aggiorna i soldi dentro un account specifico', - ['command_setaccountmoney_amount'] = 'Quantità', - ['command_setcoords'] = 'Teletrasportati a delle coordinate specifiche', - ['command_setcoords_x'] = 'Valore X', - ['command_setcoords_y'] = 'Valore Y', - ['command_setcoords_z'] = 'Valore Z', - ['command_setjob'] = 'Setta lavoro ad un giocatore', - ['command_setjob_job'] = 'Nome', - ['command_setjob_grade'] = 'Grado lavoro', - ['command_setjob_invalid'] = 'Il lavoro, grado o entrambi sono errati', - ['command_setgroup'] = 'Setta un gruppo di permessi ad un giocatore', - ['command_setgroup_group'] = 'Nome del gruppo', - ['commanderror_argumentmismatch'] = 'Conta argomenti non valida (passati %s, richiesti %s)', - ['commanderror_argumentmismatch_number'] = 'Argomento #%s di tipologia errata (passato testo, richiesto numero)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Oggetto non valido', - ['commanderror_invalidweapon'] = 'Arma non valida', - ['commanderror_console'] = 'Comando non eseguibile dalla console', - ['commanderror_invalidcommand'] = 'Comando non valido - /%s', - ['commanderror_invalidplayerid'] = 'Il giocatore specificato non è online', - ['commandgeneric_playerid'] = 'Id server del giocatore', - ['command_giveammo_noweapon_found'] = '%s non ha quell\' arma', - ['command_giveammo_weapon'] = 'Nome arma', - ['command_giveammo_ammo'] = 'Quantità munizioni', - ['tpm_nowaypoint'] = 'Nessuna meta impostata', - ['tpm_success'] = 'Teletrasportato con successo', - - ['noclip_message'] = 'Noclip %s', - ['enabled'] = '~g~abilitato~s~', - ['disabled'] = '~r~disabilitato~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "$%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Pugnale Antico", - ["weapon_bat"] = "Mazza", - ["weapon_battleaxe"] = "Ascia", - ["weapon_bottle"] = "Bottiglia", - ["weapon_crowbar"] = "Piede di porco", - ["weapon_flashlight"] = "Torcia", - ["weapon_golfclub"] = "Mazza da golf", - ["weapon_hammer"] = "Martello", - ["weapon_hatchet"] = "Accetta", - ["weapon_knife"] = "Coltello", - ["weapon_knuckle"] = "Tirapugni", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Manganello", - ["weapon_wrench"] = "Tubo", - ["weapon_poolcue"] = "Stecca", - ["weapon_stone_hatchet"] = "Accetta di pietra", - ["weapon_switchblade"] = "Coltello a serramanico", - - -- Handguns - ["weapon_appistol"] = "Pistola AP", - ["weapon_ceramicpistol"] = "Pistola di ceramica", - ["weapon_combatpistol"] = "Pistola da combattimento", - ["weapon_doubleaction"] = "Revolver doppia azione", - ["weapon_navyrevolver"] = "Revolver Marina", - ["weapon_flaregun"] = "Pistola lanciarazzi", - ["weapon_gadgetpistol"] = "Pistola Gadget", - ["weapon_heavypistol"] = "Pistola pesante", - ["weapon_revolver"] = "Revolver pesante", - ["weapon_revolver_mk2"] = "Revolver pesante MK2", - ["weapon_marksmanpistol"] = "Pistola da tiratore", - ["weapon_pistol"] = "Pistola", - ["weapon_pistol_mk2"] = "Pistola MK2", - ["weapon_pistol50"] = "Pistola .50", - ["weapon_snspistol"] = "Pistola SNS", - ["weapon_snspistol_mk2"] = "Pistola SNS MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizzatore", - ["weapon_vintagepistol"] = "Pistola Vintage", - - -- Shotguns - ["weapon_assaultshotgun"] = "Fucile a pompa d'assalto", - ["weapon_autoshotgun"] = "Fucile a pompa automatico", - ["weapon_bullpupshotgun"] = "Fucile a pompa Bullup", - ["weapon_combatshotgun"] = "Fucile a pompa da combattimento", - ["weapon_dbshotgun"] = "Fucile a pompa doppia canna", - ["weapon_heavyshotgun"] = "Fucile a pompa pesante", - ["weapon_musket"] = "Moschetto", - ["weapon_pumpshotgun"] = "Fucile a pompa", - ["weapon_pumpshotgun_mk2"] = "Fucile a pompa MK2", - ["weapon_sawnoffshotgun"] = "Fucile a canne mozza", - - -- SMG & LMG - ["weapon_assaultsmg"] = "SMG d'assalto", - ["weapon_combatmg"] = "MG da combattimento", - ["weapon_combatmg_mk2"] = "MG da combattimento MK2", - ["weapon_combatpdw"] = "PDW da combattimento", - ["weapon_gusenberg"] = "Mitragliatrice Gusenberg", - ["weapon_machinepistol"] = "Pistola mitragliatrice", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Hellbringer infernale", - - -- Rifles - ["weapon_advancedrifle"] = "Fucile avanzato", - ["weapon_assaultrifle"] = "Fucile d'assalto", - ["weapon_assaultrifle_mk2"] = "Fucile d' assalto MK2", - ["weapon_bullpuprifle"] = "Fucile Bullpup", - ["weapon_bullpuprifle_mk2"] = "Fucile Bullpup MK2", - ["weapon_carbinerifle"] = "Carabina", - ["weapon_carbinerifle_mk2"] = "Carbine MK2", - ["weapon_compactrifle"] = "Fucile compatto", - ["weapon_militaryrifle"] = "Fucile militare", - ["weapon_specialcarbine"] = "Carabina speciale", - ["weapon_specialcarbine_mk2"] = "Carabina speciale MK2", - ["weapon_heavyrifle"] = "Fucile pesante", - - -- Sniper - ["weapon_heavysniper"] = "Cecchino pesante", - ["weapon_heavysniper_mk2"] = "Cecchino pesante MK2", - ["weapon_marksmanrifle"] = "Fucile da tiratore", - ["weapon_marksmanrifle_mk2"] = "Fucile da tiratore MK2", - ["weapon_sniperrifle"] = "Cecchino", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Lanciagranate compatto", - ["weapon_firework"] = "Cannone pirotecnico", - ["weapon_grenadelauncher"] = "Lanciagranate", - ["weapon_hominglauncher"] = "Lanciarazzi a tracciamento", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Lanciarazzi", - ["weapon_rayminigun"] = "Widowmaker", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "Metal Detector", - ["weapon_precisionrifle"] = "Fucile di precisione", - ["weapon_tactilerifle"] = "Carabina di servizio", - - -- Drug Wars DLC - ['weapon_candycane'] = 'Bastoncino di zucchero', - ['weapon_acidpackage'] = 'Pacco di acidi', - ['weapon_pistolxm3'] = 'Pistola WM 29', - ['weapon_railgunxm3'] = 'Railgun', - - -- Thrown - ["weapon_ball"] = "Palla", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Granata", - ["weapon_petrolcan"] = "Tanica", - ["weapon_hazardcan"] = "Tanica pericolosa", - ["weapon_molotov"] = "Molotov", - ["weapon_proxmine"] = "Mina di prossimità", - ["weapon_pipebomb"] = "Esplosivo plastico", - ["weapon_snowball"] = "Palla di neve", - ["weapon_stickybomb"] = "Bomba adesiva", - ["weapon_smokegrenade"] = "Gas lacrimogeno", - - -- Special - ["weapon_fireextinguisher"] = "Estintore", - ["weapon_digiscanner"] = "Scanner digitale", - ["weapon_garbagebag"] = "Sacco della spazzatura", - ["weapon_handcuffs"] = "Manette", - ["gadget_nightvision"] = "Visore termico", - ["gadget_parachute"] = "Paracadute", - - -- Weapon Components - ["component_knuckle_base"] = "Modello basa", - ["component_knuckle_pimp"] = "il Pappone", - ["component_knuckle_ballas"] = "i Ballas", - ["component_knuckle_dollar"] = "il Riccone", - ["component_knuckle_diamond"] = "la Roccia", - ["component_knuckle_hate"] = "l' Hater", - ["component_knuckle_love"] = "l' Amante", - ["component_knuckle_player"] = "il Giocatore", - ["component_knuckle_king"] = "il Re", - ["component_knuckle_vagos"] = "i Vagos", - - ["component_luxary_finish"] = "rifinitura di lusso", - - ["component_handle_default"] = "impugnatura base", - ["component_handle_vip"] = "impugnatura VIP", - ["component_handle_bodyguard"] = "impugnatura guardia del corpo", - - ["component_vip_finish"] = "rifinitura VIP", - ["component_bodyguard_finish"] = "rifinitura Guardia del corpo", - - ["component_camo_finish"] = "mimetica Digitale", - ["component_camo_finish2"] = "mimetica Cespuglio", - ["component_camo_finish3"] = "mimetica Legnosa", - ["component_camo_finish4"] = "mimetica Teschio", - ["component_camo_finish5"] = "mimetica Sessanta Nove", - ["component_camo_finish6"] = "mimetica Perseo", - ["component_camo_finish7"] = "mimetica Leopardata", - ["component_camo_finish8"] = "mimetica Zebra", - ["component_camo_finish9"] = "mimetica Geometrica", - ["component_camo_finish10"] = "mimetica Boom", - ["component_camo_finish11"] = "mimetica Patriottica", - - ["component_camo_slide_finish"] = "mimetica Digitale Slide", - ["component_camo_slide_finish2"] = "mimetica Cespuglio Slide", - ["component_camo_slide_finish3"] = "mimetica Legnosa Slide", - ["component_camo_slide_finish4"] = "mimetica Teschio Slide", - ["component_camo_slide_finish5"] = "mimetica Sessanta Nove Slide", - ["component_camo_slide_finish6"] = "mimetica Perseo Slide", - ["component_camo_slide_finish7"] = "mimetica Leopardata Slide", - ["component_camo_slide_finish8"] = "mimetica Zebra Slide", - ["component_camo_slide_finish9"] = "mimetica Geometrica Slide", - ["component_camo_slide_finish10"] = "mimetica Boom Slide", - ["component_camo_slide_finish11"] = "mimetica Patriottica Slide", - - ["component_clip_default"] = "caricatore Standard", - ["component_clip_extended"] = "caricatore Esteso", - ["component_clip_drum"] = "caricatore A Batteria", - ["component_clip_box"] = "caricatore A Scatola", - - ["component_scope_holo"] = "mirino Olografico", - ["component_scope_small"] = "mirino Piccolo", - ["component_scope_medium"] = "mirino Medio", - ["component_scope_large"] = "mirino Largo", - ["component_scope"] = "mirino Montato", - ["component_scope_advanced"] = "mirino Avanzato", - ["component_ironsights"] = "integrato", - - ["component_suppressor"] = "silenziatore", - ["component_compensator"] = "compensatore", - - ["component_muzzle_flat"] = "freno Di Bocca Piatto", - ["component_muzzle_tactical"] = "freno Di Bocca Tattico", - ["component_muzzle_fat"] = "freno Di Bocca Grosso", - ["component_muzzle_precision"] = "freno Di Bocca Di Precisione", - ["component_muzzle_heavy"] = "freno Di Bocca Pesante", - ["component_muzzle_slanted"] = "freno Di Bocca Inclinato", - ["component_muzzle_split"] = "freno Di Bocca Diviso", - ["component_muzzle_squared"] = "freno Di Bocca Quadrato", - - ["component_flashlight"] = "torcia", - ["component_grip"] = "impugnatura", - - ["component_barrel_default"] = "canna Standard", - ["component_barrel_heavy"] = "canna Pesante", - - ["component_ammo_tracer"] = "munizioni Traccianti", - ["component_ammo_incendiary"] = "munizioni Incendiarie", - ["component_ammo_hollowpoint"] = "munizioni a Punta Cava", - ["component_ammo_fmj"] = "munizioni fMj", - ["component_ammo_armor"] = "munizioni penetranti", - ["component_ammo_explosive"] = "munizioni penetranti incendiarie", - - ["component_shells_default"] = "cartucce Standard", - ["component_shells_incendiary"] = "cartucce alito di Drago", - ["component_shells_armor"] = "cartucce a pallettoni", - ["component_shells_hollowpoint"] = "cartucce a freccette", - ["component_shells_explosive"] = "cartucce esplosive", - - -- Weapon Ammo - ["ammo_rounds"] = "colpo(i)", - ["ammo_shells"] = "cartuccia(e)", - ["ammo_charge"] = "carica", - ["ammo_petrol"] = "Litri di carburante", - ["ammo_firework"] = "fuochi d'artificio", - ["ammo_rockets"] = "razzo(i)", - ["ammo_grenadelauncher"] = "granata(e)", - ["ammo_grenade"] = "granata(e)", - ["ammo_stickybomb"] = "bomba(e)", - ["ammo_pipebomb"] = "bomba(e)", - ["ammo_smokebomb"] = "bomba(e)", - ["ammo_molotov"] = "bottiglia(e)", - ["ammo_proxmine"] = "mina(e)", - ["ammo_bzgas"] = "latta(e)", - ["ammo_ball"] = "palla(e)", - ["ammo_snowball"] = "palle di neve", - ["ammo_flare"] = "razzo(i)", - ["ammo_flaregun"] = "razzo(i)", - - -- Weapon Tints - ["tint_default"] = "Colore standard", - ["tint_green"] = "color verde", - ["tint_gold"] = "color oro", - ["tint_pink"] = "color rosa", - ["tint_army"] = "color army", - ["tint_lspd"] = "color blu", - ["tint_orange"] = "color arancio", - ["tint_platinum"] = "color platino", + -- Inventory + ["inventory"] = "Inventario ( Peso %s / %s )", + ["use"] = "Usa", + ["give"] = "Dai", + ["remove"] = "Butta", + ["return"] = "Ritorna", + ["give_to"] = "Dai a", + ["amount"] = "Quantità", + ["giveammo"] = "Dai munizioni", + ["amountammo"] = "Quantità munizioni", + ["noammo"] = "Non abbastanza!", + ["gave_item"] = "Dando %sx %s a %s", + ["received_item"] = "Ricevuto %sx %s da %s", + ["gave_weapon"] = "Dando %s a %s", + ["gave_weapon_ammo"] = "Dando ~o~%sx %s for %s to %s", + ["gave_weapon_withammo"] = "Dando %s con ~o~%sx %s a %s", + ["gave_weapon_hasalready"] = "%s possiede già %s", + ["gave_weapon_noweapon"] = "%s non ha quell' arma", + ["received_weapon"] = "Ricevuto %s da %s", + ["received_weapon_ammo"] = "Ricevuto ~o~%sx %s per il tuo %s da %s", + ["received_weapon_withammo"] = "Ricevuto %s con ~o~%sx %s per %s", + ["received_weapon_hasalready"] = "%s ha tentato di darti %s, ma hai già l'arma", + ["received_weapon_noweapon"] = "%s ha tentato di darti munizioni per %s, ma non hai l'arma", + ["gave_account_money"] = "Dando $%s (%s) a %s", + ["received_account_money"] = "Ricevuto $%s (%s) da %s", + ["amount_invalid"] = "Quantità non valida", + ["players_nearby"] = "Nessun giocatore vicino", + ["ex_inv_lim"] = "Non puoi farlo, eccedi il peso di %s", + ["imp_invalid_quantity"] = "Non puoi farlo, quantità non valida", + ["imp_invalid_amount"] = "Non puoi farlo, importo non valido", + ["threw_standard"] = "Gettando %sx %s", + ["threw_account"] = "Gettando $%s %s", + ["threw_weapon"] = "Gettando %s", + ["threw_weapon_ammo"] = "Gettando %s con ~o~%sx %s", + ["threw_weapon_already"] = "Hai gia quest' arma", + ["threw_cannot_pickup"] = "Inventario pieno, non puoi raccogliere!", + ["threw_pickup_prompt"] = "Premi E per raccogliere", + + -- Key mapping + ["keymap_showinventory"] = "Apri inventario", + + -- Salary related + ["received_salary"] = "Sei stato pagato: $%s", + ["received_help"] = "Hai ricevuto il reddito di cittadinanza: $%s", + ["company_nomoney"] = "La tua compagnia è troppo povera per pagarti", + ["received_paycheck"] = "Ricveuto stipendio", + ["bank"] = "Banca", + ["account_bank"] = "Conto", + ["account_black_money"] = "Soldi sporchi", + ["account_money"] = "Contanti", + + ["act_imp"] = "Non puoi farlo", + ["in_vehicle"] = "Non puoi farlo, il giocatore è in un veicolo", + ["not_in_vehicle"] = "Non puoi farlo, il player non è in un veicolo", + + -- Commands + ["command_bring"] = "Porta il giocatore da te", + ["command_car"] = "Spawna un veicolo", + ["command_car_car"] = "Modello o hash veicolo", + ["command_cardel"] = "Rimuovi i veicoli nelle prossimità", + ["command_cardel_radius"] = "Rimuovi i veicoli nel raggio specificato", + ["command_repair"] = "Ripara il tuo veicolo", + ["command_repair_success"] = "Hai riparato il veicolo con successo", + ["command_repair_success_target"] = "Un admin ha riparato la tua macchina", + ["command_clear"] = "Pulisci la chat testuale", + ["command_clearall"] = "Pulisci la chat testuale per tutti i giocatori", + ["command_clearinventory"] = "Rimuovi tutti gli oggetti dall' inventario del giocatore", + ["command_clearloadout"] = "Rimuovi tutte le armi dal loadout del giocatore", + ["command_freeze"] = "Blocca un giocatore", + ["command_unfreeze"] = "Sblocca un giocatore", + ["command_giveaccountmoney"] = "Dai soldi a un' account specifico", + ["command_giveaccountmoney_account"] = "Account a cui aggiungere", + ["command_giveaccountmoney_amount"] = "Quantità da aggiungere", + ["command_giveaccountmoney_invalid"] = "Nome account non valido", + ["command_removeaccountmoney"] = "Rimuovi soldi da un account specifico", + ["command_removeaccountmoney_account"] = "Account a cui togliere", + ["command_removeaccountmoney_amount"] = "Quantità da rimuovere", + ["command_removeaccountmoney_invalid"] = "Nome account non valido", + ["command_giveitem"] = "Dai un oggetto ad un giocatore", + ["command_giveitem_item"] = "Nome oggetto", + ["command_giveitem_count"] = "Quantità", + ["command_giveweapon"] = "Dai un' arma ad un giocatore", + ["command_giveweapon_weapon"] = "Nome arma", + ["command_giveweapon_ammo"] = "Quantità munizioni", + ["command_giveweapon_hasalready"] = "Il giocatore ha già l'arma", + ["command_giveweaponcomponent"] = "Dai un componente arma ad un giocatore", + ["command_giveweaponcomponent_component"] = "Nome componente", + ["command_giveweaponcomponent_invalid"] = "Componente arma non valido", + ["command_giveweaponcomponent_hasalready"] = "Il giocatore ha già questo componente arma", + ["command_giveweaponcomponent_missingweapon"] = "Il giocatore non ha l'arma", + ["command_goto"] = "Teletrasportati da un giocatore", + ["command_kill"] = "Uccidi un giocatore", + ["command_save"] = "Salva forzatamente i dati di un giocatore", + ["command_saveall"] = "Salva forzatamente i dati di tutti igiocatoria", + ["command_setaccountmoney"] = "Aggiorna i soldi dentro un account specifico", + ["command_setaccountmoney_amount"] = "Quantità", + ["command_setcoords"] = "Teletrasportati a delle coordinate specifiche", + ["command_setcoords_x"] = "Valore X", + ["command_setcoords_y"] = "Valore Y", + ["command_setcoords_z"] = "Valore Z", + ["command_setjob"] = "Setta lavoro ad un giocatore", + ["command_setjob_job"] = "Nome", + ["command_setjob_grade"] = "Grado lavoro", + ["command_setjob_invalid"] = "Il lavoro, grado o entrambi sono errati", + ["command_setgroup"] = "Setta un gruppo di permessi ad un giocatore", + ["command_setgroup_group"] = "Nome del gruppo", + ["commanderror_argumentmismatch"] = "Conta argomenti non valida (passati %s, richiesti %s)", + ["commanderror_argumentmismatch_number"] = "Argomento #%s di tipologia errata (passato testo, richiesto numero)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Oggetto non valido", + ["commanderror_invalidweapon"] = "Arma non valida", + ["commanderror_console"] = "Comando non eseguibile dalla console", + ["commanderror_invalidcommand"] = "Comando non valido - /%s", + ["commanderror_invalidplayerid"] = "Il giocatore specificato non è online", + ["commandgeneric_playerid"] = "Id server del giocatore", + ["command_giveammo_noweapon_found"] = "%s non ha quell' arma", + ["command_giveammo_weapon"] = "Nome arma", + ["command_giveammo_ammo"] = "Quantità munizioni", + ["tpm_nowaypoint"] = "Nessuna meta impostata", + ["tpm_success"] = "Teletrasportato con successo", + + ["noclip_message"] = "Noclip %s", + ["enabled"] = "~g~abilitato~s~", + ["disabled"] = "~r~disabilitato~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "$%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Pugnale Antico", + ["weapon_bat"] = "Mazza", + ["weapon_battleaxe"] = "Ascia", + ["weapon_bottle"] = "Bottiglia", + ["weapon_crowbar"] = "Piede di porco", + ["weapon_flashlight"] = "Torcia", + ["weapon_golfclub"] = "Mazza da golf", + ["weapon_hammer"] = "Martello", + ["weapon_hatchet"] = "Accetta", + ["weapon_knife"] = "Coltello", + ["weapon_knuckle"] = "Tirapugni", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Manganello", + ["weapon_wrench"] = "Tubo", + ["weapon_poolcue"] = "Stecca", + ["weapon_stone_hatchet"] = "Accetta di pietra", + ["weapon_switchblade"] = "Coltello a serramanico", + + -- Handguns + ["weapon_appistol"] = "Pistola AP", + ["weapon_ceramicpistol"] = "Pistola di ceramica", + ["weapon_combatpistol"] = "Pistola da combattimento", + ["weapon_doubleaction"] = "Revolver doppia azione", + ["weapon_navyrevolver"] = "Revolver Marina", + ["weapon_flaregun"] = "Pistola lanciarazzi", + ["weapon_gadgetpistol"] = "Pistola Gadget", + ["weapon_heavypistol"] = "Pistola pesante", + ["weapon_revolver"] = "Revolver pesante", + ["weapon_revolver_mk2"] = "Revolver pesante MK2", + ["weapon_marksmanpistol"] = "Pistola da tiratore", + ["weapon_pistol"] = "Pistola", + ["weapon_pistol_mk2"] = "Pistola MK2", + ["weapon_pistol50"] = "Pistola .50", + ["weapon_snspistol"] = "Pistola SNS", + ["weapon_snspistol_mk2"] = "Pistola SNS MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizzatore", + ["weapon_vintagepistol"] = "Pistola Vintage", + + -- Shotguns + ["weapon_assaultshotgun"] = "Fucile a pompa d'assalto", + ["weapon_autoshotgun"] = "Fucile a pompa automatico", + ["weapon_bullpupshotgun"] = "Fucile a pompa Bullup", + ["weapon_combatshotgun"] = "Fucile a pompa da combattimento", + ["weapon_dbshotgun"] = "Fucile a pompa doppia canna", + ["weapon_heavyshotgun"] = "Fucile a pompa pesante", + ["weapon_musket"] = "Moschetto", + ["weapon_pumpshotgun"] = "Fucile a pompa", + ["weapon_pumpshotgun_mk2"] = "Fucile a pompa MK2", + ["weapon_sawnoffshotgun"] = "Fucile a canne mozza", + + -- SMG & LMG + ["weapon_assaultsmg"] = "SMG d'assalto", + ["weapon_combatmg"] = "MG da combattimento", + ["weapon_combatmg_mk2"] = "MG da combattimento MK2", + ["weapon_combatpdw"] = "PDW da combattimento", + ["weapon_gusenberg"] = "Mitragliatrice Gusenberg", + ["weapon_machinepistol"] = "Pistola mitragliatrice", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Hellbringer infernale", + + -- Rifles + ["weapon_advancedrifle"] = "Fucile avanzato", + ["weapon_assaultrifle"] = "Fucile d'assalto", + ["weapon_assaultrifle_mk2"] = "Fucile d' assalto MK2", + ["weapon_bullpuprifle"] = "Fucile Bullpup", + ["weapon_bullpuprifle_mk2"] = "Fucile Bullpup MK2", + ["weapon_carbinerifle"] = "Carabina", + ["weapon_carbinerifle_mk2"] = "Carbine MK2", + ["weapon_compactrifle"] = "Fucile compatto", + ["weapon_militaryrifle"] = "Fucile militare", + ["weapon_specialcarbine"] = "Carabina speciale", + ["weapon_specialcarbine_mk2"] = "Carabina speciale MK2", + ["weapon_heavyrifle"] = "Fucile pesante", + + -- Sniper + ["weapon_heavysniper"] = "Cecchino pesante", + ["weapon_heavysniper_mk2"] = "Cecchino pesante MK2", + ["weapon_marksmanrifle"] = "Fucile da tiratore", + ["weapon_marksmanrifle_mk2"] = "Fucile da tiratore MK2", + ["weapon_sniperrifle"] = "Cecchino", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Lanciagranate compatto", + ["weapon_firework"] = "Cannone pirotecnico", + ["weapon_grenadelauncher"] = "Lanciagranate", + ["weapon_hominglauncher"] = "Lanciarazzi a tracciamento", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Lanciarazzi", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Metal Detector", + ["weapon_precisionrifle"] = "Fucile di precisione", + ["weapon_tactilerifle"] = "Carabina di servizio", + + -- Drug Wars DLC + ["weapon_candycane"] = "Bastoncino di zucchero", + ["weapon_acidpackage"] = "Pacco di acidi", + ["weapon_pistolxm3"] = "Pistola WM 29", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Palla", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Granata", + ["weapon_petrolcan"] = "Tanica", + ["weapon_hazardcan"] = "Tanica pericolosa", + ["weapon_molotov"] = "Molotov", + ["weapon_proxmine"] = "Mina di prossimità", + ["weapon_pipebomb"] = "Esplosivo plastico", + ["weapon_snowball"] = "Palla di neve", + ["weapon_stickybomb"] = "Bomba adesiva", + ["weapon_smokegrenade"] = "Gas lacrimogeno", + + -- Special + ["weapon_fireextinguisher"] = "Estintore", + ["weapon_digiscanner"] = "Scanner digitale", + ["weapon_garbagebag"] = "Sacco della spazzatura", + ["weapon_handcuffs"] = "Manette", + ["gadget_nightvision"] = "Visore termico", + ["gadget_parachute"] = "Paracadute", + + -- Weapon Components + ["component_knuckle_base"] = "Modello basa", + ["component_knuckle_pimp"] = "il Pappone", + ["component_knuckle_ballas"] = "i Ballas", + ["component_knuckle_dollar"] = "il Riccone", + ["component_knuckle_diamond"] = "la Roccia", + ["component_knuckle_hate"] = "l' Hater", + ["component_knuckle_love"] = "l' Amante", + ["component_knuckle_player"] = "il Giocatore", + ["component_knuckle_king"] = "il Re", + ["component_knuckle_vagos"] = "i Vagos", + + ["component_luxary_finish"] = "rifinitura di lusso", + + ["component_handle_default"] = "impugnatura base", + ["component_handle_vip"] = "impugnatura VIP", + ["component_handle_bodyguard"] = "impugnatura guardia del corpo", + + ["component_vip_finish"] = "rifinitura VIP", + ["component_bodyguard_finish"] = "rifinitura Guardia del corpo", + + ["component_camo_finish"] = "mimetica Digitale", + ["component_camo_finish2"] = "mimetica Cespuglio", + ["component_camo_finish3"] = "mimetica Legnosa", + ["component_camo_finish4"] = "mimetica Teschio", + ["component_camo_finish5"] = "mimetica Sessanta Nove", + ["component_camo_finish6"] = "mimetica Perseo", + ["component_camo_finish7"] = "mimetica Leopardata", + ["component_camo_finish8"] = "mimetica Zebra", + ["component_camo_finish9"] = "mimetica Geometrica", + ["component_camo_finish10"] = "mimetica Boom", + ["component_camo_finish11"] = "mimetica Patriottica", + + ["component_camo_slide_finish"] = "mimetica Digitale Slide", + ["component_camo_slide_finish2"] = "mimetica Cespuglio Slide", + ["component_camo_slide_finish3"] = "mimetica Legnosa Slide", + ["component_camo_slide_finish4"] = "mimetica Teschio Slide", + ["component_camo_slide_finish5"] = "mimetica Sessanta Nove Slide", + ["component_camo_slide_finish6"] = "mimetica Perseo Slide", + ["component_camo_slide_finish7"] = "mimetica Leopardata Slide", + ["component_camo_slide_finish8"] = "mimetica Zebra Slide", + ["component_camo_slide_finish9"] = "mimetica Geometrica Slide", + ["component_camo_slide_finish10"] = "mimetica Boom Slide", + ["component_camo_slide_finish11"] = "mimetica Patriottica Slide", + + ["component_clip_default"] = "caricatore Standard", + ["component_clip_extended"] = "caricatore Esteso", + ["component_clip_drum"] = "caricatore A Batteria", + ["component_clip_box"] = "caricatore A Scatola", + + ["component_scope_holo"] = "mirino Olografico", + ["component_scope_small"] = "mirino Piccolo", + ["component_scope_medium"] = "mirino Medio", + ["component_scope_large"] = "mirino Largo", + ["component_scope"] = "mirino Montato", + ["component_scope_advanced"] = "mirino Avanzato", + ["component_ironsights"] = "integrato", + + ["component_suppressor"] = "silenziatore", + ["component_compensator"] = "compensatore", + + ["component_muzzle_flat"] = "freno Di Bocca Piatto", + ["component_muzzle_tactical"] = "freno Di Bocca Tattico", + ["component_muzzle_fat"] = "freno Di Bocca Grosso", + ["component_muzzle_precision"] = "freno Di Bocca Di Precisione", + ["component_muzzle_heavy"] = "freno Di Bocca Pesante", + ["component_muzzle_slanted"] = "freno Di Bocca Inclinato", + ["component_muzzle_split"] = "freno Di Bocca Diviso", + ["component_muzzle_squared"] = "freno Di Bocca Quadrato", + + ["component_flashlight"] = "torcia", + ["component_grip"] = "impugnatura", + + ["component_barrel_default"] = "canna Standard", + ["component_barrel_heavy"] = "canna Pesante", + + ["component_ammo_tracer"] = "munizioni Traccianti", + ["component_ammo_incendiary"] = "munizioni Incendiarie", + ["component_ammo_hollowpoint"] = "munizioni a Punta Cava", + ["component_ammo_fmj"] = "munizioni fMj", + ["component_ammo_armor"] = "munizioni penetranti", + ["component_ammo_explosive"] = "munizioni penetranti incendiarie", + + ["component_shells_default"] = "cartucce Standard", + ["component_shells_incendiary"] = "cartucce alito di Drago", + ["component_shells_armor"] = "cartucce a pallettoni", + ["component_shells_hollowpoint"] = "cartucce a freccette", + ["component_shells_explosive"] = "cartucce esplosive", + + -- Weapon Ammo + ["ammo_rounds"] = "colpo(i)", + ["ammo_shells"] = "cartuccia(e)", + ["ammo_charge"] = "carica", + ["ammo_petrol"] = "Litri di carburante", + ["ammo_firework"] = "fuochi d'artificio", + ["ammo_rockets"] = "razzo(i)", + ["ammo_grenadelauncher"] = "granata(e)", + ["ammo_grenade"] = "granata(e)", + ["ammo_stickybomb"] = "bomba(e)", + ["ammo_pipebomb"] = "bomba(e)", + ["ammo_smokebomb"] = "bomba(e)", + ["ammo_molotov"] = "bottiglia(e)", + ["ammo_proxmine"] = "mina(e)", + ["ammo_bzgas"] = "latta(e)", + ["ammo_ball"] = "palla(e)", + ["ammo_snowball"] = "palle di neve", + ["ammo_flare"] = "razzo(i)", + ["ammo_flaregun"] = "razzo(i)", + + -- Weapon Tints + ["tint_default"] = "Colore standard", + ["tint_green"] = "color verde", + ["tint_gold"] = "color oro", + ["tint_pink"] = "color rosa", + ["tint_army"] = "color army", + ["tint_lspd"] = "color blu", + ["tint_orange"] = "color arancio", + ["tint_platinum"] = "color platino", } diff --git a/[core]/es_extended/locales/nl.lua b/[core]/es_extended/locales/nl.lua index 938303f52..b6a699aca 100644 --- a/[core]/es_extended/locales/nl.lua +++ b/[core]/es_extended/locales/nl.lua @@ -1,372 +1,372 @@ Locales["nl"] = { - -- Inventory - ["inventory"] = "Inventaris ( Gewicht %s / %s )", - ["use"] = "Gebruik", - ["give"] = "Geef", - ["remove"] = "Gooi", - ["return"] = "Terug", - ["give_to"] = "Geef aan", - ["amount"] = "Aantal", - ["giveammo"] = "Geef munitie", - ["amountammo"] = "Hoeveelheid munitie", - ["noammo"] = "Niet genoeg munitie!", - ["gave_item"] = "%sx %s gegeven aan %s", - ["received_item"] = "%sx %s ontvangen van %s", - ["gave_weapon"] = "%s gegeven aan %s", - ["gave_weapon_ammo"] = "~o~%sx %s gegeven voor een %s aan %s", - ["gave_weapon_withammo"] = "%s gegeven met ~o~%sx %s aan %s", - ["gave_weapon_hasalready"] = "%s heeft al een %s", - ["gave_weapon_noweapon"] = "%s heeft dat wapen niet", - ["received_weapon"] = "%s ontvangen van %s", - ["received_weapon_ammo"] = "~o~%sx %s ontvangen voor je %s van %s", - ["received_weapon_withammo"] = "%s ontvangen met ~o~%sx %s van %s", - ["received_weapon_hasalready"] = "%s heeft geprobeerd je een %s te geven, maar je hebt dat wapen al.", - ["received_weapon_noweapon"] = "%s heeft geprobeerd je ammo te geven voor een %s, maar je hebt dit wapen niet", - ["gave_account_money"] = "€%s (%s) gegeven aan %s", - ["received_account_money"] = "€%s (%s) ontvangen van %s", - ["amount_invalid"] = "Ongeldige hoeveelheid", - ["players_nearby"] = "Geen spelers in de buurt", - ["ex_inv_lim"] = "Kan actie niet uitvoeren, overschrijdt max. gewicht van %s", - ["imp_invalid_quantity"] = "Kan actie niet uitvoeren, de hoeveelheid is ongeldig", - ["imp_invalid_amount"] = "Kan actie niet uitvoeren, het aantal is ongeldig", - ["threw_standard"] = "%sx %s weggegooid", - ["threw_account"] = "€%s %s weggegooid", - ["threw_weapon"] = "%s weggegooid", - ["threw_weapon_ammo"] = "%s met ~o~%sx %s weggegooid", - ["threw_weapon_already"] = "Je hebt dit wapen al !", - ["threw_cannot_pickup"] = "Inventaris is vol, je kan dit 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", - ["company_nomoney"] = "Het bedrijf waar je bij werkt heeft te weinig geld om je uit te betalen.", - ["received_paycheck"] = "salaris ontvangen", - ["bank"] = "Maze Bank", - ["account_bank"] = "Bank", - ["account_black_money"] = "Zwart geld", - ["account_money"] = "Contant", - - ["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', - ['command_car_car'] = 'Voertuig model of hash', - ['command_cardel'] = 'Verwijder voertuigen in straal', - ['command_cardel_radius'] = 'Verwijderd alle voertuigen in gewenste straal', - ['command_clear'] = 'Verwijder chat berichten', - ['command_clearall'] = 'Verwijder chat berichten voor alle spelers', - ['command_clearinventory'] = 'Verwijder alle items van een speler zijn inventory', - ['command_clearloadout'] = 'Verwijder alle wapens die een speler heeft', - ['command_freeze'] = 'Freeze een speler', - ['command_unfreeze'] = 'Unfreeze een speler', - ['command_giveaccountmoney'] = 'Geef geld aan een rekening', - ['command_giveaccountmoney_account'] = 'Account om aan toe te voegen', - ['command_giveaccountmoney_amount'] = 'Bedrag om toe te voegen', - ['command_giveaccountmoney_invalid'] = 'Account Naam ongeldig', - ['command_giveitem'] = 'Geef speler een item', - ['command_giveitem_item'] = 'Item naam', - ['command_giveitem_count'] = 'Hoeveelheid', - ['command_giveweapon'] = 'Geef de speler een wapen', - ['command_giveweapon_weapon'] = 'Wapen naam', - ['command_giveweapon_ammo'] = 'Munitie Hoeveelheid', - ['command_giveweapon_hasalready'] = 'Speler heeft dit wapen al', - ['command_giveweaponcomponent'] = 'Geef wapen component aan speler', - ['command_giveweaponcomponent_component'] = 'Component naam', - ['command_giveweaponcomponent_invalid'] = 'Ongeldig wapen component', - ['command_giveweaponcomponent_hasalready'] = 'De speler heeft dit wapen component al', - ['command_giveweaponcomponent_missingweapon'] = 'De speler heeft dit wapen niet', - ['command_goto'] = 'Teleporteer jezelf naar een speler', - ['command_kill'] = 'Vermoord een speler', - ['command_save'] = 'Slaag een speler zijn spelerdata geforceerd op', - ['command_saveall'] = 'Slaag iedereen zijn spelerdata geforceerd op', - ['command_setaccountmoney'] = 'Stel geld in op een account', - ['command_setaccountmoney_amount'] = 'Hoeveelheid', - ['command_setcoords'] = 'Telepeer naar coordinaten', - ['command_setcoords_x'] = 'X waarde', - ['command_setcoords_y'] = 'Y waarde', - ['command_setcoords_z'] = 'Z waarde', - ['command_setjob'] = 'Zet een speler zijn / haar job', - ['command_setjob_job'] = 'Naam', - ['command_setjob_grade'] = 'Job grade', - ['command_setjob_invalid'] = 'De job, grade of beide zijn ongeldig', - ['command_setgroup'] = 'Stel een toestemmingsgroep voor spelers in', - ['command_setgroup_group'] = 'Naam van groep', - ['commanderror_argumentmismatch'] = 'Ongeldig aantal argumenten (geslaagd %s, gezocht %s)', - ['commanderror_argumentmismatch_number'] = 'Ongeldig argument #%s gegevenstype (doorgegeven string, gewenst nummer)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (doorgegeven string, gewenst nummer)', - ['commanderror_invaliditem'] = 'Ongeldig item', - ['commanderror_invalidweapon'] = 'Ongeldig wapen', - ['commanderror_console'] = 'Command kan niet worden uitgevoerd vanaf console.', - ['commanderror_invalidcommand'] = 'Ongeldig commando - /%s', - ['commanderror_invalidplayerid'] = 'Opgegeven speler is niet online', - ['commandgeneric_playerid'] = 'Speler server id', - ['command_giveammo_noweapon_found'] = '%s heeft dat wapen niet', - ['command_giveammo_weapon'] = 'Wapen naam', - ['command_giveammo_ammo'] = 'Munitie Hoeveelheid', - ['tpm_nowaypoint'] = 'Geen navigatie ingesteld.', - ['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", - ["weapon_battleaxe"] = "Gevechtsbijl", - ["weapon_bottle"] = "Fles", - ["weapon_crowbar"] = "Koevoet", - ["weapon_flashlight"] = "Zaklamp", - ["weapon_golfclub"] = "Golfclub", - ["weapon_hammer"] = "Hamer", - ["weapon_hatchet"] = "Bijl", - ["weapon_knife"] = "Mes", - ["weapon_knuckle"] = "Boksbeugel", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Wapenstok", - ["weapon_wrench"] = "Pijpsleutel", - ["weapon_poolcue"] = "Biljart Keu", - ["weapon_stone_hatchet"] = "Steenbijl", - ["weapon_switchblade"] = "Stiletto", - - -- Handguns - ["weapon_appistol"] = "AP-pistool", - ["weapon_ceramicpistol"] = "Keramische pistool", - ["weapon_combatpistol"] = "Gevechtspistool", - ["weapon_doubleaction"] = "Revolver met dubbele actie", - ["weapon_navyrevolver"] = "Marine Revolver", - ["weapon_flaregun"] = "Noodsignaalpistool", - ["weapon_gadgetpistol"] = "Gadgetpistool", - ["weapon_heavypistol"] = "Zwaar pistool", - ["weapon_revolver"] = "Zware revolver", - ["weapon_revolver_mk2"] = "Zware revolver MK2", - ["weapon_marksmanpistol"] = "Marksman-pistool", - ["weapon_pistol"] = "Pistool", - ["weapon_pistol_mk2"] = "Pistool MK2", - ["weapon_pistol50"] = "Pistool .50", - ["weapon_snspistol"] = "SNS-pistool", - ["weapon_snspistol_mk2"] = "SNS-pistool MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistool", - - -- Shotguns - ["weapon_assaultshotgun"] = "Aanvalsgeweer", - ["weapon_autoshotgun"] = "Automatisch jachtgeweer", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Gevechtsgeweer", - ["weapon_dbshotgun"] = "Dubbelloops jachtgeweer", - ["weapon_heavyshotgun"] = "Zwaar jachtgeweer", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pompgeweer", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Afgezaagd jachtgeweer", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Aanval SMG", - ["weapon_combatmg"] = "Gevecht MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg-veger", - ["weapon_machinepistol"] = "Machinepistool", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro-SMG", - ["weapon_minismg"] = "Mini-SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Onheilige Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Geavanceerd geweer", - ["weapon_assaultrifle"] = "Aanvalsgeweer", - ["weapon_assaultrifle_mk2"] = "Aanvalsgeweer MK2", - ["weapon_bullpuprifle"] = "Bullpup-geweer", - ["weapon_bullpuprifle_mk2"] = "Bullpup-geweer MK2", - ["weapon_carbinerifle"] = "Kabinet geweer", - ["weapon_carbinerifle_mk2"] = "Kabinet geweer MK2", - ["weapon_compactrifle"] = "Compact geweer", - ["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", - ["weapon_grenadelauncher"] = "Granaatwerper", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["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"] = "Snoep stok", - ["weapon_acidpackage"] = "LSD pakket", - ["weapon_pistolxm3"] = "WM 29 Pistool", - ["weapon_railgunxm3"] = "Railgun", - - -- Thrown - ["weapon_ball"] = "Honkbal", - ["weapon_bzgas"] = "BZ-gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Granaat", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Gevaarlijke jerrycan", - ["weapon_molotov"] = "Molotovcocktail", - ["weapon_proxmine"] = "Nabijheidsmijn", - ["weapon_pipebomb"] = "Pijpbom", - ["weapon_snowball"] = "Sneeuwbal", - ["weapon_stickybomb"] = "Kleefbom", - ["weapon_smokegrenade"] = "Traangas", - - -- Special - ["weapon_firebluser"] = "Brandblusser", - ["weapon_digiscanner"] = "Digitale scanner", - ["weapon_garbagebag"] = "Vuilniszak", - ["weapon_handcuffs"] = "Handboeien", - ["gadget_nightvision"] = "Nachtzicht", - ["gadget_parachute"] = "parachute", - - -- Weapon Components - ["component_knuckle_base"] = "basismodel", - ["component_knuckle_pimp"] = "de pooier", - ["component_knuckle_ballas"] = "de ballen", - ["component_knuckle_dollar"] = "de Hustler", - ["component_knuckle_diamond"] = "de rots", - ["component_knuckle_hate"] = "de Hater", - ["component_knuckle_love"] = "de minnaar", - ["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", - ["component_camo_finish4"] = "schedel camouflage", - ["component_camo_finish5"] = "sessanta Nove camouflage", - ["component_camo_finish6"] = "perseus camouflage", - ["component_camo_finish7"] = "luipaard camouflage", - ["component_camo_finish8"] = "zebracamouflage", - ["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", - ["component_camo_slide_finish4"] = "schedelschuifcamouflage", - ["component_camo_slide_finish5"] = "sessanta Nove Dia camouflage", - ["component_camo_slide_finish6"] = "perseus diacamouflage", - ["component_camo_slide_finish7"] = "luipaard Slide camouflage", - ["component_camo_slide_finish8"] = "zebra Slide camouflage", - ["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", - ["component_scope_large"] = "groot bereik", - ["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", - ["component_muzzle_precision"] = "precisie mondingsrem", - ["component_muzzle_heavy"] = "zware mondingsrem", - ["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)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "liters brandstof", - ["ammo_firework"] = "vuurwerkpijl(en)", - ["ammo_rockets"] = "raket(ten)", - ["ammo_grenadelauncher"] = "granaat(en)", - ["ammo_grenade"] = "granaat(en)", - ["ammo_stickybomb"] = "bom(men)", - ["ammo_pipebomb"] = "bom(men)", - ["ammo_smokebomb"] = "bom(men)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mijn(en)", - ["ammo_bzgas"] = "blik(ken)", - ["ammo_ball"] = "bal(len)", - ["ammo_snowball"] = "sneeuwbal(len)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "standaard skin", - ["tint_green"] = "groene skin", - ["tint_gold"] = "goude skin", - ["tint_pink"] = "roze skin", - ["tint_army"] = "legerprint", - ["tint_lspd"] = "blauwe skin", - ["tint_orange"] = "oranje skin", - ["tint_platinum"] = "platina skin", + -- Inventory + ["inventory"] = "Inventaris ( Gewicht %s / %s )", + ["use"] = "Gebruik", + ["give"] = "Geef", + ["remove"] = "Gooi", + ["return"] = "Terug", + ["give_to"] = "Geef aan", + ["amount"] = "Aantal", + ["giveammo"] = "Geef munitie", + ["amountammo"] = "Hoeveelheid munitie", + ["noammo"] = "Niet genoeg munitie!", + ["gave_item"] = "%sx %s gegeven aan %s", + ["received_item"] = "%sx %s ontvangen van %s", + ["gave_weapon"] = "%s gegeven aan %s", + ["gave_weapon_ammo"] = "~o~%sx %s gegeven voor een %s aan %s", + ["gave_weapon_withammo"] = "%s gegeven met ~o~%sx %s aan %s", + ["gave_weapon_hasalready"] = "%s heeft al een %s", + ["gave_weapon_noweapon"] = "%s heeft dat wapen niet", + ["received_weapon"] = "%s ontvangen van %s", + ["received_weapon_ammo"] = "~o~%sx %s ontvangen voor je %s van %s", + ["received_weapon_withammo"] = "%s ontvangen met ~o~%sx %s van %s", + ["received_weapon_hasalready"] = "%s heeft geprobeerd je een %s te geven, maar je hebt dat wapen al.", + ["received_weapon_noweapon"] = "%s heeft geprobeerd je ammo te geven voor een %s, maar je hebt dit wapen niet", + ["gave_account_money"] = "€%s (%s) gegeven aan %s", + ["received_account_money"] = "€%s (%s) ontvangen van %s", + ["amount_invalid"] = "Ongeldige hoeveelheid", + ["players_nearby"] = "Geen spelers in de buurt", + ["ex_inv_lim"] = "Kan actie niet uitvoeren, overschrijdt max. gewicht van %s", + ["imp_invalid_quantity"] = "Kan actie niet uitvoeren, de hoeveelheid is ongeldig", + ["imp_invalid_amount"] = "Kan actie niet uitvoeren, het aantal is ongeldig", + ["threw_standard"] = "%sx %s weggegooid", + ["threw_account"] = "€%s %s weggegooid", + ["threw_weapon"] = "%s weggegooid", + ["threw_weapon_ammo"] = "%s met ~o~%sx %s weggegooid", + ["threw_weapon_already"] = "Je hebt dit wapen al !", + ["threw_cannot_pickup"] = "Inventaris is vol, je kan dit 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", + ["company_nomoney"] = "Het bedrijf waar je bij werkt heeft te weinig geld om je uit te betalen.", + ["received_paycheck"] = "salaris ontvangen", + ["bank"] = "Maze Bank", + ["account_bank"] = "Bank", + ["account_black_money"] = "Zwart geld", + ["account_money"] = "Contant", + + ["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", + ["command_car_car"] = "Voertuig model of hash", + ["command_cardel"] = "Verwijder voertuigen in straal", + ["command_cardel_radius"] = "Verwijderd alle voertuigen in gewenste straal", + ["command_clear"] = "Verwijder chat berichten", + ["command_clearall"] = "Verwijder chat berichten voor alle spelers", + ["command_clearinventory"] = "Verwijder alle items van een speler zijn inventory", + ["command_clearloadout"] = "Verwijder alle wapens die een speler heeft", + ["command_freeze"] = "Freeze een speler", + ["command_unfreeze"] = "Unfreeze een speler", + ["command_giveaccountmoney"] = "Geef geld aan een rekening", + ["command_giveaccountmoney_account"] = "Account om aan toe te voegen", + ["command_giveaccountmoney_amount"] = "Bedrag om toe te voegen", + ["command_giveaccountmoney_invalid"] = "Account Naam ongeldig", + ["command_giveitem"] = "Geef speler een item", + ["command_giveitem_item"] = "Item naam", + ["command_giveitem_count"] = "Hoeveelheid", + ["command_giveweapon"] = "Geef de speler een wapen", + ["command_giveweapon_weapon"] = "Wapen naam", + ["command_giveweapon_ammo"] = "Munitie Hoeveelheid", + ["command_giveweapon_hasalready"] = "Speler heeft dit wapen al", + ["command_giveweaponcomponent"] = "Geef wapen component aan speler", + ["command_giveweaponcomponent_component"] = "Component naam", + ["command_giveweaponcomponent_invalid"] = "Ongeldig wapen component", + ["command_giveweaponcomponent_hasalready"] = "De speler heeft dit wapen component al", + ["command_giveweaponcomponent_missingweapon"] = "De speler heeft dit wapen niet", + ["command_goto"] = "Teleporteer jezelf naar een speler", + ["command_kill"] = "Vermoord een speler", + ["command_save"] = "Slaag een speler zijn spelerdata geforceerd op", + ["command_saveall"] = "Slaag iedereen zijn spelerdata geforceerd op", + ["command_setaccountmoney"] = "Stel geld in op een account", + ["command_setaccountmoney_amount"] = "Hoeveelheid", + ["command_setcoords"] = "Telepeer naar coordinaten", + ["command_setcoords_x"] = "X waarde", + ["command_setcoords_y"] = "Y waarde", + ["command_setcoords_z"] = "Z waarde", + ["command_setjob"] = "Zet een speler zijn / haar job", + ["command_setjob_job"] = "Naam", + ["command_setjob_grade"] = "Job grade", + ["command_setjob_invalid"] = "De job, grade of beide zijn ongeldig", + ["command_setgroup"] = "Stel een toestemmingsgroep voor spelers in", + ["command_setgroup_group"] = "Naam van groep", + ["commanderror_argumentmismatch"] = "Ongeldig aantal argumenten (geslaagd %s, gezocht %s)", + ["commanderror_argumentmismatch_number"] = "Ongeldig argument #%s gegevenstype (doorgegeven string, gewenst nummer)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (doorgegeven string, gewenst nummer)", + ["commanderror_invaliditem"] = "Ongeldig item", + ["commanderror_invalidweapon"] = "Ongeldig wapen", + ["commanderror_console"] = "Command kan niet worden uitgevoerd vanaf console.", + ["commanderror_invalidcommand"] = "Ongeldig commando - /%s", + ["commanderror_invalidplayerid"] = "Opgegeven speler is niet online", + ["commandgeneric_playerid"] = "Speler server id", + ["command_giveammo_noweapon_found"] = "%s heeft dat wapen niet", + ["command_giveammo_weapon"] = "Wapen naam", + ["command_giveammo_ammo"] = "Munitie Hoeveelheid", + ["tpm_nowaypoint"] = "Geen navigatie ingesteld.", + ["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", + ["weapon_battleaxe"] = "Gevechtsbijl", + ["weapon_bottle"] = "Fles", + ["weapon_crowbar"] = "Koevoet", + ["weapon_flashlight"] = "Zaklamp", + ["weapon_golfclub"] = "Golfclub", + ["weapon_hammer"] = "Hamer", + ["weapon_hatchet"] = "Bijl", + ["weapon_knife"] = "Mes", + ["weapon_knuckle"] = "Boksbeugel", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Wapenstok", + ["weapon_wrench"] = "Pijpsleutel", + ["weapon_poolcue"] = "Biljart Keu", + ["weapon_stone_hatchet"] = "Steenbijl", + ["weapon_switchblade"] = "Stiletto", + + -- Handguns + ["weapon_appistol"] = "AP-pistool", + ["weapon_ceramicpistol"] = "Keramische pistool", + ["weapon_combatpistol"] = "Gevechtspistool", + ["weapon_doubleaction"] = "Revolver met dubbele actie", + ["weapon_navyrevolver"] = "Marine Revolver", + ["weapon_flaregun"] = "Noodsignaalpistool", + ["weapon_gadgetpistol"] = "Gadgetpistool", + ["weapon_heavypistol"] = "Zwaar pistool", + ["weapon_revolver"] = "Zware revolver", + ["weapon_revolver_mk2"] = "Zware revolver MK2", + ["weapon_marksmanpistol"] = "Marksman-pistool", + ["weapon_pistol"] = "Pistool", + ["weapon_pistol_mk2"] = "Pistool MK2", + ["weapon_pistol50"] = "Pistool .50", + ["weapon_snspistol"] = "SNS-pistool", + ["weapon_snspistol_mk2"] = "SNS-pistool MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistool", + + -- Shotguns + ["weapon_assaultshotgun"] = "Aanvalsgeweer", + ["weapon_autoshotgun"] = "Automatisch jachtgeweer", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Gevechtsgeweer", + ["weapon_dbshotgun"] = "Dubbelloops jachtgeweer", + ["weapon_heavyshotgun"] = "Zwaar jachtgeweer", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pompgeweer", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Afgezaagd jachtgeweer", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Aanval SMG", + ["weapon_combatmg"] = "Gevecht MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg-veger", + ["weapon_machinepistol"] = "Machinepistool", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro-SMG", + ["weapon_minismg"] = "Mini-SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Onheilige Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Geavanceerd geweer", + ["weapon_assaultrifle"] = "Aanvalsgeweer", + ["weapon_assaultrifle_mk2"] = "Aanvalsgeweer MK2", + ["weapon_bullpuprifle"] = "Bullpup-geweer", + ["weapon_bullpuprifle_mk2"] = "Bullpup-geweer MK2", + ["weapon_carbinerifle"] = "Kabinet geweer", + ["weapon_carbinerifle_mk2"] = "Kabinet geweer MK2", + ["weapon_compactrifle"] = "Compact geweer", + ["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", + ["weapon_grenadelauncher"] = "Granaatwerper", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["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"] = "Snoep stok", + ["weapon_acidpackage"] = "LSD pakket", + ["weapon_pistolxm3"] = "WM 29 Pistool", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Honkbal", + ["weapon_bzgas"] = "BZ-gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Granaat", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Gevaarlijke jerrycan", + ["weapon_molotov"] = "Molotovcocktail", + ["weapon_proxmine"] = "Nabijheidsmijn", + ["weapon_pipebomb"] = "Pijpbom", + ["weapon_snowball"] = "Sneeuwbal", + ["weapon_stickybomb"] = "Kleefbom", + ["weapon_smokegrenade"] = "Traangas", + + -- Special + ["weapon_firebluser"] = "Brandblusser", + ["weapon_digiscanner"] = "Digitale scanner", + ["weapon_garbagebag"] = "Vuilniszak", + ["weapon_handcuffs"] = "Handboeien", + ["gadget_nightvision"] = "Nachtzicht", + ["gadget_parachute"] = "parachute", + + -- Weapon Components + ["component_knuckle_base"] = "basismodel", + ["component_knuckle_pimp"] = "de pooier", + ["component_knuckle_ballas"] = "de ballen", + ["component_knuckle_dollar"] = "de Hustler", + ["component_knuckle_diamond"] = "de rots", + ["component_knuckle_hate"] = "de Hater", + ["component_knuckle_love"] = "de minnaar", + ["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", + ["component_camo_finish4"] = "schedel camouflage", + ["component_camo_finish5"] = "sessanta Nove camouflage", + ["component_camo_finish6"] = "perseus camouflage", + ["component_camo_finish7"] = "luipaard camouflage", + ["component_camo_finish8"] = "zebracamouflage", + ["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", + ["component_camo_slide_finish4"] = "schedelschuifcamouflage", + ["component_camo_slide_finish5"] = "sessanta Nove Dia camouflage", + ["component_camo_slide_finish6"] = "perseus diacamouflage", + ["component_camo_slide_finish7"] = "luipaard Slide camouflage", + ["component_camo_slide_finish8"] = "zebra Slide camouflage", + ["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", + ["component_scope_large"] = "groot bereik", + ["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", + ["component_muzzle_precision"] = "precisie mondingsrem", + ["component_muzzle_heavy"] = "zware mondingsrem", + ["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)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "liters brandstof", + ["ammo_firework"] = "vuurwerkpijl(en)", + ["ammo_rockets"] = "raket(ten)", + ["ammo_grenadelauncher"] = "granaat(en)", + ["ammo_grenade"] = "granaat(en)", + ["ammo_stickybomb"] = "bom(men)", + ["ammo_pipebomb"] = "bom(men)", + ["ammo_smokebomb"] = "bom(men)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mijn(en)", + ["ammo_bzgas"] = "blik(ken)", + ["ammo_ball"] = "bal(len)", + ["ammo_snowball"] = "sneeuwbal(len)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "standaard skin", + ["tint_green"] = "groene skin", + ["tint_gold"] = "goude skin", + ["tint_pink"] = "roze skin", + ["tint_army"] = "legerprint", + ["tint_lspd"] = "blauwe skin", + ["tint_orange"] = "oranje skin", + ["tint_platinum"] = "platina skin", } diff --git a/[core]/es_extended/locales/pl.lua b/[core]/es_extended/locales/pl.lua index d738239a5..d50f91eb7 100644 --- a/[core]/es_extended/locales/pl.lua +++ b/[core]/es_extended/locales/pl.lua @@ -1,239 +1,239 @@ Locales["pl"] = { - -- Inventory - ["inventory"] = "ekwipunek %s / %s", - ["use"] = "użyj", - ["give"] = "daj", - ["remove"] = "usuń", - ["return"] = "wróć", - ["give_to"] = "daj dla", - ["amount"] = "ilość", - ["giveammo"] = "daj amunicje", - ["amountammo"] = "ilość amunicji", - ["noammo"] = "nie posiadasz wystarczającej ilości amunicji!", - ["gave_item"] = "dałeś/aś %sx %s dla %s", - ["received_item"] = "otrzymałeś/aś %sx %s od %s", - ["gave_weapon"] = "dałeś/aś %s dla %s", - ["gave_weapon_ammo"] = "dałeś/aś ~o~%sx %s do %s dla %s", - ["gave_weapon_withammo"] = "dałeś/aś %s z ~o~%sx %s dla %s", - ["gave_weapon_hasalready"] = "%s już posiada %s", - ["gave_weapon_noweapon"] = "%s nie posiada tej broni", - ["received_weapon"] = "otrzymałeś/aś %s od %s", - ["received_weapon_ammo"] = "otrzymałeś/aś ~o~%sx %s do twojego %s od %s", - ["received_weapon_withammo"] = "otrzymałeś/aś %s z ~o~%sx %s od %s", - ["received_weapon_hasalready"] = "%s próbował/a przekazać ci %s, lecz już posiadasz jedno", - ["received_weapon_noweapon"] = "%s próbował/a przekazać ci amunicje do %s, lecz nie posiadasz tej broni", - ["gave_account_money"] = "dałeś/aś %s$ (%s) dla %s", - ["received_account_money"] = "otrzymałeś/aś %s$ (%s) od %s", - ["amount_invalid"] = "nieprawidłowa ilość", - ["players_nearby"] = "brak graczy w pobliżu", - ["ex_inv_lim"] = "akcja nie jest możliwa, nie możesz mieć więcej %s", - ["imp_invalid_quantity"] = "akcja jest niemożliwa, nieprawidłowa ilość", - ["imp_invalid_amount"] = "akcja jest niemożliwa, nieprawidłowa kwota", - ["threw_standard"] = "wyrzuciłeś/aś %sx %s", - ["threw_account"] = "wyrzuciłeś/aś $%s %s", - ["threw_weapon"] = "wyrzuciłeś/aś %s", - ["threw_weapon_ammo"] = "wyrzuciłeś/aś %s z ~o~%sx %s", - ["threw_weapon_already"] = "już posiadasz taką samą broń", - ["threw_cannot_pickup"] = "nie możesz tego podnieść, gdyż masz pełny ekwipunek!", - ["threw_pickup_prompt"] = "naciśnij E aby podnieść", + -- Inventory + ["inventory"] = "ekwipunek %s / %s", + ["use"] = "użyj", + ["give"] = "daj", + ["remove"] = "usuń", + ["return"] = "wróć", + ["give_to"] = "daj dla", + ["amount"] = "ilość", + ["giveammo"] = "daj amunicje", + ["amountammo"] = "ilość amunicji", + ["noammo"] = "nie posiadasz wystarczającej ilości amunicji!", + ["gave_item"] = "dałeś/aś %sx %s dla %s", + ["received_item"] = "otrzymałeś/aś %sx %s od %s", + ["gave_weapon"] = "dałeś/aś %s dla %s", + ["gave_weapon_ammo"] = "dałeś/aś ~o~%sx %s do %s dla %s", + ["gave_weapon_withammo"] = "dałeś/aś %s z ~o~%sx %s dla %s", + ["gave_weapon_hasalready"] = "%s już posiada %s", + ["gave_weapon_noweapon"] = "%s nie posiada tej broni", + ["received_weapon"] = "otrzymałeś/aś %s od %s", + ["received_weapon_ammo"] = "otrzymałeś/aś ~o~%sx %s do twojego %s od %s", + ["received_weapon_withammo"] = "otrzymałeś/aś %s z ~o~%sx %s od %s", + ["received_weapon_hasalready"] = "%s próbował/a przekazać ci %s, lecz już posiadasz jedno", + ["received_weapon_noweapon"] = "%s próbował/a przekazać ci amunicje do %s, lecz nie posiadasz tej broni", + ["gave_account_money"] = "dałeś/aś %s$ (%s) dla %s", + ["received_account_money"] = "otrzymałeś/aś %s$ (%s) od %s", + ["amount_invalid"] = "nieprawidłowa ilość", + ["players_nearby"] = "brak graczy w pobliżu", + ["ex_inv_lim"] = "akcja nie jest możliwa, nie możesz mieć więcej %s", + ["imp_invalid_quantity"] = "akcja jest niemożliwa, nieprawidłowa ilość", + ["imp_invalid_amount"] = "akcja jest niemożliwa, nieprawidłowa kwota", + ["threw_standard"] = "wyrzuciłeś/aś %sx %s", + ["threw_account"] = "wyrzuciłeś/aś $%s %s", + ["threw_weapon"] = "wyrzuciłeś/aś %s", + ["threw_weapon_ammo"] = "wyrzuciłeś/aś %s z ~o~%sx %s", + ["threw_weapon_already"] = "już posiadasz taką samą broń", + ["threw_cannot_pickup"] = "nie możesz tego podnieść, gdyż masz pełny ekwipunek!", + ["threw_pickup_prompt"] = "naciśnij E aby podnieść", - -- Key mapping - ["keymap_showinventory"] = "pokaż ekwipunek", + -- Key mapping + ["keymap_showinventory"] = "pokaż ekwipunek", - -- Salary related - ["received_salary"] = "otrzymałeś/aś wynagrodzenie: %s$", - ["received_help"] = "otrzymałeś/aś zapomogę: $%s", - ["company_nomoney"] = "firma, w której pracujesz, jest zbyt biedna, by wypłacić twoją pensję", - ["received_paycheck"] = "otrzymano wypłate", - ["bank"] = "bank", - ["account_bank"] = "bank", - ["account_black_money"] = "brudne pieniądze", - ["account_money"] = "pieniądze", - ["act_imp"] = "działanie niemożliwe", - ["in_vehicle"] = "nie możesz przekazywać przedmiotów w pojeździe", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + -- Salary related + ["received_salary"] = "otrzymałeś/aś wynagrodzenie: %s$", + ["received_help"] = "otrzymałeś/aś zapomogę: $%s", + ["company_nomoney"] = "firma, w której pracujesz, jest zbyt biedna, by wypłacić twoją pensję", + ["received_paycheck"] = "otrzymano wypłate", + ["bank"] = "bank", + ["account_bank"] = "bank", + ["account_black_money"] = "brudne pieniądze", + ["account_money"] = "pieniądze", + ["act_imp"] = "działanie niemożliwe", + ["in_vehicle"] = "nie możesz przekazywać przedmiotów w pojeździe", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - -- Commands - ['command_car'] = 'przywołaj pojazd', - ['command_car_car'] = 'nazwa lub hash przywołanego pojazdu', - ['command_cardel'] = 'usuń pojazd w pobliżu', - ['command_cardel_radius'] = 'opcjonalnie usuń każdy pojazd w obszarze', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'wyczyść czat', - ['command_clearall'] = 'wyczyść czat dla wszystkich graczy', - ['command_clearinventory'] = 'wyczyść ekwipunek gracza', - ['command_clearloadout'] = 'wyczyść wyposarzenie gracza', - ['command_giveaccountmoney'] = 'daj pieniądze na podany typ konta', - ['command_giveaccountmoney_account'] = 'prawidłowy typ konta', - ['command_giveaccountmoney_amount'] = 'ilość do dodania', - ['command_giveaccountmoney_invalid'] = 'nieprawidłowy typ konta', - ['command_giveitem'] = 'daj przedmiot graczowi', - ['command_giveitem_item'] = 'nazwa przedmiotu', - ['command_giveitem_count'] = 'ilość przedimotu', - ['command_giveweapon'] = 'daj broń graczowi', - ['command_giveweapon_weapon'] = 'nazwa broni', - ['command_giveweapon_ammo'] = 'ilość amunicji', - ['command_giveweapon_hasalready'] = 'gracz już posiada tą broń', - ['command_giveweaponcomponent'] = 'daj komponent do broni graczowi', - ['command_giveweaponcomponent_component'] = 'nazwa komponentu', - ['command_giveweaponcomponent_invalid'] = 'nieprawidłowy komponent do broni', - ['command_giveweaponcomponent_hasalready'] = 'gracz już posiada ten komponent do tej broni', - ['command_giveweaponcomponent_missingweapon'] = 'gracz nie posiada tej broni', - ['command_save'] = 'zapisz gracza w bazie danych', - ['command_saveall'] = 'zapisz wszystkich graczy w bazie danych', - ['command_setaccountmoney'] = 'ustaw ilość pieniędzy danego konta dla gracza', - ['command_setaccountmoney_amount'] = 'ilość pieniędzy do ustawienia', - ['command_setcoords'] = 'teleportuj na koordynaty', - ['command_setcoords_x'] = 'x axis', - ['command_setcoords_y'] = 'y axis', - ['command_setcoords_z'] = 'z axis', - ['command_setjob'] = 'ustaw prace dla gracza', - ['command_setjob_job'] = 'nazwa pracy', - ['command_setjob_grade'] = 'stanowisko w pracy', - ['command_setjob_invalid'] = 'praca, stanowisko lub obydwa są nieprawidłowe', - ['command_setgroup'] = 'ustaw grupe gracza', - ['command_setgroup_group'] = 'nazwa grupy', - ['commanderror_argumentmismatch'] = 'nieprawiłowa ilość argumentów (przeszło %s, wymagane %s)', - ['commanderror_argumentmismatch_number'] = 'nieprawidłowy typ argumentu #%s (przeszedł tekst, wymagany numer)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'nieprawidłowa nazwa przedmiotu', - ['commanderror_invalidweapon'] = 'nieprawidłowa broń', - ['commanderror_console'] = 'podana komenda nie może zostać uruchomiona przez konsole', - ['commanderror_invalidcommand'] = '/%s nie jest poprawną komendą!', - ['commanderror_invalidplayerid'] = 'brak dostepnego gracza pasującego do podanego id serwerowego', - ['commandgeneric_playerid'] = 'id gracza', - ['command_giveammo_noweapon_found'] = '%s does not have that weapon', - ['command_giveammo_weapon'] = 'Weapon name', - ['command_giveammo_ammo'] = 'Ammo Quantity', + -- Commands + ["command_car"] = "przywołaj pojazd", + ["command_car_car"] = "nazwa lub hash przywołanego pojazdu", + ["command_cardel"] = "usuń pojazd w pobliżu", + ["command_cardel_radius"] = "opcjonalnie usuń każdy pojazd w obszarze", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "wyczyść czat", + ["command_clearall"] = "wyczyść czat dla wszystkich graczy", + ["command_clearinventory"] = "wyczyść ekwipunek gracza", + ["command_clearloadout"] = "wyczyść wyposarzenie gracza", + ["command_giveaccountmoney"] = "daj pieniądze na podany typ konta", + ["command_giveaccountmoney_account"] = "prawidłowy typ konta", + ["command_giveaccountmoney_amount"] = "ilość do dodania", + ["command_giveaccountmoney_invalid"] = "nieprawidłowy typ konta", + ["command_giveitem"] = "daj przedmiot graczowi", + ["command_giveitem_item"] = "nazwa przedmiotu", + ["command_giveitem_count"] = "ilość przedimotu", + ["command_giveweapon"] = "daj broń graczowi", + ["command_giveweapon_weapon"] = "nazwa broni", + ["command_giveweapon_ammo"] = "ilość amunicji", + ["command_giveweapon_hasalready"] = "gracz już posiada tą broń", + ["command_giveweaponcomponent"] = "daj komponent do broni graczowi", + ["command_giveweaponcomponent_component"] = "nazwa komponentu", + ["command_giveweaponcomponent_invalid"] = "nieprawidłowy komponent do broni", + ["command_giveweaponcomponent_hasalready"] = "gracz już posiada ten komponent do tej broni", + ["command_giveweaponcomponent_missingweapon"] = "gracz nie posiada tej broni", + ["command_save"] = "zapisz gracza w bazie danych", + ["command_saveall"] = "zapisz wszystkich graczy w bazie danych", + ["command_setaccountmoney"] = "ustaw ilość pieniędzy danego konta dla gracza", + ["command_setaccountmoney_amount"] = "ilość pieniędzy do ustawienia", + ["command_setcoords"] = "teleportuj na koordynaty", + ["command_setcoords_x"] = "x axis", + ["command_setcoords_y"] = "y axis", + ["command_setcoords_z"] = "z axis", + ["command_setjob"] = "ustaw prace dla gracza", + ["command_setjob_job"] = "nazwa pracy", + ["command_setjob_grade"] = "stanowisko w pracy", + ["command_setjob_invalid"] = "praca, stanowisko lub obydwa są nieprawidłowe", + ["command_setgroup"] = "ustaw grupe gracza", + ["command_setgroup_group"] = "nazwa grupy", + ["commanderror_argumentmismatch"] = "nieprawiłowa ilość argumentów (przeszło %s, wymagane %s)", + ["commanderror_argumentmismatch_number"] = "nieprawidłowy typ argumentu #%s (przeszedł tekst, wymagany numer)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "nieprawidłowa nazwa przedmiotu", + ["commanderror_invalidweapon"] = "nieprawidłowa broń", + ["commanderror_console"] = "podana komenda nie może zostać uruchomiona przez konsole", + ["commanderror_invalidcommand"] = "/%s nie jest poprawną komendą!", + ["commanderror_invalidplayerid"] = "brak dostepnego gracza pasującego do podanego id serwerowego", + ["commandgeneric_playerid"] = "id gracza", + ["command_giveammo_noweapon_found"] = "%s does not have that weapon", + ["command_giveammo_weapon"] = "Weapon name", + ["command_giveammo_ammo"] = "Ammo Quantity", - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "$%s", + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "$%s", - -- Weapons - ["weapon_knife"] = "nóż", - ["weapon_nightstick"] = "pałka", - ["weapon_hammer"] = "młotek", - ["weapon_bat"] = "kij", - ["weapon_golfclub"] = "kij golfowy", - ["weapon_crowbar"] = "łom", - ["weapon_pistol"] = "pistolet", - ["weapon_combatpistol"] = "pistolet bojowy", - ["weapon_appistol"] = "ap pistol", - ["weapon_pistol50"] = "pistol .50", - ["weapon_microsmg"] = "micro smg", - ["weapon_smg"] = "smg", - ["weapon_assaultsmg"] = "assault smg", - ["weapon_assaultrifle"] = "assault rifle", - ["weapon_carbinerifle"] = "carbine rifle", - ["weapon_advancedrifle"] = "advanced rifle", - ["weapon_mg"] = "mg", - ["weapon_combatmg"] = "combat mg", - ["weapon_pumpshotgun"] = "pump shotgun", - ["weapon_sawnoffshotgun"] = "sawed off shotgun", - ["weapon_assaultshotgun"] = "assault shotgun", - ["weapon_bullpupshotgun"] = "bullpup shotgun", - ["weapon_stungun"] = "tazer", - ["weapon_sniperrifle"] = "karabin snajperski", - ["weapon_heavysniper"] = "ciężki karabin snajperski", - ["weapon_grenadelauncher"] = "granatnik", - ["weapon_rpg"] = "wyrzutnia rakiet", - ["weapon_minigun"] = "minigun", - ["weapon_grenade"] = "granat", - ["weapon_stickybomb"] = "ładunek przylepny", - ["weapon_smokegrenade"] = "granat dymny", - ["weapon_bzgas"] = "bz gas", - ["weapon_molotov"] = "koktajl Mołotowa", - ["weapon_fireextinguisher"] = "gaśnica", - ["weapon_petrolcan"] = "kanister", - ["weapon_ball"] = "piłka", - ["weapon_snspistol"] = "sns pistolet", - ["weapon_bottle"] = "butelka", - ["weapon_gusenberg"] = "gusenberg sweeper", - ["weapon_specialcarbine"] = "special carbine", - ["weapon_heavypistol"] = "heavy pistol", - ["weapon_bullpuprifle"] = "karabin wyborowy", - ["weapon_dagger"] = "sztylet", - ["weapon_vintagepistol"] = "vintage pistol", - ["weapon_firework"] = "fajerwerki", - ["weapon_musket"] = "muszkiet", - ["weapon_heavyshotgun"] = "ciężki shotgun", - ["weapon_marksmanrifle"] = "marksman rifle", - ["weapon_hominglauncher"] = "program uruchamiający", - ["weapon_proxmine"] = "mina zbliżeniowa", - ["weapon_snowball"] = "śnieżka", - ["weapon_flaregun"] = "flara", - ["weapon_combatpdw"] = "combat pdw", - ["weapon_marksmanpistol"] = "marksman pistol", - ["weapon_knuckle"] = "kastety", - ["weapon_hatchet"] = "toporek", - ["weapon_railgun"] = "karabin", - ["weapon_machete"] = "meczeta", - ["weapon_machinepistol"] = "pistolet maszynowy", - ["weapon_switchblade"] = "scyzoryk", - ["weapon_revolver"] = "ciężki rewolwer", - ["weapon_dbshotgun"] = "dwururka", - ["weapon_compactrifle"] = "compact rifle", - ["weapon_autoshotgun"] = "auto shotgun", - ["weapon_battleaxe"] = "topór bitewny", - ["weapon_compactlauncher"] = "compact launcher", - ["weapon_minismg"] = "mini smg", - ["weapon_pipebomb"] = "bomba rurowa", - ["weapon_poolcue"] = "kij bilardowy", - ["weapon_wrench"] = "klucz do rur", - ["weapon_flashlight"] = "latarka", - ["gadget_parachute"] = "spadochron", - ["weapon_flare"] = "pistolet sygnałowy", - ["weapon_doubleaction"] = "double-Action Revolver", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + -- Weapons + ["weapon_knife"] = "nóż", + ["weapon_nightstick"] = "pałka", + ["weapon_hammer"] = "młotek", + ["weapon_bat"] = "kij", + ["weapon_golfclub"] = "kij golfowy", + ["weapon_crowbar"] = "łom", + ["weapon_pistol"] = "pistolet", + ["weapon_combatpistol"] = "pistolet bojowy", + ["weapon_appistol"] = "ap pistol", + ["weapon_pistol50"] = "pistol .50", + ["weapon_microsmg"] = "micro smg", + ["weapon_smg"] = "smg", + ["weapon_assaultsmg"] = "assault smg", + ["weapon_assaultrifle"] = "assault rifle", + ["weapon_carbinerifle"] = "carbine rifle", + ["weapon_advancedrifle"] = "advanced rifle", + ["weapon_mg"] = "mg", + ["weapon_combatmg"] = "combat mg", + ["weapon_pumpshotgun"] = "pump shotgun", + ["weapon_sawnoffshotgun"] = "sawed off shotgun", + ["weapon_assaultshotgun"] = "assault shotgun", + ["weapon_bullpupshotgun"] = "bullpup shotgun", + ["weapon_stungun"] = "tazer", + ["weapon_sniperrifle"] = "karabin snajperski", + ["weapon_heavysniper"] = "ciężki karabin snajperski", + ["weapon_grenadelauncher"] = "granatnik", + ["weapon_rpg"] = "wyrzutnia rakiet", + ["weapon_minigun"] = "minigun", + ["weapon_grenade"] = "granat", + ["weapon_stickybomb"] = "ładunek przylepny", + ["weapon_smokegrenade"] = "granat dymny", + ["weapon_bzgas"] = "bz gas", + ["weapon_molotov"] = "koktajl Mołotowa", + ["weapon_fireextinguisher"] = "gaśnica", + ["weapon_petrolcan"] = "kanister", + ["weapon_ball"] = "piłka", + ["weapon_snspistol"] = "sns pistolet", + ["weapon_bottle"] = "butelka", + ["weapon_gusenberg"] = "gusenberg sweeper", + ["weapon_specialcarbine"] = "special carbine", + ["weapon_heavypistol"] = "heavy pistol", + ["weapon_bullpuprifle"] = "karabin wyborowy", + ["weapon_dagger"] = "sztylet", + ["weapon_vintagepistol"] = "vintage pistol", + ["weapon_firework"] = "fajerwerki", + ["weapon_musket"] = "muszkiet", + ["weapon_heavyshotgun"] = "ciężki shotgun", + ["weapon_marksmanrifle"] = "marksman rifle", + ["weapon_hominglauncher"] = "program uruchamiający", + ["weapon_proxmine"] = "mina zbliżeniowa", + ["weapon_snowball"] = "śnieżka", + ["weapon_flaregun"] = "flara", + ["weapon_combatpdw"] = "combat pdw", + ["weapon_marksmanpistol"] = "marksman pistol", + ["weapon_knuckle"] = "kastety", + ["weapon_hatchet"] = "toporek", + ["weapon_railgun"] = "karabin", + ["weapon_machete"] = "meczeta", + ["weapon_machinepistol"] = "pistolet maszynowy", + ["weapon_switchblade"] = "scyzoryk", + ["weapon_revolver"] = "ciężki rewolwer", + ["weapon_dbshotgun"] = "dwururka", + ["weapon_compactrifle"] = "compact rifle", + ["weapon_autoshotgun"] = "auto shotgun", + ["weapon_battleaxe"] = "topór bitewny", + ["weapon_compactlauncher"] = "compact launcher", + ["weapon_minismg"] = "mini smg", + ["weapon_pipebomb"] = "bomba rurowa", + ["weapon_poolcue"] = "kij bilardowy", + ["weapon_wrench"] = "klucz do rur", + ["weapon_flashlight"] = "latarka", + ["gadget_parachute"] = "spadochron", + ["weapon_flare"] = "pistolet sygnałowy", + ["weapon_doubleaction"] = "double-Action Revolver", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - -- Weapon Components - ["component_clip_default"] = "domyślny tłumik", - ["component_clip_extended"] = "rozszerzony tłumik", - ["component_clip_drum"] = "magazynek bębnowy", - ["component_clip_box"] = "magazynek", - ["component_flashlight"] = "latarka", - ["component_scope"] = "luneta", - ["component_scope_advanced"] = "zaawansowana luneta", - ["component_suppressor"] = "tłumik", - ["component_grip"] = "uchwyt", - ["component_luxary_finish"] = "luksusowe wykończenie broni", + -- Weapon Components + ["component_clip_default"] = "domyślny tłumik", + ["component_clip_extended"] = "rozszerzony tłumik", + ["component_clip_drum"] = "magazynek bębnowy", + ["component_clip_box"] = "magazynek", + ["component_flashlight"] = "latarka", + ["component_scope"] = "luneta", + ["component_scope_advanced"] = "zaawansowana luneta", + ["component_suppressor"] = "tłumik", + ["component_grip"] = "uchwyt", + ["component_luxary_finish"] = "luksusowe wykończenie broni", - -- 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 + -- 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 Ammo - ["ammo_rounds"] = "nabój/oi", - ["ammo_shells"] = "pocisk(ów)", - ["ammo_charge"] = "naładowania", - ["ammo_petrol"] = "galon(y) paliwa", - ["ammo_firework"] = "fajerwerka/i", - ["ammo_rockets"] = "rakieta/y", - ["ammo_grenadelauncher"] = "granat(y)", - ["ammo_grenade"] = "granat(y)", - ["ammo_stickybomb"] = "bomba/y", - ["ammo_pipebomb"] = "bomba/y", - ["ammo_smokebomb"] = "bomba/y", - ["ammo_molotov"] = "kontail(e)", - ["ammo_proxmine"] = "mina/y", - ["ammo_bzgas"] = "puszka/ek", - ["ammo_ball"] = "kula/e", - ["ammo_snowball"] = "snieżka/i", - ["ammo_flare"] = "flara/y", - ["ammo_flaregun"] = "flara/y", + -- Weapon Ammo + ["ammo_rounds"] = "nabój/oi", + ["ammo_shells"] = "pocisk(ów)", + ["ammo_charge"] = "naładowania", + ["ammo_petrol"] = "galon(y) paliwa", + ["ammo_firework"] = "fajerwerka/i", + ["ammo_rockets"] = "rakieta/y", + ["ammo_grenadelauncher"] = "granat(y)", + ["ammo_grenade"] = "granat(y)", + ["ammo_stickybomb"] = "bomba/y", + ["ammo_pipebomb"] = "bomba/y", + ["ammo_smokebomb"] = "bomba/y", + ["ammo_molotov"] = "kontail(e)", + ["ammo_proxmine"] = "mina/y", + ["ammo_bzgas"] = "puszka/ek", + ["ammo_ball"] = "kula/e", + ["ammo_snowball"] = "snieżka/i", + ["ammo_flare"] = "flara/y", + ["ammo_flaregun"] = "flara/y", - -- Weapon Tints - ["tint_default"] = "domyślny skin", - ["tint_green"] = "zielony skin", - ["tint_gold"] = "złoty skin", - ["tint_pink"] = "różowy skin", - ["tint_army"] = "wojskowy skin", - ["tint_lspd"] = "niebieski skin", - ["tint_orange"] = "pomarańczowy skin", - ["tint_platinum"] = "platynowy skin", + -- Weapon Tints + ["tint_default"] = "domyślny skin", + ["tint_green"] = "zielony skin", + ["tint_gold"] = "złoty skin", + ["tint_pink"] = "różowy skin", + ["tint_army"] = "wojskowy skin", + ["tint_lspd"] = "niebieski skin", + ["tint_orange"] = "pomarańczowy skin", + ["tint_platinum"] = "platynowy skin", } diff --git a/[core]/es_extended/locales/sl.lua b/[core]/es_extended/locales/sl.lua index 0fe41be5d..2c3e1f8e8 100644 --- a/[core]/es_extended/locales/sl.lua +++ b/[core]/es_extended/locales/sl.lua @@ -1,377 +1,377 @@ Locales["sl"] = { - -- Inventory - ["inventory"] = "Shramba ( Teza %s / %s )", - ["use"] = "Uporabi", - ["give"] = "Daj", - ["remove"] = "Vrzi", - ["return"] = "Povratek", - ["give_to"] = "Daj", - ["amount"] = "Vsota", - ["giveammo"] = "Daj Strelivo", - ["amountammo"] = "Količina streliva", - ["noammo"] = "Ni dovolj!", - ["gave_item"] = "Dal si %sx %s k %s", - ["received_item"] = "Dobil si %sx %s od %s", - ["gave_weapon"] = "Dajanje %s do %s", - ["gave_weapon_ammo"] = "Dajanje ~o~%sx %s za %s do %s", - ["gave_weapon_withammo"] = "Dajanje %s z ~o~%sx %s do %s", - ["gave_weapon_hasalready"] = "%s ze ima %s", - ["gave_weapon_noweapon"] = "%s se nima tega orozja", - ["received_weapon"] = "Dobil si %s od %s", - ["received_weapon_ammo"] = "Dobil ~o~%sx %s za tvoj/o %s od %s", - ["received_weapon_withammo"] = "Dobil si %s z ~o~%sx %s od %s", - ["received_weapon_hasalready"] = "%s vam je poskušal dati %s, vendar že imate to orožje", - ["received_weapon_noweapon"] = "%s vam je poskušal dati strelivo za %s, vendar nimate tega orožja", - ["gave_account_money"] = "Dajanje $%s (%s) do %s", - ["received_account_money"] = "Dobil $%s (%s) od %s", - ["amount_invalid"] = "Neveljavna količina", - ["players_nearby"] = "V blizini ni ljudi", - ["ex_inv_lim"] = "Dejanja ni mogoče izvesti, saj presega največjo težo %s", - ["imp_invalid_quantity"] = "Dejanja ni mogoče izvesti, količina je neveljavna", - ["imp_invalid_amount"] = "Dejanja ni mogoče izvesti, znesek je neveljaven", - ["threw_standard"] = "Metanje %sx %s", - ["threw_account"] = "Metanje $%s %s", - ["threw_weapon"] = "Metanje %s", - ["threw_weapon_ammo"] = "Metanje %s z ~o~%sx %s", - ["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", - ["company_nomoney"] = "podjetje, v katerem ste zaposleni, je prerevno, da bi vam izplačevalo plačo", - ["received_paycheck"] = "Prejel si Placilo", - ["bank"] = "NLB", - ["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", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'Teleportiraj osebo do sebe', - ['command_car'] = 'Spawnaj si vozilo', - ['command_car_car'] = 'Koda vozila', - ['command_cardel'] = 'Odstranite vozila v bližini', - ['command_cardel_radius'] = 'Odstrani vsa vozila v določenem radiju', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Odstrani vsa sporocila v CHATU', - ['command_clearall'] = 'Počisti besedilo klepeta za vse igralce', - ['command_clearinventory'] = 'Vzemi vse stvari iz osebove shrambe', - ['command_clearloadout'] = 'Odstranite vse orožje iz nalaganja igralcev', - ['command_freeze'] = 'Zmrzni osebno', - ['command_unfreeze'] = 'Odmrzni osebo', - ['command_giveaccountmoney'] = 'Poslji denar na dolocen Bancni racun', - ['command_giveaccountmoney_account'] = 'Račun za dodajanje', - ['command_giveaccountmoney_amount'] = 'Znesek za dodajanje', - ['command_giveaccountmoney_invalid'] = 'Ime računa je neveljavno', - ['command_giveitem'] = 'Daj osebi neko stvar', - ['command_giveitem_item'] = 'Ime Stvari', - ['command_giveitem_count'] = 'Kolicina', - ['command_giveweapon'] = 'Daj osebi orozje', - ['command_giveweapon_weapon'] = 'Ime orozja', - ['command_giveweapon_ammo'] = 'Kolicina', - ['command_giveweapon_hasalready'] = 'Oseba ze ima to orozje!', - ['command_giveweaponcomponent'] = 'Daj komponento orožja igralcu', - ['command_giveweaponcomponent_component'] = 'Ime Komponente', - ['command_giveweaponcomponent_invalid'] = 'Neveljavna komponenta orožja', - ['command_giveweaponcomponent_hasalready'] = 'Oseba ze ima to komponento', - ['command_giveweaponcomponent_missingweapon'] = 'Oseba nima tega orozja!', - ['command_goto'] = 'Teleportirajte se k igralcu', - ['command_kill'] = 'Ubij igralca', - ['command_save'] = 'Prisilno shrani podatke igralca!', - ['command_saveall'] = 'Prisilno shrani vse podatke igralca', - ['command_setaccountmoney'] = 'Nastavite denar znotraj dolocenega racuna', - ['command_setaccountmoney_amount'] = 'Znesek', - ['command_setcoords'] = 'Teleport na dolocene koordinate', - ['command_setcoords_x'] = 'Vrednost X', - ['command_setcoords_y'] = 'Vrednost Y', - ['command_setcoords_z'] = 'Z vrednost', - ['command_setjob'] = 'Nastavi opravilo igralca', - ['command_setjob_job'] = 'Ime', - ['command_setjob_grade'] = 'Delovna ocena', - ['command_setjob_invalid'] = 'delovno mesto, ocena ali oboje ni veljavno', - ['command_setgroup'] = 'Nastavi skupino dovoljenj igralcev', - ['command_setgroup_group'] = 'Ime skupine', - ['commanderror_argumentmismatch'] = 'Neveljavno stetje argumentov (podano %s, zeleno %s)', - ['commanderror_argumentmismatch_number'] = 'Neveljaven podatkovni tip argumenta #%s (posredovan niz, zeleno stevilo)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Neveljaven element', - ['commanderror_invalidweapon'] = 'Neveljavno orozje', - ['commanderror_console'] = 'Ukaza ni mogoce izvesti s konzole', - ['commanderror_invalidcommand'] = 'Neveljaven ukaz - /%s', - ['commanderror_invalidplayerid'] = 'Naveden igralec ni na spletu', - ['commandgeneric_playerid'] = 'Id streznika igralca', - ['command_giveammo_noweapon_found'] = '%s nima tega orozja', - ['command_giveammo_weapon'] = 'Ime orozja', - ['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", - ["weapon_battleaxe"] = "Battle Axe", - ["weapon_bottle"] = "Bottle", - ["weapon_crowbar"] = "Crowbar", - ["weapon_flashlight"] = "Flashlight", - ["weapon_golfclub"] = "Golf Club", - ["weapon_hammer"] = "Hammer", - ["weapon_hatchet"] = "Hatchet", - ["weapon_knife"] = "Knife", - ["weapon_knuckle"] = "Knuckledusters", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Nightstick", - ["weapon_wrench"] = "Pipe Wrench", - ["weapon_poolcue"] = "Pool Cue", - ["weapon_stone_hatchet"] = "Stone Hatchet", - ["weapon_switchblade"] = "Switchblade", - - -- Handguns - ["weapon_appistol"] = "AP Pistol", - ["weapon_ceramicpistol"] = "Ceramic Pistol", - ["weapon_combatpistol"] = "Combat Pistol", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadget Pistol", - ["weapon_heavypistol"] = "Heavy Pistol", - ["weapon_revolver"] = "Heavy Revolver", - ["weapon_revolver_mk2"] = "Heavy Revolver MK2", - ["weapon_marksmanpistol"] = "Marksman Pistol", - ["weapon_pistol"] = "Pistol", - ["weapon_pistol_mk2"] = "Pistol MK2", - ["weapon_pistol50"] = "Pistol .50", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistol", - - -- Shotguns - ["weapon_assaultshotgun"] = "Assault Shotgun", - ["weapon_autoshotgun"] = "Auto Shotgun", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Combat Shotgun", - ["weapon_dbshotgun"] = "Double Barrel Shotgun", - ["weapon_heavyshotgun"] = "Heavy Shotgun", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pump Shotgun", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Assault SMG", - ["weapon_combatmg"] = "Combat MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Machine Pistol", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unholy Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Advanced Rifle", - ["weapon_assaultrifle"] = "Assault Rifle", - ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", - ["weapon_bullpuprifle"] = "Bullpup Rifle", - ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", - ["weapon_carbinerifle"] = "Carbine Rifle", - ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", - ["weapon_compactrifle"] = "Compact Rifle", - ["weapon_militaryrifle"] = "Military Rifle", - ["weapon_specialcarbine"] = "Special Carbine", - ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - - -- Sniper - ["weapon_heavysniper"] = "Heavy Sniper", - ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", - ["weapon_marksmanrifle"] = "Marksman Rifle", - ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", - ["weapon_sniperrifle"] = "Sniper Rifle", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Compact Launcher", - ["weapon_firework"] = "Firework Launcher", - ["weapon_grenadelauncher"] = "Grenade Launcher", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Rocket Launcher", - ["weapon_rayminigun"] = "Widowmaker", - - -- 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_acidpackage"] = "Acid Package", -- not translated - ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated - ["weapon_railgunxm3"] = "Railgun", -- not translated - - -- Thrown - ["weapon_ball"] = "Baseball", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Grenade", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Hazardous Jerrycan", - ["weapon_molotov"] = "Molotov Cocktail", - ["weapon_proxmine"] = "Proximity Mine", - ["weapon_pipebomb"] = "Pipe Bomb", - ["weapon_snowball"] = "Snowball", - ["weapon_stickybomb"] = "Sticky Bomb", - ["weapon_smokegrenade"] = "Tear Gas", - - -- Special - ["weapon_fireextinguisher"] = "Fire Extinguisher", - ["weapon_digiscanner"] = "Digital Scanner", - ["weapon_garbagebag"] = "Garbage Bag", - ["weapon_handcuffs"] = "Handcuffs", - ["gadget_nightvision"] = "Night Vision", - ["gadget_parachute"] = "parachute", - - -- Weapon Components - ["component_knuckle_base"] = "base Model", - ["component_knuckle_pimp"] = "the Pimp", - ["component_knuckle_ballas"] = "the Ballas", - ["component_knuckle_dollar"] = "the Hustler", - ["component_knuckle_diamond"] = "the Rock", - ["component_knuckle_hate"] = "the Hater", - ["component_knuckle_love"] = "the Lover", - ["component_knuckle_player"] = "the Player", - ["component_knuckle_king"] = "the King", - ["component_knuckle_vagos"] = "the Vagos", - - ["component_luxary_finish"] = "luxary Weapon Finish", - - ["component_handle_default"] = "default Handle", - ["component_handle_vip"] = "vIP Handle", - ["component_handle_bodyguard"] = "bodyguard Handle", - - ["component_vip_finish"] = "vIP Finish", - ["component_bodyguard_finish"] = "bodyguard Finish", - - ["component_camo_finish"] = "digital Camo", - ["component_camo_finish2"] = "brushstroke Camo", - ["component_camo_finish3"] = "woodland Camo", - ["component_camo_finish4"] = "skull Camo", - ["component_camo_finish5"] = "sessanta Nove Camo", - ["component_camo_finish6"] = "perseus Camo", - ["component_camo_finish7"] = "leopard Camo", - ["component_camo_finish8"] = "zebra Camo", - ["component_camo_finish9"] = "geometric Camo", - ["component_camo_finish10"] = "boom Camo", - ["component_camo_finish11"] = "patriotic Camo", - - ["component_camo_slide_finish"] = "digital Slide Camo", - ["component_camo_slide_finish2"] = "brushstroke Slide Camo", - ["component_camo_slide_finish3"] = "woodland Slide Camo", - ["component_camo_slide_finish4"] = "skull Slide Camo", - ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", - ["component_camo_slide_finish6"] = "perseus Slide Camo", - ["component_camo_slide_finish7"] = "leopard Slide Camo", - ["component_camo_slide_finish8"] = "zebra Slide Camo", - ["component_camo_slide_finish9"] = "geometric Slide Camo", - ["component_camo_slide_finish10"] = "boom Slide Camo", - ["component_camo_slide_finish11"] = "patriotic Slide Camo", - - ["component_clip_default"] = "default Magazine", - ["component_clip_extended"] = "extended Magazine", - ["component_clip_drum"] = "drum Magazine", - ["component_clip_box"] = "box Magazine", - - ["component_scope_holo"] = "holographic Scope", - ["component_scope_small"] = "small Scope", - ["component_scope_medium"] = "medium Scope", - ["component_scope_large"] = "large Scope", - ["component_scope"] = "mounted Scope", - ["component_scope_advanced"] = "advanced Scope", - ["component_ironsights"] = "ironsights", - - ["component_suppressor"] = "suppressor", - ["component_compensator"] = "compensator", - - ["component_muzzle_flat"] = "flat Muzzle Brake", - ["component_muzzle_tactical"] = "tactical Muzzle Brake", - ["component_muzzle_fat"] = "fat-End Muzzle Brake", - ["component_muzzle_precision"] = "precision Muzzle Brake", - ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", - ["component_muzzle_slanted"] = "slanted Muzzle Brake", - ["component_muzzle_split"] = "split-End Muzzle Brake", - ["component_muzzle_squared"] = "squared Muzzle Brake", - - ["component_flashlight"] = "flashlight", - ["component_grip"] = "grip", - - ["component_barrel_default"] = "default Barrel", - ["component_barrel_heavy"] = "heavy Barrel", - - ["component_ammo_tracer"] = "tracer Ammo", - ["component_ammo_incendiary"] = "incendiary Ammo", - ["component_ammo_hollowpoint"] = "hollowpoint Ammo", - ["component_ammo_fmj"] = "fMJ Ammo", - ["component_ammo_armor"] = "armor Piercing Ammo", - ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", - - ["component_shells_default"] = "default Shells", - ["component_shells_incendiary"] = "dragons Breath Shells", - ["component_shells_armor"] = "steel Buckshot Shells", - ["component_shells_hollowpoint"] = "flechette Shells", - ["component_shells_explosive"] = "explosive Slug Shells", - - -- Weapon Ammo - ["ammo_rounds"] = "round(s)", - ["ammo_shells"] = "shell(s)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "gallons of fuel", - ["ammo_firework"] = "firework(s)", - ["ammo_rockets"] = "rocket(s)", - ["ammo_grenadelauncher"] = "grenade(s)", - ["ammo_grenade"] = "grenade(s)", - ["ammo_stickybomb"] = "bomb(s)", - ["ammo_pipebomb"] = "bomb(s)", - ["ammo_smokebomb"] = "bomb(s)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mine(s)", - ["ammo_bzgas"] = "can(s)", - ["ammo_ball"] = "ball(s)", - ["ammo_snowball"] = "snowball(s)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "default skin", - ["tint_green"] = "green skin", - ["tint_gold"] = "gold skin", - ["tint_pink"] = "pink skin", - ["tint_army"] = "army skin", - ["tint_lspd"] = "blue skin", - ["tint_orange"] = "orange skin", - ["tint_platinum"] = "platinum skin", + -- Inventory + ["inventory"] = "Shramba ( Teza %s / %s )", + ["use"] = "Uporabi", + ["give"] = "Daj", + ["remove"] = "Vrzi", + ["return"] = "Povratek", + ["give_to"] = "Daj", + ["amount"] = "Vsota", + ["giveammo"] = "Daj Strelivo", + ["amountammo"] = "Količina streliva", + ["noammo"] = "Ni dovolj!", + ["gave_item"] = "Dal si %sx %s k %s", + ["received_item"] = "Dobil si %sx %s od %s", + ["gave_weapon"] = "Dajanje %s do %s", + ["gave_weapon_ammo"] = "Dajanje ~o~%sx %s za %s do %s", + ["gave_weapon_withammo"] = "Dajanje %s z ~o~%sx %s do %s", + ["gave_weapon_hasalready"] = "%s ze ima %s", + ["gave_weapon_noweapon"] = "%s se nima tega orozja", + ["received_weapon"] = "Dobil si %s od %s", + ["received_weapon_ammo"] = "Dobil ~o~%sx %s za tvoj/o %s od %s", + ["received_weapon_withammo"] = "Dobil si %s z ~o~%sx %s od %s", + ["received_weapon_hasalready"] = "%s vam je poskušal dati %s, vendar že imate to orožje", + ["received_weapon_noweapon"] = "%s vam je poskušal dati strelivo za %s, vendar nimate tega orožja", + ["gave_account_money"] = "Dajanje $%s (%s) do %s", + ["received_account_money"] = "Dobil $%s (%s) od %s", + ["amount_invalid"] = "Neveljavna količina", + ["players_nearby"] = "V blizini ni ljudi", + ["ex_inv_lim"] = "Dejanja ni mogoče izvesti, saj presega največjo težo %s", + ["imp_invalid_quantity"] = "Dejanja ni mogoče izvesti, količina je neveljavna", + ["imp_invalid_amount"] = "Dejanja ni mogoče izvesti, znesek je neveljaven", + ["threw_standard"] = "Metanje %sx %s", + ["threw_account"] = "Metanje $%s %s", + ["threw_weapon"] = "Metanje %s", + ["threw_weapon_ammo"] = "Metanje %s z ~o~%sx %s", + ["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", + ["company_nomoney"] = "podjetje, v katerem ste zaposleni, je prerevno, da bi vam izplačevalo plačo", + ["received_paycheck"] = "Prejel si Placilo", + ["bank"] = "NLB", + ["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", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "Teleportiraj osebo do sebe", + ["command_car"] = "Spawnaj si vozilo", + ["command_car_car"] = "Koda vozila", + ["command_cardel"] = "Odstranite vozila v bližini", + ["command_cardel_radius"] = "Odstrani vsa vozila v določenem radiju", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Odstrani vsa sporocila v CHATU", + ["command_clearall"] = "Počisti besedilo klepeta za vse igralce", + ["command_clearinventory"] = "Vzemi vse stvari iz osebove shrambe", + ["command_clearloadout"] = "Odstranite vse orožje iz nalaganja igralcev", + ["command_freeze"] = "Zmrzni osebno", + ["command_unfreeze"] = "Odmrzni osebo", + ["command_giveaccountmoney"] = "Poslji denar na dolocen Bancni racun", + ["command_giveaccountmoney_account"] = "Račun za dodajanje", + ["command_giveaccountmoney_amount"] = "Znesek za dodajanje", + ["command_giveaccountmoney_invalid"] = "Ime računa je neveljavno", + ["command_giveitem"] = "Daj osebi neko stvar", + ["command_giveitem_item"] = "Ime Stvari", + ["command_giveitem_count"] = "Kolicina", + ["command_giveweapon"] = "Daj osebi orozje", + ["command_giveweapon_weapon"] = "Ime orozja", + ["command_giveweapon_ammo"] = "Kolicina", + ["command_giveweapon_hasalready"] = "Oseba ze ima to orozje!", + ["command_giveweaponcomponent"] = "Daj komponento orožja igralcu", + ["command_giveweaponcomponent_component"] = "Ime Komponente", + ["command_giveweaponcomponent_invalid"] = "Neveljavna komponenta orožja", + ["command_giveweaponcomponent_hasalready"] = "Oseba ze ima to komponento", + ["command_giveweaponcomponent_missingweapon"] = "Oseba nima tega orozja!", + ["command_goto"] = "Teleportirajte se k igralcu", + ["command_kill"] = "Ubij igralca", + ["command_save"] = "Prisilno shrani podatke igralca!", + ["command_saveall"] = "Prisilno shrani vse podatke igralca", + ["command_setaccountmoney"] = "Nastavite denar znotraj dolocenega racuna", + ["command_setaccountmoney_amount"] = "Znesek", + ["command_setcoords"] = "Teleport na dolocene koordinate", + ["command_setcoords_x"] = "Vrednost X", + ["command_setcoords_y"] = "Vrednost Y", + ["command_setcoords_z"] = "Z vrednost", + ["command_setjob"] = "Nastavi opravilo igralca", + ["command_setjob_job"] = "Ime", + ["command_setjob_grade"] = "Delovna ocena", + ["command_setjob_invalid"] = "delovno mesto, ocena ali oboje ni veljavno", + ["command_setgroup"] = "Nastavi skupino dovoljenj igralcev", + ["command_setgroup_group"] = "Ime skupine", + ["commanderror_argumentmismatch"] = "Neveljavno stetje argumentov (podano %s, zeleno %s)", + ["commanderror_argumentmismatch_number"] = "Neveljaven podatkovni tip argumenta #%s (posredovan niz, zeleno stevilo)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Neveljaven element", + ["commanderror_invalidweapon"] = "Neveljavno orozje", + ["commanderror_console"] = "Ukaza ni mogoce izvesti s konzole", + ["commanderror_invalidcommand"] = "Neveljaven ukaz - /%s", + ["commanderror_invalidplayerid"] = "Naveden igralec ni na spletu", + ["commandgeneric_playerid"] = "Id streznika igralca", + ["command_giveammo_noweapon_found"] = "%s nima tega orozja", + ["command_giveammo_weapon"] = "Ime orozja", + ["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", + ["weapon_battleaxe"] = "Battle Axe", + ["weapon_bottle"] = "Bottle", + ["weapon_crowbar"] = "Crowbar", + ["weapon_flashlight"] = "Flashlight", + ["weapon_golfclub"] = "Golf Club", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Hatchet", + ["weapon_knife"] = "Knife", + ["weapon_knuckle"] = "Knuckledusters", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Nightstick", + ["weapon_wrench"] = "Pipe Wrench", + ["weapon_poolcue"] = "Pool Cue", + ["weapon_stone_hatchet"] = "Stone Hatchet", + ["weapon_switchblade"] = "Switchblade", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- 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_acidpackage"] = "Acid Package", -- not translated + ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated + ["weapon_railgunxm3"] = "Railgun", -- not translated + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Proximity Mine", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snowball", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tear Gas", + + -- Special + ["weapon_fireextinguisher"] = "Fire Extinguisher", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Garbage Bag", + ["weapon_handcuffs"] = "Handcuffs", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "parachute", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", } diff --git a/[core]/es_extended/locales/sr.lua b/[core]/es_extended/locales/sr.lua index 2813b8468..6aefa25bc 100644 --- a/[core]/es_extended/locales/sr.lua +++ b/[core]/es_extended/locales/sr.lua @@ -1,377 +1,377 @@ Locales["sr"] = { - -- Inventory - ["inventory"] = "Inventar ( Težina %s / %s )", - ["use"] = "Koristi", - ["give"] = "Daj", - ["remove"] = "Baci", - ["return"] = "Nazad", - ["give_to"] = "Daj", - ["amount"] = "Količina", - ["giveammo"] = "Daj municiju", - ["amountammo"] = "Količina municije", - ["noammo"] = "Nemate dovoljno!", - ["gave_item"] = "Davanje %sx %s igraču %s", - ["received_item"] = "Dobijeno %sx %s od %s", - ["gave_weapon"] = "Davanje %s igraču %s", - ["gave_weapon_ammo"] = "Davanje ~o~%sx %s za %s igraču %s", - ["gave_weapon_withammo"] = "Davanje %s sa ~o~%sx %s igraču %s", - ["gave_weapon_hasalready"] = "%s već ima %s", - ["gave_weapon_noweapon"] = "%s nema to oružje", - ["received_weapon"] = "Dobijeno %s od %s", - ["received_weapon_ammo"] = "Dobijeno ~o~%sx %s za vaš %s od %s", - ["received_weapon_withammo"] = "Dobijeno %s sa ~o~%sx %s od %s", - ["received_weapon_hasalready"] = "%s je pokušao da Vam da %s, ali vi već imate to oružje", - ["received_weapon_noweapon"] = "%s je pokušao da Vam da municiju za %s, ali vi nemate to oružje", - ["gave_account_money"] = "Davanje $%s (%s) igraču %s", - ["received_account_money"] = "Dobijeno $%s (%s) od %s", - ["amount_invalid"] = "Nevažeća količina", - ["players_nearby"] = "Nema igrača u blizini", - ["ex_inv_lim"] = "Ne možete uraditi to, premašuje max težinu od %s", - ["imp_invalid_quantity"] = "Nevažeća količina", - ["imp_invalid_amount"] = "Nevažeći iznos", - ["threw_standard"] = "Bacanje %sx %s", - ["threw_account"] = "Bacanje $%s %s", - ["threw_weapon"] = "Bacanje %s", - ["threw_weapon_ammo"] = "Bacanje %s sa ~o~%sx %s", - ["threw_weapon_already"] = "Vi već imate to oružje", - ["threw_cannot_pickup"] = "Inventar je pun, ne možete pokupiti to!", - ["threw_pickup_prompt"] = "Pritisni E da pokupiš", - - -- Key mapping - ["keymap_showinventory"] = "Otvaranje inventara", - - -- Salary related - ["received_salary"] = "Plaćeno Vam je: $%s", - ["received_help"] = "Isplaćen Vam je ček: $%s", - ["company_nomoney"] = "Kompanija u kojoj ste zapošljeni nema više novca", - ["received_paycheck"] = "primili ste platu", - ["bank"] = "Maze Banka", - ["account_bank"] = "Banka", - ["account_black_money"] = "Prljav novac", - ["account_money"] = "Novac", - - ["act_imp"] = "Ne možete izvršiti radnju", - ["in_vehicle"] = "Ne možete uraditi to dok je igrač u vozilu", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = 'TP-ajte igrača do Vas', - ['command_car'] = 'Stvorite vozilo', - ['command_car_car'] = 'Model ili hash vozila', - ['command_cardel'] = 'Obrišite vozilo u blizini', - ['command_cardel_radius'] = 'Obrišite sva vozila unutar navedenog radiusa', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = 'Obrišite chat', - ['command_clearall'] = 'Obrišite chat za sve igrače', - ['command_clearinventory'] = 'Obrišite sve stvari iz inventara igrača', - ['command_clearloadout'] = 'Obrišite sva oružja iz inventara igrača', - ['command_freeze'] = 'Zaledite igrača', - ['command_unfreeze'] = 'Odledite igrača', - ['command_giveaccountmoney'] = 'Dajte novac na odredjeni nalog', - ['command_giveaccountmoney_account'] = 'Nalog za slanje', - ['command_giveaccountmoney_amount'] = 'Količina', - ['command_giveaccountmoney_invalid'] = 'Nalog nepostojeći', - ['command_giveitem'] = 'Dajte item igraču', - ['command_giveitem_item'] = 'Ime item-a', - ['command_giveitem_count'] = 'Količina', - ['command_giveweapon'] = 'Dajte oružje igraču', - ['command_giveweapon_weapon'] = 'Ime oružja', - ['command_giveweapon_ammo'] = 'Količina municije', - ['command_giveweapon_hasalready'] = 'Igrač već ima to oružje', - ['command_giveweaponcomponent'] = 'Dajte dodatak za oružje igraču', - ['command_giveweaponcomponent_component'] = 'Ime dodatka', - ['command_giveweaponcomponent_invalid'] = 'Nevažeći dodatak', - ['command_giveweaponcomponent_hasalready'] = 'Igrač već ima taj dodatak', - ['command_giveweaponcomponent_missingweapon'] = 'Igrač nema oružje', - ['command_goto'] = 'Idite do igrača', - ['command_kill'] = 'Ubijte igrača', - ['command_save'] = 'Forsirajte čuvanje date igrača', - ['command_saveall'] = 'Forsirajte čuvanje date svih igrača', - ['command_setaccountmoney'] = 'Postavite novac na određeni račun', - ['command_setaccountmoney_amount'] = 'Količina', - ['command_setcoords'] = 'Teleportujte se na koordinate', - ['command_setcoords_x'] = 'X', - ['command_setcoords_y'] = 'Y', - ['command_setcoords_z'] = 'Z', - ['command_setjob'] = 'Postavite posao igraču', - ['command_setjob_job'] = 'Ime', - ['command_setjob_grade'] = 'Stepen posla', - ['command_setjob_invalid'] = 'posao, stepen ili oba nisu validna', - ['command_setgroup'] = 'Postavite permisiju', - ['command_setgroup_group'] = 'Ime grupe', - ['commanderror_argumentmismatch'] = 'Nevazeci broj argumenata (položio %s, željeno %s)', - ['commanderror_argumentmismatch_number'] = 'Nevažeći argument #%s tip podataka (položeno, željeno)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = 'Nevažeći item', - ['commanderror_invalidweapon'] = 'Nevažeće oružje', - ['commanderror_console'] = 'Komanda se ne može izvršiti iz konzole', - ['commanderror_invalidcommand'] = 'Nevažeća komanda - /%s', - ['commanderror_invalidplayerid'] = 'Igrač nije online', - ['commandgeneric_playerid'] = 'Igračev server ID', - ['command_giveammo_noweapon_found'] = '%s nema to oružje', - ['command_giveammo_weapon'] = 'Ime oružja', - ['command_giveammo_ammo'] = 'Količina municije', - ['tpm_nowaypoint'] = 'Morate označiti lokaciju.', - ['tpm_success'] = 'Teleportovani ste na lokaciju', - - ['noclip_message'] = 'Noclip %s', - ['enabled'] = '~g~upaljen~s~', - ['disabled'] = '~r~ugašen~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "£%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "Dagger", - ["weapon_bat"] = "Bat", - ["weapon_battleaxe"] = "Battle Axe", - ["weapon_bottle"] = "Bottle", - ["weapon_crowbar"] = "Crowbar", - ["weapon_flashlight"] = "Flashlight", - ["weapon_golfclub"] = "Golf Club", - ["weapon_hammer"] = "Hammer", - ["weapon_hatchet"] = "Hatchet", - ["weapon_knife"] = "Knife", - ["weapon_knuckle"] = "Knuckledusters", - ["weapon_machete"] = "Machete", - ["weapon_nightstick"] = "Nightstick", - ["weapon_wrench"] = "Pipe Wrench", - ["weapon_poolcue"] = "Pool Cue", - ["weapon_stone_hatchet"] = "Stone Hatchet", - ["weapon_switchblade"] = "Switchblade", - - -- Handguns - ["weapon_appistol"] = "AP Pistol", - ["weapon_ceramicpistol"] = "Ceramic Pistol", - ["weapon_combatpistol"] = "Combat Pistol", - ["weapon_doubleaction"] = "Double-Action Revolver", - ["weapon_navyrevolver"] = "Navy Revolver", - ["weapon_flaregun"] = "Flaregun", - ["weapon_gadgetpistol"] = "Gadget Pistol", - ["weapon_heavypistol"] = "Heavy Pistol", - ["weapon_revolver"] = "Heavy Revolver", - ["weapon_revolver_mk2"] = "Heavy Revolver MK2", - ["weapon_marksmanpistol"] = "Marksman Pistol", - ["weapon_pistol"] = "Pistol", - ["weapon_pistol_mk2"] = "Pistol MK2", - ["weapon_pistol50"] = "Pistol .50", - ["weapon_snspistol"] = "SNS Pistol", - ["weapon_snspistol_mk2"] = "SNS Pistol MK2", - ["weapon_stungun"] = "Taser", - ["weapon_raypistol"] = "Up-N-Atomizer", - ["weapon_vintagepistol"] = "Vintage Pistol", - - -- Shotguns - ["weapon_assaultshotgun"] = "Assault Shotgun", - ["weapon_autoshotgun"] = "Auto Shotgun", - ["weapon_bullpupshotgun"] = "Bullpup Shotgun", - ["weapon_combatshotgun"] = "Combat Shotgun", - ["weapon_dbshotgun"] = "Double Barrel Shotgun", - ["weapon_heavyshotgun"] = "Heavy Shotgun", - ["weapon_musket"] = "Musket", - ["weapon_pumpshotgun"] = "Pump Shotgun", - ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", - ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", - - -- SMG & LMG - ["weapon_assaultsmg"] = "Assault SMG", - ["weapon_combatmg"] = "Combat MG", - ["weapon_combatmg_mk2"] = "Combat MG MK2", - ["weapon_combatpdw"] = "Combat PDW", - ["weapon_gusenberg"] = "Gusenberg Sweeper", - ["weapon_machinepistol"] = "Machine Pistol", - ["weapon_mg"] = "MG", - ["weapon_microsmg"] = "Micro SMG", - ["weapon_minismg"] = "Mini SMG", - ["weapon_smg"] = "SMG", - ["weapon_smg_mk2"] = "SMG MK2", - ["weapon_raycarbine"] = "Unholy Hellbringer", - - -- Rifles - ["weapon_advancedrifle"] = "Advanced Rifle", - ["weapon_assaultrifle"] = "Assault Rifle", - ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", - ["weapon_bullpuprifle"] = "Bullpup Rifle", - ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", - ["weapon_carbinerifle"] = "Carbine Rifle", - ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", - ["weapon_compactrifle"] = "Compact Rifle", - ["weapon_militaryrifle"] = "Military Rifle", - ["weapon_specialcarbine"] = "Special Carbine", - ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - - -- Sniper - ["weapon_heavysniper"] = "Heavy Sniper", - ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", - ["weapon_marksmanrifle"] = "Marksman Rifle", - ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", - ["weapon_sniperrifle"] = "Sniper Rifle", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "Compact Launcher", - ["weapon_firework"] = "Firework Launcher", - ["weapon_grenadelauncher"] = "Grenade Launcher", - ["weapon_hominglauncher"] = "Homing Launcher", - ["weapon_minigun"] = "Minigun", - ["weapon_railgun"] = "Railgun", - ["weapon_rpg"] = "Rocket Launcher", - ["weapon_rayminigun"] = "Widowmaker", - - -- 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_acidpackage'] = 'Acid Package', -- not translated - ['weapon_pistolxm3'] = 'WM 29 Pistol', -- not translated - ['weapon_railgunxm3'] = 'Railgun', -- not translated - - -- Thrown - ["weapon_ball"] = "Baseball", - ["weapon_bzgas"] = "BZ Gas", - ["weapon_flare"] = "Flare", - ["weapon_grenade"] = "Grenade", - ["weapon_petrolcan"] = "Jerrycan", - ["weapon_hazardcan"] = "Hazardous Jerrycan", - ["weapon_molotov"] = "Molotov Cocktail", - ["weapon_proxmine"] = "Proximity Mine", - ["weapon_pipebomb"] = "Pipe Bomb", - ["weapon_snowball"] = "Snowball", - ["weapon_stickybomb"] = "Sticky Bomb", - ["weapon_smokegrenade"] = "Tear Gas", - - -- Special - ["weapon_fireextinguisher"] = "Fire Extinguisher", - ["weapon_digiscanner"] = "Digital Scanner", - ["weapon_garbagebag"] = "Garbage Bag", - ["weapon_handcuffs"] = "Handcuffs", - ["gadget_nightvision"] = "Night Vision", - ["gadget_parachute"] = "parachute", - - -- Weapon Components - ["component_knuckle_base"] = "base Model", - ["component_knuckle_pimp"] = "the Pimp", - ["component_knuckle_ballas"] = "the Ballas", - ["component_knuckle_dollar"] = "the Hustler", - ["component_knuckle_diamond"] = "the Rock", - ["component_knuckle_hate"] = "the Hater", - ["component_knuckle_love"] = "the Lover", - ["component_knuckle_player"] = "the Player", - ["component_knuckle_king"] = "the King", - ["component_knuckle_vagos"] = "the Vagos", - - ["component_luxary_finish"] = "luxary Weapon Finish", - - ["component_handle_default"] = "default Handle", - ["component_handle_vip"] = "vIP Handle", - ["component_handle_bodyguard"] = "bodyguard Handle", - - ["component_vip_finish"] = "vIP Finish", - ["component_bodyguard_finish"] = "bodyguard Finish", - - ["component_camo_finish"] = "digital Camo", - ["component_camo_finish2"] = "brushstroke Camo", - ["component_camo_finish3"] = "woodland Camo", - ["component_camo_finish4"] = "skull Camo", - ["component_camo_finish5"] = "sessanta Nove Camo", - ["component_camo_finish6"] = "perseus Camo", - ["component_camo_finish7"] = "leopard Camo", - ["component_camo_finish8"] = "zebra Camo", - ["component_camo_finish9"] = "geometric Camo", - ["component_camo_finish10"] = "boom Camo", - ["component_camo_finish11"] = "patriotic Camo", - - ["component_camo_slide_finish"] = "digital Slide Camo", - ["component_camo_slide_finish2"] = "brushstroke Slide Camo", - ["component_camo_slide_finish3"] = "woodland Slide Camo", - ["component_camo_slide_finish4"] = "skull Slide Camo", - ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", - ["component_camo_slide_finish6"] = "perseus Slide Camo", - ["component_camo_slide_finish7"] = "leopard Slide Camo", - ["component_camo_slide_finish8"] = "zebra Slide Camo", - ["component_camo_slide_finish9"] = "geometric Slide Camo", - ["component_camo_slide_finish10"] = "boom Slide Camo", - ["component_camo_slide_finish11"] = "patriotic Slide Camo", - - ["component_clip_default"] = "default Magazine", - ["component_clip_extended"] = "extended Magazine", - ["component_clip_drum"] = "drum Magazine", - ["component_clip_box"] = "box Magazine", - - ["component_scope_holo"] = "holographic Scope", - ["component_scope_small"] = "small Scope", - ["component_scope_medium"] = "medium Scope", - ["component_scope_large"] = "large Scope", - ["component_scope"] = "mounted Scope", - ["component_scope_advanced"] = "advanced Scope", - ["component_ironsights"] = "ironsights", - - ["component_suppressor"] = "suppressor", - ["component_compensator"] = "compensator", - - ["component_muzzle_flat"] = "flat Muzzle Brake", - ["component_muzzle_tactical"] = "tactical Muzzle Brake", - ["component_muzzle_fat"] = "fat-End Muzzle Brake", - ["component_muzzle_precision"] = "precision Muzzle Brake", - ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", - ["component_muzzle_slanted"] = "slanted Muzzle Brake", - ["component_muzzle_split"] = "split-End Muzzle Brake", - ["component_muzzle_squared"] = "squared Muzzle Brake", - - ["component_flashlight"] = "flashlight", - ["component_grip"] = "grip", - - ["component_barrel_default"] = "default Barrel", - ["component_barrel_heavy"] = "heavy Barrel", - - ["component_ammo_tracer"] = "tracer Ammo", - ["component_ammo_incendiary"] = "incendiary Ammo", - ["component_ammo_hollowpoint"] = "hollowpoint Ammo", - ["component_ammo_fmj"] = "fMJ Ammo", - ["component_ammo_armor"] = "armor Piercing Ammo", - ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", - - ["component_shells_default"] = "default Shells", - ["component_shells_incendiary"] = "dragons Breath Shells", - ["component_shells_armor"] = "steel Buckshot Shells", - ["component_shells_hollowpoint"] = "flechette Shells", - ["component_shells_explosive"] = "explosive Slug Shells", - - -- Weapon Ammo - ["ammo_rounds"] = "round(s)", - ["ammo_shells"] = "shell(s)", - ["ammo_charge"] = "charge", - ["ammo_petrol"] = "gallons of fuel", - ["ammo_firework"] = "firework(s)", - ["ammo_rockets"] = "rocket(s)", - ["ammo_grenadelauncher"] = "grenade(s)", - ["ammo_grenade"] = "grenade(s)", - ["ammo_stickybomb"] = "bomb(s)", - ["ammo_pipebomb"] = "bomb(s)", - ["ammo_smokebomb"] = "bomb(s)", - ["ammo_molotov"] = "cocktail(s)", - ["ammo_proxmine"] = "mine(s)", - ["ammo_bzgas"] = "can(s)", - ["ammo_ball"] = "ball(s)", - ["ammo_snowball"] = "snowball(s)", - ["ammo_flare"] = "flare(s)", - ["ammo_flaregun"] = "flare(s)", - - -- Weapon Tints - ["tint_default"] = "default skin", - ["tint_green"] = "green skin", - ["tint_gold"] = "gold skin", - ["tint_pink"] = "pink skin", - ["tint_army"] = "army skin", - ["tint_lspd"] = "blue skin", - ["tint_orange"] = "orange skin", - ["tint_platinum"] = "platinum skin", + -- Inventory + ["inventory"] = "Inventar ( Težina %s / %s )", + ["use"] = "Koristi", + ["give"] = "Daj", + ["remove"] = "Baci", + ["return"] = "Nazad", + ["give_to"] = "Daj", + ["amount"] = "Količina", + ["giveammo"] = "Daj municiju", + ["amountammo"] = "Količina municije", + ["noammo"] = "Nemate dovoljno!", + ["gave_item"] = "Davanje %sx %s igraču %s", + ["received_item"] = "Dobijeno %sx %s od %s", + ["gave_weapon"] = "Davanje %s igraču %s", + ["gave_weapon_ammo"] = "Davanje ~o~%sx %s za %s igraču %s", + ["gave_weapon_withammo"] = "Davanje %s sa ~o~%sx %s igraču %s", + ["gave_weapon_hasalready"] = "%s već ima %s", + ["gave_weapon_noweapon"] = "%s nema to oružje", + ["received_weapon"] = "Dobijeno %s od %s", + ["received_weapon_ammo"] = "Dobijeno ~o~%sx %s za vaš %s od %s", + ["received_weapon_withammo"] = "Dobijeno %s sa ~o~%sx %s od %s", + ["received_weapon_hasalready"] = "%s je pokušao da Vam da %s, ali vi već imate to oružje", + ["received_weapon_noweapon"] = "%s je pokušao da Vam da municiju za %s, ali vi nemate to oružje", + ["gave_account_money"] = "Davanje $%s (%s) igraču %s", + ["received_account_money"] = "Dobijeno $%s (%s) od %s", + ["amount_invalid"] = "Nevažeća količina", + ["players_nearby"] = "Nema igrača u blizini", + ["ex_inv_lim"] = "Ne možete uraditi to, premašuje max težinu od %s", + ["imp_invalid_quantity"] = "Nevažeća količina", + ["imp_invalid_amount"] = "Nevažeći iznos", + ["threw_standard"] = "Bacanje %sx %s", + ["threw_account"] = "Bacanje $%s %s", + ["threw_weapon"] = "Bacanje %s", + ["threw_weapon_ammo"] = "Bacanje %s sa ~o~%sx %s", + ["threw_weapon_already"] = "Vi već imate to oružje", + ["threw_cannot_pickup"] = "Inventar je pun, ne možete pokupiti to!", + ["threw_pickup_prompt"] = "Pritisni E da pokupiš", + + -- Key mapping + ["keymap_showinventory"] = "Otvaranje inventara", + + -- Salary related + ["received_salary"] = "Plaćeno Vam je: $%s", + ["received_help"] = "Isplaćen Vam je ček: $%s", + ["company_nomoney"] = "Kompanija u kojoj ste zapošljeni nema više novca", + ["received_paycheck"] = "primili ste platu", + ["bank"] = "Maze Banka", + ["account_bank"] = "Banka", + ["account_black_money"] = "Prljav novac", + ["account_money"] = "Novac", + + ["act_imp"] = "Ne možete izvršiti radnju", + ["in_vehicle"] = "Ne možete uraditi to dok je igrač u vozilu", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "TP-ajte igrača do Vas", + ["command_car"] = "Stvorite vozilo", + ["command_car_car"] = "Model ili hash vozila", + ["command_cardel"] = "Obrišite vozilo u blizini", + ["command_cardel_radius"] = "Obrišite sva vozila unutar navedenog radiusa", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "Obrišite chat", + ["command_clearall"] = "Obrišite chat za sve igrače", + ["command_clearinventory"] = "Obrišite sve stvari iz inventara igrača", + ["command_clearloadout"] = "Obrišite sva oružja iz inventara igrača", + ["command_freeze"] = "Zaledite igrača", + ["command_unfreeze"] = "Odledite igrača", + ["command_giveaccountmoney"] = "Dajte novac na odredjeni nalog", + ["command_giveaccountmoney_account"] = "Nalog za slanje", + ["command_giveaccountmoney_amount"] = "Količina", + ["command_giveaccountmoney_invalid"] = "Nalog nepostojeći", + ["command_giveitem"] = "Dajte item igraču", + ["command_giveitem_item"] = "Ime item-a", + ["command_giveitem_count"] = "Količina", + ["command_giveweapon"] = "Dajte oružje igraču", + ["command_giveweapon_weapon"] = "Ime oružja", + ["command_giveweapon_ammo"] = "Količina municije", + ["command_giveweapon_hasalready"] = "Igrač već ima to oružje", + ["command_giveweaponcomponent"] = "Dajte dodatak za oružje igraču", + ["command_giveweaponcomponent_component"] = "Ime dodatka", + ["command_giveweaponcomponent_invalid"] = "Nevažeći dodatak", + ["command_giveweaponcomponent_hasalready"] = "Igrač već ima taj dodatak", + ["command_giveweaponcomponent_missingweapon"] = "Igrač nema oružje", + ["command_goto"] = "Idite do igrača", + ["command_kill"] = "Ubijte igrača", + ["command_save"] = "Forsirajte čuvanje date igrača", + ["command_saveall"] = "Forsirajte čuvanje date svih igrača", + ["command_setaccountmoney"] = "Postavite novac na određeni račun", + ["command_setaccountmoney_amount"] = "Količina", + ["command_setcoords"] = "Teleportujte se na koordinate", + ["command_setcoords_x"] = "X", + ["command_setcoords_y"] = "Y", + ["command_setcoords_z"] = "Z", + ["command_setjob"] = "Postavite posao igraču", + ["command_setjob_job"] = "Ime", + ["command_setjob_grade"] = "Stepen posla", + ["command_setjob_invalid"] = "posao, stepen ili oba nisu validna", + ["command_setgroup"] = "Postavite permisiju", + ["command_setgroup_group"] = "Ime grupe", + ["commanderror_argumentmismatch"] = "Nevazeci broj argumenata (položio %s, željeno %s)", + ["commanderror_argumentmismatch_number"] = "Nevažeći argument #%s tip podataka (položeno, željeno)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Nevažeći item", + ["commanderror_invalidweapon"] = "Nevažeće oružje", + ["commanderror_console"] = "Komanda se ne može izvršiti iz konzole", + ["commanderror_invalidcommand"] = "Nevažeća komanda - /%s", + ["commanderror_invalidplayerid"] = "Igrač nije online", + ["commandgeneric_playerid"] = "Igračev server ID", + ["command_giveammo_noweapon_found"] = "%s nema to oružje", + ["command_giveammo_weapon"] = "Ime oružja", + ["command_giveammo_ammo"] = "Količina municije", + ["tpm_nowaypoint"] = "Morate označiti lokaciju.", + ["tpm_success"] = "Teleportovani ste na lokaciju", + + ["noclip_message"] = "Noclip %s", + ["enabled"] = "~g~upaljen~s~", + ["disabled"] = "~r~ugašen~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dagger", + ["weapon_bat"] = "Bat", + ["weapon_battleaxe"] = "Battle Axe", + ["weapon_bottle"] = "Bottle", + ["weapon_crowbar"] = "Crowbar", + ["weapon_flashlight"] = "Flashlight", + ["weapon_golfclub"] = "Golf Club", + ["weapon_hammer"] = "Hammer", + ["weapon_hatchet"] = "Hatchet", + ["weapon_knife"] = "Knife", + ["weapon_knuckle"] = "Knuckledusters", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Nightstick", + ["weapon_wrench"] = "Pipe Wrench", + ["weapon_poolcue"] = "Pool Cue", + ["weapon_stone_hatchet"] = "Stone Hatchet", + ["weapon_switchblade"] = "Switchblade", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- 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_acidpackage"] = "Acid Package", -- not translated + ["weapon_pistolxm3"] = "WM 29 Pistol", -- not translated + ["weapon_railgunxm3"] = "Railgun", -- not translated + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Flare", + ["weapon_grenade"] = "Grenade", + ["weapon_petrolcan"] = "Jerrycan", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov Cocktail", + ["weapon_proxmine"] = "Proximity Mine", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snowball", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tear Gas", + + -- Special + ["weapon_fireextinguisher"] = "Fire Extinguisher", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Garbage Bag", + ["weapon_handcuffs"] = "Handcuffs", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "parachute", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "suppressor", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "flashlight", + ["component_grip"] = "grip", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", } diff --git a/[core]/es_extended/locales/sv.lua b/[core]/es_extended/locales/sv.lua new file mode 100644 index 000000000..193089a71 --- /dev/null +++ b/[core]/es_extended/locales/sv.lua @@ -0,0 +1,381 @@ +Locales["sv"] = { + -- Inventory + ["inventory"] = "Inventory ( Vikt %s / %s )", + ["use"] = "Använd", + ["give"] = "Ge", + ["remove"] = "Kasta", + ["return"] = "Tillbaka", + ["give_to"] = "Ge", + ["amount"] = "Antal", + ["giveammo"] = "Ge skott", + ["amountammo"] = "Antal skott", + ["noammo"] = "Inte tillräckligt!", + ["gave_item"] = "Ger %sx %s till %s", + ["received_item"] = "Mottog %sx %s från %s", + ["gave_weapon"] = "Ger %s till %s", + ["gave_weapon_ammo"] = "Ger ~o~%sx %s för %s till %s", + ["gave_weapon_withammo"] = "Ger %s med ~o~%sx %s till %s", + ["gave_weapon_hasalready"] = "%s har redan en %s", + ["gave_weapon_noweapon"] = "%s har inte detta vapen", + ["received_weapon"] = "Mottog %s från %s", + ["received_weapon_ammo"] = "Mottog ~o~%sx %s för din %s från %s", + ["received_weapon_withammo"] = "Mottog %s med ~o~%sx %s från %s", + ["received_weapon_hasalready"] = "%s har försökt ge dig en %s, men du har redan detta", + ["received_weapon_noweapon"] = "%s har försökt ge dig skott till en %s, men du har inte detta vapen", + ["gave_account_money"] = "Ger %skr (%s) till %s", + ["received_account_money"] = "Mottog %skr (%s) från %s", + ["amount_invalid"] = "Ogiltig mängd", + ["players_nearby"] = "Inga spelare nära", + ["ex_inv_lim"] = "Kan inte utföra, överskrider maxvikten på %s", + ["imp_invalid_quantity"] = "Kan inte utföra, mängden är ogiltig", + ["imp_invalid_amount"] = "Kan inte utföra, antalet är ogiltig", + ["threw_standard"] = "Kastar %sx %s", + ["threw_account"] = "Kastar %skr %s", + ["threw_weapon"] = "Kastar %s", + ["threw_weapon_ammo"] = "Kastar %s med ~o~%sx %s", + ["threw_weapon_already"] = "Du har redan detta vapen", + ["threw_cannot_pickup"] = "Inventoryt är fullt, kan inte plocka upp!", + ["threw_pickup_prompt"] = "Tryck E för att plocka upp", + + -- Key mapping + ["keymap_showinventory"] = "Öppna inventory", + + -- Salary related + ["received_salary"] = "Du har fått ditt bidrag: %skr", + ["received_help"] = "Du har fått betalt: %skr", + ["company_nomoney"] = "Företaget du är anställd hos har inte råd med att betala ut lön", + ["received_paycheck"] = "Mottog lön", + ["bank"] = "Maze Bank", + ["account_bank"] = "Bank", + ["account_black_money"] = "Svarta pengar", + ["account_money"] = "Kontanter", + + ["act_imp"] = "Kan inte utföra", + ["in_vehicle"] = "Kan inte utföra, spelaren är i ett fordon", + ["not_in_vehicle"] = "Kan inte utföra, spelaren är inte i ett fordon", + + -- Commands + ["command_bring"] = "Ta en spelare till dig", + ["command_car"] = "Ta fram ett fordon", + ["command_car_car"] = "modell", + ["command_cardel"] = "Raderar fordon inom en specifik radie", + ["command_cardel_radius"] = "Raderar fordon inom en specifik radie", + ["command_repair"] = "Reparera ditt fordon", + ["command_repair_success"] = "Fordon reparerat", + ["command_repair_success_target"] = "En admin har reparerat ditt fordon", + ["command_clear"] = "Rensa chatt", + ["command_clearall"] = "Rensa chatt för alla", + ["command_clearinventory"] = "Raderar alla föremål från en spelares inventory", + ["command_clearloadout"] = "Raderar alla vapen från en spelares inventory", + ["command_freeze"] = "Frys en spelare", + ["command_unfreeze"] = "Ta bort frysningen från en spelare", + ["command_giveaccountmoney"] = "Ge pengar till ett specifikt konto", + ["command_giveaccountmoney_account"] = "Konto", + ["command_giveaccountmoney_amount"] = "Summa", + ["command_giveaccountmoney_invalid"] = "Ogiltigt kontonamn", + ["command_removeaccountmoney"] = "Radera pengar från ett specifikt konto", + ["command_removeaccountmoney_account"] = "Konto", + ["command_removeaccountmoney_amount"] = "Summa", + ["command_removeaccountmoney_invalid"] = "Ogiltigt kontonamn", + ["command_giveitem"] = "Ge föremål till en spelare", + ["command_giveitem_item"] = "Namn", + ["command_giveitem_count"] = "Antal", + ["command_giveweapon"] = "Ge ett vapen till en spelare", + ["command_giveweapon_weapon"] = "Vapen", + ["command_giveweapon_ammo"] = "Antal skott", + ["command_giveweapon_hasalready"] = "Spelaren har redan detta vapen", + ["command_giveweaponcomponent"] = "Ge komponent till en spelare", + ["command_giveweaponcomponent_component"] = "Komponent", + ["command_giveweaponcomponent_invalid"] = "Ogiltig komponent", + ["command_giveweaponcomponent_hasalready"] = "Spelaren har redan denna komponent", + ["command_giveweaponcomponent_missingweapon"] = "Spelaren har inte vapen för komponenten", + ["command_goto"] = "Teleportera till en spelare", + ["command_kill"] = "Döda en spelare", + ["command_save"] = "Spara en spelares data", + ["command_saveall"] = "Spara alla spelares data", + ["command_setaccountmoney"] = "Sätt pengar på ett specifikt konto", + ["command_setaccountmoney_amount"] = "Summa", + ["command_setcoords"] = "Teleportera till koordinater", + ["command_setcoords_x"] = "X value", + ["command_setcoords_y"] = "Y value", + ["command_setcoords_z"] = "Z value", + ["command_setjob"] = "Sätt jobb för en spelare", + ["command_setjob_job"] = "Namn", + ["command_setjob_grade"] = "Grad", + ["command_setjob_invalid"] = "Jobbet, graden eller båda är ogiltiga", + ["command_setgroup"] = "Sätt en spelares grupp", + ["command_setgroup_group"] = "Grupp", + ["commanderror_argumentmismatch"] = "Invalid Argument Count (passed %s, wanted %s)", + ["commanderror_argumentmismatch_number"] = "Invalid Argument #%s data type (passed string, wanted number)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "Ogiltigt föremål", + ["commanderror_invalidweapon"] = "Ogiltigt vapen", + ["commanderror_console"] = "Kommandot kan inte användas i konsolen", + ["commanderror_invalidcommand"] = "Ogiltigt kommand - /%s", + ["commanderror_invalidplayerid"] = "Spelaren är inte online", + ["commandgeneric_playerid"] = "Spelares ID", + ["command_giveammo_noweapon_found"] = "%s har inte detta vapen", + ["command_giveammo_weapon"] = "Vapen namn", + ["command_giveammo_ammo"] = "Antal ammo", + ["tpm_nowaypoint"] = "Ingen markör sutten.", + ["tpm_success"] = "Du har teleporterat", + + ["noclip_message"] = "Noclip har %s", + ["enabled"] = "~g~aktiverats~s~", + ["disabled"] = "~r~avaktiverats~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "%skr", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "Dolk", + ["weapon_bat"] = "Baseballträd", + ["weapon_battleaxe"] = "Stridsyxa", + ["weapon_bottle"] = "Glasflaska", + ["weapon_crowbar"] = "Kofot", + ["weapon_flashlight"] = "Ficklampa", + ["weapon_golfclub"] = "Golfklubba", + ["weapon_hammer"] = "Hammare", + ["weapon_hatchet"] = "Yxa", + ["weapon_knife"] = "Kniv", + ["weapon_knuckle"] = "Knogjärn", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Ficklampa", + ["weapon_wrench"] = "Rörtång", + ["weapon_poolcue"] = "Biljardkö", + ["weapon_stone_hatchet"] = "Stenyxa", + ["weapon_switchblade"] = "Fickkniv", + + -- Handguns + ["weapon_appistol"] = "AP Pistol", + ["weapon_ceramicpistol"] = "Ceramic Pistol", + ["weapon_combatpistol"] = "Combat Pistol", + ["weapon_doubleaction"] = "Double-Action Revolver", + ["weapon_navyrevolver"] = "Navy Revolver", + ["weapon_flaregun"] = "Flaregun", + ["weapon_gadgetpistol"] = "Gadget Pistol", + ["weapon_heavypistol"] = "Heavy Pistol", + ["weapon_revolver"] = "Heavy Revolver", + ["weapon_revolver_mk2"] = "Heavy Revolver MK2", + ["weapon_marksmanpistol"] = "Marksman Pistol", + ["weapon_pistol"] = "Pistol", + ["weapon_pistol_mk2"] = "Pistol MK2", + ["weapon_pistol50"] = "Pistol .50", + ["weapon_snspistol"] = "SNS Pistol", + ["weapon_snspistol_mk2"] = "SNS Pistol MK2", + ["weapon_stungun"] = "Taser", + ["weapon_raypistol"] = "Up-N-Atomizer", + ["weapon_vintagepistol"] = "Vintage Pistol", + + -- Shotguns + ["weapon_assaultshotgun"] = "Assault Shotgun", + ["weapon_autoshotgun"] = "Auto Shotgun", + ["weapon_bullpupshotgun"] = "Bullpup Shotgun", + ["weapon_combatshotgun"] = "Combat Shotgun", + ["weapon_dbshotgun"] = "Double Barrel Shotgun", + ["weapon_heavyshotgun"] = "Heavy Shotgun", + ["weapon_musket"] = "Musket", + ["weapon_pumpshotgun"] = "Pump Shotgun", + ["weapon_pumpshotgun_mk2"] = "Pump Shotgun MK2", + ["weapon_sawnoffshotgun"] = "Sawed Off Shotgun", + + -- SMG & LMG + ["weapon_assaultsmg"] = "Assault SMG", + ["weapon_combatmg"] = "Combat MG", + ["weapon_combatmg_mk2"] = "Combat MG MK2", + ["weapon_combatpdw"] = "Combat PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Machine Pistol", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Rifles + ["weapon_advancedrifle"] = "Advanced Rifle", + ["weapon_assaultrifle"] = "Assault Rifle", + ["weapon_assaultrifle_mk2"] = "Assault Rifle MK2", + ["weapon_bullpuprifle"] = "Bullpup Rifle", + ["weapon_bullpuprifle_mk2"] = "Bullpup Rifle MK2", + ["weapon_carbinerifle"] = "Carbine Rifle", + ["weapon_carbinerifle_mk2"] = "Carbine Rifle MK2", + ["weapon_compactrifle"] = "Compact Rifle", + ["weapon_militaryrifle"] = "Military Rifle", + ["weapon_specialcarbine"] = "Special Carbine", + ["weapon_specialcarbine_mk2"] = "Special Carbine MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", + + -- Sniper + ["weapon_heavysniper"] = "Heavy Sniper", + ["weapon_heavysniper_mk2"] = "Heavy Sniper MK2", + ["weapon_marksmanrifle"] = "Marksman Rifle", + ["weapon_marksmanrifle_mk2"] = "Marksman Rifle MK2", + ["weapon_sniperrifle"] = "Sniper Rifle", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "Compact Launcher", + ["weapon_firework"] = "Firework Launcher", + ["weapon_grenadelauncher"] = "Grenade Launcher", + ["weapon_hominglauncher"] = "Homing Launcher", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Railgun", + ["weapon_rpg"] = "Rocket Launcher", + ["weapon_rayminigun"] = "Widowmaker", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "Metal Detector", + ["weapon_precisionrifle"] = "Precision Rifle", + ["weapon_tactilerifle"] = "Service Carbine", + + -- Drug wars dlc + ["weapon_candycane"] = "Candycane", + ["weapon_acidpackage"] = "Acid Package", + ["weapon_pistolxm3"] = "Pistol8 x3m", + ["weapon_railgunxm3"] = "Railgun", + + -- Thrown + ["weapon_ball"] = "Baseball", + ["weapon_bzgas"] = "BZ Gas", + ["weapon_flare"] = "Bloss", + ["weapon_grenade"] = "Granat", + ["weapon_petrolcan"] = "Bensindunk", + ["weapon_hazardcan"] = "Hazardous Jerrycan", + ["weapon_molotov"] = "Molotov", + ["weapon_proxmine"] = "Mina", + ["weapon_pipebomb"] = "Pipe Bomb", + ["weapon_snowball"] = "Snöboll", + ["weapon_stickybomb"] = "Sticky Bomb", + ["weapon_smokegrenade"] = "Tårgas", + + -- Special + ["weapon_fireextinguisher"] = "Brandsläckare", + ["weapon_digiscanner"] = "Digital Scanner", + ["weapon_garbagebag"] = "Soppåse", + ["weapon_handcuffs"] = "Handklovar", + ["gadget_nightvision"] = "Night Vision", + ["gadget_parachute"] = "Fallskärm", + + -- Weapon Components + ["component_knuckle_base"] = "base Model", + ["component_knuckle_pimp"] = "the Pimp", + ["component_knuckle_ballas"] = "the Ballas", + ["component_knuckle_dollar"] = "the Hustler", + ["component_knuckle_diamond"] = "the Rock", + ["component_knuckle_hate"] = "the Hater", + ["component_knuckle_love"] = "the Lover", + ["component_knuckle_player"] = "the Player", + ["component_knuckle_king"] = "the King", + ["component_knuckle_vagos"] = "the Vagos", + + ["component_luxary_finish"] = "luxary Weapon Finish", + + ["component_handle_default"] = "default Handle", + ["component_handle_vip"] = "vIP Handle", + ["component_handle_bodyguard"] = "bodyguard Handle", + + ["component_vip_finish"] = "vIP Finish", + ["component_bodyguard_finish"] = "bodyguard Finish", + + ["component_camo_finish"] = "digital Camo", + ["component_camo_finish2"] = "brushstroke Camo", + ["component_camo_finish3"] = "woodland Camo", + ["component_camo_finish4"] = "skull Camo", + ["component_camo_finish5"] = "sessanta Nove Camo", + ["component_camo_finish6"] = "perseus Camo", + ["component_camo_finish7"] = "leopard Camo", + ["component_camo_finish8"] = "zebra Camo", + ["component_camo_finish9"] = "geometric Camo", + ["component_camo_finish10"] = "boom Camo", + ["component_camo_finish11"] = "patriotic Camo", + + ["component_camo_slide_finish"] = "digital Slide Camo", + ["component_camo_slide_finish2"] = "brushstroke Slide Camo", + ["component_camo_slide_finish3"] = "woodland Slide Camo", + ["component_camo_slide_finish4"] = "skull Slide Camo", + ["component_camo_slide_finish5"] = "sessanta Nove Slide Camo", + ["component_camo_slide_finish6"] = "perseus Slide Camo", + ["component_camo_slide_finish7"] = "leopard Slide Camo", + ["component_camo_slide_finish8"] = "zebra Slide Camo", + ["component_camo_slide_finish9"] = "geometric Slide Camo", + ["component_camo_slide_finish10"] = "boom Slide Camo", + ["component_camo_slide_finish11"] = "patriotic Slide Camo", + + ["component_clip_default"] = "default Magazine", + ["component_clip_extended"] = "extended Magazine", + ["component_clip_drum"] = "drum Magazine", + ["component_clip_box"] = "box Magazine", + + ["component_scope_holo"] = "holographic Scope", + ["component_scope_small"] = "small Scope", + ["component_scope_medium"] = "medium Scope", + ["component_scope_large"] = "large Scope", + ["component_scope"] = "mounted Scope", + ["component_scope_advanced"] = "advanced Scope", + ["component_ironsights"] = "ironsights", + + ["component_suppressor"] = "ljuddämpare", + ["component_compensator"] = "compensator", + + ["component_muzzle_flat"] = "flat Muzzle Brake", + ["component_muzzle_tactical"] = "tactical Muzzle Brake", + ["component_muzzle_fat"] = "fat-End Muzzle Brake", + ["component_muzzle_precision"] = "precision Muzzle Brake", + ["component_muzzle_heavy"] = "heavy Duty Muzzle Brake", + ["component_muzzle_slanted"] = "slanted Muzzle Brake", + ["component_muzzle_split"] = "split-End Muzzle Brake", + ["component_muzzle_squared"] = "squared Muzzle Brake", + + ["component_flashlight"] = "Ficklampa", + ["component_grip"] = "grepp", + + ["component_barrel_default"] = "default Barrel", + ["component_barrel_heavy"] = "heavy Barrel", + + ["component_ammo_tracer"] = "tracer Ammo", + ["component_ammo_incendiary"] = "incendiary Ammo", + ["component_ammo_hollowpoint"] = "hollowpoint Ammo", + ["component_ammo_fmj"] = "fMJ Ammo", + ["component_ammo_armor"] = "armor Piercing Ammo", + ["component_ammo_explosive"] = "armor Piercing Incendiary Ammo", + + ["component_shells_default"] = "default Shells", + ["component_shells_incendiary"] = "dragons Breath Shells", + ["component_shells_armor"] = "steel Buckshot Shells", + ["component_shells_hollowpoint"] = "flechette Shells", + ["component_shells_explosive"] = "explosive Slug Shells", + + -- Weapon Ammo + ["ammo_rounds"] = "round(s)", + ["ammo_shells"] = "shell(s)", + ["ammo_charge"] = "charge", + ["ammo_petrol"] = "gallons of fuel", + ["ammo_firework"] = "firework(s)", + ["ammo_rockets"] = "rocket(s)", + ["ammo_grenadelauncher"] = "grenade(s)", + ["ammo_grenade"] = "grenade(s)", + ["ammo_stickybomb"] = "bomb(s)", + ["ammo_pipebomb"] = "bomb(s)", + ["ammo_smokebomb"] = "bomb(s)", + ["ammo_molotov"] = "cocktail(s)", + ["ammo_proxmine"] = "mine(s)", + ["ammo_bzgas"] = "can(s)", + ["ammo_ball"] = "ball(s)", + ["ammo_snowball"] = "snowball(s)", + ["ammo_flare"] = "flare(s)", + ["ammo_flaregun"] = "flare(s)", + + -- Weapon Tints + ["tint_default"] = "default skin", + ["tint_green"] = "green skin", + ["tint_gold"] = "gold skin", + ["tint_pink"] = "pink skin", + ["tint_army"] = "army skin", + ["tint_lspd"] = "blue skin", + ["tint_orange"] = "orange skin", + ["tint_platinum"] = "platinum skin", +} diff --git a/[core]/es_extended/locales/zh-cn.lua b/[core]/es_extended/locales/zh-cn.lua index e5093c258..a8a1ad8e6 100644 --- a/[core]/es_extended/locales/zh-cn.lua +++ b/[core]/es_extended/locales/zh-cn.lua @@ -1,377 +1,377 @@ Locales["zh-cn"] = { - -- Inventory - ["inventory"] = "背包 %s / %s", - ["use"] = "使用", - ["give"] = "给予", - ["remove"] = "赠送", - ["return"] = "返回", - ["give_to"] = "赠给", - ["amount"] = "数量", - ["giveammo"] = "赠送弹药", - ["amountammo"] = "弹药量", - ["noammo"] = "您没有足够的弹药!", - ["gave_item"] = "您将 %sx %s 赠送给 %s", - ["received_item"] = "您收到 %sx %s, 来自于 %s 的赠送", - ["gave_weapon"] = "您把 %s 赠送给 %s", - ["gave_weapon_ammo"] = "您把 ~o~%sx %s %s 赠送给 %s", - ["gave_weapon_withammo"] = "您把 %s 和 ~o~%sx %s 赠送给 %s", - ["gave_weapon_hasalready"] = "%s 已持有 %s", - ["gave_weapon_noweapon"] = "%s 暂无该类型武器", - ["received_weapon"] = "您收到了 %s, 来自于 %s 的赠送", - ["received_weapon_ammo"] = "您收到了 ~o~%sx %s (%s),来自于%s的赠送", - ["received_weapon_withammo"] = "您收到了 %s 和~o~%sx %s,来自于%s的赠送", - ["received_weapon_hasalready"] = "%s 试图给您 %s,但您已持有", - ["received_weapon_noweapon"] = "%s 试图给您 %s 发子弹,但是您沒有该类型武器", - ["gave_account_money"] = "您将 $%s (%s) 赠送给 %s", - ["received_account_money"] = "您收到了 $%s (%s) 来自 %s 的赠送", - ["amount_invalid"] = "无效数量", - ["players_nearby"] = "附近没有玩家", - ["ex_inv_lim"] = "操作失败, 超过 %s 背包物品的上限", - ["imp_invalid_quantity"] = "操作失败,无效数量输入", - ["imp_invalid_amount"] = "操作失败,无效金额输入", - ["threw_standard"] = "您丢弃了 %sx %s", - ["threw_account"] = "您丢弃了 $%s %s", - ["threw_weapon"] = "您丢弃了 %s", - ["threw_weapon_ammo"] = "您丢弃了 %s 和 ~o~%sx %s", - ["threw_weapon_already"] = "您已持有相同武器!", - ["threw_cannot_pickup"] = "背包容量已满, 无法持有更多该物品!", - ["threw_pickup_prompt"] = "键下 [E] 捡起", - - -- Key mapping - ["keymap_showinventory"] = "显示背包", - - -- Salary related - ["received_salary"] = "您收到了您的工资: $%s", - ["received_help"] = "您领取到了您的无业性低保: $%s", - ["company_nomoney"] = "您受雇的公司太穷了,无法清算您的工资.", - ["received_paycheck"] = "收到转账", - ["bank"] = "花园银行", - ["account_bank"] = "银行", - ["account_black_money"] = "赃款", - ["account_money"] = "现金", - - ["act_imp"] = "操作失败", - ["in_vehicle"] = "请离开当前载具", - ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", - - -- Commands - ['command_bring'] = '传送玩家到您身边', - ['command_car'] = '生成载具', - ['command_car_car'] = '生成载具的模型名称或哈希值', - ['command_cardel'] = '删除附近载具', - ['command_cardel_radius'] = '可选,删除指定半径内的所有载具', - ['command_repair'] = 'Repair your vehicle', - ['command_repair_success'] = 'Successfully repaired vehicle', - ['command_repair_success_target'] = 'An admin repaired your vehicle', - ['command_clear'] = '清除聊天记录', - ['command_clearall'] = '清除所有玩家的聊天记录', - ['command_clearinventory'] = '清除玩家库存', - ['command_clearloadout'] = '清除玩家武器栏', - ['command_freeze'] = '冻结玩家', - ['command_unfreeze'] = '解冻玩家', - ['command_giveaccountmoney'] = '给予任意账户资金', - ['command_giveaccountmoney_account'] = '有效的帐户类型', - ['command_giveaccountmoney_amount'] = '添加的金额数量', - ['command_giveaccountmoney_invalid'] = '无效的帐户类型', - ['command_giveitem'] = '给予玩家一件物品', - ['command_giveitem_item'] = '物品代码', - ['command_giveitem_count'] = '物品数目', - ['command_giveweapon'] = '给予玩家一把武器', - ['command_giveweapon_weapon'] = '武器代码', - ['command_giveweapon_ammo'] = '弹药数目', - ['command_giveweapon_hasalready'] = '该玩家已拥有该武器', - ['command_giveweaponcomponent'] = '给予武器改装件', - ['command_giveweaponcomponent_component'] = '改装件代码', - ['command_giveweaponcomponent_invalid'] = '无效的武器改装件', - ['command_giveweaponcomponent_hasalready'] = '玩家已拥有该武器改装件', - ['command_giveweaponcomponent_missingweapon'] = '该玩家暂无该类型改装件的武器', - ['command_goto'] = '传送至一名玩家身旁', - ['command_kill'] = '击杀一名玩家', - ['command_save'] = '保存玩家数据至数据库', - ['command_saveall'] = '保存所有玩家数据至数据库', - ['command_setaccountmoney'] = '设置玩家帐户内资金', - ['command_setaccountmoney_amount'] = '账户资金金额', - ['command_setcoords'] = '传送至XYZ坐标', - ['command_setcoords_x'] = 'X 轴', - ['command_setcoords_y'] = 'Y 轴', - ['command_setcoords_z'] = 'Z 轴', - ['command_setjob'] = '配置该玩家职业', - ['command_setjob_job'] = '职业代码', - ['command_setjob_grade'] = '职业等级', - ['command_setjob_invalid'] = '职业代码、等级或输入数据无效!', - ['command_setgroup'] = '设置玩家用户组', - ['command_setgroup_group'] = '用户组代码', - ['commanderror_argumentmismatch'] = '参数计数不匹配 (该类型为 %s, 需要传输 %s)', - ['commanderror_argumentmismatch_number'] = '参数 #%s 类型不匹配 (该类型为字符串,需要传递数字类型)', - ['commanderror_argumentmismatch_string'] = 'Invalid Argument #%s data type (passed number, wanted string)', - ['commanderror_invaliditem'] = '无效的物品代码', - ['commanderror_invalidweapon'] = '无效的武器代码', - ['commanderror_console'] = '控制台无法执行此命令!', - ['commanderror_invalidcommand'] = '/%s 不是有效的命令!', - ['commanderror_invalidplayerid'] = '无效的玩家服务器ID', - ['commandgeneric_playerid'] = '玩家服务器ID', - ['command_giveammo_noweapon_found'] = '%s 为无效的武器代码!', - ['command_giveammo_weapon'] = '武器代码', - ['command_giveammo_ammo'] = '弹药数量', - ['tpm_nowaypoint'] = '尚未配置导航点!', - ['tpm_success'] = '已传送至该导航点', - - ['noclip_message'] = '飞行模式已被激活 %s', - ['enabled'] = '~g~已开启~s~', - ['disabled'] = '~r~已关闭~s~', - - -- Locale settings - ["locale_digit_grouping_symbol"] = ",", - ["locale_currency"] = "$%s", - - -- Weapons - - -- Melee - ["weapon_dagger"] = "古骑兵匕首", - ["weapon_bat"] = "棒球棍", - ["weapon_battleaxe"] = "战斧", - ["weapon_bottle"] = "碎酒瓶", - ["weapon_crowbar"] = "撬棍", - ["weapon_flashlight"] = "手电筒", - ["weapon_golfclub"] = "高尔夫球杆", - ["weapon_hammer"] = "铁锤", - ["weapon_hatchet"] = "手斧", - ["weapon_knife"] = "小刀", - ["weapon_knuckle"] = "手指虎", - ["weapon_machete"] = "开山刀", - ["weapon_nightstick"] = "警棍", - ["weapon_wrench"] = "管钳扳手", - ["weapon_poolcue"] = "台球杆", - ["weapon_stone_hatchet"] = "石斧", - ["weapon_switchblade"] = "弹簧刀", - - -- Handguns - ["weapon_appistol"] = "穿甲手枪", - ["weapon_ceramicpistol"] = "陶瓷手枪", - ["weapon_combatpistol"] = "战斗手枪", - ["weapon_doubleaction"] = "双动式左轮手枪", - ["weapon_navyrevolver"] = "海军左轮手枪", - ["weapon_flaregun"] = "信号枪", - ["weapon_gadgetpistol"] = "佩里克手枪", - ["weapon_heavypistol"] = "重型手枪", - ["weapon_revolver"] = "重型左轮手枪", - ["weapon_revolver_mk2"] = "重型左轮手枪-MK2", - ["weapon_marksmanpistol"] = "射手手枪", - ["weapon_pistol"] = "手枪", - ["weapon_pistol_mk2"] = "手枪-MK2", - ["weapon_pistol50"] = "0.5-口径手枪", - ["weapon_snspistol"] = "劣质手枪", - ["weapon_snspistol_mk2"] = "劣质手枪-MK2", - ["weapon_stungun"] = "电击枪", - ["weapon_raypistol"] = "原子堡手枪", - ["weapon_vintagepistol"] = "老式手枪", - - -- Shotguns - ["weapon_assaultshotgun"] = "突击霰弹枪", - ["weapon_autoshotgun"] = "半自动霰弹枪", - ["weapon_bullpupshotgun"] = "无托式霰弹枪", - ["weapon_combatshotgun"] = "战斗霰弹枪", - ["weapon_dbshotgun"] = "双管霰弹枪", - ["weapon_heavyshotgun"] = "重型霰弹枪", - ["weapon_musket"] = "老式火枪", - ["weapon_pumpshotgun"] = "泵动式霰弹枪", - ["weapon_pumpshotgun_mk2"] = "泵动式霰弹枪-MK2", - ["weapon_sawnoffshotgun"] = "短管霰弹枪", - - -- SMG & LMG - ["weapon_assaultsmg"] = "突击冲锋枪", - ["weapon_combatmg"] = "战斗机枪", - ["weapon_combatmg_mk2"] = "战斗机枪-MK2", - ["weapon_combatpdw"] = "作战自卫冲锋枪", - ["weapon_gusenberg"] = "古森柏冲锋枪", - ["weapon_machinepistol"] = "冲锋手枪", - ["weapon_mg"] = "机枪", - ["weapon_microsmg"] = "微型冲锋枪", - ["weapon_minismg"] = "迷你冲锋枪", - ["weapon_smg"] = "冲锋枪", - ["weapon_smg_mk2"] = "冲锋枪-MK2", - ["weapon_raycarbine"] = "不洁使者", - - -- Rifles - ["weapon_advancedrifle"] = "高级步枪", - ["weapon_assaultrifle"] = "突击步枪", - ["weapon_assaultrifle_mk2"] = "突击步枪-MK2", - ["weapon_bullpuprifle"] = "无托式步枪", - ["weapon_bullpuprifle_mk2"] = "无托式步枪-MK2", - ["weapon_carbinerifle"] = "卡宾步枪", - ["weapon_carbinerifle_mk2"] = "卡宾步枪-MK2", - ["weapon_compactrifle"] = "紧凑型步枪", - ["weapon_militaryrifle"] = "军用步枪", - ["weapon_specialcarbine"] = "特制卡宾步枪", - ["weapon_specialcarbine_mk2"] = "特制卡宾步枪-MK2", - ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated - - -- Sniper - ["weapon_heavysniper"] = "重型狙击步枪", - ["weapon_heavysniper_mk2"] = "重型狙击步枪-MK2", - ["weapon_marksmanrifle"] = "射手步枪", - ["weapon_marksmanrifle_mk2"] = "射手步枪-MK2", - ["weapon_sniperrifle"] = "狙击步枪", - - -- Heavy / Launchers - ["weapon_compactlauncher"] = "紧凑型榴弹发射器", - ["weapon_firework"] = "烟花发射器", - ["weapon_grenadelauncher"] = "榴弹发射器", - ["weapon_hominglauncher"] = "制导火箭发射器", - ["weapon_minigun"] = "火神机枪", - ["weapon_railgun"] = "电磁轨道炮", - ["weapon_rpg"] = "火箭炮", - ["weapon_rayminigun"] = "寡妇制造者", - - -- Criminal Enterprises DLC - ["weapon_metaldetector"] = "金属探测器", - ["weapon_precisionrifle"] = "精确步枪", - ["weapon_tactilerifle"] = "制式卡宾步枪", - - -- 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 - - -- Thrown - ["weapon_ball"] = "棒球", - ["weapon_bzgas"] = "毒气弹", - ["weapon_flare"] = "信号棒", - ["weapon_grenade"] = "手榴弹", - ["weapon_petrolcan"] = "汽油桶", - ["weapon_hazardcan"] = "有害汽油桶", - ["weapon_molotov"] = "汽油弹", - ["weapon_proxmine"] = "感应式地雷", - ["weapon_pipebomb"] = "土製炸彈", - ["weapon_snowball"] = "雪球", - ["weapon_stickybomb"] = "黏弹", - ["weapon_smokegrenade"] = "烟雾弹", - - -- Special - ["weapon_fireextinguisher"] = "灭火器", - ["weapon_digiscanner"] = "数位扫描仪", - ["weapon_garbagebag"] = "垃圾袋", - ["weapon_handcuffs"] = "手铐", - ["gadget_nightvision"] = "夜视仪", - ["gadget_parachute"] = "降落伞", - - -- Weapon Components - ["component_knuckle_base"] = "基本样式", - ["component_knuckle_pimp"] = "皮条客", - ["component_knuckle_ballas"] = "巴拉斯帮", - ["component_knuckle_dollar"] = "江湖骗子", - ["component_knuckle_diamond"] = "摇滚朋克", - ["component_knuckle_hate"] = "怨气冤家", - ["component_knuckle_love"] = "甜蜜情人", - ["component_knuckle_player"] = "花花公子", - ["component_knuckle_king"] = "霸者之风", - ["component_knuckle_vagos"] = "维戈斯帮", - - ["component_luxary_finish"] = "奢华涂饰", - - ["component_handle_default"] = "默认刀柄", - ["component_handle_vip"] = "贵宾样式", - ["component_handle_bodyguard"] = "保镖款式", - - ["component_vip_finish"] = "贵宾样式", - ["component_bodyguard_finish"] = "保镖款式", - - ["component_camo_finish"] = "数码迷彩", - ["component_camo_finish2"] = "笔刷迷彩", - ["component_camo_finish3"] = "林地迷彩", - ["component_camo_finish4"] = "骷髅头", - ["component_camo_finish5"] = "希斯提·耐", - ["component_camo_finish6"] = "神之子", - ["component_camo_finish7"] = "猎豹纹理", - ["component_camo_finish8"] = "斑马纹理", - ["component_camo_finish9"] = "几何图形", - ["component_camo_finish10"] = "BOOM!", - ["component_camo_finish11"] = "爱国者", - - ["component_camo_slide_finish"] = "数码迷涂装", - ["component_camo_slide_finish2"] = "笔刷迷彩涂装", - ["component_camo_slide_finish3"] = "林地迷彩涂装", - ["component_camo_slide_finish4"] = "骷髅头涂装", - ["component_camo_slide_finish5"] = "希斯提·耐涂装", - ["component_camo_slide_finish6"] = "神之子涂装", - ["component_camo_slide_finish7"] = "猎豹纹理涂装", - ["component_camo_slide_finish8"] = "斑马纹理涂装", - ["component_camo_slide_finish9"] = "几何图形涂装", - ["component_camo_slide_finish10"] = "BOOM涂装", - ["component_camo_slide_finish11"] = "爱国者涂装", - - ["component_clip_default"] = "默认弹夹", - ["component_clip_extended"] = "扩容弹夹", - ["component_clip_drum"] = "鼓式弹夹", - ["component_clip_box"] = "盒型弹匣", - - ["component_scope_holo"] = "全息式瞄准镜", - ["component_scope_small"] = "小型瞄准镜", - ["component_scope_medium"] = "中型瞄准镜", - ["component_scope_large"] = "大型瞄准镜", - ["component_scope"] = "瞄准镜", - ["component_scope_advanced"] = "高级瞄准镜", - ["component_ironsights"] = "铁式瞄具", - - ["component_suppressor"] = "消音器", - ["component_compensator"] = "补偿器", - - ["component_muzzle_flat"] = "扁型枪口制动器", - ["component_muzzle_tactical"] = "战术枪口制动器", - ["component_muzzle_fat"] = "宽尾型枪口制动器", - ["component_muzzle_precision"] = "精準枪口制动器", - ["component_muzzle_heavy"] = "耐用型枪口制动器", - ["component_muzzle_slanted"] = "倾斜型枪口制动器", - ["component_muzzle_split"] = "分岔型枪口制动器", - ["component_muzzle_squared"] = "方形枪口制动器", - - ["component_flashlight"] = "手电筒", - ["component_grip"] = "握把", - - ["component_barrel_default"] = "默认枪管", - ["component_barrel_heavy"] = "重型枪管", - - ["component_ammo_tracer"] = "曳光弹", - ["component_ammo_incendiary"] = "燃烧弹", - ["component_ammo_hollowpoint"] = "被甲空尖弹", - ["component_ammo_fmj"] = "全金属包裹弹", - ["component_ammo_armor"] = "穿甲弹", - ["component_ammo_explosive"] = "爆炸蛋弹", - - ["component_shells_default"] = "默认弹药", - ["component_shells_incendiary"] = "燃烧弹", - ["component_shells_armor"] = "钢式猎鹿蛋", - ["component_shells_hollowpoint"] = "被甲空尖弹", - ["component_shells_explosive"] = "爆裂弹", - - -- Weapon Ammo - ["ammo_rounds"] = "发(子弹)", - ["ammo_shells"] = "发(子弹)", - ["ammo_charge"] = "喷", - ["ammo_petrol"] = "加仑(燃料)", - ["ammo_firework"] = "发(烟花弹)", - ["ammo_rockets"] = "枚(火箭弹)", - ["ammo_grenadelauncher"] = "发(榴弹)", - ["ammo_grenade"] = "枚(手榴弹)", - ["ammo_stickybomb"] = "枚(炸弹)", - ["ammo_pipebomb"] = "枚(炸弹)", - ["ammo_smokebomb"] = "枚(炸彈)", - ["ammo_molotov"] = "瓶(燃烧瓶)", - ["ammo_proxmine"] = "个(地雷)", - ["ammo_bzgas"] = "罐", - ["ammo_ball"] = "个(棒球)", - ["ammo_snowball"] = "个(雪球)", - ["ammo_flare"] = "根(信号棒)", - ["ammo_flaregun"] = "发(信号弹)", - - -- Weapon Tints - ["tint_default"] = "默认色调", - ["tint_green"] = "绿色调", - ["tint_gold"] = "金色调", - ["tint_pink"] = "粉色调", - ["tint_army"] = "军用色调", - ["tint_lspd"] = "洛圣都警局色调", - ["tint_orange"] = "橙色调", - ["tint_platinum"] = "铂金色调", + -- Inventory + ["inventory"] = "背包 %s / %s", + ["use"] = "使用", + ["give"] = "给予", + ["remove"] = "赠送", + ["return"] = "返回", + ["give_to"] = "赠给", + ["amount"] = "数量", + ["giveammo"] = "赠送弹药", + ["amountammo"] = "弹药量", + ["noammo"] = "您没有足够的弹药!", + ["gave_item"] = "您将 %sx %s 赠送给 %s", + ["received_item"] = "您收到 %sx %s, 来自于 %s 的赠送", + ["gave_weapon"] = "您把 %s 赠送给 %s", + ["gave_weapon_ammo"] = "您把 ~o~%sx %s %s 赠送给 %s", + ["gave_weapon_withammo"] = "您把 %s 和 ~o~%sx %s 赠送给 %s", + ["gave_weapon_hasalready"] = "%s 已持有 %s", + ["gave_weapon_noweapon"] = "%s 暂无该类型武器", + ["received_weapon"] = "您收到了 %s, 来自于 %s 的赠送", + ["received_weapon_ammo"] = "您收到了 ~o~%sx %s (%s),来自于%s的赠送", + ["received_weapon_withammo"] = "您收到了 %s 和~o~%sx %s,来自于%s的赠送", + ["received_weapon_hasalready"] = "%s 试图给您 %s,但您已持有", + ["received_weapon_noweapon"] = "%s 试图给您 %s 发子弹,但是您沒有该类型武器", + ["gave_account_money"] = "您将 $%s (%s) 赠送给 %s", + ["received_account_money"] = "您收到了 $%s (%s) 来自 %s 的赠送", + ["amount_invalid"] = "无效数量", + ["players_nearby"] = "附近没有玩家", + ["ex_inv_lim"] = "操作失败, 超过 %s 背包物品的上限", + ["imp_invalid_quantity"] = "操作失败,无效数量输入", + ["imp_invalid_amount"] = "操作失败,无效金额输入", + ["threw_standard"] = "您丢弃了 %sx %s", + ["threw_account"] = "您丢弃了 $%s %s", + ["threw_weapon"] = "您丢弃了 %s", + ["threw_weapon_ammo"] = "您丢弃了 %s 和 ~o~%sx %s", + ["threw_weapon_already"] = "您已持有相同武器!", + ["threw_cannot_pickup"] = "背包容量已满, 无法持有更多该物品!", + ["threw_pickup_prompt"] = "键下 [E] 捡起", + + -- Key mapping + ["keymap_showinventory"] = "显示背包", + + -- Salary related + ["received_salary"] = "您收到了您的工资: $%s", + ["received_help"] = "您领取到了您的无业性低保: $%s", + ["company_nomoney"] = "您受雇的公司太穷了,无法清算您的工资.", + ["received_paycheck"] = "收到转账", + ["bank"] = "花园银行", + ["account_bank"] = "银行", + ["account_black_money"] = "赃款", + ["account_money"] = "现金", + + ["act_imp"] = "操作失败", + ["in_vehicle"] = "请离开当前载具", + ["not_in_vehicle"] = "Cannot Perform Action, Player isn't in a vehicle", + + -- Commands + ["command_bring"] = "传送玩家到您身边", + ["command_car"] = "生成载具", + ["command_car_car"] = "生成载具的模型名称或哈希值", + ["command_cardel"] = "删除附近载具", + ["command_cardel_radius"] = "可选,删除指定半径内的所有载具", + ["command_repair"] = "Repair your vehicle", + ["command_repair_success"] = "Successfully repaired vehicle", + ["command_repair_success_target"] = "An admin repaired your vehicle", + ["command_clear"] = "清除聊天记录", + ["command_clearall"] = "清除所有玩家的聊天记录", + ["command_clearinventory"] = "清除玩家库存", + ["command_clearloadout"] = "清除玩家武器栏", + ["command_freeze"] = "冻结玩家", + ["command_unfreeze"] = "解冻玩家", + ["command_giveaccountmoney"] = "给予任意账户资金", + ["command_giveaccountmoney_account"] = "有效的帐户类型", + ["command_giveaccountmoney_amount"] = "添加的金额数量", + ["command_giveaccountmoney_invalid"] = "无效的帐户类型", + ["command_giveitem"] = "给予玩家一件物品", + ["command_giveitem_item"] = "物品代码", + ["command_giveitem_count"] = "物品数目", + ["command_giveweapon"] = "给予玩家一把武器", + ["command_giveweapon_weapon"] = "武器代码", + ["command_giveweapon_ammo"] = "弹药数目", + ["command_giveweapon_hasalready"] = "该玩家已拥有该武器", + ["command_giveweaponcomponent"] = "给予武器改装件", + ["command_giveweaponcomponent_component"] = "改装件代码", + ["command_giveweaponcomponent_invalid"] = "无效的武器改装件", + ["command_giveweaponcomponent_hasalready"] = "玩家已拥有该武器改装件", + ["command_giveweaponcomponent_missingweapon"] = "该玩家暂无该类型改装件的武器", + ["command_goto"] = "传送至一名玩家身旁", + ["command_kill"] = "击杀一名玩家", + ["command_save"] = "保存玩家数据至数据库", + ["command_saveall"] = "保存所有玩家数据至数据库", + ["command_setaccountmoney"] = "设置玩家帐户内资金", + ["command_setaccountmoney_amount"] = "账户资金金额", + ["command_setcoords"] = "传送至XYZ坐标", + ["command_setcoords_x"] = "X 轴", + ["command_setcoords_y"] = "Y 轴", + ["command_setcoords_z"] = "Z 轴", + ["command_setjob"] = "配置该玩家职业", + ["command_setjob_job"] = "职业代码", + ["command_setjob_grade"] = "职业等级", + ["command_setjob_invalid"] = "职业代码、等级或输入数据无效!", + ["command_setgroup"] = "设置玩家用户组", + ["command_setgroup_group"] = "用户组代码", + ["commanderror_argumentmismatch"] = "参数计数不匹配 (该类型为 %s, 需要传输 %s)", + ["commanderror_argumentmismatch_number"] = "参数 #%s 类型不匹配 (该类型为字符串,需要传递数字类型)", + ["commanderror_argumentmismatch_string"] = "Invalid Argument #%s data type (passed number, wanted string)", + ["commanderror_invaliditem"] = "无效的物品代码", + ["commanderror_invalidweapon"] = "无效的武器代码", + ["commanderror_console"] = "控制台无法执行此命令!", + ["commanderror_invalidcommand"] = "/%s 不是有效的命令!", + ["commanderror_invalidplayerid"] = "无效的玩家服务器ID", + ["commandgeneric_playerid"] = "玩家服务器ID", + ["command_giveammo_noweapon_found"] = "%s 为无效的武器代码!", + ["command_giveammo_weapon"] = "武器代码", + ["command_giveammo_ammo"] = "弹药数量", + ["tpm_nowaypoint"] = "尚未配置导航点!", + ["tpm_success"] = "已传送至该导航点", + + ["noclip_message"] = "飞行模式已被激活 %s", + ["enabled"] = "~g~已开启~s~", + ["disabled"] = "~r~已关闭~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "$%s", + + -- Weapons + + -- Melee + ["weapon_dagger"] = "古骑兵匕首", + ["weapon_bat"] = "棒球棍", + ["weapon_battleaxe"] = "战斧", + ["weapon_bottle"] = "碎酒瓶", + ["weapon_crowbar"] = "撬棍", + ["weapon_flashlight"] = "手电筒", + ["weapon_golfclub"] = "高尔夫球杆", + ["weapon_hammer"] = "铁锤", + ["weapon_hatchet"] = "手斧", + ["weapon_knife"] = "小刀", + ["weapon_knuckle"] = "手指虎", + ["weapon_machete"] = "开山刀", + ["weapon_nightstick"] = "警棍", + ["weapon_wrench"] = "管钳扳手", + ["weapon_poolcue"] = "台球杆", + ["weapon_stone_hatchet"] = "石斧", + ["weapon_switchblade"] = "弹簧刀", + + -- Handguns + ["weapon_appistol"] = "穿甲手枪", + ["weapon_ceramicpistol"] = "陶瓷手枪", + ["weapon_combatpistol"] = "战斗手枪", + ["weapon_doubleaction"] = "双动式左轮手枪", + ["weapon_navyrevolver"] = "海军左轮手枪", + ["weapon_flaregun"] = "信号枪", + ["weapon_gadgetpistol"] = "佩里克手枪", + ["weapon_heavypistol"] = "重型手枪", + ["weapon_revolver"] = "重型左轮手枪", + ["weapon_revolver_mk2"] = "重型左轮手枪-MK2", + ["weapon_marksmanpistol"] = "射手手枪", + ["weapon_pistol"] = "手枪", + ["weapon_pistol_mk2"] = "手枪-MK2", + ["weapon_pistol50"] = "0.5-口径手枪", + ["weapon_snspistol"] = "劣质手枪", + ["weapon_snspistol_mk2"] = "劣质手枪-MK2", + ["weapon_stungun"] = "电击枪", + ["weapon_raypistol"] = "原子堡手枪", + ["weapon_vintagepistol"] = "老式手枪", + + -- Shotguns + ["weapon_assaultshotgun"] = "突击霰弹枪", + ["weapon_autoshotgun"] = "半自动霰弹枪", + ["weapon_bullpupshotgun"] = "无托式霰弹枪", + ["weapon_combatshotgun"] = "战斗霰弹枪", + ["weapon_dbshotgun"] = "双管霰弹枪", + ["weapon_heavyshotgun"] = "重型霰弹枪", + ["weapon_musket"] = "老式火枪", + ["weapon_pumpshotgun"] = "泵动式霰弹枪", + ["weapon_pumpshotgun_mk2"] = "泵动式霰弹枪-MK2", + ["weapon_sawnoffshotgun"] = "短管霰弹枪", + + -- SMG & LMG + ["weapon_assaultsmg"] = "突击冲锋枪", + ["weapon_combatmg"] = "战斗机枪", + ["weapon_combatmg_mk2"] = "战斗机枪-MK2", + ["weapon_combatpdw"] = "作战自卫冲锋枪", + ["weapon_gusenberg"] = "古森柏冲锋枪", + ["weapon_machinepistol"] = "冲锋手枪", + ["weapon_mg"] = "机枪", + ["weapon_microsmg"] = "微型冲锋枪", + ["weapon_minismg"] = "迷你冲锋枪", + ["weapon_smg"] = "冲锋枪", + ["weapon_smg_mk2"] = "冲锋枪-MK2", + ["weapon_raycarbine"] = "不洁使者", + + -- Rifles + ["weapon_advancedrifle"] = "高级步枪", + ["weapon_assaultrifle"] = "突击步枪", + ["weapon_assaultrifle_mk2"] = "突击步枪-MK2", + ["weapon_bullpuprifle"] = "无托式步枪", + ["weapon_bullpuprifle_mk2"] = "无托式步枪-MK2", + ["weapon_carbinerifle"] = "卡宾步枪", + ["weapon_carbinerifle_mk2"] = "卡宾步枪-MK2", + ["weapon_compactrifle"] = "紧凑型步枪", + ["weapon_militaryrifle"] = "军用步枪", + ["weapon_specialcarbine"] = "特制卡宾步枪", + ["weapon_specialcarbine_mk2"] = "特制卡宾步枪-MK2", + ["weapon_heavyrifle"] = "Heavy Rifle", -- Not Translated + + -- Sniper + ["weapon_heavysniper"] = "重型狙击步枪", + ["weapon_heavysniper_mk2"] = "重型狙击步枪-MK2", + ["weapon_marksmanrifle"] = "射手步枪", + ["weapon_marksmanrifle_mk2"] = "射手步枪-MK2", + ["weapon_sniperrifle"] = "狙击步枪", + + -- Heavy / Launchers + ["weapon_compactlauncher"] = "紧凑型榴弹发射器", + ["weapon_firework"] = "烟花发射器", + ["weapon_grenadelauncher"] = "榴弹发射器", + ["weapon_hominglauncher"] = "制导火箭发射器", + ["weapon_minigun"] = "火神机枪", + ["weapon_railgun"] = "电磁轨道炮", + ["weapon_rpg"] = "火箭炮", + ["weapon_rayminigun"] = "寡妇制造者", + + -- Criminal Enterprises DLC + ["weapon_metaldetector"] = "金属探测器", + ["weapon_precisionrifle"] = "精确步枪", + ["weapon_tactilerifle"] = "制式卡宾步枪", + + -- 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 + + -- Thrown + ["weapon_ball"] = "棒球", + ["weapon_bzgas"] = "毒气弹", + ["weapon_flare"] = "信号棒", + ["weapon_grenade"] = "手榴弹", + ["weapon_petrolcan"] = "汽油桶", + ["weapon_hazardcan"] = "有害汽油桶", + ["weapon_molotov"] = "汽油弹", + ["weapon_proxmine"] = "感应式地雷", + ["weapon_pipebomb"] = "土製炸彈", + ["weapon_snowball"] = "雪球", + ["weapon_stickybomb"] = "黏弹", + ["weapon_smokegrenade"] = "烟雾弹", + + -- Special + ["weapon_fireextinguisher"] = "灭火器", + ["weapon_digiscanner"] = "数位扫描仪", + ["weapon_garbagebag"] = "垃圾袋", + ["weapon_handcuffs"] = "手铐", + ["gadget_nightvision"] = "夜视仪", + ["gadget_parachute"] = "降落伞", + + -- Weapon Components + ["component_knuckle_base"] = "基本样式", + ["component_knuckle_pimp"] = "皮条客", + ["component_knuckle_ballas"] = "巴拉斯帮", + ["component_knuckle_dollar"] = "江湖骗子", + ["component_knuckle_diamond"] = "摇滚朋克", + ["component_knuckle_hate"] = "怨气冤家", + ["component_knuckle_love"] = "甜蜜情人", + ["component_knuckle_player"] = "花花公子", + ["component_knuckle_king"] = "霸者之风", + ["component_knuckle_vagos"] = "维戈斯帮", + + ["component_luxary_finish"] = "奢华涂饰", + + ["component_handle_default"] = "默认刀柄", + ["component_handle_vip"] = "贵宾样式", + ["component_handle_bodyguard"] = "保镖款式", + + ["component_vip_finish"] = "贵宾样式", + ["component_bodyguard_finish"] = "保镖款式", + + ["component_camo_finish"] = "数码迷彩", + ["component_camo_finish2"] = "笔刷迷彩", + ["component_camo_finish3"] = "林地迷彩", + ["component_camo_finish4"] = "骷髅头", + ["component_camo_finish5"] = "希斯提·耐", + ["component_camo_finish6"] = "神之子", + ["component_camo_finish7"] = "猎豹纹理", + ["component_camo_finish8"] = "斑马纹理", + ["component_camo_finish9"] = "几何图形", + ["component_camo_finish10"] = "BOOM!", + ["component_camo_finish11"] = "爱国者", + + ["component_camo_slide_finish"] = "数码迷涂装", + ["component_camo_slide_finish2"] = "笔刷迷彩涂装", + ["component_camo_slide_finish3"] = "林地迷彩涂装", + ["component_camo_slide_finish4"] = "骷髅头涂装", + ["component_camo_slide_finish5"] = "希斯提·耐涂装", + ["component_camo_slide_finish6"] = "神之子涂装", + ["component_camo_slide_finish7"] = "猎豹纹理涂装", + ["component_camo_slide_finish8"] = "斑马纹理涂装", + ["component_camo_slide_finish9"] = "几何图形涂装", + ["component_camo_slide_finish10"] = "BOOM涂装", + ["component_camo_slide_finish11"] = "爱国者涂装", + + ["component_clip_default"] = "默认弹夹", + ["component_clip_extended"] = "扩容弹夹", + ["component_clip_drum"] = "鼓式弹夹", + ["component_clip_box"] = "盒型弹匣", + + ["component_scope_holo"] = "全息式瞄准镜", + ["component_scope_small"] = "小型瞄准镜", + ["component_scope_medium"] = "中型瞄准镜", + ["component_scope_large"] = "大型瞄准镜", + ["component_scope"] = "瞄准镜", + ["component_scope_advanced"] = "高级瞄准镜", + ["component_ironsights"] = "铁式瞄具", + + ["component_suppressor"] = "消音器", + ["component_compensator"] = "补偿器", + + ["component_muzzle_flat"] = "扁型枪口制动器", + ["component_muzzle_tactical"] = "战术枪口制动器", + ["component_muzzle_fat"] = "宽尾型枪口制动器", + ["component_muzzle_precision"] = "精準枪口制动器", + ["component_muzzle_heavy"] = "耐用型枪口制动器", + ["component_muzzle_slanted"] = "倾斜型枪口制动器", + ["component_muzzle_split"] = "分岔型枪口制动器", + ["component_muzzle_squared"] = "方形枪口制动器", + + ["component_flashlight"] = "手电筒", + ["component_grip"] = "握把", + + ["component_barrel_default"] = "默认枪管", + ["component_barrel_heavy"] = "重型枪管", + + ["component_ammo_tracer"] = "曳光弹", + ["component_ammo_incendiary"] = "燃烧弹", + ["component_ammo_hollowpoint"] = "被甲空尖弹", + ["component_ammo_fmj"] = "全金属包裹弹", + ["component_ammo_armor"] = "穿甲弹", + ["component_ammo_explosive"] = "爆炸蛋弹", + + ["component_shells_default"] = "默认弹药", + ["component_shells_incendiary"] = "燃烧弹", + ["component_shells_armor"] = "钢式猎鹿蛋", + ["component_shells_hollowpoint"] = "被甲空尖弹", + ["component_shells_explosive"] = "爆裂弹", + + -- Weapon Ammo + ["ammo_rounds"] = "发(子弹)", + ["ammo_shells"] = "发(子弹)", + ["ammo_charge"] = "喷", + ["ammo_petrol"] = "加仑(燃料)", + ["ammo_firework"] = "发(烟花弹)", + ["ammo_rockets"] = "枚(火箭弹)", + ["ammo_grenadelauncher"] = "发(榴弹)", + ["ammo_grenade"] = "枚(手榴弹)", + ["ammo_stickybomb"] = "枚(炸弹)", + ["ammo_pipebomb"] = "枚(炸弹)", + ["ammo_smokebomb"] = "枚(炸彈)", + ["ammo_molotov"] = "瓶(燃烧瓶)", + ["ammo_proxmine"] = "个(地雷)", + ["ammo_bzgas"] = "罐", + ["ammo_ball"] = "个(棒球)", + ["ammo_snowball"] = "个(雪球)", + ["ammo_flare"] = "根(信号棒)", + ["ammo_flaregun"] = "发(信号弹)", + + -- Weapon Tints + ["tint_default"] = "默认色调", + ["tint_green"] = "绿色调", + ["tint_gold"] = "金色调", + ["tint_pink"] = "粉色调", + ["tint_army"] = "军用色调", + ["tint_lspd"] = "洛圣都警局色调", + ["tint_orange"] = "橙色调", + ["tint_platinum"] = "铂金色调", } diff --git a/[core]/es_extended/server/classes/overrides/oxinventory.lua b/[core]/es_extended/server/classes/overrides/oxinventory.lua index 85a1a4392..b6e9b53a4 100644 --- a/[core]/es_extended/server/classes/overrides/oxinventory.lua +++ b/[core]/es_extended/server/classes/overrides/oxinventory.lua @@ -1,223 +1,223 @@ local Inventory if Config.OxInventory then - AddEventHandler('ox_inventory:loadInventory', function(module) - Inventory = module - end) + AddEventHandler("ox_inventory:loadInventory", function(module) + Inventory = module + end) end Core.PlayerFunctionOverrides.OxInventory = { - getInventory = function(self) - return function(minimal) - if minimal then - local minimalInventory = {} - - for k, v in pairs(self.inventory) do - if v.count and v.count > 0 then - local metadata = v.metadata - - if v.metadata and next(v.metadata) == nil then - metadata = nil - end - - minimalInventory[#minimalInventory + 1] = { - name = v.name, - count = v.count, - slot = k, - metadata = metadata - } - end - end - - return minimalInventory - end - - return self.inventory - end - end, - - getLoadout = function() - return function() - return {} - end - end, - - setAccountMoney = function(self) - 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 = money - - self.triggerEvent('esx:setAccountMoney', account) - TriggerEvent('esx:setAccountMoney', self.source, accountName, money, reason) - if Inventory.accounts[accountName] then - Inventory.SetItem(self.source, accountName, money) - end - end - end - end - end, - - addAccountMoney = function(self) - 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) - if Inventory.accounts[accountName] then - Inventory.AddItem(self.source, accountName, money) - end - end - end - end - end, - - removeAccountMoney = function(self) - 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:removeAccountMoney', self.source, accountName, money, reason) - if Inventory.accounts[accountName] then - Inventory.RemoveItem(self.source, accountName, money) - end - end - end - end - end, - - getInventoryItem = function(self) - return function(name, metadata) - return Inventory.GetItem(self.source, name, metadata) - end - end, - - addInventoryItem = function(self) - 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 Inventory.RemoveItem(self.source, name, count or 1, metadata, slot) - end - end, - - setInventoryItem = function(self) - return function(name, count, metadata) - return Inventory.SetItem(self.source, name, count, metadata) - end - end, - - canCarryItem = function(self) - return function(name, count, metadata) - return Inventory.CanCarryItem(self.source, name, count, metadata) - end - end, - - canSwapItem = function(self) - return function(firstItem, firstItemCount, testItem, testItemCount) - return Inventory.CanSwapItem(self.source, firstItem, firstItemCount, testItem, testItemCount) - end - end, - - setMaxWeight = function(self) - return function(newWeight) - self.maxWeight = newWeight - self.triggerEvent('esx:setMaxWeight', self.maxWeight) - return Inventory.Set(self.source, 'maxWeight', newWeight) - end - end, - - addWeapon = function() - return function() end - end, - - addWeaponComponent = function() - return function() end - end, - - addWeaponAmmo = function() - return function() end - end, - - updateWeaponAmmo = function() - return function() end - end, - - setWeaponTint = function() - return function() end - end, - - getWeaponTint = function() - return function() end - end, - - removeWeapon = function() - return function() end - end, - - removeWeaponComponent = function() - return function() end - end, - - removeWeaponAmmo = function() - return function() end - end, - - hasWeaponComponent = function() - return function() - return false - end - end, - - hasWeapon = function() - return function() - return false - end - end, - - hasItem = function(self) - return function(name, metadata) - return Inventory.GetItem(self.source, name, metadata) - end - end, - - getWeapon = function() - return function() end - end, - - syncInventory = function(self) - return function(weight, maxWeight, items, money) - self.weight, self.maxWeight = weight, maxWeight - self.inventory = items - - if money then - for accountName, amount in pairs(money) do - local account = self.getAccount(accountName) - - if account and ESX.Math.Round(account.money) ~= amount then - account.money = amount - self.triggerEvent('esx:setAccountMoney', account) - TriggerEvent('esx:setAccountMoney', self.source, accountName, amount, 'Sync account with item') - end - end - end - end - end + getInventory = function(self) + return function(minimal) + if minimal then + local minimalInventory = {} + + for k, v in pairs(self.inventory) do + if v.count and v.count > 0 then + local metadata = v.metadata + + if v.metadata and next(v.metadata) == nil then + metadata = nil + end + + minimalInventory[#minimalInventory + 1] = { + name = v.name, + count = v.count, + slot = k, + metadata = metadata, + } + end + end + + return minimalInventory + end + + return self.inventory + end + end, + + getLoadout = function() + return function() + return {} + end + end, + + setAccountMoney = function(self) + 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 = money + + self.triggerEvent("esx:setAccountMoney", account) + TriggerEvent("esx:setAccountMoney", self.source, accountName, money, reason) + if Inventory.accounts[accountName] then + Inventory.SetItem(self.source, accountName, money) + end + end + end + end + end, + + addAccountMoney = function(self) + 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) + if Inventory.accounts[accountName] then + Inventory.AddItem(self.source, accountName, money) + end + end + end + end + end, + + removeAccountMoney = function(self) + 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:removeAccountMoney", self.source, accountName, money, reason) + if Inventory.accounts[accountName] then + Inventory.RemoveItem(self.source, accountName, money) + end + end + end + end + end, + + getInventoryItem = function(self) + return function(name, metadata) + return Inventory.GetItem(self.source, name, metadata) + end + end, + + addInventoryItem = function(self) + 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 Inventory.RemoveItem(self.source, name, count or 1, metadata, slot) + end + end, + + setInventoryItem = function(self) + return function(name, count, metadata) + return Inventory.SetItem(self.source, name, count, metadata) + end + end, + + canCarryItem = function(self) + return function(name, count, metadata) + return Inventory.CanCarryItem(self.source, name, count, metadata) + end + end, + + canSwapItem = function(self) + return function(firstItem, firstItemCount, testItem, testItemCount) + return Inventory.CanSwapItem(self.source, firstItem, firstItemCount, testItem, testItemCount) + end + end, + + setMaxWeight = function(self) + return function(newWeight) + self.maxWeight = newWeight + self.triggerEvent("esx:setMaxWeight", self.maxWeight) + return Inventory.Set(self.source, "maxWeight", newWeight) + end + end, + + addWeapon = function() + return function() end + end, + + addWeaponComponent = function() + return function() end + end, + + addWeaponAmmo = function() + return function() end + end, + + updateWeaponAmmo = function() + return function() end + end, + + setWeaponTint = function() + return function() end + end, + + getWeaponTint = function() + return function() end + end, + + removeWeapon = function() + return function() end + end, + + removeWeaponComponent = function() + return function() end + end, + + removeWeaponAmmo = function() + return function() end + end, + + hasWeaponComponent = function() + return function() + return false + end + end, + + hasWeapon = function() + return function() + return false + end + end, + + hasItem = function(self) + return function(name, metadata) + return Inventory.GetItem(self.source, name, metadata) + end + end, + + getWeapon = function() + return function() end + end, + + syncInventory = function(self) + return function(weight, maxWeight, items, money) + self.weight, self.maxWeight = weight, maxWeight + self.inventory = items + + if money then + for accountName, amount in pairs(money) do + local account = self.getAccount(accountName) + + if account and ESX.Math.Round(account.money) ~= amount then + account.money = amount + self.triggerEvent("esx:setAccountMoney", account) + TriggerEvent("esx:setAccountMoney", self.source, accountName, amount, "Sync account with item") + end + end + end + end + end, } diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 49b600cf7..ad3fd030b 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -1,708 +1,866 @@ -local GetPlayerPed = GetPlayerPed -local GetEntityCoords = GetEntityCoords - +local _GetPlayerPed = GetPlayerPed +local _GetEntityCoords = GetEntityCoords +local _ExecuteCommand = ExecuteCommand +local _SetEntityCoords = SetEntityCoords +local _SetEntityHeading = SetEntityHeading +local _TriggerClientEvent = TriggerClientEvent +local _DropPlayer = DropPlayer +local _TriggerEvent = TriggerEvent +local _GiveWeaponToPed = GiveWeaponToPed +local _SetPedAmmo = SetPedAmmo +local _RemoveWeaponFromPed = RemoveWeaponFromPed +local _assert = assert + +---@param playerId number +---@param identifier string +---@param group string +---@param accounts table +---@param inventory table +---@param weight number +---@param job table +---@param loadout table +---@param name string +---@param coords table | vector4 +---@param metadata table 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 - self.coords = coords - self.group = group - self.identifier = identifier - self.inventory = inventory - self.job = job - self.loadout = loadout - self.name = name - self.playerId = playerId - self.source = playerId - self.variables = {} - self.weight = weight - self.maxWeight = Config.MaxWeight - self.metadata = metadata + local targetOverrides = Config.PlayerFunctionOverride and Core.PlayerFunctionOverrides[Config.PlayerFunctionOverride] or {} + + local self = {} + + self.accounts = accounts + self.coords = coords + self.group = group + self.identifier = identifier + self.inventory = inventory + self.job = job + self.loadout = loadout + self.name = name + self.playerId = playerId + self.source = playerId + self.variables = {} + self.weight = weight + self.maxWeight = Config.MaxWeight + self.metadata = metadata self.admin = Core.IsPlayerAdmin(playerId) - 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) - stateBag:set("job", self.job, true) - stateBag:set("group", self.group, true) - stateBag:set("name", self.name, true) - stateBag:set("metadata", self.metadata, true) - - function self.triggerEvent(eventName, ...) - TriggerClientEvent(eventName, self.source, ...) - end - - 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) - SetEntityCoords(Ped, vector.xyz, false, false, false, false) - SetEntityHeading(Ped, vector.w) - end - - function self.getCoords(vector) - local ped = GetPlayerPed(self.source) - local coordinates = GetEntityCoords(ped) - - if vector then - return coordinates - else - return { - x = coordinates.x, - y = coordinates.y, - z = coordinates.z, - } - end - end - - function self.kick(reason) - DropPlayer(self.source, reason) - end - - function self.setMoney(money) - money = ESX.Math.Round(money) - self.setAccountMoney('money', money) - end - - function self.getMoney() - return self.getAccount('money').money - end - - function self.addMoney(money, reason) - money = ESX.Math.Round(money) - self.addAccountMoney('money', money, reason) - end - - function self.removeMoney(money, reason) - money = ESX.Math.Round(money) - self.removeAccountMoney('money', money, reason) - end - - function self.getIdentifier() - return self.identifier - end - - function self.setGroup(newGroup) - ExecuteCommand(('remove_principal identifier.%s group.%s'):format(self.license, self.group)) - self.group = newGroup - Player(self.source).state:set("group", self.group, true) - ExecuteCommand(('add_principal identifier.%s group.%s'):format(self.license, self.group)) - end - - function self.getGroup() - return self.group - end - - function self.set(k, v) - self.variables[k] = v - Player(self.source).state:set(k, v, true) - end - - function self.get(k) - return self.variables[k] - end - - function self.getAccounts(minimal) - if not minimal then - return self.accounts - end - - local minimalAccounts = {} - - for i = 1, #self.accounts do - minimalAccounts[self.accounts[i].name] = self.accounts[i].money - end - - return minimalAccounts - end - - function self.getAccount(account) - for i = 1, #self.accounts do - if self.accounts[i].name == account then - return self.accounts[i] - end - end - return nil - end - - function self.getInventory(minimal) - if minimal then - local minimalInventory = {} - - for _, v in ipairs(self.inventory) do - if v.count > 0 then - minimalInventory[v.name] = v.count - end - end - - return minimalInventory - end - - return self.inventory - end - - function self.getJob() - return self.job - end - - function self.getLoadout(minimal) - if not minimal then - return self.loadout - end - local minimalLoadout = {} - - for _, v in ipairs(self.loadout) do - minimalLoadout[v.name] = { ammo = v.ammo } - if v.tintIndex > 0 then minimalLoadout[v.name].tintIndex = v.tintIndex end - - if #v.components > 0 then - local components = {} - - for _, component in ipairs(v.components) do - if component ~= 'clip_default' then - components[#components + 1] = component - end - end - - if #components > 0 then - minimalLoadout[v.name].components = components - end - end - end - - return minimalLoadout - end - - function self.getName() - return self.name - end - - function self.setName(newName) - self.name = newName - Player(self.source).state:set("name", self.name, true) - end - - function self.setAccountMoney(accountName, money, reason) - reason = reason or 'unknown' - if not tonumber(money) then - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - return - end - 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 = money - - self.triggerEvent('esx:setAccountMoney', account) - TriggerEvent('esx:setAccountMoney', self.source, accountName, money, reason) - else - print(('[^1ERROR^7] Tried To Set Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId)) - end - else - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - end - end - - function self.addAccountMoney(accountName, money, reason) - reason = reason or 'Unknown' - if not tonumber(money) then - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - return - end - 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) - else - print(('[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId)) - end - else - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - end - end - - function self.removeAccountMoney(accountName, money, reason) - reason = reason or 'Unknown' - if not tonumber(money) then - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - return - end - 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:removeAccountMoney', self.source, accountName, money, reason) - else - print(('[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!'):format(accountName, self.playerId)) - end - else - print(('[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7'):format(accountName, self.playerId, money)) - end - end - - function self.getInventoryItem(itemName) - for _, v in ipairs(self.inventory) do - if v.name == itemName then - return v - end - end - end - - function self.addInventoryItem(itemName, count) - local item = self.getInventoryItem(itemName) - - if item then - count = ESX.Math.Round(count) - item.count = item.count + count - self.weight = self.weight + (item.weight * count) - - TriggerEvent('esx:onAddInventoryItem', self.source, item.name, item.count) - self.triggerEvent('esx:addInventoryItem', item.name, item.count) - end - end - - function self.removeInventoryItem(itemName, count) - local item = self.getInventoryItem(itemName) - - if item then - count = ESX.Math.Round(count) - if count > 0 then - local newCount = item.count - count - - if newCount >= 0 then - item.count = newCount - self.weight = self.weight - (item.weight * count) - - TriggerEvent('esx:onRemoveInventoryItem', self.source, item.name, item.count) - self.triggerEvent('esx:removeInventoryItem', item.name, item.count) - end - else - print(('[^1ERROR^7] Player ID:^5%s Tried remove a Invalid count -> %s of %s'):format(self.playerId, count, itemName)) - end - end - end - - function self.setInventoryItem(itemName, count) - local item = self.getInventoryItem(itemName) - - if item and count >= 0 then - count = ESX.Math.Round(count) - - if count > item.count then - self.addInventoryItem(item.name, count - item.count) - else - self.removeInventoryItem(item.name, item.count - count) - end - end - end - - function self.getWeight() - return self.weight - end - - function self.getMaxWeight() - return self.maxWeight - 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) - - 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) - local firstItemObject = self.getInventoryItem(firstItem) - local testItemObject = self.getInventoryItem(testItem) - - if firstItemObject.count >= firstItemCount then - local weightWithoutFirstItem = ESX.Math.Round(self.weight - (firstItemObject.weight * firstItemCount)) - local weightWithTestItem = ESX.Math.Round(weightWithoutFirstItem + (testItemObject.weight * testItemCount)) - - return weightWithTestItem <= self.maxWeight - end - - return false - end - - function self.setMaxWeight(newWeight) - self.maxWeight = newWeight - self.triggerEvent('esx:setMaxWeight', self.maxWeight) - end - - function self.setJob(newJob, grade) - grade = tostring(grade) - local lastJob = json.decode(json.encode(self.job)) - - 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.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) - else - self.job.skin_male = {} - end - - if gradeObject.skin_female then - self.job.skin_female = json.decode(gradeObject.skin_female) - else - self.job.skin_female = {} - end - - TriggerEvent('esx:setJob', self.source, self.job, lastJob) - self.triggerEvent('esx:setJob', self.job, lastJob) - Player(self.source).state:set("job", self.job, true) - else - print(('[es_extended] [^3WARNING^7] Ignoring invalid ^5.setJob()^7 usage for ID: ^5%s^7, Job: ^5%s^7'):format(self.source, job)) - end - end - - function self.addWeapon(weaponName, ammo) - if not self.hasWeapon(weaponName) then - local weaponLabel = ESX.GetWeaponLabel(weaponName) - - table.insert(self.loadout, { - name = weaponName, - ammo = ammo, - label = weaponLabel, - components = {}, - tintIndex = 0 - }) - - GiveWeaponToPed(GetPlayerPed(self.source), joaat(weaponName), ammo, false, false) - self.triggerEvent('esx:addInventoryItem', weaponLabel, false, true) - end - end - - function self.addWeaponComponent(weaponName, weaponComponent) - local loadoutNum, weapon = self.getWeapon(weaponName) - - if weapon then - local component = ESX.GetWeaponComponent(weaponName, weaponComponent) - - if component then - if not self.hasWeaponComponent(weaponName, weaponComponent) then - self.loadout[loadoutNum].components[#self.loadout[loadoutNum].components + 1] = weaponComponent - local componentHash = ESX.GetWeaponComponent(weaponName, weaponComponent).hash - GiveWeaponComponentToPed(GetPlayerPed(self.source), joaat(weaponName), componentHash) - self.triggerEvent('esx:addInventoryItem', component.label, false, true) - end - end - end - end - - function self.addWeaponAmmo(weaponName, ammoCount) - local _, weapon = self.getWeapon(weaponName) - - if weapon then - weapon.ammo = weapon.ammo + ammoCount - SetPedAmmo(GetPlayerPed(self.source), joaat(weaponName), weapon.ammo) - end - end - - function self.updateWeaponAmmo(weaponName, ammoCount) - local _, weapon = self.getWeapon(weaponName) - - if weapon then - weapon.ammo = ammoCount - end - end - - function self.setWeaponTint(weaponName, weaponTintIndex) - local loadoutNum, weapon = self.getWeapon(weaponName) - - if weapon then - local _, weaponObject = ESX.GetWeapon(weaponName) - - if weaponObject.tints and weaponObject.tints[weaponTintIndex] then - self.loadout[loadoutNum].tintIndex = weaponTintIndex - self.triggerEvent('esx:setWeaponTint', weaponName, weaponTintIndex) - self.triggerEvent('esx:addInventoryItem', weaponObject.tints[weaponTintIndex], false, true) - end - end - end - - function self.getWeaponTint(weaponName) - local _, weapon = self.getWeapon(weaponName) - - if weapon then - return weapon.tintIndex - end - - return 0 - end - - function self.removeWeapon(weaponName) - local weaponLabel, playerPed = nil, GetPlayerPed(self.source) - - if not playerPed then - return print("[^1ERROR^7] xPlayer.removeWeapon ^5invalid^7 player ped!") - end - - for k, v in ipairs(self.loadout) do - if v.name == weaponName then - weaponLabel = v.label - - for _, v2 in ipairs(v.components) do - self.removeWeaponComponent(weaponName, v2) - end - - local weaponHash = joaat(v.name) - - RemoveWeaponFromPed(playerPed, weaponHash) - SetPedAmmo(playerPed, weaponHash, 0) - - table.remove(self.loadout, k) - break - end - end - - if weaponLabel then - self.triggerEvent('esx:removeInventoryItem', weaponLabel, false, true) - end - end - - function self.removeWeaponComponent(weaponName, weaponComponent) - local loadoutNum, weapon = self.getWeapon(weaponName) - - if weapon then - local component = ESX.GetWeaponComponent(weaponName, weaponComponent) - - if component then - if self.hasWeaponComponent(weaponName, weaponComponent) then - for k, v in ipairs(self.loadout[loadoutNum].components) do - if v == weaponComponent then - table.remove(self.loadout[loadoutNum].components, k) - break - end - end - - self.triggerEvent('esx:removeWeaponComponent', weaponName, weaponComponent) - self.triggerEvent('esx:removeInventoryItem', component.label, false, true) - end - end - end - end - - function self.removeWeaponAmmo(weaponName, ammoCount) - local _, weapon = self.getWeapon(weaponName) - - if weapon then - weapon.ammo = weapon.ammo - ammoCount - self.triggerEvent('esx:setWeaponAmmo', weaponName, weapon.ammo) - end - end - - function self.hasWeaponComponent(weaponName, weaponComponent) - local _, weapon = self.getWeapon(weaponName) - - if weapon then - for _, v in ipairs(weapon.components) do - if v == weaponComponent then - return true - end - end - - return false - else - return false - end - end - - function self.hasWeapon(weaponName) - for _, v in ipairs(self.loadout) do - if v.name == weaponName then - return true - end - end - - return false - end - - function self.hasItem(item) - for _, v in ipairs(self.inventory) do - if (v.name == item) and (v.count >= 1) then - return v, v.count - end - end - - return false - end - - function self.getWeapon(weaponName) - for k, v in ipairs(self.loadout) do - if v.name == weaponName then - return k, v - end - end - end - - function self.showNotification(msg, notifyType, length) - self.triggerEvent('esx:showNotification', msg, notifyType, length) - end - - function self.showAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) - self.triggerEvent('esx:showAdvancedNotification', sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) - end - - function self.showHelpNotification(msg, thisFrame, beep, duration) - self.triggerEvent('esx:showHelpNotification', msg, thisFrame, beep, duration) - 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 - - 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 (_type == "string") then - local value = metaData[subIndex] - return value - end - - 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 - - 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 - - function self.setMeta(index, value, subValue) - if not index then - return print("[^1ERROR^7] xPlayer.setMeta ^5index^7 is Missing!") - end - - if type(index) ~= "string" then - return print("[^1ERROR^7] xPlayer.setMeta ^5index^7 should be ^5string^7!") - end - - if not value then - return print(("[^1ERROR^7] xPlayer.setMeta ^5%s^7 is Missing!"):format(value)) - end - - 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 + 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) + stateBag:set("job", self.job, true) + stateBag:set("group", self.group, true) + stateBag:set("name", self.name, true) + stateBag:set("metadata", self.metadata, true) + + ---@param eventName string + ---@param ... any + ---@return void + function self.triggerEvent(eventName, ...) + _assert(type(eventName) == "string", "eventName should be string!") + _TriggerClientEvent(eventName, self.source, ...) + end + + ---@param coordinates vector4 | vector3 | table + ---@return void + 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) + _SetEntityCoords(ped, vector.xyz, false, false, false, false) + _SetEntityHeading(ped, vector.w) + end + + ---@param vector boolean + ---@return vector3 | table + function self.getCoords(vector) + local ped = _GetPlayerPed(self.source) + local coordinates = _GetEntityCoords(ped) + + return vector and coordinates or { x = coordinates.x, y = coordinates.y, z = coordinates.z } + end + + ---@param reason string + ---@return void + function self.kick(reason) + _DropPlayer(self.source, reason) + end + + ---@param money number + ---@return void + function self.setMoney(money) + _assert(type(money) == "number", "money should be number!") + money = ESX.Math.Round(money) + self.setAccountMoney("money", money) + end + + ---@return number + function self.getMoney() + return self.getAccount("money").money + end + + ---@param money number + ---@param reason string + ---@return void + function self.addMoney(money, reason) + money = ESX.Math.Round(money) + self.addAccountMoney("money", money, reason) + end + + ---@param money number + ---@param reason string + ---@return void + function self.removeMoney(money, reason) + money = ESX.Math.Round(money) + self.removeAccountMoney("money", money, reason) + end + + ---@return string + function self.getIdentifier() + return self.identifier + end + + ---@param newGroup string + ---@return void + function self.setGroup(newGroup) + _ExecuteCommand(("remove_principal identifier.%s group.%s"):format(self.license, self.group)) + self.group = newGroup + Player(self.source).state:set("group", self.group, true) + _ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group)) + end + + ---@return string + function self.getGroup() + return self.group + end + + ---@param k string + ---@param v any + ---@return void + function self.set(k, v) + self.variables[k] = v + Player(self.source).state:set(k, v, true) + end + + ---@param k string + ---@return any + function self.get(k) + return self.variables[k] + end + + ---@param minimal boolean + ---@return table + function self.getAccounts(minimal) + if not minimal then + return self.accounts + end + + local minimalAccounts = {} + + for i = 1, #self.accounts do + minimalAccounts[self.accounts[i].name] = self.accounts[i].money + end + + return minimalAccounts + end + + ---@param account string + ---@return table | nil + function self.getAccount(account) + for i = 1, #self.accounts do + if self.accounts[i].name == account then + return self.accounts[i] + end + end + return nil + end + + ---@param minimal boolean + ---@return table + function self.getInventory(minimal) + if minimal then + local minimalInventory = {} + + for _, v in ipairs(self.inventory) do + if v.count > 0 then + minimalInventory[v.name] = v.count + end + end + + return minimalInventory + end + + return self.inventory + end + + ---@return table + function self.getJob() + return self.job + end + + ---@param minimal boolean + ---@return table + function self.getLoadout(minimal) + if not minimal then + return self.loadout + end + local minimalLoadout = {} + + for _, v in ipairs(self.loadout) do + minimalLoadout[v.name] = { ammo = v.ammo } + if v.tintIndex > 0 then + minimalLoadout[v.name].tintIndex = v.tintIndex + end + + if #v.components > 0 then + local components = {} + + for _, component in ipairs(v.components) do + if component ~= "clip_default" then + components[#components + 1] = component + end + end + + if #components > 0 then + minimalLoadout[v.name].components = components + end + end + end + + return minimalLoadout + end + + ---@return string + function self.getName() + return self.name + end + + ---@param newName string + ---@return void + function self.setName(newName) + self.name = newName + Player(self.source).state:set("name", self.name, true) + end + + ---@param accountName string + ---@param money number + ---@param reason string + ---@return void + function self.setAccountMoney(accountName, money, reason) + reason = reason or "unknown" + if not tonumber(money) then + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + return + end + 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 = money + + self.triggerEvent("esx:setAccountMoney", account) + _TriggerEvent("esx:setAccountMoney", self.source, accountName, money, reason) + else + print(("[^1ERROR^7] Tried To Set Invalid Account ^5%s^0 For Player ^5%s^0!"):format(accountName, self.playerId)) + end + else + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + end + end + + ---@param accountName string + ---@param money number + ---@param reason string + ---@return void + function self.addAccountMoney(accountName, money, reason) + reason = reason or "Unknown" + if not tonumber(money) then + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + return + end + 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) + else + print(("[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!"):format(accountName, self.playerId)) + end + else + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + end + end + + ---@param accountName string + ---@param money number + ---@param reason string + ---@return void + function self.removeAccountMoney(accountName, money, reason) + reason = reason or "Unknown" + if not tonumber(money) then + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + return + end + if money > 0 then + local account = self.getAccount(accountName) + + if account then + money = account.round and ESX.Math.Round(money) or money + if self.accounts[account.index].money - money > self.accounts[account.index].money then + print(("[^1ERROR^7] Tried To Underflow Account ^5%s^0 For Player ^5%s^0!"):format(accountName, self.playerId)) + return + end + self.accounts[account.index].money = self.accounts[account.index].money - money + + self.triggerEvent("esx:setAccountMoney", account) + _TriggerEvent("esx:removeAccountMoney", self.source, accountName, money, reason) + else + print(("[^1ERROR^7] Tried To Set Add To Invalid Account ^5%s^0 For Player ^5%s^0!"):format(accountName, self.playerId)) + end + else + print(("[^1ERROR^7] Tried To Set Account ^5%s^0 For Player ^5%s^0 To An Invalid Number -> ^5%s^7"):format(accountName, self.playerId, money)) + end + end + + ---@param itemName string + ---@return table | nil + function self.getInventoryItem(itemName) + for _, v in ipairs(self.inventory) do + if v.name == itemName then + return v + end + end + return nil + end + + ---@param itemName string + ---@param count number + ---@return void + function self.addInventoryItem(itemName, count) + local item = self.getInventoryItem(itemName) + + if item then + count = ESX.Math.Round(count) + item.count = item.count + count + self.weight = self.weight + (item.weight * count) + + _TriggerEvent("esx:onAddInventoryItem", self.source, item.name, item.count) + self.triggerEvent("esx:addInventoryItem", item.name, item.count) + end + end + + ---@param itemName string + ---@param count number + ---@return void + function self.removeInventoryItem(itemName, count) + local item = self.getInventoryItem(itemName) + + if item then + count = ESX.Math.Round(count) + if count > 0 then + local newCount = item.count - count + + if newCount >= 0 then + item.count = newCount + self.weight = self.weight - (item.weight * count) + + _TriggerEvent("esx:onRemoveInventoryItem", self.source, item.name, item.count) + self.triggerEvent("esx:removeInventoryItem", item.name, item.count) + end + else + print(("[^1ERROR^7] Player ID:^5%s Tried remove a Invalid count -> %s of %s"):format(self.playerId, count, itemName)) + end + end + end + + ---@param itemName string + ---@param count number + ---@return void + function self.setInventoryItem(itemName, count) + local item = self.getInventoryItem(itemName) + + if item and count >= 0 then + count = ESX.Math.Round(count) + + if count > item.count then + self.addInventoryItem(item.name, count - item.count) + else + self.removeInventoryItem(item.name, item.count - count) + end + end + end + + ---@return number + function self.getWeight() + return self.weight + end + + ---@return number + function self.getMaxWeight() + return self.maxWeight + end + + ---@param itemName string + ---@param count number + ---@return boolean + function self.canCarryItem(itemName, 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 + end + + ---@param firstItem string + ---@param firstItemCount number + ---@param testItem string + ---@param testItemCount number + ---@return boolean + function self.canSwapItem(firstItem, firstItemCount, testItem, testItemCount) + local firstItemObject = self.getInventoryItem(firstItem) + local testItemObject = self.getInventoryItem(testItem) + + if firstItemObject.count >= firstItemCount then + local weightWithoutFirstItem = ESX.Math.Round(self.weight - (firstItemObject.weight * firstItemCount)) + local weightWithTestItem = ESX.Math.Round(weightWithoutFirstItem + (testItemObject.weight * testItemCount)) + + return weightWithTestItem <= self.maxWeight + end + + return false + end + + ---@param newWeight number + ---@return void + function self.setMaxWeight(newWeight) + self.maxWeight = newWeight + self.triggerEvent("esx:setMaxWeight", self.maxWeight) + end + + ---@param newJob string + ---@param grade string + ---@return void + function self.setJob(newJob, grade) + grade = tostring(grade) + local lastJob = self.job + + if not ESX.DoesJobExist(newJob, grade) then + return print(("[es_extended] [^3WARNING^7] Ignoring invalid ^5.setJob()^7 usage for ID: ^5%s^7, Job: ^5%s^7"):format(self.source, job)) + end + + local jobObject, gradeObject = ESX.Jobs[newJob], ESX.Jobs[newJob].grades[grade] + + self.job = { + id = jobObject.id, + name = jobObject.name, + label = jobObject.label, + + grade = tonumber(grade), + grade_name = gradeObject.name, + grade_label = gradeObject.label, + grade_salary = gradeObject.salary, + + skin_male = gradeObject.skin_male and json.decode(gradeObject.skin_male) or {}, + skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {}, + } + + TriggerEvent("esx:setJob", self.source, self.job, lastJob) + self.triggerEvent("esx:setJob", self.job, lastJob) + Player(self.source).state:set("job", self.job, true) + end + + ---@param weaponName string + ---@param ammo number + ---@return void + function self.addWeapon(weaponName, ammo) + if not self.hasWeapon(weaponName) then + local weaponLabel = ESX.GetWeaponLabel(weaponName) + + table.insert(self.loadout, { + name = weaponName, + ammo = ammo, + label = weaponLabel, + components = {}, + tintIndex = 0, + }) + + _GiveWeaponToPed(_GetPlayerPed(self.source), joaat(weaponName), ammo, false, false) + self.triggerEvent("esx:addInventoryItem", weaponLabel, false, true) + end + end + + ---@param weaponName string + ---@param weaponComponent string + ---@return void + function self.addWeaponComponent(weaponName, weaponComponent) + local loadoutNum , weapon = self.getWeapon(weaponName) + + if weapon then + local component = ESX.GetWeaponComponent(weaponName, weaponComponent) + + if component then + if not self.hasWeaponComponent(weaponName, weaponComponent) then + self.loadout[loadoutNum].components[#self.loadout[loadoutNum].components + 1] = weaponComponent + local componentHash = ESX.GetWeaponComponent(weaponName, weaponComponent).hash + GiveWeaponComponentToPed(GetPlayerPed(self.source), joaat(weaponName), componentHash) + self.triggerEvent("esx:addInventoryItem", component.label, false, true) + end + end + end + end + + ---@param weaponName string + ---@param ammoCount number + ---@return void + function self.addWeaponAmmo(weaponName, ammoCount) + local _, weapon = self.getWeapon(weaponName) + + if weapon then + weapon.ammo = weapon.ammo + ammoCount + _SetPedAmmo(GetPlayerPed(self.source), joaat(weaponName), weapon.ammo) + end + end + + ---@param weaponName string + ---@param ammoCount number + ---@return void + function self.updateWeaponAmmo(weaponName, ammoCount) + local _, weapon = self.getWeapon(weaponName) + + if weapon then + weapon.ammo = ammoCount + end + end + + ---@param weaponName string + ---@param weaponTintIndex number + ---@return void + function self.setWeaponTint(weaponName, weaponTintIndex) + local loadoutNum , weapon = self.getWeapon(weaponName) + + if weapon then + local _, weaponObject = ESX.GetWeapon(weaponName) + + if weaponObject.tints and weaponObject.tints[weaponTintIndex] then + self.loadout[loadoutNum].tintIndex = weaponTintIndex + self.triggerEvent("esx:setWeaponTint", weaponName, weaponTintIndex) + self.triggerEvent("esx:addInventoryItem", weaponObject.tints[weaponTintIndex], false, true) + end + end + end + + ---@param weaponName string + ---@return number + function self.getWeaponTint(weaponName) + local _, weapon = self.getWeapon(weaponName) + + if weapon then + return weapon.tintIndex + end + + return 0 + end + + ---@param weaponName string + ---@return void + function self.removeWeapon(weaponName) + local weaponLabel, playerPed = nil, _GetPlayerPed(self.source) + + if not playerPed then + return print("[^1ERROR^7] xPlayer.removeWeapon ^5invalid^7 player ped!") + end + + for k, v in ipairs(self.loadout) do + if v.name == weaponName then + weaponLabel = v.label + + for _, v2 in ipairs(v.components) do + self.removeWeaponComponent(weaponName, v2) + end + + local weaponHash = joaat(v.name) + _RemoveWeaponFromPed(playerPed, weaponHash) + _SetPedAmmo(playerPed, weaponHash, 0) + + table.remove(self.loadout, k) + break + end + end + + if weaponLabel then + self.triggerEvent("esx:removeInventoryItem", weaponLabel, false, true) + end + end + + ---@param weaponName string + ---@param weaponComponent string + ---@return void + function self.removeWeaponComponent(weaponName, weaponComponent) + local loadoutNum , weapon = self.getWeapon(weaponName) + + if weapon then + ---@type table + local component = ESX.GetWeaponComponent(weaponName, weaponComponent) + + if component then + if self.hasWeaponComponent(weaponName, weaponComponent) then + for k, v in ipairs(self.loadout[loadoutNum].components) do + if v == weaponComponent then + table.remove(self.loadout[loadoutNum].components, k) + break + end + end + + self.triggerEvent("esx:removeWeaponComponent", weaponName, weaponComponent) + self.triggerEvent("esx:removeInventoryItem", component.label, false, true) + end + end + end + end + + ---@param weaponName string + ---@param ammoCount number + ---@return void + function self.removeWeaponAmmo(weaponName, ammoCount) + local _, weapon = self.getWeapon(weaponName) + + if weapon then + weapon.ammo = weapon.ammo - ammoCount + _SetPedAmmo(GetPlayerPed(self.source), joaat(weaponName), weapon.ammo) + end + end + + ---@param weaponName string + ---@param weaponComponent string + ---@return boolean + function self.hasWeaponComponent(weaponName, weaponComponent) + local _, weapon = self.getWeapon(weaponName) + + if weapon then + for _, v in ipairs(weapon.components) do + if v == weaponComponent then + return true + end + end + + return false + end + + return false + end + + ---@param weaponName string + ---@return boolean + function self.hasWeapon(weaponName) + for _, v in ipairs(self.loadout) do + if v.name == weaponName then + return true + end + end + + return false + end + + ---@param item string + ---@return table, number | false + function self.hasItem(item) + for _, v in ipairs(self.inventory) do + if v.name == item and v.count >= 1 then + return v, v.count + end + end + + return false + end + + ---@param weaponName string + ---@return number, table | nil + function self.getWeapon(weaponName) + for k, v in ipairs(self.loadout) do + if v.name == weaponName then + return k, v + end + end + + return nil + end + + ---@param msg string + ---@param type string + ---@param length number + ---@return void + function self.showNotification(msg, notifyType, length) + self.triggerEvent("esx:showNotification", msg, notifyType, length) + end + + ---@param sender string + ---@param subject string + ---@param msg string + ---@param textureDict string + ---@param iconType string + ---@param flash boolean + ---@param saveToBrief boolean + ---@param hudColorIndex number + ---@return void + function self.showAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) + self.triggerEvent("esx:showAdvancedNotification", sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) + end + + ---@param msg string + ---@param thisFrame boolean + ---@param beep boolean + ---@param duration number + ---@return void + function self.showHelpNotification(msg, thisFrame, beep, duration) + self.triggerEvent("esx:showHelpNotification", msg, thisFrame, beep, duration) + end + + ---@param index any + ---@param subIndex any + ---@return table + 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 + + 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 _type == "string" then + local value = metaData[subIndex] + return value + end + + 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 + + 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 + + ---@param index any + ---@param value any + ---@param subValue any + ---@return void + function self.setMeta(index, value, subValue) + if not index then + return print("[^1ERROR^7] xPlayer.setMeta ^5index^7 is Missing!") + end + + if type(index) ~= "string" then + return print("[^1ERROR^7] xPlayer.setMeta ^5index^7 should be ^5string^7!") + end + + if value == nil then + return print("[^1ERROR^7] xPlayer.setMeta value is missing!") + end + + 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 if not self.metadata[index] or type(self.metadata[index]) ~= "table" then - self.metadata[index] = { } - end - - self.metadata[index] = type(self.metadata[index]) == 'table' and self.metadata[index] or {} - self.metadata[index][value] = subValue - end - - Player(self.source).state:set('metadata', self.metadata, true) - end - - function self.clearMeta(index, subValues) - if not index then - return print("[^1ERROR^7] xPlayer.clearMeta ^5index^7 is Missing!") - end - - if type(index) ~= "string" then - return print("[^1ERROR^7] xPlayer.clearMeta ^5index^7 should be ^5string^7!") - end - - local metaData = self.metadata[index] - if metaData == nil then - return Config.EnableDebug and print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 does not exist!"):format(index)) or nil - end - - if not subValues then - -- If no subValues is provided, we will clear the entire value in the metaData table - self.metadata[index] = nil - elseif type(subValues) == "string" then - -- If subValues is a string, we will clear the specific subValue within the table - if type(metaData) == "table" then - metaData[subValues] = nil - else - return print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 is not a table! Cannot clear subValue ^5%s^7."):format(index, subValues)) - end - elseif type(subValues) == "table" then - -- If subValues is a table, we will clear multiple subValues within the table - for i = 1, #subValues do - local subValue = subValues[i] - if type(subValue) == "string" then - if type(metaData) == "table" then - metaData[subValue] = nil - else - print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 is not a table! Cannot clear subValue ^5%s^7."):format(index, subValue)) - end - else - print(("[^1ERROR^7] xPlayer.clearMeta subValues should contain ^5string^7, received ^5%s^7, skipping..."):format(type(subValue))) - end - end - else - return print(("[^1ERROR^7] xPlayer.clearMeta ^5subValues^7 should be ^5string^7 or ^5table^7, received ^5%s^7!"):format(type(subValues))) - end - - Player(self.source).state:set('metadata', self.metadata, true) - end - - for fnName, fn in pairs(targetOverrides) do - self[fnName] = fn(self) - end - - return self + self.metadata[index] = {} + end + + self.metadata[index] = type(self.metadata[index]) == "table" and self.metadata[index] or {} + self.metadata[index][value] = subValue + end + + Player(self.source).state:set("metadata", self.metadata, true) + end + + function self.clearMeta(index, subValues) + if not index then + return print("[^1ERROR^7] xPlayer.clearMeta ^5index^7 is Missing!") + end + + if type(index) ~= "string" then + return print("[^1ERROR^7] xPlayer.clearMeta ^5index^7 should be ^5string^7!") + end + + local metaData = self.metadata[index] + if metaData == nil then + return Config.EnableDebug and print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 does not exist!"):format(index)) or nil + end + + if not subValues then + -- If no subValues is provided, we will clear the entire value in the metaData table + self.metadata[index] = nil + elseif type(subValues) == "string" then + -- If subValues is a string, we will clear the specific subValue within the table + if type(metaData) == "table" then + metaData[subValues] = nil + else + return print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 is not a table! Cannot clear subValue ^5%s^7."):format(index, subValues)) + end + elseif type(subValues) == "table" then + -- If subValues is a table, we will clear multiple subValues within the table + for i = 1, #subValues do + local subValue = subValues[i] + if type(subValue) == "string" then + if type(metaData) == "table" then + metaData[subValue] = nil + else + print(("[^1ERROR^7] xPlayer.clearMeta ^5%s^7 is not a table! Cannot clear subValue ^5%s^7."):format(index, subValue)) + end + else + print(("[^1ERROR^7] xPlayer.clearMeta subValues should contain ^5string^7, received ^5%s^7, skipping..."):format(type(subValue))) + end + end + else + return print(("[^1ERROR^7] xPlayer.clearMeta ^5subValues^7 should be ^5string^7 or ^5table^7, received ^5%s^7!"):format(type(subValues))) + end + + Player(self.source).state:set("metadata", self.metadata, true) + end + + for fnName, fn in pairs(targetOverrides) do + self[fnName] = fn(self) + end + + return self end diff --git a/[core]/es_extended/server/commands.lua b/[core]/es_extended/server/commands.lua index 4bb0de60a..1c998368f 100644 --- a/[core]/es_extended/server/commands.lua +++ b/[core]/es_extended/server/commands.lua @@ -1,583 +1,706 @@ -ESX.RegisterCommand({'setcoords', 'tp'}, 'admin', function(xPlayer, args) - 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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 = 'coordinate' }, - { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'coordinate' }, - { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'coordinate' } - } -}) - -ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) - if not ESX.DoesJobExist(args.job, args.grade) then - return showError(TranslateCap('command_setjob_invalid')) - end - - args.playerId.setJob(args.job, args.grade) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Target", value = args.playerId.name, inline = true }, - { name = "Job", value = args.job, inline = true }, - { name = "Grade", value = args.grade, 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' } - } -}) - -local upgrades = Config.SpawnVehMaxUpgrades and - { - 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) - local playerVehicle = GetVehiclePedIsIn(playerPed) - - if not args.car or type(args.car) ~= 'string' then - args.car = 'adder' - end - - if playerVehicle then - DeleteEntity(playerVehicle) - end - - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Vehicle", value = args.car, inline = true } - }) - end - - ESX.OneSync.SpawnVehicle(args.car, playerCoords, playerHeading, upgrades, function(networkId) - if networkId then - local vehicle = NetworkGetEntityFromNetworkId(networkId) - for _ = 1, 20 do - Wait(0) - SetPedIntoVehicle(playerPed, vehicle, -1) - - if GetVehiclePedIsIn(playerPed, false) == vehicle then - break - end - end - if GetVehiclePedIsIn(playerPed, false) ~= vehicle then - showError('[^1ERROR^7] The player could not be seated in the vehicle') - end - end - end) -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) - local PedVehicle = GetVehiclePedIsIn(GetPlayerPed(xPlayer.source), false) - if DoesEntityExist(PedVehicle) then - DeleteEntity(PedVehicle) - end - local Vehicles = ESX.OneSync.GetVehiclesInArea(GetEntityCoords(GetPlayerPed(xPlayer.source)), - tonumber(args.radius) or 5.0) - for i = 1, #Vehicles do - local Vehicle = NetworkGetEntityFromNetworkId(Vehicles[i]) - if DoesEntityExist(Vehicle) then - DeleteEntity(Vehicle) - end - end - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - }) - end -end, false, { - help = TranslateCap('command_cardel'), - validate = false, - arguments = { - { name = 'radius', validate = false, help = TranslateCap('command_cardel_radius'), type = 'number' } - } -}) - -ESX.RegisterCommand({ 'fix', 'repair' }, 'admin', function(xPlayer, args, showError) - local xTarget = args.playerId - local ped = GetPlayerPed(xTarget.source) - local pedVehicle = GetVehiclePedIsIn(ped, false) - if not pedVehicle or GetPedInVehicleSeat(pedVehicle, -1) ~= ped then - showError(TranslateCap('not_in_vehicle')) - return - end - xTarget.triggerEvent("esx:repairPedVehicle") - xPlayer.showNotification(TranslateCap('command_repair_success'), true, false, 140) - if xPlayer.source ~= xTarget.source then - xTarget.showNotification(TranslateCap('command_repair_success_target'), true, false, 140) - end - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Fix Vehicle /fix Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Target", value = xTarget.name, inline = true }, - }) - end -end, true, { - help = TranslateCap('command_repair'), - validate = false, - arguments = { - { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } - } -}) - -ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showError) - if not args.playerId.getAccount(args.account) then - return showError(TranslateCap('command_giveaccountmoney_invalid')) - end - 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) - -ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showError) - if not args.playerId.getAccount(args.account) then - return showError(TranslateCap('command_giveaccountmoney_invalid')) - end - 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) - -ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showError) - if not args.playerId.getAccount(args.account) then - return showError(TranslateCap('command_removeaccountmoney_invalid')) - end - 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) +ESX.RegisterCommand( + { "setcoords", "tp" }, + "admin", + function(xPlayer, args) + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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 = "coordinate" }, + { name = "y", help = TranslateCap("command_setcoords_y"), type = "coordinate" }, + { name = "z", help = TranslateCap("command_setcoords_z"), type = "coordinate" }, + }, + } +) + +ESX.RegisterCommand( + "setjob", + "admin", + function(xPlayer, args, showError) + if not ESX.DoesJobExist(args.job, args.grade) then + return showError(TranslateCap("command_setjob_invalid")) + end + + args.playerId.setJob(args.job, args.grade) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Job", value = args.job, inline = true }, + { name = "Grade", value = args.grade, 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" }, + }, + } +) + +local upgrades = Config.SpawnVehMaxUpgrades and { + 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) + local playerVehicle = GetVehiclePedIsIn(playerPed) + + if not args.car or type(args.car) ~= "string" then + args.car = "adder" + end + + if playerVehicle then + DeleteEntity(playerVehicle) + end + + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Vehicle", value = args.car, inline = true }, + }) + end + + ESX.OneSync.SpawnVehicle(args.car, playerCoords, playerHeading, upgrades, function(networkId) + if networkId then + local vehicle = NetworkGetEntityFromNetworkId(networkId) + for _ = 1, 20 do + Wait(0) + SetPedIntoVehicle(playerPed, vehicle, -1) + + if GetVehiclePedIsIn(playerPed, false) == vehicle then + break + end + end + if GetVehiclePedIsIn(playerPed, false) ~= vehicle then + showError("[^1ERROR^7] The player could not be seated in the vehicle") + end + end + end) + 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) + local PedVehicle = GetVehiclePedIsIn(GetPlayerPed(xPlayer.source), false) + if DoesEntityExist(PedVehicle) then + DeleteEntity(PedVehicle) + end + local Vehicles = ESX.OneSync.GetVehiclesInArea(GetEntityCoords(GetPlayerPed(xPlayer.source)), tonumber(args.radius) or 5.0) + for i = 1, #Vehicles do + local Vehicle = NetworkGetEntityFromNetworkId(Vehicles[i]) + if DoesEntityExist(Vehicle) then + DeleteEntity(Vehicle) + end + end + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + }) + end + end, + false, + { + help = TranslateCap("command_cardel"), + validate = false, + arguments = { + { name = "radius", validate = false, help = TranslateCap("command_cardel_radius"), type = "number" }, + }, + } +) + +ESX.RegisterCommand( + { "fix", "repair" }, + "admin", + function(xPlayer, args, showError) + local xTarget = args.playerId + local ped = GetPlayerPed(xTarget.source) + local pedVehicle = GetVehiclePedIsIn(ped, false) + if not pedVehicle or GetPedInVehicleSeat(pedVehicle, -1) ~= ped then + showError(TranslateCap("not_in_vehicle")) + return + end + xTarget.triggerEvent("esx:repairPedVehicle") + xPlayer.showNotification(TranslateCap("command_repair_success"), true, false, 140) + if xPlayer.source ~= xTarget.source then + xTarget.showNotification(TranslateCap("command_repair_success_target"), true, false, 140) + end + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Fix Vehicle /fix Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = xTarget.name, inline = true }, + }) + end + end, + true, + { + help = TranslateCap("command_repair"), + validate = false, + arguments = { + { name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" }, + }, + } +) + +ESX.RegisterCommand( + "setaccountmoney", + "admin", + function(xPlayer, args, showError) + if not args.playerId.getAccount(args.account) then + return showError(TranslateCap("command_giveaccountmoney_invalid")) + end + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +ESX.RegisterCommand( + "giveaccountmoney", + "admin", + function(xPlayer, args, showError) + if not args.playerId.getAccount(args.account) then + return showError(TranslateCap("command_giveaccountmoney_invalid")) + end + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +ESX.RegisterCommand( + "removeaccountmoney", + "admin", + function(xPlayer, args, showError) + if not args.playerId.getAccount(args.account) then + return showError(TranslateCap("command_removeaccountmoney_invalid")) + end + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } - }) - - ESX.RegisterCommand('giveweapon', 'admin', function(xPlayer, args, showError) - if args.playerId.hasWeapon(args.weapon) then - return showError(TranslateCap('command_giveweapon_hasalready')) - end - args.playerId.addWeapon(args.weapon, args.ammo) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } - }) - - ESX.RegisterCommand('giveammo', 'admin', function(xPlayer, args, showError) - if not args.playerId.hasWeapon(args.weapon) then - return showError(TranslateCap("command_giveammo_noweapon_found")) - end - args.playerId.addWeaponAmmo(args.weapon, args.ammo) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } - }) - - ESX.RegisterCommand('giveweaponcomponent', 'admin', function(xPlayer, args, showError) - if args.playerId.hasWeapon(args.weaponName) then - local component = ESX.GetWeaponComponent(args.weaponName, args.componentName) - - if component then - if args.playerId.hasWeaponComponent(args.weaponName, args.componentName) then - showError(TranslateCap('command_giveweaponcomponent_hasalready')) - else - args.playerId.addWeaponComponent(args.weaponName, args.componentName) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", - "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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 - else - showError(TranslateCap('command_giveweaponcomponent_invalid')) - end - 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' } - } - }) + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } + ) + + ESX.RegisterCommand( + "giveweapon", + "admin", + function(xPlayer, args, showError) + if args.playerId.hasWeapon(args.weapon) then + return showError(TranslateCap("command_giveweapon_hasalready")) + end + args.playerId.addWeapon(args.weapon, args.ammo) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } + ) + + ESX.RegisterCommand( + "giveammo", + "admin", + function(xPlayer, args, showError) + if not args.playerId.hasWeapon(args.weapon) then + return showError(TranslateCap("command_giveammo_noweapon_found")) + end + args.playerId.addWeaponAmmo(args.weapon, args.ammo) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } + ) + + ESX.RegisterCommand( + "giveweaponcomponent", + "admin", + function(xPlayer, args, showError) + if args.playerId.hasWeapon(args.weaponName) then + local component = ESX.GetWeaponComponent(args.weaponName, args.componentName) + + if component then + if args.playerId.hasWeaponComponent(args.weaponName, args.componentName) then + showError(TranslateCap("command_giveweaponcomponent_hasalready")) + else + args.playerId.addWeaponComponent(args.weaponName, args.componentName) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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 + else + showError(TranslateCap("command_giveweaponcomponent_invalid")) + end + 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 -ESX.RegisterCommand({ 'clear', 'cls' }, 'user', function(xPlayer) - xPlayer.triggerEvent('chat:clear') -end, false, { help = TranslateCap('command_clear') }) - -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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - }) - end -end, true, { help = TranslateCap('command_clearall') }) +ESX.RegisterCommand({ "clear", "cls" }, "user", function(xPlayer) + xPlayer.triggerEvent("chat:clear") +end, false, { help = TranslateCap("command_clear") }) + +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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + }) + end +end, true, { help = TranslateCap("command_clearall") }) -ESX.RegisterCommand("refreshjobs", 'admin', function() - ESX.RefreshJobs() -end, true, { help = TranslateCap('command_clearall') }) +ESX.RegisterCommand("refreshjobs", "admin", function() + ESX.RefreshJobs() +end, true, { help = TranslateCap("command_clearall") }) if not Config.OxInventory then - ESX.RegisterCommand('clearinventory', 'admin', function(xPlayer, args) - for _, v in ipairs(args.playerId.inventory) do - if v.count > 0 then - args.playerId.setInventoryItem(v.name, 0) - end - end - TriggerEvent('esx:playerInventoryCleared', args.playerId) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } - }) - - ESX.RegisterCommand('clearloadout', 'admin', function(xPlayer, args) - for i = #args.playerId.loadout, 1, -1 do - args.playerId.removeWeapon(args.playerId.loadout[i].name) - end - TriggerEvent('esx:playerLoadoutCleared', args.playerId) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } - }) + ESX.RegisterCommand( + "clearinventory", + "admin", + function(xPlayer, args) + for _, v in ipairs(args.playerId.inventory) do + if v.count > 0 then + args.playerId.setInventoryItem(v.name, 0) + end + end + TriggerEvent("esx:playerInventoryCleared", args.playerId) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } + ) + + ESX.RegisterCommand( + "clearloadout", + "admin", + function(xPlayer, args) + for i = #args.playerId.loadout, 1, -1 do + args.playerId.removeWeapon(args.playerId.loadout[i].name) + end + TriggerEvent("esx:playerLoadoutCleared", args.playerId) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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 -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 - args.playerId.setGroup(args.group) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' }, - } -}) - -ESX.RegisterCommand('save', 'admin', function(_, args) - Core.SavePlayer(args.playerId) - print(('[^2Info^0] Saved Player - ^5%s^0'):format(args.playerId.source)) -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') }) - -ESX.RegisterCommand('group', { "user", "admin" }, function(xPlayer, _, _) - print(('%s, you are currently: ^5%s^0'):format(xPlayer.getName(), xPlayer.getGroup())) +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 + args.playerId.setGroup(args.group) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +ESX.RegisterCommand( + "save", + "admin", + function(_, args) + Core.SavePlayer(args.playerId) + print(("[^2Info^0] Saved Player - ^5%s^0"):format(args.playerId.source)) + 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") }) + +ESX.RegisterCommand("group", { "user", "admin" }, function(xPlayer, _, _) + print(("%s, you are currently: ^5%s^0"):format(xPlayer.getName(), xPlayer.getGroup())) end, true) -ESX.RegisterCommand('job', { "user", "admin" }, function(xPlayer, _, _) - print(('%s, your job is: ^5%s^0 - ^5%s^0'):format(xPlayer.getName(), xPlayer.getJob().name, - xPlayer.getJob().grade_label)) +ESX.RegisterCommand("job", { "user", "admin" }, function(xPlayer, _, _) + print(("%s, your job is: ^5%s^0 - ^5%s^0"):format(xPlayer.getName(), xPlayer.getJob().name, xPlayer.getJob().grade_label)) end, false) -ESX.RegisterCommand('info', { "user", "admin" }, function(xPlayer) - local job = xPlayer.getJob().name - print(('^2ID: ^5%s^0 | ^2Name: ^5%s^0 | ^2Group: ^5%s^0 | ^2Job: ^5%s^0'):format(xPlayer.source, xPlayer.getName(), - xPlayer.getGroup(), job)) +ESX.RegisterCommand("info", { "user", "admin" }, function(xPlayer) + local job = xPlayer.getJob().name + print(("^2ID: ^5%s^0 | ^2Name: ^5%s^0 | ^2Group: ^5%s^0 | ^2Job: ^5%s^0"):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), job)) end, false) -ESX.RegisterCommand('coords', "admin", function(xPlayer) - local ped = GetPlayerPed(xPlayer.source) - local coords = GetEntityCoords(ped, false) - local heading = GetEntityHeading(ped) - print(('Coords - Vector3: ^5%s^0'):format(vector3(coords.x, coords.y, coords.z))) - print(('Coords - Vector4: ^5%s^0'):format(vector4(coords.x, coords.y, coords.z, heading))) +ESX.RegisterCommand("coords", "admin", function(xPlayer) + local ped = GetPlayerPed(xPlayer.source) + local coords = GetEntityCoords(ped, false) + local heading = GetEntityHeading(ped) + print(("Coords - Vector3: ^5%s^0"):format(vector3(coords.x, coords.y, coords.z))) + print(("Coords - Vector4: ^5%s^0"):format(vector4(coords.x, coords.y, coords.z, heading))) end, false) -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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - }) - end +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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + }) + end end, false) -ESX.RegisterCommand('goto', "admin", function(xPlayer, args) - local targetCoords = args.playerId.getCoords() - xPlayer.setCoords(targetCoords) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Target", value = args.playerId.name, inline = true }, - { name = "Target Coords", value = targetCoords, inline = true }, - }) - end -end, false, { - 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() - local playerCoords = xPlayer.getCoords() - args.playerId.setCoords(playerCoords) - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Target", value = args.playerId.name, inline = true }, - { name = "Target Coords", value = targetCoords, inline = true }, - }) - end -end, false, { - 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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) - -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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) - -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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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' } - } -}) - -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 and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - }) - end +ESX.RegisterCommand( + "goto", + "admin", + function(xPlayer, args) + local targetCoords = args.playerId.getCoords() + xPlayer.setCoords(targetCoords) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Target Coords", value = targetCoords, inline = true }, + }) + end + end, + false, + { + 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() + local playerCoords = xPlayer.getCoords() + args.playerId.setCoords(playerCoords) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Target Coords", value = targetCoords, inline = true }, + }) + end + end, + false, + { + 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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", 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" }, + }, + } +) + +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 and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + }) + end end, false) -ESX.RegisterCommand('players', "admin", function() +ESX.RegisterCommand("players", "admin", function() local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers - print(('^5%s^2 online player(s)^0'):format(#xPlayers)) - for i = 1, #(xPlayers) do - local xPlayer = xPlayers[i] - print(('^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n'):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) + print(("^5%s^2 online player(s)^0"):format(#xPlayers)) + for i = 1, #xPlayers do + local xPlayer = xPlayers[i] + print(("^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n"):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) end end, true) diff --git a/[core]/es_extended/server/common.lua b/[core]/es_extended/server/common.lua index 1f87bf3b4..61ca163b8 100644 --- a/[core]/es_extended/server/common.lua +++ b/[core]/es_extended/server/common.lua @@ -14,75 +14,79 @@ Core.playersByIdentifier = {} Core.vehicleTypesByModel = {} +RegisterNetEvent("esx:onPlayerSpawn", function() + ESX.Players[source].spawned = true +end) + AddEventHandler("esx:getSharedObject", function() - local Invoke = GetInvokingResource() - print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke)) + local Invoke = GetInvokingResource() + print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke)) end) -exports('getSharedObject', function() - return ESX +exports("getSharedObject", function() + return ESX end) -if GetResourceState('ox_inventory') ~= 'missing' then - Config.OxInventory = true - Config.PlayerFunctionOverride = 'OxInventory' - SetConvarReplicated('inventory:framework', 'esx') - SetConvarReplicated('inventory:weight', Config.MaxWeight * 1000) +if GetResourceState("ox_inventory"):find("start") then + Config.OxInventory = true + Config.PlayerFunctionOverride = "OxInventory" + SetConvarReplicated("inventory:framework", "esx") + SetConvarReplicated("inventory:weight", Config.MaxWeight * 1000) end local function StartDBSync() - CreateThread(function() - local interval = 10 * 60 * 1000 - while true do - Wait(interval) - Core.SavePlayers() - end - end) + CreateThread(function() + local interval = 10 * 60 * 1000 + while true do + Wait(interval) + Core.SavePlayers() + end + end) end MySQL.ready(function() - Core.DatabaseConnected = true - 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 } - end - else - TriggerEvent('__cfx_export_ox_inventory_Items', function(ref) - if ref then - ESX.Items = ref() - end - end) + Core.DatabaseConnected = true + 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 } + end + else + TriggerEvent("__cfx_export_ox_inventory_Items", function(ref) + if ref then + ESX.Items = ref() + end + end) - AddEventHandler('ox_inventory:itemList', function(items) - ESX.Items = items - end) + AddEventHandler("ox_inventory:itemList", function(items) + ESX.Items = items + end) - while not next(ESX.Items) do - Wait(0) - end - end + while not next(ESX.Items) do + Wait(0) + end + end - ESX.RefreshJobs() + ESX.RefreshJobs() - print(('[^2INFO^7] ESX ^5Legacy %s^0 initialized!'):format(GetResourceMetadata(GetCurrentResourceName(), "version", 0))) + print(("[^2INFO^7] ESX ^5Legacy %s^0 initialized!"):format(GetResourceMetadata(GetCurrentResourceName(), "version", 0))) - StartDBSync() - if Config.EnablePaycheck then - StartPayCheck() - end + StartDBSync() + if Config.EnablePaycheck then + StartPayCheck() + end end) -RegisterServerEvent('esx:clientLog') -AddEventHandler('esx:clientLog', function(msg) - if Config.EnableDebug then - print(('[^2TRACE^7] %s^7'):format(msg)) - end +RegisterServerEvent("esx:clientLog") +AddEventHandler("esx:clientLog", function(msg) + if Config.EnableDebug then + print(("[^2TRACE^7] %s^7"):format(msg)) + end end) RegisterNetEvent("esx:ReturnVehicleType", function(Type, Request) - if Core.ClientCallbacks[Request] then - Core.ClientCallbacks[Request](Type) - Core.ClientCallbacks[Request] = nil - end + if Core.ClientCallbacks[Request] then + Core.ClientCallbacks[Request](Type) + Core.ClientCallbacks[Request] = nil + end end) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 49ee3a8e9..38834ddc1 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -1,279 +1,283 @@ function ESX.Trace(msg) - if Config.EnableDebug then - print(('[^2TRACE^7] %s^7'):format(msg)) - end + if Config.EnableDebug then + print(("[^2TRACE^7] %s^7"):format(msg)) + end end function ESX.RegisterCommand(name, group, cb, allowConsole, suggestion) - if type(name) == 'table' then - for _, v in ipairs(name) do - ESX.RegisterCommand(v, group, cb, allowConsole, suggestion) - end - - return - end - - if Core.RegisteredCommands[name] then - print(('[^3WARNING^7] Command ^5"%s" ^7already registered, overriding command'):format(name)) - - if Core.RegisteredCommands[name].suggestion then - TriggerClientEvent('chat:removeSuggestion', -1, ('/%s'):format(name)) - end - end - - if suggestion then - if not suggestion.arguments then - suggestion.arguments = {} - end - if not suggestion.help then - suggestion.help = '' - end - - TriggerClientEvent('chat:addSuggestion', -1, ('/%s'):format(name), suggestion.help, suggestion.arguments) - end - - Core.RegisteredCommands[name] = { group = group, cb = cb, allowConsole = allowConsole, suggestion = suggestion } - - RegisterCommand(name, function(playerId, args) - local command = Core.RegisteredCommands[name] - - if not command.allowConsole and playerId == 0 then - print(('[^3WARNING^7] ^5%s'):format(TranslateCap('commanderror_console'))) - else - local xPlayer, error = ESX.Players[playerId], nil - - if command.suggestion then - if command.suggestion.validate then - if #args ~= #command.suggestion.arguments then - error = TranslateCap('commanderror_argumentmismatch', #args, #command.suggestion.arguments) - end - end - - if not error and command.suggestion.arguments then - local newArgs = {} - - for k, v in ipairs(command.suggestion.arguments) do - if v.type then - if v.type == 'number' then - local newArg = tonumber(args[k]) - - if newArg then - newArgs[v.name] = newArg - else - error = TranslateCap('commanderror_argumentmismatch_number', k) - end - elseif v.type == 'player' or v.type == 'playerId' then - local targetPlayer = tonumber(args[k]) - - if args[k] == 'me' then - targetPlayer = playerId - end - - if targetPlayer then - local xTargetPlayer = ESX.GetPlayerFromId(targetPlayer) - - if xTargetPlayer then - if v.type == 'player' then - newArgs[v.name] = xTargetPlayer - else - newArgs[v.name] = targetPlayer - end - else - error = TranslateCap('commanderror_invalidplayerid') - end - else - error = TranslateCap('commanderror_argumentmismatch_number', k) - end - elseif v.type == 'string' then - local newArg = tonumber(args[k]) - if not newArg then - newArgs[v.name] = args[k] - else - error = TranslateCap('commanderror_argumentmismatch_string', k) - end - elseif v.type == 'item' then - if ESX.Items[args[k]] then - newArgs[v.name] = args[k] - else - error = TranslateCap('commanderror_invaliditem') - end - elseif v.type == 'weapon' then - if ESX.GetWeapon(args[k]) then - newArgs[v.name] = string.upper(args[k]) - else - error = TranslateCap('commanderror_invalidweapon') - end - elseif v.type == 'any' then - newArgs[v.name] = args[k] - elseif v.type == 'merge' then - local lenght = 0 - for i = 1, k - 1 do - lenght = lenght + string.len(args[i]) + 1 - end - local merge = table.concat(args, " ") - - newArgs[v.name] = string.sub(merge, lenght) - elseif v.type == 'coordinate' then + if type(name) == "table" then + for _, v in ipairs(name) do + ESX.RegisterCommand(v, group, cb, allowConsole, suggestion) + end + + return + end + + if Core.RegisteredCommands[name] then + print(('[^3WARNING^7] Command ^5"%s" ^7already registered, overriding command'):format(name)) + + if Core.RegisteredCommands[name].suggestion then + TriggerClientEvent("chat:removeSuggestion", -1, ("/%s"):format(name)) + end + end + + if suggestion then + if not suggestion.arguments then + suggestion.arguments = {} + end + if not suggestion.help then + suggestion.help = "" + end + + TriggerClientEvent("chat:addSuggestion", -1, ("/%s"):format(name), suggestion.help, suggestion.arguments) + end + + Core.RegisteredCommands[name] = { group = group, cb = cb, allowConsole = allowConsole, suggestion = suggestion } + + RegisterCommand(name, function(playerId, args) + local command = Core.RegisteredCommands[name] + + if not command.allowConsole and playerId == 0 then + print(("[^3WARNING^7] ^5%s"):format(TranslateCap("commanderror_console"))) + else + local xPlayer, error = ESX.Players[playerId], nil + + if command.suggestion then + if command.suggestion.validate then + if #args ~= #command.suggestion.arguments then + error = TranslateCap("commanderror_argumentmismatch", #args, #command.suggestion.arguments) + end + end + + if not error and command.suggestion.arguments then + local newArgs = {} + + for k, v in ipairs(command.suggestion.arguments) do + if v.type then + if v.type == "number" then + local newArg = tonumber(args[k]) + + if newArg then + newArgs[v.name] = newArg + else + error = TranslateCap("commanderror_argumentmismatch_number", k) + end + elseif v.type == "player" or v.type == "playerId" then + local targetPlayer = tonumber(args[k]) + + if args[k] == "me" then + targetPlayer = playerId + end + + if targetPlayer then + local xTargetPlayer = ESX.GetPlayerFromId(targetPlayer) + + if xTargetPlayer then + if v.type == "player" then + newArgs[v.name] = xTargetPlayer + else + newArgs[v.name] = targetPlayer + end + else + error = TranslateCap("commanderror_invalidplayerid") + end + else + error = TranslateCap("commanderror_argumentmismatch_number", k) + end + elseif v.type == "string" then + local newArg = tonumber(args[k]) + if not newArg then + newArgs[v.name] = args[k] + else + error = TranslateCap("commanderror_argumentmismatch_string", k) + end + elseif v.type == "item" then + if ESX.Items[args[k]] then + newArgs[v.name] = args[k] + else + error = TranslateCap("commanderror_invaliditem") + end + elseif v.type == "weapon" then + if ESX.GetWeapon(args[k]) then + newArgs[v.name] = string.upper(args[k]) + else + error = TranslateCap("commanderror_invalidweapon") + end + elseif v.type == "any" then + newArgs[v.name] = args[k] + elseif v.type == "merge" then + local lenght = 0 + for i = 1, k - 1 do + lenght = lenght + string.len(args[i]) + 1 + end + local merge = table.concat(args, " ") + + newArgs[v.name] = string.sub(merge, lenght) + elseif v.type == "coordinate" then local coord = tonumber(args[k]:match("(-?%d+%.?%d*)")) - if(not coord) then - error = TranslateCap('commanderror_argumentmismatch_number', k) + if not coord then + error = TranslateCap("commanderror_argumentmismatch_number", k) else newArgs[v.name] = coord end - end - end - - --backwards compatibility - if v.validate ~= nil and not v.validate then - error = nil - end - - if error then - break - end - end - - args = newArgs - end - end - - if error then - if playerId == 0 then - print(('[^3WARNING^7] %s^7'):format(error)) - else - xPlayer.showNotification(error) - end - else - cb(xPlayer or false, args, function(msg) - if playerId == 0 then - print(('[^3WARNING^7] %s^7'):format(msg)) - else - xPlayer.showNotification(msg) - end - end) - end - end - end, true) - - if type(group) == 'table' then - for _, v in ipairs(group) do - ExecuteCommand(('add_ace group.%s command.%s allow'):format(v, name)) - end - else - ExecuteCommand(('add_ace group.%s command.%s allow'):format(group, name)) - end + end + end + + --backwards compatibility + if v.validate ~= nil and not v.validate then + error = nil + end + + if error then + break + end + end + + args = newArgs + end + end + + if error then + if playerId == 0 then + print(("[^3WARNING^7] %s^7"):format(error)) + else + xPlayer.showNotification(error) + end + else + cb(xPlayer or false, args, function(msg) + if playerId == 0 then + print(("[^3WARNING^7] %s^7"):format(msg)) + else + xPlayer.showNotification(msg) + end + end) + end + end + end, true) + + if type(group) == "table" then + for _, v in ipairs(group) do + ExecuteCommand(("add_ace group.%s command.%s allow"):format(v, name)) + end + else + ExecuteCommand(("add_ace group.%s command.%s allow"):format(group, name)) + end end local function updateHealthAndArmorInMetadata(xPlayer) local ped = GetPlayerPed(xPlayer.source) - xPlayer.setMeta('health', GetEntityHealth(ped)) - xPlayer.setMeta('armor',GetPedArmour(ped)) + xPlayer.setMeta("health", GetEntityHealth(ped)) + xPlayer.setMeta("armor", GetPedArmour(ped)) end function Core.SavePlayer(xPlayer, cb) + if not xPlayer.spawned then + return cb and cb() + end + updateHealthAndArmorInMetadata(xPlayer) - local parameters = { - json.encode(xPlayer.getAccounts(true)), - xPlayer.job.name, - xPlayer.job.grade, - xPlayer.group, - json.encode(xPlayer.getCoords()), - json.encode(xPlayer.getInventory(true)), - json.encode(xPlayer.getLoadout(true)), - json.encode(xPlayer.getMeta()), - xPlayer.identifier - } - - MySQL.prepare( - 'UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ?, `metadata` = ? WHERE `identifier` = ?', - parameters, - function(affectedRows) - if affectedRows == 1 then - print(('[^2INFO^7] Saved player ^5"%s^7"'):format(xPlayer.name)) - TriggerEvent('esx:playerSaved', xPlayer.playerId, xPlayer) - end - if cb then - cb() - end - end - ) + local parameters = { + json.encode(xPlayer.getAccounts(true)), + xPlayer.job.name, + xPlayer.job.grade, + xPlayer.group, + json.encode(xPlayer.getCoords()), + json.encode(xPlayer.getInventory(true)), + json.encode(xPlayer.getLoadout(true)), + json.encode(xPlayer.getMeta()), + xPlayer.identifier, + } + + MySQL.prepare( + "UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ?, `metadata` = ? WHERE `identifier` = ?", + parameters, + function(affectedRows) + if affectedRows == 1 then + print(('[^2INFO^7] Saved player ^5"%s^7"'):format(xPlayer.name)) + TriggerEvent("esx:playerSaved", xPlayer.playerId, xPlayer) + end + if cb then + cb() + end + end + ) end function Core.SavePlayers(cb) - local xPlayers = ESX.Players - if not next(xPlayers) then - return - end + local xPlayers = ESX.Players + if not next(xPlayers) then + return + end - local startTime = os.time() - local parameters = {} + local startTime = os.time() + local parameters = {} - for _, xPlayer in pairs(ESX.Players) do + for _, xPlayer in pairs(ESX.Players) do updateHealthAndArmorInMetadata(xPlayer) - parameters[#parameters + 1] = { - json.encode(xPlayer.getAccounts(true)), - xPlayer.job.name, - xPlayer.job.grade, - xPlayer.group, - json.encode(xPlayer.getCoords()), - json.encode(xPlayer.getInventory(true)), - json.encode(xPlayer.getLoadout(true)), - json.encode(xPlayer.getMeta()), - xPlayer.identifier - } - end - - MySQL.prepare( - "UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ?, `metadata` = ? WHERE `identifier` = ?", - parameters, - function(results) - if not results then - return - end - - 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 - ) + parameters[#parameters + 1] = { + json.encode(xPlayer.getAccounts(true)), + xPlayer.job.name, + xPlayer.job.grade, + xPlayer.group, + json.encode(xPlayer.getCoords()), + json.encode(xPlayer.getInventory(true)), + json.encode(xPlayer.getLoadout(true)), + json.encode(xPlayer.getMeta()), + xPlayer.identifier, + } + end + + MySQL.prepare( + "UPDATE `users` SET `accounts` = ?, `job` = ?, `job_grade` = ?, `group` = ?, `position` = ?, `inventory` = ?, `loadout` = ?, `metadata` = ? WHERE `identifier` = ?", + parameters, + function(results) + if not results then + return + end + + 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 + ) 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) - 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 then - if (key == 'job' and v.job.name == val) or v[key] == val then - xPlayers[#xPlayers + 1] = v - end - else - xPlayers[#xPlayers + 1] = v - end - end - end - - return xPlayers + 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 then + if (key == "job" and v.job.name == val) or v[key] == val then + xPlayers[#xPlayers + 1] = v + end + else + xPlayers[#xPlayers + 1] = v + end + end + end + + return xPlayers end function ESX.GetNumPlayers(key, val) @@ -305,21 +309,21 @@ function ESX.GetNumPlayers(key, val) end function ESX.GetPlayerFromId(source) - return ESX.Players[tonumber(source)] + return ESX.Players[tonumber(source)] end function ESX.GetPlayerFromIdentifier(identifier) - return Core.playersByIdentifier[identifier] + return Core.playersByIdentifier[identifier] end function ESX.GetIdentifier(playerId) - local fxDk = GetConvarInt('sv_fxdkMode', 0) - if fxDk == 1 then - return "ESX-DEBUG-LICENCE" - end + local fxDk = GetConvarInt("sv_fxdkMode", 0) + if fxDk == 1 then + return "ESX-DEBUG-LICENCE" + end - local identifier = GetPlayerIdentifierByType(playerId, 'license') - return identifier and identifier:gsub('license:', '') + local identifier = GetPlayerIdentifierByType(playerId, "license") + return identifier and identifier:gsub("license:", "") end ---@param model string|number @@ -327,63 +331,79 @@ end ---@param cb function function ESX.GetVehicleType(model, player, cb) - model = type(model) == 'string' and joaat(model) or model + model = type(model) == "string" and joaat(model) or model - if Core.vehicleTypesByModel[model] then - return cb(Core.vehicleTypesByModel[model]) - end + if Core.vehicleTypesByModel[model] then + return cb(Core.vehicleTypesByModel[model]) + end - ESX.TriggerClientCallback(player, "esx:GetVehicleType", function(vehicleType) - Core.vehicleTypesByModel[model] = vehicleType - cb(vehicleType) - end, model) + ESX.TriggerClientCallback(player, "esx:GetVehicleType", function(vehicleType) + Core.vehicleTypesByModel[model] = vehicleType + cb(vehicleType) + end, model) 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" - } - } } - PerformHttpRequest(webHook, nil, 'POST', json.encode({ - username = 'Logs', - embeds = embedData - }), { - ['Content-Type'] = 'application/json' - }) + 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", + }, + }, + } + PerformHttpRequest( + webHook, + nil, + "POST", + json.encode({ + username = "Logs", + embeds = embedData, + }), + { + ["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" - } - } } - PerformHttpRequest(webHook, nil, 'POST', json.encode({ - username = 'Logs', - embeds = embedData - }), { - ['Content-Type'] = 'application/json' - }) + 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", + }, + }, + } + PerformHttpRequest( + webHook, + nil, + "POST", + json.encode({ + username = "Logs", + embeds = embedData, + }), + { + ["Content-Type"] = "application/json", + } + ) end --- Create Job at Runtime @@ -391,167 +411,167 @@ 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 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 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 grades or not next(grades) then + return print("[^3WARNING^7] missing argument `grades(table)` while creating a job!") + end - local parameters = {} - local job = { name = name, label = label, grades = {} } + 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 + 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 = v.skin_male or "{}", skin_female = v.skin_female or "{}" } + parameters[#parameters + 1] = { name, v.grade, v.name, v.label, v.salary, v.skin_male or "{}", v.skin_female or "{}" } + 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) + MySQL.insert("INSERT IGNORE INTO jobs (name, label) VALUES (?, ?)", { name, label }) + MySQL.prepare("INSERT INTO job_grades (job_name, grade, name, label, salary, skin_male, skin_female) VALUES (?, ?, ?, ?, ?, ?, ?)", parameters) - ESX.Jobs[name] = job + ESX.Jobs[name] = job end function ESX.RefreshJobs() - local Jobs = {} - local jobs = MySQL.query.await('SELECT * FROM jobs') - - for _, v in ipairs(jobs) do - Jobs[v.name] = v - Jobs[v.name].grades = {} - end - - local jobGrades = MySQL.query.await('SELECT * FROM job_grades') - - for _, v in ipairs(jobGrades) do - if Jobs[v.job_name] then - Jobs[v.job_name].grades[tostring(v.grade)] = v - else - print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name)) - end - end - - for _, v in pairs(Jobs) do - if ESX.Table.SizeOf(v.grades) == 0 then - Jobs[v.name] = nil - print(('[^3WARNING^7] Ignoring job ^5"%s"^0 due to no job grades found'):format(v.name)) - end - end - - 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 = {} } } } - else - ESX.Jobs = Jobs - end + local Jobs = {} + local jobs = MySQL.query.await("SELECT * FROM jobs") + + for _, v in ipairs(jobs) do + Jobs[v.name] = v + Jobs[v.name].grades = {} + end + + local jobGrades = MySQL.query.await("SELECT * FROM job_grades") + + for _, v in ipairs(jobGrades) do + if Jobs[v.job_name] then + Jobs[v.job_name].grades[tostring(v.grade)] = v + else + print(('[^3WARNING^7] Ignoring job grades for ^5"%s"^0 due to missing job'):format(v.job_name)) + end + end + + for _, v in pairs(Jobs) do + if ESX.Table.SizeOf(v.grades) == 0 then + Jobs[v.name] = nil + print(('[^3WARNING^7] Ignoring job ^5"%s"^0 due to no job grades found'):format(v.name)) + end + end + + 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 = {} } } } + else + ESX.Jobs = Jobs + end end function ESX.RegisterUsableItem(item, cb) - Core.UsableItemsCallbacks[item] = cb + Core.UsableItemsCallbacks[item] = cb end function ESX.UseItem(source, item, ...) - if ESX.Items[item] then - local itemCallback = Core.UsableItemsCallbacks[item] - - if itemCallback then - local success, result = pcall(itemCallback, 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)) - end - end - else - print(('[^3WARNING^7] Item ^5"%s"^7 was used but does not exist!'):format(item)) - end + if ESX.Items[item] then + local itemCallback = Core.UsableItemsCallbacks[item] + + if itemCallback then + local success, result = pcall(itemCallback, 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)) + end + end + else + print(('[^3WARNING^7] Item ^5"%s"^7 was used but does not exist!'):format(item)) + end end function ESX.RegisterPlayerFunctionOverrides(index, overrides) - Core.PlayerFunctionOverrides[index] = overrides + Core.PlayerFunctionOverrides[index] = overrides end function ESX.SetPlayerFunctionOverride(index) - if not index or not Core.PlayerFunctionOverrides[index] then - return print('[^3WARNING^7] No valid index provided.') - end + if not index or not Core.PlayerFunctionOverrides[index] then + return print("[^3WARNING^7] No valid index provided.") + end - Config.PlayerFunctionOverride = index + Config.PlayerFunctionOverride = index end function ESX.GetItemLabel(item) - if Config.OxInventory then - item = exports.ox_inventory:Items(item) - if item then - return item.label - end - end - - if ESX.Items[item] then - return ESX.Items[item].label - else - print(('[^3WARNING^7] Attemting to get invalid Item -> ^5%s^7'):format(item)) - end + if Config.OxInventory then + item = exports.ox_inventory:Items(item) + if item then + return item.label + end + end + + if ESX.Items[item] then + return ESX.Items[item].label + else + print(("[^3WARNING^7] Attemting to get invalid Item -> ^5%s^7"):format(item)) + end end function ESX.GetJobs() - return ESX.Jobs + return ESX.Jobs end function ESX.GetUsableItems() - local Usables = {} - for k in pairs(Core.UsableItemsCallbacks) do - Usables[k] = true - end - return Usables + local Usables = {} + for k in pairs(Core.UsableItemsCallbacks) do + Usables[k] = true + end + return Usables end if not Config.OxInventory then - function ESX.CreatePickup(itemType, name, count, label, playerId, components, tintIndex, coords) - local pickupId = (Core.PickupId == 65635 and 0 or Core.PickupId + 1) - local xPlayer = ESX.Players[playerId] - coords = ( (type(coords) == "vector3" or type(coords) == "vector4") and coords.xyz or xPlayer.getCoords(true)) + function ESX.CreatePickup(itemType, name, count, label, playerId, components, tintIndex, coords) + local pickupId = (Core.PickupId == 65635 and 0 or Core.PickupId + 1) + local xPlayer = ESX.Players[playerId] + coords = ((type(coords) == "vector3" or type(coords) == "vector4") and coords.xyz or xPlayer.getCoords(true)) - Core.Pickups[pickupId] = { type = itemType, name = name, count = count, label = label, coords = coords } + Core.Pickups[pickupId] = { type = itemType, name = name, count = count, label = label, coords = coords } - if itemType == 'item_weapon' then - Core.Pickups[pickupId].components = components - Core.Pickups[pickupId].tintIndex = tintIndex - end + if itemType == "item_weapon" then + Core.Pickups[pickupId].components = components + Core.Pickups[pickupId].tintIndex = tintIndex + end - TriggerClientEvent('esx:createPickup', -1, pickupId, label, coords, itemType, name, components, tintIndex) - Core.PickupId = pickupId - end + TriggerClientEvent("esx:createPickup", -1, pickupId, label, coords, itemType, name, components, tintIndex) + Core.PickupId = pickupId + end end function ESX.DoesJobExist(job, grade) - grade = tostring(grade) + grade = tostring(grade) - if job and grade then - if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then - return true - end - end + if job and grade then + if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then + return true + end + end - return false + return false end function Core.IsPlayerAdmin(playerId) - if (IsPlayerAceAllowed(playerId, 'command') or GetConvar('sv_lan', '') == 'true') and true or false then - return true - end + if (IsPlayerAceAllowed(playerId, "command") or GetConvar("sv_lan", "") == "true") and true or false then + return true + end - local xPlayer = ESX.Players[playerId] + local xPlayer = ESX.Players[playerId] - if xPlayer then - if Config.AdminGroups[xPlayer.group] then - return true - end - end + if xPlayer then + if Config.AdminGroups[xPlayer.group] then + return true + end + end - return false + return false end diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 91b25bc71..e268ec803 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -1,767 +1,695 @@ -SetMapName('San Andreas') -SetGameType('ESX Legacy') +SetMapName("San Andreas") +SetGameType("ESX Legacy") -local oneSyncState = GetConvar('onesync', 'off') -local newPlayer = 'INSERT INTO `users` SET `accounts` = ?, `identifier` = ?, `group` = ?' -local loadPlayer = 'SELECT `accounts`, `job`, `job_grade`, `group`, `position`, `inventory`, `skin`, `loadout`, `metadata`' +local oneSyncState = GetConvar("onesync", "off") +local newPlayer = "INSERT INTO `users` SET `accounts` = ?, `identifier` = ?, `group` = ?" +local loadPlayer = "SELECT `accounts`, `job`, `job_grade`, `group`, `position`, `inventory`, `skin`, `loadout`, `metadata`" if Config.Multichar then - newPlayer = newPlayer .. ', `firstname` = ?, `lastname` = ?, `dateofbirth` = ?, `sex` = ?, `height` = ?' + newPlayer = newPlayer .. ", `firstname` = ?, `lastname` = ?, `dateofbirth` = ?, `sex` = ?, `height` = ?" end if Config.StartingInventoryItems then - newPlayer = newPlayer .. ', `inventory` = ?' + newPlayer = newPlayer .. ", `inventory` = ?" end if Config.Multichar or Config.Identity then - loadPlayer = loadPlayer .. ', `firstname`, `lastname`, `dateofbirth`, `sex`, `height`' + loadPlayer = loadPlayer .. ", `firstname`, `lastname`, `dateofbirth`, `sex`, `height`" end -loadPlayer = loadPlayer .. ' FROM `users` WHERE identifier = ?' +loadPlayer = loadPlayer .. " FROM `users` WHERE identifier = ?" if Config.Multichar then - AddEventHandler('esx:onPlayerJoined', function(src, char, data) - while not next(ESX.Jobs) do - Wait(50) - end - - if not ESX.Players[src] then - local identifier = char .. ':' .. ESX.GetIdentifier(src) - if data then - createESXPlayer(identifier, src, data) - else - loadESXPlayer(identifier, src, false) - end - end - end) + AddEventHandler("esx:onPlayerJoined", function(src, char, data) + while not next(ESX.Jobs) do + Wait(50) + end + + if not ESX.Players[src] then + local identifier = char .. ":" .. ESX.GetIdentifier(src) + if data then + createESXPlayer(identifier, src, data) + else + loadESXPlayer(identifier, src, false) + end + end + end) else - RegisterNetEvent('esx:onPlayerJoined') - AddEventHandler('esx:onPlayerJoined', function() - local _source = source - while not next(ESX.Jobs) do - Wait(50) - end - - if not ESX.Players[_source] then - onPlayerJoined(_source) - end - end) + RegisterNetEvent("esx:onPlayerJoined") + AddEventHandler("esx:onPlayerJoined", function() + local _source = source + while not next(ESX.Jobs) do + Wait(50) + end + + if not ESX.Players[_source] then + onPlayerJoined(_source) + end + end) end function onPlayerJoined(playerId) - local identifier = ESX.GetIdentifier(playerId) - if identifier then - if ESX.GetPlayerFromIdentifier(identifier) then - DropPlayer(playerId, - ('there was an error loading your character!\nError code: identifier-active-ingame\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same Rockstar account.\n\nYour Rockstar identifier: %s'):format( - identifier)) - else - local result = MySQL.scalar.await('SELECT 1 FROM users WHERE identifier = ?', { identifier }) - if result then - loadESXPlayer(identifier, playerId, false) - else - createESXPlayer(identifier, playerId) - end - end - else - DropPlayer(playerId, - 'there was an error loading your character!\nError code: identifier-missing-ingame\n\nThe cause of this error is not known, your identifier could not be found. Please come back later or report this problem to the server administration team.') - end + local identifier = ESX.GetIdentifier(playerId) + if identifier then + if ESX.GetPlayerFromIdentifier(identifier) then + DropPlayer( + playerId, + ("there was an error loading your character!\nError code: identifier-active-ingame\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same Rockstar account.\n\nYour Rockstar identifier: %s"):format( + identifier + ) + ) + else + local result = MySQL.scalar.await("SELECT 1 FROM users WHERE identifier = ?", { identifier }) + if result then + loadESXPlayer(identifier, playerId, false) + else + createESXPlayer(identifier, playerId) + end + end + else + DropPlayer(playerId, "there was an error loading your character!\nError code: identifier-missing-ingame\n\nThe cause of this error is not known, your identifier could not be found. Please come back later or report this problem to the server administration team.") + end end function createESXPlayer(identifier, playerId, data) - local accounts = {} + local accounts = {} - for account, money in pairs(Config.StartingAccountMoney) do - accounts[account] = money - end + for account, money in pairs(Config.StartingAccountMoney) do + accounts[account] = money + end - local defaultGroup = "user" - if Core.IsPlayerAdmin(playerId) then - print(('[^2INFO^0] Player ^5%s^0 Has been granted admin permissions via ^5Ace Perms^7.'):format(playerId)) - defaultGroup = "admin" - end + local defaultGroup = "user" + if Core.IsPlayerAdmin(playerId) then + print(("[^2INFO^0] Player ^5%s^0 Has been granted admin permissions via ^5Ace Perms^7."):format(playerId)) + defaultGroup = "admin" + end - local parameters = Config.Multichar and { json.encode(accounts), identifier, defaultGroup, data.firstname, data.lastname, data.dateofbirth, data.sex, data.height } or { json.encode(accounts), identifier, defaultGroup } + local parameters = Config.Multichar and { json.encode(accounts), identifier, defaultGroup, data.firstname, data.lastname, data.dateofbirth, data.sex, data.height } or { json.encode(accounts), identifier, defaultGroup } - if Config.StartingInventoryItems then - table.insert(parameters, json.encode(Config.StartingInventoryItems)) - end + if Config.StartingInventoryItems then + table.insert(parameters, json.encode(Config.StartingInventoryItems)) + end - MySQL.prepare(newPlayer, parameters, function() - loadESXPlayer(identifier, playerId, true) - end) + MySQL.prepare(newPlayer, parameters, function() + loadESXPlayer(identifier, playerId, true) + end) end if not Config.Multichar then - AddEventHandler('playerConnecting', function(_, _, deferrals) - deferrals.defer() - local playerId = source - local identifier = ESX.GetIdentifier(playerId) - - if oneSyncState == "off" or oneSyncState == "legacy" then - return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(oneSyncState)) - end - - if not Core.DatabaseConnected then - return deferrals.done('[ESX] OxMySQL Was Unable To Connect to your database. Please make sure it is turned on and correctly configured in your server.cfg') - end - - if identifier then - if ESX.GetPlayerFromIdentifier(identifier) then - return deferrals.done( - ('[ESX] There was an error loading your character!\nError code: identifier-active\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same account.\n\nYour identifier: %s'):format( - identifier)) - else - return deferrals.done() - end - else - return deferrals.done( - '[ESX] There was an error loading your character!\nError code: identifier-missing\n\nThe cause of this error is not known, your identifier could not be found. Please come back later or report this problem to the server administration team.') - end - end) + AddEventHandler("playerConnecting", function(_, _, deferrals) + deferrals.defer() + local playerId = source + local identifier = ESX.GetIdentifier(playerId) + + if oneSyncState == "off" or oneSyncState == "legacy" then + return deferrals.done(("[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s"):format(oneSyncState)) + end + + if not Core.DatabaseConnected then + return deferrals.done("[ESX] OxMySQL Was Unable To Connect to your database. Please make sure it is turned on and correctly configured in your server.cfg") + end + + if identifier then + if ESX.GetPlayerFromIdentifier(identifier) then + return deferrals.done( + ("[ESX] There was an error loading your character!\nError code: identifier-active\n\nThis error is caused by a player on this server who has the same identifier as you have. Make sure you are not playing on the same account.\n\nYour identifier: %s"):format(identifier) + ) + else + return deferrals.done() + end + else + return deferrals.done("[ESX] There was an error loading your character!\nError code: identifier-missing\n\nThe cause of this error is not known, your identifier could not be found. Please come back later or report this problem to the server administration team.") + end + end) end function loadESXPlayer(identifier, playerId, isNew) - local userData = { - accounts = {}, - inventory = {}, - job = {}, - loadout = {}, - playerName = GetPlayerName(playerId), - weight = 0, - metadata = {} - } - local result = MySQL.prepare.await(loadPlayer, { identifier }) - local job, grade, jobObject, gradeObject = result.job, tostring(result.job_grade) - local foundAccounts, foundItems = {}, {} - - -- Accounts - if result.accounts and result.accounts ~= '' then - local accounts = json.decode(result.accounts) - - for account, money in pairs(accounts) do - foundAccounts[account] = money - end - end - - for account, data in pairs(Config.Accounts) do - if data.round == nil then - data.round = true - end - local index = #userData.accounts + 1 - userData.accounts[index] = { - name = account, - money = foundAccounts[account] or Config.StartingAccountMoney[account] or 0, - label = data.label, - round = data.round, - index = index - } - end - - -- Job - if ESX.DoesJobExist(job, grade) then - jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade] - else - print(('[^3WARNING^7] Ignoring invalid job for ^5%s^7 [job: ^5%s^7, grade: ^5%s^7]'):format(identifier, job, grade)) - job, grade = 'unemployed', '0' - jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade] - end - - userData.job.id = jobObject.id - userData.job.name = jobObject.name - userData.job.label = jobObject.label - - userData.job.grade = tonumber(grade) - userData.job.grade_name = gradeObject.name - userData.job.grade_label = gradeObject.label - userData.job.grade_salary = gradeObject.salary - - userData.job.skin_male = {} - userData.job.skin_female = {} - - if gradeObject.skin_male then - userData.job.skin_male = json.decode(gradeObject.skin_male) - end - if gradeObject.skin_female then - userData.job.skin_female = json.decode(gradeObject.skin_female) - end - - -- Inventory - if not Config.OxInventory then - if result.inventory and result.inventory ~= '' then - local inventory = json.decode(result.inventory) - - for name, count in pairs(inventory) do - local item = ESX.Items[name] - - if item then - foundItems[name] = count - else - print(('[^3WARNING^7] Ignoring invalid item ^5"%s"^7 for ^5"%s^7"'):format(name, identifier)) - end - end - end - - for name, item in pairs(ESX.Items) do - local count = foundItems[name] or 0 - if count > 0 then - userData.weight = userData.weight + (item.weight * count) - end - - table.insert(userData.inventory, - { - name = name, - count = count, - label = item.label, - weight = item.weight, - usable = Core.UsableItemsCallbacks[name] ~= nil, - rare = item.rare, - canRemove = item.canRemove - }) - end - - table.sort(userData.inventory, function(a, b) - return a.label < b.label - end) - else - if result.inventory and result.inventory ~= '' then - userData.inventory = json.decode(result.inventory) - else - userData.inventory = {} - end - end - - -- Group - if result.group then - if result.group == "superadmin" then - userData.group = "admin" - print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7") - else - userData.group = result.group - end - else - userData.group = 'user' - end - - -- Loadout - if not Config.OxInventory then - if result.loadout and result.loadout ~= '' then - local loadout = json.decode(result.loadout) - - for name, weapon in pairs(loadout) do - local label = ESX.GetWeaponLabel(name) - - if label then - if not weapon.components then - weapon.components = {} - end - if not weapon.tintIndex then - weapon.tintIndex = 0 - end - - table.insert(userData.loadout, - { - name = name, - ammo = weapon.ammo, - label = label, - components = weapon.components, - tintIndex = weapon.tintIndex - }) - end - end - end - end - - -- Position - userData.coords = json.decode(result.position) or Config.DefaultSpawns[math.random(#Config.DefaultSpawns)] - - -- Skin - if result.skin and result.skin ~= '' then - userData.skin = json.decode(result.skin) - else - if userData.sex == 'f' then - userData.skin = { sex = 1 } - else - userData.skin = { sex = 0 } - end - end - - -- Identity - if result.firstname and result.firstname ~= '' then - userData.firstname = result.firstname - userData.lastname = result.lastname - userData.playerName = userData.firstname .. ' ' .. userData.lastname - if result.dateofbirth then - userData.dateofbirth = result.dateofbirth - end - if result.sex then - userData.sex = result.sex - end - if result.height then - userData.height = result.height - end - end - - if result.metadata and result.metadata ~= '' then - local metadata = json.decode(result.metadata) - userData.metadata = metadata - end - - local xPlayer = CreateExtendedPlayer(playerId, identifier, userData.group, userData.accounts, userData.inventory, userData.weight, userData.job, userData.loadout, userData.playerName, userData.coords, userData.metadata) - ESX.Players[playerId] = xPlayer - Core.playersByIdentifier[identifier] = xPlayer - - if userData.firstname then - xPlayer.set('firstName', userData.firstname) - xPlayer.set('lastName', userData.lastname) - if userData.dateofbirth then - xPlayer.set('dateofbirth', userData.dateofbirth) - end - if userData.sex then - xPlayer.set('sex', userData.sex) - end - if userData.height then - xPlayer.set('height', userData.height) - end - end - --saved player health and armor in metadata - local ped = GetPlayerPed(xPlayer.source) - if ped then - xPlayer.setMeta('health', xPlayer.getMeta('health') or GetEntityHealth(ped)) - xPlayer.setMeta('armor', xPlayer.getMeta('armor') or GetPedArmour(ped)) - end - - TriggerEvent('esx:playerLoaded', playerId, xPlayer, isNew) - - xPlayer.triggerEvent('esx:playerLoaded', - { - accounts = xPlayer.getAccounts(), - coords = userData.coords, - identifier = xPlayer.getIdentifier(), - inventory = xPlayer.getInventory(), - job = xPlayer.getJob(), - loadout = xPlayer.getLoadout(), - maxWeight = xPlayer.getMaxWeight(), - money = xPlayer.getMoney(), - sex = xPlayer.get("sex") or "m", - firstName = xPlayer.get("firstName") or "John", - lastName = xPlayer.get("lastName") or "Doe", - dateofbirth = xPlayer.get("dateofbirth") or "01/01/2000", - height = xPlayer.get("height") or 120, - dead = false, - metadata = xPlayer.getMeta() - }, isNew, - userData.skin) - - if not Config.OxInventory then - xPlayer.triggerEvent('esx:createMissingPickups', Core.Pickups) - else - exports.ox_inventory:setPlayerInventory(xPlayer, userData.inventory) - - if isNew then - for account, money in pairs(Config.StartingAccountMoney) do - if account == 'money' or account == 'black_money' then - exports.ox_inventory:AddItem(playerId, account, money) - end - end - end - end - xPlayer.triggerEvent('esx:registerSuggestions', Core.RegisteredCommands) - print(('[^2INFO^0] Player ^5"%s"^0 has connected to the server. ID: ^5%s^7'):format(xPlayer.getName(), playerId)) + local userData = { + accounts = {}, + inventory = {}, + loadout = {}, + weight = 0, + identifier = identifier, + firstName = "John", + lastName = "Doe", + dateofbirth = "01/01/2000", + height = 120, + dead = false, + } + + local result = MySQL.prepare.await(loadPlayer, { identifier }) + + -- Accounts + local accounts = result.accounts + accounts = (accounts and accounts ~= "") and json.decode(accounts) or {} + + for account, data in pairs(Config.Accounts) do + data.round = data.round or data.round == nil + + local index = #userData.accounts + 1 + userData.accounts[index] = { + name = account, + money = accounts[account] or Config.StartingAccountMoney[account] or 0, + label = data.label, + round = data.round, + index = index, + } + end + + -- Job + local job, grade = result.job, tostring(result.job_grade) + + if not ESX.DoesJobExist(job, grade) then + print(("[^3WARNING^7] Ignoring invalid job for ^5%s^7 [job: ^5%s^7, grade: ^5%s^7]"):format(identifier, job, grade)) + job, grade = "unemployed", "0" + end + + jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade] + + userData.job = { + id = jobObject.id, + name = jobObject.name, + label = jobObject.label, + + grade = tonumber(grade), + grade_name = gradeObject.name, + grade_label = gradeObject.label, + grade_salary = gradeObject.salary, + + skin_male = gradeObject.skin_male and json.decode(gradeObject.skin_male) or {}, + skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {}, + } + + -- Inventory + if not Config.OxInventory then + local inventory = (result.inventory and result.inventory ~= "") and json.decode(result.inventory) or {} + + for name, item in pairs(ESX.Items) do + local count = inventory[name] or 0 + userData.weight += (count * item.weight) + + userData.inventory[#userData.inventory + 1] = { + name = name, + count = count, + label = item.label, + weight = item.weight, + usable = Core.UsableItemsCallbacks[name] ~= nil, + rare = item.rare, + canRemove = item.canRemove, + } + end + table.sort(userData.inventory, function(a, b) + return a.label < b.label + end) + elseif result.inventory and result.inventory ~= "" then + userData.inventory = json.decode(result.inventory) + end + + -- Group + if result.group then + if result.group == "superadmin" then + userData.group = "admin" + print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7") + else + userData.group = result.group + end + else + userData.group = "user" + end + + -- Loadout + if not Config.OxInventory then + if result.loadout and result.loadout ~= "" then + local loadout = json.decode(result.loadout) + + for name, weapon in pairs(loadout) do + local label = ESX.GetWeaponLabel(name) + + if label then + userData.loadout[#userData.loadout + 1] = { + name = name, + ammo = weapon.ammo, + label = label, + components = weapon.components or {}, + tintIndex = weapon.tintIndex or 0, + } + end + end + end + end + + -- Position + userData.coords = json.decode(result.position) or Config.DefaultSpawns[math.random(#Config.DefaultSpawns)] + + -- Skin + userData.skin = (result.skin and result.skin ~= "") and json.decode(result.skin) or { sex = userData.sex == "f" and 1 or 0 } + + -- Metadata + userData.metadata = (result.metadata and result.metadata ~= "") and json.decode(result.metadata) or {} + + -- xPlayer Creation + local xPlayer = CreateExtendedPlayer(playerId, identifier, userData.group, userData.accounts, userData.inventory, userData.weight, userData.job, userData.loadout, GetPlayerName(playerId), userData.coords, userData.metadata) + ESX.Players[playerId] = xPlayer + Core.playersByIdentifier[identifier] = xPlayer + + -- Identity + if result.firstname and result.firstname ~= "" then + userData.firstName = result.firstname + userData.lastName = result.lastname + + xPlayer.set("firstName", result.firstname) + xPlayer.set("lastName", result.lastname) + xPlayer.setName(("%s %s"):format(result.firstname, result.lastname)) + + if result.dateofbirth then + userData.dateofbirth = result.dateofbirth + xPlayer.set("dateofbirth", result.dateofbirth) + end + if result.sex then + userData.sex = result.sex + xPlayer.set("sex", result.sex) + end + if result.height then + userData.height = result.height + xPlayer.set("height", result.height) + end + end + + TriggerEvent("esx:playerLoaded", playerId, xPlayer, isNew) + userData.money = xPlayer.getMoney() + userData.maxWeight = xPlayer.getMaxWeight() + xPlayer.triggerEvent("esx:playerLoaded", userData, isNew, userData.skin) + + if not Config.OxInventory then + xPlayer.triggerEvent("esx:createMissingPickups", Core.Pickups) + else + exports.ox_inventory:setPlayerInventory(xPlayer, userData.inventory) + if isNew then + local shared = json.decode(GetConvar("inventory:accounts", '["money"]')) + + for i = 1, #shared do + local name = shared[i] + local account = Config.StartingAccountMoney[name] + if account then + exports.ox_inventory:AddItem(playerId, name, account) + end + end + end + end + xPlayer.triggerEvent("esx:registerSuggestions", Core.RegisteredCommands) + print(('[^2INFO^0] Player ^5"%s"^0 has connected to the server. ID: ^5%s^7'):format(xPlayer.getName(), playerId)) end -AddEventHandler('chatMessage', function(playerId, _, message) - local xPlayer = ESX.GetPlayerFromId(playerId) - if message:sub(1, 1) == '/' and playerId > 0 then - CancelEvent() - local commandName = message:sub(1):gmatch("%w+")() - xPlayer.showNotification(TranslateCap('commanderror_invalidcommand', commandName)) - end +AddEventHandler("chatMessage", function(playerId, _, message) + local xPlayer = ESX.GetPlayerFromId(playerId) + if message:sub(1, 1) == "/" and playerId > 0 then + CancelEvent() + local commandName = message:sub(1):gmatch("%w+")() + xPlayer.showNotification(TranslateCap("commanderror_invalidcommand", commandName)) + end end) -AddEventHandler('playerDropped', function(reason) - local playerId = source - local xPlayer = ESX.GetPlayerFromId(playerId) - - if xPlayer then - TriggerEvent('esx:playerDropped', playerId, reason) - local job = xPlayer.getJob().name - local currentJob = ESX.JobsPlayerCount[job] - ESX.JobsPlayerCount[job] = ((currentJob and currentJob > 0) and currentJob or 1) - 1 - GlobalState[("%s:count"):format(job)] = ESX.JobsPlayerCount[job] - Core.playersByIdentifier[xPlayer.identifier] = nil - Core.SavePlayer(xPlayer, function() - ESX.Players[playerId] = nil - end) - end +AddEventHandler("playerDropped", function(reason) + local playerId = source + local xPlayer = ESX.GetPlayerFromId(playerId) + + if xPlayer then + TriggerEvent("esx:playerDropped", playerId, reason) + local job = xPlayer.getJob().name + local currentJob = ESX.JobsPlayerCount[job] + ESX.JobsPlayerCount[job] = ((currentJob and currentJob > 0) and currentJob or 1) - 1 + GlobalState[("%s:count"):format(job)] = ESX.JobsPlayerCount[job] + Core.playersByIdentifier[xPlayer.identifier] = nil + Core.SavePlayer(xPlayer, function() + ESX.Players[playerId] = nil + end) + end end) AddEventHandler("esx:playerLoaded", function(_, xPlayer) - local job = xPlayer.getJob().name - local jobKey = ("%s:count"):format(job) + local job = xPlayer.getJob().name + local jobKey = ("%s:count"):format(job) - ESX.JobsPlayerCount[job] = (ESX.JobsPlayerCount[job] or 0) + 1 - GlobalState[jobKey] = ESX.JobsPlayerCount[job] + ESX.JobsPlayerCount[job] = (ESX.JobsPlayerCount[job] or 0) + 1 + GlobalState[jobKey] = ESX.JobsPlayerCount[job] end) AddEventHandler("esx:setJob", function(_, job, lastJob) - local lastJobKey = ('%s:count'):format(lastJob.name) - local jobKey = ('%s:count'):format(job.name) - local currentLastJob = ESX.JobsPlayerCount[lastJob.name] + local lastJobKey = ("%s:count"):format(lastJob.name) + local jobKey = ("%s:count"):format(job.name) + local currentLastJob = ESX.JobsPlayerCount[lastJob.name] - ESX.JobsPlayerCount[lastJob.name] = ((currentLastJob and currentLastJob > 0) and currentLastJob or 1) - 1 - ESX.JobsPlayerCount[job.name] = (ESX.JobsPlayerCount[job.name] or 0) + 1 + ESX.JobsPlayerCount[lastJob.name] = ((currentLastJob and currentLastJob > 0) and currentLastJob or 1) - 1 + ESX.JobsPlayerCount[job.name] = (ESX.JobsPlayerCount[job.name] or 0) + 1 - GlobalState[lastJobKey] = ESX.JobsPlayerCount[lastJob.name] - GlobalState[jobKey] = ESX.JobsPlayerCount[job.name] + GlobalState[lastJobKey] = ESX.JobsPlayerCount[lastJob.name] + GlobalState[jobKey] = ESX.JobsPlayerCount[job.name] end) -AddEventHandler('esx:playerLogout', function(playerId, cb) - local xPlayer = ESX.GetPlayerFromId(playerId) - if xPlayer then - TriggerEvent('esx:playerDropped', playerId) - - Core.playersByIdentifier[xPlayer.identifier] = nil - Core.SavePlayer(xPlayer, function() - ESX.Players[playerId] = nil - if cb then - cb() - end - end) - end - TriggerClientEvent("esx:onPlayerLogout", playerId) +AddEventHandler("esx:playerLogout", function(playerId, cb) + local xPlayer = ESX.GetPlayerFromId(playerId) + if xPlayer then + TriggerEvent("esx:playerDropped", playerId) + + Core.playersByIdentifier[xPlayer.identifier] = nil + Core.SavePlayer(xPlayer, function() + ESX.Players[playerId] = nil + if cb then + cb() + end + end) + end + TriggerClientEvent("esx:onPlayerLogout", playerId) end) if not Config.OxInventory then - RegisterNetEvent('esx:updateWeaponAmmo') - AddEventHandler('esx:updateWeaponAmmo', function(weaponName, ammoCount) - local xPlayer = ESX.GetPlayerFromId(source) - - if xPlayer then - xPlayer.updateWeaponAmmo(weaponName, ammoCount) - end - end) - - RegisterNetEvent('esx:giveInventoryItem') - AddEventHandler('esx:giveInventoryItem', function(target, itemType, itemName, itemCount) - local playerId = source - local sourceXPlayer = ESX.GetPlayerFromId(playerId) - local targetXPlayer = ESX.GetPlayerFromId(target) - local distance = #(GetEntityCoords(GetPlayerPed(playerId)) - GetEntityCoords(GetPlayerPed(target))) - if not sourceXPlayer or not targetXPlayer or distance > Config.DistanceGive then - print(('[^3WARNING^7] Player Detected Cheating: ^5%s^7'):format(GetPlayerName(playerId))) - return - end - - if itemType == 'item_standard' then - local sourceItem = sourceXPlayer.getInventoryItem(itemName) - - if itemCount > 0 and sourceItem.count >= itemCount then - if targetXPlayer.canCarryItem(itemName, itemCount) then - sourceXPlayer.removeInventoryItem(itemName, itemCount) - targetXPlayer.addInventoryItem(itemName, itemCount) - - sourceXPlayer.showNotification(TranslateCap('gave_item', itemCount, sourceItem.label, targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_item', itemCount, sourceItem.label, sourceXPlayer.name)) - else - sourceXPlayer.showNotification(TranslateCap('ex_inv_lim', targetXPlayer.name)) - end - else - sourceXPlayer.showNotification(TranslateCap('imp_invalid_quantity')) - end - elseif itemType == 'item_account' then - if itemCount > 0 and sourceXPlayer.getAccount(itemName).money >= itemCount then - sourceXPlayer.removeAccountMoney(itemName, itemCount, "Gave to " .. targetXPlayer.name) - targetXPlayer.addAccountMoney(itemName, itemCount, "Received from " .. sourceXPlayer.name) - - sourceXPlayer.showNotification(TranslateCap('gave_account_money', ESX.Math.GroupDigits(itemCount), Config.Accounts[itemName].label, targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_account_money', ESX.Math.GroupDigits(itemCount), Config.Accounts[itemName].label, - sourceXPlayer.name)) - else - sourceXPlayer.showNotification(TranslateCap('imp_invalid_amount')) - end - elseif itemType == 'item_weapon' then - if sourceXPlayer.hasWeapon(itemName) then - local weaponLabel = ESX.GetWeaponLabel(itemName) - if not targetXPlayer.hasWeapon(itemName) then - local _, weapon = sourceXPlayer.getWeapon(itemName) - local _, weaponObject = ESX.GetWeapon(itemName) - itemCount = weapon.ammo - local weaponComponents = ESX.Table.Clone(weapon.components) - local weaponTint = weapon.tintIndex - if weaponTint then - targetXPlayer.setWeaponTint(itemName, weaponTint) - end - if weaponComponents then - for _, v in pairs(weaponComponents) do - targetXPlayer.addWeaponComponent(itemName, v) - end - end - sourceXPlayer.removeWeapon(itemName) - targetXPlayer.addWeapon(itemName, itemCount) - - if weaponObject.ammo and itemCount > 0 then - local ammoLabel = weaponObject.ammo.label - sourceXPlayer.showNotification(TranslateCap('gave_weapon_withammo', weaponLabel, itemCount, ammoLabel, targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_weapon_withammo', weaponLabel, itemCount, ammoLabel, sourceXPlayer.name)) - else - sourceXPlayer.showNotification(TranslateCap('gave_weapon', weaponLabel, targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_weapon', weaponLabel, sourceXPlayer.name)) - end - else - sourceXPlayer.showNotification(TranslateCap('gave_weapon_hasalready', targetXPlayer.name, weaponLabel)) - targetXPlayer.showNotification(TranslateCap('received_weapon_hasalready', sourceXPlayer.name, weaponLabel)) - end - end - elseif itemType == 'item_ammo' then - if sourceXPlayer.hasWeapon(itemName) then - local _, weapon = sourceXPlayer.getWeapon(itemName) - - if targetXPlayer.hasWeapon(itemName) then - local _, weaponObject = ESX.GetWeapon(itemName) - - if weaponObject.ammo then - local ammoLabel = weaponObject.ammo.label - - if weapon.ammo >= itemCount then - sourceXPlayer.removeWeaponAmmo(itemName, itemCount) - targetXPlayer.addWeaponAmmo(itemName, itemCount) - - sourceXPlayer.showNotification(TranslateCap('gave_weapon_ammo', itemCount, ammoLabel, weapon.label, targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_weapon_ammo', itemCount, ammoLabel, weapon.label, sourceXPlayer.name)) - end - end - else - sourceXPlayer.showNotification(TranslateCap('gave_weapon_noweapon', targetXPlayer.name)) - targetXPlayer.showNotification(TranslateCap('received_weapon_noweapon', sourceXPlayer.name, weapon.label)) - end - end - end - end) - - RegisterNetEvent('esx:removeInventoryItem') - AddEventHandler('esx:removeInventoryItem', function(itemType, itemName, itemCount) - local playerId = source - local xPlayer = ESX.GetPlayerFromId(playerId) - - if itemType == 'item_standard' then - if itemCount == nil or itemCount < 1 then - xPlayer.showNotification(TranslateCap('imp_invalid_quantity')) - else - local xItem = xPlayer.getInventoryItem(itemName) - - if (itemCount > xItem.count or xItem.count < 1) then - xPlayer.showNotification(TranslateCap('imp_invalid_quantity')) - else - xPlayer.removeInventoryItem(itemName, itemCount) - local pickupLabel = ('%s [%s]'):format(xItem.label, itemCount) - ESX.CreatePickup('item_standard', itemName, itemCount, pickupLabel, playerId) - xPlayer.showNotification(TranslateCap('threw_standard', itemCount, xItem.label)) - end - end - elseif itemType == 'item_account' then - if itemCount == nil or itemCount < 1 then - xPlayer.showNotification(TranslateCap('imp_invalid_amount')) - else - local account = xPlayer.getAccount(itemName) - - if (itemCount > account.money or account.money < 1) then - xPlayer.showNotification(TranslateCap('imp_invalid_amount')) - else - xPlayer.removeAccountMoney(itemName, itemCount, "Threw away") - local pickupLabel = ('%s [%s]'):format(account.label, TranslateCap('locale_currency', ESX.Math.GroupDigits(itemCount))) - ESX.CreatePickup('item_account', itemName, itemCount, pickupLabel, playerId) - xPlayer.showNotification(TranslateCap('threw_account', ESX.Math.GroupDigits(itemCount), string.lower(account.label))) - end - end - elseif itemType == 'item_weapon' then - itemName = string.upper(itemName) - - if xPlayer.hasWeapon(itemName) then - local _, weapon = xPlayer.getWeapon(itemName) - local _, weaponObject = ESX.GetWeapon(itemName) - local components, pickupLabel = ESX.Table.Clone(weapon.components) - xPlayer.removeWeapon(itemName) - - if weaponObject.ammo and weapon.ammo > 0 then - local ammoLabel = weaponObject.ammo.label - pickupLabel = ('%s [%s %s]'):format(weapon.label, weapon.ammo, ammoLabel) - xPlayer.showNotification(TranslateCap('threw_weapon_ammo', weapon.label, weapon.ammo, ammoLabel)) - else - pickupLabel = ('%s'):format(weapon.label) - xPlayer.showNotification(TranslateCap('threw_weapon', weapon.label)) - end - - ESX.CreatePickup('item_weapon', itemName, weapon.ammo, pickupLabel, playerId, components, weapon.tintIndex) - end - end - end) - - RegisterNetEvent('esx:useItem') - AddEventHandler('esx:useItem', function(itemName) - local source = source - local xPlayer = ESX.GetPlayerFromId(source) - local count = xPlayer.getInventoryItem(itemName).count - - if count > 0 then - ESX.UseItem(source, itemName) - else - xPlayer.showNotification(TranslateCap('act_imp')) - end - end) - - RegisterNetEvent('esx:onPickup') - AddEventHandler('esx:onPickup', function(pickupId) - local pickup, xPlayer, success = Core.Pickups[pickupId], ESX.GetPlayerFromId(source) - - if pickup then - local playerPickupDistance = #(pickup.coords - xPlayer.getCoords(true)) - if (playerPickupDistance > 5.0) then - print(('[^3WARNING^7] Player Detected Cheating (Out of range pickup): ^5%s^7'):format(xPlayer.getIdentifier())) - return - end - - if pickup.type == 'item_standard' then - if xPlayer.canCarryItem(pickup.name, pickup.count) then - xPlayer.addInventoryItem(pickup.name, pickup.count) - success = true - else - xPlayer.showNotification(TranslateCap('threw_cannot_pickup')) - end - elseif pickup.type == 'item_account' then - success = true - xPlayer.addAccountMoney(pickup.name, pickup.count, "Picked up") - elseif pickup.type == 'item_weapon' then - if xPlayer.hasWeapon(pickup.name) then - xPlayer.showNotification(TranslateCap('threw_weapon_already')) - else - success = true - xPlayer.addWeapon(pickup.name, pickup.count) - xPlayer.setWeaponTint(pickup.name, pickup.tintIndex) - - for _, v in ipairs(pickup.components) do - xPlayer.addWeaponComponent(pickup.name, v) - end - end - end - - if success then - Core.Pickups[pickupId] = nil - TriggerClientEvent('esx:removePickup', -1, pickupId) - end - end - end) + RegisterNetEvent("esx:updateWeaponAmmo") + AddEventHandler("esx:updateWeaponAmmo", function(weaponName, ammoCount) + local xPlayer = ESX.GetPlayerFromId(source) + + if xPlayer then + xPlayer.updateWeaponAmmo(weaponName, ammoCount) + end + end) + + RegisterNetEvent("esx:giveInventoryItem") + AddEventHandler("esx:giveInventoryItem", function(target, itemType, itemName, itemCount) + local playerId = source + local sourceXPlayer = ESX.GetPlayerFromId(playerId) + local targetXPlayer = ESX.GetPlayerFromId(target) + local distance = #(GetEntityCoords(GetPlayerPed(playerId)) - GetEntityCoords(GetPlayerPed(target))) + if not sourceXPlayer or not targetXPlayer or distance > Config.DistanceGive then + print(("[^3WARNING^7] Player Detected Cheating: ^5%s^7"):format(GetPlayerName(playerId))) + return + end + + if itemType == "item_standard" then + local sourceItem = sourceXPlayer.getInventoryItem(itemName) + + if itemCount > 0 and sourceItem.count >= itemCount then + if targetXPlayer.canCarryItem(itemName, itemCount) then + sourceXPlayer.removeInventoryItem(itemName, itemCount) + targetXPlayer.addInventoryItem(itemName, itemCount) + + sourceXPlayer.showNotification(TranslateCap("gave_item", itemCount, sourceItem.label, targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_item", itemCount, sourceItem.label, sourceXPlayer.name)) + else + sourceXPlayer.showNotification(TranslateCap("ex_inv_lim", targetXPlayer.name)) + end + else + sourceXPlayer.showNotification(TranslateCap("imp_invalid_quantity")) + end + elseif itemType == "item_account" then + if itemCount > 0 and sourceXPlayer.getAccount(itemName).money >= itemCount then + sourceXPlayer.removeAccountMoney(itemName, itemCount, "Gave to " .. targetXPlayer.name) + targetXPlayer.addAccountMoney(itemName, itemCount, "Received from " .. sourceXPlayer.name) + + sourceXPlayer.showNotification(TranslateCap("gave_account_money", ESX.Math.GroupDigits(itemCount), Config.Accounts[itemName].label, targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_account_money", ESX.Math.GroupDigits(itemCount), Config.Accounts[itemName].label, sourceXPlayer.name)) + else + sourceXPlayer.showNotification(TranslateCap("imp_invalid_amount")) + end + elseif itemType == "item_weapon" then + if sourceXPlayer.hasWeapon(itemName) then + local weaponLabel = ESX.GetWeaponLabel(itemName) + if not targetXPlayer.hasWeapon(itemName) then + local _, weapon = sourceXPlayer.getWeapon(itemName) + local _, weaponObject = ESX.GetWeapon(itemName) + itemCount = weapon.ammo + local weaponComponents = ESX.Table.Clone(weapon.components) + local weaponTint = weapon.tintIndex + if weaponTint then + targetXPlayer.setWeaponTint(itemName, weaponTint) + end + if weaponComponents then + for _, v in pairs(weaponComponents) do + targetXPlayer.addWeaponComponent(itemName, v) + end + end + sourceXPlayer.removeWeapon(itemName) + targetXPlayer.addWeapon(itemName, itemCount) + + if weaponObject.ammo and itemCount > 0 then + local ammoLabel = weaponObject.ammo.label + sourceXPlayer.showNotification(TranslateCap("gave_weapon_withammo", weaponLabel, itemCount, ammoLabel, targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_weapon_withammo", weaponLabel, itemCount, ammoLabel, sourceXPlayer.name)) + else + sourceXPlayer.showNotification(TranslateCap("gave_weapon", weaponLabel, targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_weapon", weaponLabel, sourceXPlayer.name)) + end + else + sourceXPlayer.showNotification(TranslateCap("gave_weapon_hasalready", targetXPlayer.name, weaponLabel)) + targetXPlayer.showNotification(TranslateCap("received_weapon_hasalready", sourceXPlayer.name, weaponLabel)) + end + end + elseif itemType == "item_ammo" then + if sourceXPlayer.hasWeapon(itemName) then + local _, weapon = sourceXPlayer.getWeapon(itemName) + + if targetXPlayer.hasWeapon(itemName) then + local _, weaponObject = ESX.GetWeapon(itemName) + + if weaponObject.ammo then + local ammoLabel = weaponObject.ammo.label + + if weapon.ammo >= itemCount then + sourceXPlayer.removeWeaponAmmo(itemName, itemCount) + targetXPlayer.addWeaponAmmo(itemName, itemCount) + + sourceXPlayer.showNotification(TranslateCap("gave_weapon_ammo", itemCount, ammoLabel, weapon.label, targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_weapon_ammo", itemCount, ammoLabel, weapon.label, sourceXPlayer.name)) + end + end + else + sourceXPlayer.showNotification(TranslateCap("gave_weapon_noweapon", targetXPlayer.name)) + targetXPlayer.showNotification(TranslateCap("received_weapon_noweapon", sourceXPlayer.name, weapon.label)) + end + end + end + end) + + RegisterNetEvent("esx:removeInventoryItem") + AddEventHandler("esx:removeInventoryItem", function(itemType, itemName, itemCount) + local playerId = source + local xPlayer = ESX.GetPlayerFromId(playerId) + + if itemType == "item_standard" then + if itemCount == nil or itemCount < 1 then + xPlayer.showNotification(TranslateCap("imp_invalid_quantity")) + else + local xItem = xPlayer.getInventoryItem(itemName) + + if itemCount > xItem.count or xItem.count < 1 then + xPlayer.showNotification(TranslateCap("imp_invalid_quantity")) + else + xPlayer.removeInventoryItem(itemName, itemCount) + local pickupLabel = ("%s [%s]"):format(xItem.label, itemCount) + ESX.CreatePickup("item_standard", itemName, itemCount, pickupLabel, playerId) + xPlayer.showNotification(TranslateCap("threw_standard", itemCount, xItem.label)) + end + end + elseif itemType == "item_account" then + if itemCount == nil or itemCount < 1 then + xPlayer.showNotification(TranslateCap("imp_invalid_amount")) + else + local account = xPlayer.getAccount(itemName) + + if itemCount > account.money or account.money < 1 then + xPlayer.showNotification(TranslateCap("imp_invalid_amount")) + else + xPlayer.removeAccountMoney(itemName, itemCount, "Threw away") + local pickupLabel = ("%s [%s]"):format(account.label, TranslateCap("locale_currency", ESX.Math.GroupDigits(itemCount))) + ESX.CreatePickup("item_account", itemName, itemCount, pickupLabel, playerId) + xPlayer.showNotification(TranslateCap("threw_account", ESX.Math.GroupDigits(itemCount), string.lower(account.label))) + end + end + elseif itemType == "item_weapon" then + itemName = string.upper(itemName) + + if xPlayer.hasWeapon(itemName) then + local _, weapon = xPlayer.getWeapon(itemName) + local _, weaponObject = ESX.GetWeapon(itemName) + local components, pickupLabel = ESX.Table.Clone(weapon.components) + xPlayer.removeWeapon(itemName) + + if weaponObject.ammo and weapon.ammo > 0 then + local ammoLabel = weaponObject.ammo.label + pickupLabel = ("%s [%s %s]"):format(weapon.label, weapon.ammo, ammoLabel) + xPlayer.showNotification(TranslateCap("threw_weapon_ammo", weapon.label, weapon.ammo, ammoLabel)) + else + pickupLabel = ("%s"):format(weapon.label) + xPlayer.showNotification(TranslateCap("threw_weapon", weapon.label)) + end + + ESX.CreatePickup("item_weapon", itemName, weapon.ammo, pickupLabel, playerId, components, weapon.tintIndex) + end + end + end) + + RegisterNetEvent("esx:useItem") + AddEventHandler("esx:useItem", function(itemName) + local source = source + local xPlayer = ESX.GetPlayerFromId(source) + local count = xPlayer.getInventoryItem(itemName).count + + if count > 0 then + ESX.UseItem(source, itemName) + else + xPlayer.showNotification(TranslateCap("act_imp")) + end + end) + + RegisterNetEvent("esx:onPickup") + AddEventHandler("esx:onPickup", function(pickupId) + local pickup, xPlayer, success = Core.Pickups[pickupId], ESX.GetPlayerFromId(source) + + if pickup then + local playerPickupDistance = #(pickup.coords - xPlayer.getCoords(true)) + if playerPickupDistance > 5.0 then + print(("[^3WARNING^7] Player Detected Cheating (Out of range pickup): ^5%s^7"):format(xPlayer.getIdentifier())) + return + end + + if pickup.type == "item_standard" then + if xPlayer.canCarryItem(pickup.name, pickup.count) then + xPlayer.addInventoryItem(pickup.name, pickup.count) + success = true + else + xPlayer.showNotification(TranslateCap("threw_cannot_pickup")) + end + elseif pickup.type == "item_account" then + success = true + xPlayer.addAccountMoney(pickup.name, pickup.count, "Picked up") + elseif pickup.type == "item_weapon" then + if xPlayer.hasWeapon(pickup.name) then + xPlayer.showNotification(TranslateCap("threw_weapon_already")) + else + success = true + xPlayer.addWeapon(pickup.name, pickup.count) + xPlayer.setWeaponTint(pickup.name, pickup.tintIndex) + + for _, v in ipairs(pickup.components) do + xPlayer.addWeaponComponent(pickup.name, v) + end + end + end + + if success then + Core.Pickups[pickupId] = nil + TriggerClientEvent("esx:removePickup", -1, pickupId) + end + end + end) end -ESX.RegisterServerCallback('esx:getPlayerData', function(source, cb) - local xPlayer = ESX.GetPlayerFromId(source) - - cb({ - identifier = xPlayer.identifier, - accounts = xPlayer.getAccounts(), - inventory = xPlayer.getInventory(), - job = xPlayer.getJob(), - loadout = xPlayer.getLoadout(), - money = xPlayer.getMoney(), - position = xPlayer.getCoords(true), - metadata = xPlayer.getMeta() - }) +ESX.RegisterServerCallback("esx:getPlayerData", function(source, cb) + local xPlayer = ESX.GetPlayerFromId(source) + + cb({ + identifier = xPlayer.identifier, + accounts = xPlayer.getAccounts(), + inventory = xPlayer.getInventory(), + job = xPlayer.getJob(), + loadout = xPlayer.getLoadout(), + money = xPlayer.getMoney(), + position = xPlayer.getCoords(true), + metadata = xPlayer.getMeta(), + }) end) -ESX.RegisterServerCallback('esx:isUserAdmin', function(source, cb) - cb(Core.IsPlayerAdmin(source)) +ESX.RegisterServerCallback("esx:isUserAdmin", function(source, cb) + cb(Core.IsPlayerAdmin(source)) end) -ESX.RegisterServerCallback('esx:getGameBuild', function(_, cb) - cb(tonumber(GetConvar("sv_enforceGameBuild", 1604))) +ESX.RegisterServerCallback("esx:getGameBuild", function(_, cb) + cb(tonumber(GetConvar("sv_enforceGameBuild", 1604))) end) -ESX.RegisterServerCallback('esx:getOtherPlayerData', function(_, cb, target) - local xPlayer = ESX.GetPlayerFromId(target) - - cb({ - identifier = xPlayer.identifier, - accounts = xPlayer.getAccounts(), - inventory = xPlayer.getInventory(), - job = xPlayer.getJob(), - loadout = xPlayer.getLoadout(), - money = xPlayer.getMoney(), - position = xPlayer.getCoords(true), - metadata = xPlayer.getMeta() - }) +ESX.RegisterServerCallback("esx:getOtherPlayerData", function(_, cb, target) + local xPlayer = ESX.GetPlayerFromId(target) + + cb({ + identifier = xPlayer.identifier, + accounts = xPlayer.getAccounts(), + inventory = xPlayer.getInventory(), + job = xPlayer.getJob(), + loadout = xPlayer.getLoadout(), + money = xPlayer.getMoney(), + position = xPlayer.getCoords(true), + metadata = xPlayer.getMeta(), + }) end) -ESX.RegisterServerCallback('esx:getPlayerNames', function(source, cb, players) - players[source] = nil +ESX.RegisterServerCallback("esx:getPlayerNames", function(source, cb, players) + players[source] = nil - for playerId, _ in pairs(players) do - local xPlayer = ESX.GetPlayerFromId(playerId) + for playerId, _ in pairs(players) do + local xPlayer = ESX.GetPlayerFromId(playerId) - if xPlayer then - players[playerId] = xPlayer.getName() - else - players[playerId] = nil - end - end + if xPlayer then + players[playerId] = xPlayer.getName() + else + players[playerId] = nil + end + end - cb(players) + cb(players) end) ESX.RegisterServerCallback("esx:spawnVehicle", function(source, cb, vehData) - local ped = GetPlayerPed(source) - ESX.OneSync.SpawnVehicle(vehData.model or `ADDER`, vehData.coords or GetEntityCoords(ped), vehData.coords.w or 0.0, vehData.props or {}, function(id) - if vehData.warp then - local vehicle = NetworkGetEntityFromNetworkId(id) - local timeout = 0 - while GetVehiclePedIsIn(ped) ~= vehicle and timeout <= 15 do - Wait(0) - TaskWarpPedIntoVehicle(ped, vehicle, -1) - timeout += 1 - end - end - cb(id) - end) + local ped = GetPlayerPed(source) + ESX.OneSync.SpawnVehicle(vehData.model or `ADDER`, vehData.coords or GetEntityCoords(ped), vehData.coords.w or 0.0, vehData.props or {}, function(id) + if vehData.warp then + local vehicle = NetworkGetEntityFromNetworkId(id) + local timeout = 0 + while GetVehiclePedIsIn(ped) ~= vehicle and timeout <= 15 do + Wait(0) + TaskWarpPedIntoVehicle(ped, vehicle, -1) + timeout += 1 + end + end + cb(id) + end) end) -AddEventHandler('txAdmin:events:scheduledRestart', function(eventData) - if eventData.secondsRemaining == 60 then - CreateThread(function() - Wait(50000) - Core.SavePlayers() - end) - end +AddEventHandler("txAdmin:events:scheduledRestart", function(eventData) + if eventData.secondsRemaining == 60 then + CreateThread(function() + Wait(50000) + Core.SavePlayers() + end) + end end) -AddEventHandler('txAdmin:events:serverShuttingDown', function() - Core.SavePlayers() +AddEventHandler("txAdmin:events:serverShuttingDown", function() + Core.SavePlayers() end) local DoNotUse = { - ['essentialmode'] = true, - ['es_admin2'] = true, - ['basic-gamemode'] = true, - ['mapmanager'] = true, - ['fivem-map-skater'] = true, - ['fivem-map-hipster'] = true, - ['qb-core'] = true, - ['default_spawnpoint'] = true, + ["essentialmode"] = true, + ["es_admin2"] = true, + ["basic-gamemode"] = true, + ["mapmanager"] = true, + ["fivem-map-skater"] = true, + ["fivem-map-hipster"] = true, + ["qb-core"] = true, + ["default_spawnpoint"] = true, } -AddEventHandler('onResourceStart', function(key) - if DoNotUse[string.lower(key)] then - while GetResourceState(key) ~= 'started' do - Wait(0) - end +AddEventHandler("onResourceStart", function(key) + if DoNotUse[string.lower(key)] then + while GetResourceState(key) ~= "started" do + Wait(0) + end - StopResource(key) - print(("[^1ERROR^7] WE STOPPED A RESOURCE THAT WILL BREAK ^1ESX^7, PLEASE REMOVE ^5%s^7"):format(key)) - end + StopResource(key) + print(("[^1ERROR^7] WE STOPPED A RESOURCE THAT WILL BREAK ^1ESX^7, PLEASE REMOVE ^5%s^7"):format(key)) + end end) for key in pairs(DoNotUse) do - if GetResourceState(key) == 'started' or GetResourceState(key) == 'starting' then - StopResource(key) - print(("[^1ERROR^7] WE STOPPED A RESOURCE THAT WILL BREAK ^1ESX^7, PLEASE REMOVE ^5%s^7"):format(key)) - end + if GetResourceState(key) == "started" or GetResourceState(key) == "starting" then + StopResource(key) + print(("[^1ERROR^7] WE STOPPED A RESOURCE THAT WILL BREAK ^1ESX^7, PLEASE REMOVE ^5%s^7"):format(key)) + end end diff --git a/[core]/es_extended/server/modules/actions.lua b/[core]/es_extended/server/modules/actions.lua index c05131268..2c96a3a02 100644 --- a/[core]/es_extended/server/modules/actions.lua +++ b/[core]/es_extended/server/modules/actions.lua @@ -1,32 +1,32 @@ -RegisterServerEvent('esx:playerPedChanged') -RegisterServerEvent('esx:playerJumping') -RegisterServerEvent('esx:enteringVehicle') -RegisterServerEvent('esx:enteringVehicleAborted') -RegisterServerEvent('esx:enteredVehicle') -RegisterServerEvent('esx:exitedVehicle') - -if Config.EnableDebug then - AddEventHandler('esx:playerPedChanged', function(netId) - print('esx:playerPedChanged', source, netId) - end) - - AddEventHandler('esx:playerJumping', function() - print('esx:playerJumping', source) - end) - - AddEventHandler('esx:enteringVehicle', function(plate, seat, netId) - print('esx:enteringVehicle', 'source', source, 'plate', plate, 'seat', seat, 'netId', netId) - end) - - AddEventHandler('esx:enteringVehicleAborted', function() - print('esx:enteringVehicleAborted', source) - end) - - AddEventHandler('esx:enteredVehicle', function(plate, seat, displayName, netId) - print('esx:enteredVehicle', 'source', source, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) - end) - - AddEventHandler('esx:exitedVehicle', function(plate, seat, displayName, netId) - print('esx:exitedVehicle', 'source', source, 'plate', plate, 'seat', seat, 'displayName', displayName, 'netId', netId) - end) -end +RegisterServerEvent("esx:playerPedChanged") +RegisterServerEvent("esx:playerJumping") +RegisterServerEvent("esx:enteringVehicle") +RegisterServerEvent("esx:enteringVehicleAborted") +RegisterServerEvent("esx:enteredVehicle") +RegisterServerEvent("esx:exitedVehicle") + +if Config.EnableDebug then + AddEventHandler("esx:playerPedChanged", function(netId) + print("esx:playerPedChanged", source, netId) + end) + + AddEventHandler("esx:playerJumping", function() + print("esx:playerJumping", source) + end) + + AddEventHandler("esx:enteringVehicle", function(plate, seat, netId) + print("esx:enteringVehicle", "source", source, "plate", plate, "seat", seat, "netId", netId) + end) + + AddEventHandler("esx:enteringVehicleAborted", function() + print("esx:enteringVehicleAborted", source) + end) + + AddEventHandler("esx:enteredVehicle", function(plate, seat, displayName, netId) + print("esx:enteredVehicle", "source", source, "plate", plate, "seat", seat, "displayName", displayName, "netId", netId) + end) + + AddEventHandler("esx:exitedVehicle", function(plate, seat, displayName, netId) + print("esx:exitedVehicle", "source", source, "plate", plate, "seat", seat, "displayName", displayName, "netId", netId) + end) +end diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index d78e9d4a7..6a1bc7ae9 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -6,19 +6,19 @@ local RequestId = 0 ---@param eventName string ---@param callback function ESX.RegisterServerCallback = function(eventName, callback) - serverCallbacks[eventName] = callback + serverCallbacks[eventName] = callback end -RegisterNetEvent('esx:triggerServerCallback', function(eventName, requestId, invoker, ...) - if not serverCallbacks[eventName] then - return print(('[^1ERROR^7] Server Callback not registered, name: ^5%s^7, invoker resource: ^5%s^7'):format(eventName, invoker)) - end +RegisterNetEvent("esx:triggerServerCallback", function(eventName, requestId, invoker, ...) + if not serverCallbacks[eventName] then + return print(("[^1ERROR^7] Server Callback not registered, name: ^5%s^7, invoker resource: ^5%s^7"):format(eventName, invoker)) + end - local source = source + local source = source - serverCallbacks[eventName](source, function(...) - TriggerClientEvent('esx:serverCallback', source, requestId, invoker, ...) - end, ...) + serverCallbacks[eventName](source, function(...) + TriggerClientEvent("esx:serverCallback", source, requestId, invoker, ...) + end, ...) end) ---@param player number playerId @@ -26,18 +26,18 @@ end) ---@param callback function ---@param ... any ESX.TriggerClientCallback = function(player, eventName, callback, ...) - clientRequests[RequestId] = callback + clientRequests[RequestId] = callback - TriggerClientEvent('esx:triggerClientCallback', player, eventName, RequestId, GetInvokingResource() or "unknown", ...) + TriggerClientEvent("esx:triggerClientCallback", player, eventName, RequestId, GetInvokingResource() or "unknown", ...) - RequestId = RequestId + 1 + RequestId = RequestId + 1 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)) - 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)) + end - clientRequests[requestId](...) - clientRequests[requestId] = nil + clientRequests[requestId](...) + clientRequests[requestId] = nil end) diff --git a/[core]/es_extended/server/modules/npwd.lua b/[core]/es_extended/server/modules/npwd.lua index c4712b018..35cdfd763 100644 --- a/[core]/es_extended/server/modules/npwd.lua +++ b/[core]/es_extended/server/modules/npwd.lua @@ -1,49 +1,49 @@ -local npwd = GetResourceState('npwd'):find('start') and exports.npwd or nil - -AddEventHandler('onServerResourceStart', function(resource) - if resource ~= 'npwd' then - return - end - - npwd = GetResourceState('npwd'):find('start') and exports.npwd or nil - - for _, xPlayer in pairs(ESX.Players) do - npwd:newPlayer({ - source = xPlayer.source, - identifier = xPlayer.identifier, - firstname = xPlayer.get('firstName'), - lastname = xPlayer.get('lastName') - }) - end +local npwd = GetResourceState("npwd"):find("start") and exports.npwd or nil + +AddEventHandler("onServerResourceStart", function(resource) + if resource ~= "npwd" then + return + end + + npwd = GetResourceState("npwd"):find("start") and exports.npwd or nil + + for _, xPlayer in pairs(ESX.Players) do + npwd:newPlayer({ + source = xPlayer.source, + identifier = xPlayer.identifier, + firstname = xPlayer.get("firstName"), + lastname = xPlayer.get("lastName"), + }) + end end) -AddEventHandler('onServerResourceStop', function(resource) - if resource == 'npwd' then - npwd = nil - end +AddEventHandler("onServerResourceStop", function(resource) + if resource == "npwd" then + npwd = nil + end end) -AddEventHandler('esx:playerLoaded', function(playerId, xPlayer) - if not npwd then - return - end - - if not xPlayer then - xPlayer = ESX.GetPlayerFromId(playerId) - end - - npwd:newPlayer({ - source = playerId, - identifier = xPlayer.identifier, - firstname = xPlayer.get('firstName'), - lastname = xPlayer.get('lastName') - }) +AddEventHandler("esx:playerLoaded", function(playerId, xPlayer) + if not npwd then + return + end + + if not xPlayer then + xPlayer = ESX.GetPlayerFromId(playerId) + end + + npwd:newPlayer({ + source = playerId, + identifier = xPlayer.identifier, + firstname = xPlayer.get("firstName"), + lastname = xPlayer.get("lastName"), + }) end) -AddEventHandler('esx:playerLogout', function(playerId) - if not npwd then - return - end +AddEventHandler("esx:playerLogout", function(playerId) + if not npwd then + return + end - npwd:unloadPlayer(playerId) + npwd:unloadPlayer(playerId) end) diff --git a/[core]/es_extended/server/onesync.lua b/[core]/es_extended/server/onesync.lua index 9fefaa744..ed2324bea 100644 --- a/[core]/es_extended/server/onesync.lua +++ b/[core]/es_extended/server/onesync.lua @@ -5,75 +5,77 @@ ESX.OneSync = {} ---@param distance? number ---@param ignore? table local function getNearbyPlayers(source, closest, distance, ignore) - local result = {} - local count = 0 + local result = {} + local count = 0 local playerPed local playerCoords - if not distance then distance = 100 end + if not distance then + distance = 100 + end - if type(source) == 'number' then - playerPed = GetPlayerPed(source) - - if not source then - error("Received invalid first argument (source); should be playerId") + if type(source) == "number" then + playerPed = GetPlayerPed(source) + + if not source then + error("Received invalid first argument (source); should be playerId") return result - end + end - playerCoords = GetEntityCoords(playerPed) + playerCoords = GetEntityCoords(playerPed) if not playerCoords then error("Received nil value (playerCoords); perhaps source is nil at first place?") return result end - end + end - if type(source) == 'vector3' then - playerCoords = source + if type(source) == "vector3" then + playerCoords = source - if not playerCoords then + if not playerCoords then error("Received nil value (playerCoords); perhaps source is nil at first place?") return result end - end - - for _, xPlayer in pairs(ESX.Players) do - if not ignore or not ignore[xPlayer.source] then - local entity = GetPlayerPed(xPlayer.source) - local coords = GetEntityCoords(entity) - - if not closest then - local dist = #(playerCoords - coords) - if dist <= distance then - count = count + 1 - result[count] = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } - end - else + end + + for _, xPlayer in pairs(ESX.Players) do + if not ignore or not ignore[xPlayer.source] then + local entity = GetPlayerPed(xPlayer.source) + local coords = GetEntityCoords(entity) + + if not closest then + local dist = #(playerCoords - coords) + if dist <= distance then + count = count + 1 + result[count] = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } + end + else if xPlayer.source ~= source then - local dist = #(playerCoords - coords) - if dist <= (result.dist or distance) then - result = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } - end + local dist = #(playerCoords - coords) + if dist <= (result.dist or distance) then + result = { id = xPlayer.source, ped = NetworkGetNetworkIdFromEntity(entity), coords = coords, dist = dist } + end end - end - end - end + end + end + end - return result + return result end ---@param source vector3|number playerId or vector3 coordinates ---@param maxDistance number ---@param ignore? table playerIds to ignore, where the key is playerId and value is true function ESX.OneSync.GetPlayersInArea(source, maxDistance, ignore) - return getNearbyPlayers(source, false, maxDistance, ignore) + return getNearbyPlayers(source, false, maxDistance, ignore) end ---@param source vector3|number playerId or vector3 coordinates ---@param maxDistance number ---@param ignore? table playerIds to ignore, where the key is playerId and value is true function ESX.OneSync.GetClosestPlayer(source, maxDistance, ignore) - return getNearbyPlayers(source, true, maxDistance, ignore) + return getNearbyPlayers(source, true, maxDistance, ignore) end ---@param model number|string @@ -82,26 +84,26 @@ end ---@param properties table ---@param cb function function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) - local vehicleModel = joaat(model) - local vehicleProperties = properties - - CreateThread(function() - local xPlayer = ESX.OneSync.GetClosestPlayer(coords, 300) - ESX.GetVehicleType(vehicleModel, xPlayer.id, function(vehicleType) - if vehicleType then - local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords, heading) - if not DoesEntityExist(createdVehicle) then - return print('[^1ERROR^7] Unfortunately, this vehicle has not spawned') - end - - local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) - Entity(createdVehicle).state:set('VehicleProperties', vehicleProperties, true) - cb(networkId) - else - print(('[^1ERROR^7] Tried to spawn invalid vehicle - ^5%s^7!'):format(model)) - end - end) - end) + local vehicleModel = joaat(model) + local vehicleProperties = properties + + CreateThread(function() + local xPlayer = ESX.OneSync.GetClosestPlayer(coords, 300) + ESX.GetVehicleType(vehicleModel, xPlayer.id, function(vehicleType) + if vehicleType then + local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords, heading) + if not DoesEntityExist(createdVehicle) then + return print("[^1ERROR^7] Unfortunately, this vehicle has not spawned") + end + + local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) + Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true) + cb(networkId) + else + print(("[^1ERROR^7] Tried to spawn invalid vehicle - ^5%s^7!"):format(model)) + end + end) + end) end ---@param model number|string @@ -109,14 +111,18 @@ end ---@param heading number ---@param cb function function ESX.OneSync.SpawnObject(model, coords, heading, cb) - if type(model) == 'string' then model = joaat(model) end - local objectCoords = type(coords) == "vector3" and coords or vector3(coords.x, coords.y, coords.z) - CreateThread(function() - local entity = CreateObject(model, objectCoords, true, true) - while not DoesEntityExist(entity) do Wait(50) end - SetEntityHeading(entity, heading) - cb(NetworkGetNetworkIdFromEntity(entity)) - end) + if type(model) == "string" then + model = joaat(model) + end + local objectCoords = type(coords) == "vector3" and coords or vector3(coords.x, coords.y, coords.z) + CreateThread(function() + local entity = CreateObject(model, objectCoords, true, true) + while not DoesEntityExist(entity) do + Wait(50) + end + SetEntityHeading(entity, heading) + cb(NetworkGetNetworkIdFromEntity(entity)) + end) end ---@param model number|string @@ -124,12 +130,16 @@ end ---@param heading number ---@param cb function function ESX.OneSync.SpawnPed(model, coords, heading, cb) - if type(model) == 'string' then model = joaat(model) end - CreateThread(function() - local entity = CreatePed(0, model, coords.x, coords.y, coords.z, heading, true, true) - while not DoesEntityExist(entity) do Wait(50) end - cb(NetworkGetNetworkIdFromEntity(entity)) - end) + if type(model) == "string" then + model = joaat(model) + end + CreateThread(function() + local entity = CreatePed(0, model, coords.x, coords.y, coords.z, heading, true, true) + while not DoesEntityExist(entity) do + Wait(50) + end + cb(NetworkGetNetworkIdFromEntity(entity)) + end) end ---@param model number|string @@ -137,29 +147,33 @@ end ---@param seat number ---@param cb function function ESX.OneSync.SpawnPedInVehicle(model, vehicle, seat, cb) - if type(model) == 'string' then model = joaat(model) end - CreateThread(function() - local entity = CreatePedInsideVehicle(vehicle, 1, model, seat, true, true) - while not DoesEntityExist(entity) do Wait(50) end - cb(NetworkGetNetworkIdFromEntity(entity)) - end) + if type(model) == "string" then + model = joaat(model) + end + CreateThread(function() + local entity = CreatePedInsideVehicle(vehicle, 1, model, seat, true, true) + while not DoesEntityExist(entity) do + Wait(50) + end + cb(NetworkGetNetworkIdFromEntity(entity)) + end) end local function getNearbyEntities(entities, coords, modelFilter, maxDistance, isPed) - local nearbyEntities = {} - coords = type(coords) == 'number' and GetEntityCoords(GetPlayerPed(coords)) or vector3(coords.x, coords.y, coords.z) - for _, entity in pairs(entities) do - if not isPed or (isPed and not IsPedAPlayer(entity)) then - 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) - end - end - end - end - - return nearbyEntities + local nearbyEntities = {} + coords = type(coords) == "number" and GetEntityCoords(GetPlayerPed(coords)) or vector3(coords.x, coords.y, coords.z) + for _, entity in pairs(entities) do + if not isPed or (isPed and not IsPedAPlayer(entity)) then + 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) + end + end + end + end + + return nearbyEntities end ---@param coords vector3 @@ -167,7 +181,7 @@ end ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return table function ESX.OneSync.GetPedsInArea(coords, maxDistance, modelFilter) - return getNearbyEntities(GetAllPeds(), coords, modelFilter, maxDistance, true) + return getNearbyEntities(GetAllPeds(), coords, modelFilter, maxDistance, true) end ---@param coords vector3 @@ -175,7 +189,7 @@ end ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return table function ESX.OneSync.GetObjectsInArea(coords, maxDistance, modelFilter) - return getNearbyEntities(GetAllObjects(), coords, modelFilter, maxDistance) + return getNearbyEntities(GetAllObjects(), coords, modelFilter, maxDistance) end ---@param coords vector3 @@ -183,48 +197,44 @@ end ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return table function ESX.OneSync.GetVehiclesInArea(coords, maxDistance, modelFilter) - return getNearbyEntities(GetAllVehicles(), coords, modelFilter, maxDistance) + return getNearbyEntities(GetAllVehicles(), coords, modelFilter, maxDistance) end local function getClosestEntity(entities, coords, modelFilter, isPed) - local distance, closestEntity, closestCoords = 100, nil, nil - coords = type(coords) == 'number' and GetEntityCoords(GetPlayerPed(coords)) or vector3(coords.x, coords.y, coords.z) - - for _, entity in pairs(entities) do - if not isPed or (isPed and not IsPedAPlayer(entity)) then - if not modelFilter or modelFilter[GetEntityModel(entity)] then - local entityCoords = GetEntityCoords(entity) - local dist = #(coords - entityCoords) - if dist < distance then - closestEntity, distance, closestCoords = entity, dist, entityCoords - end - end - end - end - return NetworkGetNetworkIdFromEntity(closestEntity), distance, closestCoords + local distance, closestEntity, closestCoords = 100, nil, nil + coords = type(coords) == "number" and GetEntityCoords(GetPlayerPed(coords)) or vector3(coords.x, coords.y, coords.z) + + for _, entity in pairs(entities) do + if not isPed or (isPed and not IsPedAPlayer(entity)) then + if not modelFilter or modelFilter[GetEntityModel(entity)] then + local entityCoords = GetEntityCoords(entity) + local dist = #(coords - entityCoords) + if dist < distance then + closestEntity, distance, closestCoords = entity, dist, entityCoords + end + end + end + end + return NetworkGetNetworkIdFromEntity(closestEntity), distance, closestCoords end ---@param coords vector3 ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return number entityId, number distance, vector3 coords function ESX.OneSync.GetClosestPed(coords, modelFilter) - return getClosestEntity(GetAllPeds(), coords, modelFilter, true) + return getClosestEntity(GetAllPeds(), coords, modelFilter, true) end ---@param coords vector3 ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return number entityId, number distance, vector3 coords function ESX.OneSync.GetClosestObject(coords, modelFilter) - return getClosestEntity(GetAllObjects(), coords, modelFilter) + return getClosestEntity(GetAllObjects(), coords, modelFilter) end ---@param coords vector3 ---@param modelFilter table models to ignore, where the key is the model hash and the value is true ---@return number entityId, number distance, vector3 coords function ESX.OneSync.GetClosestVehicle(coords, modelFilter) - return getClosestEntity(GetAllVehicles(), coords, modelFilter) + return getClosestEntity(GetAllVehicles(), coords, modelFilter) end - -ESX.RegisterServerCallback("esx:Onesync:SpawnObject", function(_, cb, model, coords, heading) - ESX.OneSync.SpawnObject(model, coords, heading, cb) -end) diff --git a/[core]/es_extended/server/paycheck.lua b/[core]/es_extended/server/paycheck.lua index 981382934..ef317e5d0 100644 --- a/[core]/es_extended/server/paycheck.lua +++ b/[core]/es_extended/server/paycheck.lua @@ -1,72 +1,68 @@ function StartPayCheck() - 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 - local salary = xPlayer.job.grade_salary + 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 + local salary = xPlayer.job.grade_salary - if salary > 0 then - if job == 'unemployed' then -- unemployed - xPlayer.addAccountMoney('bank', salary, "Welfare Check") - TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_help', salary), - '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 } - }) - end - elseif Config.EnableSocietyPayouts then -- possibly a society - TriggerEvent('esx_society:getSociety', xPlayer.job.name, function(society) - if society ~= nil then -- verified society - TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function(account) - 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 } - }) - end + if salary > 0 then + if job == "unemployed" then -- unemployed + xPlayer.addAccountMoney("bank", salary, "Welfare Check") + TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_help", salary), "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 }, + }) + end + elseif Config.EnableSocietyPayouts then -- possibly a society + TriggerEvent("esx_society:getSociety", xPlayer.job.name, function(society) + if society ~= nil then -- verified society + TriggerEvent("esx_addonaccount:getSharedAccount", society.account, function(account) + 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 }, + }) + end - TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), - TranslateCap('received_salary', salary), 'CHAR_BANK_MAZE', 9) - else - TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), '', TranslateCap('company_nomoney'), 'CHAR_BANK_MAZE', 1) - end - end) - 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 } - }) + TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9) + else + TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), "", TranslateCap("company_nomoney"), "CHAR_BANK_MAZE", 1) + end + end) + 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 }, + }) + end + TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9) + end + end) + else -- generic job + 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 }, + }) + end + TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9) + end end - TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), - 'CHAR_BANK_MAZE', 9) - end - end) - else -- generic job - 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 } - }) end - TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), - 'CHAR_BANK_MAZE', 9) - end end - end - end - end) + end) end diff --git a/[core]/esx_context/main.lua b/[core]/esx_context/main.lua index b1aa609ba..ebf6a2537 100644 --- a/[core]/esx_context/main.lua +++ b/[core]/esx_context/main.lua @@ -5,40 +5,40 @@ local Debug = ESX.GetConfig().EnableDebug -- [ Post | Open | Closed ] function Post(fn, ...) - SendNUIMessage({ - func = fn, - args = { ... } - }) + SendNUIMessage({ + func = fn, + args = { ... }, + }) end function Open(position, eles, onSelect, onClose, canClose) - local canClose = canClose == nil and true or canClose - activeMenu = { - position = position, - eles = eles, - canClose = canClose, - onSelect = onSelect, - onClose = onClose - } - - LocalPlayer.state:set("context:active", true) - - Post("Open", eles, position) + local canClose = canClose == nil and true or canClose + activeMenu = { + position = position, + eles = eles, + canClose = canClose, + onSelect = onSelect, + onClose = onClose, + } + + LocalPlayer.state:set("context:active", true) + + Post("Open", eles, position) end function Closed() - SetNuiFocus(false, false) + SetNuiFocus(false, false) - local menu = activeMenu - local cb = menu.onClose + local menu = activeMenu + local cb = menu.onClose - activeMenu = nil + activeMenu = nil - LocalPlayer.state:set("context:active", false) + LocalPlayer.state:set("context:active", false) - if cb then - cb(menu) - end + if cb then + cb(menu) + end end -- Exports @@ -47,102 +47,106 @@ end exports("Preview", Open) exports("Open", function(...) - Open(...) - SetNuiFocus(true, true) + Open(...) + SetNuiFocus(true, true) end) exports("Close", function() - if not activeMenu then - return - end + if not activeMenu then + return + end - Post("Closed") + Post("Closed") - Closed() + Closed() end) exports("Refresh", function(eles, position) - if not activeMenu then - return - end + if not activeMenu then + return + end - activeMenu.eles = eles or activeMenu.eles - activeMenu.position = position or activeMenu.position + activeMenu.eles = eles or activeMenu.eles + activeMenu.position = position or activeMenu.position - Post("Open", activeMenu.eles, activeMenu.position) + Post("Open", activeMenu.eles, activeMenu.position) end) -- NUI Callbacks -- [ closed | selected | changed ] RegisterNUICallback("closed", function(_, cb) - if not activeMenu or (activeMenu and not activeMenu.canClose) then - return cb(false) - end - cb(true) - Closed() + if not activeMenu or (activeMenu and not activeMenu.canClose) then + return cb(false) + end + cb(true) + Closed() end) RegisterNUICallback("selected", function(data, cb) - if not activeMenu or not activeMenu.onSelect or not data.index then - return - end + if not activeMenu or not activeMenu.onSelect or not data.index then + return + end - local index = tonumber(data.index) - local ele = activeMenu.eles[index] + local index = tonumber(data.index) + local ele = activeMenu.eles[index] - if not ele or ele.input then - return - end + if not ele or ele.input then + return + end - activeMenu:onSelect(ele) - if cb then cb('ok') end + activeMenu:onSelect(ele) + if cb then + cb("ok") + end end) RegisterNUICallback("changed", function(data, cb) - if not activeMenu or not data.index or not data.value then - return - end - - local index = tonumber(data.index) - local ele = activeMenu.eles[index] - - if not ele or not ele.input then - return - end - - if ele.inputType == "number" then - ele.inputValue = tonumber(data.value) - - if ele.inputMin then - ele.inputValue = math.max(ele.inputMin, ele.inputValue) - end - - if ele.inputMax then - ele.inputValue = math.min(ele.inputMax, ele.inputValue) - end - elseif ele.inputType == "text" then - ele.inputValue = data.value - elseif ele.inputType == "radio" then - ele.inputValue = data.value - end - if cb then cb('ok') end + if not activeMenu or not data.index or not data.value then + return + end + + local index = tonumber(data.index) + local ele = activeMenu.eles[index] + + if not ele or not ele.input then + return + end + + if ele.inputType == "number" then + ele.inputValue = tonumber(data.value) + + if ele.inputMin then + ele.inputValue = math.max(ele.inputMin, ele.inputValue) + end + + if ele.inputMax then + ele.inputValue = math.min(ele.inputMax, ele.inputValue) + end + elseif ele.inputType == "text" then + ele.inputValue = data.value + elseif ele.inputType == "radio" then + ele.inputValue = data.value + end + if cb then + cb("ok") + end end) -- Keybind local function focusPreview() - if not activeMenu or not activeMenu.onSelect then - return - end + if not activeMenu or not activeMenu.onSelect then + return + end - SetNuiFocus(true, true) + SetNuiFocus(true, true) end if PREVIEW_KEYBIND then - RegisterCommand("previewContext", focusPreview) + RegisterCommand("previewContext", focusPreview) - RegisterKeyMapping("previewContext", "Preview Active Context", "keyboard", PREVIEW_KEYBIND) + RegisterKeyMapping("previewContext", "Preview Active Context", "keyboard", PREVIEW_KEYBIND) end exports("focusPreview", focusPreview) @@ -152,109 +156,109 @@ exports("focusPreview", focusPreview) -- [ ctx:preview | ctx:open | ctx:close | ctx:form ] if Debug then - local position = "right" - - local eles = { - { - unselectable = true, - icon = "fas fa-info-circle", - title = "Unselectable Item (Header/Label?)", - }, - { - icon = "fas fa-check", - title = "Item A", - description = "Some description here. Add some words to make the text overflow." - }, - { - disabled = true, - icon = "fas fa-times", - title = "Disabled Item", - description = "Some description here. Add some words to make the text overflow." - }, - { - icon = "fas fa-check", - title = "Item B", - description = "Some description here. Add some words to make the text overflow." - }, - } - - local function onSelect(menu, ele) - print("Ele selected", ele.title) - - if ele.name == "close" then - exports["esx_context"]:Close() - end - - if ele.name ~= "submit" then - return - end - - for _, element in ipairs(menu.eles) do - if element.input then - print(element.name, element.inputType, element.inputValue) - end - end - - exports["esx_context"]:Close() - end - - local function onClose() - print("Menu closed.") - end - - RegisterCommand("ctx:preview", function() - exports["esx_context"]:Preview(position, eles) - end) - - RegisterCommand("ctx:open", function() - exports["esx_context"]:Open(position, eles, onSelect, onClose) - end) - - RegisterCommand("ctx:close", function() - exports["esx_context"]:Close() - end) - - RegisterCommand("ctx:form", function() - local formMenu = { - { - unselectable = true, - icon = "fas fa-info-circle", - title = "Unselectable Item (Header/Label?)", - }, - { - icon = "", - title = "Input Text", - input = true, - inputType = "text", - inputPlaceholder = "Placeholder...", - name = "firstname", - }, - { - icon = "", - title = "Input Text", - input = true, - inputType = "text", - inputPlaceholder = "Placeholder...", - name = "lastname", - }, - { - icon = "", - title = "Input Number", - input = true, - inputType = "number", - inputPlaceholder = "Placeholder...", - inputValue = 0, - inputMin = 0, - inputMax = 50, - name = "age", - }, - { - icon = "fas fa-check", - title = "Submit", - name = "submit" - } - } - - exports["esx_context"]:Open(position, formMenu, onSelect, onClose) - end) + local position = "right" + + local eles = { + { + unselectable = true, + icon = "fas fa-info-circle", + title = "Unselectable Item (Header/Label?)", + }, + { + icon = "fas fa-check", + title = "Item A", + description = "Some description here. Add some words to make the text overflow.", + }, + { + disabled = true, + icon = "fas fa-times", + title = "Disabled Item", + description = "Some description here. Add some words to make the text overflow.", + }, + { + icon = "fas fa-check", + title = "Item B", + description = "Some description here. Add some words to make the text overflow.", + }, + } + + local function onSelect(menu, ele) + print("Ele selected", ele.title) + + if ele.name == "close" then + exports["esx_context"]:Close() + end + + if ele.name ~= "submit" then + return + end + + for _, element in ipairs(menu.eles) do + if element.input then + print(element.name, element.inputType, element.inputValue) + end + end + + exports["esx_context"]:Close() + end + + local function onClose() + print("Menu closed.") + end + + RegisterCommand("ctx:preview", function() + exports["esx_context"]:Preview(position, eles) + end) + + RegisterCommand("ctx:open", function() + exports["esx_context"]:Open(position, eles, onSelect, onClose) + end) + + RegisterCommand("ctx:close", function() + exports["esx_context"]:Close() + end) + + RegisterCommand("ctx:form", function() + local formMenu = { + { + unselectable = true, + icon = "fas fa-info-circle", + title = "Unselectable Item (Header/Label?)", + }, + { + icon = "", + title = "Input Text", + input = true, + inputType = "text", + inputPlaceholder = "Placeholder...", + name = "firstname", + }, + { + icon = "", + title = "Input Text", + input = true, + inputType = "text", + inputPlaceholder = "Placeholder...", + name = "lastname", + }, + { + icon = "", + title = "Input Number", + input = true, + inputType = "number", + inputPlaceholder = "Placeholder...", + inputValue = 0, + inputMin = 0, + inputMax = 50, + name = "age", + }, + { + icon = "fas fa-check", + title = "Submit", + name = "submit", + }, + } + + exports["esx_context"]:Open(position, formMenu, onSelect, onClose) + end) end diff --git a/[core]/esx_identity/client/main.lua b/[core]/esx_identity/client/main.lua index 5e647b05f..599ec7cff 100644 --- a/[core]/esx_identity/client/main.lua +++ b/[core]/esx_identity/client/main.lua @@ -3,27 +3,29 @@ local ready = false local guiEnabled = false local timecycleModifier = "hud_def_blur" -RegisterNetEvent('esx_identity:alreadyRegistered', function() - while not loadingScreenFinished do Wait(100) end - TriggerEvent('esx_skin:playerRegistered') +RegisterNetEvent("esx_identity:alreadyRegistered", function() + while not loadingScreenFinished do + Wait(100) + end + TriggerEvent("esx_skin:playerRegistered") end) -RegisterNetEvent('esx_identity:setPlayerData', function(data) +RegisterNetEvent("esx_identity:setPlayerData", function(data) SetTimeout(1, function() - ESX.SetPlayerData("name", ('%s %s'):format(data.firstName, data.lastName)) - ESX.SetPlayerData('firstName', data.firstName) - ESX.SetPlayerData('lastName', data.lastName) - ESX.SetPlayerData('dateofbirth', data.dateOfBirth) - ESX.SetPlayerData('sex', data.sex) - ESX.SetPlayerData('height', data.height) + ESX.SetPlayerData("name", ("%s %s"):format(data.firstName, data.lastName)) + ESX.SetPlayerData("firstName", data.firstName) + ESX.SetPlayerData("lastName", data.lastName) + ESX.SetPlayerData("dateofbirth", data.dateOfBirth) + ESX.SetPlayerData("sex", data.sex) + ESX.SetPlayerData("height", data.height) end) end) -AddEventHandler('esx:loadingScreenOff', function() +AddEventHandler("esx:loadingScreenOff", function() loadingScreenFinished = true end) -RegisterNUICallback('ready', function(_, cb) +RegisterNUICallback("ready", function(_, cb) ready = true cb(1) end) @@ -42,30 +44,32 @@ if not Config.UseDeferrals then SendNUIMessage({ type = "enableui", enable = state }) end - RegisterNetEvent('esx_identity:showRegisterIdentity', function() - TriggerEvent('esx_skin:resetFirstSpawn') + RegisterNetEvent("esx_identity:showRegisterIdentity", function() + TriggerEvent("esx_skin:resetFirstSpawn") while not (ready and loadingScreenFinished) do - print('Waiting for esx_identity NUI..') + print("Waiting for esx_identity NUI..") Wait(100) end - if not ESX.PlayerData.dead then setGuiState(true) end + if not ESX.PlayerData.dead then + setGuiState(true) + end end) - RegisterNUICallback('register', function(data,cb) + RegisterNUICallback("register", function(data, cb) if not guiEnabled then return end - ESX.TriggerServerCallback('esx_identity:registerIdentity', function(callback) + ESX.TriggerServerCallback("esx_identity:registerIdentity", function(callback) if not callback then return end - ESX.ShowNotification(TranslateCap('thank_you_for_registering')) + ESX.ShowNotification(TranslateCap("thank_you_for_registering")) setGuiState(false) if not ESX.GetConfig().Multichar then - TriggerEvent('esx_skin:playerRegistered') + TriggerEvent("esx_skin:playerRegistered") end end, data) cb(1) diff --git a/[core]/esx_identity/config.lua b/[core]/esx_identity/config.lua index 7e450c230..224e93380 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.FullCharDelete = true -- Delete all reference to character. Config.EnableDebugging = ESX.GetConfig().EnableDebug -- prints for debugging :) diff --git a/[core]/esx_identity/locales/cs.lua b/[core]/esx_identity/locales/cs.lua index 88858b5e4..bb17bed20 100644 --- a/[core]/esx_identity/locales/cs.lua +++ b/[core]/esx_identity/locales/cs.lua @@ -1,11 +1,11 @@ Locales["cs"] = { - ["show_registration"] = "zobrazit registracni menu", - ["show_active_character"] = "zobrazit aktivni postavy", - ["delete_character"] = "smazat svou stavajici postavu a vytvorit novou", - ["deleted_character"] = "vase postava byla smazana.", - ["not_registered"] = "nemas zaregistrovanou postavu.", - ["active_character"] = "aktivni postava: %s %s", - ["already_registered"] = "jiz mas zaregistrovanou postavu.", - ["failed_identity"] = "nastaveni vasi postavy selhalo, zkus to prosim znovu pozdeji nebo kontaktuj majitele serveru!", - ["create_a_character"] = "aby jsi mohl/a hrat, tak se musis registrovat.", + ["show_registration"] = "zobrazit registracni menu", + ["show_active_character"] = "zobrazit aktivni postavy", + ["delete_character"] = "smazat svou stavajici postavu a vytvorit novou", + ["deleted_character"] = "vase postava byla smazana.", + ["not_registered"] = "nemas zaregistrovanou postavu.", + ["active_character"] = "aktivni postava: %s %s", + ["already_registered"] = "jiz mas zaregistrovanou postavu.", + ["failed_identity"] = "nastaveni vasi postavy selhalo, zkus to prosim znovu pozdeji nebo kontaktuj majitele serveru!", + ["create_a_character"] = "aby jsi mohl/a hrat, tak se musis registrovat.", } diff --git a/[core]/esx_identity/locales/da.lua b/[core]/esx_identity/locales/da.lua index aa4b83de0..21c03808b 100644 --- a/[core]/esx_identity/locales/da.lua +++ b/[core]/esx_identity/locales/da.lua @@ -1,38 +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/en.lua b/[core]/esx_identity/locales/en.lua index c2f405faf..ab3d922c9 100644 --- a/[core]/esx_identity/locales/en.lua +++ b/[core]/esx_identity/locales/en.lua @@ -1,38 +1,38 @@ Locales["en"] = { - ["show_active_character"] = "Show Active Character", - ["active_character"] = "Active Character: %s", - ["error_active_character"] = "There was an error obtaining your data.", - ["delete_character"] = "Delete Your Current Character.", - ["deleted_character"] = "Character Deleted", - ["error_delete_character"] = "There was a problem deleting your character.", - ["thank_you_for_registering"] = "Registration Successful. Enjoy!", - ["debug_xPlayer_get_first_name"] = "Returns Your First Name", - ["debug_xPlayer_get_last_name"] = "Returns Your Last Name", - ["debug_xPlayer_get_full_name"] = "Returns Your Full Name", - ["debug_xPlayer_get_sex"] = "Returns Your Sex", - ["debug_xPlayer_get_dob"] = "Returns Your DOB", - ["debug_xPlayer_get_height"] = "Returns Your Height", - ["error_debug_xPlayer_get_first_name"] = "There was an issue while obtaining your first name.", - ["error_debug_xPlayer_get_last_name"] = "There was an issue while obtaining your last name.", - ["error_debug_xPlayer_get_full_name"] = "There was an issue while obtaining your full name.", - ["error_debug_xPlayer_get_sex"] = "There was an issue while obtaining your sex.", - ["error_debug_xPlayer_get_dob"] = "There was an issue while obtaining your date of birth.", - ["error_debug_xPlayer_get_height"] = "There was an issue while obtaining your height.", - ["return_debug_xPlayer_get_first_name"] = "First Name: %s", - ["return_debug_xPlayer_get_last_name"] = "Last Name: %s", - ["return_debug_xPlayer_get_full_name"] = "Name: %s", - ["return_debug_xPlayer_get_sex"] = "Sex: %s", - ["return_debug_xPlayer_get_dob"] = "DOB: %s", - ["return_debug_xPlayer_get_height"] = "Height: %s Inches", - ["data_incorrect"] = "Invalid Data, Please try again.", - ["invalid_format"] = "Invalid Data Format, Please try again.", - ["no_identifier"] = "[ESX Identity]\nThere was an issue while loading your character!\nError Code: identifier-missing\n\nThis is caused by your identifier being missing. Please come back later or report this problem to the Server Owner.", - ["missing_identity"] = "[ESX Identity]\nThere was an issue loading your character!\nError Code: identity-missing\n\nIt seems like your identity is missing, try connecting again.", - ["deleted_identity"] = "Character deleted. Please rejoin to create a new character.", - ["already_registered"] = "You have already registered.", - ["invalid_firstname_format"] = "Invalid Format (First Name): Please try again.", - ["invalid_lastname_format"] = "Invalid Format (Last Name): Please try again.", - ["invalid_dob_format"] = "Invalid Format (DOB): Please try again.", - ["invalid_sex_format"] = "Invalid Format (Sex): Please try again.", - ["invalid_height_format"] = "Invalid Format (Height): Please try again.", + ["show_active_character"] = "Show Active Character", + ["active_character"] = "Active Character: %s", + ["error_active_character"] = "There was an error obtaining your data.", + ["delete_character"] = "Delete Your Current Character.", + ["deleted_character"] = "Character Deleted", + ["error_delete_character"] = "There was a problem deleting your character.", + ["thank_you_for_registering"] = "Registration Successful. Enjoy!", + ["debug_xPlayer_get_first_name"] = "Returns Your First Name", + ["debug_xPlayer_get_last_name"] = "Returns Your Last Name", + ["debug_xPlayer_get_full_name"] = "Returns Your Full Name", + ["debug_xPlayer_get_sex"] = "Returns Your Sex", + ["debug_xPlayer_get_dob"] = "Returns Your DOB", + ["debug_xPlayer_get_height"] = "Returns Your Height", + ["error_debug_xPlayer_get_first_name"] = "There was an issue while obtaining your first name.", + ["error_debug_xPlayer_get_last_name"] = "There was an issue while obtaining your last name.", + ["error_debug_xPlayer_get_full_name"] = "There was an issue while obtaining your full name.", + ["error_debug_xPlayer_get_sex"] = "There was an issue while obtaining your sex.", + ["error_debug_xPlayer_get_dob"] = "There was an issue while obtaining your date of birth.", + ["error_debug_xPlayer_get_height"] = "There was an issue while obtaining your height.", + ["return_debug_xPlayer_get_first_name"] = "First Name: %s", + ["return_debug_xPlayer_get_last_name"] = "Last Name: %s", + ["return_debug_xPlayer_get_full_name"] = "Name: %s", + ["return_debug_xPlayer_get_sex"] = "Sex: %s", + ["return_debug_xPlayer_get_dob"] = "DOB: %s", + ["return_debug_xPlayer_get_height"] = "Height: %s Inches", + ["data_incorrect"] = "Invalid Data, Please try again.", + ["invalid_format"] = "Invalid Data Format, Please try again.", + ["no_identifier"] = "[ESX Identity]\nThere was an issue while loading your character!\nError Code: identifier-missing\n\nThis is caused by your identifier being missing. Please come back later or report this problem to the Server Owner.", + ["missing_identity"] = "[ESX Identity]\nThere was an issue loading your character!\nError Code: identity-missing\n\nIt seems like your identity is missing, try connecting again.", + ["deleted_identity"] = "Character deleted. Please rejoin to create a new character.", + ["already_registered"] = "You have already registered.", + ["invalid_firstname_format"] = "Invalid Format (First Name): Please try again.", + ["invalid_lastname_format"] = "Invalid Format (Last Name): Please try again.", + ["invalid_dob_format"] = "Invalid Format (DOB): Please try again.", + ["invalid_sex_format"] = "Invalid Format (Sex): Please try again.", + ["invalid_height_format"] = "Invalid Format (Height): Please try again.", } diff --git a/[core]/esx_identity/locales/fi.lua b/[core]/esx_identity/locales/fi.lua index 8b70edc3b..c9d9ccb38 100644 --- a/[core]/esx_identity/locales/fi.lua +++ b/[core]/esx_identity/locales/fi.lua @@ -1,33 +1,33 @@ Locales["fi"] = { - ["show_active_character"] = "Näytä nykyinen hahmosi", - ["active_character"] = "Nykyinen hahmosi: %s", - ["error_active_character"] = "Hahmosi hakemisessa ilmeni ongelma. Ota yhteyttä ylläpitoon.", - ["delete_character"] = "Poista hahmosi ja luo uusi.", - ["deleted_character"] = "Hahmosi on poistetu.", - ["error_delete_character"] = "Hahmosi poistossa ilmeni ongelma. Ota yhteyttä ylläpitoon.", - ["thank_you_for_registering"] = "Kiitos registeröitymisestä. Pidä hauskaa!", - ["registration_error"] = "Registeröinnissä ilmeni ongelma. Ota yhteyttä ylläpitoon.", - ["debug_xPlayer_get_first_name"] = "Palauta etunimi", - ["debug_xPlayer_get_last_name"] = "Palauta sukunimi", - ["debug_xPlayer_get_full_name"] = "Palauta kokonimi", - ["debug_xPlayer_get_sex"] = "Palauta sukupuoli", - ["debug_xPlayer_get_dob"] = "Palauta syntymäpäivä", - ["debug_xPlayer_get_height"] = "Palauta pituus", - ["error_debug_xPlayer_get_first_name"] = "Hahmosi etunimen haussa ilmeni ongelma.", - ["error_debug_xPlayer_get_last_name"] = "Hahmosi sukunimen haussa ilmeni ongelma.", - ["error_debug_xPlayer_get_full_name"] = "Hahmosi kokonimen haussa ilmeni ongelma.", - ["error_debug_xPlayer_get_sex"] = "Hahmosi sukupuolen haussa ilmeni ongelma.", - ["error_debug_xPlayer_get_dob"] = "Hahmosi syntymäpäivän haussa ilmeni ongelma.", - ["error_debug_xPlayer_get_height"] = "Hahmosi pituuden haussa ilmeni ongelma.", - ["return_debug_xPlayer_get_first_name"] = "Etunimi: %s", - ["return_debug_xPlayer_get_last_name"] = "Sukunimi: %s", - ["return_debug_xPlayer_get_full_name"] = "Kokonimi: %s", - ["return_debug_xPlayer_get_sex"] = "Sukupuoli: %s", - ["return_debug_xPlayer_get_dob"] = "Syntymäpäivä: %s", - ["return_debug_xPlayer_get_height"] = "Pituus: %s CM", - ["data_incorrect"] = "Data syötetty väärin. Yritä uudelleen.", - ["invalid_format"] = "Data syötetty väärässä muodossa. Yritä uudelleen.", - ["no_identifier"] = "Hahmosi lataamisessa ilmeni ongelma!\nVirhekoodi: identifier-missing\n\nVirhekoodin syytä ei tiedetä, joten ota yhteyttä ylläpitoon.", - ["missing_identity"] = "Hahmosi lataamisessa ilmeni ongelma!\nVirhekoodi: identity-missing\n\nNäyttää siltä että hahmoasi ei ole olemassa. Kokeile yhdistää uudelleen tai ota yhteyttä ylläpitoon", - ["deleted_identity"] = "Hahmosi on poistetu. Yhdistä palvelimelle uudestaan luodaksesi uusi hahmo.", + ["show_active_character"] = "Näytä nykyinen hahmosi", + ["active_character"] = "Nykyinen hahmosi: %s", + ["error_active_character"] = "Hahmosi hakemisessa ilmeni ongelma. Ota yhteyttä ylläpitoon.", + ["delete_character"] = "Poista hahmosi ja luo uusi.", + ["deleted_character"] = "Hahmosi on poistetu.", + ["error_delete_character"] = "Hahmosi poistossa ilmeni ongelma. Ota yhteyttä ylläpitoon.", + ["thank_you_for_registering"] = "Kiitos registeröitymisestä. Pidä hauskaa!", + ["registration_error"] = "Registeröinnissä ilmeni ongelma. Ota yhteyttä ylläpitoon.", + ["debug_xPlayer_get_first_name"] = "Palauta etunimi", + ["debug_xPlayer_get_last_name"] = "Palauta sukunimi", + ["debug_xPlayer_get_full_name"] = "Palauta kokonimi", + ["debug_xPlayer_get_sex"] = "Palauta sukupuoli", + ["debug_xPlayer_get_dob"] = "Palauta syntymäpäivä", + ["debug_xPlayer_get_height"] = "Palauta pituus", + ["error_debug_xPlayer_get_first_name"] = "Hahmosi etunimen haussa ilmeni ongelma.", + ["error_debug_xPlayer_get_last_name"] = "Hahmosi sukunimen haussa ilmeni ongelma.", + ["error_debug_xPlayer_get_full_name"] = "Hahmosi kokonimen haussa ilmeni ongelma.", + ["error_debug_xPlayer_get_sex"] = "Hahmosi sukupuolen haussa ilmeni ongelma.", + ["error_debug_xPlayer_get_dob"] = "Hahmosi syntymäpäivän haussa ilmeni ongelma.", + ["error_debug_xPlayer_get_height"] = "Hahmosi pituuden haussa ilmeni ongelma.", + ["return_debug_xPlayer_get_first_name"] = "Etunimi: %s", + ["return_debug_xPlayer_get_last_name"] = "Sukunimi: %s", + ["return_debug_xPlayer_get_full_name"] = "Kokonimi: %s", + ["return_debug_xPlayer_get_sex"] = "Sukupuoli: %s", + ["return_debug_xPlayer_get_dob"] = "Syntymäpäivä: %s", + ["return_debug_xPlayer_get_height"] = "Pituus: %s CM", + ["data_incorrect"] = "Data syötetty väärin. Yritä uudelleen.", + ["invalid_format"] = "Data syötetty väärässä muodossa. Yritä uudelleen.", + ["no_identifier"] = "Hahmosi lataamisessa ilmeni ongelma!\nVirhekoodi: identifier-missing\n\nVirhekoodin syytä ei tiedetä, joten ota yhteyttä ylläpitoon.", + ["missing_identity"] = "Hahmosi lataamisessa ilmeni ongelma!\nVirhekoodi: identity-missing\n\nNäyttää siltä että hahmoasi ei ole olemassa. Kokeile yhdistää uudelleen tai ota yhteyttä ylläpitoon", + ["deleted_identity"] = "Hahmosi on poistetu. Yhdistä palvelimelle uudestaan luodaksesi uusi hahmo.", } diff --git a/[core]/esx_identity/locales/fr.lua b/[core]/esx_identity/locales/fr.lua index 8fe519cf4..36b9d8664 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"] = "Supprimer votre personnage actuel.", - ["deleted_character"] = "Personnage supprimé", - ["error_delete_character"] = "Un problème est survenu lors de la suppression de votre personnage.", - ["thank_you_for_registering"] = "Inscription réussie. Bon jeu à vous!", - ["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 genre", - ["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"] = "Un problème est survenu lors de l'obtention de votre genre.", - ["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"] = "Genre: %s", - ["return_debug_xPlayer_get_dob"] = "Date de naissance: %s", - ["return_debug_xPlayer_get_height"] = "Taille: %s pouces", - ["data_incorrect"] = "Données invalides, veuillez réessayer.", - ["invalid_format"] = "Format de données invalide, veuillez réessayer.", - ["no_identifier"] = "[ESX Identity]\nUn problème est survenu lors du chargement de votre personnage !\nCode d'erreur : identifier-missing\n\nIl semble que votre identifiant soit 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 !\nCode d'erreur : identity-missing\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à enregistré.", - ["invalid_firstname_format"] = "Format invalide (Prénom) : Veuillez réessayer.", - ["invalid_lastname_format"] = "Format invalide (Nom de famille) : Veuillez réessayer.", - ["invalid_dob_format"] = "Format invalide (Date de naissance) : Veuillez réessayer.", - ["invalid_sex_format"] = "Format invalide (Genre) : Veuillez réessayer.", - ["invalid_height_format"] = "Format invalide (Taille) : 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"] = "Supprimer votre personnage actuel.", + ["deleted_character"] = "Personnage supprimé", + ["error_delete_character"] = "Un problème est survenu lors de la suppression de votre personnage.", + ["thank_you_for_registering"] = "Inscription réussie. Bon jeu à vous!", + ["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 genre", + ["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"] = "Un problème est survenu lors de l'obtention de votre genre.", + ["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"] = "Genre: %s", + ["return_debug_xPlayer_get_dob"] = "Date de naissance: %s", + ["return_debug_xPlayer_get_height"] = "Taille: %s pouces", + ["data_incorrect"] = "Données invalides, veuillez réessayer.", + ["invalid_format"] = "Format de données invalide, veuillez réessayer.", + ["no_identifier"] = "[ESX Identity]\nUn problème est survenu lors du chargement de votre personnage !\nCode d'erreur : identifier-missing\n\nIl semble que votre identifiant soit 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 !\nCode d'erreur : identity-missing\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à enregistré.", + ["invalid_firstname_format"] = "Format invalide (Prénom) : Veuillez réessayer.", + ["invalid_lastname_format"] = "Format invalide (Nom de famille) : Veuillez réessayer.", + ["invalid_dob_format"] = "Format invalide (Date de naissance) : Veuillez réessayer.", + ["invalid_sex_format"] = "Format invalide (Genre) : Veuillez réessayer.", + ["invalid_height_format"] = "Format invalide (Taille) : Veuillez réessayer.", } diff --git a/[core]/esx_identity/locales/he.lua b/[core]/esx_identity/locales/he.lua index 623481882..18c8a5149 100644 --- a/[core]/esx_identity/locales/he.lua +++ b/[core]/esx_identity/locales/he.lua @@ -1,38 +1,38 @@ Locales["he"] = { - ['show_active_character'] = 'הצג דמות פעילה', - ['active_character'] = 'דמות פעילה: %s', - ['error_active_character'] = 'אירעה שגיאה בקבלת הנתונים שלך.', - ['delete_character'] = 'מחק את הדמות הנוכחית שלך.', - ['deleted_character'] = 'הדמות נמחקה', - ['error_delete_character'] = 'אירעה בעיה במחיקת הדמות שלך.', - ['thank_you_for_registering'] = 'הרשמה הושלמה. תהנה!', - ['debug_xPlayer_get_first_name'] = 'מחזיר את שמך הפרטי', - ['debug_xPlayer_get_last_name'] = 'מחזיר את שם משפחתך', - ['debug_xPlayer_get_full_name'] = 'מחזיר את שמך המלא', - ['debug_xPlayer_get_sex'] = 'מחזיר את המין שלך', - ['debug_xPlayer_get_dob'] = 'מחזיר את תאריך הלידה שלך', - ['debug_xPlayer_get_height'] = 'מחזיר את גובהך', - ['error_debug_xPlayer_get_first_name'] = 'הייתה בעיה בקבלת שמך הפרטי.', - ['error_debug_xPlayer_get_last_name'] = 'הייתה בעיה בקבלת שם משפחתך.', - ['error_debug_xPlayer_get_full_name'] = 'הייתה בעיה בקבלת שמך המלא.', - ['error_debug_xPlayer_get_sex'] = 'הייתה בעיה בקבלת המין שלך.', - ['error_debug_xPlayer_get_dob'] = 'הייתה בעיה בקבלת תאריך הלידה שלך.', - ['error_debug_xPlayer_get_height'] = 'הייתה בעיה בקבלת הגובה שלך.', - ['return_debug_xPlayer_get_first_name'] = 'שם פרטי: %s', - ['return_debug_xPlayer_get_last_name'] = 'שם משפחה: %s', - ['return_debug_xPlayer_get_full_name'] = 'שם: %s', - ['return_debug_xPlayer_get_sex'] = 'מין: %s', - ['return_debug_xPlayer_get_dob'] = 'תאריך לידה: %s', - ['return_debug_xPlayer_get_height'] = 'גובה: %s אינץ', - ['data_incorrect'] = 'נתונים לא תקניים, נסה שוב.', - ['invalid_format'] = 'פורמט נתונים לא תקני, נסה שוב.', - ['no_identifier'] = '[ESX Identity]\nהייתה בעיה בטעינת הדמות שלך!\nקוד שגיאה: מזהה חסר\n\nזה נגרם על ידי חוסר המזהה שלך. אנא חזור מאוחר יותר או דווח על הבעיה לבעל השרת.', - ['missing_identity'] = '[ESX Identity]\nהייתה בעיה בטעינת הדמות שלך!\nקוד שגיאה: זהות חסרה\n\nנראה שהזהות שלך חסרה, נסה להתחבר שוב.', - ['deleted_identity'] = 'הדמות נמחקה. אנא הצטרף מחדש כדי ליצור דמות חדשה.', - ['already_registered'] = 'כבר נרשמת.', - ['invalid_firstname_format'] = 'פורמט לא תקני (שם פרטי): נסה שוב.', - ['invalid_lastname_format'] = 'פורמט לא תקני (שם משפחה): נסה שוב.', - ['invalid_dob_format'] = 'פורמט לא תקני (תאריך לידה): נסה שוב.', - ['invalid_sex_format'] = 'פורמט לא תקני (מין): נסה שוב.', - ['invalid_height_format'] = 'פורמט לא תקני (גובה): נסה שוב.', + ["show_active_character"] = "הצג דמות פעילה", + ["active_character"] = "דמות פעילה: %s", + ["error_active_character"] = "אירעה שגיאה בקבלת הנתונים שלך.", + ["delete_character"] = "מחק את הדמות הנוכחית שלך.", + ["deleted_character"] = "הדמות נמחקה", + ["error_delete_character"] = "אירעה בעיה במחיקת הדמות שלך.", + ["thank_you_for_registering"] = "הרשמה הושלמה. תהנה!", + ["debug_xPlayer_get_first_name"] = "מחזיר את שמך הפרטי", + ["debug_xPlayer_get_last_name"] = "מחזיר את שם משפחתך", + ["debug_xPlayer_get_full_name"] = "מחזיר את שמך המלא", + ["debug_xPlayer_get_sex"] = "מחזיר את המין שלך", + ["debug_xPlayer_get_dob"] = "מחזיר את תאריך הלידה שלך", + ["debug_xPlayer_get_height"] = "מחזיר את גובהך", + ["error_debug_xPlayer_get_first_name"] = "הייתה בעיה בקבלת שמך הפרטי.", + ["error_debug_xPlayer_get_last_name"] = "הייתה בעיה בקבלת שם משפחתך.", + ["error_debug_xPlayer_get_full_name"] = "הייתה בעיה בקבלת שמך המלא.", + ["error_debug_xPlayer_get_sex"] = "הייתה בעיה בקבלת המין שלך.", + ["error_debug_xPlayer_get_dob"] = "הייתה בעיה בקבלת תאריך הלידה שלך.", + ["error_debug_xPlayer_get_height"] = "הייתה בעיה בקבלת הגובה שלך.", + ["return_debug_xPlayer_get_first_name"] = "שם פרטי: %s", + ["return_debug_xPlayer_get_last_name"] = "שם משפחה: %s", + ["return_debug_xPlayer_get_full_name"] = "שם: %s", + ["return_debug_xPlayer_get_sex"] = "מין: %s", + ["return_debug_xPlayer_get_dob"] = "תאריך לידה: %s", + ["return_debug_xPlayer_get_height"] = "גובה: %s אינץ", + ["data_incorrect"] = "נתונים לא תקניים, נסה שוב.", + ["invalid_format"] = "פורמט נתונים לא תקני, נסה שוב.", + ["no_identifier"] = "[ESX Identity]\nהייתה בעיה בטעינת הדמות שלך!\nקוד שגיאה: מזהה חסר\n\nזה נגרם על ידי חוסר המזהה שלך. אנא חזור מאוחר יותר או דווח על הבעיה לבעל השרת.", + ["missing_identity"] = "[ESX Identity]\nהייתה בעיה בטעינת הדמות שלך!\nקוד שגיאה: זהות חסרה\n\nנראה שהזהות שלך חסרה, נסה להתחבר שוב.", + ["deleted_identity"] = "הדמות נמחקה. אנא הצטרף מחדש כדי ליצור דמות חדשה.", + ["already_registered"] = "כבר נרשמת.", + ["invalid_firstname_format"] = "פורמט לא תקני (שם פרטי): נסה שוב.", + ["invalid_lastname_format"] = "פורמט לא תקני (שם משפחה): נסה שוב.", + ["invalid_dob_format"] = "פורמט לא תקני (תאריך לידה): נסה שוב.", + ["invalid_sex_format"] = "פורמט לא תקני (מין): נסה שוב.", + ["invalid_height_format"] = "פורמט לא תקני (גובה): נסה שוב.", } diff --git a/[core]/esx_identity/locales/hu.lua b/[core]/esx_identity/locales/hu.lua index cd2a52236..0af9173d6 100644 --- a/[core]/esx_identity/locales/hu.lua +++ b/[core]/esx_identity/locales/hu.lua @@ -1,38 +1,38 @@ Locales["hu"] = { - ["show_active_character"] = "Aktív karakterek mutatása", - ["active_character"] = "Aktív karakter: %s", - ["error_active_character"] = "A név nem megfelelő", - ["delete_character"] = "Töröld a karaktered és csinálj újat", - ["deleted_character"] = "A karaktered törölve", - ["error_delete_character"] = "Hiba történt a karakter törlésekor. Kérjük, lépjen kapcsolatba egy Adminisztrátorral.", - ["thank_you_for_registering"] = "Köszönjük hogy regisztrált! Kellemes játékot!", - ["debug_xPlayer_get_first_name"] = "Add meg a Vezetéknevét", - ["debug_xPlayer_get_last_name"] = "Add meg a Keresztnevét", - ["debug_xPlayer_get_full_name"] = "Add meg a teljes nevét", - ["debug_xPlayer_get_sex"] = "Add meg a nemét", - ["debug_xPlayer_get_dob"] = "Add meg a születési időt", - ["debug_xPlayer_get_height"] = "Add meg a magasságát", - ["error_debug_xPlayer_get_first_name"] = "Hiba történt a keresztnév lekérésekor.", - ["error_debug_xPlayer_get_last_name"] = "Hiba történt a vezetéknév lekérésekor.", - ["error_debug_xPlayer_get_full_name"] = "Hiba történt a teljes nevének lekérésekor.", - ["error_debug_xPlayer_get_sex"] = "Hiba történt a nem lekérésekor.", - ["error_debug_xPlayer_get_dob"] = "Hiba történt a születési dátum lekérésekor.", - ["error_debug_xPlayer_get_height"] = "Hiba történt a magasság lekérésekor.", - ["return_debug_xPlayer_get_first_name"] = "Vezetéknév: %s", - ["return_debug_xPlayer_get_last_name"] = "Keresztnév: %s", - ["return_debug_xPlayer_get_full_name"] = "Teljes név: %s", - ["return_debug_xPlayer_get_sex"] = "Nem: %s", - ["return_debug_xPlayer_get_dob"] = "Születési dátum: %s", - ["return_debug_xPlayer_get_height"] = "Magasság: %s hüvelyk", - ["data_incorrect"] = "Hibásan megadott adatok. Kérlek próbáld újra.", - ["invalid_format"] = "Az adatok helytelen formázása. Kérlek próbáld újra.", - ["no_identifier"] = "Hiba történt a karakter betöltésekor! \nHibakód: hiányzó azonosító \n\nA hiba oka nem ismert, az azonosító nem található. Kérjük, gyere vissza később, vagy jelentsd a problémát a szerver adminisztrációs csapatának.", - ["missing_identity"] = "Hiba történt a karaktered betöltésekor! \n Hibakód: hiányzik az identitás \n és \nNem úgy tűnik, hogy hiányzik a személyazonosságod, próbálkozz újra.", - ["deleted_identity"] = "A karaktered törölve", - ["already_registered"] = "Már regisztráltál.", - ["invalid_firstname_format"] = "Érvénytelen formátum (Keresztnév): Próbáld újra.", - ["invalid_lastname_format"] = "Érvénytelen formátum (Vezetéknév): Próbáld újra.", - ["invalid_dob_format"] = "Érvénytelen formátum (Születési Idő): Próbáld újra.", - ["invalid_sex_format"] = "Érvénytelen formátum (Nem): Próbáld újra.", - ["invalid_height_format"] = "Érvénytelen formátum (Magasság): Próbáld újra." + ["show_active_character"] = "Aktív karakterek mutatása", + ["active_character"] = "Aktív karakter: %s", + ["error_active_character"] = "A név nem megfelelő", + ["delete_character"] = "Töröld a karaktered és csinálj újat", + ["deleted_character"] = "A karaktered törölve", + ["error_delete_character"] = "Hiba történt a karakter törlésekor. Kérjük, lépjen kapcsolatba egy Adminisztrátorral.", + ["thank_you_for_registering"] = "Köszönjük hogy regisztrált! Kellemes játékot!", + ["debug_xPlayer_get_first_name"] = "Add meg a Vezetéknevét", + ["debug_xPlayer_get_last_name"] = "Add meg a Keresztnevét", + ["debug_xPlayer_get_full_name"] = "Add meg a teljes nevét", + ["debug_xPlayer_get_sex"] = "Add meg a nemét", + ["debug_xPlayer_get_dob"] = "Add meg a születési időt", + ["debug_xPlayer_get_height"] = "Add meg a magasságát", + ["error_debug_xPlayer_get_first_name"] = "Hiba történt a keresztnév lekérésekor.", + ["error_debug_xPlayer_get_last_name"] = "Hiba történt a vezetéknév lekérésekor.", + ["error_debug_xPlayer_get_full_name"] = "Hiba történt a teljes nevének lekérésekor.", + ["error_debug_xPlayer_get_sex"] = "Hiba történt a nem lekérésekor.", + ["error_debug_xPlayer_get_dob"] = "Hiba történt a születési dátum lekérésekor.", + ["error_debug_xPlayer_get_height"] = "Hiba történt a magasság lekérésekor.", + ["return_debug_xPlayer_get_first_name"] = "Vezetéknév: %s", + ["return_debug_xPlayer_get_last_name"] = "Keresztnév: %s", + ["return_debug_xPlayer_get_full_name"] = "Teljes név: %s", + ["return_debug_xPlayer_get_sex"] = "Nem: %s", + ["return_debug_xPlayer_get_dob"] = "Születési dátum: %s", + ["return_debug_xPlayer_get_height"] = "Magasság: %s hüvelyk", + ["data_incorrect"] = "Hibásan megadott adatok. Kérlek próbáld újra.", + ["invalid_format"] = "Az adatok helytelen formázása. Kérlek próbáld újra.", + ["no_identifier"] = "Hiba történt a karakter betöltésekor! \nHibakód: hiányzó azonosító \n\nA hiba oka nem ismert, az azonosító nem található. Kérjük, gyere vissza később, vagy jelentsd a problémát a szerver adminisztrációs csapatának.", + ["missing_identity"] = "Hiba történt a karaktered betöltésekor! \n Hibakód: hiányzik az identitás \n és \nNem úgy tűnik, hogy hiányzik a személyazonosságod, próbálkozz újra.", + ["deleted_identity"] = "A karaktered törölve", + ["already_registered"] = "Már regisztráltál.", + ["invalid_firstname_format"] = "Érvénytelen formátum (Keresztnév): Próbáld újra.", + ["invalid_lastname_format"] = "Érvénytelen formátum (Vezetéknév): Próbáld újra.", + ["invalid_dob_format"] = "Érvénytelen formátum (Születési Idő): Próbáld újra.", + ["invalid_sex_format"] = "Érvénytelen formátum (Nem): Próbáld újra.", + ["invalid_height_format"] = "Érvénytelen formátum (Magasság): Próbáld újra.", } diff --git a/[core]/esx_identity/locales/it.lua b/[core]/esx_identity/locales/it.lua index 84d614125..41ce44e34 100644 --- a/[core]/esx_identity/locales/it.lua +++ b/[core]/esx_identity/locales/it.lua @@ -1,38 +1,38 @@ -Locales["it"] = { - ["show_active_character"] = "Mostra Personaggio Attivo", - ["active_character"] = "Personaggio Attivo: %s", - ["error_active_character"] = "Errore nel recuperare i tuoi dati.", - ["delete_character"] = "Elimina Personaggio Attuale.", - ["deleted_character"] = "Personaggio Eliminato", - ["error_delete_character"] = "Errore nell' eliminazione del personaggio.", - ["thank_you_for_registering"] = "Registrazione effettuata. Divertiti!", - ["debug_xPlayer_get_first_name"] = "Ritorna il tuo nome", - ["debug_xPlayer_get_last_name"] = "Ritorna il tuo cognome", - ["debug_xPlayer_get_full_name"] = "Ritorna il tuo nome completo", - ["debug_xPlayer_get_sex"] = "Ritorna il tuo sesso", - ["debug_xPlayer_get_dob"] = "Ritorna la tua data di nascita", - ["debug_xPlayer_get_height"] = "Ritorna la tua altezza", - ["error_debug_xPlayer_get_first_name"] = "Errore nell' ottenere il tuo nome.", - ["error_debug_xPlayer_get_last_name"] = "Errore nell' ottenere il tuo cognome.", - ["error_debug_xPlayer_get_full_name"] = "Errore nell' ottenere il tuo nome completo.", - ["error_debug_xPlayer_get_sex"] = "Errore nell' ottenere il tuo sesso.", - ["error_debug_xPlayer_get_dob"] = "Errore nell' ottenere la tua data di nascita.", - ["error_debug_xPlayer_get_height"] = "Errore nell' ottenere la tua altezza.", - ["return_debug_xPlayer_get_first_name"] = "Nome: %s", - ["return_debug_xPlayer_get_last_name"] = "Cognome: %s", - ["return_debug_xPlayer_get_full_name"] = "Nome Completo: %s", - ["return_debug_xPlayer_get_sex"] = "Sesso: %s", - ["return_debug_xPlayer_get_dob"] = "Data di nascita: %s", - ["return_debug_xPlayer_get_height"] = "Altezza: %s Pollici", - ["data_incorrect"] = "Dati errati, riprova.", - ["invalid_format"] = "Formato dati errato, riprova.", - ["no_identifier"] = "[ESX Identity]\nErrore nel caricare il tuo personaggio!\nCodice Errore: identificativo-mancante\n\nQuesto è causato dalla mancanza del tuo identificativo. Riprova più tardi o segnalalo al proprietario del server.", - ["missing_identity"] = "[ESX Identity]\nErrore nel caricare il tuo personaggio!!\nCodice Errore: identità-mancante\n\nSembra che la tua identità sia mancante, prova a riconnetterti.", - ["deleted_identity"] = "Personaggio eliminato, Rientra per crearne uno nuovo.", - ["already_registered"] = "Sei già registrato.", - ["invalid_firstname_format"] = "Formato non valido (Nome): Riprova.", - ["invalid_lastname_format"] = "Formato non valido (Cognome): Riprova.", - ["invalid_dob_format"] = "Formato non valido (Data di nascita): Riprova.", - ["invalid_sex_format"] = "Formato non valido (Sesso): Riprova.", - ["invalid_height_format"] = "Formato non valido (Altezza): Riprova.", -} +Locales["it"] = { + ["show_active_character"] = "Mostra Personaggio Attivo", + ["active_character"] = "Personaggio Attivo: %s", + ["error_active_character"] = "Errore nel recuperare i tuoi dati.", + ["delete_character"] = "Elimina Personaggio Attuale.", + ["deleted_character"] = "Personaggio Eliminato", + ["error_delete_character"] = "Errore nell' eliminazione del personaggio.", + ["thank_you_for_registering"] = "Registrazione effettuata. Divertiti!", + ["debug_xPlayer_get_first_name"] = "Ritorna il tuo nome", + ["debug_xPlayer_get_last_name"] = "Ritorna il tuo cognome", + ["debug_xPlayer_get_full_name"] = "Ritorna il tuo nome completo", + ["debug_xPlayer_get_sex"] = "Ritorna il tuo sesso", + ["debug_xPlayer_get_dob"] = "Ritorna la tua data di nascita", + ["debug_xPlayer_get_height"] = "Ritorna la tua altezza", + ["error_debug_xPlayer_get_first_name"] = "Errore nell' ottenere il tuo nome.", + ["error_debug_xPlayer_get_last_name"] = "Errore nell' ottenere il tuo cognome.", + ["error_debug_xPlayer_get_full_name"] = "Errore nell' ottenere il tuo nome completo.", + ["error_debug_xPlayer_get_sex"] = "Errore nell' ottenere il tuo sesso.", + ["error_debug_xPlayer_get_dob"] = "Errore nell' ottenere la tua data di nascita.", + ["error_debug_xPlayer_get_height"] = "Errore nell' ottenere la tua altezza.", + ["return_debug_xPlayer_get_first_name"] = "Nome: %s", + ["return_debug_xPlayer_get_last_name"] = "Cognome: %s", + ["return_debug_xPlayer_get_full_name"] = "Nome Completo: %s", + ["return_debug_xPlayer_get_sex"] = "Sesso: %s", + ["return_debug_xPlayer_get_dob"] = "Data di nascita: %s", + ["return_debug_xPlayer_get_height"] = "Altezza: %s Pollici", + ["data_incorrect"] = "Dati errati, riprova.", + ["invalid_format"] = "Formato dati errato, riprova.", + ["no_identifier"] = "[ESX Identity]\nErrore nel caricare il tuo personaggio!\nCodice Errore: identificativo-mancante\n\nQuesto è causato dalla mancanza del tuo identificativo. Riprova più tardi o segnalalo al proprietario del server.", + ["missing_identity"] = "[ESX Identity]\nErrore nel caricare il tuo personaggio!!\nCodice Errore: identità-mancante\n\nSembra che la tua identità sia mancante, prova a riconnetterti.", + ["deleted_identity"] = "Personaggio eliminato, Rientra per crearne uno nuovo.", + ["already_registered"] = "Sei già registrato.", + ["invalid_firstname_format"] = "Formato non valido (Nome): Riprova.", + ["invalid_lastname_format"] = "Formato non valido (Cognome): Riprova.", + ["invalid_dob_format"] = "Formato non valido (Data di nascita): Riprova.", + ["invalid_sex_format"] = "Formato non valido (Sesso): Riprova.", + ["invalid_height_format"] = "Formato non valido (Altezza): Riprova.", +} diff --git a/[core]/esx_identity/locales/nl.lua b/[core]/esx_identity/locales/nl.lua index b9457a45e..6cd862c62 100644 --- a/[core]/esx_identity/locales/nl.lua +++ b/[core]/esx_identity/locales/nl.lua @@ -1,38 +1,38 @@ Locales["nl"] = { - ["show_active_character"] = "Actieve karakter laten zien", - ["active_character"] = "Actief karakter: %s", - ["error_active_character"] = "Er is een probleem opgetreden tijdens het verzamelen van uw data.", - ["delete_character"] = "Dit karakter verwijderen.", - ["deleted_character"] = "Karakter verwijderd", - ["error_delete_character"] = "Er is een probleem opgetreden tijdens het verwijderen van uw karakter.", - ["thank_you_for_registering"] = "Succesvol geregistreerd!", - ["debug_xPlayer_get_first_name"] = "Stuurt je Voornaam", - ["debug_xPlayer_get_last_name"] = "Stuurt je Achternaam", - ["debug_xPlayer_get_full_name"] = "Stuurt je volledige naam", - ["debug_xPlayer_get_sex"] = "Stuurt je Geslacht", - ["debug_xPlayer_get_dob"] = "Stuurt je Geboortedatum ", - ["debug_xPlayer_get_height"] = "Stuurt je lengte", - ["error_debug_xPlayer_get_first_name"] = "Er was een probleem tijdens het ophalen van je Voornaam.", - ["error_debug_xPlayer_get_last_name"] = "Er was een probleem tijdens het ophalen van je achternaam.", - ["error_debug_xPlayer_get_full_name"] = "Er was een probleem tijdens het ophalen van je volle naam.", - ["error_debug_xPlayer_get_sex"] = "Er was een probleem tijdens het ophalen van je Geslacht.", - ["error_debug_xPlayer_get_dob"] = "Er was een probleem tijdens het ophalen van je Geboortedatum.", - ["error_debug_xPlayer_get_height"] = "Er was een probleem tijdens het ophalen van je lengte.", - ["return_debug_xPlayer_get_first_name"] = "Voornaam: %s", - ["return_debug_xPlayer_get_last_name"] = "Achternaam: %s", - ["return_debug_xPlayer_get_full_name"] = "Naam: %s", - ["return_debug_xPlayer_get_sex"] = "Geslacht: %s", - ["return_debug_xPlayer_get_dob"] = "Geboortedatum: %s", - ["return_debug_xPlayer_get_height"] = "Lengte: %s Inches", - ["data_incorrect"] = "Verkeerde data, probeer opnieuw.", - ["invalid_format"] = "Verkeerde volgorde, probeer opnieuw.", - ["no_identifier"] = "[ESX Identity]\nEr was een probleem tijdens het laden van je karakter!\nError Code: identifier-missing\n\nDit komt omdat je identifier mist, contacteer het server beheer.", - ["missing_identity"] = "[ESX Identity]\nEr was een probleem tijdens het laden van je karakter!\nError Code: identity-missing\n\nHet lijkt erop dat je identiteit mist, reconnect met de server.", - ["deleted_identity"] = "Karakter verwijderd, reconnect om een nieuwe te registreren.", - ["already_registered"] = "Je bent al geregistreerd.", - ["invalid_firstname_format"] = "Ongeldige Volgorde (Voornaam): Probeer het nog een keer.", - ["invalid_lastname_format"] = "Ongeldige Volgorde (Achternaam): Probeer het nog een keer.", - ["invalid_dob_format"] = "Ongeldige Volgorde (Geboortedatum): Probeer het nog een keer.", - ["invalid_sex_format"] = "Ongeldige Volgorde (Geslacht): Probeer het nog een keer.", - ["invalid_height_format"] = "Ongeldige Volgorde (Lengte): Probeer het nog een keer.", + ["show_active_character"] = "Actieve karakter laten zien", + ["active_character"] = "Actief karakter: %s", + ["error_active_character"] = "Er is een probleem opgetreden tijdens het verzamelen van uw data.", + ["delete_character"] = "Dit karakter verwijderen.", + ["deleted_character"] = "Karakter verwijderd", + ["error_delete_character"] = "Er is een probleem opgetreden tijdens het verwijderen van uw karakter.", + ["thank_you_for_registering"] = "Succesvol geregistreerd!", + ["debug_xPlayer_get_first_name"] = "Stuurt je Voornaam", + ["debug_xPlayer_get_last_name"] = "Stuurt je Achternaam", + ["debug_xPlayer_get_full_name"] = "Stuurt je volledige naam", + ["debug_xPlayer_get_sex"] = "Stuurt je Geslacht", + ["debug_xPlayer_get_dob"] = "Stuurt je Geboortedatum ", + ["debug_xPlayer_get_height"] = "Stuurt je lengte", + ["error_debug_xPlayer_get_first_name"] = "Er was een probleem tijdens het ophalen van je Voornaam.", + ["error_debug_xPlayer_get_last_name"] = "Er was een probleem tijdens het ophalen van je achternaam.", + ["error_debug_xPlayer_get_full_name"] = "Er was een probleem tijdens het ophalen van je volle naam.", + ["error_debug_xPlayer_get_sex"] = "Er was een probleem tijdens het ophalen van je Geslacht.", + ["error_debug_xPlayer_get_dob"] = "Er was een probleem tijdens het ophalen van je Geboortedatum.", + ["error_debug_xPlayer_get_height"] = "Er was een probleem tijdens het ophalen van je lengte.", + ["return_debug_xPlayer_get_first_name"] = "Voornaam: %s", + ["return_debug_xPlayer_get_last_name"] = "Achternaam: %s", + ["return_debug_xPlayer_get_full_name"] = "Naam: %s", + ["return_debug_xPlayer_get_sex"] = "Geslacht: %s", + ["return_debug_xPlayer_get_dob"] = "Geboortedatum: %s", + ["return_debug_xPlayer_get_height"] = "Lengte: %s Inches", + ["data_incorrect"] = "Verkeerde data, probeer opnieuw.", + ["invalid_format"] = "Verkeerde volgorde, probeer opnieuw.", + ["no_identifier"] = "[ESX Identity]\nEr was een probleem tijdens het laden van je karakter!\nError Code: identifier-missing\n\nDit komt omdat je identifier mist, contacteer het server beheer.", + ["missing_identity"] = "[ESX Identity]\nEr was een probleem tijdens het laden van je karakter!\nError Code: identity-missing\n\nHet lijkt erop dat je identiteit mist, reconnect met de server.", + ["deleted_identity"] = "Karakter verwijderd, reconnect om een nieuwe te registreren.", + ["already_registered"] = "Je bent al geregistreerd.", + ["invalid_firstname_format"] = "Ongeldige Volgorde (Voornaam): Probeer het nog een keer.", + ["invalid_lastname_format"] = "Ongeldige Volgorde (Achternaam): Probeer het nog een keer.", + ["invalid_dob_format"] = "Ongeldige Volgorde (Geboortedatum): Probeer het nog een keer.", + ["invalid_sex_format"] = "Ongeldige Volgorde (Geslacht): Probeer het nog een keer.", + ["invalid_height_format"] = "Ongeldige Volgorde (Lengte): Probeer het nog een keer.", } diff --git a/[core]/esx_identity/locales/pl.lua b/[core]/esx_identity/locales/pl.lua index 15c5cf45e..d10a79688 100644 --- a/[core]/esx_identity/locales/pl.lua +++ b/[core]/esx_identity/locales/pl.lua @@ -1,33 +1,33 @@ Locales["pl"] = { - ["show_active_character"] = "Pokaż aktywną postać", - ["active_character"] = "Aktywna postać: %s", - ["error_active_character"] = "Podczas pobierania Twojego imienia wystąpił błąd. Proszę skontaktować się z administratorem.", - ["delete_character"] = "Usuń swoją postać i stwórz nową", - ["deleted_character"] = "Twoja postać została usunięta.", - ["error_delete_character"] = "Wystąpił błąd podczas usuwania twojej postaci. Proszę skontaktować się z administratorem.", - ["thank_you_for_registering"] = "Dziękujemy za rejestrację. Baw się dobrze.", - ["registration_error"] = "Wystąpił błąd podczas rejestracji. Proszę skontaktować się z administratorem.", - ["debug_xPlayer_get_first_name"] = "Podaj swoje imię", - ["debug_xPlayer_get_last_name"] = "Podaj swoje nazwisko", - ["debug_xPlayer_get_full_name"] = "Podaj swoją pełną nazwę", - ["debug_xPlayer_get_sex"] = "Podaj swoją płeć", - ["debug_xPlayer_get_dob"] = "Podaj swoją datę urodzenia", - ["debug_xPlayer_get_height"] = "Podaj swój wzrost", - ["error_debug_xPlayer_get_first_name"] = "Podczas pobierania twojego imienia wystąpił błąd.", - ["error_debug_xPlayer_get_last_name"] = "Podczas pobierania twojego nazwiska wystąpił błąd.", - ["error_debug_xPlayer_get_full_name"] = "Podczas pobierania twojego pełnego imienia wystąpił błąd.", - ["error_debug_xPlayer_get_sex"] = "Podczas pobierania twojej płci wystąpił błąd.", - ["error_debug_xPlayer_get_dob"] = "Podczas pobierania daty urodzenia wystąpił błąd.", - ["error_debug_xPlayer_get_height"] = "Podczas pobierania wzrostu wystąpił błąd.", - ["return_debug_xPlayer_get_first_name"] = "Imię: %s", - ["return_debug_xPlayer_get_last_name"] = "Nazwisko: %s", - ["return_debug_xPlayer_get_full_name"] = "Pełna nazwa: %s", - ["return_debug_xPlayer_get_sex"] = "Płeć: %s", - ["return_debug_xPlayer_get_dob"] = "Data urodzenia: %s", - ["return_debug_xPlayer_get_height"] = "Wzrost: %s centymetrów", - ["data_incorrect"] = "Data została wprowadzona niepoprawnie. Proszę spróbuj ponownie.", - ["invalid_format"] = "Data została wprowadzona niepoprawnie. Proszę spróbuj ponownie.", - ["no_identifier"] = "Wystąpił błąd podczas ładowania twojej postaci!\nKod błędu: identifier-missing\n\nPrzyczyna tego błędu nie jest znana, nie można znaleźć Twojego identyfikatora. Wróć później lub zgłoś ten problem zespołowi administracyjnemu serwera.", - ["missing_identity"] = "Wystąpił błąd podczas ładowania twojej postaci!\nKod błędu: identity-missing\n\nWygląda na to, że brakuje Twojej tożsamości, spróbuj połączyć się ponownie.", - ["deleted_identity"] = "Twoja postać została usunięta. Dołącz ponownie, aby utworzyć nową postać.", + ["show_active_character"] = "Pokaż aktywną postać", + ["active_character"] = "Aktywna postać: %s", + ["error_active_character"] = "Podczas pobierania Twojego imienia wystąpił błąd. Proszę skontaktować się z administratorem.", + ["delete_character"] = "Usuń swoją postać i stwórz nową", + ["deleted_character"] = "Twoja postać została usunięta.", + ["error_delete_character"] = "Wystąpił błąd podczas usuwania twojej postaci. Proszę skontaktować się z administratorem.", + ["thank_you_for_registering"] = "Dziękujemy za rejestrację. Baw się dobrze.", + ["registration_error"] = "Wystąpił błąd podczas rejestracji. Proszę skontaktować się z administratorem.", + ["debug_xPlayer_get_first_name"] = "Podaj swoje imię", + ["debug_xPlayer_get_last_name"] = "Podaj swoje nazwisko", + ["debug_xPlayer_get_full_name"] = "Podaj swoją pełną nazwę", + ["debug_xPlayer_get_sex"] = "Podaj swoją płeć", + ["debug_xPlayer_get_dob"] = "Podaj swoją datę urodzenia", + ["debug_xPlayer_get_height"] = "Podaj swój wzrost", + ["error_debug_xPlayer_get_first_name"] = "Podczas pobierania twojego imienia wystąpił błąd.", + ["error_debug_xPlayer_get_last_name"] = "Podczas pobierania twojego nazwiska wystąpił błąd.", + ["error_debug_xPlayer_get_full_name"] = "Podczas pobierania twojego pełnego imienia wystąpił błąd.", + ["error_debug_xPlayer_get_sex"] = "Podczas pobierania twojej płci wystąpił błąd.", + ["error_debug_xPlayer_get_dob"] = "Podczas pobierania daty urodzenia wystąpił błąd.", + ["error_debug_xPlayer_get_height"] = "Podczas pobierania wzrostu wystąpił błąd.", + ["return_debug_xPlayer_get_first_name"] = "Imię: %s", + ["return_debug_xPlayer_get_last_name"] = "Nazwisko: %s", + ["return_debug_xPlayer_get_full_name"] = "Pełna nazwa: %s", + ["return_debug_xPlayer_get_sex"] = "Płeć: %s", + ["return_debug_xPlayer_get_dob"] = "Data urodzenia: %s", + ["return_debug_xPlayer_get_height"] = "Wzrost: %s centymetrów", + ["data_incorrect"] = "Data została wprowadzona niepoprawnie. Proszę spróbuj ponownie.", + ["invalid_format"] = "Data została wprowadzona niepoprawnie. Proszę spróbuj ponownie.", + ["no_identifier"] = "Wystąpił błąd podczas ładowania twojej postaci!\nKod błędu: identifier-missing\n\nPrzyczyna tego błędu nie jest znana, nie można znaleźć Twojego identyfikatora. Wróć później lub zgłoś ten problem zespołowi administracyjnemu serwera.", + ["missing_identity"] = "Wystąpił błąd podczas ładowania twojej postaci!\nKod błędu: identity-missing\n\nWygląda na to, że brakuje Twojej tożsamości, spróbuj połączyć się ponownie.", + ["deleted_identity"] = "Twoja postać została usunięta. Dołącz ponownie, aby utworzyć nową postać.", } diff --git a/[core]/esx_identity/locales/pt.lua b/[core]/esx_identity/locales/pt.lua index 108f8cc20..52088df86 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 2e9615782..1d93aa7bf 100644 --- a/[core]/esx_identity/locales/sl.lua +++ b/[core]/esx_identity/locales/sl.lua @@ -1,38 +1,38 @@ -Locales['sl'] = { - ['show_active_character'] = 'Prikaži aktivnega lika', - ['active_character'] = 'Aktivni lik: %s', - ['error_active_character'] = 'Prišlo je do napake pri pridobivanju podatkov.', - ['delete_character'] = 'Izbriši trenutnega lika.', - ['deleted_character'] = 'Lik je bil izbrisan', - ['error_delete_character'] = 'Prišlo je do težave pri brisanju lika.', - ['thank_you_for_registering'] = 'Registracija uspešna. Uživajte!', - ['debug_xPlayer_get_first_name'] = 'Vrne vaše ime', - ['debug_xPlayer_get_last_name'] = 'Vrne vaše priimek', - ['debug_xPlayer_get_full_name'] = 'Vrne vaše polno ime', - ['debug_xPlayer_get_sex'] = 'Vrne vaš spol', - ['debug_xPlayer_get_dob'] = 'Vrne vaš datum rojstva', - ['debug_xPlayer_get_height'] = 'Vrne vašo višino', - ['error_debug_xPlayer_get_first_name'] = 'Prišlo je do težave pri pridobivanju vašega imena.', - ['error_debug_xPlayer_get_last_name'] = 'Prišlo je do težave pri pridobivanju vašega priimka.', - ['error_debug_xPlayer_get_full_name'] = 'Prišlo je do težave pri pridobivanju vašega polnega imena.', - ['error_debug_xPlayer_get_sex'] = 'Prišlo je do težave pri pridobivanju vašega spola.', - ['error_debug_xPlayer_get_dob'] = 'Prišlo je do težave pri pridobivanju vašega datuma rojstva.', - ['error_debug_xPlayer_get_height'] = 'Prišlo je do težave pri pridobivanju vaše višine.', - ['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'] = 'Datum rojstva: %s', - ['return_debug_xPlayer_get_height'] = 'Višina: %s palcev', - ['data_incorrect'] = 'Neveljavni podatki. Poskusite znova.', - ['invalid_format'] = 'Neveljavna oblika podatkov. Poskusite znova.', - ['no_identifier'] = '[ESX Identity]\nPrišlo je do težave pri nalaganju vašega lika!\nNapaka: manjkajoč-identifier\n\nTo je posledica manjkajočega identifikatorja. Prosimo, poskusite znova kasneje ali to težavo prijavite lastniku strežnika.', - ['missing_identity'] = '[ESX Identity]\nPrišlo je do težave pri nalaganju vašega lika!\nNapaka: manjkajoč-identity\n\nZdi se, da manjka vaša identiteta. Poskusite znova.', - ['deleted_identity'] = 'Lik izbrisan. Prosimo, ponovno se pridružite in ustvarite nov lik.', - ['already_registered'] = 'Že ste registrirani.', - ['invalid_firstname_format'] = 'Neveljavna oblika (Ime). Poskusite znova.', - ['invalid_lastname_format'] = 'Neveljavna oblika (Priimek). Poskusite znova.', - ['invalid_dob_format'] = 'Neveljavna oblika (Datum rojstva). Poskusite znova.', - ['invalid_sex_format'] = 'Neveljavna oblika (Spol). Poskusite znova.', - ['invalid_height_format'] = 'Neveljavna oblika (Višina). Poskusite znova.' - } \ No newline at end of file +Locales["sl"] = { + ["show_active_character"] = "Prikaži aktivnega lika", + ["active_character"] = "Aktivni lik: %s", + ["error_active_character"] = "Prišlo je do napake pri pridobivanju podatkov.", + ["delete_character"] = "Izbriši trenutnega lika.", + ["deleted_character"] = "Lik je bil izbrisan", + ["error_delete_character"] = "Prišlo je do težave pri brisanju lika.", + ["thank_you_for_registering"] = "Registracija uspešna. Uživajte!", + ["debug_xPlayer_get_first_name"] = "Vrne vaše ime", + ["debug_xPlayer_get_last_name"] = "Vrne vaše priimek", + ["debug_xPlayer_get_full_name"] = "Vrne vaše polno ime", + ["debug_xPlayer_get_sex"] = "Vrne vaš spol", + ["debug_xPlayer_get_dob"] = "Vrne vaš datum rojstva", + ["debug_xPlayer_get_height"] = "Vrne vašo višino", + ["error_debug_xPlayer_get_first_name"] = "Prišlo je do težave pri pridobivanju vašega imena.", + ["error_debug_xPlayer_get_last_name"] = "Prišlo je do težave pri pridobivanju vašega priimka.", + ["error_debug_xPlayer_get_full_name"] = "Prišlo je do težave pri pridobivanju vašega polnega imena.", + ["error_debug_xPlayer_get_sex"] = "Prišlo je do težave pri pridobivanju vašega spola.", + ["error_debug_xPlayer_get_dob"] = "Prišlo je do težave pri pridobivanju vašega datuma rojstva.", + ["error_debug_xPlayer_get_height"] = "Prišlo je do težave pri pridobivanju vaše višine.", + ["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"] = "Datum rojstva: %s", + ["return_debug_xPlayer_get_height"] = "Višina: %s palcev", + ["data_incorrect"] = "Neveljavni podatki. Poskusite znova.", + ["invalid_format"] = "Neveljavna oblika podatkov. Poskusite znova.", + ["no_identifier"] = "[ESX Identity]\nPrišlo je do težave pri nalaganju vašega lika!\nNapaka: manjkajoč-identifier\n\nTo je posledica manjkajočega identifikatorja. Prosimo, poskusite znova kasneje ali to težavo prijavite lastniku strežnika.", + ["missing_identity"] = "[ESX Identity]\nPrišlo je do težave pri nalaganju vašega lika!\nNapaka: manjkajoč-identity\n\nZdi se, da manjka vaša identiteta. Poskusite znova.", + ["deleted_identity"] = "Lik izbrisan. Prosimo, ponovno se pridružite in ustvarite nov lik.", + ["already_registered"] = "Že ste registrirani.", + ["invalid_firstname_format"] = "Neveljavna oblika (Ime). Poskusite znova.", + ["invalid_lastname_format"] = "Neveljavna oblika (Priimek). Poskusite znova.", + ["invalid_dob_format"] = "Neveljavna oblika (Datum rojstva). Poskusite znova.", + ["invalid_sex_format"] = "Neveljavna oblika (Spol). Poskusite znova.", + ["invalid_height_format"] = "Neveljavna oblika (Višina). Poskusite znova.", +} diff --git a/[core]/esx_identity/locales/sr.lua b/[core]/esx_identity/locales/sr.lua index 96e129357..8cb37a22a 100644 --- a/[core]/esx_identity/locales/sr.lua +++ b/[core]/esx_identity/locales/sr.lua @@ -1,38 +1,38 @@ Locales["sr"] = { - ["show_active_character"] = "Prikazi karaktere", - ["active_character"] = "Karakteri: %s", - ["error_active_character"] = "Imamo problem sa ucitavanjem karaktera.", - ["delete_character"] = "Obrisite karaktera.", - ["deleted_character"] = "Karakter obrisan", - ["error_delete_character"] = "Doslo je do greske pri brisanju karaktera.", - ["thank_you_for_registering"] = "Registracija uspesna. Uzivajte!", - ["debug_xPlayer_get_first_name"] = "Vraca vase ime", - ["debug_xPlayer_get_last_name"] = "Vraca vase prezime", - ["debug_xPlayer_get_full_name"] = "Vraca vase puno ime", - ["debug_xPlayer_get_sex"] = "Vraca vas pol", - ["debug_xPlayer_get_dob"] = "Vraca vas datum rodjenja", - ["debug_xPlayer_get_height"] = "Vraca vasu visinu", - ["error_debug_xPlayer_get_first_name"] = "Doslo je do greske pri pronalazenju vaseg imena.", - ["error_debug_xPlayer_get_last_name"] = "Doslo je do greske pri pronalazenju vaseg prezimena.", - ["error_debug_xPlayer_get_full_name"] = "Doslo je do greske pri pronalazenju vaseg punog imena.", - ["error_debug_xPlayer_get_sex"] = "Doslo je do greske pri pronalazenju vaseg pola.", - ["error_debug_xPlayer_get_dob"] = "Doslo je do greske pri pronalazenju vaseg datuma rodjenja.", - ["error_debug_xPlayer_get_height"] = "Doslo je do greske pri pronalazenju vase visine.", - ["return_debug_xPlayer_get_first_name"] = "Ime: %s", - ["return_debug_xPlayer_get_last_name"] = "Prezime: %s", - ["return_debug_xPlayer_get_full_name"] = "Ime: %s", - ["return_debug_xPlayer_get_sex"] = "Pol: %s", - ["return_debug_xPlayer_get_dob"] = "Datum rodjenja: %s", - ["return_debug_xPlayer_get_height"] = "Visina: %s", - ["data_incorrect"] = "Nevazeci podatci, pokusajte ponovo.", - ["invalid_format"] = "Nevazeci format podataka, pokusajte ponovo.", - ["no_identifier"] = "[ESX Identity]\nDoslo je do greske pri ucitavanju vaseg karaktera!\nError Code: identifier-missing\n\nUpalite steam pa pokusajte ponovo.", - ["missing_identity"] = "[ESX Identity]\nDoslo je do greske pri ucitavanju vaseg karaktera!\nError Code: identity-missing\n\nIzgleda da je vas steam nepostojeci. Pokusajte ponovo.", - ["deleted_identity"] = "Karakter obrisan. Uradite relog kako bi napravili novog karaktera.", - ["already_registered"] = "Vi ste vec registrovani.", - ["invalid_firstname_format"] = "Nevazeci Format (Ime): Pokusajte ponovo.", - ["invalid_lastname_format"] = "Nevazeci Format (Prezime): Pokusajte ponovo.", - ["invalid_dob_format"] = "Nevazeci Format (Datum Rodjenja): Pokusajte ponovo.", - ["invalid_sex_format"] = "Nevazeci Format (Pol): Pokusajte ponovo.", - ["invalid_height_format"] = "Nevazeci Format (Visina): Pokusajte ponovo.", + ["show_active_character"] = "Prikazi karaktere", + ["active_character"] = "Karakteri: %s", + ["error_active_character"] = "Imamo problem sa ucitavanjem karaktera.", + ["delete_character"] = "Obrisite karaktera.", + ["deleted_character"] = "Karakter obrisan", + ["error_delete_character"] = "Doslo je do greske pri brisanju karaktera.", + ["thank_you_for_registering"] = "Registracija uspesna. Uzivajte!", + ["debug_xPlayer_get_first_name"] = "Vraca vase ime", + ["debug_xPlayer_get_last_name"] = "Vraca vase prezime", + ["debug_xPlayer_get_full_name"] = "Vraca vase puno ime", + ["debug_xPlayer_get_sex"] = "Vraca vas pol", + ["debug_xPlayer_get_dob"] = "Vraca vas datum rodjenja", + ["debug_xPlayer_get_height"] = "Vraca vasu visinu", + ["error_debug_xPlayer_get_first_name"] = "Doslo je do greske pri pronalazenju vaseg imena.", + ["error_debug_xPlayer_get_last_name"] = "Doslo je do greske pri pronalazenju vaseg prezimena.", + ["error_debug_xPlayer_get_full_name"] = "Doslo je do greske pri pronalazenju vaseg punog imena.", + ["error_debug_xPlayer_get_sex"] = "Doslo je do greske pri pronalazenju vaseg pola.", + ["error_debug_xPlayer_get_dob"] = "Doslo je do greske pri pronalazenju vaseg datuma rodjenja.", + ["error_debug_xPlayer_get_height"] = "Doslo je do greske pri pronalazenju vase visine.", + ["return_debug_xPlayer_get_first_name"] = "Ime: %s", + ["return_debug_xPlayer_get_last_name"] = "Prezime: %s", + ["return_debug_xPlayer_get_full_name"] = "Ime: %s", + ["return_debug_xPlayer_get_sex"] = "Pol: %s", + ["return_debug_xPlayer_get_dob"] = "Datum rodjenja: %s", + ["return_debug_xPlayer_get_height"] = "Visina: %s", + ["data_incorrect"] = "Nevazeci podatci, pokusajte ponovo.", + ["invalid_format"] = "Nevazeci format podataka, pokusajte ponovo.", + ["no_identifier"] = "[ESX Identity]\nDoslo je do greske pri ucitavanju vaseg karaktera!\nError Code: identifier-missing\n\nUpalite steam pa pokusajte ponovo.", + ["missing_identity"] = "[ESX Identity]\nDoslo je do greske pri ucitavanju vaseg karaktera!\nError Code: identity-missing\n\nIzgleda da je vas steam nepostojeci. Pokusajte ponovo.", + ["deleted_identity"] = "Karakter obrisan. Uradite relog kako bi napravili novog karaktera.", + ["already_registered"] = "Vi ste vec registrovani.", + ["invalid_firstname_format"] = "Nevazeci Format (Ime): Pokusajte ponovo.", + ["invalid_lastname_format"] = "Nevazeci Format (Prezime): Pokusajte ponovo.", + ["invalid_dob_format"] = "Nevazeci Format (Datum Rodjenja): Pokusajte ponovo.", + ["invalid_sex_format"] = "Nevazeci Format (Pol): Pokusajte ponovo.", + ["invalid_height_format"] = "Nevazeci Format (Visina): Pokusajte ponovo.", } diff --git a/[core]/esx_identity/locales/sv.lua b/[core]/esx_identity/locales/sv.lua new file mode 100644 index 000000000..6c291d346 --- /dev/null +++ b/[core]/esx_identity/locales/sv.lua @@ -0,0 +1,38 @@ +Locales["sv"] = { + ["show_active_character"] = "Visa aktiv karaktär", + ["active_character"] = "Aktiv karaktär: %s", + ["error_active_character"] = "Det blev ett fel med att ta din data.", + ["delete_character"] = "Radera din nuvarande karaktär.", + ["deleted_character"] = "Karaktär raderad", + ["error_delete_character"] = "Det uppstod ett problem med att radera din karaktär.", + ["thank_you_for_registering"] = "Din karaktär är skapad. Grattis!", + ["debug_xPlayer_get_first_name"] = "Ger ditt förnamn", + ["debug_xPlayer_get_last_name"] = "Ger ditt efternamn", + ["debug_xPlayer_get_full_name"] = "Ger ditt fulla namn", + ["debug_xPlayer_get_sex"] = "Ger ditt kön", + ["debug_xPlayer_get_dob"] = "Ger ditt födelsedatum", + ["debug_xPlayer_get_height"] = "Ger din längd", + ["error_debug_xPlayer_get_first_name"] = "Det blev ett problem med att få ditt förnamn.", + ["error_debug_xPlayer_get_last_name"] = "Det blev ett problem med att få ditt efternamn.", + ["error_debug_xPlayer_get_full_name"] = "Det blev ett problem med att få ditt fulla namn.", + ["error_debug_xPlayer_get_sex"] = "Det blev ett problem med att få ditt kön.", + ["error_debug_xPlayer_get_dob"] = "Det blev ett problem med att få ditt födelsedatum.", + ["error_debug_xPlayer_get_height"] = "Det blev ett problem med att få din längd.", + ["return_debug_xPlayer_get_first_name"] = "Förnamn: %s", + ["return_debug_xPlayer_get_last_name"] = "Efternamn: %s", + ["return_debug_xPlayer_get_full_name"] = "Namn: %s", + ["return_debug_xPlayer_get_sex"] = "Kön: %s", + ["return_debug_xPlayer_get_dob"] = "Födelsedatum: %s", + ["return_debug_xPlayer_get_height"] = "Längd: %s Cm", + ["data_incorrect"] = "Ogiltigt, försök igen.", + ["invalid_format"] = "Ogiltigt format, försök igen.", + ["no_identifier"] = "[ESX Identity]\nDet blev ett fel med att ladda din karaktär!\nFelkod: identifier-missing\n\nSer ut som att din identifier saknas. Testa senare eller kontakta serverägare.", + ["missing_identity"] = "[ESX Identity]\nThere was an issue loading your character!\nFelkod: identity-missing\n\nSer ut som att din identity saknas, testa anslut igen.", + ["deleted_identity"] = "Karaktär raderad. Restarta ditt spel för att skapa ny karaktär.", + ["already_registered"] = "Du har redan registrerat.", + ["invalid_firstname_format"] = "Ogiltigt format (Förnamn): Försök igen.", + ["invalid_lastname_format"] = "Ogiltigt format (Efternamn): Försök igen.", + ["invalid_dob_format"] = "Ogiltigt format (Födelsedatum): Försök igen.", + ["invalid_sex_format"] = "Ogiltigt format (Kön): Försök igen.", + ["invalid_height_format"] = "Ogiltigt format (Längd): Försök igen.", +} diff --git a/[core]/esx_identity/server/main.lua b/[core]/esx_identity/server/main.lua index a2884c769..e7d5ec88f 100644 --- a/[core]/esx_identity/server/main.lua +++ b/[core]/esx_identity/server/main.lua @@ -3,12 +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 @@ -17,26 +17,26 @@ local function deleteIdentity(xPlayer) return end - xPlayer.setName(('%s %s'):format(nil, nil)) - xPlayer.set('firstName', nil) - xPlayer.set('lastName', nil) - xPlayer.set('dateofbirth', nil) - xPlayer.set('sex', nil) - xPlayer.set('height', nil) + xPlayer.setName(("%s %s"):format(nil, nil)) + xPlayer.set("firstName", nil) + xPlayer.set("lastName", nil) + xPlayer.set("dateofbirth", nil) + xPlayer.set("sex", nil) + xPlayer.set("height", nil) deleteIdentityFromDatabase(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) str = tostring(str) - if not string.match(str, '(%d%d)/(%d%d)/(%d%d%d%d)') then + if not string.match(str, "(%d%d)/(%d%d)/(%d%d%d%d)") then return false end - local d, m, y = string.match(str, '(%d+)/(%d+)/(%d+)') + local d, m, y = string.match(str, "(%d+)/(%d+)/(%d+)") m = tonumber(m) d = tonumber(d) @@ -45,20 +45,20 @@ local function checkDOBFormat(str) if ((d <= 0) or (d > 31)) or ((m <= 0) or (m > 12)) or ((y <= Config.LowestYear) or (y > Config.HighestYear)) then return false elseif m == 4 or m == 6 or m == 9 or m == 11 then - return d < 30 + return d <= 30 elseif m == 2 then if y % 400 == 0 or (y % 100 ~= 0 and y % 4 == 0) then - return d < 29 + return d <= 29 else - return d < 28 + return d <= 28 end else - return d < 31 + return d <= 31 end end local function formatDate(str) - local d, m, y = string.match(str, '(%d+)/(%d+)/(%d+)') + local d, m, y = string.match(str, "(%d+)/(%d+)/(%d+)") local date = str if Config.DateFormat == "MM/DD/YYYY" then @@ -113,13 +113,13 @@ local function formatName(name) end if Config.UseDeferrals then - AddEventHandler('playerConnecting', function(_, _, deferrals) + AddEventHandler("playerConnecting", function(_, _, deferrals) deferrals.defer() local _, identifier = source, ESX.GetIdentifier(source) Wait(100) if identifier then - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { identifier }, function(result) + MySQL.single("SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?", { identifier }, function(result) if result then if result.firstname then playerIdentity[identifier] = { @@ -127,7 +127,7 @@ if Config.UseDeferrals then lastName = result.lastname, dateOfBirth = result.dateofbirth, sex = result.sex, - height = result.height + height = result.height, } deferrals.done() @@ -144,28 +144,26 @@ if Config.UseDeferrals then "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')) + 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 + 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 + saveToDatabase = true, } deferrals.done() else - deferrals.done(TranslateCap('invalid_format')) + deferrals.done(TranslateCap("invalid_format")) end end - end) + end + ) end else deferrals.presentCard( @@ -179,23 +177,23 @@ if Config.UseDeferrals then "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')) + 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')) + return deferrals.done(TranslateCap("invalid_firstname_format")) end if not checkNameFormat(data.lastname) then - return deferrals.done(TranslateCap('invalid_lastname_format')) + return deferrals.done(TranslateCap("invalid_lastname_format")) end if not checkDOBFormat(data.dateofbirth) then - return deferrals.done(TranslateCap('invalid_dob_format')) + return deferrals.done(TranslateCap("invalid_dob_format")) end if not checkSexFormat(data.sex) then - return deferrals.done(TranslateCap('invalid_sex_format')) + return deferrals.done(TranslateCap("invalid_sex_format")) end if not checkHeightFormat(data.height) then - return deferrals.done(TranslateCap('invalid_height_format')) + return deferrals.done(TranslateCap("invalid_height_format")) end playerIdentity[identifier] = { @@ -204,38 +202,39 @@ if Config.UseDeferrals then dateOfBirth = formatDate(data.dateofbirth), sex = data.sex, height = tonumber(data.height), - saveToDatabase = true + saveToDatabase = true, } deferrals.done() - end) + end + ) end end) else - deferrals.done(TranslateCap('no_identifier')) + deferrals.done(TranslateCap("no_identifier")) end end) - RegisterNetEvent('esx:playerLoaded') - AddEventHandler('esx:playerLoaded', function(_, xPlayer) + RegisterNetEvent("esx:playerLoaded") + AddEventHandler("esx:playerLoaded", function(_, xPlayer) if not playerIdentity[xPlayer.identifier] then - return xPlayer.kick(_('missing_identity')) + return xPlayer.kick(_("missing_identity")) end local currentIdentity = playerIdentity[xPlayer.identifier] - xPlayer.setName(('%s %s'):format(currentIdentity.firstName, currentIdentity.lastName)) - xPlayer.set('firstName', currentIdentity.firstName) - xPlayer.set('lastName', currentIdentity.lastName) - xPlayer.set('dateofbirth', currentIdentity.dateOfBirth) - xPlayer.set('sex', currentIdentity.sex) - xPlayer.set('height', currentIdentity.height) + xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName)) + xPlayer.set("firstName", currentIdentity.firstName) + xPlayer.set("lastName", currentIdentity.lastName) + xPlayer.set("dateofbirth", currentIdentity.dateOfBirth) + xPlayer.set("sex", currentIdentity.sex) + xPlayer.set("height", currentIdentity.height) if currentIdentity.saveToDatabase then saveIdentityToDatabase(xPlayer.identifier, currentIdentity) end Wait(0) alreadyRegistered[xPlayer.identifier] = true - TriggerClientEvent('esx_identity:alreadyRegistered', xPlayer.source) + TriggerClientEvent("esx_identity:alreadyRegistered", xPlayer.source) playerIdentity[xPlayer.identifier] = nil end) else @@ -245,13 +244,13 @@ else end local currentIdentity = playerIdentity[xPlayer.identifier] - xPlayer.setName(('%s %s'):format(currentIdentity.firstName, currentIdentity.lastName)) - xPlayer.set('firstName', currentIdentity.firstName) - xPlayer.set('lastName', currentIdentity.lastName) - xPlayer.set('dateofbirth', currentIdentity.dateOfBirth) - xPlayer.set('sex', currentIdentity.sex) - xPlayer.set('height', currentIdentity.height) - TriggerClientEvent('esx_identity:setPlayerData', xPlayer.source, currentIdentity) + xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName)) + xPlayer.set("firstName", currentIdentity.firstName) + xPlayer.set("lastName", currentIdentity.lastName) + xPlayer.set("dateofbirth", currentIdentity.dateOfBirth) + xPlayer.set("sex", currentIdentity.sex) + xPlayer.set("height", currentIdentity.height) + TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity) if currentIdentity.saveToDatabase then saveIdentityToDatabase(xPlayer.identifier, currentIdentity) end @@ -260,14 +259,14 @@ else end local function checkIdentity(xPlayer) - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { xPlayer.identifier }, function(result) + 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) + 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) + return TriggerClientEvent("esx_identity:showRegisterIdentity", xPlayer.source) end playerIdentity[xPlayer.identifier] = { @@ -275,25 +274,24 @@ else lastName = result.lastname, dateOfBirth = result.dateofbirth, sex = result.sex, - height = result.height + height = result.height, } alreadyRegistered[xPlayer.identifier] = true setIdentity(xPlayer) - end - ) + end) end if not multichar then - AddEventHandler('playerConnecting', function(_, _, deferrals) + AddEventHandler("playerConnecting", function(_, _, deferrals) deferrals.defer() local _, identifier = source, ESX.GetIdentifier(source) Wait(40) if not identifier then - return deferrals.done(TranslateCap('no_identifier')) + return deferrals.done(TranslateCap("no_identifier")) end - MySQL.single('SELECT firstname, lastname, dateofbirth, sex, height FROM users WHERE identifier = ?', { identifier }, function(result) + 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 @@ -310,7 +308,7 @@ else lastName = result.lastname, dateOfBirth = result.dateofbirth, sex = result.sex, - height = result.height + height = result.height, } alreadyRegistered[identifier] = true @@ -319,74 +317,76 @@ else end) end) - AddEventHandler('onResourceStart', function(resource) + AddEventHandler("onResourceStart", function(resource) if resource ~= GetCurrentResourceName() then return end Wait(300) - while not ESX do Wait(0) end + while not ESX do + Wait(0) + end local xPlayers = ESX.GetExtendedPlayers() - for i = 1, #(xPlayers) do + for i = 1, #xPlayers do if xPlayers[i] then checkIdentity(xPlayers[i]) end end end) - RegisterNetEvent('esx:playerLoaded', function(_, xPlayer) + RegisterNetEvent("esx:playerLoaded", function(_, xPlayer) local currentIdentity = playerIdentity[xPlayer.identifier] if currentIdentity and alreadyRegistered[xPlayer.identifier] then - xPlayer.setName(('%s %s'):format(currentIdentity.firstName, currentIdentity.lastName)) - xPlayer.set('firstName', currentIdentity.firstName) - xPlayer.set('lastName', currentIdentity.lastName) - xPlayer.set('dateofbirth', currentIdentity.dateOfBirth) - xPlayer.set('sex', currentIdentity.sex) - xPlayer.set('height', currentIdentity.height) - TriggerClientEvent('esx_identity:setPlayerData', xPlayer.source, currentIdentity) + xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName)) + xPlayer.set("firstName", currentIdentity.firstName) + xPlayer.set("lastName", currentIdentity.lastName) + xPlayer.set("dateofbirth", currentIdentity.dateOfBirth) + xPlayer.set("sex", currentIdentity.sex) + xPlayer.set("height", currentIdentity.height) + TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity) if currentIdentity.saveToDatabase then saveIdentityToDatabase(xPlayer.identifier, currentIdentity) end Wait(0) - TriggerClientEvent('esx_identity:alreadyRegistered', xPlayer.source) + TriggerClientEvent("esx_identity:alreadyRegistered", xPlayer.source) playerIdentity[xPlayer.identifier] = nil else - TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) + TriggerClientEvent("esx_identity:showRegisterIdentity", xPlayer.source) end end) end - ESX.RegisterServerCallback('esx_identity:registerIdentity', function(source, cb, data) + ESX.RegisterServerCallback("esx_identity:registerIdentity", function(source, cb, data) local xPlayer = ESX.GetPlayerFromId(source) if not checkNameFormat(data.firstname) then - TriggerClientEvent('esx:showNotification', source, TranslateCap('invalid_firstname_format'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("invalid_firstname_format"), "error") return cb(false) end if not checkNameFormat(data.lastname) then - TriggerClientEvent('esx:showNotification', source, TranslateCap('invalid_lastname_format'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("invalid_lastname_format"), "error") return cb(false) end if not checkSexFormat(data.sex) then - TriggerClientEvent('esx:showNotification', source, TranslateCap('invalid_sex_format'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("invalid_sex_format"), "error") return cb(false) end if not checkDOBFormat(data.dateofbirth) then - TriggerClientEvent('esx:showNotification', source, TranslateCap('invalid_dob_format'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("invalid_dob_format"), "error") return cb(false) end if not checkHeightFormat(data.height) then - TriggerClientEvent('esx:showNotification', source, TranslateCap('invalid_height_format'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("invalid_height_format"), "error") return cb(false) end if xPlayer then if alreadyRegistered[xPlayer.identifier] then - xPlayer.showNotification(TranslateCap('already_registered'), "error") + xPlayer.showNotification(TranslateCap("already_registered"), "error") return cb(false) end @@ -395,18 +395,18 @@ else lastName = formatName(data.lastname), dateOfBirth = formatDate(data.dateofbirth), sex = data.sex, - height = data.height + height = data.height, } local currentIdentity = playerIdentity[xPlayer.identifier] - xPlayer.setName(('%s %s'):format(currentIdentity.firstName, currentIdentity.lastName)) - xPlayer.set('firstName', currentIdentity.firstName) - xPlayer.set('lastName', currentIdentity.lastName) - xPlayer.set('dateofbirth', currentIdentity.dateOfBirth) - xPlayer.set('sex', currentIdentity.sex) - xPlayer.set('height', currentIdentity.height) - TriggerClientEvent('esx_identity:setPlayerData', xPlayer.source, currentIdentity) + xPlayer.setName(("%s %s"):format(currentIdentity.firstName, currentIdentity.lastName)) + xPlayer.set("firstName", currentIdentity.firstName) + xPlayer.set("lastName", currentIdentity.lastName) + xPlayer.set("dateofbirth", currentIdentity.dateOfBirth) + xPlayer.set("sex", currentIdentity.sex) + xPlayer.set("height", currentIdentity.height) + TriggerClientEvent("esx_identity:setPlayerData", xPlayer.source, currentIdentity) saveIdentityToDatabase(xPlayer.identifier, currentIdentity) alreadyRegistered[xPlayer.identifier] = true playerIdentity[xPlayer.identifier] = nil @@ -414,7 +414,7 @@ else end if not multichar then - TriggerClientEvent("esx:showNotification", source, TranslateCap('data_incorrect'), "error") + TriggerClientEvent("esx:showNotification", source, TranslateCap("data_incorrect"), "error") return cb(false) end @@ -430,92 +430,92 @@ else lastName = formattedLastName, dateOfBirth = formattedDate, sex = data.sex, - height = data.height + height = data.height, } - TriggerEvent('esx_identity:completedRegistration', source, data) - TriggerClientEvent('esx_identity:setPlayerData', source, Identity) + TriggerEvent("esx_identity:completedRegistration", source, data) + TriggerClientEvent("esx_identity:setPlayerData", source, Identity) cb(true) end) end if Config.EnableCommands then - ESX.RegisterCommand('char', 'user', function(xPlayer) + ESX.RegisterCommand("char", "user", function(xPlayer) if xPlayer and xPlayer.getName() then - xPlayer.showNotification(TranslateCap('active_character', xPlayer.getName())) + xPlayer.showNotification(TranslateCap("active_character", xPlayer.getName())) else - xPlayer.showNotification(TranslateCap('error_active_character')) + xPlayer.showNotification(TranslateCap("error_active_character")) end - end, false, { help = TranslateCap('show_active_character') }) + end, false, { help = TranslateCap("show_active_character") }) - ESX.RegisterCommand('chardel', 'user', function(xPlayer) + ESX.RegisterCommand("chardel", "user", function(xPlayer) if xPlayer and xPlayer.getName() then if Config.UseDeferrals then - xPlayer.kick(TranslateCap('deleted_identity')) + xPlayer.kick(TranslateCap("deleted_identity")) Wait(1500) deleteIdentity(xPlayer) - xPlayer.showNotification(TranslateCap('deleted_character')) + xPlayer.showNotification(TranslateCap("deleted_character")) playerIdentity[xPlayer.identifier] = nil alreadyRegistered[xPlayer.identifier] = false else deleteIdentity(xPlayer) - xPlayer.showNotification(TranslateCap('deleted_character')) + xPlayer.showNotification(TranslateCap("deleted_character")) playerIdentity[xPlayer.identifier] = nil alreadyRegistered[xPlayer.identifier] = false - TriggerClientEvent('esx_identity:showRegisterIdentity', xPlayer.source) + TriggerClientEvent("esx_identity:showRegisterIdentity", xPlayer.source) end else - xPlayer.showNotification(TranslateCap('error_delete_character')) + xPlayer.showNotification(TranslateCap("error_delete_character")) end - end, false, { help = TranslateCap('delete_character') }) + end, false, { help = TranslateCap("delete_character") }) end if Config.EnableDebugging then - ESX.RegisterCommand('xPlayerGetFirstName', 'user', function(xPlayer) - if xPlayer and xPlayer.get('firstName') then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_first_name', xPlayer.get('firstName'))) + ESX.RegisterCommand("xPlayerGetFirstName", "user", function(xPlayer) + if xPlayer and xPlayer.get("firstName") then + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_first_name", xPlayer.get("firstName"))) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_first_name')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_first_name")) end - end, false, { help = TranslateCap('debug_xPlayer_get_first_name') }) + end, false, { help = TranslateCap("debug_xPlayer_get_first_name") }) - ESX.RegisterCommand('xPlayerGetLastName', 'user', function(xPlayer) - if xPlayer and xPlayer.get('lastName') then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_last_name', xPlayer.get('lastName'))) + ESX.RegisterCommand("xPlayerGetLastName", "user", function(xPlayer) + if xPlayer and xPlayer.get("lastName") then + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_last_name", xPlayer.get("lastName"))) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_last_name')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_last_name")) end - end, false, { help = TranslateCap('debug_xPlayer_get_last_name') }) + end, false, { help = TranslateCap("debug_xPlayer_get_last_name") }) - ESX.RegisterCommand('xPlayerGetFullName', 'user', function(xPlayer) + ESX.RegisterCommand("xPlayerGetFullName", "user", function(xPlayer) if xPlayer and xPlayer.getName() then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_full_name', xPlayer.getName())) + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_full_name", xPlayer.getName())) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_full_name')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_full_name")) end - end, false, { help = TranslateCap('debug_xPlayer_get_full_name') }) + end, false, { help = TranslateCap("debug_xPlayer_get_full_name") }) - ESX.RegisterCommand('xPlayerGetSex', 'user', function(xPlayer) - if xPlayer and xPlayer.get('sex') then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_sex', xPlayer.get('sex'))) + ESX.RegisterCommand("xPlayerGetSex", "user", function(xPlayer) + if xPlayer and xPlayer.get("sex") then + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_sex", xPlayer.get("sex"))) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_sex')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_sex")) end - end, false, { help = TranslateCap('debug_xPlayer_get_sex') }) + end, false, { help = TranslateCap("debug_xPlayer_get_sex") }) - ESX.RegisterCommand('xPlayerGetDOB', 'user', function(xPlayer) - if xPlayer and xPlayer.get('dateofbirth') then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_dob', xPlayer.get('dateofbirth'))) + ESX.RegisterCommand("xPlayerGetDOB", "user", function(xPlayer) + if xPlayer and xPlayer.get("dateofbirth") then + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_dob", xPlayer.get("dateofbirth"))) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_dob')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_dob")) end - end, false, { help = TranslateCap('debug_xPlayer_get_dob') }) + end, false, { help = TranslateCap("debug_xPlayer_get_dob") }) - ESX.RegisterCommand('xPlayerGetHeight', 'user', function(xPlayer) - if xPlayer and xPlayer.get('height') then - xPlayer.showNotification(TranslateCap('return_debug_xPlayer_get_height', xPlayer.get('height'))) + ESX.RegisterCommand("xPlayerGetHeight", "user", function(xPlayer) + if xPlayer and xPlayer.get("height") then + xPlayer.showNotification(TranslateCap("return_debug_xPlayer_get_height", xPlayer.get("height"))) else - xPlayer.showNotification(TranslateCap('error_debug_xPlayer_get_height')) + xPlayer.showNotification(TranslateCap("error_debug_xPlayer_get_height")) end - end, false, { help = TranslateCap('debug_xPlayer_get_height') }) + end, false, { help = TranslateCap("debug_xPlayer_get_height") }) end diff --git a/[core]/esx_menu_default/client/main.lua b/[core]/esx_menu_default/client/main.lua index b1fbc586d..522d1a556 100644 --- a/[core]/esx_menu_default/client/main.lua +++ b/[core]/esx_menu_default/client/main.lua @@ -1,14 +1,14 @@ -local GUI, MenuType, OpenedMenus, CurrentNameSpace = {}, 'default', 0, nil +local GUI, MenuType, OpenedMenus, CurrentNameSpace = {}, "default", 0, nil GUI.Time = 0 local function openMenu(namespace, name, data) CurrentNameSpace = namespace OpenedMenus = OpenedMenus + 1 SendNUIMessage({ - action = 'openMenu', + action = "openMenu", namespace = namespace, name = name, - data = data + data = data, }) end @@ -19,13 +19,13 @@ local function closeMenu(namespace, name) OpenedMenus = 0 end SendNUIMessage({ - action = 'closeMenu', + action = "closeMenu", namespace = namespace, - name = name + name = name, }) end -AddEventHandler('onResourceStop', function(resource) +AddEventHandler("onResourceStop", function(resource) if GetCurrentResourceName() == resource and OpenedMenus > 0 then ESX.UI.Menu.CloseAll() elseif CurrentNameSpace ~= nil and CurrentNameSpace == resource and OpenedMenus > 0 then @@ -35,97 +35,97 @@ end) ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) -RegisterNUICallback('menu_submit', function(data, cb) +RegisterNUICallback("menu_submit", function(data, cb) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) if menu.submit ~= nil then menu.submit(data, menu) end - cb('OK') + cb("OK") end) -RegisterNUICallback('menu_cancel', function(data, cb) +RegisterNUICallback("menu_cancel", function(data, cb) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) if menu.cancel ~= nil then menu.cancel(data, menu) end - cb('OK') + cb("OK") end) -RegisterNUICallback('menu_change', function(data, cb) +RegisterNUICallback("menu_change", function(data, cb) local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) for i = 1, #data.elements, 1 do - menu.setElement(i, 'value', data.elements[i].value) + menu.setElement(i, "value", data.elements[i].value) if data.elements[i].selected then - menu.setElement(i, 'selected', true) + menu.setElement(i, "selected", true) else - menu.setElement(i, 'selected', false) + menu.setElement(i, "selected", false) end end if menu.change ~= nil then menu.change(data, menu) end - cb('OK') + cb("OK") end) -ESX.RegisterInput('menu_default_enter', 'Submit menu item', 'keyboard', 'RETURN', function() +ESX.RegisterInput("menu_default_enter", "Submit menu item", "keyboard", "RETURN", function() if OpenedMenus > 0 and (GetGameTimer() - GUI.Time) > 200 then SendNUIMessage({ - action = 'controlPressed', - control = 'ENTER' + action = "controlPressed", + control = "ENTER", }) GUI.Time = GetGameTimer() end end) -ESX.RegisterInput('menu_default_backspace', 'Close menu', 'keyboard', 'BACK', function() +ESX.RegisterInput("menu_default_backspace", "Close menu", "keyboard", "BACK", function() if OpenedMenus > 0 then SendNUIMessage({ - action = 'controlPressed', - control = 'BACKSPACE' + action = "controlPressed", + control = "BACKSPACE", }) GUI.Time = GetGameTimer() end end) -ESX.RegisterInput('menu_default_top', 'Change menu focus to top item', 'keyboard', 'UP', function() +ESX.RegisterInput("menu_default_top", "Change menu focus to top item", "keyboard", "UP", function() if OpenedMenus > 0 then SendNUIMessage({ - action = 'controlPressed', - control = 'TOP' + action = "controlPressed", + control = "TOP", }) GUI.Time = GetGameTimer() end end) -ESX.RegisterInput('menu_default_down', 'Change menu focus to down item', 'keyboard', 'DOWN', function() +ESX.RegisterInput("menu_default_down", "Change menu focus to down item", "keyboard", "DOWN", function() if OpenedMenus > 0 then SendNUIMessage({ - action = 'controlPressed', - control = 'DOWN' + action = "controlPressed", + control = "DOWN", }) GUI.Time = GetGameTimer() end end) -ESX.RegisterInput('menu_default_left', 'Change menu slider to left', 'keyboard', 'LEFT', function() +ESX.RegisterInput("menu_default_left", "Change menu slider to left", "keyboard", "LEFT", function() if OpenedMenus > 0 then SendNUIMessage({ - action = 'controlPressed', - control = 'LEFT' + action = "controlPressed", + control = "LEFT", }) GUI.Time = GetGameTimer() end end) -ESX.RegisterInput('menu_default_right', 'Change menu slider to right', 'keyboard', 'RIGHT', function() +ESX.RegisterInput("menu_default_right", "Change menu slider to right", "keyboard", "RIGHT", function() if OpenedMenus > 0 then SendNUIMessage({ - action = 'controlPressed', - control = 'RIGHT' + action = "controlPressed", + control = "RIGHT", }) GUI.Time = GetGameTimer() end diff --git a/[core]/esx_menu_dialog/client/main.lua b/[core]/esx_menu_dialog/client/main.lua index d9aab2ccb..aee38864d 100644 --- a/[core]/esx_menu_dialog/client/main.lua +++ b/[core]/esx_menu_dialog/client/main.lua @@ -1,80 +1,80 @@ -local Timeouts, OpenedMenus, MenuType = {}, {}, 'dialog' +local Timeouts, OpenedMenus, MenuType = {}, {}, "dialog" local function openMenu(namespace, name, data) - for i = 1, #Timeouts, 1 do - ESX.ClearTimeout(Timeouts[i]) - end + for i = 1, #Timeouts, 1 do + ESX.ClearTimeout(Timeouts[i]) + end - OpenedMenus[namespace .. '_' .. name] = true + OpenedMenus[namespace .. "_" .. name] = true - SendNUIMessage({ - action = 'openMenu', - namespace = namespace, - name = name, - data = data - }) + SendNUIMessage({ + action = "openMenu", + namespace = namespace, + name = name, + data = data, + }) - local timeoutId = ESX.SetTimeout(200, function() - SetNuiFocus(true, true) - end) + local timeoutId = ESX.SetTimeout(200, function() + SetNuiFocus(true, true) + end) - table.insert(Timeouts, timeoutId) + table.insert(Timeouts, timeoutId) end local function closeMenu(namespace, name) - OpenedMenus[namespace .. '_' .. name] = nil + OpenedMenus[namespace .. "_" .. name] = nil - SendNUIMessage({ - action = 'closeMenu', - namespace = namespace, - name = name, - }) + SendNUIMessage({ + action = "closeMenu", + namespace = namespace, + name = name, + }) - if not next(OpenedMenus) then - SetNuiFocus(false) - end + if not next(OpenedMenus) then + SetNuiFocus(false) + end end ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) -AddEventHandler('esx_menu_dialog:message:menu_submit', function(data) - local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - local cancel = false - - if menu.submit then - -- is the submitted data a number? - if tonumber(data.value) then - data.value = ESX.Math.Round(tonumber(data.value)) - - -- check for negative value - if tonumber(data.value) <= 0 then - cancel = true - end - end - - data.value = ESX.Math.Trim(data.value) - - -- don't submit if the value is negative or if it's 0 - if cancel then - ESX.ShowNotification('That input is not allowed!') - else - menu.submit(data, menu) - end - end +AddEventHandler("esx_menu_dialog:message:menu_submit", function(data) + local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) + local cancel = false + + if menu.submit then + -- is the submitted data a number? + if tonumber(data.value) then + data.value = ESX.Math.Round(tonumber(data.value)) + + -- check for negative value + if tonumber(data.value) <= 0 then + cancel = true + end + end + + data.value = ESX.Math.Trim(data.value) + + -- don't submit if the value is negative or if it's 0 + if cancel then + ESX.ShowNotification("That input is not allowed!") + else + menu.submit(data, menu) + end + end end) -AddEventHandler('esx_menu_dialog:message:menu_cancel', function(data) - local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) +AddEventHandler("esx_menu_dialog:message:menu_cancel", function(data) + local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - if menu.cancel ~= nil then - menu.cancel(data, menu) - end + if menu.cancel ~= nil then + menu.cancel(data, menu) + end end) -AddEventHandler('esx_menu_dialog:message:menu_change', function(data) - local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) +AddEventHandler("esx_menu_dialog:message:menu_change", function(data) + local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - if menu.change ~= nil then - menu.change(data, menu) - end + if menu.change ~= nil then + menu.change(data, menu) + end end) diff --git a/[core]/esx_menu_list/client/main.lua b/[core]/esx_menu_list/client/main.lua index 6b21b2e4f..ba2b3793e 100644 --- a/[core]/esx_menu_list/client/main.lua +++ b/[core]/esx_menu_list/client/main.lua @@ -1,59 +1,59 @@ CreateThread(function() - local MenuType = 'list' - local OpenedMenus = {} - - local function openMenu(namespace, name, data) - OpenedMenus[namespace .. '_' .. name] = true - - SendNUIMessage({ - action = 'openMenu', - namespace = namespace, - name = name, - data = data - }) - SetTimeout(200, function() - SetNuiFocus(true, true) - end) - end - - local function closeMenu(namespace, name) - OpenedMenus[namespace .. '_' .. name] = nil - local OpenedMenuCount = 0 - - SendNUIMessage({ - action = 'closeMenu', - namespace = namespace, - name = name, - }) - - for _, v in pairs(OpenedMenus) do - if v then - OpenedMenuCount = OpenedMenuCount + 1 - end - end - - if OpenedMenuCount == 0 then - SetNuiFocus(false) - end - end - - ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) - - RegisterNUICallback('menu_submit', function(data, cb) - local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - if menu.submit then - menu.submit(data, menu) - end - cb('OK') - end) - - RegisterNUICallback('menu_cancel', function(data, cb) - local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) - - if menu.cancel ~= nil then - menu.cancel(data, menu) - end - - cb('OK') - end) + local MenuType = "list" + local OpenedMenus = {} + + local function openMenu(namespace, name, data) + OpenedMenus[namespace .. "_" .. name] = true + + SendNUIMessage({ + action = "openMenu", + namespace = namespace, + name = name, + data = data, + }) + SetTimeout(200, function() + SetNuiFocus(true, true) + end) + end + + local function closeMenu(namespace, name) + OpenedMenus[namespace .. "_" .. name] = nil + local OpenedMenuCount = 0 + + SendNUIMessage({ + action = "closeMenu", + namespace = namespace, + name = name, + }) + + for _, v in pairs(OpenedMenus) do + if v then + OpenedMenuCount = OpenedMenuCount + 1 + end + end + + if OpenedMenuCount == 0 then + SetNuiFocus(false) + end + end + + ESX.UI.Menu.RegisterType(MenuType, openMenu, closeMenu) + + RegisterNUICallback("menu_submit", function(data, cb) + local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) + if menu.submit then + menu.submit(data, menu) + end + cb("OK") + end) + + RegisterNUICallback("menu_cancel", function(data, cb) + local menu = ESX.UI.Menu.GetOpened(MenuType, data._namespace, data._name) + + if menu.cancel ~= nil then + menu.cancel(data, menu) + end + + cb("OK") + end) end) diff --git a/[core]/esx_multicharacter/client/main.lua b/[core]/esx_multicharacter/client/main.lua index 4b30bb03f..556ccfe37 100644 --- a/[core]/esx_multicharacter/client/main.lua +++ b/[core]/esx_multicharacter/client/main.lua @@ -4,337 +4,361 @@ 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) + CreateThread(function() + while not ESX.PlayerLoaded do + Wait(100) - if NetworkIsPlayerActive(PlayerId()) then - exports.spawnmanager:setAutoSpawn(false) - DoScreenFadeOut(0) - while GetResourceState('esx_context') ~= 'started' do - Wait(100) - end - TriggerEvent("esx_multicharacter:SetupCharacters") - break - end - end - end) + if NetworkIsPlayerActive(PlayerId()) then + exports.spawnmanager:setAutoSpawn(false) + DoScreenFadeOut(0) + while GetResourceState("esx_context") ~= "started" do + Wait(100) + end + TriggerEvent("esx_multicharacter:SetupCharacters") + break + end + end + end) - local canRelog, cam, spawned = true, nil, nil - local Characters = {} + local canRelog, cam, spawned = true, nil, nil + local Characters = {} - RegisterNetEvent('esx_multicharacter:SetupCharacters') - AddEventHandler('esx_multicharacter:SetupCharacters', function() - ESX.PlayerLoaded = false - ESX.PlayerData = {} - spawned = false - cam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true) - local playerPed = PlayerPedId() - SetEntityCoords(playerPed, SpawnCoords.x, SpawnCoords.y, SpawnCoords.z, true, false, false, false) - SetEntityHeading(playerPed, SpawnCoords.w) - local offset = GetOffsetFromEntityInWorldCoords(playerPed, 0, 1.7, 0.4) - DoScreenFadeOut(0) - SetCamActive(cam, true) - RenderScriptCams(true, false, 1, true, true) - SetCamCoord(cam, offset.x, offset.y, offset.z) - PointCamAtCoord(cam, SpawnCoords.x, SpawnCoords.y, SpawnCoords.z + 1.3) - StartLoop() - ShutdownLoadingScreen() - ShutdownLoadingScreenNui() - TriggerEvent('esx:loadingScreenOff') - Wait(200) - TriggerServerEvent("esx_multicharacter:SetupCharacters") - end) + RegisterNetEvent("esx_multicharacter:SetupCharacters") + AddEventHandler("esx_multicharacter:SetupCharacters", function() + ESX.PlayerLoaded = false + ESX.PlayerData = {} + spawned = false + cam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true) + local playerPed = PlayerPedId() + SetEntityCoords(playerPed, SpawnCoords.x, SpawnCoords.y, SpawnCoords.z, true, false, false, false) + SetEntityHeading(playerPed, SpawnCoords.w) + local offset = GetOffsetFromEntityInWorldCoords(playerPed, 0, 1.7, 0.4) + DoScreenFadeOut(0) + SetCamActive(cam, true) + RenderScriptCams(true, false, 1, true, true) + SetCamCoord(cam, offset.x, offset.y, offset.z) + PointCamAtCoord(cam, SpawnCoords.x, SpawnCoords.y, SpawnCoords.z + 1.3) + StartLoop() + ShutdownLoadingScreen() + ShutdownLoadingScreenNui() + TriggerEvent("esx:loadingScreenOff") + Wait(200) + TriggerServerEvent("esx_multicharacter:SetupCharacters") + end) - StartLoop = function() - hidePlayers = true - MumbleSetVolumeOverride(PlayerId(), 0.0) - CreateThread(function() - local keys = { 18, 27, 172, 173, 174, 175, 176, 177, 187, 188, 191, 201, 108, 109, 209, 19 } - while hidePlayers do - DisableAllControlActions(0) - for i = 1, #keys do - EnableControlAction(0, keys[i], true) - end - SetEntityVisible(PlayerPedId(), 0, 0) - SetLocalPlayerVisibleLocally(1) - SetPlayerInvincible(PlayerId(), 1) - ThefeedHideThisFrame() - HideHudComponentThisFrame(11) - HideHudComponentThisFrame(12) - HideHudComponentThisFrame(21) - HideHudAndRadarThisFrame() - Wait(0) - local vehicles = GetGamePool('CVehicle') - for i = 1, #vehicles do - SetEntityLocallyInvisible(vehicles[i]) - end - end - local playerId, playerPed = PlayerId(), PlayerPedId() - MumbleSetVolumeOverride(playerId, -1.0) - SetEntityVisible(playerPed, 1, 0) - SetPlayerInvincible(playerId, 0) - FreezeEntityPosition(playerPed, false) - Wait(10000) - canRelog = true - end) - CreateThread(function() - local playerPool = {} - while hidePlayers do - local players = GetActivePlayers() - for i = 1, #players do - local player = players[i] - if player ~= PlayerId() and not playerPool[player] then - playerPool[player] = true - NetworkConcealPlayer(player, true, true) - end - end - Wait(500) - end - for k in pairs(playerPool) do - NetworkConcealPlayer(k, false, false) - end - end) - end + StartLoop = function() + hidePlayers = true + MumbleSetVolumeOverride(PlayerId(), 0.0) + CreateThread(function() + local keys = { 18, 27, 172, 173, 174, 175, 176, 177, 187, 188, 191, 201, 108, 109, 209, 19 } + while hidePlayers do + DisableAllControlActions(0) + for i = 1, #keys do + EnableControlAction(0, keys[i], true) + end + SetEntityVisible(PlayerPedId(), 0, 0) + SetLocalPlayerVisibleLocally(1) + SetPlayerInvincible(PlayerId(), 1) + ThefeedHideThisFrame() + HideHudComponentThisFrame(11) + HideHudComponentThisFrame(12) + HideHudComponentThisFrame(21) + HideHudAndRadarThisFrame() + Wait(0) + local vehicles = GetGamePool("CVehicle") + for i = 1, #vehicles do + SetEntityLocallyInvisible(vehicles[i]) + end + end + local playerId, playerPed = PlayerId(), PlayerPedId() + MumbleSetVolumeOverride(playerId, -1.0) + SetEntityVisible(playerPed, 1, 0) + SetPlayerInvincible(playerId, 0) + FreezeEntityPosition(playerPed, false) + Wait(10000) + canRelog = true + end) + CreateThread(function() + local playerPool = {} + while hidePlayers do + local players = GetActivePlayers() + for i = 1, #players do + local player = players[i] + if player ~= PlayerId() and not playerPool[player] then + playerPool[player] = true + NetworkConcealPlayer(player, true, true) + end + end + Wait(500) + end + for k in pairs(playerPool) do + NetworkConcealPlayer(k, false, false) + end + end) + end - SetupCharacter = function(index) - if not spawned then - exports.spawnmanager:spawnPlayer({ - x = SpawnCoords.x, - y = SpawnCoords.y, - z = SpawnCoords.z, - heading = SpawnCoords.w, - model = Characters[index].model or mp_m_freemode_01, - skipFade = true - }, function() - canRelog = false - if Characters[index] then - local skin = Characters[index].skin or Config.Default - if not Characters[index].model then - if Characters[index].sex == TranslateCap('female') then skin.sex = 1 else skin.sex = 0 end - end - TriggerEvent('skinchanger:loadSkin', skin) - end - DoScreenFadeIn(600) - end) - 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) - while not HasModelLoaded(Characters[index].model) do - RequestModel(Characters[index].model) - Wait(0) - end - SetPlayerModel(PlayerId(), Characters[index].model) - SetModelAsNoLongerNeeded(Characters[index].model) - end - TriggerEvent('skinchanger:loadSkin', Characters[index].skin) - end - spawned = index - local playerPed = PlayerPedId() - FreezeEntityPosition(PlayerPedId(), true) - SetPedAoBlobRendering(playerPed, true) - SetEntityAlpha(playerPed, 255) - SendNUIMessage({ - action = "openui", - character = Characters[spawned] - }) - end + SetupCharacter = function(index) + if not spawned then + exports.spawnmanager:spawnPlayer({ + x = SpawnCoords.x, + y = SpawnCoords.y, + z = SpawnCoords.z, + heading = SpawnCoords.w, + model = Characters[index].model or mp_m_freemode_01, + skipFade = true, + }, function() + canRelog = false + if Characters[index] then + local skin = Characters[index].skin or Config.Default + if not Characters[index].model then + if Characters[index].sex == TranslateCap("female") then + skin.sex = 1 + else + skin.sex = 0 + end + end + TriggerEvent("skinchanger:loadSkin", skin) + end + DoScreenFadeIn(600) + end) + 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) + while not HasModelLoaded(Characters[index].model) do + RequestModel(Characters[index].model) + Wait(0) + end + SetPlayerModel(PlayerId(), Characters[index].model) + SetModelAsNoLongerNeeded(Characters[index].model) + end + TriggerEvent("skinchanger:loadSkin", Characters[index].skin) + end + spawned = index + local playerPed = PlayerPedId() + FreezeEntityPosition(PlayerPedId(), true) + SetPedAoBlobRendering(playerPed, true) + SetEntityAlpha(playerPed, 255) + SendNUIMessage({ + action = "openui", + character = Characters[spawned], + }) + end - 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" } - } + 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" }, + } - ESX.OpenContext("left", elements, function(_, Action) - if Action.action == "delete" then - ESX.CloseContext() - TriggerServerEvent('esx_multicharacter:DeleteCharacter', Action.value) - spawned = false - elseif Action.action == "return" then - CharacterOptions(Characters, slots, SelectedCharacter) - end - end, nil, false) - end + ESX.OpenContext("left", elements, function(_, Action) + if Action.action == "delete" then + ESX.CloseContext() + TriggerServerEvent("esx_multicharacter:DeleteCharacter", Action.value) + spawned = false + elseif Action.action == "return" then + CharacterOptions(Characters, slots, SelectedCharacter) + end + end, nil, false) + 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" } } - 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 } - else - 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 - ESX.OpenContext("left", elements, function(_, Action) - if Action.action == "play" then - SendNUIMessage({ - action = "closeui" - }) - ESX.CloseContext() - TriggerServerEvent('esx_multicharacter:CharacterChosen', Action.value, false) - elseif Action.action == "delete" then - CharacterDeleteConfirmation(Characters, slots, SelectedCharacter, Action.value) - elseif Action.action == "return" then - SelectCharacterMenu(Characters, slots) - end - end, nil, false) - 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" }, + } + 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 } + else + 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 + ESX.OpenContext("left", elements, function(_, Action) + if Action.action == "play" then + SendNUIMessage({ + action = "closeui", + }) + ESX.CloseContext() + TriggerServerEvent("esx_multicharacter:CharacterChosen", Action.value, false) + elseif Action.action == "delete" then + CharacterDeleteConfirmation(Characters, slots, SelectedCharacter, Action.value) + elseif Action.action == "return" then + SelectCharacterMenu(Characters, slots) + end + end, nil, false) + end - 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 } } - 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 - if Characters[k].disabled then - 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 } - end - end - if #elements - 1 < slots then - elements[#elements + 1] = { title = TranslateCap('create_char'), icon = "fa-solid fa-plus", value = (#elements + 1), new = true } - end + 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 } } + 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 + if Characters[k].disabled then + 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 } + end + end + if #elements - 1 < slots then + elements[#elements + 1] = { title = TranslateCap("create_char"), icon = "fa-solid fa-plus", value = (#elements + 1), new = true } + end - ESX.OpenContext("left", elements, function(_, SelectedCharacter) - if SelectedCharacter.new then - ESX.CloseContext() - local GetSlot = function() - for i = 1, slots do - if not Characters[i] then - return i - end - end - end - local slot = GetSlot() - TriggerServerEvent('esx_multicharacter:CharacterChosen', slot, true) - TriggerEvent('esx_identity:showRegisterIdentity') - local playerPed = PlayerPedId() - SetPedAoBlobRendering(playerPed, false) - SetEntityAlpha(playerPed, 0) - SendNUIMessage({ - action = "closeui" - }) - else - CharacterOptions(Characters, slots, SelectedCharacter) - SetupCharacter(SelectedCharacter.value) - local playerPed = PlayerPedId() - SetPedAoBlobRendering(playerPed, true) - ResetEntityAlpha(playerPed) - end - end, nil, false) - end + ESX.OpenContext("left", elements, function(_, SelectedCharacter) + if SelectedCharacter.new then + ESX.CloseContext() + local GetSlot = function() + for i = 1, slots do + if not Characters[i] then + return i + end + end + end + local slot = GetSlot() + TriggerServerEvent("esx_multicharacter:CharacterChosen", slot, true) + TriggerEvent("esx_identity:showRegisterIdentity") + local playerPed = PlayerPedId() + SetPedAoBlobRendering(playerPed, false) + SetEntityAlpha(playerPed, 0) + SendNUIMessage({ + action = "closeui", + }) + else + CharacterOptions(Characters, slots, SelectedCharacter) + SetupCharacter(SelectedCharacter.value) + local playerPed = PlayerPedId() + SetPedAoBlobRendering(playerPed, true) + ResetEntityAlpha(playerPed) + end + end, nil, false) + end - RegisterNetEvent('esx_multicharacter:SetupUI') - AddEventHandler('esx_multicharacter:SetupUI', function(data, slots) - DoScreenFadeOut(0) - Characters = data - slots = slots - local Character = next(Characters) - exports.spawnmanager:forceRespawn() + RegisterNetEvent("esx_multicharacter:SetupUI") + AddEventHandler("esx_multicharacter:SetupUI", function(data, slots) + DoScreenFadeOut(0) + Characters = data + slots = slots + local Character = next(Characters) + exports.spawnmanager:forceRespawn() - if not Character then - SendNUIMessage({ - action = "closeui" - }) - exports.spawnmanager:spawnPlayer({ - x = SpawnCoords.x, - y = SpawnCoords.y, - z = SpawnCoords.z, - heading = SpawnCoords.w, - model = mp_m_freemode_01, - skipFade = true - }, function() - canRelog = false - DoScreenFadeIn(400) - Wait(400) - local playerPed = PlayerPedId() - SetPedAoBlobRendering(playerPed, false) - SetEntityAlpha(playerPed, 0) - TriggerServerEvent('esx_multicharacter:CharacterChosen', 1, true) - TriggerEvent('esx_identity:showRegisterIdentity') - end) - else - SelectCharacterMenu(Characters, slots) - end - end) + if not Character then + SendNUIMessage({ + action = "closeui", + }) + exports.spawnmanager:spawnPlayer({ + x = SpawnCoords.x, + y = SpawnCoords.y, + z = SpawnCoords.z, + heading = SpawnCoords.w, + model = mp_m_freemode_01, + skipFade = true, + }, function() + canRelog = false + DoScreenFadeIn(400) + Wait(400) + local playerPed = PlayerPedId() + SetPedAoBlobRendering(playerPed, false) + SetEntityAlpha(playerPed, 0) + TriggerServerEvent("esx_multicharacter:CharacterChosen", 1, true) + TriggerEvent("esx_identity:showRegisterIdentity") + end) + else + SelectCharacterMenu(Characters, slots) + end + end) - RegisterNetEvent('esx:playerLoaded') - AddEventHandler('esx:playerLoaded', function(playerData, isNew, skin) - local spawn = playerData.coords or Config.Spawn - if isNew or not skin or #skin == 1 then - local finished = false - skin = Config.Default[playerData.sex] - skin.sex = playerData.sex == "m" and 0 or 1 - local model = skin.sex == 0 and mp_m_freemode_01 or mp_f_freemode_01 - RequestModel(model) - while not HasModelLoaded(model) do - RequestModel(model) - Wait(0) - end - SetPlayerModel(PlayerId(), model) - SetModelAsNoLongerNeeded(model) - TriggerEvent('skinchanger:loadSkin', skin, function() - local playerPed = PlayerPedId() - SetPedAoBlobRendering(playerPed, true) - ResetEntityAlpha(playerPed) - TriggerEvent('esx_skin:openSaveableMenu', function() - finished = true - end, function() - finished = true - end) - end) - repeat Wait(200) until finished - end + RegisterNetEvent("esx:playerLoaded") + AddEventHandler("esx:playerLoaded", function(playerData, isNew, skin) + local spawn = playerData.coords or Config.Spawn + if isNew or not skin or #skin == 1 then + local finished = false + skin = Config.Default[playerData.sex] + skin.sex = playerData.sex == "m" and 0 or 1 + local model = skin.sex == 0 and mp_m_freemode_01 or mp_f_freemode_01 + RequestModel(model) + while not HasModelLoaded(model) do + RequestModel(model) + Wait(0) + end + SetPlayerModel(PlayerId(), model) + SetModelAsNoLongerNeeded(model) + TriggerEvent("skinchanger:loadSkin", skin, function() + local playerPed = PlayerPedId() + SetPedAoBlobRendering(playerPed, true) + ResetEntityAlpha(playerPed) + TriggerEvent("esx_skin:openSaveableMenu", function() + finished = true + end, function() + finished = true + end) + end) + repeat + Wait(200) + until finished + end DoScreenFadeOut(750) - Wait(750) + Wait(750) - SetCamActive(cam, false) - RenderScriptCams(false, false, 0, true, true) - cam = nil - local playerPed = PlayerPedId() - FreezeEntityPosition(playerPed, true) - SetEntityCoordsNoOffset(playerPed, spawn.x, spawn.y, spawn.z, false, false, false, true) - SetEntityHeading(playerPed, spawn.heading) - if not isNew then TriggerEvent('skinchanger:loadSkin', skin or Characters[spawned].skin) end + SetCamActive(cam, false) + RenderScriptCams(false, false, 0, true, true) + cam = nil + local playerPed = PlayerPedId() + FreezeEntityPosition(playerPed, true) + SetEntityCoordsNoOffset(playerPed, spawn.x, spawn.y, spawn.z, false, false, false, true) + SetEntityHeading(playerPed, spawn.heading) + if not isNew then + TriggerEvent("skinchanger:loadSkin", skin or Characters[spawned].skin) + end Wait(500) - DoScreenFadeIn(750) - Wait(750) + DoScreenFadeIn(750) + Wait(750) - repeat Wait(200) until not IsScreenFadedOut() - TriggerServerEvent('esx:onPlayerSpawn') - TriggerEvent('esx:onPlayerSpawn') - TriggerEvent('playerSpawned') - TriggerEvent('esx:restoreLoadout') - Characters, hidePlayers = {}, false - end) + repeat + Wait(200) + until not IsScreenFadedOut() + TriggerServerEvent("esx:onPlayerSpawn") + TriggerEvent("esx:onPlayerSpawn") + TriggerEvent("playerSpawned") + TriggerEvent("esx:restoreLoadout") + Characters, hidePlayers = {}, false + end) - RegisterNetEvent('esx:onPlayerLogout') - AddEventHandler('esx:onPlayerLogout', function() - DoScreenFadeOut(500) - Wait(1000) - spawned = false - TriggerEvent("esx_multicharacter:SetupCharacters") - TriggerEvent('esx_skin:resetFirstSpawn') - end) + RegisterNetEvent("esx:onPlayerLogout") + AddEventHandler("esx:onPlayerLogout", function() + DoScreenFadeOut(500) + Wait(1000) + spawned = false + TriggerEvent("esx_multicharacter:SetupCharacters") + TriggerEvent("esx_skin:resetFirstSpawn") + end) - if Config.Relog then - RegisterCommand('relog', function() - if canRelog then - canRelog = false - TriggerServerEvent('esx_multicharacter:relog') - ESX.SetTimeout(10000, function() - canRelog = true - end) - end - end) - end + if Config.Relog then + RegisterCommand("relog", function() + if canRelog then + canRelog = false + TriggerServerEvent("esx_multicharacter:relog") + ESX.SetTimeout(10000, function() + canRelog = true + end) + end + end) + end end diff --git a/[core]/esx_multicharacter/config.lua b/[core]/esx_multicharacter/config.lua index 0be7164b2..8e5267bfe 100644 --- a/[core]/esx_multicharacter/config.lua +++ b/[core]/esx_multicharacter/config.lua @@ -1,225 +1,225 @@ Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config.Locale = GetConvar("esx:locale", "en") -- Allows players to delete their characters Config.CanDelete = true if IsDuplicityVersion() then - -- This is the default number of slots for EVERY player - -- If you want to manage extra slots for specific players you can do it by using '/setslots' and '/remslots' commands - Config.Slots = 4 - -------------------- + -- This is the default number of slots for EVERY player + -- If you want to manage extra slots for specific players you can do it by using '/setslots' and '/remslots' commands + Config.Slots = 4 + -------------------- - -- Text to prepend to each character (char#:identifier) - keep it short - Config.Prefix = 'char' + -- Text to prepend to each character (char#:identifier) - keep it short + Config.Prefix = "char" else - -- Sets the location for the character selection scene - -- To set the spawn location for new characters, modify the default value in the users SQL table - Config.Spawn = { - { x = -284.2856, y = 562.4627, z = 172.9182, heading = 19.9895 }, - } - -------------------- + -- Sets the location for the character selection scene + -- To set the spawn location for new characters, modify the default value in the users SQL table + Config.Spawn = { + { x = -284.2856, y = 562.4627, z = 172.9182, heading = 19.9895 }, + } + -------------------- - -- Do not use unless you are prepared to adjust your resources to correctly reset data - -- Information: https://github.com/thelindat/esx_multicharacter#relogging - Config.Relog = true - -------------------- + -- Do not use unless you are prepared to adjust your resources to correctly reset data + -- Information: https://github.com/thelindat/esx_multicharacter#relogging + Config.Relog = true + -------------------- - -- Default appearance for new characters - Config.Default = { - ["m"] = { - mom = 43, - dad = 29, - face_md_weight = 61, - skin_md_weight = 27, - nose_1 = -5, - nose_2 = 6, - nose_3 = 5, - nose_4 = 8, - nose_5 = 10, - nose_6 = 0, - cheeks_1 = 2, - cheeks_2 = -10, - cheeks_3 = 6, - lip_thickness = -2, - jaw_1 = 0, - jaw_2 = 0, - chin_1 = 0, - chin_2 = 0, - chin_13 = 0, - chin_4 = 0, - neck_thickness = 0, - hair_1 = 76, - hair_2 = 0, - hair_color_1 = 61, - hair_color_2 = 29, - tshirt_1 = 4, - tshirt_2 = 2, - torso_1 = 23, - torso_2 = 2, - decals_1 = 0, - decals_2 = 0, - arms = 1, - arms_2 = 0, - pants_1 = 28, - pants_2 = 3, - shoes_1 = 70, - shoes_2 = 2, - mask_1 = 0, - mask_2 = 0, - bproof_1 = 0, - bproof_2 = 0, - chain_1 = 22, - chain_2 = 2, - helmet_1 = -1, - helmet_2 = 0, - glasses_1 = 0, - glasses_2 = 0, - watches_1 = -1, - watches_2 = 0, - bracelets_1 = -1, - bracelets_2 = 0, - bags_1 = 0, - bags_2 = 0, - eye_color = 0, - eye_squint = 0, - eyebrows_2 = 0, - eyebrows_1 = 0, - eyebrows_3 = 0, - eyebrows_4 = 0, - eyebrows_5 = 0, - eyebrows_6 = 0, - makeup_1 = 0, - makeup_2 = 0, - makeup_3 = 0, - makeup_4 = 0, - lipstick_1 = 0, - lipstick_2 = 0, - lipstick_3 = 0, - lipstick_4 = 0, - ears_1 = -1, - ears_2 = 0, - chest_1 = 0, - chest_2 = 0, - chest_3 = 0, - bodyb_1 = -1, - bodyb_2 = 0, - bodyb_3 = -1, - bodyb_4 = 0, - age_1 = 0, - age_2 = 0, - blemishes_1 = 0, - blemishes_2 = 0, - blush_1 = 0, - blush_2 = 0, - blush_3 = 0, - complexion_1 = 0, - complexion_2 = 0, - sun_1 = 0, - sun_2 = 0, - moles_1 = 0, - moles_2 = 0, - beard_1 = 11, - beard_2 = 10, - beard_3 = 0, - beard_4 = 0 - }, - ["f"] = { - mom = 28, - dad = 6, - face_md_weight = 63, - skin_md_weight = 60, - nose_1 = -10, - nose_2 = 4, - nose_3 = 5, - nose_4 = 0, - nose_5 = 0, - nose_6 = 0, - cheeks_1 = 0, - cheeks_2 = 0, - cheeks_3 = 0, - lip_thickness = 0, - jaw_1 = 0, - jaw_2 = 0, - chin_1 = -10, - chin_2 = 10, - chin_13 = -10, - chin_4 = 0, - neck_thickness = -5, - hair_1 = 43, - hair_2 = 0, - hair_color_1 = 29, - hair_color_2 = 35, - tshirt_1 = 111, - tshirt_2 = 5, - torso_1 = 25, - torso_2 = 2, - decals_1 = 0, - decals_2 = 0, - arms = 3, - arms_2 = 0, - pants_1 = 12, - pants_2 = 2, - shoes_1 = 20, - shoes_2 = 10, - mask_1 = 0, - mask_2 = 0, - bproof_1 = 0, - bproof_2 = 0, - chain_1 = 85, - chain_2 = 0, - helmet_1 = -1, - helmet_2 = 0, - glasses_1 = 33, - glasses_2 = 12, - watches_1 = -1, - watches_2 = 0, - bracelets_1 = -1, - bracelets_2 = 0, - bags_1 = 0, - bags_2 = 0, - eye_color = 8, - eye_squint = -6, - eyebrows_2 = 7, - eyebrows_1 = 32, - eyebrows_3 = 52, - eyebrows_4 = 9, - eyebrows_5 = -5, - eyebrows_6 = -8, - makeup_1 = 0, - makeup_2 = 0, - makeup_3 = 0, - makeup_4 = 0, - lipstick_1 = 0, - lipstick_2 = 0, - lipstick_3 = 0, - lipstick_4 = 0, - ears_1 = -1, - ears_2 = 0, - chest_1 = 0, - chest_2 = 0, - chest_3 = 0, - bodyb_1 = -1, - bodyb_2 = 0, - bodyb_3 = -1, - bodyb_4 = 0, - age_1 = 0, - age_2 = 0, - blemishes_1 = 0, - blemishes_2 = 0, - blush_1 = 0, - blush_2 = 0, - blush_3 = 0, - complexion_1 = 0, - complexion_2 = 0, - sun_1 = 0, - sun_2 = 0, - moles_1 = 12, - moles_2 = 8, - beard_1 = 0, - beard_2 = 0, - beard_3 = 0, - beard_4 = 0 - } - } + -- Default appearance for new characters + Config.Default = { + ["m"] = { + mom = 43, + dad = 29, + face_md_weight = 61, + skin_md_weight = 27, + nose_1 = -5, + nose_2 = 6, + nose_3 = 5, + nose_4 = 8, + nose_5 = 10, + nose_6 = 0, + cheeks_1 = 2, + cheeks_2 = -10, + cheeks_3 = 6, + lip_thickness = -2, + jaw_1 = 0, + jaw_2 = 0, + chin_1 = 0, + chin_2 = 0, + chin_13 = 0, + chin_4 = 0, + neck_thickness = 0, + hair_1 = 76, + hair_2 = 0, + hair_color_1 = 61, + hair_color_2 = 29, + tshirt_1 = 4, + tshirt_2 = 2, + torso_1 = 23, + torso_2 = 2, + decals_1 = 0, + decals_2 = 0, + arms = 1, + arms_2 = 0, + pants_1 = 28, + pants_2 = 3, + shoes_1 = 70, + shoes_2 = 2, + mask_1 = 0, + mask_2 = 0, + bproof_1 = 0, + bproof_2 = 0, + chain_1 = 22, + chain_2 = 2, + helmet_1 = -1, + helmet_2 = 0, + glasses_1 = 0, + glasses_2 = 0, + watches_1 = -1, + watches_2 = 0, + bracelets_1 = -1, + bracelets_2 = 0, + bags_1 = 0, + bags_2 = 0, + eye_color = 0, + eye_squint = 0, + eyebrows_2 = 0, + eyebrows_1 = 0, + eyebrows_3 = 0, + eyebrows_4 = 0, + eyebrows_5 = 0, + eyebrows_6 = 0, + makeup_1 = 0, + makeup_2 = 0, + makeup_3 = 0, + makeup_4 = 0, + lipstick_1 = 0, + lipstick_2 = 0, + lipstick_3 = 0, + lipstick_4 = 0, + ears_1 = -1, + ears_2 = 0, + chest_1 = 0, + chest_2 = 0, + chest_3 = 0, + bodyb_1 = -1, + bodyb_2 = 0, + bodyb_3 = -1, + bodyb_4 = 0, + age_1 = 0, + age_2 = 0, + blemishes_1 = 0, + blemishes_2 = 0, + blush_1 = 0, + blush_2 = 0, + blush_3 = 0, + complexion_1 = 0, + complexion_2 = 0, + sun_1 = 0, + sun_2 = 0, + moles_1 = 0, + moles_2 = 0, + beard_1 = 11, + beard_2 = 10, + beard_3 = 0, + beard_4 = 0, + }, + ["f"] = { + mom = 28, + dad = 6, + face_md_weight = 63, + skin_md_weight = 60, + nose_1 = -10, + nose_2 = 4, + nose_3 = 5, + nose_4 = 0, + nose_5 = 0, + nose_6 = 0, + cheeks_1 = 0, + cheeks_2 = 0, + cheeks_3 = 0, + lip_thickness = 0, + jaw_1 = 0, + jaw_2 = 0, + chin_1 = -10, + chin_2 = 10, + chin_13 = -10, + chin_4 = 0, + neck_thickness = -5, + hair_1 = 43, + hair_2 = 0, + hair_color_1 = 29, + hair_color_2 = 35, + tshirt_1 = 111, + tshirt_2 = 5, + torso_1 = 25, + torso_2 = 2, + decals_1 = 0, + decals_2 = 0, + arms = 3, + arms_2 = 0, + pants_1 = 12, + pants_2 = 2, + shoes_1 = 20, + shoes_2 = 10, + mask_1 = 0, + mask_2 = 0, + bproof_1 = 0, + bproof_2 = 0, + chain_1 = 85, + chain_2 = 0, + helmet_1 = -1, + helmet_2 = 0, + glasses_1 = 33, + glasses_2 = 12, + watches_1 = -1, + watches_2 = 0, + bracelets_1 = -1, + bracelets_2 = 0, + bags_1 = 0, + bags_2 = 0, + eye_color = 8, + eye_squint = -6, + eyebrows_2 = 7, + eyebrows_1 = 32, + eyebrows_3 = 52, + eyebrows_4 = 9, + eyebrows_5 = -5, + eyebrows_6 = -8, + makeup_1 = 0, + makeup_2 = 0, + makeup_3 = 0, + makeup_4 = 0, + lipstick_1 = 0, + lipstick_2 = 0, + lipstick_3 = 0, + lipstick_4 = 0, + ears_1 = -1, + ears_2 = 0, + chest_1 = 0, + chest_2 = 0, + chest_3 = 0, + bodyb_1 = -1, + bodyb_2 = 0, + bodyb_3 = -1, + bodyb_4 = 0, + age_1 = 0, + age_2 = 0, + blemishes_1 = 0, + blemishes_2 = 0, + blush_1 = 0, + blush_2 = 0, + blush_3 = 0, + complexion_1 = 0, + complexion_2 = 0, + sun_1 = 0, + sun_2 = 0, + moles_1 = 12, + moles_2 = 8, + beard_1 = 0, + beard_2 = 0, + beard_3 = 0, + beard_4 = 0, + }, + } end diff --git a/[core]/esx_multicharacter/html/locales/sv.js b/[core]/esx_multicharacter/html/locales/sv.js new file mode 100644 index 000000000..0a1166116 --- /dev/null +++ b/[core]/esx_multicharacter/html/locales/sv.js @@ -0,0 +1,8 @@ +const translate = new Object(); + +translate.name = "Namn"; +translate.job = "Jobb"; +translate.bank = "Bank"; +translate.money = "Kontanter"; +translate.gender = "Kön"; +translate.dob = "Födelsedatum"; diff --git a/[core]/esx_multicharacter/locales/cs.lua b/[core]/esx_multicharacter/locales/cs.lua index 28d112078..5421e450a 100644 --- a/[core]/esx_multicharacter/locales/cs.lua +++ b/[core]/esx_multicharacter/locales/cs.lua @@ -1,28 +1,28 @@ Locales["cs"] = { - ["male"] = "Muž", - ["female"] = "Žena", - ["select_char"] = "Zvolit Postavu", - ["select_char_description"] = "Zvol si postavu za kterou budeš hrát.", - ["create_char"] = "Vytvořit Novou Postavu", - ["char_play"] = "Hrát za postavu", - ["char_play_description"] = "Pokračovat do města.", - ["char_disabled"] = "Tato postava je zakázána!", - ["char_disabled_description"] = "Tuto postavu nemůžeš používat.", - ["char_delete"] = "Vymazat postavu", - ["char_delete_description"] = "Na vždy smazat tuto postavu.", - ["character"] = "Postava: %s", - ["return"] = "Zpět", - ["return_description"] = "Vrátit se na vybírání postav.", - ["command_setslots"] = "Nastavit sloty pro hráče v multicharacteru", - ["command_remslots"] = "Odebrat sloty pro hráče v multicharacteru", - ["command_enablechar"] = "Povolit zvolený slot hráči", - ["command_disablechar"] = "Zakázat zvolený slot pro hrače", - ["command_charslot"] = "Číslo slotu", - ["command_identifier"] = "Identifier hráče", - ["command_slots"] = "# ze slotu", - ["slotsadd"] = "Nastavil si slot %s hráči %s", - ["slotsrem"] = "Odebral si slot %s", - ["charenabled"] = "Povolil si postavu #%s z %s", - ["chardisabled"] = "Zakázal si postavu #%s z %s", - ["charnotfound"] = "Postava #%s z %s nebyla nalezena/neexistuje", + ["male"] = "Muž", + ["female"] = "Žena", + ["select_char"] = "Zvolit Postavu", + ["select_char_description"] = "Zvol si postavu za kterou budeš hrát.", + ["create_char"] = "Vytvořit Novou Postavu", + ["char_play"] = "Hrát za postavu", + ["char_play_description"] = "Pokračovat do města.", + ["char_disabled"] = "Tato postava je zakázána!", + ["char_disabled_description"] = "Tuto postavu nemůžeš používat.", + ["char_delete"] = "Vymazat postavu", + ["char_delete_description"] = "Na vždy smazat tuto postavu.", + ["character"] = "Postava: %s", + ["return"] = "Zpět", + ["return_description"] = "Vrátit se na vybírání postav.", + ["command_setslots"] = "Nastavit sloty pro hráče v multicharacteru", + ["command_remslots"] = "Odebrat sloty pro hráče v multicharacteru", + ["command_enablechar"] = "Povolit zvolený slot hráči", + ["command_disablechar"] = "Zakázat zvolený slot pro hrače", + ["command_charslot"] = "Číslo slotu", + ["command_identifier"] = "Identifier hráče", + ["command_slots"] = "# ze slotu", + ["slotsadd"] = "Nastavil si slot %s hráči %s", + ["slotsrem"] = "Odebral si slot %s", + ["charenabled"] = "Povolil si postavu #%s z %s", + ["chardisabled"] = "Zakázal si postavu #%s z %s", + ["charnotfound"] = "Postava #%s z %s nebyla nalezena/neexistuje", } diff --git a/[core]/esx_multicharacter/locales/da.lua b/[core]/esx_multicharacter/locales/da.lua index 395af3ad5..3bec89718 100644 --- a/[core]/esx_multicharacter/locales/da.lua +++ b/[core]/esx_multicharacter/locales/da.lua @@ -1,32 +1,32 @@ Locales["da"] = { - ["male"] = "Mand", - ["female"] = "Kvinde", - ["select_char"] = "Vælg karakter", - ["select_char_description"] = "Vælg en karakter at spille som.", - ["create_char"] = "Ny Karakter", - ["char_play"] = "Spil", - ["char_play_description"] = "Fortsæt ind i byen.", - ["char_disabled"] = "Deaktiveret", - ["char_disabled_description"] = "Denne karakter er ubrugelig.", - ["char_delete"] = "Slet", - ["char_delete_description"] = "Fjern denne karakter permanent.", - ["char_delete_confirmation"] = "Slet bekræftelse", - ["char_delete_confirmation_description"] = "Er du sikker på at fjerne det valgte karakter?", - ["char_delete_yes_description"] = "Ja, jeg er sikker på at fjerne det valgte karakter", - ["char_delete_no_description"] = "Nej, vend tilbage til karakter-indstillinger", - ["character"] = "Karakter: %s", - ["return"] = "Tilbage", - ["return_description"] = "Vend tilbage til valg af karaktere.", - ["command_setslots"] = "Indstil flerkarakters slotsnummer for en spiller", - ["command_remslots"] = "Fjern flerkarakters slotsnummer for en spiller", - ["command_enablechar"] = "Aktiver en valgt karakter af en spiller", - ["command_disablechar"] = "Deaktiver en valgt karakter af en spiller", - ["command_charslot"] = "Karakterens plads nummer", - ["command_identifier"] = "Spiller identifikator", - ["command_slots"] = "# af slots", - ["slotsadd"] = "Du indstillerde %s slots til %s", - ["slotsrem"] = "Du fjernede slots til %s", - ["charenabled"] = "Du aktiverede karakter #%s af %s", - ["chardisabled"] = "Du deaktiverede tegn #%s af %s", - ["charnotfound"] = "Karakter #%s af %s eksisterer ikke", + ["male"] = "Mand", + ["female"] = "Kvinde", + ["select_char"] = "Vælg karakter", + ["select_char_description"] = "Vælg en karakter at spille som.", + ["create_char"] = "Ny Karakter", + ["char_play"] = "Spil", + ["char_play_description"] = "Fortsæt ind i byen.", + ["char_disabled"] = "Deaktiveret", + ["char_disabled_description"] = "Denne karakter er ubrugelig.", + ["char_delete"] = "Slet", + ["char_delete_description"] = "Fjern denne karakter permanent.", + ["char_delete_confirmation"] = "Slet bekræftelse", + ["char_delete_confirmation_description"] = "Er du sikker på at fjerne det valgte karakter?", + ["char_delete_yes_description"] = "Ja, jeg er sikker på at fjerne det valgte karakter", + ["char_delete_no_description"] = "Nej, vend tilbage til karakter-indstillinger", + ["character"] = "Karakter: %s", + ["return"] = "Tilbage", + ["return_description"] = "Vend tilbage til valg af karaktere.", + ["command_setslots"] = "Indstil flerkarakters slotsnummer for en spiller", + ["command_remslots"] = "Fjern flerkarakters slotsnummer for en spiller", + ["command_enablechar"] = "Aktiver en valgt karakter af en spiller", + ["command_disablechar"] = "Deaktiver en valgt karakter af en spiller", + ["command_charslot"] = "Karakterens plads nummer", + ["command_identifier"] = "Spiller identifikator", + ["command_slots"] = "# af slots", + ["slotsadd"] = "Du indstillerde %s slots til %s", + ["slotsrem"] = "Du fjernede slots til %s", + ["charenabled"] = "Du aktiverede karakter #%s af %s", + ["chardisabled"] = "Du deaktiverede tegn #%s af %s", + ["charnotfound"] = "Karakter #%s af %s eksisterer ikke", } diff --git a/[core]/esx_multicharacter/locales/en.lua b/[core]/esx_multicharacter/locales/en.lua index 76be70477..5c55fd8f9 100644 --- a/[core]/esx_multicharacter/locales/en.lua +++ b/[core]/esx_multicharacter/locales/en.lua @@ -1,32 +1,32 @@ Locales["en"] = { - ["male"] = "Male", - ["female"] = "Female", - ["select_char"] = "Select Character", - ["select_char_description"] = "Select a character to play as.", - ["create_char"] = "New Character", - ["char_play"] = "Play", - ["char_play_description"] = "Continue Into The City.", - ["char_disabled"] = "Disabled", - ["char_disabled_description"] = "This Character Is Unusable.", - ["char_delete"] = "Delete", - ["char_delete_description"] = "Permanently Remove This Character.", - ["char_delete_confirmation"] = "Delete Confirmation", - ["char_delete_confirmation_description"] = "Are you sure removing selected character?", - ["char_delete_yes_description"] = "Yes, I am sure removing selected character", - ["char_delete_no_description"] = "No, return to character options", - ["character"] = "Character: %s", - ["return"] = "Return", - ["return_description"] = "Return To Character Selection.", - ["command_setslots"] = "Set multicharacter slots number of a player", - ["command_remslots"] = "Remove multicharacter slots number of a player", - ["command_enablechar"] = "Enable a given character of a player", - ["command_disablechar"] = "Disable a given character of a player", - ["command_charslot"] = "Slot number of the character", - ["command_identifier"] = "Player identifier", - ["command_slots"] = "# of slots", - ["slotsadd"] = "You set %s slots to %s", - ["slotsrem"] = "You removed slots to %s", - ["charenabled"] = "You enabled character #%s of %s", - ["chardisabled"] = "You disabled character #%s of %s", - ["charnotfound"] = "Character #%s of %s doesn't exist", + ["male"] = "Male", + ["female"] = "Female", + ["select_char"] = "Select Character", + ["select_char_description"] = "Select a character to play as.", + ["create_char"] = "New Character", + ["char_play"] = "Play", + ["char_play_description"] = "Continue Into The City.", + ["char_disabled"] = "Disabled", + ["char_disabled_description"] = "This Character Is Unusable.", + ["char_delete"] = "Delete", + ["char_delete_description"] = "Permanently Remove This Character.", + ["char_delete_confirmation"] = "Delete Confirmation", + ["char_delete_confirmation_description"] = "Are you sure removing selected character?", + ["char_delete_yes_description"] = "Yes, I am sure removing selected character", + ["char_delete_no_description"] = "No, return to character options", + ["character"] = "Character: %s", + ["return"] = "Return", + ["return_description"] = "Return To Character Selection.", + ["command_setslots"] = "Set multicharacter slots number of a player", + ["command_remslots"] = "Remove multicharacter slots number of a player", + ["command_enablechar"] = "Enable a given character of a player", + ["command_disablechar"] = "Disable a given character of a player", + ["command_charslot"] = "Slot number of the character", + ["command_identifier"] = "Player identifier", + ["command_slots"] = "# of slots", + ["slotsadd"] = "You set %s slots to %s", + ["slotsrem"] = "You removed slots to %s", + ["charenabled"] = "You enabled character #%s of %s", + ["chardisabled"] = "You disabled character #%s of %s", + ["charnotfound"] = "Character #%s of %s doesn't exist", } diff --git a/[core]/esx_multicharacter/locales/fi.lua b/[core]/esx_multicharacter/locales/fi.lua index 757399c13..9da10652d 100644 --- a/[core]/esx_multicharacter/locales/fi.lua +++ b/[core]/esx_multicharacter/locales/fi.lua @@ -1,33 +1,33 @@ Locales["fi"] = { - ["male"] = "Mies", - ["female"] = "Nainen", - ["select_char"] = "Valitse hahmo", - ["select_char_description"] = "Valitse hahmo, jolla haluat pelata.", - ["create_char"] = "Uusi hahmo", - ["char_play"] = "Pelaa", - ["char_play_description"] = "Jatka kaupunkiin.", - ["char_disabled"] = "Ei käytössä", - ["char_disabled_description"] = "Tämä hahmo on käyttökelvoton.", - ["char_delete"] = "Poista", - ["char_delete_description"] = "Poista tämä hahmo pysyvästi.", - ["char_delete_confirmation"] = "Vahvista poistaminen.", - ["char_delete_confirmation_description"] = "Oletko varma, että poistat valitun hahmon?", - ["char_delete_yes_description"] = "Kyllä, olen varma, että poistan valitun hahmon", - ["char_delete_no_description"] = "Ei, Palaa hahmojen valintaan", - ["character"] = "Hahmo: %s", - ["return"] = "Takaisin", - ["return_description"] = "Palaa hahmojen valintaan.", - ["command_setslots"] = "Määritä pelaajan multicharacter paikkojen määrä", - ["command_remslots"] = "Vähennä pelaajan multicharacter paikkojen määrää", - ["command_enablechar"] = "Muuta pelaajan tietty hahmo käyttöön", - ["command_disablechar"] = "Muuta pelaajan tietty hahmo pois käytöstä", - ["command_charslot"] = "Hahmon paikan numero", - ["command_identifier"] = "Pelaajan tunniste", - ["command_slots"] = "# paikoista", - ["slotsadd"] = "Lisäsit %s paikkaa kohteeseen %s", - ["slotsedit"] = "Olet määrittänyt %s kohteeseen %s", - ["slotsrem"] = "Poistit paikat kohteesta %s", - ["charenabled"] = "Otit käyttöön hahmon #%s / %s", - ["chardisabled"] = "Poistit hahmon #%s / %s käytöstä", - ["charnotfound"] = "Hahmoa #%s / %s ei ole olemassa", + ["male"] = "Mies", + ["female"] = "Nainen", + ["select_char"] = "Valitse hahmo", + ["select_char_description"] = "Valitse hahmo, jolla haluat pelata.", + ["create_char"] = "Uusi hahmo", + ["char_play"] = "Pelaa", + ["char_play_description"] = "Jatka kaupunkiin.", + ["char_disabled"] = "Ei käytössä", + ["char_disabled_description"] = "Tämä hahmo on käyttökelvoton.", + ["char_delete"] = "Poista", + ["char_delete_description"] = "Poista tämä hahmo pysyvästi.", + ["char_delete_confirmation"] = "Vahvista poistaminen.", + ["char_delete_confirmation_description"] = "Oletko varma, että poistat valitun hahmon?", + ["char_delete_yes_description"] = "Kyllä, olen varma, että poistan valitun hahmon", + ["char_delete_no_description"] = "Ei, Palaa hahmojen valintaan", + ["character"] = "Hahmo: %s", + ["return"] = "Takaisin", + ["return_description"] = "Palaa hahmojen valintaan.", + ["command_setslots"] = "Määritä pelaajan multicharacter paikkojen määrä", + ["command_remslots"] = "Vähennä pelaajan multicharacter paikkojen määrää", + ["command_enablechar"] = "Muuta pelaajan tietty hahmo käyttöön", + ["command_disablechar"] = "Muuta pelaajan tietty hahmo pois käytöstä", + ["command_charslot"] = "Hahmon paikan numero", + ["command_identifier"] = "Pelaajan tunniste", + ["command_slots"] = "# paikoista", + ["slotsadd"] = "Lisäsit %s paikkaa kohteeseen %s", + ["slotsedit"] = "Olet määrittänyt %s kohteeseen %s", + ["slotsrem"] = "Poistit paikat kohteesta %s", + ["charenabled"] = "Otit käyttöön hahmon #%s / %s", + ["chardisabled"] = "Poistit hahmon #%s / %s käytöstä", + ["charnotfound"] = "Hahmoa #%s / %s ei ole olemassa", } diff --git a/[core]/esx_multicharacter/locales/fr.lua b/[core]/esx_multicharacter/locales/fr.lua index e6fcc0348..a64e27af5 100644 --- a/[core]/esx_multicharacter/locales/fr.lua +++ b/[core]/esx_multicharacter/locales/fr.lua @@ -1,32 +1,32 @@ Locales["fr"] = { - ["male"] = "Homme", - ["female"] = "Femme", - ["select_char"] = "Sélectionnez un personnage", - ["select_char_description"] = "Select a character to play as.", - ["create_char"] = "Créer un nouveau personnage", - ["char_play"] = "Jouer ce personnage", + ["male"] = "Homme", + ["female"] = "Femme", + ["select_char"] = "Sélectionnez un personnage", + ["select_char_description"] = "Sélectionnez un personnage avec lequel jouer.", + ["create_char"] = "Créer un nouveau personnage", + ["char_play"] = "Jouer ce personnage", ["char_play_description"] = "Continuez dans la ville.", - ["char_disabled"] = "Ce personnage est désactivé", + ["char_disabled"] = "Ce personnage est désactivé", ["char_disabled_description"] = "Ce personnage est inutilisable.", - ["char_delete"] = "Supprimer ce personnage", - ["char_delete_description"] = "Retiré définitivement ce personnage.", - ["char_delete_confirmation"] = "Confirmation de suppression", - ["char_delete_confirmation_description"] = "Êtes-vous sûr de vouloir supprimer ce personnage?", - ["char_delete_yes_description"] = "Oui, je suis sur de vouloir supprimer ce personnage", - ["char_delete_no_description"] = "Non, retourner aux options de personnages", - ["character"] = "Personnage: %s", - ["return"] = "Retour", - ["return_description"] = "Retourner à la sélection de personnage.", - ["command_setslots"] = "Définir le numéro de créneau multi-caractères d'un joueur", - ["command_remslots"] = "Suppression du numéro de créneau multi-caractères d'un joueur", - ["command_enablechar"] = "Activer un personnage donné d'un joueur", - ["command_disablechar"] = "Désactiver un personnage donné d'un joueur", - ["command_charslot"] = "Numéro d'emplacement du caractère", - ["command_identifier"] = "Identifiant du joueur", - ["command_slots"] = "# de slots", - ["slotsadd"] = "Vous avez défini %s slots à %s", - ["slotsrem"] = "Vous avez suprimé les slots à %s", - ["charenabled"] = "Vous avez activé le personnage #%s de %s", - ["chardisabled"] = "Vous avez désactivé le personnage #%s de %s", - ["charnotfound"] = "Le personnage #%s de %s n'éxiste", + ["char_delete"] = "Supprimer ce personnage", + ["char_delete_description"] = "Supprimer définitivement ce personnage.", + ["char_delete_confirmation"] = "Confirmation de suppression", + ["char_delete_confirmation_description"] = "Êtes-vous sûr de vouloir supprimer ce personnage?", + ["char_delete_yes_description"] = "Oui, je suis sur de vouloir supprimer ce personnage", + ["char_delete_no_description"] = "Non, retourner aux options de personnages", + ["character"] = "Personnage: %s", + ["return"] = "Retour", + ["return_description"] = "Retourner à la sélection de personnage.", + ["command_setslots"] = "Définir le numéro de créneau multi-caractères d'un joueur", + ["command_remslots"] = "Suppression du numéro de créneau multi-caractères d'un joueur", + ["command_enablechar"] = "Activer un personnage donné d'un joueur", + ["command_disablechar"] = "Désactiver un personnage donné d'un joueur", + ["command_charslot"] = "Numéro d'emplacement du caractère", + ["command_identifier"] = "Identifiant du joueur", + ["command_slots"] = "# de slots", + ["slotsadd"] = "Vous avez défini %s slots à %s", + ["slotsrem"] = "Vous avez suprimé les slots à %s", + ["charenabled"] = "Vous avez activé le personnage #%s de %s", + ["chardisabled"] = "Vous avez désactivé le personnage #%s de %s", + ["charnotfound"] = "Le personnage #%s de %s n'éxiste", } diff --git a/[core]/esx_multicharacter/locales/he.lua b/[core]/esx_multicharacter/locales/he.lua index dc591e717..a6e8267ee 100644 --- a/[core]/esx_multicharacter/locales/he.lua +++ b/[core]/esx_multicharacter/locales/he.lua @@ -1,32 +1,32 @@ Locales["he"] = { - ["male"] = "זכר", - ["female"] = "נקבה", - ["select_char"] = "בחר דמות", - ["select_char_description"] = "בחר דמות לשחק.", - ["create_char"] = "דמות חדשה", - ["char_play"] = "שחק", - ["char_play_description"] = "המשך לעיר.", - ["char_disabled"] = "מושבת", - ["char_disabled_description"] = "דמות זו לא ניתן לשימוש.", - ["char_delete"] = "מחק", - ["char_delete_description"] = "הסר את הדמות לצמיתות.", - ["char_delete_confirmation"] = "אישור מחיקה", - ["char_delete_confirmation_description"] = "האם אתה בטוח שאתה מסיר את הדמות שנבחרה?", - ["char_delete_yes_description"] = "כן, אני בטוח שאני מסיר את הדמות שנבחרה", - ["char_delete_no_description"] = "לא, חזור לאפשרויות הדמות", - ["character"] = "דמות: %s", - ["return"] = "חזור", - ["return_description"] = "חזור לבחירת הדמות.", - ["command_setslots"] = "הגדר מספר מקומות לדמות של שחקן", - ["command_remslots"] = "הסר מספר מקומות לדמות של שחקן", - ["command_enablechar"] = "אפשר דמות מסוימת של שחקן", - ["command_disablechar"] = "השבת דמות מסוימת של שחקן", - ["command_charslot"] = "מספר מקום של הדמות", - ["command_identifier"] = "מזהה שחקן", - ["command_slots"] = "# של מקומות", - ["slotsadd"] = "הגדרת %s מקומות ל- %s", - ["slotsrem"] = "הסרת מקומות ל- %s", - ["charenabled"] = "אפשרת את הדמות #%s של %s", - ["chardisabled"] = "השבתת את הדמות #%s של %s", - ["charnotfound"] = "הדמות #%s של %s לא קיימת", + ["male"] = "זכר", + ["female"] = "נקבה", + ["select_char"] = "בחר דמות", + ["select_char_description"] = "בחר דמות לשחק.", + ["create_char"] = "דמות חדשה", + ["char_play"] = "שחק", + ["char_play_description"] = "המשך לעיר.", + ["char_disabled"] = "מושבת", + ["char_disabled_description"] = "דמות זו לא ניתן לשימוש.", + ["char_delete"] = "מחק", + ["char_delete_description"] = "הסר את הדמות לצמיתות.", + ["char_delete_confirmation"] = "אישור מחיקה", + ["char_delete_confirmation_description"] = "האם אתה בטוח שאתה מסיר את הדמות שנבחרה?", + ["char_delete_yes_description"] = "כן, אני בטוח שאני מסיר את הדמות שנבחרה", + ["char_delete_no_description"] = "לא, חזור לאפשרויות הדמות", + ["character"] = "דמות: %s", + ["return"] = "חזור", + ["return_description"] = "חזור לבחירת הדמות.", + ["command_setslots"] = "הגדר מספר מקומות לדמות של שחקן", + ["command_remslots"] = "הסר מספר מקומות לדמות של שחקן", + ["command_enablechar"] = "אפשר דמות מסוימת של שחקן", + ["command_disablechar"] = "השבת דמות מסוימת של שחקן", + ["command_charslot"] = "מספר מקום של הדמות", + ["command_identifier"] = "מזהה שחקן", + ["command_slots"] = "# של מקומות", + ["slotsadd"] = "הגדרת %s מקומות ל- %s", + ["slotsrem"] = "הסרת מקומות ל- %s", + ["charenabled"] = "אפשרת את הדמות #%s של %s", + ["chardisabled"] = "השבתת את הדמות #%s של %s", + ["charnotfound"] = "הדמות #%s של %s לא קיימת", } diff --git a/[core]/esx_multicharacter/locales/hu.lua b/[core]/esx_multicharacter/locales/hu.lua index 7b5a68611..b4d29a7f8 100644 --- a/[core]/esx_multicharacter/locales/hu.lua +++ b/[core]/esx_multicharacter/locales/hu.lua @@ -1,32 +1,32 @@ Locales["hu"] = { - ["male"] = "Férfi", - ["female"] = "Nő", - ["select_char"] = "Karakter kiválasztása", - ["select_char_description"] = "Karakter kiválasztása a játékhoz.", - ["create_char"] = "Új karakter létrehozása", - ["char_play"] = "Karakter kiválasztása", - ["char_play_description"] = "Visszatérés a városba.", - ["char_disabled"] = "Karakter le van tiltva", - ["char_disabled_description"] = "Ez a karakter nem használható.", - ["char_delete"] = "Karakter törlése", - ["char_delete_description"] = "Karakter végleges törlése.", - ["char_delete_confirmation"] = "Törlés megerősítés", - ["char_delete_confirmation_description"] = "Biztosan törölni szeretnéd a kiválasztott karaktert?", - ["char_delete_yes_description"] = "Igen, törölni szeretném", - ["char_delete_no_description"] = "Nem, vissza a karakter opciókhoz", - ["character"] = "Karakter: %s", - ["return"] = "Vissza", - ["return_description"] = "Vissza a karakter választáshoz.", - ["command_setslots"] = "Játékos karakter slotok számának beállítása", - ["command_remslots"] = "Játékos karakter slotok számának eltávolítása", - ["command_enablechar"] = "Játékos karakterének engedélyezése", - ["command_disablechar"] = "Játékos karakterének tiltása", - ["command_charslot"] = "Karakter slotok számának beállítása", - ["command_identifier"] = "Játékos identifier", - ["command_slots"] = "# slotok", - ["slotsadd"] = "Beállítottad %s slotokat, neki %s", - ["slotsrem"] = "Eltávolítottad a következő slotokat: %s", - ["charenabled"] = "Karakter engedélyezve #%s-ból/ből %s", - ["chardisabled"] = "Karakter letiltva #%s-ból/ből %s", - ["charnotfound"] = "Karakter #%s-ból/ből %s nem létezik", + ["male"] = "Férfi", + ["female"] = "Nő", + ["select_char"] = "Karakter kiválasztása", + ["select_char_description"] = "Karakter kiválasztása a játékhoz.", + ["create_char"] = "Új karakter létrehozása", + ["char_play"] = "Karakter kiválasztása", + ["char_play_description"] = "Visszatérés a városba.", + ["char_disabled"] = "Karakter le van tiltva", + ["char_disabled_description"] = "Ez a karakter nem használható.", + ["char_delete"] = "Karakter törlése", + ["char_delete_description"] = "Karakter végleges törlése.", + ["char_delete_confirmation"] = "Törlés megerősítés", + ["char_delete_confirmation_description"] = "Biztosan törölni szeretnéd a kiválasztott karaktert?", + ["char_delete_yes_description"] = "Igen, törölni szeretném", + ["char_delete_no_description"] = "Nem, vissza a karakter opciókhoz", + ["character"] = "Karakter: %s", + ["return"] = "Vissza", + ["return_description"] = "Vissza a karakter választáshoz.", + ["command_setslots"] = "Játékos karakter slotok számának beállítása", + ["command_remslots"] = "Játékos karakter slotok számának eltávolítása", + ["command_enablechar"] = "Játékos karakterének engedélyezése", + ["command_disablechar"] = "Játékos karakterének tiltása", + ["command_charslot"] = "Karakter slotok számának beállítása", + ["command_identifier"] = "Játékos identifier", + ["command_slots"] = "# slotok", + ["slotsadd"] = "Beállítottad %s slotokat, neki %s", + ["slotsrem"] = "Eltávolítottad a következő slotokat: %s", + ["charenabled"] = "Karakter engedélyezve #%s-ból/ből %s", + ["chardisabled"] = "Karakter letiltva #%s-ból/ből %s", + ["charnotfound"] = "Karakter #%s-ból/ből %s nem létezik", } diff --git a/[core]/esx_multicharacter/locales/it.lua b/[core]/esx_multicharacter/locales/it.lua index b1c0fe39a..f8a596bd5 100644 --- a/[core]/esx_multicharacter/locales/it.lua +++ b/[core]/esx_multicharacter/locales/it.lua @@ -1,32 +1,32 @@ Locales["it"] = { - ["male"] = "Uomo", - ["female"] = "Donna", - ["select_char"] = "Seleziona personaggio", - ["select_char_description"] = "Seleziona un personaggio con cui giocare.", - ["create_char"] = "Nuovo personaggio", - ["char_play"] = "Inizia", - ["char_play_description"] = "Continua in città.", - ["char_disabled"] = "Disabilitato", - ["char_disabled_description"] = "Questo personaggio è inutilizzabile.", - ["char_delete"] = "Elimina", - ["char_delete_description"] = "Rimuovi permanentemente questo personaggio..", - ["char_delete_confirmation"] = "Conferma eliminazione", - ["char_delete_confirmation_description"] = "Sei sicuro di voler rimuovere il personaggio selezionato?", - ["char_delete_yes_description"] = "Si, sono sicuro di voler rimuovere il personaggio", - ["char_delete_no_description"] = "No, ritorna alle opzioni", - ["character"] = "Personaggio: %s", - ["return"] = "Ritorno", - ["return_description"] = "Ritorna alla selezione dei personaggi.", - ["command_setslots"] = "imposta il numero di slot per il giocatore", - ["command_remslots"] = "Rimuovi slot per il giocatore", - ["command_enablechar"] = "Abilita un determinato personaggio di un giocatore", - ["command_disablechar"] = "Disabilita un determinato personaggio per i giocatore", - ["command_charslot"] = "Numero di slot", - ["command_identifier"] = "Identificativo del giocatore", - ["command_slots"] = "# di slot", - ["slotsadd"] = "Hai impostato %s slots a %s", - ["slotsrem"] = "Hai rimosso gli slot in %s", - ["charenabled"] = "Hai abilitato il personaggio #%s di %s", - ["chardisabled"] = "hai disabilitato il personaggio #%s di %s", - ["charnotfound"] = "Il personaggio #%s di %s non esiste", + ["male"] = "Uomo", + ["female"] = "Donna", + ["select_char"] = "Seleziona personaggio", + ["select_char_description"] = "Seleziona un personaggio con cui giocare.", + ["create_char"] = "Nuovo personaggio", + ["char_play"] = "Inizia", + ["char_play_description"] = "Continua in città.", + ["char_disabled"] = "Disabilitato", + ["char_disabled_description"] = "Questo personaggio è inutilizzabile.", + ["char_delete"] = "Elimina", + ["char_delete_description"] = "Rimuovi permanentemente questo personaggio..", + ["char_delete_confirmation"] = "Conferma eliminazione", + ["char_delete_confirmation_description"] = "Sei sicuro di voler rimuovere il personaggio selezionato?", + ["char_delete_yes_description"] = "Si, sono sicuro di voler rimuovere il personaggio", + ["char_delete_no_description"] = "No, ritorna alle opzioni", + ["character"] = "Personaggio: %s", + ["return"] = "Ritorno", + ["return_description"] = "Ritorna alla selezione dei personaggi.", + ["command_setslots"] = "imposta il numero di slot per il giocatore", + ["command_remslots"] = "Rimuovi slot per il giocatore", + ["command_enablechar"] = "Abilita un determinato personaggio di un giocatore", + ["command_disablechar"] = "Disabilita un determinato personaggio per i giocatore", + ["command_charslot"] = "Numero di slot", + ["command_identifier"] = "Identificativo del giocatore", + ["command_slots"] = "# di slot", + ["slotsadd"] = "Hai impostato %s slots a %s", + ["slotsrem"] = "Hai rimosso gli slot in %s", + ["charenabled"] = "Hai abilitato il personaggio #%s di %s", + ["chardisabled"] = "hai disabilitato il personaggio #%s di %s", + ["charnotfound"] = "Il personaggio #%s di %s non esiste", } diff --git a/[core]/esx_multicharacter/locales/nl.lua b/[core]/esx_multicharacter/locales/nl.lua index 59a6eea12..9bf90040e 100644 --- a/[core]/esx_multicharacter/locales/nl.lua +++ b/[core]/esx_multicharacter/locales/nl.lua @@ -1,32 +1,32 @@ Locales["nl"] = { - ["male"] = "Man", - ["female"] = "Vrouw", - ["select_char"] = "Selecteer Karakter", - ["select_char_description"] = "Selecteer een karakter om mee te spelen.", - ["create_char"] = "Maak karakter aan", - ["char_play"] = "Speel", - ["char_play_description"] = "Ga verder naar de stad.", - ["char_disabled"] = "Uitgeschakeld", - ["char_disabled_description"] = "Dit karakter is onbruikbaar.", - ["char_delete"] = "Verwijder", - ["char_delete_description"] = "Verwijder dit karakter (PERMANENT).", - ["char_delete_confirmation"] = "Bevestig", - ["char_delete_confirmation_description"] = "Ben je zeker dat je het geselecteerde karakter wilt verwijderen?", - ["char_delete_yes_description"] = "Ja, ik ben zeker dat ik het karakter wil verwijderen", - ["char_delete_no_description"] = "Nee, ga terug naar karakter opties", - ["character"] = "Karakter: %s", - ["return"] = "Ga terug", - ["return_description"] = "Ga terug naar karakter selectie.", - ["command_setslots"] = "Multicharacter hoeveelheid slots van een speler instellen", - ["command_remslots"] = "Verwijder slotnummer van een speler", - ["command_enablechar"] = "Een bepaald karakter van een speler inschakelen", - ["command_disablechar"] = "Een bepaald karakter van een speler uitschakelen", - ["command_charslot"] = "Slotnummer van het personage", - ["command_identifier"] = "Speler identifier", - ["command_slots"] = "# van de slots", - ["slotsadd"] = "Je hebt %s slots gezet naar %s", - ["slotsrem"] = "Je hebt slots verwijderd naar %s", - ["charenabled"] = "Je hebt karakter #%s ingeschakeld van %s", - ["chardisabled"] = "Je hebt karakter #%s uitgeschakeld van %s", - ["charnotfound"] = "Karakter #%s van %s bestaat niet", + ["male"] = "Man", + ["female"] = "Vrouw", + ["select_char"] = "Selecteer Karakter", + ["select_char_description"] = "Selecteer een karakter om mee te spelen.", + ["create_char"] = "Maak karakter aan", + ["char_play"] = "Speel", + ["char_play_description"] = "Ga verder naar de stad.", + ["char_disabled"] = "Uitgeschakeld", + ["char_disabled_description"] = "Dit karakter is onbruikbaar.", + ["char_delete"] = "Verwijder", + ["char_delete_description"] = "Verwijder dit karakter (PERMANENT).", + ["char_delete_confirmation"] = "Bevestig", + ["char_delete_confirmation_description"] = "Ben je zeker dat je het geselecteerde karakter wilt verwijderen?", + ["char_delete_yes_description"] = "Ja, ik ben zeker dat ik het karakter wil verwijderen", + ["char_delete_no_description"] = "Nee, ga terug naar karakter opties", + ["character"] = "Karakter: %s", + ["return"] = "Ga terug", + ["return_description"] = "Ga terug naar karakter selectie.", + ["command_setslots"] = "Multicharacter hoeveelheid slots van een speler instellen", + ["command_remslots"] = "Verwijder slotnummer van een speler", + ["command_enablechar"] = "Een bepaald karakter van een speler inschakelen", + ["command_disablechar"] = "Een bepaald karakter van een speler uitschakelen", + ["command_charslot"] = "Slotnummer van het personage", + ["command_identifier"] = "Speler identifier", + ["command_slots"] = "# van de slots", + ["slotsadd"] = "Je hebt %s slots gezet naar %s", + ["slotsrem"] = "Je hebt slots verwijderd naar %s", + ["charenabled"] = "Je hebt karakter #%s ingeschakeld van %s", + ["chardisabled"] = "Je hebt karakter #%s uitgeschakeld van %s", + ["charnotfound"] = "Karakter #%s van %s bestaat niet", } diff --git a/[core]/esx_multicharacter/locales/pt.lua b/[core]/esx_multicharacter/locales/pt.lua index 68382b4e2..36df3e00d 100644 --- a/[core]/esx_multicharacter/locales/pt.lua +++ b/[core]/esx_multicharacter/locales/pt.lua @@ -1,25 +1,25 @@ Locales["pt"] = { - ["male"] = "Masculino", - ["female"] = "Feminino", - ["delete_label"] = "Excluir %s %s?", - ["select_char"] = "Selecionar personagem", - ["select_char_description"] = "Select a character to play as.", - ["create_char"] = "Criar novo personagem", - ["char_play"] = "Selecionar", - ["char_disabled"] = "Este personagem está desabilitado", - ["char_delete"] = "Excluir este personagem", - ["cancel"] = "Cancelar", - ["confirm"] = "Confirmar", - ["command_setslots"] = "Definir o número de slots de vários personagens de um jogador", - ["command_remslots"] = "Remover o número de slots de vários personagens de um jogador", - ["command_enablechar"] = "Habilitar um determinado personagem de um jogador", - ["command_disablechar"] = "Desabilitar um determinado personagem de um jogador", - ["command_charslot"] = "Número do slot do personagem", - ["command_identifier"] = "Identificador do jogador", - ["command_slots"] = "# de slots", - ["slotsadd"] = "Você definiu %s slots para %s", - ["slotsrem"] = "Você removeu slots de %s", - ["charenabled"] = "Você ativou o personagem #%s de %s", - ["chardisabled"] = "Você desativou o personagem #%s de %s", - ["charnotfound"] = "Personagem #%s de %s não existe", + ["male"] = "Masculino", + ["female"] = "Feminino", + ["delete_label"] = "Excluir %s %s?", + ["select_char"] = "Selecionar personagem", + ["select_char_description"] = "Select a character to play as.", + ["create_char"] = "Criar novo personagem", + ["char_play"] = "Selecionar", + ["char_disabled"] = "Este personagem está desabilitado", + ["char_delete"] = "Excluir este personagem", + ["cancel"] = "Cancelar", + ["confirm"] = "Confirmar", + ["command_setslots"] = "Definir o número de slots de vários personagens de um jogador", + ["command_remslots"] = "Remover o número de slots de vários personagens de um jogador", + ["command_enablechar"] = "Habilitar um determinado personagem de um jogador", + ["command_disablechar"] = "Desabilitar um determinado personagem de um jogador", + ["command_charslot"] = "Número do slot do personagem", + ["command_identifier"] = "Identificador do jogador", + ["command_slots"] = "# de slots", + ["slotsadd"] = "Você definiu %s slots para %s", + ["slotsrem"] = "Você removeu slots de %s", + ["charenabled"] = "Você ativou o personagem #%s de %s", + ["chardisabled"] = "Você desativou o personagem #%s de %s", + ["charnotfound"] = "Personagem #%s de %s não existe", } diff --git a/[core]/esx_multicharacter/locales/sr.lua b/[core]/esx_multicharacter/locales/sr.lua index 261322f76..85978aca5 100644 --- a/[core]/esx_multicharacter/locales/sr.lua +++ b/[core]/esx_multicharacter/locales/sr.lua @@ -1,33 +1,33 @@ Locales["sr"] = { - ["male"] = "Muško", - ["female"] = "Žensko", - ["select_char"] = "Izaberi Karakter", - ["select_char_description"] = "Izaberi karakter kojim ćeš igrati", - ["create_char"] = "Novi Karakter", - ["char_play"] = "Igraj", - ["char_play_description"] = "Nastavi u grad.", - ["char_disabled"] = "Onemogućeno", - ["char_disabled_description"] = "Taj karakter je onemogućen", - ["char_delete"] = "Izbriši", - ["char_delete_description"] = "Nepovratno obrišite karakter", - ["char_delete_confirmation"] = "Potvrda brisanja", - ["char_delete_confirmation_description"] = "Da li ste sigurni da želite da obrišete karakter?", - ["char_delete_yes_description"] = "Da, siguran sam da želim obrisati karakter", - ["char_delete_no_description"] = "Ne, vrati se nazad", - ["character"] = "Karakter: %s", - ["return"] = "Nazad", - ["return_description"] = "Povratak na biranje karaktera.", - ["command_setslots"] = "Postavi broj slotova karaktera igraču", - ["command_remslots"] = "Izbriši slotove igraču", - ["command_enablechar"] = "Dozvoli karakter igraču", - ["command_disablechar"] = "Zabrani karakter igraču", - ["command_charslot"] = "Broj slotova", - ["command_identifier"] = "Identifikator Igrača", - ["command_slots"] = "# slotova", - ["slotsadd"] = "Dodali ste %s slotova %s", - ["slotsedit"] = "Postavili ste %s slotova %s", - ["slotsrem"] = "Oduzeli ste slotove %s", - ["charenabled"] = "Dozvolili ste karakter #%s od %s", - ["chardisabled"] = "Zabranili ste karakter #%s od %s", - ["charnotfound"] = "Karakter #%s od %s ne postoji", + ["male"] = "Muško", + ["female"] = "Žensko", + ["select_char"] = "Izaberi Karakter", + ["select_char_description"] = "Izaberi karakter kojim ćeš igrati", + ["create_char"] = "Novi Karakter", + ["char_play"] = "Igraj", + ["char_play_description"] = "Nastavi u grad.", + ["char_disabled"] = "Onemogućeno", + ["char_disabled_description"] = "Taj karakter je onemogućen", + ["char_delete"] = "Izbriši", + ["char_delete_description"] = "Nepovratno obrišite karakter", + ["char_delete_confirmation"] = "Potvrda brisanja", + ["char_delete_confirmation_description"] = "Da li ste sigurni da želite da obrišete karakter?", + ["char_delete_yes_description"] = "Da, siguran sam da želim obrisati karakter", + ["char_delete_no_description"] = "Ne, vrati se nazad", + ["character"] = "Karakter: %s", + ["return"] = "Nazad", + ["return_description"] = "Povratak na biranje karaktera.", + ["command_setslots"] = "Postavi broj slotova karaktera igraču", + ["command_remslots"] = "Izbriši slotove igraču", + ["command_enablechar"] = "Dozvoli karakter igraču", + ["command_disablechar"] = "Zabrani karakter igraču", + ["command_charslot"] = "Broj slotova", + ["command_identifier"] = "Identifikator Igrača", + ["command_slots"] = "# slotova", + ["slotsadd"] = "Dodali ste %s slotova %s", + ["slotsedit"] = "Postavili ste %s slotova %s", + ["slotsrem"] = "Oduzeli ste slotove %s", + ["charenabled"] = "Dozvolili ste karakter #%s od %s", + ["chardisabled"] = "Zabranili ste karakter #%s od %s", + ["charnotfound"] = "Karakter #%s od %s ne postoji", } diff --git a/[core]/esx_multicharacter/locales/sv.lua b/[core]/esx_multicharacter/locales/sv.lua new file mode 100644 index 000000000..d726459b3 --- /dev/null +++ b/[core]/esx_multicharacter/locales/sv.lua @@ -0,0 +1,32 @@ +Locales["sv"] = { + ["male"] = "Man", + ["female"] = "Kvinna", + ["select_char"] = "Välj karaktär", + ["select_char_description"] = "Välj en karaktär att spela som.", + ["create_char"] = "Ny karaktär", + ["char_play"] = "Spela", + ["char_play_description"] = "Fortsätt i staden.", + ["char_disabled"] = "Otillgänglig", + ["char_disabled_description"] = "Denna karaktär är inte tillgänglig.", + ["char_delete"] = "Radera", + ["char_delete_description"] = "Permanent radera denna karaktär.", + ["char_delete_confirmation"] = "Acceptera", + ["char_delete_confirmation_description"] = "Säker att du vill radera den?", + ["char_delete_yes_description"] = "Ja, jag är säker", + ["char_delete_no_description"] = "Nej, gå tillbaka till karaktärerna", + ["character"] = "Karaktär: %s", + ["return"] = "Tillbaka", + ["return_description"] = "Tillbaka till karaktärerna.", + ["command_setslots"] = "Ge slots till en spelare", + ["command_remslots"] = "Radera slots från en spelare", + ["command_enablechar"] = "Aktivera vald karaktär till spelare", + ["command_disablechar"] = "Avaktivera vald karaktär till spelare", + ["command_charslot"] = "Slotsnummer på karaktären", + ["command_identifier"] = "Spelare", + ["command_slots"] = "# av slots", + ["slotsadd"] = "Du satte %s slots till %s", + ["slotsrem"] = "Du raderade slots till %s", + ["charenabled"] = "Du aktiverade karaktär #%s av %s", + ["chardisabled"] = "Du avaktiverade #%s av %s", + ["charnotfound"] = "Karaktär #%s av %s existerar inte", +} diff --git a/[core]/esx_multicharacter/locales/zh-cn.lua b/[core]/esx_multicharacter/locales/zh-cn.lua index 2b1caca5a..9f45bc58a 100644 --- a/[core]/esx_multicharacter/locales/zh-cn.lua +++ b/[core]/esx_multicharacter/locales/zh-cn.lua @@ -1,33 +1,33 @@ Locales["zh-cn"] = { - ["male"] = "男性", - ["female"] = "女性", - ["select_char"] = "选择角色", - ["select_char_description"] = "请选择已存在的游戏角色进入.", - ["create_char"] = "创建新角色", - ["char_play"] = "游玩", - ["char_play_description"] = "继而进入城镇.", - ["char_disabled"] = "不可用", - ["char_disabled_description"] = "此角色无法使用.", - ["char_delete"] = "移除", - ["char_delete_description"] = "永久删除此角色.", - ["char_delete_confirmation"] = "删除确认", - ["char_delete_confirmation_description"] = "您确定要删除选定的角色吗?", - ["char_delete_yes_description"] = "是的,我确定删除选定的角色", - ["char_delete_no_description"] = "取消,并返回至角色选项", - ["character"] = "游戏角色: %s", - ["return"] = "返回", - ["return_description"] = "返回至角色选择.", - ["command_setslots"] = "设置玩家多玩家插槽数量", - ["command_remslots"] = "移除玩家多角色位置数量", - ["command_enablechar"] = "启用玩家游玩某个角色", - ["command_disablechar"] = "禁用玩家游玩某个角色", - ["command_charslot"] = "玩家的角色数量上限", - ["command_identifier"] = "玩家标识符", - ["command_slots"] = "# 插槽数量", - ["slotsadd"] = "增加: %s 角色插槽至 %s", - ["slotsedit"] = "成功配置 %s 角色插槽至 %s", - ["slotsrem"] = "成功移除角色插槽 %s", - ["charenabled"] = "您开启了角色: #%s使用权, 拥有人%s", - ["chardisabled"] = "您关闭了角色: #%s使用权, 拥有人%s", - ["charnotfound"] = "角色信息: #%s ,拥有人:%s 并不存在", + ["male"] = "男性", + ["female"] = "女性", + ["select_char"] = "选择角色", + ["select_char_description"] = "请选择已存在的游戏角色进入.", + ["create_char"] = "创建新角色", + ["char_play"] = "游玩", + ["char_play_description"] = "继而进入城镇.", + ["char_disabled"] = "不可用", + ["char_disabled_description"] = "此角色无法使用.", + ["char_delete"] = "移除", + ["char_delete_description"] = "永久删除此角色.", + ["char_delete_confirmation"] = "删除确认", + ["char_delete_confirmation_description"] = "您确定要删除选定的角色吗?", + ["char_delete_yes_description"] = "是的,我确定删除选定的角色", + ["char_delete_no_description"] = "取消,并返回至角色选项", + ["character"] = "游戏角色: %s", + ["return"] = "返回", + ["return_description"] = "返回至角色选择.", + ["command_setslots"] = "设置玩家多玩家插槽数量", + ["command_remslots"] = "移除玩家多角色位置数量", + ["command_enablechar"] = "启用玩家游玩某个角色", + ["command_disablechar"] = "禁用玩家游玩某个角色", + ["command_charslot"] = "玩家的角色数量上限", + ["command_identifier"] = "玩家标识符", + ["command_slots"] = "# 插槽数量", + ["slotsadd"] = "增加: %s 角色插槽至 %s", + ["slotsedit"] = "成功配置 %s 角色插槽至 %s", + ["slotsrem"] = "成功移除角色插槽 %s", + ["charenabled"] = "您开启了角色: #%s使用权, 拥有人%s", + ["chardisabled"] = "您关闭了角色: #%s使用权, 拥有人%s", + ["charnotfound"] = "角色信息: #%s ,拥有人:%s 并不存在", } diff --git a/[core]/esx_multicharacter/server/commands.lua b/[core]/esx_multicharacter/server/commands.lua index bd35aec4d..51e657e81 100644 --- a/[core]/esx_multicharacter/server/commands.lua +++ b/[core]/esx_multicharacter/server/commands.lua @@ -1,79 +1,103 @@ -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' } - } -}) +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" }, + }, + } +) -ESX.RegisterCommand('remslots', 'admin', function(xPlayer, args) - local slots = MySQL.scalar.await('SELECT `slots` FROM `multicharacter_slots` WHERE identifier = ?', { - args.identifier - }) +ESX.RegisterCommand( + "remslots", + "admin", + function(xPlayer, args) + local slots = MySQL.scalar.await("SELECT `slots` FROM `multicharacter_slots` WHERE identifier = ?", { + args.identifier, + }) - if slots then - MySQL.update('DELETE FROM `multicharacter_slots` WHERE `identifier` = ?', { - args.identifier - }) - 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' } - } -}) + if slots then + MySQL.update("DELETE FROM `multicharacter_slots` WHERE `identifier` = ?", { + args.identifier, + }) + 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" }, + }, + } +) -ESX.RegisterCommand('enablechar', 'admin', function(xPlayer, args) - local selectedCharacter = 'char' .. args.charslot .. ':' .. args.identifier; +ESX.RegisterCommand( + "enablechar", + "admin", + function(xPlayer, args) + local selectedCharacter = "char" .. args.charslot .. ":" .. args.identifier - MySQL.update('UPDATE `users` SET `disabled` = 0 WHERE identifier = ?', { - selectedCharacter - }, function(result) - if result > 0 then - xPlayer.triggerEvent('esx:showNotification', TranslateCap('charenabled', args.charslot, args.identifier)) - else - 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' } - } -}) + MySQL.update("UPDATE `users` SET `disabled` = 0 WHERE identifier = ?", { + selectedCharacter, + }, function(result) + if result > 0 then + xPlayer.triggerEvent("esx:showNotification", TranslateCap("charenabled", args.charslot, args.identifier)) + else + 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" }, + }, + } +) -ESX.RegisterCommand('disablechar', 'admin', function(xPlayer, args) - local selectedCharacter = 'char' .. args.charslot .. ':' .. args.identifier; +ESX.RegisterCommand( + "disablechar", + "admin", + function(xPlayer, args) + local selectedCharacter = "char" .. args.charslot .. ":" .. args.identifier - MySQL.update('UPDATE `users` SET `disabled` = 1 WHERE identifier = ?', { - selectedCharacter - }, function(result) - if result > 0 then - xPlayer.triggerEvent('esx:showNotification', TranslateCap('chardisabled', args.charslot, args.identifier)) - else - 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' } - } -}) + MySQL.update("UPDATE `users` SET `disabled` = 1 WHERE identifier = ?", { + selectedCharacter, + }, function(result) + if result > 0 then + xPlayer.triggerEvent("esx:showNotification", TranslateCap("chardisabled", args.charslot, args.identifier)) + else + 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" }, + }, + } +) -RegisterCommand('forcelog', function(source) - TriggerEvent('esx:playerLogout', source) +RegisterCommand("forcelog", function(source) + TriggerEvent("esx:playerLogout", source) end, true) diff --git a/[core]/esx_multicharacter/server/main.lua b/[core]/esx_multicharacter/server/main.lua index 5e83f6371..8a5f9b2bb 100644 --- a/[core]/esx_multicharacter/server/main.lua +++ b/[core]/esx_multicharacter/server/main.lua @@ -1,240 +1,248 @@ local databaseConnected = false local databaseFound = false -local oneSyncState = GetConvar('onesync', 'off') - -local DATABASE do - local connectionString = GetConvar('mysql_connection_string', ''); - - if connectionString == '' then - error(connectionString..'\n^1Unable to start Multicharacter - unable to determine database from mysql_connection_string^0', 0) - elseif connectionString:find('mysql://') then - connectionString = connectionString:sub(9, -1) - DATABASE = connectionString:sub(connectionString:find('/')+1, -1):gsub('[%?]+[%w%p]*$', '') - databaseFound = true - else - connectionString = {string.strsplit(';', connectionString)} - - for i = 1, #connectionString do - local v = connectionString[i] - if v:match('database') then - DATABASE = v:sub(10, #v) - databaseFound = true - break - end - end - end +local oneSyncState = GetConvar("onesync", "off") + +local DATABASE +do + local connectionString = GetConvar("mysql_connection_string", "") + + if connectionString == "" then + error(connectionString .. "\n^1Unable to start Multicharacter - unable to determine database from mysql_connection_string^0", 0) + elseif connectionString:find("mysql://") then + connectionString = connectionString:sub(9, -1) + DATABASE = connectionString:sub(connectionString:find("/") + 1, -1):gsub("[%?]+[%w%p]*$", "") + databaseFound = true + else + connectionString = { string.strsplit(";", connectionString) } + + for i = 1, #connectionString do + local v = connectionString[i] + if v:match("database") then + DATABASE = v:sub(10, #v) + databaseFound = true + break + end + end + end end -local DB_TABLES = {users = 'identifier'} +local DB_TABLES = { users = "identifier" } local SLOTS = Config.Slots or 4 -local PREFIX = Config.Prefix or 'char' -local PRIMARY_IDENTIFIER = ESX.GetConfig().Identifier or GetConvar('sv_lan', '') == 'true' and 'ip' or "license" +local PREFIX = Config.Prefix or "char" +local PRIMARY_IDENTIFIER = ESX.GetConfig().Identifier or GetConvar("sv_lan", "") == "true" and "ip" or "license" local function GetIdentifier(source) - local fxDk = GetConvarInt('sv_fxdkMode', 0) + local fxDk = GetConvarInt("sv_fxdkMode", 0) if fxDk == 1 then return "ESX-DEBUG-LICENCE" end - + local identifier = GetPlayerIdentifierByType(source, PRIMARY_IDENTIFIER) - return identifier and identifier:gsub(PRIMARY_IDENTIFIER .. ':', '') + return identifier and identifier:gsub(PRIMARY_IDENTIFIER .. ":", "") end if next(ESX.Players) then - local players = table.clone(ESX.Players) - table.wipe(ESX.Players) - for _, v in pairs(players) do - ESX.Players[GetIdentifier(v.source)] = true - end -else ESX.Players = {} end + local players = table.clone(ESX.Players) + table.wipe(ESX.Players) + for _, v in pairs(players) do + ESX.Players[GetIdentifier(v.source)] = true + end +else + ESX.Players = {} +end local function SetupCharacters(source) - while not databaseConnected do Wait(100) end - - local identifier = GetIdentifier(source) - ESX.Players[identifier] = true - - local slots = MySQL.scalar.await('SELECT slots FROM multicharacter_slots WHERE identifier = ?', { identifier }) or SLOTS - identifier = PREFIX..'%:'..identifier - - local result = MySQL.query.await('SELECT identifier, accounts, job, job_grade, firstname, lastname, dateofbirth, sex, skin, disabled FROM users WHERE identifier LIKE ? LIMIT ?', {identifier, slots}) - local characters - - if result then - local characterCount = #result - characters = table.create(0, characterCount) - - for i = 1, characterCount, 1 do - local v = result[i] - local job, grade = v.job or 'unemployed', tostring(v.job_grade) - - if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then - if job ~= 'unemployed' then grade = ESX.Jobs[job].grades[grade].label else grade = '' end - job = ESX.Jobs[job].label - end - - local accounts = json.decode(v.accounts) - local id = tonumber(string.sub(v.identifier, #PREFIX+1, string.find(v.identifier, ':')-1)) - - characters[id] = { - id = id, - bank = accounts.bank, - money = accounts.money, - job = job, - job_grade = grade, - firstname = v.firstname, - lastname = v.lastname, - dateofbirth = v.dateofbirth, - skin = v.skin and json.decode(v.skin) or {}, - disabled = v.disabled, - sex = v.sex == 'm' and TranslateCap('male') or TranslateCap('female') - } - end - end - - TriggerClientEvent('esx_multicharacter:SetupUI', source, characters, slots) + while not databaseConnected do + Wait(100) + end + + local identifier = GetIdentifier(source) + ESX.Players[identifier] = true + + local slots = MySQL.scalar.await("SELECT slots FROM multicharacter_slots WHERE identifier = ?", { identifier }) or SLOTS + identifier = PREFIX .. "%:" .. identifier + + local result = MySQL.query.await("SELECT identifier, accounts, job, job_grade, firstname, lastname, dateofbirth, sex, skin, disabled FROM users WHERE identifier LIKE ? LIMIT ?", { identifier, slots }) + local characters + + if result then + local characterCount = #result + characters = table.create(0, characterCount) + + for i = 1, characterCount, 1 do + local v = result[i] + local job, grade = v.job or "unemployed", tostring(v.job_grade) + + if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then + if job ~= "unemployed" then + grade = ESX.Jobs[job].grades[grade].label + else + grade = "" + end + job = ESX.Jobs[job].label + end + + local accounts = json.decode(v.accounts) + local id = tonumber(string.sub(v.identifier, #PREFIX + 1, string.find(v.identifier, ":") - 1)) + + characters[id] = { + id = id, + bank = accounts.bank, + money = accounts.money, + job = job, + job_grade = grade, + firstname = v.firstname, + lastname = v.lastname, + dateofbirth = v.dateofbirth, + skin = v.skin and json.decode(v.skin) or {}, + disabled = v.disabled, + sex = v.sex == "m" and TranslateCap("male") or TranslateCap("female"), + } + end + end + + TriggerClientEvent("esx_multicharacter:SetupUI", source, characters, slots) end -AddEventHandler('playerConnecting', function(_, _, deferrals) - deferrals.defer() - local identifier = GetIdentifier(source) - if oneSyncState == "off" or oneSyncState == "legacy" then - return deferrals.done(('[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s'):format(oneSyncState)) - end - - if not databaseFound then - deferrals.done('[ESX] Cannot Find the servers mysql_connection_string. Please make sure it is correctly configured in your server.cfg') - end - - if not databaseConnected then - deferrals.done('[ESX] OxMySQL Was Unable To Connect to your database. Please make sure it is turned on and correctly configured in your server.cfg') - end - - if identifier then - - if not ESX.GetConfig().EnableDebug then - if ESX.Players[identifier] then - deferrals.done(('[ESX Multicharacter] A player is already connected to the server with this identifier.\nYour identifier: %s:%s'):format(PRIMARY_IDENTIFIER, identifier)) - else - deferrals.done() - end - else - deferrals.done() - end - else - deferrals.done(('Unable to retrieve player identifier.\nIdentifier type: %s'):format(PRIMARY_IDENTIFIER)) - end +AddEventHandler("playerConnecting", function(_, _, deferrals) + deferrals.defer() + local identifier = GetIdentifier(source) + if oneSyncState == "off" or oneSyncState == "legacy" then + return deferrals.done(("[ESX] ESX Requires Onesync Infinity to work. This server currently has Onesync set to: %s"):format(oneSyncState)) + end + + if not databaseFound then + deferrals.done("[ESX] Cannot Find the servers mysql_connection_string. Please make sure it is correctly configured in your server.cfg") + end + + if not databaseConnected then + deferrals.done("[ESX] OxMySQL Was Unable To Connect to your database. Please make sure it is turned on and correctly configured in your server.cfg") + end + + if identifier then + if not ESX.GetConfig().EnableDebug then + if ESX.Players[identifier] then + deferrals.done(("[ESX Multicharacter] A player is already connected to the server with this identifier.\nYour identifier: %s:%s"):format(PRIMARY_IDENTIFIER, identifier)) + else + deferrals.done() + end + else + deferrals.done() + end + else + deferrals.done(("Unable to retrieve player identifier.\nIdentifier type: %s"):format(PRIMARY_IDENTIFIER)) + end end) local function DeleteCharacter(source, charid) - local identifier = ('%s%s:%s'):format(PREFIX, charid, GetIdentifier(source)) - local query = 'DELETE FROM %s WHERE %s = ?' - local queries = {} - local count = 0 - - for table, column in pairs(DB_TABLES) do - count = count + 1 - queries[count] = {query = query:format(table, column), values = {identifier}} - end - - MySQL.transaction(queries, function(result) - if result then - print(('[^2INFO^7] Player ^5%s %s^7 has deleted a character ^5(%s)^7'):format(GetPlayerName(source), source, identifier)) - Wait(50) - SetupCharacters(source) - else - error('\n^1Transaction failed while trying to delete '..identifier..'^0') - end - end) + local identifier = ("%s%s:%s"):format(PREFIX, charid, GetIdentifier(source)) + local query = "DELETE FROM %s WHERE %s = ?" + local queries = {} + local count = 0 + + for table, column in pairs(DB_TABLES) do + count = count + 1 + queries[count] = { query = query:format(table, column), values = { identifier } } + end + + MySQL.transaction(queries, function(result) + if result then + print(("[^2INFO^7] Player ^5%s %s^7 has deleted a character ^5(%s)^7"):format(GetPlayerName(source), source, identifier)) + Wait(50) + SetupCharacters(source) + else + error("\n^1Transaction failed while trying to delete " .. identifier .. "^0") + end + end) end MySQL.ready(function() - local length = 42 + #PREFIX - local DB_COLUMNS = MySQL.query.await(('SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "%s" AND DATA_TYPE = "varchar" AND COLUMN_NAME IN (?)'):format(DATABASE, length), { - {'identifier', 'owner'} - }) - - if DB_COLUMNS then - local columns = {} - local count = 0 - - for i = 1, #DB_COLUMNS do - local column = DB_COLUMNS[i] - DB_TABLES[column.TABLE_NAME] = column.COLUMN_NAME - - if column?.CHARACTER_MAXIMUM_LENGTH ~= length then - count = count + 1 - columns[column.TABLE_NAME] = column.COLUMN_NAME - end - end - - if next(columns) then - local query = 'ALTER TABLE `%s` MODIFY COLUMN `%s` VARCHAR(%s)' - local queries = table.create(count, 0) - - for k, v in pairs(columns) do - queries[#queries+1] = {query = query:format(k, v, length)} - end - - if MySQL.transaction.await(queries) then - print(('[^2INFO^7] Updated ^5%s^7 columns to use ^5VARCHAR(%s)^7'):format(count, length)) - else - print(('[^2INFO^7] Unable to update ^5%s^7 columns to use ^5VARCHAR(%s)^7'):format(count, length)) - end - end - - databaseConnected = true - - while not next(ESX.Jobs) do - Wait(500) - ESX.Jobs = ESX.GetJobs() - end - end + local length = 42 + #PREFIX + local DB_COLUMNS = MySQL.query.await(('SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "%s" AND DATA_TYPE = "varchar" AND COLUMN_NAME IN (?)'):format(DATABASE, length), { + { "identifier", "owner" }, + }) + + if DB_COLUMNS then + local columns = {} + local count = 0 + + for i = 1, #DB_COLUMNS do + local column = DB_COLUMNS[i] + DB_TABLES[column.TABLE_NAME] = column.COLUMN_NAME + + if column?.CHARACTER_MAXIMUM_LENGTH ~= length then + count = count + 1 + columns[column.TABLE_NAME] = column.COLUMN_NAME + end + end + + if next(columns) then + local query = "ALTER TABLE `%s` MODIFY COLUMN `%s` VARCHAR(%s)" + local queries = table.create(count, 0) + + for k, v in pairs(columns) do + queries[#queries + 1] = { query = query:format(k, v, length) } + end + + if MySQL.transaction.await(queries) then + print(("[^2INFO^7] Updated ^5%s^7 columns to use ^5VARCHAR(%s)^7"):format(count, length)) + else + print(("[^2INFO^7] Unable to update ^5%s^7 columns to use ^5VARCHAR(%s)^7"):format(count, length)) + end + end + + databaseConnected = true + + while not next(ESX.Jobs) do + Wait(500) + ESX.Jobs = ESX.GetJobs() + end + end end) -RegisterNetEvent('esx_multicharacter:SetupCharacters', function() - SetupCharacters(source) +RegisterNetEvent("esx_multicharacter:SetupCharacters", function() + SetupCharacters(source) end) local awaitingRegistration = {} -RegisterNetEvent('esx_multicharacter:CharacterChosen', function(charid, isNew) - if type(charid) == 'number' and string.len(charid) <= 2 and type(isNew) == 'boolean' then - if isNew then - awaitingRegistration[source] = charid - else - if not ESX.GetConfig().EnableDebug then - local identifier = PREFIX..charid .. ':' .. GetIdentifier(source) - if ESX.GetPlayerFromIdentifier(identifier) then - DropPlayer(source, 'Your identifier '..identifier..' is already on the server!') - return - end - end - - TriggerEvent('esx:onPlayerJoined', source, PREFIX..charid) - ESX.Players[GetIdentifier(source)] = true - end - end +RegisterNetEvent("esx_multicharacter:CharacterChosen", function(charid, isNew) + if type(charid) == "number" and string.len(charid) <= 2 and type(isNew) == "boolean" then + if isNew then + awaitingRegistration[source] = charid + else + if not ESX.GetConfig().EnableDebug then + local identifier = PREFIX .. charid .. ":" .. GetIdentifier(source) + if ESX.GetPlayerFromIdentifier(identifier) then + DropPlayer(source, "Your identifier " .. identifier .. " is already on the server!") + return + end + end + + TriggerEvent("esx:onPlayerJoined", source, PREFIX .. charid) + ESX.Players[GetIdentifier(source)] = true + end + end end) -AddEventHandler('esx_identity:completedRegistration', function(source, data) - TriggerEvent('esx:onPlayerJoined', source, PREFIX..awaitingRegistration[source], data) - awaitingRegistration[source] = nil - ESX.Players[GetIdentifier(source)] = true +AddEventHandler("esx_identity:completedRegistration", function(source, data) + TriggerEvent("esx:onPlayerJoined", source, PREFIX .. awaitingRegistration[source], data) + awaitingRegistration[source] = nil + ESX.Players[GetIdentifier(source)] = true end) -AddEventHandler('playerDropped', function() - awaitingRegistration[source] = nil - ESX.Players[GetIdentifier(source)] = nil +AddEventHandler("playerDropped", function() + awaitingRegistration[source] = nil + ESX.Players[GetIdentifier(source)] = nil end) -RegisterNetEvent('esx_multicharacter:DeleteCharacter', function(charid) - if Config.CanDelete and type(charid) == 'number' and string.len(charid) <= 2 then - DeleteCharacter(source, charid) - end +RegisterNetEvent("esx_multicharacter:DeleteCharacter", function(charid) + if Config.CanDelete and type(charid) == "number" and string.len(charid) <= 2 then + DeleteCharacter(source, charid) + end end) -RegisterNetEvent('esx_multicharacter:relog', function() - local source = source - TriggerEvent('esx:playerLogout', source) +RegisterNetEvent("esx_multicharacter:relog", function() + local source = source + TriggerEvent("esx:playerLogout", source) end) diff --git a/[core]/esx_notify/Notify.lua b/[core]/esx_notify/Notify.lua index 03e516ee6..44f19fb6c 100644 --- a/[core]/esx_notify/Notify.lua +++ b/[core]/esx_notify/Notify.lua @@ -5,9 +5,9 @@ local Debug = ESX.GetConfig().EnableDebug ---@param message any the message :D local function Notify(notificatonType, length, message) if Debug then - print(('1 %s'):format(tostring(notificatonType))) - print(('2 %s'):format(tostring(length))) - print(('3 %s'):format(message)) + print(("1 %s"):format(tostring(notificatonType))) + print(("2 %s"):format(tostring(length))) + print(("3 %s"):format(message)) end if type(notificatonType) ~= "string" then @@ -19,25 +19,24 @@ local function Notify(notificatonType, length, message) end if Debug then - print(('4 %s'):format(tostring(notificatonType))) - print(('5 %s'):format(tostring(length))) - print(('6 %s'):format(message)) + print(("4 %s"):format(tostring(notificatonType))) + print(("5 %s"):format(tostring(length))) + print(("6 %s"):format(message)) end SendNuiMessage(json.encode({ type = notificatonType or "info", length = length or 3000, - message = message or "ESX-Notify" + message = message or "ESX-Notify", })) end - -exports('Notify', Notify) +exports("Notify", Notify) RegisterNetEvent("ESX:Notify", Notify) if Debug then RegisterCommand("oldnotify", function() - ESX.ShowNotification('No Waypoint Set.', true, false, 140) + ESX.ShowNotification("No Waypoint Set.", true, false, 140) end) RegisterCommand("notify", function() diff --git a/[core]/esx_progressbar/Progress.lua b/[core]/esx_progressbar/Progress.lua index abcffec71..e5994ef5a 100644 --- a/[core]/esx_progressbar/Progress.lua +++ b/[core]/esx_progressbar/Progress.lua @@ -15,11 +15,13 @@ local function Progressbar(message, length, Options) TaskStartScenarioInPlace(ESX.PlayerData.ped, CurrentProgress.animation.Scenario, 0, true) end end - if CurrentProgress.FreezePlayer then FreezeEntityPosition(PlayerPedId(), CurrentProgress.FreezePlayer) end + if CurrentProgress.FreezePlayer then + FreezeEntityPosition(PlayerPedId(), CurrentProgress.FreezePlayer) + end SendNUIMessage({ type = "Progressbar", length = length or 3000, - message = message or "ESX-Framework" + message = message or "ESX-Framework", }) CurrentProgress.length = length or 3000 while CurrentProgress ~= nil do @@ -27,8 +29,12 @@ local function Progressbar(message, length, Options) CurrentProgress.length = CurrentProgress.length - 1000 else ClearPedTasks(ESX.PlayerData.ped) - if CurrentProgress.FreezePlayer then FreezeEntityPosition(PlayerPedId(), false) end - if CurrentProgress.onFinish then CurrentProgress.onFinish() end + if CurrentProgress.FreezePlayer then + FreezeEntityPosition(PlayerPedId(), false) + end + if CurrentProgress.onFinish then + CurrentProgress.onFinish() + end CurrentProgress = nil end Wait(1000) @@ -36,12 +42,19 @@ local function Progressbar(message, length, Options) end local function CancelProgressbar() - if not CurrentProgress then return end + if not CurrentProgress then + return + end SendNUIMessage({ - type = "Close" + type = "Close", }) ClearPedTasks(ESX.PlayerData.ped) - if CurrentProgress.FreezePlayer then FreezeEntityPosition(PlayerPedId(), false) end + if CurrentProgress.FreezePlayer then + FreezeEntityPosition(PlayerPedId(), false) + end + if CurrentProgress.onCancel then + CurrentProgress.onCancel() + end CurrentProgress.canceled = true CurrentProgress.length = 0 CurrentProgress = nil @@ -49,5 +62,5 @@ end ESX.RegisterInput("cancelprog", "[ProgressBar] Cancel Progressbar", "keyboard", "BACK", CancelProgressbar) -exports('Progressbar', Progressbar) -exports('CancelProgressbar', CancelProgressbar) +exports("Progressbar", Progressbar) +exports("CancelProgressbar", CancelProgressbar) diff --git a/[core]/esx_skin/client/main.lua b/[core]/esx_skin/client/main.lua index 8d952fdec..83485da9c 100644 --- a/[core]/esx_skin/client/main.lua +++ b/[core]/esx_skin/client/main.lua @@ -1,16 +1,18 @@ local lastSkin, cam, isCameraActive local firstSpawn, zoomOffset, camOffset, heading = true, 0.0, 0.0, 90.0 -RegisterNetEvent('esx:playerLoaded') -AddEventHandler('esx:playerLoaded', function(_, _, skin) - TriggerServerEvent('esx_skin:setWeight', skin) +RegisterNetEvent("esx:playerLoaded") +AddEventHandler("esx:playerLoaded", function(_, _, skin) + TriggerServerEvent("esx_skin:setWeight", skin) end) function OpenMenu(submitCb, cancelCb, restrict) local playerPed = PlayerPedId() - TriggerEvent('skinchanger:getSkin', function(skin) lastSkin = skin end) - TriggerEvent('skinchanger:getData', function(components, maxVals) + TriggerEvent("skinchanger:getSkin", function(skin) + lastSkin = skin + end) + TriggerEvent("skinchanger:getData", function(components, maxVals) local elements = {} local _components = {} @@ -51,7 +53,7 @@ function OpenMenu(submitCb, cancelCb, restrict) textureof = _components[i].textureof, zoomOffset = _components[i].zoomOffset, camOffset = _components[i].camOffset, - type = 'slider' + type = "slider", } for k, v in pairs(maxVals) do @@ -68,19 +70,21 @@ function OpenMenu(submitCb, cancelCb, restrict) zoomOffset = _components[1].zoomOffset camOffset = _components[1].camOffset - ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'skin', { - title = TranslateCap('skin_menu'), - align = 'bottom-left', - elements = elements + ESX.UI.Menu.Open("default", GetCurrentResourceName(), "skin", { + title = TranslateCap("skin_menu"), + align = "bottom-left", + elements = elements, }, function(data, menu) - TriggerEvent('skinchanger:getSkin', function(skin) lastSkin = skin end) + TriggerEvent("skinchanger:getSkin", function(skin) + lastSkin = skin + end) submitCb(data, menu) DeleteSkinCam() end, function(data, menu) menu.close() DeleteSkinCam() - TriggerEvent('skinchanger:loadSkin', lastSkin) + TriggerEvent("skinchanger:loadSkin", lastSkin) if cancelCb ~= nil then cancelCb(data, menu) @@ -88,17 +92,19 @@ function OpenMenu(submitCb, cancelCb, restrict) end, function(data, menu) local skin, components, maxVals - TriggerEvent('skinchanger:getSkin', function(getSkin) skin = getSkin end) + TriggerEvent("skinchanger:getSkin", function(getSkin) + skin = getSkin + end) zoomOffset = data.current.zoomOffset camOffset = data.current.camOffset if skin[data.current.name] ~= data.current.value then -- Change skin element - TriggerEvent('skinchanger:change', data.current.name, data.current.value) + TriggerEvent("skinchanger:change", data.current.name, data.current.value) -- Update max values - TriggerEvent('skinchanger:getData', function(comp, max) + TriggerEvent("skinchanger:getData", function(comp, max) components, maxVals = comp, max end) @@ -125,7 +131,7 @@ end function CreateSkinCam() if not DoesCamExist(cam) then - cam = CreateCam('DEFAULT_SCRIPTED_CAMERA', true) + cam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true) end local playerPed = PlayerPedId() @@ -162,18 +168,18 @@ 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 * customPI - local theta = { + local angle = heading * customPI + local theta = { x = math.cos(angle), - y = math.sin(angle) + y = math.sin(angle), } - local pos = { + local pos = { x = coords.x + (zoomOffset * theta.x), - y = coords.y + (zoomOffset * theta.y) + y = coords.y + (zoomOffset * theta.y), } local angleToLook = heading - 140.0 @@ -186,18 +192,18 @@ CreateThread(function() angleToLook = angleToLook * customPI local thetaToLook = { x = math.cos(angleToLook), - y = math.sin(angleToLook) + y = math.sin(angleToLook), } local posToLook = { x = coords.x + (zoomOffset * thetaToLook.x), - y = coords.y + (zoomOffset * thetaToLook.y) + y = coords.y + (zoomOffset * thetaToLook.y), } SetCamCoord(cam, pos.x, pos.y, coords.z + camOffset) PointCamAtCoord(cam, posToLook.x, posToLook.y, coords.z + camOffset) - ESX.ShowHelpNotification(TranslateCap('use_rotate_view')) + ESX.ShowHelpNotification(TranslateCap("use_rotate_view")) end Wait(sleep) end @@ -230,14 +236,16 @@ CreateThread(function() end) function OpenSaveableMenu(submitCb, cancelCb, restrict) - TriggerEvent('skinchanger:getSkin', function(skin) lastSkin = skin end) + TriggerEvent("skinchanger:getSkin", function(skin) + lastSkin = skin + end) OpenMenu(function(data, menu) menu.close() DeleteSkinCam() - TriggerEvent('skinchanger:getSkin', function(skin) - TriggerServerEvent('esx_skin:save', skin) + TriggerEvent("skinchanger:getSkin", function(skin) + TriggerServerEvent("esx_skin:save", skin) if submitCb ~= nil then submitCb(data, menu) @@ -246,24 +254,24 @@ function OpenSaveableMenu(submitCb, cancelCb, restrict) end, cancelCb, restrict) end -AddEventHandler('esx_skin:resetFirstSpawn', function() +AddEventHandler("esx_skin:resetFirstSpawn", function() firstSpawn = true ESX.PlayerLoaded = false end) -AddEventHandler('esx_skin:playerRegistered', function() +AddEventHandler("esx_skin:playerRegistered", function() CreateThread(function() while not ESX.PlayerLoaded do Wait(100) end if firstSpawn then - ESX.TriggerServerCallback('esx_skin:getPlayerSkin', function(skin) + 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) + TriggerEvent("skinchanger:loadSkin", skin) Wait(100) end end) @@ -273,37 +281,41 @@ AddEventHandler('esx_skin:playerRegistered', function() end) end) -RegisterNetEvent('esx:playerLoaded') -AddEventHandler('esx:playerLoaded', function() +RegisterNetEvent("esx:playerLoaded") +AddEventHandler("esx:playerLoaded", function() ESX.PlayerLoaded = true end) -AddEventHandler('esx_skin:getLastSkin', function(cb) cb(lastSkin) end) -AddEventHandler('esx_skin:setLastSkin', function(skin) lastSkin = skin end) +AddEventHandler("esx_skin:getLastSkin", function(cb) + cb(lastSkin) +end) +AddEventHandler("esx_skin:setLastSkin", function(skin) + lastSkin = skin +end) -RegisterNetEvent('esx_skin:openMenu') -AddEventHandler('esx_skin:openMenu', function(submitCb, cancelCb) +RegisterNetEvent("esx_skin:openMenu") +AddEventHandler("esx_skin:openMenu", function(submitCb, cancelCb) OpenMenu(submitCb, cancelCb, nil) end) -RegisterNetEvent('esx_skin:openRestrictedMenu') -AddEventHandler('esx_skin:openRestrictedMenu', function(submitCb, cancelCb, restrict) +RegisterNetEvent("esx_skin:openRestrictedMenu") +AddEventHandler("esx_skin:openRestrictedMenu", function(submitCb, cancelCb, restrict) OpenMenu(submitCb, cancelCb, restrict) end) -RegisterNetEvent('esx_skin:openSaveableMenu') -AddEventHandler('esx_skin:openSaveableMenu', function(submitCb, cancelCb) +RegisterNetEvent("esx_skin:openSaveableMenu") +AddEventHandler("esx_skin:openSaveableMenu", function(submitCb, cancelCb) OpenSaveableMenu(submitCb, cancelCb, nil) end) -RegisterNetEvent('esx_skin:openSaveableRestrictedMenu') -AddEventHandler('esx_skin:openSaveableRestrictedMenu', function(submitCb, cancelCb, restrict) +RegisterNetEvent("esx_skin:openSaveableRestrictedMenu") +AddEventHandler("esx_skin:openSaveableRestrictedMenu", function(submitCb, cancelCb, restrict) OpenSaveableMenu(submitCb, cancelCb, restrict) end) -RegisterNetEvent('esx_skin:requestSaveSkin') -AddEventHandler('esx_skin:requestSaveSkin', function() - TriggerEvent('skinchanger:getSkin', function(skin) - TriggerServerEvent('esx_skin:responseSaveSkin', skin) +RegisterNetEvent("esx_skin:requestSaveSkin") +AddEventHandler("esx_skin:requestSaveSkin", function() + TriggerEvent("skinchanger:getSkin", function(skin) + TriggerServerEvent("esx_skin:responseSaveSkin", skin) end) end) diff --git a/[core]/esx_skin/config.lua b/[core]/esx_skin/config.lua index 448182ce6..1d2f990f5 100644 --- a/[core]/esx_skin/config.lua +++ b/[core]/esx_skin/config.lua @@ -1,10 +1,10 @@ Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config.Locale = GetConvar("esx:locale", "en") Config.BackpackWeight = { - [40] = 16, - [41] = 20, - [44] = 25, - [45] = 23 + [40] = 16, + [41] = 20, + [44] = 25, + [45] = 23, } diff --git a/[core]/esx_skin/locales/da.lua b/[core]/esx_skin/locales/da.lua index 5d8c452fb..e6d8b8f89 100644 --- a/[core]/esx_skin/locales/da.lua +++ b/[core]/esx_skin/locales/da.lua @@ -1,6 +1,6 @@ -Locales["da"] = { - ["skin_menu"] = "Udseende Menu", - ["use_rotate_view"] = "brug ~INPUT_FRONTEND_LS~ og ~INPUT_CHARACTER_WHEEL~ for at dreje kameraet.", - ["skin"] = "skift udseende", - ["saveskin"] = "gem udseende til en fil", -} +Locales["da"] = { + ["skin_menu"] = "Udseende Menu", + ["use_rotate_view"] = "brug ~INPUT_FRONTEND_LS~ og ~INPUT_CHARACTER_WHEEL~ for at dreje kameraet.", + ["skin"] = "skift udseende", + ["saveskin"] = "gem udseende til en fil", +} diff --git a/[core]/esx_skin/locales/en.lua b/[core]/esx_skin/locales/en.lua index ac16f930d..5372bb937 100644 --- a/[core]/esx_skin/locales/en.lua +++ b/[core]/esx_skin/locales/en.lua @@ -1,6 +1,6 @@ Locales["en"] = { - ["skin_menu"] = "Skin Menu", - ["use_rotate_view"] = "use ~INPUT_FRONTEND_LS~ and ~INPUT_CHARACTER_WHEEL~ to rotate the view.", - ["skin"] = "change skin", - ["saveskin"] = "save skin to a file", + ["skin_menu"] = "Skin Menu", + ["use_rotate_view"] = "use ~INPUT_FRONTEND_LS~ and ~INPUT_CHARACTER_WHEEL~ to rotate the view.", + ["skin"] = "change skin", + ["saveskin"] = "save skin to a file", } diff --git a/[core]/esx_skin/locales/es.lua b/[core]/esx_skin/locales/es.lua index 16ac42f9c..2cda4f346 100644 --- a/[core]/esx_skin/locales/es.lua +++ b/[core]/esx_skin/locales/es.lua @@ -1,6 +1,6 @@ Locales["es"] = { - ["skin_menu"] = "Menú de apariencia", - ["use_rotate_view"] = "Utiliza ~INPUT_FRONTEND_LS~ y ~INPUT_CHARACTER_WHEEL~ para rotar la vista.", - ["skin"] = "Cambiar aspecto", - ["saveskin"] = "Guarda tu aspecto actual", + ["skin_menu"] = "Menú de apariencia", + ["use_rotate_view"] = "Utiliza ~INPUT_FRONTEND_LS~ y ~INPUT_CHARACTER_WHEEL~ para rotar la vista.", + ["skin"] = "Cambiar aspecto", + ["saveskin"] = "Guarda tu aspecto actual", } diff --git a/[core]/esx_skin/locales/fi.lua b/[core]/esx_skin/locales/fi.lua index 436299827..b725260d8 100644 --- a/[core]/esx_skin/locales/fi.lua +++ b/[core]/esx_skin/locales/fi.lua @@ -1,6 +1,6 @@ Locales["fi"] = { - ["skin_menu"] = "Ulkonäkö", - ["use_rotate_view"] = "Paina ~INPUT_FRONTEND_LS~ tai ~INPUT_CHARACTER_WHEEL~ liikutaaksesi kameraa.", - ["skin"] = "Muokkaa ulkonäköä", - ["saveskin"] = "Tallenna", + ["skin_menu"] = "Ulkonäkö", + ["use_rotate_view"] = "Paina ~INPUT_FRONTEND_LS~ tai ~INPUT_CHARACTER_WHEEL~ liikutaaksesi kameraa.", + ["skin"] = "Muokkaa ulkonäköä", + ["saveskin"] = "Tallenna", } diff --git a/[core]/esx_skin/locales/fr.lua b/[core]/esx_skin/locales/fr.lua index 3e0c96555..cce0db0ac 100644 --- a/[core]/esx_skin/locales/fr.lua +++ b/[core]/esx_skin/locales/fr.lua @@ -1,6 +1,6 @@ Locales["fr"] = { - ["skin_menu"] = "menu de Skin", - ["use_rotate_view"] = "utilisez ~INPUT_FRONTEND_LS~ et ~INPUT_CHARACTER_WHEEL~ pour tourner la vue.", - ["skin"] = "changer de skin", - ["saveskin"] = "sauvegarder skin dans un fichier", + ["skin_menu"] = "menu de Skin", + ["use_rotate_view"] = "utilisez ~INPUT_FRONTEND_LS~ et ~INPUT_CHARACTER_WHEEL~ pour tourner la vue.", + ["skin"] = "changer de skin", + ["saveskin"] = "sauvegarder skin dans un fichier", } diff --git a/[core]/esx_skin/locales/he.lua b/[core]/esx_skin/locales/he.lua index 283cbdc6b..0e9f93799 100644 --- a/[core]/esx_skin/locales/he.lua +++ b/[core]/esx_skin/locales/he.lua @@ -1,6 +1,6 @@ Locales["he"] = { - ["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/locales/hu.lua b/[core]/esx_skin/locales/hu.lua index ba52b09eb..c7ba9a12f 100644 --- a/[core]/esx_skin/locales/hu.lua +++ b/[core]/esx_skin/locales/hu.lua @@ -1,6 +1,6 @@ Locales["hu"] = { - ["skin_menu"] = "Kinézet Menü", - ["use_rotate_view"] = "Használd ~INPUT_FRONTEND_LS~ vagy ~INPUT_CHARACTER_WHEEL~ gombokat a forgatáshoz", - ["skin"] = "kinézet változtatása", - ["saveskin"] = "kinézet mentése fájlba", + ["skin_menu"] = "Kinézet Menü", + ["use_rotate_view"] = "Használd ~INPUT_FRONTEND_LS~ vagy ~INPUT_CHARACTER_WHEEL~ gombokat a forgatáshoz", + ["skin"] = "kinézet változtatása", + ["saveskin"] = "kinézet mentése fájlba", } diff --git a/[core]/esx_skin/locales/it.lua b/[core]/esx_skin/locales/it.lua index 8a30fe64e..4f434d42b 100644 --- a/[core]/esx_skin/locales/it.lua +++ b/[core]/esx_skin/locales/it.lua @@ -1,6 +1,6 @@ Locales["it"] = { - ["skin_menu"] = "Menu Skin", - ["use_rotate_view"] = "usa ~INPUT_FRONTEND_LS~ e ~INPUT_CHARACTER_WHEEL~ per ruotare la visuale.", - ["skin"] = "cambia skin", - ["saveskin"] = "salvare la skin", + ["skin_menu"] = "Menu Skin", + ["use_rotate_view"] = "usa ~INPUT_FRONTEND_LS~ e ~INPUT_CHARACTER_WHEEL~ per ruotare la visuale.", + ["skin"] = "cambia skin", + ["saveskin"] = "salvare la skin", } diff --git a/[core]/esx_skin/locales/nl.lua b/[core]/esx_skin/locales/nl.lua index c74b4ec04..7c0a10bb0 100644 --- a/[core]/esx_skin/locales/nl.lua +++ b/[core]/esx_skin/locales/nl.lua @@ -1,6 +1,6 @@ Locales["nl"] = { - ["skin_menu"] = "Kleding Menu", - ["use_rotate_view"] = "gebruik ~INPUT_FRONTEND_LS~ en ~INPUT_CHARACTER_WHEEL~ om de camera te draaien.", - ["skin"] = "verander outfit", - ["saveskin"] = "sla outfit op in je kledingkast.", + ["skin_menu"] = "Kleding Menu", + ["use_rotate_view"] = "gebruik ~INPUT_FRONTEND_LS~ en ~INPUT_CHARACTER_WHEEL~ om de camera te draaien.", + ["skin"] = "verander outfit", + ["saveskin"] = "sla outfit op in je kledingkast.", } diff --git a/[core]/esx_skin/locales/pl.lua b/[core]/esx_skin/locales/pl.lua index 8484b0a08..a47859b40 100644 --- a/[core]/esx_skin/locales/pl.lua +++ b/[core]/esx_skin/locales/pl.lua @@ -1,6 +1,6 @@ Locales["pl"] = { - ["skin_menu"] = "menu wyglądu", - ["use_rotate_view"] = "użyj ~INPUT_FRONTEND_LS~ i ~INPUT_CHARACTER_WHEEL~ aby obrócić ekran.", - ["skin"] = "zmień wygląd", - ["saveskin"] = "zapisz wygląd do pliku", + ["skin_menu"] = "menu wyglądu", + ["use_rotate_view"] = "użyj ~INPUT_FRONTEND_LS~ i ~INPUT_CHARACTER_WHEEL~ aby obrócić ekran.", + ["skin"] = "zmień wygląd", + ["saveskin"] = "zapisz wygląd do pliku", } diff --git a/[core]/esx_skin/locales/pt.lua b/[core]/esx_skin/locales/pt.lua index fdf5a8f70..f7916886d 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/sl.lua b/[core]/esx_skin/locales/sl.lua index a29f809c0..3ae559f30 100644 --- a/[core]/esx_skin/locales/sl.lua +++ b/[core]/esx_skin/locales/sl.lua @@ -1,6 +1,6 @@ Locales["sl"] = { - ["skin_menu"] = "Oblacilni menu.", - ["use_rotate_view"] = "Pritisni ~INPUT_FRONTEND_LS~ in ~INPUT_CHARACTER_WHEEL~ da se obracas s pogledom.", - ["skin"] = "Zamenjaj Skin.", - ["saveskin"] = "Shrani skin.", + ["skin_menu"] = "Oblacilni menu.", + ["use_rotate_view"] = "Pritisni ~INPUT_FRONTEND_LS~ in ~INPUT_CHARACTER_WHEEL~ da se obracas s pogledom.", + ["skin"] = "Zamenjaj Skin.", + ["saveskin"] = "Shrani skin.", } diff --git a/[core]/esx_skin/locales/sr.lua b/[core]/esx_skin/locales/sr.lua index df4684067..5ec9324c3 100644 --- a/[core]/esx_skin/locales/sr.lua +++ b/[core]/esx_skin/locales/sr.lua @@ -1,6 +1,6 @@ Locales["sr"] = { - ["skin_menu"] = "Skin Meni", - ["use_rotate_view"] = "koristi ~INPUT_FRONTEND_LS~ i ~INPUT_CHARACTER_WHEEL~ da rotiras kameru.", - ["skin"] = "promeni skin", - ["saveskin"] = "sacuvaj skin u file", + ["skin_menu"] = "Skin Meni", + ["use_rotate_view"] = "koristi ~INPUT_FRONTEND_LS~ i ~INPUT_CHARACTER_WHEEL~ da rotiras kameru.", + ["skin"] = "promeni skin", + ["saveskin"] = "sacuvaj skin u file", } diff --git a/[core]/esx_skin/locales/sv.lua b/[core]/esx_skin/locales/sv.lua new file mode 100644 index 000000000..19519594f --- /dev/null +++ b/[core]/esx_skin/locales/sv.lua @@ -0,0 +1,6 @@ +Locales["sv"] = { + ["skin_menu"] = "Skin Meny", + ["use_rotate_view"] = "Använd ~INPUT_FRONTEND_LS~ och ~INPUT_CHARACTER_WHEEL~ för att rotera.", + ["skin"] = "Ända utseende", + ["saveskin"] = "Spara", +} diff --git a/[core]/esx_skin/locales/zh-cn.lua b/[core]/esx_skin/locales/zh-cn.lua index 49d2f09e7..6eeafdaf7 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 7528c8c25..1804130e2 100644 --- a/[core]/esx_skin/server/main.lua +++ b/[core]/esx_skin/server/main.lua @@ -1,80 +1,80 @@ -RegisterServerEvent('esx_skin:save') -AddEventHandler('esx_skin:save', function(skin) - local xPlayer = ESX.GetPlayerFromId(source) - - 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 - - MySQL.update('UPDATE users SET skin = @skin WHERE identifier = @identifier', { - ['@skin'] = json.encode(skin), - ['@identifier'] = xPlayer.identifier - }) +RegisterServerEvent("esx_skin:save") +AddEventHandler("esx_skin:save", function(skin) + local xPlayer = ESX.GetPlayerFromId(source) + + 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 + + MySQL.update("UPDATE users SET skin = @skin WHERE identifier = @identifier", { + ["@skin"] = json.encode(skin), + ["@identifier"] = xPlayer.identifier, + }) end) -RegisterServerEvent('esx_skin:setWeight') -AddEventHandler('esx_skin:setWeight', function(skin) - local xPlayer = ESX.GetPlayerFromId(source) +RegisterServerEvent("esx_skin:setWeight") +AddEventHandler("esx_skin:setWeight", function(skin) + 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') -AddEventHandler('esx_skin:responseSaveSkin', function(skin) - local xPlayer = ESX.GetPlayerFromId(source) +RegisterServerEvent("esx_skin:responseSaveSkin") +AddEventHandler("esx_skin:responseSaveSkin", function(skin) + local xPlayer = ESX.GetPlayerFromId(source) - if xPlayer.getGroup() == 'admin' then - local file = io.open('resources/[esx]/esx_skin/skins.txt', "a") + if xPlayer.getGroup() == "admin" then + local file = io.open("resources/[esx]/esx_skin/skins.txt", "a") - file:write(json.encode(skin) .. "\n\n") - file:flush() - file:close() - else - print(('[^2INFO^7] ^5%s^7 attempted saving skin to file'):format(xPlayer.getIdentifier())) - end + file:write(json.encode(skin) .. "\n\n") + file:flush() + file:close() + else + print(("[^2INFO^7] ^5%s^7 attempted saving skin to file"):format(xPlayer.getIdentifier())) + end end) -ESX.RegisterServerCallback('esx_skin:getPlayerSkin', function(source, cb) - local xPlayer = ESX.GetPlayerFromId(source) +ESX.RegisterServerCallback("esx_skin:getPlayerSkin", function(source, cb) + local xPlayer = ESX.GetPlayerFromId(source) - MySQL.query('SELECT skin FROM users WHERE identifier = @identifier', { - ['@identifier'] = xPlayer.identifier - }, function(users) - local user, skin = users[1] + MySQL.query("SELECT skin FROM users WHERE identifier = @identifier", { + ["@identifier"] = xPlayer.identifier, + }, function(users) + local user, skin = users[1] - local jobSkin = { - skin_male = xPlayer.job.skin_male, - skin_female = xPlayer.job.skin_female - } + local jobSkin = { + skin_male = xPlayer.job.skin_male, + skin_female = xPlayer.job.skin_female, + } - if user.skin then - skin = json.decode(user.skin) - end + if user.skin then + skin = json.decode(user.skin) + end - cb(skin, jobSkin) - end) + cb(skin, jobSkin) + end) end) -ESX.RegisterCommand('skin', 'admin', function(xPlayer) - xPlayer.triggerEvent('esx_skin:openSaveableMenu') -end, false, { help = TranslateCap('skin') }) +ESX.RegisterCommand("skin", "admin", function(xPlayer) + xPlayer.triggerEvent("esx_skin:openSaveableMenu") +end, false, { help = TranslateCap("skin") }) -ESX.RegisterCommand('skinsave', 'admin', function(xPlayer) - xPlayer.triggerEvent('esx_skin:requestSaveSkin') -end, false, { help = TranslateCap('saveskin') }) +ESX.RegisterCommand("skinsave", "admin", function(xPlayer) + xPlayer.triggerEvent("esx_skin:requestSaveSkin") +end, false, { help = TranslateCap("saveskin") }) diff --git a/[core]/esx_textui/TextUI.lua b/[core]/esx_textui/TextUI.lua index 68aea84ee..de603ebe7 100644 --- a/[core]/esx_textui/TextUI.lua +++ b/[core]/esx_textui/TextUI.lua @@ -5,24 +5,26 @@ local isShowing = false local function TextUI(message, typ) isShowing = true SendNUIMessage({ - action = 'show', - message = message and message or 'ESX-TextUI', - type = type(typ) == "string" and typ or 'info' + action = "show", + message = message and message or "ESX-TextUI", + type = type(typ) == "string" and typ or "info", }) end local function HideUI() - if not isShowing then return end + if not isShowing then + return + end isShowing = false SendNUIMessage({ - action = 'hide' + action = "hide", }) end -exports('TextUI', TextUI) -exports('HideUI', HideUI) -RegisterNetEvent('ESX:TextUI', TextUI) -RegisterNetEvent('ESX:HideUI', HideUI) +exports("TextUI", TextUI) +exports("HideUI", HideUI) +RegisterNetEvent("ESX:TextUI", TextUI) +RegisterNetEvent("ESX:HideUI", HideUI) if Debug then RegisterCommand("textui:error", function() diff --git a/[core]/skinchanger/client/main.lua b/[core]/skinchanger/client/main.lua index d19befd11..276750d1c 100644 --- a/[core]/skinchanger/client/main.lua +++ b/[core]/skinchanger/client/main.lua @@ -37,7 +37,7 @@ function LoadDefaultModel(malePed, cb) cb() end - TriggerEvent('skinchanger:modelLoaded') + TriggerEvent("skinchanger:modelLoaded") end) end @@ -74,7 +74,7 @@ function GetMaxVals() beard_3 = GetNumHairColors() - 1, beard_4 = GetNumHairColors() - 1, hair_1 = GetNumberOfPedDrawableVariations(playerPed, 2) - 1, - hair_2 = GetNumberOfPedTextureVariations(playerPed, 2, Character['hair_1']) - 1, + hair_2 = GetNumberOfPedTextureVariations(playerPed, 2, Character["hair_1"]) - 1, hair_color_1 = GetNumHairColors() - 1, hair_color_2 = GetNumHairColors() - 1, eye_color = 31, @@ -112,35 +112,35 @@ function GetMaxVals() bodyb_3 = GetPedHeadOverlayNum(12) - 1, bodyb_4 = 10, ears_1 = GetNumberOfPedPropDrawableVariations(playerPed, 2) - 1, - ears_2 = GetNumberOfPedPropTextureVariations(playerPed, 2, Character['ears_1'] - 1), + ears_2 = GetNumberOfPedPropTextureVariations(playerPed, 2, Character["ears_1"] - 1), tshirt_1 = GetNumberOfPedDrawableVariations(playerPed, 8) - 1, - tshirt_2 = GetNumberOfPedTextureVariations(playerPed, 8, Character['tshirt_1']) - 1, + tshirt_2 = GetNumberOfPedTextureVariations(playerPed, 8, Character["tshirt_1"]) - 1, torso_1 = GetNumberOfPedDrawableVariations(playerPed, 11) - 1, - torso_2 = GetNumberOfPedTextureVariations(playerPed, 11, Character['torso_1']) - 1, + torso_2 = GetNumberOfPedTextureVariations(playerPed, 11, Character["torso_1"]) - 1, decals_1 = GetNumberOfPedDrawableVariations(playerPed, 10) - 1, - decals_2 = GetNumberOfPedTextureVariations(playerPed, 10, Character['decals_1']) - 1, + decals_2 = GetNumberOfPedTextureVariations(playerPed, 10, Character["decals_1"]) - 1, arms = GetNumberOfPedDrawableVariations(playerPed, 3) - 1, arms_2 = 10, pants_1 = GetNumberOfPedDrawableVariations(playerPed, 4) - 1, - pants_2 = GetNumberOfPedTextureVariations(playerPed, 4, Character['pants_1']) - 1, + pants_2 = GetNumberOfPedTextureVariations(playerPed, 4, Character["pants_1"]) - 1, shoes_1 = GetNumberOfPedDrawableVariations(playerPed, 6) - 1, - shoes_2 = GetNumberOfPedTextureVariations(playerPed, 6, Character['shoes_1']) - 1, + shoes_2 = GetNumberOfPedTextureVariations(playerPed, 6, Character["shoes_1"]) - 1, mask_1 = GetNumberOfPedDrawableVariations(playerPed, 1) - 1, - mask_2 = GetNumberOfPedTextureVariations(playerPed, 1, Character['mask_1']) - 1, + mask_2 = GetNumberOfPedTextureVariations(playerPed, 1, Character["mask_1"]) - 1, bproof_1 = GetNumberOfPedDrawableVariations(playerPed, 9) - 1, - bproof_2 = GetNumberOfPedTextureVariations(playerPed, 9, Character['bproof_1']) - 1, + bproof_2 = GetNumberOfPedTextureVariations(playerPed, 9, Character["bproof_1"]) - 1, chain_1 = GetNumberOfPedDrawableVariations(playerPed, 7) - 1, - chain_2 = GetNumberOfPedTextureVariations(playerPed, 7, Character['chain_1']) - 1, + chain_2 = GetNumberOfPedTextureVariations(playerPed, 7, Character["chain_1"]) - 1, bags_1 = GetNumberOfPedDrawableVariations(playerPed, 5) - 1, - bags_2 = GetNumberOfPedTextureVariations(playerPed, 5, Character['bags_1']) - 1, + bags_2 = GetNumberOfPedTextureVariations(playerPed, 5, Character["bags_1"]) - 1, helmet_1 = GetNumberOfPedPropDrawableVariations(playerPed, 0) - 1, - helmet_2 = GetNumberOfPedPropTextureVariations(playerPed, 0, Character['helmet_1']) - 1, + helmet_2 = GetNumberOfPedPropTextureVariations(playerPed, 0, Character["helmet_1"]) - 1, glasses_1 = GetNumberOfPedPropDrawableVariations(playerPed, 1) - 1, - glasses_2 = GetNumberOfPedPropTextureVariations(playerPed, 1, Character['glasses_1'] - 1), + glasses_2 = GetNumberOfPedPropTextureVariations(playerPed, 1, Character["glasses_1"] - 1), watches_1 = GetNumberOfPedPropDrawableVariations(playerPed, 6) - 1, - watches_2 = GetNumberOfPedPropTextureVariations(playerPed, 6, Character['watches_1']) - 1, + watches_2 = GetNumberOfPedPropTextureVariations(playerPed, 6, Character["watches_1"]) - 1, bracelets_1 = GetNumberOfPedPropDrawableVariations(playerPed, 7) - 1, - bracelets_2 = GetNumberOfPedPropTextureVariations(playerPed, 7, Character['bracelets_1'] - 1) + bracelets_2 = GetNumberOfPedPropTextureVariations(playerPed, 7, Character["bracelets_1"] - 1), } return data @@ -155,130 +155,185 @@ function ApplySkin(skin, clothes) if clothes ~= nil then for k, v in pairs(clothes) do - if k ~= 'sex' and k ~= 'mom' and k ~= 'dad' and k ~= 'face_md_weight' and k ~= 'skin_md_weight' and k ~= - 'nose_1' and k ~= 'nose_2' and k ~= 'nose_3' and k ~= 'nose_4' and k ~= 'nose_5' and k ~= 'nose_6' and k ~= - 'cheeks_1' and k ~= 'cheeks_2' and k ~= 'cheeks_3' and k ~= 'lip_thickness' and k ~= 'jaw_1' and k ~= - 'jaw_2' and k ~= 'chin_1' and k ~= 'chin_2' and k ~= 'chin_3' and k ~= 'chin_4' and k ~= - 'neck_thickness' and k ~= 'age_1' and k ~= 'age_2' and k ~= 'eye_color' and k ~= 'eye_squint' and k ~= - 'beard_1' and k ~= 'beard_2' and k ~= 'beard_3' and k ~= 'beard_4' and k ~= 'hair_1' and k ~= 'hair_2' and - k ~= 'hair_color_1' and k ~= 'hair_color_2' and k ~= 'eyebrows_1' and k ~= 'eyebrows_2' and k ~= - 'eyebrows_3' and k ~= 'eyebrows_4' and k ~= 'eyebrows_5' and k ~= 'eyebrows_6' and k ~= 'makeup_1' and k ~= - 'makeup_2' and k ~= 'makeup_3' and k ~= 'makeup_4' and k ~= 'lipstick_1' and k ~= 'lipstick_2' and k ~= - 'lipstick_3' and k ~= 'lipstick_4' and k ~= 'blemishes_1' and k ~= 'blemishes_2' and k ~= 'blemishes_3' and - k ~= 'blush_1' and k ~= 'blush_2' and k ~= 'blush_3' and k ~= 'complexion_1' and k ~= 'complexion_2' and - k ~= 'sun_1' and k ~= 'sun_2' and k ~= 'moles_1' and k ~= 'moles_2' and k ~= 'chest_1' and k ~= - 'chest_2' and k ~= 'chest_3' and k ~= 'bodyb_1' and k ~= 'bodyb_2' and k ~= 'bodyb_3' and k ~= 'bodyb_4' then + if + k ~= "sex" + and k ~= "mom" + and k ~= "dad" + and k ~= "face_md_weight" + and k ~= "skin_md_weight" + and k ~= "nose_1" + and k ~= "nose_2" + and k ~= "nose_3" + and k ~= "nose_4" + and k ~= "nose_5" + and k ~= "nose_6" + and k ~= "cheeks_1" + and k ~= "cheeks_2" + and k ~= "cheeks_3" + and k ~= "lip_thickness" + and k ~= "jaw_1" + and k ~= "jaw_2" + and k ~= "chin_1" + and k ~= "chin_2" + and k ~= "chin_3" + and k ~= "chin_4" + and k ~= "neck_thickness" + and k ~= "age_1" + and k ~= "age_2" + and k ~= "eye_color" + and k ~= "eye_squint" + and k ~= "beard_1" + and k ~= "beard_2" + and k ~= "beard_3" + and k ~= "beard_4" + and k ~= "hair_1" + and k ~= "hair_2" + and k ~= "hair_color_1" + and k ~= "hair_color_2" + and k ~= "eyebrows_1" + and k ~= "eyebrows_2" + and k ~= "eyebrows_3" + and k ~= "eyebrows_4" + and k ~= "eyebrows_5" + and k ~= "eyebrows_6" + and k ~= "makeup_1" + and k ~= "makeup_2" + and k ~= "makeup_3" + and k ~= "makeup_4" + and k ~= "lipstick_1" + and k ~= "lipstick_2" + and k ~= "lipstick_3" + and k ~= "lipstick_4" + and k ~= "blemishes_1" + and k ~= "blemishes_2" + and k ~= "blemishes_3" + and k ~= "blush_1" + and k ~= "blush_2" + and k ~= "blush_3" + and k ~= "complexion_1" + and k ~= "complexion_2" + and k ~= "sun_1" + and k ~= "sun_2" + and k ~= "moles_1" + and k ~= "moles_2" + and k ~= "chest_1" + and k ~= "chest_2" + and k ~= "chest_3" + and k ~= "bodyb_1" + and k ~= "bodyb_2" + and k ~= "bodyb_3" + and k ~= "bodyb_4" + then Character[k] = v end end end - local face_weight = (Character['face_md_weight'] / 100) + 0.0 - local skin_weight = (Character['skin_md_weight'] / 100) + 0.0 - 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 - - 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 - - if Character['bodyb_1'] == -1 then - SetPedHeadOverlay(playerPed, 11, 255, (Character['bodyb_2'] / 10) + 0.0) -- Body Blemishes + opacity + local face_weight = (Character["face_md_weight"] / 100) + 0.0 + local skin_weight = (Character["skin_md_weight"] / 100) + 0.0 + 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 + + 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 + + if Character["bodyb_1"] == -1 then + SetPedHeadOverlay(playerPed, 11, 255, (Character["bodyb_2"] / 10) + 0.0) -- Body Blemishes + opacity else - SetPedHeadOverlay(playerPed, 11, Character['bodyb_1'], (Character['bodyb_2'] / 10) + 0.0) + SetPedHeadOverlay(playerPed, 11, Character["bodyb_1"], (Character["bodyb_2"] / 10) + 0.0) end - if Character['bodyb_3'] == -1 then - SetPedHeadOverlay(playerPed, 12, 255, (Character['bodyb_4'] / 10) + 0.0) + if Character["bodyb_3"] == -1 then + SetPedHeadOverlay(playerPed, 12, 255, (Character["bodyb_4"] / 10) + 0.0) else - SetPedHeadOverlay(playerPed, 12, Character['bodyb_3'], (Character['bodyb_4'] / 10) + 0.0) -- Blemishes 'added body effect' + opacity + SetPedHeadOverlay(playerPed, 12, Character["bodyb_3"], (Character["bodyb_4"] / 10) + 0.0) -- Blemishes 'added body effect' + opacity end - if Character['ears_1'] == -1 then + if Character["ears_1"] == -1 then ClearPedProp(playerPed, 2) else - SetPedPropIndex(playerPed, 2, Character['ears_1'], Character['ears_2'], 2) -- Ears Accessories + 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, 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 - - if Character['helmet_1'] == -1 then + 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 + + if Character["helmet_1"] == -1 then ClearPedProp(playerPed, 0) else - SetPedPropIndex(playerPed, 0, Character['helmet_1'], Character['helmet_2'], 2) -- Helmet + SetPedPropIndex(playerPed, 0, Character["helmet_1"], Character["helmet_2"], 2) -- Helmet end - if Character['glasses_1'] == -1 then + if Character["glasses_1"] == -1 then ClearPedProp(playerPed, 1) else - SetPedPropIndex(playerPed, 1, Character['glasses_1'], Character['glasses_2'], 2) -- Glasses + SetPedPropIndex(playerPed, 1, Character["glasses_1"], Character["glasses_2"], 2) -- Glasses end - if Character['watches_1'] == -1 then + if Character["watches_1"] == -1 then ClearPedProp(playerPed, 6) else - SetPedPropIndex(playerPed, 6, Character['watches_1'], Character['watches_2'], 2) -- Watches + SetPedPropIndex(playerPed, 6, Character["watches_1"], Character["watches_2"], 2) -- Watches end - if Character['bracelets_1'] == -1 then + if Character["bracelets_1"] == -1 then ClearPedProp(playerPed, 7) else - SetPedPropIndex(playerPed, 7, Character['bracelets_1'], Character['bracelets_2'], 2) -- Bracelets + SetPedPropIndex(playerPed, 7, Character["bracelets_1"], Character["bracelets_2"], 2) -- Bracelets end end -AddEventHandler('skinchanger:loadDefaultModel', function(loadMale, cb) +AddEventHandler("skinchanger:loadDefaultModel", function(loadMale, cb) LoadDefaultModel(loadMale, cb) end) -AddEventHandler('skinchanger:getData', function(cb) +AddEventHandler("skinchanger:getData", function(cb) local components = json.decode(json.encode(Components)) for k, v in pairs(Character) do @@ -292,21 +347,21 @@ AddEventHandler('skinchanger:getData', function(cb) cb(components, GetMaxVals()) end) -AddEventHandler('skinchanger:change', function(key, val) +AddEventHandler("skinchanger:change", function(key, val) Character[key] = val - if key == 'sex' then - TriggerEvent('skinchanger:loadSkin', Character) + if key == "sex" then + TriggerEvent("skinchanger:loadSkin", Character) else ApplySkin(Character) end end) -AddEventHandler('skinchanger:getSkin', function(cb) +AddEventHandler("skinchanger:getSkin", function(cb) cb(Character) end) -AddEventHandler('skinchanger:modelLoaded', function() +AddEventHandler("skinchanger:modelLoaded", function() ClearPedProp(PlayerPedId(), 0) if LoadSkin ~= nil then @@ -320,15 +375,15 @@ AddEventHandler('skinchanger:modelLoaded', function() end end) -RegisterNetEvent('skinchanger:loadSkin') -AddEventHandler('skinchanger:loadSkin', function(skin, cb) - if skin['sex'] ~= LastSex then +RegisterNetEvent("skinchanger:loadSkin") +AddEventHandler("skinchanger:loadSkin", function(skin, cb) + if skin["sex"] ~= LastSex then LoadSkin = skin - if skin['sex'] == 0 then - TriggerEvent('skinchanger:loadDefaultModel', true, cb) + if skin["sex"] == 0 then + TriggerEvent("skinchanger:loadDefaultModel", true, cb) else - TriggerEvent('skinchanger:loadDefaultModel', false, cb) + TriggerEvent("skinchanger:loadDefaultModel", false, cb) end else ApplySkin(skin) @@ -338,25 +393,25 @@ AddEventHandler('skinchanger:loadSkin', function(skin, cb) end end - LastSex = skin['sex'] + LastSex = skin["sex"] end) -RegisterNetEvent('skinchanger:loadClothes') -AddEventHandler('skinchanger:loadClothes', function(playerSkin, clothesSkin) - if playerSkin['sex'] ~= LastSex then +RegisterNetEvent("skinchanger:loadClothes") +AddEventHandler("skinchanger:loadClothes", function(playerSkin, clothesSkin) + if playerSkin["sex"] ~= LastSex then LoadClothes = { playerSkin = playerSkin, - clothesSkin = clothesSkin + clothesSkin = clothesSkin, } - if playerSkin['sex'] == 0 then - TriggerEvent('skinchanger:loadDefaultModel', true) + if playerSkin["sex"] == 0 then + TriggerEvent("skinchanger:loadDefaultModel", true) else - TriggerEvent('skinchanger:loadDefaultModel', false) + TriggerEvent("skinchanger:loadDefaultModel", false) end else ApplySkin(playerSkin, clothesSkin) end - LastSex = playerSkin['sex'] + LastSex = playerSkin["sex"] end) diff --git a/[core]/skinchanger/config.lua b/[core]/skinchanger/config.lua index 02e5715d1..fa6eac7ab 100644 --- a/[core]/skinchanger/config.lua +++ b/[core]/skinchanger/config.lua @@ -1,705 +1,802 @@ Config = {} -Config.Locale = GetConvar('esx:locale', 'en') +Config.Locale = GetConvar("esx:locale", "en") -Config.Components = { { - label = TranslateCap('sex'), - name = 'sex', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('mom'), - name = 'mom', - value = 21, - min = 21, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('dad'), - name = 'dad', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('resemblance'), - name = 'face_md_weight', - value = 50, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('skin_tone'), - name = 'skin_md_weight', - value = 50, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_1'), - name = 'nose_1', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_2'), - name = 'nose_2', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_3'), - name = 'nose_3', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_4'), - name = 'nose_4', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_5'), - name = 'nose_5', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('nose_6'), - name = 'nose_6', - value = 0, - min = -10, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('cheeks_1'), - name = 'cheeks_1', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('cheeks_2'), - name = 'cheeks_2', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('cheeks_3'), - name = 'cheeks_3', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('lip_fullness'), - name = 'lip_thickness', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('jaw_bone_width'), - name = 'jaw_1', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('jaw_bone_length'), - name = 'jaw_2', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('chin_height'), - name = 'chin_1', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('chin_length'), - name = 'chin_2', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('chin_width'), - name = 'chin_3', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('chin_hole'), - name = 'chin_4', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('neck_thickness'), - name = 'neck_thickness', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('hair_1'), - name = 'hair_1', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('hair_2'), - name = 'hair_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('hair_color_1'), - name = 'hair_color_1', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('hair_color_2'), - name = 'hair_color_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65 -}, { - label = TranslateCap('tshirt_1'), - name = 'tshirt_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 8 -}, { - label = TranslateCap('tshirt_2'), - name = 'tshirt_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'tshirt_1' -}, { - label = TranslateCap('torso_1'), - name = 'torso_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 11 -}, { - label = TranslateCap('torso_2'), - name = 'torso_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'torso_1' -}, { - label = TranslateCap('decals_1'), - name = 'decals_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 10 -}, { - label = TranslateCap('decals_2'), - name = 'decals_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'decals_1' -}, { - label = TranslateCap('arms'), - name = 'arms', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('arms_2'), - name = 'arms_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('pants_1'), - name = 'pants_1', - value = 0, - min = 0, - zoomOffset = 0.8, - camOffset = -0.5, - componentId = 4 -}, { - label = TranslateCap('pants_2'), - name = 'pants_2', - value = 0, - min = 0, - zoomOffset = 0.8, - camOffset = -0.5, - textureof = 'pants_1' -}, { - label = TranslateCap('shoes_1'), - name = 'shoes_1', - value = 0, - min = 0, - zoomOffset = 0.8, - camOffset = -0.8, - componentId = 6 -}, { - label = TranslateCap('shoes_2'), - name = 'shoes_2', - value = 0, - min = 0, - zoomOffset = 0.8, - camOffset = -0.8, - textureof = 'shoes_1' -}, { - label = TranslateCap('mask_1'), - name = 'mask_1', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - componentId = 1 -}, { - label = TranslateCap('mask_2'), - name = 'mask_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - textureof = 'mask_1' -}, { - label = TranslateCap('bproof_1'), - name = 'bproof_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 9 -}, { - label = TranslateCap('bproof_2'), - name = 'bproof_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'bproof_1' -}, { - label = TranslateCap('chain_1'), - name = 'chain_1', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - componentId = 7 -}, { - label = TranslateCap('chain_2'), - name = 'chain_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - textureof = 'chain_1' -}, { - label = TranslateCap('helmet_1'), - name = 'helmet_1', - value = -1, - min = -1, - zoomOffset = 0.6, - camOffset = 0.65, - componentId = 0 -}, { - label = TranslateCap('helmet_2'), - name = 'helmet_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - textureof = 'helmet_1' -}, { - label = TranslateCap('glasses_1'), - name = 'glasses_1', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - componentId = 1 -}, { - label = TranslateCap('glasses_2'), - name = 'glasses_2', - value = 0, - min = 0, - zoomOffset = 0.6, - camOffset = 0.65, - textureof = 'glasses_1' -}, { - label = TranslateCap('watches_1'), - name = 'watches_1', - value = -1, - min = -1, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 6 -}, { - label = TranslateCap('watches_2'), - name = 'watches_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'watches_1' -}, { - label = TranslateCap('bracelets_1'), - name = 'bracelets_1', - value = -1, - min = -1, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 7 -}, { - label = TranslateCap('bracelets_2'), - name = 'bracelets_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'bracelets_1' -}, { - label = TranslateCap('bag'), - name = 'bags_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - componentId = 5 -}, { - label = TranslateCap('bag_color'), - name = 'bags_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15, - textureof = 'bags_1' -}, { - label = TranslateCap('eye_color'), - name = 'eye_color', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eye_squint'), - name = 'eye_squint', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_size'), - name = 'eyebrows_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_type'), - name = 'eyebrows_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_color_1'), - name = 'eyebrows_3', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_color_2'), - name = 'eyebrows_4', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_height'), - name = 'eyebrows_5', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('eyebrow_depth'), - name = 'eyebrows_6', - value = 0, - min = -10, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('makeup_type'), - name = 'makeup_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('makeup_thickness'), - name = 'makeup_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('makeup_color_1'), - name = 'makeup_3', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('makeup_color_2'), - name = 'makeup_4', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('lipstick_type'), - name = 'lipstick_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('lipstick_thickness'), - name = 'lipstick_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('lipstick_color_1'), - name = 'lipstick_3', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('lipstick_color_2'), - name = 'lipstick_4', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('ear_accessories'), - name = 'ears_1', - value = -1, - min = -1, - zoomOffset = 0.4, - camOffset = 0.65, - componentId = 2 -}, { - label = TranslateCap('ear_accessories_color'), - name = 'ears_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65, - textureof = 'ears_1' -}, { - label = TranslateCap('chest_hair'), - name = 'chest_1', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('chest_hair_1'), - name = 'chest_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('chest_color'), - name = 'chest_3', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('bodyb'), - name = 'bodyb_1', - value = -1, - min = -1, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('bodyb_size'), - name = 'bodyb_2', - value = 0, - min = 0, - zoomOffset = 0.75, - camOffset = 0.15 -}, { - label = TranslateCap('bodyb_extra'), - name = 'bodyb_3', - value = -1, - min = -1, - zoomOffset = 0.4, - camOffset = 0.15 -}, { - label = TranslateCap('bodyb_extra_thickness'), - name = 'bodyb_4', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.15 -}, { - label = TranslateCap('wrinkles'), - name = 'age_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('wrinkle_thickness'), - name = 'age_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('blemishes'), - name = 'blemishes_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('blemishes_size'), - name = 'blemishes_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('blush'), - name = 'blush_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('blush_1'), - name = 'blush_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('blush_color'), - name = 'blush_3', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('complexion'), - name = 'complexion_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('complexion_1'), - name = 'complexion_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('sun'), - name = 'sun_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('sun_1'), - name = 'sun_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('freckles'), - name = 'moles_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('freckles_1'), - name = 'moles_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('beard_type'), - name = 'beard_1', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('beard_size'), - name = 'beard_2', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('beard_color_1'), - name = 'beard_3', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -}, { - label = TranslateCap('beard_color_2'), - name = 'beard_4', - value = 0, - min = 0, - zoomOffset = 0.4, - camOffset = 0.65 -} } +Config.Components = { + { + label = TranslateCap("sex"), + name = "sex", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("mom"), + name = "mom", + value = 21, + min = 21, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("dad"), + name = "dad", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("resemblance"), + name = "face_md_weight", + value = 50, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("skin_tone"), + name = "skin_md_weight", + value = 50, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_1"), + name = "nose_1", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_2"), + name = "nose_2", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_3"), + name = "nose_3", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_4"), + name = "nose_4", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_5"), + name = "nose_5", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("nose_6"), + name = "nose_6", + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("cheeks_1"), + name = "cheeks_1", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("cheeks_2"), + name = "cheeks_2", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("cheeks_3"), + name = "cheeks_3", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("lip_fullness"), + name = "lip_thickness", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("jaw_bone_width"), + name = "jaw_1", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("jaw_bone_length"), + name = "jaw_2", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("chin_height"), + name = "chin_1", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("chin_length"), + name = "chin_2", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("chin_width"), + name = "chin_3", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("chin_hole"), + name = "chin_4", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("neck_thickness"), + name = "neck_thickness", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("hair_1"), + name = "hair_1", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("hair_2"), + name = "hair_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("hair_color_1"), + name = "hair_color_1", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("hair_color_2"), + name = "hair_color_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + }, + { + label = TranslateCap("tshirt_1"), + name = "tshirt_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 8, + }, + { + label = TranslateCap("tshirt_2"), + name = "tshirt_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "tshirt_1", + }, + { + label = TranslateCap("torso_1"), + name = "torso_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 11, + }, + { + label = TranslateCap("torso_2"), + name = "torso_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "torso_1", + }, + { + label = TranslateCap("decals_1"), + name = "decals_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 10, + }, + { + label = TranslateCap("decals_2"), + name = "decals_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "decals_1", + }, + { + label = TranslateCap("arms"), + name = "arms", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("arms_2"), + name = "arms_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("pants_1"), + name = "pants_1", + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.5, + componentId = 4, + }, + { + label = TranslateCap("pants_2"), + name = "pants_2", + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.5, + textureof = "pants_1", + }, + { + label = TranslateCap("shoes_1"), + name = "shoes_1", + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.8, + componentId = 6, + }, + { + label = TranslateCap("shoes_2"), + name = "shoes_2", + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.8, + textureof = "shoes_1", + }, + { + label = TranslateCap("mask_1"), + name = "mask_1", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 1, + }, + { + label = TranslateCap("mask_2"), + name = "mask_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = "mask_1", + }, + { + label = TranslateCap("bproof_1"), + name = "bproof_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 9, + }, + { + label = TranslateCap("bproof_2"), + name = "bproof_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "bproof_1", + }, + { + label = TranslateCap("chain_1"), + name = "chain_1", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 7, + }, + { + label = TranslateCap("chain_2"), + name = "chain_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = "chain_1", + }, + { + label = TranslateCap("helmet_1"), + name = "helmet_1", + value = -1, + min = -1, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 0, + }, + { + label = TranslateCap("helmet_2"), + name = "helmet_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = "helmet_1", + }, + { + label = TranslateCap("glasses_1"), + name = "glasses_1", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 1, + }, + { + label = TranslateCap("glasses_2"), + name = "glasses_2", + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = "glasses_1", + }, + { + label = TranslateCap("watches_1"), + name = "watches_1", + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 6, + }, + { + label = TranslateCap("watches_2"), + name = "watches_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "watches_1", + }, + { + label = TranslateCap("bracelets_1"), + name = "bracelets_1", + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 7, + }, + { + label = TranslateCap("bracelets_2"), + name = "bracelets_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "bracelets_1", + }, + { + label = TranslateCap("bag"), + name = "bags_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 5, + }, + { + label = TranslateCap("bag_color"), + name = "bags_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = "bags_1", + }, + { + label = TranslateCap("eye_color"), + name = "eye_color", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eye_squint"), + name = "eye_squint", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_size"), + name = "eyebrows_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_type"), + name = "eyebrows_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_color_1"), + name = "eyebrows_3", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_color_2"), + name = "eyebrows_4", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_height"), + name = "eyebrows_5", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("eyebrow_depth"), + name = "eyebrows_6", + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("makeup_type"), + name = "makeup_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("makeup_thickness"), + name = "makeup_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("makeup_color_1"), + name = "makeup_3", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("makeup_color_2"), + name = "makeup_4", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("lipstick_type"), + name = "lipstick_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("lipstick_thickness"), + name = "lipstick_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("lipstick_color_1"), + name = "lipstick_3", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("lipstick_color_2"), + name = "lipstick_4", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("ear_accessories"), + name = "ears_1", + value = -1, + min = -1, + zoomOffset = 0.4, + camOffset = 0.65, + componentId = 2, + }, + { + label = TranslateCap("ear_accessories_color"), + name = "ears_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + textureof = "ears_1", + }, + { + label = TranslateCap("chest_hair"), + name = "chest_1", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("chest_hair_1"), + name = "chest_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("chest_color"), + name = "chest_3", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("bodyb"), + name = "bodyb_1", + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("bodyb_size"), + name = "bodyb_2", + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + }, + { + label = TranslateCap("bodyb_extra"), + name = "bodyb_3", + value = -1, + min = -1, + zoomOffset = 0.4, + camOffset = 0.15, + }, + { + label = TranslateCap("bodyb_extra_thickness"), + name = "bodyb_4", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.15, + }, + { + label = TranslateCap("wrinkles"), + name = "age_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("wrinkle_thickness"), + name = "age_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("blemishes"), + name = "blemishes_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("blemishes_size"), + name = "blemishes_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("blush"), + name = "blush_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("blush_1"), + name = "blush_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("blush_color"), + name = "blush_3", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("complexion"), + name = "complexion_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("complexion_1"), + name = "complexion_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("sun"), + name = "sun_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("sun_1"), + name = "sun_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("freckles"), + name = "moles_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("freckles_1"), + name = "moles_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("beard_type"), + name = "beard_1", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("beard_size"), + name = "beard_2", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("beard_color_1"), + name = "beard_3", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, + { + label = TranslateCap("beard_color_2"), + name = "beard_4", + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + }, +} diff --git a/[core]/skinchanger/locales/da.lua b/[core]/skinchanger/locales/da.lua index ab6d6c93d..d5a6d3f41 100644 --- a/[core]/skinchanger/locales/da.lua +++ b/[core]/skinchanger/locales/da.lua @@ -1,100 +1,100 @@ -Locales["da"] = { - ["sex"] = "køn", - ["mom"] = "mors ansigt", - ["dad"] = "fars ansigt", - ["resemblance"] = "lighed", - ["skin_tone"] = "hudfarve", - ["nose_1"] = "næse bredde", - ["nose_2"] = "næsespidshøjde", - ["nose_3"] = "næsespidslængde", - ["nose_4"] = "næseknoglehøjde", - ["nose_5"] = "næsespidssænkning", - ["nose_6"] = "nose bone twist", - ["cheeks_1"] = "kindbens højde", - ["cheeks_2"] = "kindbens bredde", - ["cheeks_3"] = "kind bredde", - ["lip_fullness"] = "læbe fylde", - ["jaw_bone_width"] = "kæbeknoglebredde", - ["jaw_bone_length"] = "kæbebens længde", - ["chin_height"] = "hagehøjde", - ["chin_length"] = "hagelængde", - ["chin_width"] = "hagebredde", - ["chin_hole"] = "chin hole size", - ["neck_thickness"] = "nakke tykkelse", - ["wrinkles"] = "rynker", - ["wrinkle_thickness"] = "rynke tykkelse", - ["beard_type"] = "skæg type", - ["beard_size"] = "skæg størrelse", - ["beard_color_1"] = "skæg farve 1", - ["beard_color_2"] = "skæg farve 2", - ["hair_1"] = "hår 1", - ["hair_2"] = "hår 2", - ["hair_color_1"] = "hårfarve 1", - ["hair_color_2"] = "hårfarve 2", - ["eye_color"] = "øjenfarve", - ["eye_squint"] = "øjet skele", - ["eyebrow_type"] = "øjenbryns type", - ["eyebrow_size"] = "øjenbryns størrelse", - ["eyebrow_color_1"] = "øjenbryn farve 1", - ["eyebrow_color_2"] = "øjenbryn farve 2", - ["eyebrow_depth"] = "øjenbryns dybde", - ["eyebrow_height"] = "øjenbryns højde", - ["makeup_type"] = "makeup type", - ["makeup_thickness"] = "makeup tykkelse", - ["makeup_color_1"] = "makeup farve 1", - ["makeup_color_2"] = "makeup farve 2", - ["lipstick_type"] = "læbestifts type", - ["lipstick_thickness"] = "læbestifts tykkelse", - ["lipstick_color_1"] = "læbestifts farve 1", - ["lipstick_color_2"] = "læbestifts farve 2", - ["ear_accessories"] = "øretilbehør", - ["ear_accessories_color"] = "øretilbehør farve", - ["tshirt_1"] = "t-shirt 1", - ["tshirt_2"] = "t-shirt 2", - ["torso_1"] = "overkrop 1", - ["torso_2"] = "overkrop 2", - ["decals_1"] = "mærkater 1", - ["decals_2"] = "mærkater 2", - ["arms"] = "arme", - ["arms_2"] = "arme 2", - ["pants_1"] = "bukser 1", - ["pants_2"] = "bukser 2", - ["shoes_1"] = "sko 1", - ["shoes_2"] = "sko 2", - ["mask_1"] = "maske 1", - ["mask_2"] = "maske 2", - ["bproof_1"] = "skudsikker vest 1", - ["bproof_2"] = "skudsikker vest 2", - ["chain_1"] = "kæde 1", - ["chain_2"] = "kæde 2", - ["helmet_1"] = "hjelm 1", - ["helmet_2"] = "hjelm 2", - ["watches_1"] = "ure 1", - ["watches_2"] = "ure 2", - ["bracelets_1"] = "armbånd 1", - ["bracelets_2"] = "armbånd 2", - ["glasses_1"] = "briller 1", - ["glasses_2"] = "briller 2", - ["bag"] = "taske", - ["bag_color"] = "taske farve", - ["blemishes"] = "bumser", - ["blemishes_size"] = "bumser tykkelse", - ["ageing"] = "aldring", - ["ageing_1"] = "aldring tykkelse", - ["blush"] = "rødme", - ["blush_1"] = "rødme tykkelse", - ["blush_color"] = "rødme farve", - ["complexion"] = "teint", - ["complexion_1"] = "teint tykkelse", - ["sun"] = "sol", - ["sun_1"] = "soltykkelse", - ["freckles"] = "fregner", - ["freckles_1"] = "fregnernes tykkelse", - ["chest_hair"] = "brysthår", - ["chest_hair_1"] = "brysthårtykkelse", - ["chest_color"] = "brysthårfarve", - ["bodyb"] = "krops pletter", - ["bodyb_size"] = "krops pletter tykkelse", - ["bodyb_extra"] = "pletter kropseffekt", - ["bodyb_extra_thickness"] = "pletter kropseffekt tykkelse", -} +Locales["da"] = { + ["sex"] = "køn", + ["mom"] = "mors ansigt", + ["dad"] = "fars ansigt", + ["resemblance"] = "lighed", + ["skin_tone"] = "hudfarve", + ["nose_1"] = "næse bredde", + ["nose_2"] = "næsespidshøjde", + ["nose_3"] = "næsespidslængde", + ["nose_4"] = "næseknoglehøjde", + ["nose_5"] = "næsespidssænkning", + ["nose_6"] = "nose bone twist", + ["cheeks_1"] = "kindbens højde", + ["cheeks_2"] = "kindbens bredde", + ["cheeks_3"] = "kind bredde", + ["lip_fullness"] = "læbe fylde", + ["jaw_bone_width"] = "kæbeknoglebredde", + ["jaw_bone_length"] = "kæbebens længde", + ["chin_height"] = "hagehøjde", + ["chin_length"] = "hagelængde", + ["chin_width"] = "hagebredde", + ["chin_hole"] = "chin hole size", + ["neck_thickness"] = "nakke tykkelse", + ["wrinkles"] = "rynker", + ["wrinkle_thickness"] = "rynke tykkelse", + ["beard_type"] = "skæg type", + ["beard_size"] = "skæg størrelse", + ["beard_color_1"] = "skæg farve 1", + ["beard_color_2"] = "skæg farve 2", + ["hair_1"] = "hår 1", + ["hair_2"] = "hår 2", + ["hair_color_1"] = "hårfarve 1", + ["hair_color_2"] = "hårfarve 2", + ["eye_color"] = "øjenfarve", + ["eye_squint"] = "øjet skele", + ["eyebrow_type"] = "øjenbryns type", + ["eyebrow_size"] = "øjenbryns størrelse", + ["eyebrow_color_1"] = "øjenbryn farve 1", + ["eyebrow_color_2"] = "øjenbryn farve 2", + ["eyebrow_depth"] = "øjenbryns dybde", + ["eyebrow_height"] = "øjenbryns højde", + ["makeup_type"] = "makeup type", + ["makeup_thickness"] = "makeup tykkelse", + ["makeup_color_1"] = "makeup farve 1", + ["makeup_color_2"] = "makeup farve 2", + ["lipstick_type"] = "læbestifts type", + ["lipstick_thickness"] = "læbestifts tykkelse", + ["lipstick_color_1"] = "læbestifts farve 1", + ["lipstick_color_2"] = "læbestifts farve 2", + ["ear_accessories"] = "øretilbehør", + ["ear_accessories_color"] = "øretilbehør farve", + ["tshirt_1"] = "t-shirt 1", + ["tshirt_2"] = "t-shirt 2", + ["torso_1"] = "overkrop 1", + ["torso_2"] = "overkrop 2", + ["decals_1"] = "mærkater 1", + ["decals_2"] = "mærkater 2", + ["arms"] = "arme", + ["arms_2"] = "arme 2", + ["pants_1"] = "bukser 1", + ["pants_2"] = "bukser 2", + ["shoes_1"] = "sko 1", + ["shoes_2"] = "sko 2", + ["mask_1"] = "maske 1", + ["mask_2"] = "maske 2", + ["bproof_1"] = "skudsikker vest 1", + ["bproof_2"] = "skudsikker vest 2", + ["chain_1"] = "kæde 1", + ["chain_2"] = "kæde 2", + ["helmet_1"] = "hjelm 1", + ["helmet_2"] = "hjelm 2", + ["watches_1"] = "ure 1", + ["watches_2"] = "ure 2", + ["bracelets_1"] = "armbånd 1", + ["bracelets_2"] = "armbånd 2", + ["glasses_1"] = "briller 1", + ["glasses_2"] = "briller 2", + ["bag"] = "taske", + ["bag_color"] = "taske farve", + ["blemishes"] = "bumser", + ["blemishes_size"] = "bumser tykkelse", + ["ageing"] = "aldring", + ["ageing_1"] = "aldring tykkelse", + ["blush"] = "rødme", + ["blush_1"] = "rødme tykkelse", + ["blush_color"] = "rødme farve", + ["complexion"] = "teint", + ["complexion_1"] = "teint tykkelse", + ["sun"] = "sol", + ["sun_1"] = "soltykkelse", + ["freckles"] = "fregner", + ["freckles_1"] = "fregnernes tykkelse", + ["chest_hair"] = "brysthår", + ["chest_hair_1"] = "brysthårtykkelse", + ["chest_color"] = "brysthårfarve", + ["bodyb"] = "krops pletter", + ["bodyb_size"] = "krops pletter tykkelse", + ["bodyb_extra"] = "pletter kropseffekt", + ["bodyb_extra_thickness"] = "pletter kropseffekt tykkelse", +} diff --git a/[core]/skinchanger/locales/en.lua b/[core]/skinchanger/locales/en.lua index 61e11a3df..b606c478b 100644 --- a/[core]/skinchanger/locales/en.lua +++ b/[core]/skinchanger/locales/en.lua @@ -1,100 +1,100 @@ Locales["en"] = { - ["sex"] = "sex", - ["mom"] = "mom's face", - ["dad"] = "dad's face", - ["resemblance"] = "resemblance", - ["skin_tone"] = "skin tone", - ["nose_1"] = "nose width", - ["nose_2"] = "nose peak height", - ["nose_3"] = "nose peak length", - ["nose_4"] = "nose bone height", - ["nose_5"] = "nose peak lowering", - ["nose_6"] = "nose bone twist", - ["cheeks_1"] = "cheekbones height", - ["cheeks_2"] = "cheekbones width", - ["cheeks_3"] = "cheeks width", - ["lip_fullness"] = "lip fullness", - ["jaw_bone_width"] = "jaw bone width", - ["jaw_bone_length"] = "jaw bone length", - ["chin_height"] = "chin height", - ["chin_length"] = "chin length", - ["chin_width"] = "chin width", - ["chin_hole"] = "chin hole size", - ["neck_thickness"] = "neck thickness", - ["wrinkles"] = "wrinkles", - ["wrinkle_thickness"] = "wrinkle thickness", - ["beard_type"] = "beard type", - ["beard_size"] = "beard size", - ["beard_color_1"] = "beard color 1", - ["beard_color_2"] = "beard color 2", - ["hair_1"] = "hair 1", - ["hair_2"] = "hair 2", - ["hair_color_1"] = "hair color 1", - ["hair_color_2"] = "hair color 2", - ["eye_color"] = "eye color", - ["eye_squint"] = "eye squint", - ["eyebrow_type"] = "eyebrow type", - ["eyebrow_size"] = "eyebrow size", - ["eyebrow_color_1"] = "eyebrow color 1", - ["eyebrow_color_2"] = "eyebrow color 2", - ["eyebrow_depth"] = "eyebrow depth", - ["eyebrow_height"] = "eyebrow height", - ["makeup_type"] = "makeup type", - ["makeup_thickness"] = "makeup thickness", - ["makeup_color_1"] = "makeup color 1", - ["makeup_color_2"] = "makeup color 2", - ["lipstick_type"] = "lipstick type", - ["lipstick_thickness"] = "lipstick thickness", - ["lipstick_color_1"] = "lipstick color 1", - ["lipstick_color_2"] = "lipstick color 2", - ["ear_accessories"] = "ear accessories", - ["ear_accessories_color"] = "ear accessories color", - ["tshirt_1"] = "t-Shirt 1", - ["tshirt_2"] = "t-Shirt 2", - ["torso_1"] = "torso 1", - ["torso_2"] = "torso 2", - ["decals_1"] = "decals 1", - ["decals_2"] = "decals 2", - ["arms"] = "arms", - ["arms_2"] = "arms 2", - ["pants_1"] = "pants 1", - ["pants_2"] = "pants 2", - ["shoes_1"] = "shoes 1", - ["shoes_2"] = "shoes 2", - ["mask_1"] = "mask 1", - ["mask_2"] = "mask 2", - ["bproof_1"] = "bulletproof vest 1", - ["bproof_2"] = "bulletproof vest 2", - ["chain_1"] = "chain 1", - ["chain_2"] = "chain 2", - ["helmet_1"] = "helmet 1", - ["helmet_2"] = "helmet 2", - ["watches_1"] = "watches 1", - ["watches_2"] = "watches 2", - ["bracelets_1"] = "bracelets 1", - ["bracelets_2"] = "bracelets 2", - ["glasses_1"] = "glasses 1", - ["glasses_2"] = "glasses 2", - ["bag"] = "bag", - ["bag_color"] = "bag color", - ["blemishes"] = "blemishes", - ["blemishes_size"] = "blemishes thickness", - ["ageing"] = "ageing", - ["ageing_1"] = "ageing thickness", - ["blush"] = "blush", - ["blush_1"] = "blush thickness", - ["blush_color"] = "blush color", - ["complexion"] = "complexion", - ["complexion_1"] = "complexion thickness", - ["sun"] = "sun", - ["sun_1"] = "sun thickness", - ["freckles"] = "freckles", - ["freckles_1"] = "freckles thickness", - ["chest_hair"] = "chest hair", - ["chest_hair_1"] = "chest hair thickness", - ["chest_color"] = "chest hair color", - ["bodyb"] = "body blemishes", - ["bodyb_size"] = "body blemishes thickness", - ["bodyb_extra"] = "blemishes body effect", - ["bodyb_extra_thickness"] = "blemishes body effect thickness", + ["sex"] = "sex", + ["mom"] = "mom's face", + ["dad"] = "dad's face", + ["resemblance"] = "resemblance", + ["skin_tone"] = "skin tone", + ["nose_1"] = "nose width", + ["nose_2"] = "nose peak height", + ["nose_3"] = "nose peak length", + ["nose_4"] = "nose bone height", + ["nose_5"] = "nose peak lowering", + ["nose_6"] = "nose bone twist", + ["cheeks_1"] = "cheekbones height", + ["cheeks_2"] = "cheekbones width", + ["cheeks_3"] = "cheeks width", + ["lip_fullness"] = "lip fullness", + ["jaw_bone_width"] = "jaw bone width", + ["jaw_bone_length"] = "jaw bone length", + ["chin_height"] = "chin height", + ["chin_length"] = "chin length", + ["chin_width"] = "chin width", + ["chin_hole"] = "chin hole size", + ["neck_thickness"] = "neck thickness", + ["wrinkles"] = "wrinkles", + ["wrinkle_thickness"] = "wrinkle thickness", + ["beard_type"] = "beard type", + ["beard_size"] = "beard size", + ["beard_color_1"] = "beard color 1", + ["beard_color_2"] = "beard color 2", + ["hair_1"] = "hair 1", + ["hair_2"] = "hair 2", + ["hair_color_1"] = "hair color 1", + ["hair_color_2"] = "hair color 2", + ["eye_color"] = "eye color", + ["eye_squint"] = "eye squint", + ["eyebrow_type"] = "eyebrow type", + ["eyebrow_size"] = "eyebrow size", + ["eyebrow_color_1"] = "eyebrow color 1", + ["eyebrow_color_2"] = "eyebrow color 2", + ["eyebrow_depth"] = "eyebrow depth", + ["eyebrow_height"] = "eyebrow height", + ["makeup_type"] = "makeup type", + ["makeup_thickness"] = "makeup thickness", + ["makeup_color_1"] = "makeup color 1", + ["makeup_color_2"] = "makeup color 2", + ["lipstick_type"] = "lipstick type", + ["lipstick_thickness"] = "lipstick thickness", + ["lipstick_color_1"] = "lipstick color 1", + ["lipstick_color_2"] = "lipstick color 2", + ["ear_accessories"] = "ear accessories", + ["ear_accessories_color"] = "ear accessories color", + ["tshirt_1"] = "t-Shirt 1", + ["tshirt_2"] = "t-Shirt 2", + ["torso_1"] = "torso 1", + ["torso_2"] = "torso 2", + ["decals_1"] = "decals 1", + ["decals_2"] = "decals 2", + ["arms"] = "arms", + ["arms_2"] = "arms 2", + ["pants_1"] = "pants 1", + ["pants_2"] = "pants 2", + ["shoes_1"] = "shoes 1", + ["shoes_2"] = "shoes 2", + ["mask_1"] = "mask 1", + ["mask_2"] = "mask 2", + ["bproof_1"] = "bulletproof vest 1", + ["bproof_2"] = "bulletproof vest 2", + ["chain_1"] = "chain 1", + ["chain_2"] = "chain 2", + ["helmet_1"] = "helmet 1", + ["helmet_2"] = "helmet 2", + ["watches_1"] = "watches 1", + ["watches_2"] = "watches 2", + ["bracelets_1"] = "bracelets 1", + ["bracelets_2"] = "bracelets 2", + ["glasses_1"] = "glasses 1", + ["glasses_2"] = "glasses 2", + ["bag"] = "bag", + ["bag_color"] = "bag color", + ["blemishes"] = "blemishes", + ["blemishes_size"] = "blemishes thickness", + ["ageing"] = "ageing", + ["ageing_1"] = "ageing thickness", + ["blush"] = "blush", + ["blush_1"] = "blush thickness", + ["blush_color"] = "blush color", + ["complexion"] = "complexion", + ["complexion_1"] = "complexion thickness", + ["sun"] = "sun", + ["sun_1"] = "sun thickness", + ["freckles"] = "freckles", + ["freckles_1"] = "freckles thickness", + ["chest_hair"] = "chest hair", + ["chest_hair_1"] = "chest hair thickness", + ["chest_color"] = "chest hair color", + ["bodyb"] = "body blemishes", + ["bodyb_size"] = "body blemishes thickness", + ["bodyb_extra"] = "blemishes body effect", + ["bodyb_extra_thickness"] = "blemishes body effect thickness", } diff --git a/[core]/skinchanger/locales/es.lua b/[core]/skinchanger/locales/es.lua index 237776e74..6bb92fa29 100644 --- a/[core]/skinchanger/locales/es.lua +++ b/[core]/skinchanger/locales/es.lua @@ -1,100 +1,100 @@ Locales["es"] = { - ["sex"] = "Sexo", - ["mom"] = "Herencia de la Madre", - ["dad"] = "Herencia del Padre", - ["resemblance"] = "Parecido", - ["skin_tone"] = "Tono de piel", - ["nose_1"] = "Ancho de la Nariz", - ["nose_2"] = "Altura del pico de la Nariz", - ["nose_3"] = "Longitud del pico de la Nariz", - ["nose_4"] = "Altura del hueso de la Nariz", - ["nose_5"] = "Bajada del pico de la Nariz", - ["nose_6"] = "Torsión del hueso de la Nariz", - ["cheeks_1"] = "Altura de los pómulos", - ["cheeks_2"] = "Anchura de los pómulos", - ["cheeks_3"] = "Ancho de las mejillas", - ["lip_fullness"] = "Relleno de los labios", - ["jaw_bone_width"] = "Anchura del hueso de la mandíbula", - ["jaw_bone_length"] = "Longitud del hueso de la mandíbula", - ["chin_height"] = "Altura de la barbilla", - ["chin_length"] = "Longitud de la barbilla", - ["chin_width"] = "Ancho de la barbilla", - ["chin_hole"] = "Tamaño del agujero de la barbilla", - ["neck_thickness"] = "Grosor del cuello", - ["wrinkles"] = "Arrugas", - ["wrinkle_thickness"] = "Cantidad de arrugas", - ["beard_type"] = "Tipo de barba", - ["beard_size"] = "Tamaño de la barba", - ["beard_color_1"] = "Color de la barba 1", - ["beard_color_2"] = "Color de la barba 2", - ["hair_1"] = "Pelo 1", - ["hair_2"] = "Pelo 2", - ["hair_color_1"] = "Color de pelo 1", - ["hair_color_2"] = "Color de pelo 2", - ["eye_color"] = "Color de ojos", - ["eye_squint"] = "Apertura de ojos", - ["eyebrow_type"] = "Tipo de ceja", - ["eyebrow_size"] = "Tipo de ceja", - ["eyebrow_color_1"] = "Color de ceja 1", - ["eyebrow_color_2"] = "Color de ceja 2", - ["eyebrow_depth"] = "Profundidad de las cejas", - ["eyebrow_height"] = "Altura de las cejas", - ["makeup_type"] = "Tipo de maquillaje", - ["makeup_thickness"] = "Cantidad de maquillaje", - ["makeup_color_1"] = "Color de maquillaje 1", - ["makeup_color_2"] = "Color de maquillaje 2", - ["lipstick_type"] = "Tipo de pintalabios", - ["lipstick_thickness"] = "Cantidad de pintalabios", - ["lipstick_color_1"] = "Color de pintalabios 1", - ["lipstick_color_2"] = "Color de pintalabios 2", - ["ear_accessories"] = "Accesorios de oreja", - ["ear_accessories_color"] = "Color de accesorios", - ["tshirt_1"] = "Camiseta 1", - ["tshirt_2"] = "Camiseta 2", - ["torso_1"] = "Torso 1", - ["torso_2"] = "Torso 2", - ["decals_1"] = "Tatuajes 1", - ["decals_2"] = "Tatuajes 2", - ["arms"] = "Brazos", - ["arms_2"] = "Brazos 2", - ["pants_1"] = "Pantalones 1", - ["pants_2"] = "Pantalones 2", - ["shoes_1"] = "Calzado 1", - ["shoes_2"] = "Calzado 2", - ["mask_1"] = "Mascara 1", - ["mask_2"] = "Mascara 2", - ["bproof_1"] = "Chaleco antibalas 1", - ["bproof_2"] = "Chaleco antibalas 2", - ["chain_1"] = "Cadena 1", - ["chain_2"] = "Cadena 2", - ["helmet_1"] = "Casco 1", - ["helmet_2"] = "Casco 2", - ["watches_1"] = "Reloj 1", - ["watches_2"] = "Reloj 2", - ["bracelets_1"] = "Pulseras 1", - ["bracelets_2"] = "Pulseras 2", - ["glasses_1"] = "Gafas 1", - ["glasses_2"] = "Gafas 2", - ["bag"] = "Mochila", - ["bag_color"] = "Color mochila", - ["blemishes"] = "Manchas", - ["blemishes_size"] = "Cantidad de manchas", - ["ageing"] = "Envejecimiento", - ["ageing_1"] = "Cantidad de envejecimiento", - ["blush"] = "Colorete", - ["blush_1"] = "Cantidad de colorete", - ["blush_color"] = "Color de colorete", - ["complexion"] = "Complexión", - ["complexion_1"] = "Cantidad de complexión", - ["sun"] = "Bronceado", - ["sun_1"] = "Cantidad de bronceado", - ["freckles"] = "Pecas", - ["freckles_1"] = "Cantidad de pecas", - ["chest_hair"] = "Vello corporal", - ["chest_hair_1"] = "Cantidad de vello corporal", - ["chest_color"] = "Color de vello corporal", - ["bodyb"] = "Manchas en el cuerpo", - ["bodyb_size"] = "Tipo de manchas en el cuerpo", - ["bodyb_extra"] = "Efecto de manchas en el cuerpo", - ["bodyb_extra_thickness"] = "Espesor de manchas efecto cuerpo", + ["sex"] = "Sexo", + ["mom"] = "Herencia de la Madre", + ["dad"] = "Herencia del Padre", + ["resemblance"] = "Parecido", + ["skin_tone"] = "Tono de piel", + ["nose_1"] = "Ancho de la Nariz", + ["nose_2"] = "Altura del pico de la Nariz", + ["nose_3"] = "Longitud del pico de la Nariz", + ["nose_4"] = "Altura del hueso de la Nariz", + ["nose_5"] = "Bajada del pico de la Nariz", + ["nose_6"] = "Torsión del hueso de la Nariz", + ["cheeks_1"] = "Altura de los pómulos", + ["cheeks_2"] = "Anchura de los pómulos", + ["cheeks_3"] = "Ancho de las mejillas", + ["lip_fullness"] = "Relleno de los labios", + ["jaw_bone_width"] = "Anchura del hueso de la mandíbula", + ["jaw_bone_length"] = "Longitud del hueso de la mandíbula", + ["chin_height"] = "Altura de la barbilla", + ["chin_length"] = "Longitud de la barbilla", + ["chin_width"] = "Ancho de la barbilla", + ["chin_hole"] = "Tamaño del agujero de la barbilla", + ["neck_thickness"] = "Grosor del cuello", + ["wrinkles"] = "Arrugas", + ["wrinkle_thickness"] = "Cantidad de arrugas", + ["beard_type"] = "Tipo de barba", + ["beard_size"] = "Tamaño de la barba", + ["beard_color_1"] = "Color de la barba 1", + ["beard_color_2"] = "Color de la barba 2", + ["hair_1"] = "Pelo 1", + ["hair_2"] = "Pelo 2", + ["hair_color_1"] = "Color de pelo 1", + ["hair_color_2"] = "Color de pelo 2", + ["eye_color"] = "Color de ojos", + ["eye_squint"] = "Apertura de ojos", + ["eyebrow_type"] = "Tipo de ceja", + ["eyebrow_size"] = "Tipo de ceja", + ["eyebrow_color_1"] = "Color de ceja 1", + ["eyebrow_color_2"] = "Color de ceja 2", + ["eyebrow_depth"] = "Profundidad de las cejas", + ["eyebrow_height"] = "Altura de las cejas", + ["makeup_type"] = "Tipo de maquillaje", + ["makeup_thickness"] = "Cantidad de maquillaje", + ["makeup_color_1"] = "Color de maquillaje 1", + ["makeup_color_2"] = "Color de maquillaje 2", + ["lipstick_type"] = "Tipo de pintalabios", + ["lipstick_thickness"] = "Cantidad de pintalabios", + ["lipstick_color_1"] = "Color de pintalabios 1", + ["lipstick_color_2"] = "Color de pintalabios 2", + ["ear_accessories"] = "Accesorios de oreja", + ["ear_accessories_color"] = "Color de accesorios", + ["tshirt_1"] = "Camiseta 1", + ["tshirt_2"] = "Camiseta 2", + ["torso_1"] = "Torso 1", + ["torso_2"] = "Torso 2", + ["decals_1"] = "Tatuajes 1", + ["decals_2"] = "Tatuajes 2", + ["arms"] = "Brazos", + ["arms_2"] = "Brazos 2", + ["pants_1"] = "Pantalones 1", + ["pants_2"] = "Pantalones 2", + ["shoes_1"] = "Calzado 1", + ["shoes_2"] = "Calzado 2", + ["mask_1"] = "Mascara 1", + ["mask_2"] = "Mascara 2", + ["bproof_1"] = "Chaleco antibalas 1", + ["bproof_2"] = "Chaleco antibalas 2", + ["chain_1"] = "Cadena 1", + ["chain_2"] = "Cadena 2", + ["helmet_1"] = "Casco 1", + ["helmet_2"] = "Casco 2", + ["watches_1"] = "Reloj 1", + ["watches_2"] = "Reloj 2", + ["bracelets_1"] = "Pulseras 1", + ["bracelets_2"] = "Pulseras 2", + ["glasses_1"] = "Gafas 1", + ["glasses_2"] = "Gafas 2", + ["bag"] = "Mochila", + ["bag_color"] = "Color mochila", + ["blemishes"] = "Manchas", + ["blemishes_size"] = "Cantidad de manchas", + ["ageing"] = "Envejecimiento", + ["ageing_1"] = "Cantidad de envejecimiento", + ["blush"] = "Colorete", + ["blush_1"] = "Cantidad de colorete", + ["blush_color"] = "Color de colorete", + ["complexion"] = "Complexión", + ["complexion_1"] = "Cantidad de complexión", + ["sun"] = "Bronceado", + ["sun_1"] = "Cantidad de bronceado", + ["freckles"] = "Pecas", + ["freckles_1"] = "Cantidad de pecas", + ["chest_hair"] = "Vello corporal", + ["chest_hair_1"] = "Cantidad de vello corporal", + ["chest_color"] = "Color de vello corporal", + ["bodyb"] = "Manchas en el cuerpo", + ["bodyb_size"] = "Tipo de manchas en el cuerpo", + ["bodyb_extra"] = "Efecto de manchas en el cuerpo", + ["bodyb_extra_thickness"] = "Espesor de manchas efecto cuerpo", } diff --git a/[core]/skinchanger/locales/fi.lua b/[core]/skinchanger/locales/fi.lua index bf3bbe59d..914ba39c2 100644 --- a/[core]/skinchanger/locales/fi.lua +++ b/[core]/skinchanger/locales/fi.lua @@ -1,76 +1,76 @@ Locales["fi"] = { - ["sex"] = "Sukupuoli", - ["face"] = "Kasvot", - ["skin"] = "Iho", - ["wrinkles"] = "Rypyt", - ["wrinkle_thickness"] = "Ryppyjen vahvuus", - ["beard_type"] = "Parta tyyli", - ["beard_size"] = "Parran koko", - ["beard_color_1"] = "Parran väri 1", - ["beard_color_2"] = "Parran väri 2", - ["hair_1"] = "Hiukset 1", - ["hair_2"] = "Hiukset 2", - ["hair_color_1"] = "Hiuksien väri 1", - ["hair_color_2"] = "Hiuksien väri 2", - ["eye_color"] = "Silmien väri", - ["eyebrow_type"] = "Kulmakarva tyyli", - ["eyebrow_size"] = "Kulmakarvojen tiheys", - ["eyebrow_color_1"] = "Kulmakarvojen väri 1", - ["eyebrow_color_2"] = "Kulmakarvojen väri 2", - ["makeup_type"] = "Meikki tyyli", - ["makeup_thickness"] = "Meikin vahvuus", - ["makeup_color_1"] = "Meikin väri 1", - ["makeup_color_2"] = "Meikin väri 2", - ["lipstick_type"] = "Huulipuna tyyli", - ["lipstick_thickness"] = "Huulipunan vahvuus", - ["lipstick_color_1"] = "Huulipunan väri 1", - ["lipstick_color_2"] = "Huulipunan väri 2", - ["ear_accessories"] = "Korvakorut", - ["ear_accessories_color"] = "Korvakorujen väri", - ["tshirt_1"] = "T-paita 1", - ["tshirt_2"] = "T-paita 2", - ["torso_1"] = "Paita 1", - ["torso_2"] = "Paita 2", - ["decals_1"] = "Kerros 1", - ["decals_2"] = "Kerros 2", - ["arms"] = "Kädet", - ["arms_2"] = "Kädet 2", - ["pants_1"] = "Housut 1", - ["pants_2"] = "Housut 2", - ["shoes_1"] = "Kengät 1", - ["shoes_2"] = "Kengät 2", - ["mask_1"] = "Maski 1", - ["mask_2"] = "Maski 2", - ["bproof_1"] = "Luotiliivi 1", - ["bproof_2"] = "Luotiliivi 2", - ["chain_1"] = "Korut 1", - ["chain_2"] = "Korut 2", - ["helmet_1"] = "Kypärät 1", - ["helmet_2"] = "Kypärät 2", - ["watches_1"] = "Kellot 1", - ["watches_2"] = "Kellot 2", - ["bracelets_1"] = "Rannekkeet 1", - ["bracelets_2"] = "Rannekkeet 2", - ["glasses_1"] = "Lasit 1", - ["glasses_2"] = "Lasit 2", - ["bag"] = "Reput", - ["bag_color"] = "Repun väri", - ["blemishes"] = "Pisamat", - ["blemishes_size"] = "Pisamien vahvuus", - ["ageing"] = "Ikääntyminen", - ["ageing_1"] = "Ikääntyminen vahvuus", - ["blush"] = "Punastuminen", - ["blush_1"] = "Punastumisen vahvuus", - ["blush_color"] = "Punastumisen väri", - ["complexion"] = "Pigmentti", - ["complexion_1"] = "Pigmentin vahvuus", - ["sun"] = "Rusketus", - ["sun_1"] = "Rusketus vahvuus", - ["freckles"] = "Pilkut", - ["freckles_1"] = "Pilkkujen vahvuus", - ["chest_hair"] = "Rintakarvat", - ["chest_hair_1"] = "Rintakarvojen tiheys", - ["chest_color"] = "Rintakarvojen väri", - ["bodyb"] = "Pisamat kehossa", - ["bodyb_size"] = "Kehopisamien vahvuus", + ["sex"] = "Sukupuoli", + ["face"] = "Kasvot", + ["skin"] = "Iho", + ["wrinkles"] = "Rypyt", + ["wrinkle_thickness"] = "Ryppyjen vahvuus", + ["beard_type"] = "Parta tyyli", + ["beard_size"] = "Parran koko", + ["beard_color_1"] = "Parran väri 1", + ["beard_color_2"] = "Parran väri 2", + ["hair_1"] = "Hiukset 1", + ["hair_2"] = "Hiukset 2", + ["hair_color_1"] = "Hiuksien väri 1", + ["hair_color_2"] = "Hiuksien väri 2", + ["eye_color"] = "Silmien väri", + ["eyebrow_type"] = "Kulmakarva tyyli", + ["eyebrow_size"] = "Kulmakarvojen tiheys", + ["eyebrow_color_1"] = "Kulmakarvojen väri 1", + ["eyebrow_color_2"] = "Kulmakarvojen väri 2", + ["makeup_type"] = "Meikki tyyli", + ["makeup_thickness"] = "Meikin vahvuus", + ["makeup_color_1"] = "Meikin väri 1", + ["makeup_color_2"] = "Meikin väri 2", + ["lipstick_type"] = "Huulipuna tyyli", + ["lipstick_thickness"] = "Huulipunan vahvuus", + ["lipstick_color_1"] = "Huulipunan väri 1", + ["lipstick_color_2"] = "Huulipunan väri 2", + ["ear_accessories"] = "Korvakorut", + ["ear_accessories_color"] = "Korvakorujen väri", + ["tshirt_1"] = "T-paita 1", + ["tshirt_2"] = "T-paita 2", + ["torso_1"] = "Paita 1", + ["torso_2"] = "Paita 2", + ["decals_1"] = "Kerros 1", + ["decals_2"] = "Kerros 2", + ["arms"] = "Kädet", + ["arms_2"] = "Kädet 2", + ["pants_1"] = "Housut 1", + ["pants_2"] = "Housut 2", + ["shoes_1"] = "Kengät 1", + ["shoes_2"] = "Kengät 2", + ["mask_1"] = "Maski 1", + ["mask_2"] = "Maski 2", + ["bproof_1"] = "Luotiliivi 1", + ["bproof_2"] = "Luotiliivi 2", + ["chain_1"] = "Korut 1", + ["chain_2"] = "Korut 2", + ["helmet_1"] = "Kypärät 1", + ["helmet_2"] = "Kypärät 2", + ["watches_1"] = "Kellot 1", + ["watches_2"] = "Kellot 2", + ["bracelets_1"] = "Rannekkeet 1", + ["bracelets_2"] = "Rannekkeet 2", + ["glasses_1"] = "Lasit 1", + ["glasses_2"] = "Lasit 2", + ["bag"] = "Reput", + ["bag_color"] = "Repun väri", + ["blemishes"] = "Pisamat", + ["blemishes_size"] = "Pisamien vahvuus", + ["ageing"] = "Ikääntyminen", + ["ageing_1"] = "Ikääntyminen vahvuus", + ["blush"] = "Punastuminen", + ["blush_1"] = "Punastumisen vahvuus", + ["blush_color"] = "Punastumisen väri", + ["complexion"] = "Pigmentti", + ["complexion_1"] = "Pigmentin vahvuus", + ["sun"] = "Rusketus", + ["sun_1"] = "Rusketus vahvuus", + ["freckles"] = "Pilkut", + ["freckles_1"] = "Pilkkujen vahvuus", + ["chest_hair"] = "Rintakarvat", + ["chest_hair_1"] = "Rintakarvojen tiheys", + ["chest_color"] = "Rintakarvojen väri", + ["bodyb"] = "Pisamat kehossa", + ["bodyb_size"] = "Kehopisamien vahvuus", } diff --git a/[core]/skinchanger/locales/fr.lua b/[core]/skinchanger/locales/fr.lua index bff1a222d..012a9b8d0 100644 --- a/[core]/skinchanger/locales/fr.lua +++ b/[core]/skinchanger/locales/fr.lua @@ -1,100 +1,100 @@ Locales["fr"] = { - ["sex"] = "sexe", - ["mom"] = "visage de la mère", - ["dad"] = "visage du père", - ["resemblance"] = "ressemblance", - ["skin_tone"] = "teint", - ["nose_1"] = "largeur du nez", - ["nose_2"] = "hauteur du pic du nez", - ["nose_3"] = "longueur du pic du nez", - ["nose_4"] = "hauteur de l'os du nez", - ["nose_5"] = "abaissement du pic du nez", - ["nose_6"] = "torsion de l'os du nez", - ["cheeks_1"] = "hauteur des pommettes", - ["cheeks_2"] = "largeur des pommettes", - ["cheeks_3"] = "largeur des joues", - ["lip_fullness"] = "plénitude des lèvres", - ["jaw_bone_width"] = "largeur de l'os de la mâchoire", - ["jaw_bone_length"] = "longueur de l'os de la mâchoire", - ["chin_height"] = "hauteur du menton", - ["chin_length"] = "longueur du menton", - ["chin_width"] = "largeur du menton", - ["chin_hole"] = "taille du trou du menton", - ["neck_thickness"] = "épaisseur du cou", - ["wrinkles"] = "les rides", - ["wrinkle_thickness"] = "épaisseur des rides", - ["beard_type"] = "type de barbe", - ["beard_size"] = "taille de barbe", - ["beard_color_1"] = "couleur de barbe 1", - ["beard_color_2"] = "couleur de barbe 2", - ["hair_1"] = "cheveux 1", - ["hair_2"] = "cheveux 2", - ["hair_color_1"] = "couleur de cheveux 1", - ["hair_color_2"] = "couleur de cheveux 2", - ["eye_color"] = "couleur des yeux", - ["eye_squint"] = "Louchement des yeux", - ["eyebrow_type"] = "type de sourcil", - ["eyebrow_size"] = "taille des sourcils", - ["eyebrow_color_1"] = "couleur des sourcils 1", - ["eyebrow_color_2"] = "couleur des sourcils 2", - ["eyebrow_depth"] = "profondeur des sourcils", - ["eyebrow_height"] = "hauteur des sourcils", - ["makeup_type"] = "type de maquillage", - ["makeup_thickness"] = "épaisseur de maquillage", - ["makeup_color_1"] = "couleur de maquillage 1", - ["makeup_color_2"] = "couleur de maquillage 2", - ["lipstick_type"] = "type de rouge à lèvres", - ["lipstick_thickness"] = "épaisseur du rouge à lèvres", - ["lipstick_color_1"] = "couleur de rouge à lèvres 1", - ["lipstick_color_2"] = "couleur de rouge à lèvres 2", - ["ear_accessories"] = "accessoires d'oreille", - ["ear_accessories_color"] = "couleur des accessoires d'oreille", - ["tshirt_1"] = "t-Shirt 1", - ["tshirt_2"] = "t-Shirt 2", - ["torso_1"] = "torse 1", - ["torso_2"] = "torse 2", - ["decals_1"] = "décalcomanies 1", - ["decals_2"] = "décalcomanies 2", - ["arms"] = "bras", - ["arms_2"] = "bras 2", - ["pants_1"] = "pantalon 1", - ["pants_2"] = "pantalon 2", - ["shoes_1"] = "chaussures 1", - ["shoes_2"] = "chaussures 2", - ["mask_1"] = "masque 1", - ["mask_2"] = "masque 2", - ["bproof_1"] = "gilet pare-balles 1", - ["bproof_2"] = "gilet pare-balles 2", - ["chain_1"] = "chaîne 1", - ["chain_2"] = "chaîne 2", - ["helmet_1"] = "casque 1", - ["helmet_2"] = "casque 2", - ["watches_1"] = "montres 1", - ["watches_2"] = "montres 2", - ["bracelets_1"] = "bracelets 1", - ["bracelets_2"] = "bracelets 2", - ["glasses_1"] = "lunettes 1", - ["glasses_2"] = "lunettes 2", - ["bag"] = "sac", - ["bag_color"] = "couleur du sac", - ["blemishes"] = "imperfections", - ["blemishes_size"] = "épaisseur des imperfections", - ["ageing"] = "vieillissement", - ["ageing_1"] = "épaisseur de vieillissement", - ["blush"] = "rougir", - ["blush_1"] = "épaisseur du fard à joues", - ["blush_color"] = "couleur fard à joues", - ["complexion"] = "complexion", - ["complexion_1"] = "épaisseur du teint", - ["sun"] = "soleil", - ["sun_1"] = "épaisseur du soleil", - ["freckles"] = "taches de rousseur", - ["freckles_1"] = "épaisseur des taches de rousseur", - ["chest_hair"] = "les poils du torse", - ["chest_hair_1"] = "épaisseur des poils de la poitrine", - ["chest_color"] = "couleur des cheveux de la poitrine", - ["bodyb"] = "imperfections du corps", - ["bodyb_size"] = "épaisseur des imperfections corporelles", - ["bodyb_extra"] = "effet corps", - ["bodyb_extra_thickness"] = "imperfections effet corps épaisseur", + ["sex"] = "sexe", + ["mom"] = "visage de la mère", + ["dad"] = "visage du père", + ["resemblance"] = "ressemblance", + ["skin_tone"] = "teint", + ["nose_1"] = "largeur du nez", + ["nose_2"] = "hauteur du pic du nez", + ["nose_3"] = "longueur du pic du nez", + ["nose_4"] = "hauteur de l'os du nez", + ["nose_5"] = "abaissement du pic du nez", + ["nose_6"] = "torsion de l'os du nez", + ["cheeks_1"] = "hauteur des pommettes", + ["cheeks_2"] = "largeur des pommettes", + ["cheeks_3"] = "largeur des joues", + ["lip_fullness"] = "plénitude des lèvres", + ["jaw_bone_width"] = "largeur de l'os de la mâchoire", + ["jaw_bone_length"] = "longueur de l'os de la mâchoire", + ["chin_height"] = "hauteur du menton", + ["chin_length"] = "longueur du menton", + ["chin_width"] = "largeur du menton", + ["chin_hole"] = "taille du trou du menton", + ["neck_thickness"] = "épaisseur du cou", + ["wrinkles"] = "les rides", + ["wrinkle_thickness"] = "épaisseur des rides", + ["beard_type"] = "type de barbe", + ["beard_size"] = "taille de barbe", + ["beard_color_1"] = "couleur de barbe 1", + ["beard_color_2"] = "couleur de barbe 2", + ["hair_1"] = "cheveux 1", + ["hair_2"] = "cheveux 2", + ["hair_color_1"] = "couleur de cheveux 1", + ["hair_color_2"] = "couleur de cheveux 2", + ["eye_color"] = "couleur des yeux", + ["eye_squint"] = "Louchement des yeux", + ["eyebrow_type"] = "type de sourcil", + ["eyebrow_size"] = "taille des sourcils", + ["eyebrow_color_1"] = "couleur des sourcils 1", + ["eyebrow_color_2"] = "couleur des sourcils 2", + ["eyebrow_depth"] = "profondeur des sourcils", + ["eyebrow_height"] = "hauteur des sourcils", + ["makeup_type"] = "type de maquillage", + ["makeup_thickness"] = "épaisseur de maquillage", + ["makeup_color_1"] = "couleur de maquillage 1", + ["makeup_color_2"] = "couleur de maquillage 2", + ["lipstick_type"] = "type de rouge à lèvres", + ["lipstick_thickness"] = "épaisseur du rouge à lèvres", + ["lipstick_color_1"] = "couleur de rouge à lèvres 1", + ["lipstick_color_2"] = "couleur de rouge à lèvres 2", + ["ear_accessories"] = "accessoires d'oreille", + ["ear_accessories_color"] = "couleur des accessoires d'oreille", + ["tshirt_1"] = "t-Shirt 1", + ["tshirt_2"] = "t-Shirt 2", + ["torso_1"] = "torse 1", + ["torso_2"] = "torse 2", + ["decals_1"] = "décalcomanies 1", + ["decals_2"] = "décalcomanies 2", + ["arms"] = "bras", + ["arms_2"] = "bras 2", + ["pants_1"] = "pantalon 1", + ["pants_2"] = "pantalon 2", + ["shoes_1"] = "chaussures 1", + ["shoes_2"] = "chaussures 2", + ["mask_1"] = "masque 1", + ["mask_2"] = "masque 2", + ["bproof_1"] = "gilet pare-balles 1", + ["bproof_2"] = "gilet pare-balles 2", + ["chain_1"] = "chaîne 1", + ["chain_2"] = "chaîne 2", + ["helmet_1"] = "casque 1", + ["helmet_2"] = "casque 2", + ["watches_1"] = "montres 1", + ["watches_2"] = "montres 2", + ["bracelets_1"] = "bracelets 1", + ["bracelets_2"] = "bracelets 2", + ["glasses_1"] = "lunettes 1", + ["glasses_2"] = "lunettes 2", + ["bag"] = "sac", + ["bag_color"] = "couleur du sac", + ["blemishes"] = "imperfections", + ["blemishes_size"] = "épaisseur des imperfections", + ["ageing"] = "vieillissement", + ["ageing_1"] = "épaisseur de vieillissement", + ["blush"] = "rougir", + ["blush_1"] = "épaisseur du fard à joues", + ["blush_color"] = "couleur fard à joues", + ["complexion"] = "complexion", + ["complexion_1"] = "épaisseur du teint", + ["sun"] = "soleil", + ["sun_1"] = "épaisseur du soleil", + ["freckles"] = "taches de rousseur", + ["freckles_1"] = "épaisseur des taches de rousseur", + ["chest_hair"] = "les poils du torse", + ["chest_hair_1"] = "épaisseur des poils de la poitrine", + ["chest_color"] = "couleur des cheveux de la poitrine", + ["bodyb"] = "imperfections du corps", + ["bodyb_size"] = "épaisseur des imperfections corporelles", + ["bodyb_extra"] = "effet corps", + ["bodyb_extra_thickness"] = "imperfections effet corps épaisseur", } diff --git a/[core]/skinchanger/locales/he.lua b/[core]/skinchanger/locales/he.lua index 5c081bd28..27ac1374a 100644 --- a/[core]/skinchanger/locales/he.lua +++ b/[core]/skinchanger/locales/he.lua @@ -1,100 +1,100 @@ Locales["he"] = { - ['sex'] = 'מין', - ['mom'] = 'פנים של אמא', - ['dad'] = 'פנים של אבא', - ['resemblance'] = 'דמיון', - ['skin_tone'] = 'גוון העור', - ['nose_1'] = 'רוחב האף', - ['nose_2'] = 'גובה שיא האף', - ['nose_3'] = 'אורך שיא האף', - ['nose_4'] = 'גובה עצם האף', - ['nose_5'] = 'הורדת שיא האף', - ['nose_6'] = 'סיבוב עצם האף', - ['cheeks_1'] = 'גובה הלחיים', - ['cheeks_2'] = 'רוחב הלחיים', - ['cheeks_3'] = 'רוחב הלחיים', - ['lip_fullness'] = 'מלאות השפתיים', - ['jaw_bone_width'] = 'רוחב עצם הלסת', - ['jaw_bone_length'] = 'אורך עצם הלסת', - ['chin_height'] = 'גובה הסנטר', - ['chin_length'] = 'אורך הסנטר', - ['chin_width'] = 'רוחב הסנטר', - ['chin_hole'] = 'גודל חור הסנטר', - ['neck_thickness'] = 'עובי הצוואר', - ['wrinkles'] = 'קמטים', - ['wrinkle_thickness'] = 'עובי הקמטים', - ['beard_type'] = 'סוג הזקן', - ['beard_size'] = 'גודל הזקן', - ['beard_color_1'] = 'צבע הזקן 1', - ['beard_color_2'] = 'צבע הזקן 2', - ['hair_1'] = 'שיער 1', - ['hair_2'] = 'שיער 2', - ['hair_color_1'] = 'צבע השיער 1', - ['hair_color_2'] = 'צבע השיער 2', - ['eye_color'] = 'צבע העיניים', - ['eye_squint'] = 'קימוט העין', - ['eyebrow_type'] = 'סוג הגבות', - ['eyebrow_size'] = 'גודל הגבות', - ['eyebrow_color_1'] = 'צבע הגבות 1', - ['eyebrow_color_2'] = 'צבע הגבות 2', - ['eyebrow_depth'] = 'עומק הגבות', - ['eyebrow_height'] = 'גובה הגבות', - ['makeup_type'] = 'סוג האיפור', - ['makeup_thickness'] = 'עובי האיפור', - ['makeup_color_1'] = 'צבע האיפור 1', - ['makeup_color_2'] = 'צבע האיפור 2', - ['lipstick_type'] = 'סוג השפתון', - ['lipstick_thickness'] = 'עובי השפתון', - ['lipstick_color_1'] = 'צבע השפתון 1', - ['lipstick_color_2'] = 'צבע השפתון 2', - ['ear_accessories'] = 'תכשיטים לאוזניים', - ['ear_accessories_color'] = 'צבע התכשיטים לאוזניים', - ['tshirt_1'] = 'חולצת טי 1', - ['tshirt_2'] = 'חולצת טי 2', - ['torso_1'] = 'גוף עליון 1', - ['torso_2'] = 'גוף עליון 2', - ['decals_1'] = 'מדבקות 1', - ['decals_2'] = 'מדבקות 2', - ['arms'] = 'ידיים', - ['arms_2'] = 'ידיים 2', - ['pants_1'] = 'מכנסיים 1', - ['pants_2'] = 'מכנסיים 2', - ['shoes_1'] = 'נעליים 1', - ['shoes_2'] = 'נעליים 2', - ['mask_1'] = 'מסיכה 1', - ['mask_2'] = 'מסיכה 2', - ['bproof_1'] = 'שריון נגד קליעים 1', - ['bproof_2'] = 'שריון נגד קליעים 2', - ['chain_1'] = 'שרשרת 1', - ['chain_2'] = 'שרשרת 2', - ['helmet_1'] = 'קסדה 1', - ['helmet_2'] = 'קסדה 2', - ['watches_1'] = 'שעונים 1', - ['watches_2'] = 'שעונים 2', - ['bracelets_1'] = 'צמידים 1', - ['bracelets_2'] = 'צמידים 2', - ['glasses_1'] = 'משקפיים 1', - ['glasses_2'] = 'משקפיים 2', - ['bag'] = 'תיק', - ['bag_color'] = 'צבע התיק', - ['blemishes'] = 'כתמים', - ['blemishes_size'] = 'עובי הכתמים', - ['ageing'] = 'הזדקנות', - ['ageing_1'] = 'עובי ההזדקנות', - ['blush'] = 'רוגז', - ['blush_1'] = 'עובי הרוגז', - ['blush_color'] = 'צבע הרוגז', - ['complexion'] = 'מרקם העור', - ['complexion_1'] = 'עובי המרקם', - ['sun'] = 'שמש', - ['sun_1'] = 'עובי השמש', - ['freckles'] = 'נמשים', - ['freckles_1'] = 'עובי הנמשים', - ['chest_hair'] = 'שיער חזה', - ['chest_hair_1'] = 'עובי שיער החזה', - ['chest_color'] = 'צבע שיער החזה', - ['bodyb'] = 'כתמים בגוף', - ['bodyb_size'] = 'עובי הכתמים בגוף', - ['bodyb_extra'] = 'השפעת כתמים בגוף', - ['bodyb_extra_thickness'] = 'עובי השפעת הכתמים בגוף', - } + ["sex"] = "מין", + ["mom"] = "פנים של אמא", + ["dad"] = "פנים של אבא", + ["resemblance"] = "דמיון", + ["skin_tone"] = "גוון העור", + ["nose_1"] = "רוחב האף", + ["nose_2"] = "גובה שיא האף", + ["nose_3"] = "אורך שיא האף", + ["nose_4"] = "גובה עצם האף", + ["nose_5"] = "הורדת שיא האף", + ["nose_6"] = "סיבוב עצם האף", + ["cheeks_1"] = "גובה הלחיים", + ["cheeks_2"] = "רוחב הלחיים", + ["cheeks_3"] = "רוחב הלחיים", + ["lip_fullness"] = "מלאות השפתיים", + ["jaw_bone_width"] = "רוחב עצם הלסת", + ["jaw_bone_length"] = "אורך עצם הלסת", + ["chin_height"] = "גובה הסנטר", + ["chin_length"] = "אורך הסנטר", + ["chin_width"] = "רוחב הסנטר", + ["chin_hole"] = "גודל חור הסנטר", + ["neck_thickness"] = "עובי הצוואר", + ["wrinkles"] = "קמטים", + ["wrinkle_thickness"] = "עובי הקמטים", + ["beard_type"] = "סוג הזקן", + ["beard_size"] = "גודל הזקן", + ["beard_color_1"] = "צבע הזקן 1", + ["beard_color_2"] = "צבע הזקן 2", + ["hair_1"] = "שיער 1", + ["hair_2"] = "שיער 2", + ["hair_color_1"] = "צבע השיער 1", + ["hair_color_2"] = "צבע השיער 2", + ["eye_color"] = "צבע העיניים", + ["eye_squint"] = "קימוט העין", + ["eyebrow_type"] = "סוג הגבות", + ["eyebrow_size"] = "גודל הגבות", + ["eyebrow_color_1"] = "צבע הגבות 1", + ["eyebrow_color_2"] = "צבע הגבות 2", + ["eyebrow_depth"] = "עומק הגבות", + ["eyebrow_height"] = "גובה הגבות", + ["makeup_type"] = "סוג האיפור", + ["makeup_thickness"] = "עובי האיפור", + ["makeup_color_1"] = "צבע האיפור 1", + ["makeup_color_2"] = "צבע האיפור 2", + ["lipstick_type"] = "סוג השפתון", + ["lipstick_thickness"] = "עובי השפתון", + ["lipstick_color_1"] = "צבע השפתון 1", + ["lipstick_color_2"] = "צבע השפתון 2", + ["ear_accessories"] = "תכשיטים לאוזניים", + ["ear_accessories_color"] = "צבע התכשיטים לאוזניים", + ["tshirt_1"] = "חולצת טי 1", + ["tshirt_2"] = "חולצת טי 2", + ["torso_1"] = "גוף עליון 1", + ["torso_2"] = "גוף עליון 2", + ["decals_1"] = "מדבקות 1", + ["decals_2"] = "מדבקות 2", + ["arms"] = "ידיים", + ["arms_2"] = "ידיים 2", + ["pants_1"] = "מכנסיים 1", + ["pants_2"] = "מכנסיים 2", + ["shoes_1"] = "נעליים 1", + ["shoes_2"] = "נעליים 2", + ["mask_1"] = "מסיכה 1", + ["mask_2"] = "מסיכה 2", + ["bproof_1"] = "שריון נגד קליעים 1", + ["bproof_2"] = "שריון נגד קליעים 2", + ["chain_1"] = "שרשרת 1", + ["chain_2"] = "שרשרת 2", + ["helmet_1"] = "קסדה 1", + ["helmet_2"] = "קסדה 2", + ["watches_1"] = "שעונים 1", + ["watches_2"] = "שעונים 2", + ["bracelets_1"] = "צמידים 1", + ["bracelets_2"] = "צמידים 2", + ["glasses_1"] = "משקפיים 1", + ["glasses_2"] = "משקפיים 2", + ["bag"] = "תיק", + ["bag_color"] = "צבע התיק", + ["blemishes"] = "כתמים", + ["blemishes_size"] = "עובי הכתמים", + ["ageing"] = "הזדקנות", + ["ageing_1"] = "עובי ההזדקנות", + ["blush"] = "רוגז", + ["blush_1"] = "עובי הרוגז", + ["blush_color"] = "צבע הרוגז", + ["complexion"] = "מרקם העור", + ["complexion_1"] = "עובי המרקם", + ["sun"] = "שמש", + ["sun_1"] = "עובי השמש", + ["freckles"] = "נמשים", + ["freckles_1"] = "עובי הנמשים", + ["chest_hair"] = "שיער חזה", + ["chest_hair_1"] = "עובי שיער החזה", + ["chest_color"] = "צבע שיער החזה", + ["bodyb"] = "כתמים בגוף", + ["bodyb_size"] = "עובי הכתמים בגוף", + ["bodyb_extra"] = "השפעת כתמים בגוף", + ["bodyb_extra_thickness"] = "עובי השפעת הכתמים בגוף", +} diff --git a/[core]/skinchanger/locales/hu.lua b/[core]/skinchanger/locales/hu.lua index 52238094b..a0b19a8a9 100644 --- a/[core]/skinchanger/locales/hu.lua +++ b/[core]/skinchanger/locales/hu.lua @@ -1,100 +1,100 @@ Locales["hu"] = { - ["sex"] = "Nem", - ["mom"] = "Anyja arca", - ["dad"] = "Apja arca", - ["resemblance"] = "Hasonlóság", - ["skin_tone"] = "Bőrszín", - ["nose_1"] = "Orr szélessége", - ["nose_2"] = "Orr magassága", - ["nose_3"] = "Orrcsúcs hossza", - ["nose_4"] = "Orrcsont magassága", - ["nose_5"] = "Orrcsúcs leengedése", - ["nose_6"] = "Orrcsong csavar", - ["cheeks_1"] = "Arccsont magassága", - ["cheeks_2"] = "Arccsont szélessége", - ["cheeks_3"] = "Arccsont szélessége 2", - ["lip_fullness"] = "Ajak teltsége", - ["jaw_bone_width"] = "Allcsont szélessége", - ["jaw_bone_length"] = "Állcsong hossza", - ["chin_height"] = "Áll magassága", - ["chin_length"] = "Áll hossza", - ["chin_width"] = "Áll szélessége", - ["chin_hole"] = "Álllyuk mérete", - ["neck_thickness"] = "Nyak vastagsága", - ["wrinkles"] = "Ráncok", - ["wrinkle_thickness"] = "Ráncok erőssége", - ["beard_type"] = "Szakáll típusa", - ["beard_size"] = "Szakáll nagysága", - ["beard_color_1"] = "Szakáll színe 1", - ["beard_color_2"] = "Szakáll színe 2", - ["hair_1"] = "Haj 1", - ["hair_2"] = "Haj 2", - ["hair_color_1"] = "Haj színe 1", - ["hair_color_2"] = "Haj színe 2", - ["eye_color"] = "Szem szine", - ["eye_squint"] = "Szem hunyorgás", - ["eyebrow_type"] = "Szem típusa", - ["eyebrow_size"] = "Szem nagysága", - ["eyebrow_color_1"] = "Szem színe 1", - ["eyebrow_color_2"] = "Szem színe 2", - ["eyebrow_depth"] = "Szemöldökmélysége", - ["eyebrow_height"] = "Szemöldökmagassága", - ["makeup_type"] = "Smink tipusa", - ["makeup_thickness"] = "Smink erössége", - ["makeup_color_1"] = "Smink színe 1", - ["makeup_color_2"] = "Smink színe 2", - ["lipstick_type"] = "Rúzs típusa", - ["lipstick_thickness"] = "Rúzs erőssége", - ["lipstick_color_1"] = "Rúzs színe 1", - ["lipstick_color_2"] = "Rúzs színe 2", - ["ear_accessories"] = "Fülbevaló", - ["ear_accessories_color"] = "Fülbevaló színe", - ["tshirt_1"] = "Póló 1", - ["tshirt_2"] = "Póló 2", - ["torso_1"] = "Felsö 1", - ["torso_2"] = "Felsö 2", - ["decals_1"] = "Matrica 1", - ["decals_2"] = "Matrica 2", - ["arms"] = "Kezek", - ["arms_2"] = "Kezek 2", - ["pants_1"] = "Nadrág 1", - ["pants_2"] = "Nadrág 2", - ["shoes_1"] = "Cipö 1", - ["shoes_2"] = "Cipö 2", - ["mask_1"] = "Maszk 1", - ["mask_2"] = "Maszk 2", - ["bproof_1"] = "Golyóállómellény 1", - ["bproof_2"] = "Golyóállómellény 2", - ["chain_1"] = "Lánc 1", - ["chain_2"] = "Lánc 2", - ["helmet_1"] = "Sisak 1", - ["helmet_2"] = "Sisak 2", - ["watches_1"] = "Óra 1", - ["watches_2"] = "Óra 2", - ["bracelets_1"] = "Karkötö 1", - ["bracelets_2"] = "Karkötö 2", - ["glasses_1"] = "Szemüveg 1", - ["glasses_2"] = "Szemüveg 2", - ["bag"] = "Táska", - ["bag_color"] = "Táska szine", - ["blemishes"] = "Foltok", - ["blemishes_size"] = "Foltok erőssége", - ["ageing"] = "Öregedés", - ["ageing_1"] = "Öregedés erőssége", - ["blush"] = "Bőrpír", - ["blush_1"] = "Bőrpír erőssége", - ["blush_color"] = "Bőrpír színe", - ["complexion"] = "Arcszín", - ["complexion_1"] = "Arcszín erőssége", - ["sun"] = "Nap", - ["sun_1"] = "Nap erőssége", - ["freckles"] = "Szeplők", - ["freckles_1"] = "Szeplők erőssége", - ["chest_hair"] = "Mellszőr", - ["chest_hair_1"] = "Mellszőr erőssége", - ["chest_color"] = "Mellszőr színe", - ["bodyb"] = "Bőrhibák", - ["bodyb_size"] = "Bőrhibák erőssége", - ["bodyb_extra"] = "Foltos testhatás", - ["bodyb_extra_thickness"] = "Foltos testhatás vastagsága", + ["sex"] = "Nem", + ["mom"] = "Anyja arca", + ["dad"] = "Apja arca", + ["resemblance"] = "Hasonlóság", + ["skin_tone"] = "Bőrszín", + ["nose_1"] = "Orr szélessége", + ["nose_2"] = "Orr magassága", + ["nose_3"] = "Orrcsúcs hossza", + ["nose_4"] = "Orrcsont magassága", + ["nose_5"] = "Orrcsúcs leengedése", + ["nose_6"] = "Orrcsong csavar", + ["cheeks_1"] = "Arccsont magassága", + ["cheeks_2"] = "Arccsont szélessége", + ["cheeks_3"] = "Arccsont szélessége 2", + ["lip_fullness"] = "Ajak teltsége", + ["jaw_bone_width"] = "Allcsont szélessége", + ["jaw_bone_length"] = "Állcsong hossza", + ["chin_height"] = "Áll magassága", + ["chin_length"] = "Áll hossza", + ["chin_width"] = "Áll szélessége", + ["chin_hole"] = "Álllyuk mérete", + ["neck_thickness"] = "Nyak vastagsága", + ["wrinkles"] = "Ráncok", + ["wrinkle_thickness"] = "Ráncok erőssége", + ["beard_type"] = "Szakáll típusa", + ["beard_size"] = "Szakáll nagysága", + ["beard_color_1"] = "Szakáll színe 1", + ["beard_color_2"] = "Szakáll színe 2", + ["hair_1"] = "Haj 1", + ["hair_2"] = "Haj 2", + ["hair_color_1"] = "Haj színe 1", + ["hair_color_2"] = "Haj színe 2", + ["eye_color"] = "Szem szine", + ["eye_squint"] = "Szem hunyorgás", + ["eyebrow_type"] = "Szem típusa", + ["eyebrow_size"] = "Szem nagysága", + ["eyebrow_color_1"] = "Szem színe 1", + ["eyebrow_color_2"] = "Szem színe 2", + ["eyebrow_depth"] = "Szemöldökmélysége", + ["eyebrow_height"] = "Szemöldökmagassága", + ["makeup_type"] = "Smink tipusa", + ["makeup_thickness"] = "Smink erössége", + ["makeup_color_1"] = "Smink színe 1", + ["makeup_color_2"] = "Smink színe 2", + ["lipstick_type"] = "Rúzs típusa", + ["lipstick_thickness"] = "Rúzs erőssége", + ["lipstick_color_1"] = "Rúzs színe 1", + ["lipstick_color_2"] = "Rúzs színe 2", + ["ear_accessories"] = "Fülbevaló", + ["ear_accessories_color"] = "Fülbevaló színe", + ["tshirt_1"] = "Póló 1", + ["tshirt_2"] = "Póló 2", + ["torso_1"] = "Felsö 1", + ["torso_2"] = "Felsö 2", + ["decals_1"] = "Matrica 1", + ["decals_2"] = "Matrica 2", + ["arms"] = "Kezek", + ["arms_2"] = "Kezek 2", + ["pants_1"] = "Nadrág 1", + ["pants_2"] = "Nadrág 2", + ["shoes_1"] = "Cipö 1", + ["shoes_2"] = "Cipö 2", + ["mask_1"] = "Maszk 1", + ["mask_2"] = "Maszk 2", + ["bproof_1"] = "Golyóállómellény 1", + ["bproof_2"] = "Golyóállómellény 2", + ["chain_1"] = "Lánc 1", + ["chain_2"] = "Lánc 2", + ["helmet_1"] = "Sisak 1", + ["helmet_2"] = "Sisak 2", + ["watches_1"] = "Óra 1", + ["watches_2"] = "Óra 2", + ["bracelets_1"] = "Karkötö 1", + ["bracelets_2"] = "Karkötö 2", + ["glasses_1"] = "Szemüveg 1", + ["glasses_2"] = "Szemüveg 2", + ["bag"] = "Táska", + ["bag_color"] = "Táska szine", + ["blemishes"] = "Foltok", + ["blemishes_size"] = "Foltok erőssége", + ["ageing"] = "Öregedés", + ["ageing_1"] = "Öregedés erőssége", + ["blush"] = "Bőrpír", + ["blush_1"] = "Bőrpír erőssége", + ["blush_color"] = "Bőrpír színe", + ["complexion"] = "Arcszín", + ["complexion_1"] = "Arcszín erőssége", + ["sun"] = "Nap", + ["sun_1"] = "Nap erőssége", + ["freckles"] = "Szeplők", + ["freckles_1"] = "Szeplők erőssége", + ["chest_hair"] = "Mellszőr", + ["chest_hair_1"] = "Mellszőr erőssége", + ["chest_color"] = "Mellszőr színe", + ["bodyb"] = "Bőrhibák", + ["bodyb_size"] = "Bőrhibák erőssége", + ["bodyb_extra"] = "Foltos testhatás", + ["bodyb_extra_thickness"] = "Foltos testhatás vastagsága", } diff --git a/[core]/skinchanger/locales/it.lua b/[core]/skinchanger/locales/it.lua index 78d248505..565c59252 100644 --- a/[core]/skinchanger/locales/it.lua +++ b/[core]/skinchanger/locales/it.lua @@ -1,100 +1,100 @@ Locales["it"] = { - ["sex"] = "sesso", - ["mom"] = "viso donna", - ["dad"] = "viso uomo", - ["resemblance"] = "somiglianze", - ["skin_tone"] = "tono della pelle", - ["nose_1"] = "larghezza del naso", - ["nose_2"] = "altezza della punta del naso", - ["nose_3"] = "lunghezza della punta del naso", - ["nose_4"] = "altezza dell'osso del naso", - ["nose_5"] = "abbassamento della punta del naso", - ["nose_6"] = "torsione dell'osso del naso", - ["cheeks_1"] = "altezza degli zigomi", - ["cheeks_2"] = "larghezza degli zigomi", - ["cheeks_3"] = "larghezza delle guance", - ["lip_fullness"] = "spessore delle labbra", - ["jaw_bone_width"] = "larghezza dell'osso mascellare", - ["jaw_bone_length"] = "lunghezza dell'osso mascellare", - ["chin_height"] = "altezza del mento", - ["chin_length"] = "lunghezza del mento", - ["chin_width"] = "larghezza del mento", - ["chin_hole"] = "dimensione del foro del mento", - ["neck_thickness"] = "spessore del collo", - ["wrinkles"] = "rughe", - ["wrinkle_thickness"] = "spessore delle rughe", - ["beard_type"] = "tipo di barba", - ["beard_size"] = "dimensione della barba", - ["beard_color_1"] = "colore della barba 1", - ["beard_color_2"] = "colore della barba 2", - ["hair_1"] = "capelli 1", - ["hair_2"] = "capelli 2", - ["hair_color_1"] = "colore capelli 1", - ["hair_color_2"] = "colore capelli 2", - ["eye_color"] = "colore degli occhi", - ["eye_squint"] = "strabismo degli occhi", - ["eyebrow_type"] = "tipo di sopracciglio", - ["eyebrow_size"] = "dimensione delle sopracciglia", - ["eyebrow_color_1"] = "colore delle sopracciglia 1", - ["eyebrow_color_2"] = "colore delle sopracciglia 2", - ["eyebrow_depth"] = "profondità delle sopracciglia", - ["eyebrow_height"] = "altezza del sopracciglio", - ["makeup_type"] = "tipo di trucco", - ["makeup_thickness"] = "spessore del trucco", - ["makeup_color_1"] = "colore del trucco 1", - ["makeup_color_2"] = "colore del trucco 2", - ["lipstick_type"] = "tipo di rossetto", - ["lipstick_thickness"] = "spessore del rossetto", - ["lipstick_color_1"] = "colore del rossetto 1", - ["lipstick_color_2"] = "colore del rossetto 2", - ["ear_accessories"] = "accessori per le orecchie", - ["ear_accessories_color"] = "colore accessori orecchie", - ["tshirt_1"] = "t-Shirt 1", - ["tshirt_2"] = "t-Shirt 2", - ["torso_1"] = "torso 1", - ["torso_2"] = "torso 2", - ["decals_1"] = "decals 1", - ["decals_2"] = "decals 2", - ["arms"] = "braccia", - ["arms_2"] = "braccia 2", - ["pants_1"] = "pantaloni", - ["pants_2"] = "colore pantaloni", - ["shoes_1"] = "scarpe", - ["shoes_2"] = "colore scarpe", - ["mask_1"] = "maschera 1", - ["mask_2"] = "maschera 2", - ["bproof_1"] = "giubbotto antiproiettile 1", - ["bproof_2"] = "giubbotto antiproiettile2", - ["chain_1"] = "collana 1", - ["chain_2"] = "collana 2", - ["helmet_1"] = "casco 1", - ["helmet_2"] = "casco 2", - ["watches_1"] = "orologi 1", - ["watches_2"] = "orologi 2", - ["bracelets_1"] = "bracciali 1", - ["bracelets_2"] = "bracciali 2", - ["glasses_1"] = "occhiali 1", - ["glasses_2"] = "occhiali 2", - ["bag"] = "zaino", - ["bag_color"] = "colore zaino", - ["blemishes"] = "imperfezioni", - ["blemishes_size"] = "pessore delle imperfezioni", - ["ageing"] = "invecchiamento pelle", - ["ageing_1"] = "spessore invecchiamento", - ["blush"] = "arrossimento", - ["blush_1"] = "spessore del rossore", - ["blush_color"] = "colore rossore", - ["complexion"] = "carnagione", - ["complexion_1"] = "spessore della carnagione", - ["sun"] = "lentiggini", - ["sun_1"] = "spessore lentiggini", - ["freckles"] = "lentiggini", - ["freckles_1"] = "spessore delle lentiggini", - ["chest_hair"] = "peli del petto", - ["chest_hair_1"] = "spessore dei peli del torace", - ["chest_color"] = "colore dei peli del petto", - ["bodyb"] = "inestetismi del corpo", - ["bodyb_size"] = "spessore delle imperfezioni", - ["bodyb_extra"] = "inestetismi del corpo extra", - ["bodyb_extra_thickness"] = "inestetismi del corpo spessore", + ["sex"] = "sesso", + ["mom"] = "viso donna", + ["dad"] = "viso uomo", + ["resemblance"] = "somiglianze", + ["skin_tone"] = "tono della pelle", + ["nose_1"] = "larghezza del naso", + ["nose_2"] = "altezza della punta del naso", + ["nose_3"] = "lunghezza della punta del naso", + ["nose_4"] = "altezza dell'osso del naso", + ["nose_5"] = "abbassamento della punta del naso", + ["nose_6"] = "torsione dell'osso del naso", + ["cheeks_1"] = "altezza degli zigomi", + ["cheeks_2"] = "larghezza degli zigomi", + ["cheeks_3"] = "larghezza delle guance", + ["lip_fullness"] = "spessore delle labbra", + ["jaw_bone_width"] = "larghezza dell'osso mascellare", + ["jaw_bone_length"] = "lunghezza dell'osso mascellare", + ["chin_height"] = "altezza del mento", + ["chin_length"] = "lunghezza del mento", + ["chin_width"] = "larghezza del mento", + ["chin_hole"] = "dimensione del foro del mento", + ["neck_thickness"] = "spessore del collo", + ["wrinkles"] = "rughe", + ["wrinkle_thickness"] = "spessore delle rughe", + ["beard_type"] = "tipo di barba", + ["beard_size"] = "dimensione della barba", + ["beard_color_1"] = "colore della barba 1", + ["beard_color_2"] = "colore della barba 2", + ["hair_1"] = "capelli 1", + ["hair_2"] = "capelli 2", + ["hair_color_1"] = "colore capelli 1", + ["hair_color_2"] = "colore capelli 2", + ["eye_color"] = "colore degli occhi", + ["eye_squint"] = "strabismo degli occhi", + ["eyebrow_type"] = "tipo di sopracciglio", + ["eyebrow_size"] = "dimensione delle sopracciglia", + ["eyebrow_color_1"] = "colore delle sopracciglia 1", + ["eyebrow_color_2"] = "colore delle sopracciglia 2", + ["eyebrow_depth"] = "profondità delle sopracciglia", + ["eyebrow_height"] = "altezza del sopracciglio", + ["makeup_type"] = "tipo di trucco", + ["makeup_thickness"] = "spessore del trucco", + ["makeup_color_1"] = "colore del trucco 1", + ["makeup_color_2"] = "colore del trucco 2", + ["lipstick_type"] = "tipo di rossetto", + ["lipstick_thickness"] = "spessore del rossetto", + ["lipstick_color_1"] = "colore del rossetto 1", + ["lipstick_color_2"] = "colore del rossetto 2", + ["ear_accessories"] = "accessori per le orecchie", + ["ear_accessories_color"] = "colore accessori orecchie", + ["tshirt_1"] = "t-Shirt 1", + ["tshirt_2"] = "t-Shirt 2", + ["torso_1"] = "torso 1", + ["torso_2"] = "torso 2", + ["decals_1"] = "decals 1", + ["decals_2"] = "decals 2", + ["arms"] = "braccia", + ["arms_2"] = "braccia 2", + ["pants_1"] = "pantaloni", + ["pants_2"] = "colore pantaloni", + ["shoes_1"] = "scarpe", + ["shoes_2"] = "colore scarpe", + ["mask_1"] = "maschera 1", + ["mask_2"] = "maschera 2", + ["bproof_1"] = "giubbotto antiproiettile 1", + ["bproof_2"] = "giubbotto antiproiettile2", + ["chain_1"] = "collana 1", + ["chain_2"] = "collana 2", + ["helmet_1"] = "casco 1", + ["helmet_2"] = "casco 2", + ["watches_1"] = "orologi 1", + ["watches_2"] = "orologi 2", + ["bracelets_1"] = "bracciali 1", + ["bracelets_2"] = "bracciali 2", + ["glasses_1"] = "occhiali 1", + ["glasses_2"] = "occhiali 2", + ["bag"] = "zaino", + ["bag_color"] = "colore zaino", + ["blemishes"] = "imperfezioni", + ["blemishes_size"] = "pessore delle imperfezioni", + ["ageing"] = "invecchiamento pelle", + ["ageing_1"] = "spessore invecchiamento", + ["blush"] = "arrossimento", + ["blush_1"] = "spessore del rossore", + ["blush_color"] = "colore rossore", + ["complexion"] = "carnagione", + ["complexion_1"] = "spessore della carnagione", + ["sun"] = "lentiggini", + ["sun_1"] = "spessore lentiggini", + ["freckles"] = "lentiggini", + ["freckles_1"] = "spessore delle lentiggini", + ["chest_hair"] = "peli del petto", + ["chest_hair_1"] = "spessore dei peli del torace", + ["chest_color"] = "colore dei peli del petto", + ["bodyb"] = "inestetismi del corpo", + ["bodyb_size"] = "spessore delle imperfezioni", + ["bodyb_extra"] = "inestetismi del corpo extra", + ["bodyb_extra_thickness"] = "inestetismi del corpo spessore", } diff --git a/[core]/skinchanger/locales/nl.lua b/[core]/skinchanger/locales/nl.lua index a371fadaa..fb2609035 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", -} +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", +} diff --git a/[core]/skinchanger/locales/pl.lua b/[core]/skinchanger/locales/pl.lua index b8cf29b14..e2e292ad5 100644 --- a/[core]/skinchanger/locales/pl.lua +++ b/[core]/skinchanger/locales/pl.lua @@ -1,102 +1,102 @@ Locales["pl"] = { - ["sex"] = "płeć", - ["mom"] = "twarz matki", - ["dad"] = "twarz ojca", - ["resemblance"] = "podobieństwo", - ["skin_tone"] = "kolor skóry", - ["nose_1"] = "szerokość nosa", - ["nose_2"] = "nose peak height", - ["nose_3"] = "wysokość szczytu nosa", - ["nose_4"] = "wysokość kości nosa", - ["nose_5"] = "obniżenie szczytu nosa", - ["nose_6"] = "skręcenie kości nosa", - ["cheeks_1"] = "wysokość kości policzkowych", - ["cheeks_2"] = "szerokość kości policzkowych", - ["cheeks_3"] = "szerokość policzków", - ["lip_fullness"] = "pełne usta", - ["jaw_bone_width"] = "szerokość kości szczęki", - ["jaw_bone_length"] = "długość kości szczęki", - ["chin_height"] = "wysokość podbródka", - ["chin_length"] = "długość podbródka", - ["chin_width"] = "szerokość podbródka", - ["chin_hole"] = "rozmiar dziury w podbródku", - ["neck_thickness"] = "grubość szyi", - ["face"] = "twarz", - ["skin"] = "skóra", - ["wrinkles"] = "zmarszczki", - ["wrinkle_thickness"] = "wielkość zmarszczek", - ["beard_type"] = "styl brody", - ["beard_size"] = "wielkość brody", - ["beard_color_1"] = "kolor brody 1", - ["beard_color_2"] = "kolor brody 2", - ["hair_1"] = "włosy 1", - ["hair_2"] = "włosy 2", - ["hair_color_1"] = "kolor włosów 1", - ["hair_color_2"] = "kolor włosów 2", - ["eye_color"] = "kolor oczu", - ["eye_squint"] = "zmrużenie oczu", - ["eyebrow_type"] = "styl brwi", - ["eyebrow_size"] = "wielkość brwi", - ["eyebrow_color_1"] = "kolor brwi 1", - ["eyebrow_color_2"] = "kolor brwi 2", - ["eyebrow_depth"] = "głębokość brwi", - ["eyebrow_height"] = "wysokość brwi", - ["makeup_type"] = "styl makijażu", - ["makeup_thickness"] = "grubość makijażu", - ["makeup_color_1"] = "kolor makijażu 1", - ["makeup_color_2"] = "kolor makijażu 2", - ["lipstick_type"] = "styl szminki", - ["lipstick_thickness"] = "grubość szminki", - ["lipstick_color_1"] = "kolor szminki 1", - ["lipstick_color_2"] = "kolor szminki 2", - ["ear_accessories"] = "akcesoria do uszu", - ["ear_accessories_color"] = "kolor akcesorii do uszu", - ["tshirt_1"] = "koszulka 1", - ["tshirt_2"] = "koszulka 2", - ["torso_1"] = "tułów 1", - ["torso_2"] = "tułów 2", - ["decals_1"] = "detale 1", - ["decals_2"] = "detale 2", - ["arms"] = "ramiona", - ["arms_2"] = "ramiona 2", - ["pants_1"] = "spodnie 1", - ["pants_2"] = "spodnie 2", - ["shoes_1"] = "buty 1", - ["shoes_2"] = "buty 2", - ["mask_1"] = "maska 1", - ["mask_2"] = "maska 2", - ["bproof_1"] = "kamizelka kuloodporna 1", - ["bproof_2"] = "kamizelka kuloodporna 2", - ["chain_1"] = "łańcuch 1", - ["chain_2"] = "łańcuch 2", - ["helmet_1"] = "hełm 1", - ["helmet_2"] = "hełm 2", - ["watches_1"] = "zegarek 1", - ["watches_2"] = "zegarek 2", - ["bracelets_1"] = "bransoletka 1", - ["bracelets_2"] = "bransoletka 2", - ["glasses_1"] = "okulary 1", - ["glasses_2"] = "okulary 2", - ["bag"] = "torba", - ["bag_color"] = "kolor torby", - ["blemishes"] = "skazy", - ["blemishes_size"] = "wielkość skaz", - ["ageing"] = "starzenie", - ["ageing_1"] = "wielkość starzenia", - ["blush"] = "rumieńce", - ["blush_1"] = "grubość rumieni", - ["blush_color"] = "kolor rumieni", - ["complexion"] = "cera", - ["complexion_1"] = "rodzaj cery", - ["sun"] = "opalenie", - ["sun_1"] = "wielkość opalenia", - ["freckles"] = "piegi", - ["freckles_1"] = "rodzaj piegów", - ["chest_hair"] = "włosy na klacie", - ["chest_hair_1"] = "ilość włosów na klacie", - ["chest_color"] = "kolor włosów na klacie", - ["bodyb"] = "skazy ciała", - ["bodyb_size"] = "rodzaj skaz ciała", - ["bodyb_extra"] = "efekt skaz ciała", - ["bodyb_extra_thickness"] = "wielkość skaz ciała", + ["sex"] = "płeć", + ["mom"] = "twarz matki", + ["dad"] = "twarz ojca", + ["resemblance"] = "podobieństwo", + ["skin_tone"] = "kolor skóry", + ["nose_1"] = "szerokość nosa", + ["nose_2"] = "nose peak height", + ["nose_3"] = "wysokość szczytu nosa", + ["nose_4"] = "wysokość kości nosa", + ["nose_5"] = "obniżenie szczytu nosa", + ["nose_6"] = "skręcenie kości nosa", + ["cheeks_1"] = "wysokość kości policzkowych", + ["cheeks_2"] = "szerokość kości policzkowych", + ["cheeks_3"] = "szerokość policzków", + ["lip_fullness"] = "pełne usta", + ["jaw_bone_width"] = "szerokość kości szczęki", + ["jaw_bone_length"] = "długość kości szczęki", + ["chin_height"] = "wysokość podbródka", + ["chin_length"] = "długość podbródka", + ["chin_width"] = "szerokość podbródka", + ["chin_hole"] = "rozmiar dziury w podbródku", + ["neck_thickness"] = "grubość szyi", + ["face"] = "twarz", + ["skin"] = "skóra", + ["wrinkles"] = "zmarszczki", + ["wrinkle_thickness"] = "wielkość zmarszczek", + ["beard_type"] = "styl brody", + ["beard_size"] = "wielkość brody", + ["beard_color_1"] = "kolor brody 1", + ["beard_color_2"] = "kolor brody 2", + ["hair_1"] = "włosy 1", + ["hair_2"] = "włosy 2", + ["hair_color_1"] = "kolor włosów 1", + ["hair_color_2"] = "kolor włosów 2", + ["eye_color"] = "kolor oczu", + ["eye_squint"] = "zmrużenie oczu", + ["eyebrow_type"] = "styl brwi", + ["eyebrow_size"] = "wielkość brwi", + ["eyebrow_color_1"] = "kolor brwi 1", + ["eyebrow_color_2"] = "kolor brwi 2", + ["eyebrow_depth"] = "głębokość brwi", + ["eyebrow_height"] = "wysokość brwi", + ["makeup_type"] = "styl makijażu", + ["makeup_thickness"] = "grubość makijażu", + ["makeup_color_1"] = "kolor makijażu 1", + ["makeup_color_2"] = "kolor makijażu 2", + ["lipstick_type"] = "styl szminki", + ["lipstick_thickness"] = "grubość szminki", + ["lipstick_color_1"] = "kolor szminki 1", + ["lipstick_color_2"] = "kolor szminki 2", + ["ear_accessories"] = "akcesoria do uszu", + ["ear_accessories_color"] = "kolor akcesorii do uszu", + ["tshirt_1"] = "koszulka 1", + ["tshirt_2"] = "koszulka 2", + ["torso_1"] = "tułów 1", + ["torso_2"] = "tułów 2", + ["decals_1"] = "detale 1", + ["decals_2"] = "detale 2", + ["arms"] = "ramiona", + ["arms_2"] = "ramiona 2", + ["pants_1"] = "spodnie 1", + ["pants_2"] = "spodnie 2", + ["shoes_1"] = "buty 1", + ["shoes_2"] = "buty 2", + ["mask_1"] = "maska 1", + ["mask_2"] = "maska 2", + ["bproof_1"] = "kamizelka kuloodporna 1", + ["bproof_2"] = "kamizelka kuloodporna 2", + ["chain_1"] = "łańcuch 1", + ["chain_2"] = "łańcuch 2", + ["helmet_1"] = "hełm 1", + ["helmet_2"] = "hełm 2", + ["watches_1"] = "zegarek 1", + ["watches_2"] = "zegarek 2", + ["bracelets_1"] = "bransoletka 1", + ["bracelets_2"] = "bransoletka 2", + ["glasses_1"] = "okulary 1", + ["glasses_2"] = "okulary 2", + ["bag"] = "torba", + ["bag_color"] = "kolor torby", + ["blemishes"] = "skazy", + ["blemishes_size"] = "wielkość skaz", + ["ageing"] = "starzenie", + ["ageing_1"] = "wielkość starzenia", + ["blush"] = "rumieńce", + ["blush_1"] = "grubość rumieni", + ["blush_color"] = "kolor rumieni", + ["complexion"] = "cera", + ["complexion_1"] = "rodzaj cery", + ["sun"] = "opalenie", + ["sun_1"] = "wielkość opalenia", + ["freckles"] = "piegi", + ["freckles_1"] = "rodzaj piegów", + ["chest_hair"] = "włosy na klacie", + ["chest_hair_1"] = "ilość włosów na klacie", + ["chest_color"] = "kolor włosów na klacie", + ["bodyb"] = "skazy ciała", + ["bodyb_size"] = "rodzaj skaz ciała", + ["bodyb_extra"] = "efekt skaz ciała", + ["bodyb_extra_thickness"] = "wielkość skaz ciała", } diff --git a/[core]/skinchanger/locales/pt.lua b/[core]/skinchanger/locales/pt.lua index 325921461..7d345ba20 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", } diff --git a/[core]/skinchanger/locales/sl.lua b/[core]/skinchanger/locales/sl.lua index d75f827ac..18bf487d2 100644 --- a/[core]/skinchanger/locales/sl.lua +++ b/[core]/skinchanger/locales/sl.lua @@ -1,100 +1,100 @@ Locales["sl"] = { - ["sex"] = "Spol", - ["mom"] = "mom's face", - ["dad"] = "dad's face", - ["resemblance"] = "resemblance", - ["skin_tone"] = "skin tone", - ["nose_1"] = "nose width", - ["nose_2"] = "nose peak height", - ["nose_3"] = "nose peak length", - ["nose_4"] = "nose bone height", - ["nose_5"] = "nose peak lowering", - ["nose_6"] = "nose bone twist", - ["cheeks_1"] = "cheekbones height", - ["cheeks_2"] = "cheekbones width", - ["cheeks_3"] = "cheeks width", - ["lip_fullness"] = "lip fullness", - ["jaw_bone_width"] = "jaw bone width", - ["jaw_bone_length"] = "jaw bone length", - ["chin_height"] = "chin height", - ["chin_length"] = "chin length", - ["chin_width"] = "chin width", - ["chin_hole"] = "chin hole size", - ["neck_thickness"] = "neck thickness", - ["wrinkles"] = "wrinkles", - ["wrinkle_thickness"] = "wrinkle thickness", - ["beard_type"] = "beard type", - ["beard_size"] = "beard size", - ["beard_color_1"] = "beard color 1", - ["beard_color_2"] = "beard color 2", - ["hair_1"] = "hair 1", - ["hair_2"] = "hair 2", - ["hair_color_1"] = "hair color 1", - ["hair_color_2"] = "hair color 2", - ["eye_color"] = "eye color", - ["eye_squint"] = "eye squint", - ["eyebrow_type"] = "eyebrow type", - ["eyebrow_size"] = "eyebrow size", - ["eyebrow_color_1"] = "eyebrow color 1", - ["eyebrow_color_2"] = "eyebrow color 2", - ["eyebrow_depth"] = "eyebrow depth", - ["eyebrow_height"] = "eyebrow height", - ["makeup_type"] = "makeup type", - ["makeup_thickness"] = "makeup thickness", - ["makeup_color_1"] = "makeup color 1", - ["makeup_color_2"] = "makeup color 2", - ["lipstick_type"] = "lipstick type", - ["lipstick_thickness"] = "lipstick thickness", - ["lipstick_color_1"] = "lipstick color 1", - ["lipstick_color_2"] = "lipstick color 2", - ["ear_accessories"] = "ear accessories", - ["ear_accessories_color"] = "ear accessories color", - ["tshirt_1"] = "t-Shirt 1", - ["tshirt_2"] = "t-Shirt 2", - ["torso_1"] = "torso 1", - ["torso_2"] = "torso 2", - ["decals_1"] = "decals 1", - ["decals_2"] = "decals 2", - ["arms"] = "arms", - ["arms_2"] = "arms 2", - ["pants_1"] = "pants 1", - ["pants_2"] = "pants 2", - ["shoes_1"] = "shoes 1", - ["shoes_2"] = "shoes 2", - ["mask_1"] = "mask 1", - ["mask_2"] = "mask 2", - ["bproof_1"] = "bulletproof vest 1", - ["bproof_2"] = "bulletproof vest 2", - ["chain_1"] = "chain 1", - ["chain_2"] = "chain 2", - ["helmet_1"] = "helmet 1", - ["helmet_2"] = "helmet 2", - ["watches_1"] = "watches 1", - ["watches_2"] = "watches 2", - ["bracelets_1"] = "bracelets 1", - ["bracelets_2"] = "bracelets 2", - ["glasses_1"] = "glasses 1", - ["glasses_2"] = "glasses 2", - ["bag"] = "bag", - ["bag_color"] = "bag color", - ["blemishes"] = "blemishes", - ["blemishes_size"] = "blemishes thickness", - ["ageing"] = "ageing", - ["ageing_1"] = "ageing thickness", - ["blush"] = "blush", - ["blush_1"] = "blush thickness", - ["blush_color"] = "blush color", - ["complexion"] = "complexion", - ["complexion_1"] = "complexion thickness", - ["sun"] = "sun", - ["sun_1"] = "sun thickness", - ["freckles"] = "freckles", - ["freckles_1"] = "freckles thickness", - ["chest_hair"] = "chest hair", - ["chest_hair_1"] = "chest hair thickness", - ["chest_color"] = "chest hair color", - ["bodyb"] = "body blemishes", - ["bodyb_size"] = "body blemishes thickness", - ["bodyb_extra"] = "blemishes body effect", - ["bodyb_extra_thickness"] = "blemishes body effect thickness", + ["sex"] = "Spol", + ["mom"] = "mom's face", + ["dad"] = "dad's face", + ["resemblance"] = "resemblance", + ["skin_tone"] = "skin tone", + ["nose_1"] = "nose width", + ["nose_2"] = "nose peak height", + ["nose_3"] = "nose peak length", + ["nose_4"] = "nose bone height", + ["nose_5"] = "nose peak lowering", + ["nose_6"] = "nose bone twist", + ["cheeks_1"] = "cheekbones height", + ["cheeks_2"] = "cheekbones width", + ["cheeks_3"] = "cheeks width", + ["lip_fullness"] = "lip fullness", + ["jaw_bone_width"] = "jaw bone width", + ["jaw_bone_length"] = "jaw bone length", + ["chin_height"] = "chin height", + ["chin_length"] = "chin length", + ["chin_width"] = "chin width", + ["chin_hole"] = "chin hole size", + ["neck_thickness"] = "neck thickness", + ["wrinkles"] = "wrinkles", + ["wrinkle_thickness"] = "wrinkle thickness", + ["beard_type"] = "beard type", + ["beard_size"] = "beard size", + ["beard_color_1"] = "beard color 1", + ["beard_color_2"] = "beard color 2", + ["hair_1"] = "hair 1", + ["hair_2"] = "hair 2", + ["hair_color_1"] = "hair color 1", + ["hair_color_2"] = "hair color 2", + ["eye_color"] = "eye color", + ["eye_squint"] = "eye squint", + ["eyebrow_type"] = "eyebrow type", + ["eyebrow_size"] = "eyebrow size", + ["eyebrow_color_1"] = "eyebrow color 1", + ["eyebrow_color_2"] = "eyebrow color 2", + ["eyebrow_depth"] = "eyebrow depth", + ["eyebrow_height"] = "eyebrow height", + ["makeup_type"] = "makeup type", + ["makeup_thickness"] = "makeup thickness", + ["makeup_color_1"] = "makeup color 1", + ["makeup_color_2"] = "makeup color 2", + ["lipstick_type"] = "lipstick type", + ["lipstick_thickness"] = "lipstick thickness", + ["lipstick_color_1"] = "lipstick color 1", + ["lipstick_color_2"] = "lipstick color 2", + ["ear_accessories"] = "ear accessories", + ["ear_accessories_color"] = "ear accessories color", + ["tshirt_1"] = "t-Shirt 1", + ["tshirt_2"] = "t-Shirt 2", + ["torso_1"] = "torso 1", + ["torso_2"] = "torso 2", + ["decals_1"] = "decals 1", + ["decals_2"] = "decals 2", + ["arms"] = "arms", + ["arms_2"] = "arms 2", + ["pants_1"] = "pants 1", + ["pants_2"] = "pants 2", + ["shoes_1"] = "shoes 1", + ["shoes_2"] = "shoes 2", + ["mask_1"] = "mask 1", + ["mask_2"] = "mask 2", + ["bproof_1"] = "bulletproof vest 1", + ["bproof_2"] = "bulletproof vest 2", + ["chain_1"] = "chain 1", + ["chain_2"] = "chain 2", + ["helmet_1"] = "helmet 1", + ["helmet_2"] = "helmet 2", + ["watches_1"] = "watches 1", + ["watches_2"] = "watches 2", + ["bracelets_1"] = "bracelets 1", + ["bracelets_2"] = "bracelets 2", + ["glasses_1"] = "glasses 1", + ["glasses_2"] = "glasses 2", + ["bag"] = "bag", + ["bag_color"] = "bag color", + ["blemishes"] = "blemishes", + ["blemishes_size"] = "blemishes thickness", + ["ageing"] = "ageing", + ["ageing_1"] = "ageing thickness", + ["blush"] = "blush", + ["blush_1"] = "blush thickness", + ["blush_color"] = "blush color", + ["complexion"] = "complexion", + ["complexion_1"] = "complexion thickness", + ["sun"] = "sun", + ["sun_1"] = "sun thickness", + ["freckles"] = "freckles", + ["freckles_1"] = "freckles thickness", + ["chest_hair"] = "chest hair", + ["chest_hair_1"] = "chest hair thickness", + ["chest_color"] = "chest hair color", + ["bodyb"] = "body blemishes", + ["bodyb_size"] = "body blemishes thickness", + ["bodyb_extra"] = "blemishes body effect", + ["bodyb_extra_thickness"] = "blemishes body effect thickness", } diff --git a/[core]/skinchanger/locales/sr.lua b/[core]/skinchanger/locales/sr.lua index 71b7f30ce..e18d3b185 100644 --- a/[core]/skinchanger/locales/sr.lua +++ b/[core]/skinchanger/locales/sr.lua @@ -1,100 +1,100 @@ Locales["sr"] = { - ["sex"] = "pol", - ["mom"] = "mamina faca", - ["dad"] = "tatina faca", - ["resemblance"] = "sličnost", - ["skin_tone"] = "ten", - ["nose_1"] = "širina nosa", - ["nose_2"] = "visina vrha nosa", - ["nose_3"] = "dužina vrha nosa", - ["nose_4"] = "visina nosne kosti", - ["nose_5"] = "spuštanje vrha nosa", - ["nose_6"] = "uvrtanje nosne kosti", - ["cheeks_1"] = "visina jagodica", - ["cheeks_2"] = "širina jagodica", - ["cheeks_3"] = "širina obraza", - ["lip_fullness"] = "punoća usana", - ["jaw_bone_width"] = "širina kostiju vilice", - ["jaw_bone_length"] = "dužina kostiju vilice", - ["chin_height"] = "visina brade", - ["chin_length"] = "dužina brade", - ["chin_width"] = "širina brade", - ["chin_hole"] = "veličina rupe za bradu", - ["neck_thickness"] = "debljina vrata", - ["wrinkles"] = "bore", - ["wrinkle_thickness"] = "debljina bora", - ["beard_type"] = "tip brade", - ["beard_size"] = "veličina brade", - ["beard_color_1"] = "boja brade 1", - ["beard_color_2"] = "boja brade 2", - ["hair_1"] = "kosa 1", - ["hair_2"] = "kosa 2", - ["hair_color_1"] = "boja kose 1", - ["hair_color_2"] = "boja kose 2", - ["eye_color"] = "boja očiju", - ["eye_squint"] = "raširenost oka", - ["eyebrow_type"] = "tip obrva", - ["eyebrow_size"] = "veličina obrva", - ["eyebrow_color_1"] = "boja obrva 1", - ["eyebrow_color_2"] = "boja obrva 2", - ["eyebrow_depth"] = "dubina obrva", - ["eyebrow_height"] = "visina obrva", - ["makeup_type"] = "šminka", - ["makeup_thickness"] = "debljina šminke", - ["makeup_color_1"] = "boja šminke 1", - ["makeup_color_2"] = "boja šminke 2", - ["lipstick_type"] = "tip karmina", - ["lipstick_thickness"] = "debljina karmina", - ["lipstick_color_1"] = "boja karmina 1", - ["lipstick_color_2"] = "boja karmina 2", - ["ear_accessories"] = "naušnice", - ["ear_accessories_color"] = "boja naušnica", - ["tshirt_1"] = "majica ", - ["tshirt_2"] = "boja majice", - ["torso_1"] = "gornjak", - ["torso_2"] = "boja gornjaka", - ["decals_1"] = "detalji", - ["decals_2"] = "boja detalja", - ["arms"] = "ruke", - ["arms_2"] = "boja rukavica", - ["pants_1"] = "pantalone", - ["pants_2"] = "boja pantalona", - ["shoes_1"] = "patike", - ["shoes_2"] = "boja patika", - ["mask_1"] = "maska", - ["mask_2"] = "boja maske", - ["bproof_1"] = "pancir", - ["bproof_2"] = "boja pancira", - ["chain_1"] = "lanac", - ["chain_2"] = "boja lanca", - ["helmet_1"] = "kaciga", - ["helmet_2"] = "boja kacige", - ["watches_1"] = "sat", - ["watches_2"] = "boja sata", - ["bracelets_1"] = "narukvice", - ["bracelets_2"] = "boja narukvice", - ["glasses_1"] = "naočare", - ["glasses_2"] = "boja naočara", - ["bag"] = "torba", - ["bag_color"] = "boja torbe", - ["blemishes"] = "mrlje", - ["blemishes_size"] = "debljina mrlja", - ["ageing"] = "starenje", - ["ageing_1"] = "debljina starenja", - ["blush"] = "rumenilo", - ["blush_1"] = "debljina rumenila", - ["blush_color"] = "boja rumenila", - ["complexion"] = "ten", - ["complexion_1"] = "debljina tena", - ["sun"] = "sunce", - ["sun_1"] = "debljina sunca", - ["freckles"] = "pege", - ["freckles_1"] = "debljina pega", - ["chest_hair"] = "dlake na grudima", - ["chest_hair_1"] = "debljina dlaka na grudima", - ["chest_color"] = "boja dlaka na grudima", - ["bodyb"] = "mrlje na telu", - ["bodyb_size"] = "debljina mrlja na telu", - ["bodyb_extra"] = "efekat mrlja na telu", - ["bodyb_extra_thickness"] = "mrlje telo efekat debljine", + ["sex"] = "pol", + ["mom"] = "mamina faca", + ["dad"] = "tatina faca", + ["resemblance"] = "sličnost", + ["skin_tone"] = "ten", + ["nose_1"] = "širina nosa", + ["nose_2"] = "visina vrha nosa", + ["nose_3"] = "dužina vrha nosa", + ["nose_4"] = "visina nosne kosti", + ["nose_5"] = "spuštanje vrha nosa", + ["nose_6"] = "uvrtanje nosne kosti", + ["cheeks_1"] = "visina jagodica", + ["cheeks_2"] = "širina jagodica", + ["cheeks_3"] = "širina obraza", + ["lip_fullness"] = "punoća usana", + ["jaw_bone_width"] = "širina kostiju vilice", + ["jaw_bone_length"] = "dužina kostiju vilice", + ["chin_height"] = "visina brade", + ["chin_length"] = "dužina brade", + ["chin_width"] = "širina brade", + ["chin_hole"] = "veličina rupe za bradu", + ["neck_thickness"] = "debljina vrata", + ["wrinkles"] = "bore", + ["wrinkle_thickness"] = "debljina bora", + ["beard_type"] = "tip brade", + ["beard_size"] = "veličina brade", + ["beard_color_1"] = "boja brade 1", + ["beard_color_2"] = "boja brade 2", + ["hair_1"] = "kosa 1", + ["hair_2"] = "kosa 2", + ["hair_color_1"] = "boja kose 1", + ["hair_color_2"] = "boja kose 2", + ["eye_color"] = "boja očiju", + ["eye_squint"] = "raširenost oka", + ["eyebrow_type"] = "tip obrva", + ["eyebrow_size"] = "veličina obrva", + ["eyebrow_color_1"] = "boja obrva 1", + ["eyebrow_color_2"] = "boja obrva 2", + ["eyebrow_depth"] = "dubina obrva", + ["eyebrow_height"] = "visina obrva", + ["makeup_type"] = "šminka", + ["makeup_thickness"] = "debljina šminke", + ["makeup_color_1"] = "boja šminke 1", + ["makeup_color_2"] = "boja šminke 2", + ["lipstick_type"] = "tip karmina", + ["lipstick_thickness"] = "debljina karmina", + ["lipstick_color_1"] = "boja karmina 1", + ["lipstick_color_2"] = "boja karmina 2", + ["ear_accessories"] = "naušnice", + ["ear_accessories_color"] = "boja naušnica", + ["tshirt_1"] = "majica ", + ["tshirt_2"] = "boja majice", + ["torso_1"] = "gornjak", + ["torso_2"] = "boja gornjaka", + ["decals_1"] = "detalji", + ["decals_2"] = "boja detalja", + ["arms"] = "ruke", + ["arms_2"] = "boja rukavica", + ["pants_1"] = "pantalone", + ["pants_2"] = "boja pantalona", + ["shoes_1"] = "patike", + ["shoes_2"] = "boja patika", + ["mask_1"] = "maska", + ["mask_2"] = "boja maske", + ["bproof_1"] = "pancir", + ["bproof_2"] = "boja pancira", + ["chain_1"] = "lanac", + ["chain_2"] = "boja lanca", + ["helmet_1"] = "kaciga", + ["helmet_2"] = "boja kacige", + ["watches_1"] = "sat", + ["watches_2"] = "boja sata", + ["bracelets_1"] = "narukvice", + ["bracelets_2"] = "boja narukvice", + ["glasses_1"] = "naočare", + ["glasses_2"] = "boja naočara", + ["bag"] = "torba", + ["bag_color"] = "boja torbe", + ["blemishes"] = "mrlje", + ["blemishes_size"] = "debljina mrlja", + ["ageing"] = "starenje", + ["ageing_1"] = "debljina starenja", + ["blush"] = "rumenilo", + ["blush_1"] = "debljina rumenila", + ["blush_color"] = "boja rumenila", + ["complexion"] = "ten", + ["complexion_1"] = "debljina tena", + ["sun"] = "sunce", + ["sun_1"] = "debljina sunca", + ["freckles"] = "pege", + ["freckles_1"] = "debljina pega", + ["chest_hair"] = "dlake na grudima", + ["chest_hair_1"] = "debljina dlaka na grudima", + ["chest_color"] = "boja dlaka na grudima", + ["bodyb"] = "mrlje na telu", + ["bodyb_size"] = "debljina mrlja na telu", + ["bodyb_extra"] = "efekat mrlja na telu", + ["bodyb_extra_thickness"] = "mrlje telo efekat debljine", } diff --git a/[core]/skinchanger/locales/sv.lua b/[core]/skinchanger/locales/sv.lua new file mode 100644 index 000000000..2c063467c --- /dev/null +++ b/[core]/skinchanger/locales/sv.lua @@ -0,0 +1,100 @@ +Locales["sv"] = { + ["sex"] = "Kön", + ["mom"] = "Mammas ansikte", + ["dad"] = "Pappas ansikte", + ["resemblance"] = "Likhet", + ["skin_tone"] = "Hudton", + ["nose_1"] = "Näsbredd", + ["nose_2"] = "Nästoppshöjd", + ["nose_3"] = "Nästoppslängd", + ["nose_4"] = "Näsbenshöjd", + ["nose_5"] = "Nästoppssänkning", + ["nose_6"] = "Näsbensvridning", + ["cheeks_1"] = "Kindbens höjd", + ["cheeks_2"] = "Kindbens bredd", + ["cheeks_3"] = "Kinder bredd", + ["lip_fullness"] = "Läppfullhet", + ["jaw_bone_width"] = "Käkbensbredd", + ["jaw_bone_length"] = "Käkbenslängd", + ["chin_height"] = "Hakhöjd", + ["chin_length"] = "Haklängd", + ["chin_width"] = "Hakbredd", + ["chin_hole"] = "Hakhålsstorlek", + ["neck_thickness"] = "Halstjocklek", + ["wrinkles"] = "Rynkor", + ["wrinkle_thickness"] = "Rynktjocklek", + ["beard_type"] = "Skägg typ", + ["beard_size"] = "Skäggstorlek", + ["beard_color_1"] = "Skäggfärg 1", + ["beard_color_2"] = "Skäggfärg 2", + ["hair_1"] = "Hår 1", + ["hair_2"] = "Hår 2", + ["hair_color_1"] = "Hårfärg 1", + ["hair_color_2"] = "Hårfärg 2", + ["eye_color"] = "Ögonfärg", + ["eye_squint"] = "Kisning", + ["eyebrow_type"] = "Ögonbryn", + ["eyebrow_size"] = "Ögonbryns Storlek", + ["eyebrow_color_1"] = "Ögonbrynsfärg 1", + ["eyebrow_color_2"] = "Ögonbrynsfärg 2", + ["eyebrow_depth"] = "Ögonbryns djup", + ["eyebrow_height"] = "Ögonbrynshöjd", + ["makeup_type"] = "Smink", + ["makeup_thickness"] = "Sminktjocklek", + ["makeup_color_1"] = "Sminkfärg 1", + ["makeup_color_2"] = "Sminkfärg 2", + ["lipstick_type"] = "Läppstift", + ["lipstick_thickness"] = "Läppstift tjocklek", + ["lipstick_color_1"] = "Läppstift färg 1", + ["lipstick_color_2"] = "Läppstift färg 2", + ["ear_accessories"] = "Örontillbehör", + ["ear_accessories_color"] = "Örontillbehör color", + ["tshirt_1"] = "T-Shirt 1", + ["tshirt_2"] = "T-Shirt 2", + ["torso_1"] = "Jacka 1", + ["torso_2"] = "Jacka 2", + ["decals_1"] = "Dekaler 1", + ["decals_2"] = "Dekaler 2", + ["arms"] = "Armar", + ["arms_2"] = "Armar 2", + ["pants_1"] = "Byxor 1", + ["pants_2"] = "Byxor 2", + ["shoes_1"] = "Skor 1", + ["shoes_2"] = "Skor 2", + ["mask_1"] = "Mask 1", + ["mask_2"] = "Mask 2", + ["bproof_1"] = "Skottsäker väst 1", + ["bproof_2"] = "Skottsäker väst 2", + ["chain_1"] = "Kedja 1", + ["chain_2"] = "Kedja 2", + ["helmet_1"] = "Hjälm 1", + ["helmet_2"] = "Hjälm 2", + ["watches_1"] = "Klockor 1", + ["watches_2"] = "Klockor 2", + ["bracelets_1"] = "Armband 1", + ["bracelets_2"] = "Armband 2", + ["glasses_1"] = "Glasögon 1", + ["glasses_2"] = "Glasögon 2", + ["bag"] = "Väska", + ["bag_color"] = "Väskfärg", + ["blemishes"] = "Fläckar", + ["blemishes_size"] = "Fläckar tjocklek", + ["ageing"] = "Åldring", + ["ageing_1"] = "Åldring tjocklek", + ["blush"] = "Rouge", + ["blush_1"] = "Rodning tjocklek", + ["blush_color"] = "Rouge färg", + ["complexion"] = "Hy", + ["complexion_1"] = "Hy tjocklek", + ["sun"] = "Sol", + ["sun_1"] = "Soltjocklek", + ["freckles"] = "Fräknar", + ["freckles_1"] = "Fräknar tjocklek", + ["chest_hair"] = "Brösthår", + ["chest_hair_1"] = "Brösthår tjocklek", + ["chest_color"] = "Brösthår färg", + ["bodyb"] = "Kroppsfläckar", + ["bodyb_size"] = "Kroppsfläckar tjocklek", + ["bodyb_extra"] = "Fläckar kroppseffekt", + ["bodyb_extra_thickness"] = "Fläckar kroppseffekt tjocklek", +} diff --git a/readme.md b/readme.md index 1e6f00c67..0bca1eafe 100644 --- a/readme.md +++ b/readme.md @@ -24,7 +24,7 @@ Interested in helping us? [Take a look at our patreon](https://www.patreon.com/e ESX Core (ESX-legacy) - Copyright (C) 2015-2023 [ESX-Framework](https://github.com/esx-framework) + Copyright (C) 2015-2024 [ESX-Framework](https://github.com/esx-framework) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by