diff --git a/entities/entities/nut_item.lua b/entities/entities/nut_item.lua index 6e81c9c3..9728565c 100644 --- a/entities/entities/nut_item.lua +++ b/entities/entities/nut_item.lua @@ -57,7 +57,7 @@ if (SERVER) then self:SetModel(model) self:SetSkin(itemTable.skin or 0) self:SetMaterial(itemTable.material or "") - self:SetColor(itemTable.color or Color(255,255,255)) + self:SetColor(itemTable.color or color_white) self:PhysicsInit(SOLID_VPHYSICS) self:SetSolid(SOLID_VPHYSICS) self:setNetVar("id", itemTable.uniqueID) diff --git a/entities/weapons/nut_hands.lua b/entities/weapons/nut_hands.lua index d593aa08..7bee9891 100644 --- a/entities/weapons/nut_hands.lua +++ b/entities/weapons/nut_hands.lua @@ -538,7 +538,7 @@ function SWEP:pickup(entity, trace) self.carryHack:SetModel("models/weapons/w_bugbait.mdl") - self.carryHack:SetColor(Color(50, 250, 50, 240)) + --self.carryHack:SetColor(Color(50, 250, 50, 240)) self.carryHack:SetNoDraw(true) self.carryHack:DrawShadow(false) diff --git a/gamemode/config/sh_config.lua b/gamemode/config/sh_config.lua index 91a6b232..336ed323 100644 --- a/gamemode/config/sh_config.lua +++ b/gamemode/config/sh_config.lua @@ -16,23 +16,52 @@ nut.config.add("maxChars", 5, "The maximum number of characters a player can hav category = "characters" }) -nut.config.add("color", Color(75, 119, 190), "The main color theme for the framework.", nil, {category = "appearance"}) +nut.config.add("color", Color(75, 119, 190), "The main color theme for the framework.", function() + if CLIENT then hook.Run("nutUpdateColors") end +end, {category = "appearance"}) + +nut.config.add("colorAutoTheme", "dark", "Whether secondary and background colours generated from the main color should be dark or light themed.\nGenerated colors will be estimates and not guaranteed to look good.\nDisable to enable manual tuning", function() + if CLIENT then hook.Run("nutUpdateColors") end +end, { + form = "Combo", + category = "appearance", + options = {"dark", "light", "disabled"} + } +) + +nut.config.add("colorSecondary", Color(55, 87, 140), "The secondary color for the framework, used for accents.", function() + if CLIENT then hook.Run("nutUpdateColors") end +end, {category = "appearance"}) + +nut.config.add("colorBackground", Color(25, 40, 64), "The background color for the framework, used in derma backgrounds", function() + if CLIENT then hook.Run("nutUpdateColors") end +end, {category = "appearance"}) + +nut.config.add("colorText", color_white, "The main text color for the framework.", function() + if CLIENT then hook.Run("nutUpdateColors") end +end, {category = "appearance"}) nut.config.add("font", "Arial", "The font used to display titles.", function(oldValue, newValue) if (CLIENT) then - hook.Run("LoadNutFonts", newValue, nut.config.get("genericFont")) + hook.Run("LoadNutFonts", newValue, nut.config.get("genericFont"), nut.config.get("configFont")) end end, {category = "appearance"}) nut.config.add("genericFont", "Segoe UI", "The font used to display generic texts.", function(oldValue, newValue) if (CLIENT) then - hook.Run("LoadNutFonts", nut.config.get("font"), newValue) + hook.Run("LoadNutFonts", nut.config.get("font"), newValue, nut.config.get("configFont")) + end +end, {category = "appearance"}) + +nut.config.add("configFont", "Segoe UI", "The font used to display config and admin menu texts.", function(oldValue, newValue) + if (CLIENT) then + hook.Run("LoadNutFonts", nut.config.get("font"), nut.config.get("genericFont"), newValue) end end, {category = "appearance"}) nut.config.add("fontScale", 1.0, "The scale for the font.", function(oldValue, newValue) if (CLIENT) then - hook.Run("LoadNutFonts", nut.config.get("font"), nut.config.get("genericFont")) + hook.Run("LoadNutFonts", nut.config.get("font"), nut.config.get("genericFont"), nut.config.get("configFont")) end end, { form = "Float", diff --git a/gamemode/core/derma/cl_config.lua b/gamemode/core/derma/cl_config.lua new file mode 100644 index 00000000..722a0a36 --- /dev/null +++ b/gamemode/core/derma/cl_config.lua @@ -0,0 +1,588 @@ +local gradientD = nut.util.getMaterial("vgui/gradient-d") +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientL = nut.util.getMaterial("vgui/gradient-l") + +-- Originally, the plan was to allow both serverside configs and clientside quick settings to be editable here. However, I've decided to keep them separate for now. +-- I do not wish to break the quick menu, nor use ugly hacks. +-- if you wish to change it, then complete populateConfig.client, and at the bottom, uncomment self.selectPanel = self:Add("NutConfigSelectPanel") to show the server/client buttons +-- Tov + +local populateConfig = { + server = function(panel) + local buffer = {} + + for k, v in pairs(nut.config.stored) do + -- Get the category name. + local index = v.data and v.data.category or "misc" + + -- Insert the config into the category list. + buffer[index] = buffer[index] or {} + buffer[index][k] = v + end + + panel.data = buffer + end, + client = function(panel) + end, +} + +local serverIcon, clientIcon, check, uncheck +-- wait until icons are loaded, then load icons +hook.Add("EasyIconsLoaded", "nutConfigIcons", function() + serverIcon = getIcon("icon-equalizer") + clientIcon = getIcon("icon-child") + check = getIcon("icon-ok-squared") + uncheck = getIcon("icon-check-empty") +end) + +local PANEL = {} + +function PANEL:Init() + self:SetSize(100, 0) + self:DockMargin(0, 0, 0, 0) + self:Dock(LEFT) + self:InvalidateLayout(true) + + local parent = self:GetParent() + + print(parent, nut.gui.config, nut.gui.config == parent) + print(parent.populateConfigs) + + self:createConfigButton(serverIcon, "Server", function() + local config = parent.configListPanel + populateConfig.server(config) + config:InvalidateChildren(true) + config:populateConfigs() + end) + + self:createConfigButton(clientIcon, "Client", function() + local config = parent.configListPanel + populateConfig.client(config) + config:InvalidateChildren(true) + config:populateConfigs() + end) +end + +function PANEL:createConfigButton(icon, name, func) + local button = self:Add("DButton") + button:Dock(TOP) + button:DockMargin(0, 0, 0, 0) + button:SetSize(self:GetWide(), 30) + button:SetText("") + + local icon_label = button:Add("DLabel") + icon_label:Dock(LEFT) + icon_label:DockMargin(0, 0, 0, 0) + icon_label:SetSize(30, 30) + icon_label:SetText("") + icon_label.Paint = function(_, w, h) + nut.util.drawText(icon, w * 0.5, h * 0.5, color_white, 1, 1, "nutIconsSmallNew") + end + + local text_label = button:Add("DLabel") + text_label:SetText(name) + text_label:SetContentAlignment(5) + text_label:SetFont("nutMediumConfigFont") + text_label:Dock(FILL) + text_label:DockMargin(0, 0, 0, 0) + + button.DoClick = function() + self:GetParent():ClearConfigs() + func() + end + + return button +end + +function PANEL:Paint() end + +vgui.Register("NutConfigSelectPanel", PANEL, "DPanel") + +-- the center panel, listing all the configs +PANEL = {} + +function PANEL:Init() + self:Dock(FILL) + self:InvalidateParent(true) + + hook.Run("CreateConfigPanel", self) + + -- a dTextEntry that will filter the list of configs + self.filter = self:Add("DTextEntry") + self.filter:Dock(TOP) + self.filter:DockMargin(0, 0, 0, 0) + self.filter:SetSize(self:GetWide(), 30) + self.filter:SetPlaceholderText("Filter configs") + self.filter:SetUpdateOnType(true) + self.filter.OnChange = function() + self:filterConfigs(self.filter:GetValue()) + end + + -- a dScrollPanel that will contain the list of configs + self.scroll = self:Add("DScrollPanel") + self.scroll:Dock(FILL) + self.scroll.Paint = function() end + + populateConfig.server(self) + + self:InvalidateChildren(true) + + self:populateConfigs() +end + +local paintFunc = function(panel, w, h) + local r, g, b = nut.config.get("color"):Unpack() + surface.SetDrawColor(r, g, b, 255) + + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, h) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, 0, w/2, h) + +end + +local mathRound, mathFloor = math.Round, math.floor +local labelSpacing = 0.25 + +local configElement = { + Int = function(name, config, parent) + local panel = vgui.Create("DNumSlider") + panel:SetSize(parent:GetWide(), 30) + panel:InvalidateChildren(true) + + panel:SetMin(config.data.data and config.data.data.min or 0) + panel:SetMax(config.data.data and config.data.data.max or 1) + panel:SetDecimals(0) + panel:SetValue(config.value) + panel:SetText(name) + panel.TextArea:SetFont("nutConfigFont") + panel.Label:SetFont("nutConfigFont") + panel.Label:SetTextInset(10, 0) + panel.OnValueChanged = function(_, newValue) + timer.Create("nutConfigChange"..name, 1, 1, function() netstream.Start("cfgSet", name, mathFloor(newValue)) end) + end + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + panel.PerformLayout = function(this) + this.Label:SetWide( parent:GetWide() * labelSpacing ) + end + + -- prevent right click from triggering default behaviour when we want to reset + local oldMousePressed = panel.Scratch.OnMousePressed + panel.Scratch.OnMousePressed = function(this, code) + if code ~= MOUSE_RIGHT then + oldMousePressed(this, code) + end + end + + return panel + end, + Float = function(name, config, parent) + local panel = vgui.Create("DNumSlider") + panel:SetSize(parent:GetWide(), 30) + panel:InvalidateChildren(true) + + panel:SetMin(config.data.data and config.data.data.min or 0) + panel:SetMax(config.data.data and config.data.data.max or 1) + panel:SetDecimals(2) + panel:SetValue(config.value) + panel:SetText(name) + panel.TextArea:SetFont("nutConfigFont") + panel.Label:SetFont("nutConfigFont") + panel.Label:SetTextInset(10, 0) + panel.OnValueChanged = function(_, newValue) + timer.Create("nutConfigChange"..name, 1, 1, function() netstream.Start("cfgSet", name, mathRound(newValue, 2)) end) + end + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + panel.PerformLayout = function(this) + this.Label:SetWide( parent:GetWide() * labelSpacing ) + end + + -- prevent right click from triggering default behaviour when we want to reset + local oldMousePressed = panel.Scratch.OnMousePressed + panel.Scratch.OnMousePressed = function(this, code) + if code ~= MOUSE_RIGHT then + oldMousePressed(this, code) + end + end + + return panel + end, + Generic = function(name, config, parent) + local panel = vgui.Create("DPanel") + panel:SetSize(parent:GetWide(), 30) + panel:SetTall(30) + + -- draw the label over the entry, docked to the left + local label = panel:Add("DLabel") + label:Dock(LEFT) + label:DockMargin(0, 0, 0, 0) + label:SetWide(panel:GetWide() * labelSpacing) + label:SetText(name) + label:SetFont("nutConfigFont") + label:SetContentAlignment(4) + label:SetTextInset(10, 0) + + local entry = panel:Add("DTextEntry") + entry:Dock(FILL) + entry:DockMargin(0, 0, 0, 0) + entry:SetText(tostring(config.value)) + entry.OnValueChange = function(_, newValue) + netstream.Start("cfgSet", name, newValue) + end + entry.OnLoseFocus = function(this) + timer.Simple(0, function() this:SetText(tostring(config.value)) end) + end + + panel.SetValue = function(this, value) -- for compatibility + entry:SetText(tostring(value)) + end + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + return panel + end, + Boolean = function(name, config, parent) + local panel = vgui.Create("DPanel") + panel:SetSize(parent:GetWide(), 30) + panel:SetTall(30) + + local button = panel:Add("DButton") + button:Dock(FILL) + button:DockMargin(0, 0, 0, 0) + button:SetText("") + button.Paint = function(_, w, h) + nut.util.drawText(config.value and check or uncheck, w * 0.5, h * 0.5, color_white, 1, 1, "nutIconsSmallNew") + end + button.DoClick = function() + netstream.Start("cfgSet", name, not config.value) + end + + local label = button:Add("DLabel") + label:Dock(LEFT) + label:DockMargin(0, 0, 0, 0) + label:SetWide(parent:GetWide()) + label:SetText(name) + label:SetFont("nutConfigFont") + label:SetContentAlignment(4) + label:SetTextInset(10, 0) + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + return panel + + end, + Color = function(name, config, parent) + local panel = vgui.Create("DPanel") + panel:SetSize(parent:GetWide(), 30) + panel:SetTall(30) + + local button = panel:Add("DButton") + button:Dock(FILL) + button:DockMargin(0, 0, 0, 0) + button:SetText("") + button.Paint = function(_, w, h) + draw.RoundedBox(4, w/2 - 9, h/2 - 9, 18, 18, config.value) + nut.util.drawText(config.value.r .. " " .. config.value.g .. " " .. config.value.b, w/2 + 18, h/2, nut.config.get("colorText"), 0, 1, "nutConfigFont") + end + button.DoClick = function(this) + + local pickerFrame = this:Add("DFrame") + + pickerFrame:SetSize(ScrW()*0.15, ScrH()*0.2) -- Good size for example + pickerFrame:SetPos(gui.MouseX(), gui.MouseY()) + pickerFrame:MakePopup() + + if IsValid(button.picker) then button.picker:Remove() end + button.picker = pickerFrame + + local Mixer = pickerFrame:Add( "DColorMixer") + Mixer:Dock(FILL) -- Make Mixer fill place of Frame + Mixer:SetPalette(true) -- Show/hide the palette DEF:true + Mixer:SetAlphaBar(true) -- Show/hide the alpha bar DEF:true + Mixer:SetWangs(true) -- Show/hide the R G B A indicators DEF:true + Mixer:SetColor(config.value) -- Set the default color + pickerFrame.curColor = config.value + + local confirm = pickerFrame:Add("DButton") + confirm:Dock(BOTTOM) + confirm:DockMargin(0, 0, 0, 0) + confirm:SetText("Apply") + confirm:SetTextColor(pickerFrame.curColor) + confirm.DoClick = function() + netstream.Start("cfgSet", name, pickerFrame.curColor) + pickerFrame:Remove() + end + + Mixer.ValueChanged = function(_, value) + pickerFrame.curColor = value + confirm:SetTextColor(value) + end + end + + local label = button:Add("DLabel") + label:Dock(LEFT) + label:SetWide(parent:GetWide()) + label:SetText(name) + label:SetFont("nutConfigFont") + label:SetContentAlignment(4) + label:SetTextInset(10, 0) + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + return panel + end, + Combo = function(name, config, parent) + -- a DTextEntry with a label on the left + local panel = vgui.Create("DPanel") + panel:SetSize(parent:GetWide(), 30) + panel:SetTall(30) + + -- draw the label over the entry, docked to the left + local label = panel:Add("DLabel") + label:Dock(LEFT) + label:DockMargin(0, 0, 0, 0) + label:SetWide(panel:GetWide() * labelSpacing) + label:SetText(name) + label:SetFont("nutConfigFont") + label:SetContentAlignment(4) + label:SetTextInset(10, 0) + + local combo = panel:Add("DComboBox") + combo:Dock(FILL) + combo:DockMargin(0, 0, 0, 0) + combo:SetSortItems(false) + combo:SetValue(tostring(config.value)) + combo.OnSelect = function(_, index, value) + netstream.Start("cfgSet", name, value) + end + + for _, v in ipairs(config.data.options) do + combo:AddChoice(v) + end + + panel.Paint = function(this, w, h) + paintFunc(this, w, h) + end + + panel.SetValue = function(this, value) -- for compatibility + combo:SetValue(tostring(value)) + end + + return panel + + end, +} + +local function typeConvert(value) + local t = type(value) + if t == "boolean" then + return "Boolean" + elseif t == "number" then + if math.floor(value) == value then + return "Int" + else + return "Float" + end + elseif t == "table" and value.r and value.g and value.b then + return "Color" + end + return "Generic" +end + +function PANEL:populateConfigs() + local sorted = {} + self.entries = {} + self.categories = {} + + if not self.data then return end + + for k in pairs(self.data) do + table.insert(sorted, k) + end + + -- sort alphabetically, case insensitive + table.sort(sorted, function(a, b) + return a:lower() < b:lower() + end) + + self:InvalidateLayout(true) + + + for _, category in ipairs(sorted) do + local panel = self.scroll:Add("DPanel") + panel:Dock(TOP) + panel:DockMargin(0,1,0,4) + panel:DockPadding(0,0,0,10) + panel:SetSize(self:GetWide(), 30) + panel:SetPaintBackground(false) + panel.category = category + + local label = panel:Add("DLabel") + label:Dock(TOP) + label:DockMargin(1, 1, 1, 4) + label:SetSize(self:GetWide(), 30) + label:SetFont("nutMediumConfigFont") + label:SetContentAlignment(5) + label:SetText(category:gsub("^%l", string.upper)) + + for name, config in SortedPairs(self.data[category]) do + local form = config.data and config.data.form + local value = config.default + if not form then form = typeConvert(value) end + local entry = panel:Add(configElement[form or "Generic"](name, config, panel)) + entry:Dock(TOP) + entry:DockMargin(0, 1, 5, 2) + entry:SetTooltip(config.desc) + entry.shown = true + entry.name = name + entry.config = config + + table.insert(self.entries, entry) + end + panel:SizeToChildren(false, true) + + table.insert(self.categories, panel) + end +end + +local function requestReset(panel) + if panel.name and panel.config then + -- a query to reset config to default + Derma_Query("Reset " .. panel.name .. " to default? ("..tostring(panel.config.default)..")", "Reset Config", "Yes", function() + netstream.Start("cfgSet", panel.name, panel.config.default or nil) + if panel.SetValue then panel:SetValue(panel.config.default) end + end, "No") + end + if panel:GetParent() then + requestReset(panel:GetParent()) + end +end + +hook.Add("VGUIMousePressed", "nutConfigReset", function(panel, code) + -- if the panel or any children, recursively, have .name and .config, reset it to default + if code == MOUSE_RIGHT then requestReset(panel) end +end) + +local animTime = 0.3 + +function PANEL:filterConfigs(filter) + filter = filter:lower() + for _, entry in ipairs(self.entries) do + if not (entry.wide and entry.tall) then + entry.wide, entry.tall = entry:GetSize() + end + local text = entry.name:lower() + local category = entry.config.data.category:lower() + local description = entry.config.desc:lower() + + if filter == "" or string.find(text, filter) or string.find(category, filter) or string.find(description, filter) then + if not entry.shown then + entry:SetVisible(true) + entry.shown = true + entry:SizeTo(entry.wide, entry.tall, animTime, 0, -1, function() + + end) + end + else + if entry.shown then + entry:SizeTo(entry.wide, 0, animTime, 0, -1, function() + entry:SetVisible(false) + entry.shown = false + end) + end + end + end +end + +function PANEL:Think() + for _, category in ipairs(self.categories) do + local shown = false + + for _, entry in ipairs(self.entries) do + if entry.shown and entry.config.data.category:lower() == category.category:lower() then + shown = true + break + end + end + + if shown then + category:SetVisible(true) + category:SizeToChildren(false, true) + else + category:SetVisible(false) + category:SetTall(0) + end + end + self.scroll:InvalidateLayout(true) + self.scroll:SizeToChildren(false, true) +end + +function PANEL:Paint() end + +vgui.Register("NutConfigListPanel", PANEL, "DPanel") + +-- the master panel, containing the left and center panels +PANEL = {} + +function PANEL:Init() + if nut.gui.config then + nut.gui.config:Remove() + end + + nut.gui.config = self + + self:InvalidateLayout(true) +end + +function PANEL:ClearConfigs() + if self.scroll then self.scroll:Clear() end +end + +function PANEL:AddElements() + --self.selectPanel = self:Add("NutConfigSelectPanel") + self.configListPanel = self:Add("NutConfigListPanel") +end + +local sin = math.sin + +function PANEL:Paint(w, h) + local colorR, colorG, colorB = nut.config.get("color"):Unpack() + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + nut.util.drawBlur(self, 10) + + if not self.startTime then self.startTime = CurTime() end + + local curTime = (self.startTime - CurTime())/4 + local alpha = 200 * ((sin(curTime - 1.8719) + sin(curTime - 1.8719/2))/4 + 0.44) + + surface.SetDrawColor(colorR, colorG, colorB, alpha) + surface.DrawRect(0, 0, w, h) + + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 255) + surface.SetMaterial(gradientD) + surface.DrawTexturedRect(0, 0, w, h) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w, h) + +--[[ local WebMaterial = surface.GetURL("https://i.redd.it/9tgk6up2ltb11.jpg", w, h) + surface.SetDrawColor( 255, 255, 255, 255 ) + surface.SetMaterial( WebMaterial ) + surface.DrawTexturedRect( 0, 0, WebMaterial:Width(), WebMaterial:Height() ) ]] + --lmao +end + +vgui.Register("NutConfigPanel", PANEL, "DPanel") diff --git a/gamemode/core/derma/cl_dev_icon.lua b/gamemode/core/derma/cl_dev_icon.lua index 70ad2d82..46e072fa 100644 --- a/gamemode/core/derma/cl_dev_icon.lua +++ b/gamemode/core/derma/cl_dev_icon.lua @@ -9,7 +9,7 @@ ICON_INFO.h = ICON_INFO.h or 1 ICON_INFO.modelAng = ICON_INFO.modelAng or Angle() ICON_INFO.modelName = ICON_INFO.modelName or "models/Items/grenadeAmmo.mdl" ICON_INFO.outline = ICON_INFO.outline or false -ICON_INFO.outlineColor = ICON_INFO.outlineColor or Color(255, 255, 255) +ICON_INFO.outlineColor = ICON_INFO.outlineColor or color_white local vTxt = "xyz" local aTxt = "pyr" @@ -87,7 +87,7 @@ function PANEL:Init() local exIcon = ikon:getIcon("iconEditor") if (exIcon) then surface.SetMaterial(exIcon) - surface.SetDrawColor(color_white) + surface.SetDrawColor(255, 255, 255) surface.DrawTexturedRect(0, 0, x, y) end end @@ -500,7 +500,7 @@ end function PANEL:AddText(str) local label = self.list:Add("DLabel") label:SetFont("ChatFont") - label:SetTextColor(color_white) + label:SetTextColor(nut.config.get("colorText", color_white)) label:Dock(TOP) label:DockMargin(5, 5, 5, 0) label:SetContentAlignment(5) diff --git a/gamemode/core/derma/cl_inventory.lua b/gamemode/core/derma/cl_inventory.lua index 97c2b1b9..42611b82 100644 --- a/gamemode/core/derma/cl_inventory.lua +++ b/gamemode/core/derma/cl_inventory.lua @@ -153,7 +153,13 @@ local buildActionFunc = function(action, actionIndex, itemTable, invID, sub) end end +local function nutDermaMenu(parentmenu, parent) + if ( not parentmenu ) then CloseDermaMenus() end + local dmenu = vgui.Create( "nutDMenu", parent ) + + return dmenu +end function PANEL:openActionMenu() local itemTable = self.itemTable @@ -161,7 +167,7 @@ function PANEL:openActionMenu() assert(itemTable, "attempt to open action menu for invalid item") itemTable.player = LocalPlayer() - local menu = DermaMenu() + local menu = nutDermaMenu() local override = hook.Run("OnCreateItemInteractionMenu", self, menu, itemTable) if (override) then if (IsValid(menu)) then @@ -196,7 +202,11 @@ function PANEL:openActionMenu() end end - menu:Open() + menu:Open(self:LocalToScreen(self:GetWide(), 0)) + -- position menu to be on the right of the icon + --[[ local x = self:LocalToScreen(self:GetWide(), 0) + menu:SetX(x) ]] + itemTable.player = nil end @@ -295,3 +305,231 @@ hook.Add("CreateMenuButtons", "nutInventory", function(tabs) end) end end) + +PANEL = {} + +function PANEL:Open( x, y, skipanimation, ownerpanel ) + + RegisterDermaMenuForClose( self ) + + local maunal = x and y + + x = x or gui.MouseX() + y = y or gui.MouseY() + + local OwnerHeight = 0 + local OwnerWidth = 0 + + if ( ownerpanel ) then + OwnerWidth, OwnerHeight = ownerpanel:GetSize() + end + + self:InvalidateLayout( true ) + + local w = self:GetWide() + local h = self:GetTall() + + + self:SetSize(0,0 ) + + if ( y + h > ScrH() ) then y = ( ( maunal and ScrH() ) or ( y + OwnerHeight ) ) - h end + if ( x + w > ScrW() ) then x = ( ( maunal and ScrW() ) or x ) - w end + if ( y < 1 ) then y = 1 end + if ( x < 1 ) then x = 1 end + + local p = self:GetParent() + if ( IsValid( p ) and p:IsModal() ) then + -- Can't popup while we are parented to a modal panel + -- We will end up behind the modal panel in that case + + x, y = p:ScreenToLocal( x, y ) + + -- We have to reclamp the values + if ( y + h > p:GetTall() ) then y = p:GetTall() - h end + if ( x + w > p:GetWide() ) then x = p:GetWide() - w end + if ( y < 1 ) then y = 1 end + if ( x < 1 ) then x = 1 end + + self:SetPos( x, y ) + else + self:SetPos( x, y ) + + -- Popup! + self:MakePopup() + end + + -- Make sure it's visible! + self:SetVisible( true ) + + -- Keep the mouse active while the menu is visible. + self:SetKeyboardInputEnabled( false ) + +end + +function PANEL:PerformLayout( w, h ) + + w = self:GetMinimumWidth() + + -- Find the widest one + for k, pnl in ipairs( self:GetCanvas():GetChildren() ) do + + pnl:InvalidateLayout( true ) + w = math.max( w, pnl:GetWide() ) + + end + + if self.animComplete then self:SetWide( w ) end + + local y = 0 -- for padding + + for k, pnl in ipairs( self:GetCanvas():GetChildren() ) do + + pnl:SetWide( w ) + pnl:SetPos( 0, y ) + pnl:InvalidateLayout( true ) + + y = y + pnl:GetTall() + + end + + y = math.min( y, self:GetMaxHeight() ) + + if self.animComplete then self:SetTall( y ) end + + if not self.animComplete and not self.animStarted then + self.animStarted = true + self:SetSize(0,0) + self:SizeTo(w, 10, 0.1, 0, -1, function() + self:SizeTo(w, y, 0.2, 0, 0.9, function() + self.animComplete = true + end) + end) + end + + derma.SkinHook( "Layout", "Menu", self ) + DScrollPanel.PerformLayout( self, w, h ) + + if not self.animComplete then + self:GetVBar():SetWide(0) + end +end + +local gradientL = nut.util.getMaterial("vgui/gradient-l") +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientD = nut.util.getMaterial("vgui/gradient-d") +local testGradient = nut.util.getMaterial("vgui/gradient_down") + +--[[ function PANEL:Paint(w, h) + local r, g ,b = nut.config.get("color"):Unpack() + + surface.SetDrawColor(r, g, b, 255) + surface.DrawRect(0, 0, w, h) + + surface.SetDrawColor(0, 0, 0, 255) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w, h) + surface.SetMaterial(gradientD) + surface.DrawTexturedRect(0, 0, w, h) +end ]] + +function PANEL:AddOption( strText, funcFunction ) + + local pnl = vgui.Create( "nutDMenuOption", self ) + pnl:SetMenu( self ) + pnl:SetText( strText ) + if ( funcFunction ) then pnl.DoClick = funcFunction end + + self:AddPanel( pnl ) + + return pnl + +end + +function PANEL:AddSubMenu( strText, funcFunction ) + + local pnl = vgui.Create( "nutDMenuOption", self ) + local SubMenu = pnl:AddSubMenu( strText, funcFunction ) + + pnl:SetText( strText ) + if ( funcFunction ) then pnl.DoClick = funcFunction end + + self:AddPanel( pnl ) + + return SubMenu, pnl + +end + +vgui.Register("nutDMenu", PANEL, "DMenu") + +--remake DMenuOption as nutDMenuOption, so we can use nutDMenuOption in nutDMenu. Make the panel bigger +PANEL = {} + +function PANEL:Init() + + self:SetContentAlignment( 4 ) + self:SetTextInset( 32, 0 ) -- Room for icon on left + self:SetContentAlignment(5) + self:SetChecked( false ) + self:SetFont("nutSmallFont") +end + +function PANEL:PerformLayout( w, h ) + + self:SizeToContents() + self:SetWide( self:GetWide() + 30 ) + + local w = math.max( self:GetParent():GetWide(), self:GetWide() ) + + surface.SetFont( self:GetFont() ) + local _, y = surface.GetTextSize( "W" ) + self:SetSize( w, y + 5) + + if ( IsValid( self.SubMenuArrow ) ) then + + self.SubMenuArrow:SetSize( 15, 15 ) + self.SubMenuArrow:CenterVertical() + self.SubMenuArrow:AlignRight( 4 ) + + end + + DButton.PerformLayout( self, w, h ) + +end + +local glow = nut.util.getMaterial("particle/Particle_Glow_04_Additive") + +--[[ function PANEL:Paint(w, h) + local r, g, b = nut.config.get("color"):Unpack() + + local alpha = 0 + -- if hovered, alpha is 100, if selected alpha is 255 + if (self.Hovered) then + + alpha = 200 + + elseif (self:GetChecked()) then + alpha = 150 + end + + surface.SetDrawColor(r, g, b, alpha) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, h) + surface.DrawRect(0, 0, w, h) + surface.SetMaterial(glow) + surface.DrawTexturedRect(-w*0.25, 0, w*1.5, h*2.5) +end ]] + +function PANEL:AddSubMenu() + + local SubMenu = nutDermaMenu( true, self ) + SubMenu:SetVisible( false ) + SubMenu:SetParent( self ) + + self:SetSubMenu( SubMenu ) + + return SubMenu + +end + + +vgui.Register("nutDMenuOption", PANEL, "DMenuOption") \ No newline at end of file diff --git a/gamemode/core/derma/cl_quick.lua b/gamemode/core/derma/cl_quick.lua index 0a8f5cfc..30782cb7 100644 --- a/gamemode/core/derma/cl_quick.lua +++ b/gamemode/core/derma/cl_quick.lua @@ -1,4 +1,12 @@ local PANEL = {} +local color_offWhite = Color(250, 250, 250) +local color_blackTransparent = Color(0,0,0,175) +local color_blackTransparent2 = Color(0,0,0,150) + +local gradientD = nut.util.getMaterial("vgui/gradient-d") +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientL = nut.util.getMaterial("vgui/gradient-l") + function PANEL:Init() if (IsValid(nut.gui.quick)) then nut.gui.quick:Remove() @@ -19,8 +27,8 @@ function PANEL:Init() self.title:SetText(L"quickSettings") self.title:SetContentAlignment(4) self.title:SetTextInset(44, 0) - self.title:SetTextColor(Color(250, 250, 250)) - self.title:SetExpensiveShadow(1, Color(0, 0, 0, 175)) + self.title:SetTextColor(nut.config.get("colorText", color_white)) + self.title:SetExpensiveShadow(1, color_blackTransparent) self.title.Paint = function(this, w, h) surface.SetDrawColor(nut.config.get("color")) surface.DrawRect(0, 0, w, h) @@ -31,8 +39,8 @@ function PANEL:Init() self.expand:SetText("`") self.expand:SetFont("nutIconsMedium") self.expand:SetPaintBackground(false) - self.expand:SetTextColor(color_white) - self.expand:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.expand:SetTextColor(nut.config.get("colorText", color_white)) + self.expand:SetExpensiveShadow(1, color_blackTransparent2) self.expand:SetSize(36, 36) self.expand.DoClick = function(this) if (self.expanded) then @@ -71,16 +79,54 @@ function PANEL:Init() end local function paintButton(button, w, h) - local alpha = 0 + local r, g, b = nut.config.get("color"):Unpack() + local alpha = 100 if (button.Depressed or button.m_bSelected) then - alpha = 5 + alpha = 255 elseif (button.Hovered) then - alpha = 2 + alpha = 200 end - surface.SetDrawColor(255, 255, 255, alpha) - surface.DrawRect(0, 0, w, h) +--[[ surface.SetDrawColor(255, 255, 255, alpha) + surface.DrawRect(0, 0, w, h) ]] + surface.SetDrawColor(r, g, b, alpha) + + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, h) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, 0, w/2, h) +end + +local categoryDoClick = function(this) + this.expanded = not this.expanded + local items = nut.gui.quick.items + local index = table.KeyFromValue(items, this) + for i = index + 1, #items do + if items[i].categoryLabel then + break + end + if not items[i].h then + items[i].w, items[i].h = items[i]:GetSize() + end + + items[i]:SizeTo(items[i].w, this.expanded and (items[i].h or 36) or 0, 0.15) + end +end + +function PANEL:addCategory(text) + local label = self:addButton(text, categoryDoClick) + label.categoryLabel = true + label.expanded = true + label:SetText(text) + label:SetTall(36) + label:Dock(TOP) + label:DockMargin(0, 1, 0, 0) + label:SetFont("nutMediumFont") + label:SetTextColor(nut.config.get("colorText", color_white)) + label:SetExpensiveShadow(1, color_blackTransparent2) + label:SetContentAlignment(5) + label.Paint = function() end end function PANEL:addButton(text, callback) @@ -90,10 +136,10 @@ function PANEL:addButton(text, callback) button:Dock(TOP) button:DockMargin(0, 1, 0, 0) button:SetFont("nutMediumLightFont") - button:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + button:SetExpensiveShadow(1, color_blackTransparent2) button:SetContentAlignment(4) button:SetTextInset(8, 0) - button:SetTextColor(color_white) + button:SetTextColor(nut.config.get("colorText", color_white)) button.Paint = paintButton if (callback) then @@ -133,11 +179,11 @@ function PANEL:addSlider(text, callback, value, min, max, decimal) slider:SetValue(value or 0) slider.Label:SetFont("nutMediumLightFont") - slider.Label:SetTextColor(color_white) + slider.Label:SetTextColor(nut.config.get("colorText", color_white)) local textEntry = slider:GetTextArea() textEntry:SetFont("nutMediumLightFont") - textEntry:SetTextColor(color_white) + textEntry:SetTextColor(nut.config.get("colorText", color_white)) if (callback) then slider.OnValueChanged = function(this, value) @@ -148,6 +194,8 @@ function PANEL:addSlider(text, callback, value, min, max, decimal) self.items[#self.items + 1] = slider + slider.Paint = paintButton + return slider end @@ -185,12 +233,14 @@ function PANEL:setIcon(char) end function PANEL:Paint(w, h) + surface.SetDrawColor(0, 0, 0, 200) + surface.DrawRect(0, 0, w, h) nut.util.drawBlur(self) surface.SetDrawColor(nut.config.get("color")) surface.DrawRect(0, 0, w, 36) - surface.SetDrawColor(255, 255, 255, 5) - surface.DrawRect(0, 0, w, h) + --[[ surface.SetDrawColor(255, 255, 255, 5) + surface.DrawRect(0, 0, w, h) ]] end -vgui.Register("nutQuick", PANEL, "EditablePanel") +vgui.Register("nutQuick", PANEL, "EditablePanel") \ No newline at end of file diff --git a/gamemode/core/derma/cl_spawnicon.lua b/gamemode/core/derma/cl_spawnicon.lua index b76889b3..d8487c10 100644 --- a/gamemode/core/derma/cl_spawnicon.lua +++ b/gamemode/core/derma/cl_spawnicon.lua @@ -28,14 +28,17 @@ local setSequence = function(entity) entity:ResetSequence(4) end +local color_grey = Color(155, 155 ,155) +local color_darkgrey = Color(20, 20, 20) + function PANEL:Init() self:setHidden(false) for i = 0, 5 do if (i == 1 or i == 5) then - self:SetDirectionalLight(i, Color(155, 155, 155)) + self:SetDirectionalLight(i, color_grey) else - self:SetDirectionalLight(i, Color(255, 255, 255)) + self:SetDirectionalLight(i, color_white) end end @@ -66,21 +69,21 @@ end function PANEL:setHidden(hidden) if (hidden) then self:SetAmbientLight(color_black) - self:SetColor(Color(0, 0, 0)) + self:SetColor(color_black) for i = 0, 5 do self:SetDirectionalLight(i, color_black) end else - self:SetAmbientLight(Color(20, 20, 20)) + self:SetAmbientLight(color_darkgrey) self:SetAlpha(255) - self:SetColor(Color(255, 255, 255)) + self:SetColor(color_white) for i = 0, 5 do if (i == 1 or i == 5) then - self:SetDirectionalLight(i, Color(155, 155, 155)) + self:SetDirectionalLight(i, color_grey) else - self:SetDirectionalLight(i, Color(255, 255, 255)) + self:SetDirectionalLight(i, color_white) end end end diff --git a/gamemode/core/derma/cl_tooltip.lua b/gamemode/core/derma/cl_tooltip.lua index ba4d460c..90506e61 100644 --- a/gamemode/core/derma/cl_tooltip.lua +++ b/gamemode/core/derma/cl_tooltip.lua @@ -15,11 +15,21 @@ hook.Add("TooltipInitialize", "nutItemTooltip", function(self, panel) end end) +local gradientL = nut.util.getMaterial("vgui/gradient-l") +local gradientR = nut.util.getMaterial("vgui/gradient-r") + hook.Add("TooltipPaint", "nutItemTooltip", function(self, w, h) if (self.isItemTooltip) then nut.util.drawBlur(self, 2, 2) - surface.SetDrawColor(0, 0, 0, 230) - surface.DrawRect(0, 0, w, h) + --[[ surface.SetDrawColor(0, 0, 0, 230) + surface.DrawRect(0, 0, w, h) ]] + + local r, g, b = nut.config.get("color"):Unpack() + surface.SetDrawColor(r, g, b, 255) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, h) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, 0, w/2, h) if (self.markupObject) then self.markupObject:draw(PADDING_HALF, PADDING_HALF + 2) diff --git a/gamemode/core/hooks/cl_hooks.lua b/gamemode/core/hooks/cl_hooks.lua index df74f9c3..56f4b981 100644 --- a/gamemode/core/hooks/cl_hooks.lua +++ b/gamemode/core/hooks/cl_hooks.lua @@ -1,5 +1,6 @@ -function GM:LoadNutFonts(font, genericFont) - local oldFont, oldGenericFont = font, genericFont +function GM:LoadNutFonts(font, genericFont, configFont) + local oldFont, oldGenericFont, oldConfigFont = font, genericFont, configFont + local scale = math.Round(nut.config.get("fontScale", 1), 2) surface.CreateFont("nut3D2DFont", { font = font, @@ -218,9 +219,34 @@ function GM:LoadNutFonts(font, genericFont) antialias = true }) - hook.Run("LoadFonts", oldFont, oldGenericFont) + --config fonts + surface.CreateFont("nutConfigFont", { + font = configFont, + size = 22, + weight = 500, + extended = true, + antialias = true + }) + + surface.CreateFont("nutMediumConfigFont", { + font = configFont, + size = 25 * scale, + extended = true, + weight = 1000 + }) + + surface.CreateFont("nutSmallConfigFont", { + font = configFont, + size = math.max(ScreenScale(6), 17) * scale, + extended = true, + weight = 500 + }) + + hook.Run("LoadFonts", oldFont, oldGenericFont, oldConfigFont) end +local color_offRed = Color(255, 50, 50) + function GM:CreateLoadingScreen() if (IsValid(nut.gui.loading)) then nut.gui.loading:Remove() @@ -239,7 +265,7 @@ function GM:CreateLoadingScreen() label:SetText(L"loading") label:SetFont("nutNoticeFont") label:SetContentAlignment(5) - label:SetTextColor(color_white) + label:SetTextColor(nut.config.get("colorText", color_white)) label:InvalidateLayout(true) label:SizeToContents() @@ -257,7 +283,7 @@ function GM:CreateLoadingScreen() label:SetText(fault) label:SetContentAlignment(5) label:SizeToContentsY() - label:SetTextColor(Color(255, 50, 50)) + label:SetTextColor(color_offRed) end end end) @@ -273,7 +299,8 @@ function GM:InitializedConfig() hook.Run( "LoadNutFonts", nut.config.get("font"), - nut.config.get("genericFont") + nut.config.get("genericFont"), + nut.config.get("configFont") ) if (not nut.config.loaded) then @@ -282,6 +309,8 @@ function GM:InitializedConfig() end nut.config.loaded = true end + + hook.Run("nutUpdateColors") end function GM:CharacterListLoaded() @@ -476,6 +505,8 @@ end function GM:SetupQuickMenu(menu) -- Performance + menu:addCategory("Performance") + menu:addCheck(L"cheapBlur", function(panel, state) if (state) then RunConsoleCommand("nut_cheapblur", "1") @@ -485,6 +516,7 @@ function GM:SetupQuickMenu(menu) end, NUT_CVAR_CHEAP:GetBool()) -- Language settings + menu:addCategory("Language Settings") menu:addSpacer() local current @@ -532,7 +564,8 @@ function GM:ScreenResolutionChanged(oldW, oldH) hook.Run( "LoadNutFonts", nut.config.get("font"), - nut.config.get("genericFont") + nut.config.get("genericFont"), + nut.config.get("configFont") ) end diff --git a/gamemode/core/hooks/sv_hooks.lua b/gamemode/core/hooks/sv_hooks.lua index 402a2bee..f899ecfb 100644 --- a/gamemode/core/hooks/sv_hooks.lua +++ b/gamemode/core/hooks/sv_hooks.lua @@ -250,7 +250,6 @@ end function GM:PlayerSay(client, message) local chatType, message, anonymous = nut.chat.parse(client, message, true) - if (chatType == "ic") and (nut.command.parse(client, message)) then return "" end diff --git a/gamemode/core/libs/cl_easyicons.lua b/gamemode/core/libs/cl_easyicons.lua new file mode 100644 index 00000000..e85bb118 --- /dev/null +++ b/gamemode/core/libs/cl_easyicons.lua @@ -0,0 +1,32 @@ +NS_ICON_FONT = nil + +local function ScrapPage() + local d = deferred.new() + + http.Fetch('https://dobytchick.github.io/', function(resp) + local headpos = select(2, resp:find('
')) + local body = resp:sub(headpos) + local scrapped = {} + + for str in body:gmatch('(icon-%S+);') do + local whitespaced = str:gsub('">', ' ') + local nulled = whitespaced:gsub('&#', '0') + + local splitted = nulled:Split(' ') + scrapped[splitted[1]] = splitted[2] + end + + d:resolve(scrapped) + end) + + return d +end + +ScrapPage():next(function(scrapped) + NS_ICON_FONT = scrapped + hook.Run("EasyIconsLoaded") +end) + +function getIcon(sIcon, bIsCode) + return not bIsCode and utf8.char(tonumber(NS_ICON_FONT[sIcon])) or utf8.char(tonumber(sIcon)) +end \ No newline at end of file diff --git a/gamemode/core/libs/cl_playerinteract.lua b/gamemode/core/libs/cl_playerinteract.lua index 53913228..2360136f 100644 --- a/gamemode/core/libs/cl_playerinteract.lua +++ b/gamemode/core/libs/cl_playerinteract.lua @@ -99,6 +99,8 @@ end local scrW = ScrW() local scrH = ScrH() +local color_blackTransparent = Color(0,0,0, 150) +local color_whiteTransparent = Color(255, 255, 255 ,120) hook.Add("HUDPaint", "nut.playerInteract", function() if (!isInteracting and interfaceScale < 0) then return end @@ -125,10 +127,10 @@ hook.Add("HUDPaint", "nut.playerInteract", function() nut.util.drawBlurAt(loadingCentreX - (loadingMaxW / 2), loadingCentreY, loadingMaxW, loadingH) - surface.SetDrawColor(Color(0, 0, 0, 150)) + surface.SetDrawColor(color_blackTransparent) surface.DrawRect(loadingCentreX - (loadingMaxW / 2), loadingCentreY, loadingMaxW, loadingH, 1) - surface.SetDrawColor(255, 255, 255, 120) + surface.SetDrawColor(color_whiteTransparent) surface.DrawOutlinedRect(loadingCentreX - (loadingMaxW / 2) + 1, loadingCentreY + 1, loadingMaxW - 2, loadingH - 2) surface.SetDrawColor(color_white) diff --git a/gamemode/core/libs/sh_chatbox.lua b/gamemode/core/libs/sh_chatbox.lua index f777a217..73872d06 100644 --- a/gamemode/core/libs/sh_chatbox.lua +++ b/gamemode/core/libs/sh_chatbox.lua @@ -12,6 +12,8 @@ function nut.chat.timestamp(ooc) return nut.config.get("chatShowTime") and (ooc and " " or "") .. "(" .. nut.date.getFormatted("%H:%M") .. ")" .. (ooc and "" or " ") or "" end +local color_yellow = Color(242, 230, 160) + -- Registers a new chat type with the information provided. function nut.chat.register(chatType, data) if (not data.onCanHear) then @@ -63,7 +65,7 @@ function nut.chat.register(chatType, data) end -- Chat text color. - data.color = data.color or Color(242, 230, 160) + data.color = data.color or color_yellow if (not data.onChatAdd) then data.format = data.format or "%s: \"%s\"" @@ -180,7 +182,6 @@ if (SERVER) then return end end - netstream.Start(receivers, "cMsg", speaker, chatType, hook.Run("PlayerMessageSend", speaker, chatType, text, anonymous, receivers) or text, anonymous) end end @@ -281,6 +282,8 @@ do prefix = {"/y", "/yell"} }) + local color_offRed = Color(255, 50, 50) + -- Out of character. nut.chat.register("ooc", { onCanSay = function(speaker, text) @@ -335,7 +338,7 @@ do end icon = Material(hook.Run("GetPlayerIcon", speaker) or icon) - chat.AddText(icon, nut.chat.timestamp(true), Color(255, 50, 50), " [OOC] ", speaker, color_white, ": " .. text) + chat.AddText(icon, nut.chat.timestamp(true), color_offRed, " [OOC] ", speaker, color_white, ": " .. text) end, prefix = {"//", "/ooc"}, noSpaceAfter = true, @@ -366,7 +369,7 @@ do if (nut.config.get("oocLimit", 0) ~= 0) and (#text > nut.config.get("oocLimit", 0)) then text = string.sub(text, 1, nut.config.get("oocLimit", 0)) .. "..." end - chat.AddText(nut.chat.timestamp(false), Color(255, 50, 50), "[LOOC] ", nut.config.get("chatColor"), speaker:Name() .. ": " .. text) + chat.AddText(nut.chat.timestamp(false), color_offRed, "[LOOC] ", nut.config.get("chatColor"), speaker:Name() .. ": " .. text) end, radius = function() return nut.config.get("chatRange", 280) @@ -396,13 +399,15 @@ nut.chat.register("pm", { deadCanChat = true }) +local color_orange = Color(255, 150, 0) + -- Global events. nut.chat.register("event", { onCanSay = function(speaker, text) return speaker:IsAdmin() end, onChatAdd = function(speaker, text) - chat.AddText(nut.chat.timestamp(false), Color(255, 150, 0), text) + chat.AddText(nut.chat.timestamp(false), color_orange, text) end, prefix = {"/event"} }) diff --git a/gamemode/core/libs/sv_database.lua b/gamemode/core/libs/sv_database.lua index 1e374b42..3b912059 100644 --- a/gamemode/core/libs/sv_database.lua +++ b/gamemode/core/libs/sv_database.lua @@ -1,14 +1,16 @@ nut.db = nut.db or {} nut.db.queryQueue = nut.db.queue or {} +local color_red = Color(255, 0, 0) + local function ThrowQueryFault(query, fault) - MsgC(Color(255, 0, 0), "* "..query.."\n") - MsgC(Color(255, 0, 0), fault.."\n") + MsgC(color_red, "* "..query.."\n") + MsgC(color_red, fault.."\n") end local function ThrowConnectionFault(fault) - MsgC(Color(255, 0, 0), "NutScript has failed to connect to the database.\n") - MsgC(Color(255, 0, 0), fault.."\n") + MsgC(color_red, "NutScript has failed to connect to the database.\n") + MsgC(color_red, fault.."\n") setNetVar("dbError", fault) end @@ -202,10 +204,9 @@ modules.mysqloo = { if (not pcall(require, "mysqloo")) then return setNetVar("dbError", system.IsWindows() and "Server is missing VC++ redistributables! " or "Server is missing binaries for mysqloo! ") end - if (mysqloo.VERSION ~= "9" or not mysqloo.MINOR_VERSION or tonumber(mysqloo.MINOR_VERSION) < 1) then - MsgC(Color(255, 0, 0), "You are using an outdated mysqloo version\n") - MsgC(Color(255, 0, 0), "Download the latest mysqloo9 from here\n") + MsgC(color_red, "You are using an outdated mysqloo version\n") + MsgC(color_red, "Download the latest mysqloo9 from here\n") MsgC(Color(86, 156, 214), "https://github.com/syl0r/MySQLOO/releases") return end @@ -303,7 +304,7 @@ modules.mysqloo = { prepObj:start() else - MsgC(Color(255, 0, 0), "INVALID PREPARED STATEMENT : " .. key .. "\n") + MsgC(color_red, "INVALID PREPARED STATEMENT : " .. key .. "\n") end end } @@ -335,7 +336,15 @@ function nut.db.connect(callback, reconnect) nut.db.escape = dbModule.escape nut.db.query = dbModule.query else - ErrorNoHalt("[NutScript] '"..(nut.db.module or "nil").."' is not a valid data storage method! \n") + local errMessage = "[NutScript] '"..(nut.db.module or "nil").."' is not a valid data storage method!\nValid modules are:" + + --loop through all the modules and add them to the error message, separated by a comma + for k in pairs(modules) do + errMessage = errMessage .. " '" .. k .. "'," + end + + --print the error message + ErrorNoHalt(string.sub(errMessage, 1, -2) .. "\n") end end @@ -460,7 +469,7 @@ function nut.db.wipeTables(callback) local function realCallback() nut.db.query("SET FOREIGN_KEY_CHECKS = 1;", function() MsgC( - Color(255, 0, 0), + color_red, "[Nutscript] ALL NUTSCRIPT DATA HAS BEEN WIPED\n" ) if (isfunction(callback)) then @@ -501,11 +510,11 @@ concommand.Add("nut_recreatedb", function(client) if (resetCalled < RealTime()) then resetCalled = RealTime() + 3 - MsgC(Color(255, 0, 0), "[Nutscript] TO CONFIRM DATABASE RESET, RUN 'nut_recreatedb' AGAIN in 3 SECONDS.\n") + MsgC(color_red, "[Nutscript] TO CONFIRM DATABASE RESET, RUN 'nut_recreatedb' AGAIN in 3 SECONDS.\n") else resetCalled = 0 - MsgC(Color(255, 0, 0), "[Nutscript] DATABASE WIPE IN PROGRESS.\n") + MsgC(color_red, "[Nutscript] DATABASE WIPE IN PROGRESS.\n") hook.Run("OnWipeTables") nut.db.wipeTables(nut.db.loadTables) @@ -704,7 +713,7 @@ function GM:SetupDatabase() end if (not nut.db.config) then - MsgC(Color(255, 0, 0), "Database not configured.\n") + MsgC(color_red, "Database not configured.\n") for k, v in pairs(defaultConfig) do nut.db[k] = v diff --git a/gamemode/core/sh_config.lua b/gamemode/core/sh_config.lua index 93271763..25f2df63 100644 --- a/gamemode/core/sh_config.lua +++ b/gamemode/core/sh_config.lua @@ -4,8 +4,14 @@ nut.config.stored = nut.config.stored or {} function nut.config.add(key, value, desc, callback, data, noNetworking, schemaOnly) assert(isstring(key), "expected config key to be string, got " .. type(key)) local oldConfig = nut.config.stored[key] + local savedValue + if (oldConfig) then + savedValue = oldConfig.value + else + savedValue = value + end - nut.config.stored[key] = {data = data, value = oldConfig and oldConfig.value or value, default = value, desc = desc, noNetworking = noNetworking, global = not schemaOnly, callback = callback} + nut.config.stored[key] = {data = data, value = savedValue, default = value, desc = desc, noNetworking = noNetworking, global = not schemaOnly, callback = callback} end function nut.config.setDefault(key, value) @@ -181,111 +187,145 @@ else end if (CLIENT) then + local legacyConfigMenu = CreateClientConVar("nut_legacyconfig", "0", true, true) + hook.Add("CreateMenuButtons", "nutConfig", function(tabs) if (not LocalPlayer():IsSuperAdmin() or hook.Run("CanPlayerUseConfig", LocalPlayer()) == false) then return end tabs["config"] = function(panel) - local scroll = panel:Add("DScrollPanel") - scroll:Dock(FILL) - hook.Run("CreateConfigPanel", panel) + if legacyConfigMenu:GetBool() ~= true then + local canvas = panel:Add("DPanel") + canvas:Dock(FILL) + canvas:SetPaintBackground(false) - local properties = scroll:Add("DProperties") - properties:SetSize(panel:GetSize()) + canvas:InvalidateLayout(true) - nut.gui.properties = properties + local config = canvas:Add("NutConfigPanel") + config:SetSize(panel:GetSize()) + config:AddElements() + else + local scroll = panel:Add("DScrollPanel") + scroll:Dock(FILL) - -- We're about to store the categories in this buffer. - local buffer = {} + hook.Run("CreateConfigPanel", panel) - for k, v in pairs(nut.config.stored) do - -- Get the category name. - local index = v.data and v.data.category or "misc" + local properties = scroll:Add("DProperties") + properties:SetSize(panel:GetSize()) - -- Insert the config into the category list. - buffer[index] = buffer[index] or {} - buffer[index][k] = v - end + nut.gui.properties = properties + + -- We're about to store the categories in this buffer. + local buffer = {} + + for k, v in pairs(nut.config.stored) do + -- Get the category name. + local index = v.data and v.data.category or "misc" + + -- Insert the config into the category list. + buffer[index] = buffer[index] or {} + buffer[index][k] = v + end - -- Loop through the categories in alphabetical order. - for category, configs in SortedPairs(buffer) do - category = L(category) - - -- Ditto, except we're looping through configs. - for k, v in SortedPairs(configs) do - -- Determine which type of panel to create. - local form = v.data and v.data.form - local value = nut.config.stored[k].default - - -- Let's see if the parameter has a form to perform some additional operations. - if (form) then - if (form == "Int") then - -- math.Round can create an error without failing silently as expected if the parameter is invalid. - -- So an alternate value is entered directly into the function and not outside of it. - value = math.Round(nut.config.get(k) or value) - elseif (form == "Float") then - value = tonumber(nut.config.get(k)) or value - elseif (form == "Boolean") then - value = tobool(nut.config.get(k)) or value + -- Loop through the categories in alphabetical order. + for category, configs in SortedPairs(buffer) do + category = L(category) + + -- Ditto, except we're looping through configs. + for k, v in SortedPairs(configs) do + -- Determine which type of panel to create. + local form = v.data and v.data.form + local value = nut.config.stored[k].default + + -- Let's see if the parameter has a form to perform some additional operations. + if (form) then + if (form == "Int") then + -- math.Round can create an error without failing silently as expected if the parameter is invalid. + -- So an alternate value is entered directly into the function and not outside of it. + value = math.Round(nut.config.get(k) or value) + elseif (form == "Float") then + value = tonumber(nut.config.get(k)) or value + elseif (form == "Boolean") then + value = tobool(nut.config.get(k)) or value + else + value = nut.config.get(k) or value + end else - value = nut.config.get(k) or value + local formType = type(value) + + if (formType == "number") then + form = "Int" + value = tonumber(nut.config.get(k)) or value + elseif (formType == "boolean") then + form = "Boolean" + value = tobool(nut.config.get(k)) + else + form = "Generic" + value = nut.config.get(k) or value + end end - else - local formType = type(value) - - if (formType == "number") then - form = "Int" - value = tonumber(nut.config.get(k)) or value - elseif (formType == "boolean") then - form = "Boolean" - value = tobool(nut.config.get(k)) - else - form = "Generic" - value = nut.config.get(k) or value + + if form == "Combo" then + v.data.data = v.data.data or {} + v.data.data.text = value + v.data.data.values = {} + for niceName, optionData in pairs(v.data.options) do + niceName = tonumber(niceName) and optionData or niceName + v.data.data.values[tonumber(niceName) and optionData or niceName] = optionData + + if optionData == value then + v.data.data.text = niceName + end + end end - end - -- VectorColor currently only exists for DProperties. - if (form == "Generic" and istable(value) and value.r and value.g and value.b) then - -- Convert the color to a vector. - value = Vector(value.r / 255, value.g / 255, value.b / 255) - form = "VectorColor" - end + -- VectorColor currently only exists for DProperties. + if (form == "Generic" and istable(value) and value.r and value.g and value.b) then + -- Convert the color to a vector. + value = Vector(value.r / 255, value.g / 255, value.b / 255) + form = "VectorColor" + end - local delay = 1 + local delay = 1 - if (form == "Boolean") then - delay = 0 - end + if (form == "Boolean") or (form == "Combo") then + delay = 0 + end - -- Add a new row for the config to the properties. - local row = properties:CreateRow(category, tostring(k)) - row:Setup(form, v.data and v.data.data or {}) - row:SetValue(value) - row:SetTooltip(v.desc) - row.DataChanged = function(this, newValue) - timer.Create("nutCfgSend" .. k, delay, 1, function() - if (not IsValid(row)) then - return - end + -- Add a new row for the config to the properties. + local row = properties:CreateRow(category, tostring(k)) + row:Setup(form, v.data and v.data.data or {}) + row:SetValue(value) + row:SetTooltip(v.desc) + row.DataChanged = function(this, newValue) + debug.Trace() + timer.Create("nutCfgSend" .. k, delay, 1, function() + if (not IsValid(row)) then + return + end - if (form == "VectorColor") then - local vector = Vector(newValue) + if (form == "VectorColor") then + local vector = Vector(newValue) - newValue = Color(math.floor(vector.x * 255), math.floor(vector.y * 255), math.floor(vector.z * 255)) - elseif (form == "Int" or form == "Float") then - newValue = tonumber(newValue) + newValue = Color(math.floor(vector.x * 255), math.floor(vector.y * 255), math.floor(vector.z * 255)) + elseif (form == "Int" or form == "Float") then + newValue = tonumber(newValue) - if (form == "Int") then - newValue = math.Round(newValue) + if (form == "Int") then + newValue = math.Round(newValue) + end + elseif (form == "Boolean") then + newValue = tobool(newValue) end - elseif (form == "Boolean") then - newValue = tobool(newValue) - end - netstream.Start("cfgSet", k, newValue) - end) + netstream.Start("cfgSet", k, newValue) + end) + end + + if form == "Combo" then + row.SetValue = function() end -- without this config gets set twice. idk why - Tov + end end end end diff --git a/gamemode/core/sh_util.lua b/gamemode/core/sh_util.lua index 24598565..a8f95a60 100644 --- a/gamemode/core/sh_util.lua +++ b/gamemode/core/sh_util.lua @@ -48,18 +48,18 @@ function nut.util.includeDir(directory, fromLua, recursive) return end - for k, v in pairs(files) do + for _, v in pairs(files) do nut.util.include(folder .. "/" .. v) end - for k, v in pairs(folders) do + for _, v in pairs(folders) do AddRecursive(folder .. "/" .. v) end end AddRecursive((fromLua and "" or baseDir)..directory) else -- Find all of the files within the directory. - for k, v in ipairs( + for _, v in ipairs( file.Find((fromLua and "" or baseDir)..directory.."/*.lua", "LUA") ) do -- Include the file from the prefix. @@ -80,7 +80,7 @@ end function nut.util.getAdmins(isSuper) local admins = {} - for k, v in ipairs(player.GetAll()) do + for _, v in ipairs(player.GetAll()) do if (isSuper) then if (v:IsSuperAdmin()) then admins[#admins + 1] = v @@ -113,7 +113,7 @@ function nut.util.findPlayer(identifier, allowPatterns) identifier = string.PatternSafe(identifier) end - for k, v in ipairs(player.GetAll()) do + for _, v in ipairs(player.GetAll()) do if (nut.util.stringMatches(v:Name(), identifier)) then return v end @@ -138,7 +138,7 @@ end function nut.util.getAllChar() local charTable = {} - for k, v in ipairs(player.GetAll()) do + for _, v in ipairs(player.GetAll()) do if (v:getChar()) then table.insert(charTable, v:getChar():getID()) end @@ -233,7 +233,7 @@ do end if (self.nutRestrictWeps) then - for k, v in ipairs(self.nutRestrictWeps) do + for _, v in ipairs(self.nutRestrictWeps) do self:Give(v) end diff --git a/gamemode/init.lua b/gamemode/init.lua index 6ad8bc1e..33ec461c 100644 --- a/gamemode/init.lua +++ b/gamemode/init.lua @@ -16,6 +16,9 @@ include("core/sh_util.lua") include("core/sv_data.lua") include("shared.lua") +local color_green = Color(0, 255, 0) +local color_red = Color(255, 0, 0) + -- Connect to the database using SQLite, mysqloo, or tmysql4. timer.Simple(0, function() hook.Run("SetupDatabase") @@ -25,8 +28,8 @@ timer.Simple(0, function() nut.db.loadTables() nut.log.loadTables() - MsgC(Color(0, 255, 0), "NutScript has connected to the database.\n") - MsgC(Color(0, 255, 0), "Database Type: "..nut.db.module..".\n") + MsgC(color_green, "NutScript has connected to the database.\n") + MsgC(color_green, "Database Type: "..nut.db.module..".\n") hook.Run("DatabaseConnected") end) @@ -34,8 +37,8 @@ end) concommand.Add("nut_setowner", function(client, command, arguments) if (!IsValid(client)) then - MsgC(Color(255, 0, 0), "** 'nut_setowner' has been deprecated in NutScript 1.1\n") - MsgC(Color(255, 0, 0), "** Instead, please install an admin mod and use that instead.\n") + MsgC(color_red, "** 'nut_setowner' has been deprecated in NutScript 1.1\n") + MsgC(color_red, "** Instead, please install an admin mod and use that instead.\n") end end) diff --git a/gamemode/languages/sh_dutch.lua b/gamemode/languages/sh_dutch.lua index 78a3485c..05682f66 100644 --- a/gamemode/languages/sh_dutch.lua +++ b/gamemode/languages/sh_dutch.lua @@ -2,159 +2,266 @@ NAME = "Nederlands" LANGUAGE = { - loading = "Laden", - dbError = "Database verbinding gefaald", - unknown = "Onbekend", - noDesc = "Geen beschrijving beschikbaar", - create = "CreĆ«er", - createTip = "Maak een nieuw karakter aan om mee te spelen.", - load = "Laad", - loadTip = "Kies een eerder gemaakte karakter om mee te spelen.", - leave = "Verlaat", - leaveTip = "Verlaat de huidige server.", - ["return"] = "Terug", - returnTip = "Ga terug naar het vorige menu.", - name = "Naam", - desc = "Beschrijving", - model = "Model", - attribs = "Attributen", - charCreateTip = "Vul de velden hieronder in en druk op 'Voltooi' om je karakter te maken.", - invalid = "Je hebt een ongeldige %s voorzien", - descMinLen = "Je beschrijving moet ten minste %d tekens zijn.", - model = "Model", - player = "Speler", - finish = "Voltooi", - finishTip = "Voltooi het maken van jouw karakter.", - needModel = "Je moet een geldig 'Model' kiezen.", - creating = "Je karakter wordt gemaakt...", - unknownError = "Er is een onbekende fout opgetreden", - delConfirm = "Weet je zeker dat je %s wilt verwijderen?", - no = "Nee", - yes = "Ja", - itemInfo = "Naam: %s\nBeschrijving: %s", - cloud_no_repo = "Deze opslaagplaats is niet geldig.", - cloud_no_plugin = "Deze plugin is niet geldig.", - inv = "Inventaris", - plugins = "Plugins", - author = "Auteur", - version = "Versie", - characters = "Karakters", - business = "Bedrijf", - settings = "Instellingen", - config = "Config", - chat = "Chat", - appearance = "Uiterlijk", - misc = "Gemengd", - oocDelay = "Je moet %s seconde(n) wachten voordat je weer in OOC kan praten.", - loocDelay = "Je moet %s seconde(n) wachten voordat je weer in LOOC kan praten.", - usingChar = "Je bent dit karakter al aan het gebruiken.", - notAllowed = "Sorry, Je mag dat niet doen.", - itemNoExist = "Sorry, het item dat je hebt opgevraagd bestaat niet.", - cmdNoExist = "Sorry, dat commando bestaat niet.", - plyNoExist = "Sorry, Er is geen speler gevonden met die naam.", - cfgSet = "%s heeft \"%s\" gezet tot %s.", - drop = "Vallen", - dropTip = "Dit laat deze item(s) vallen uit je inventaris.", - take = "Nemen", - takeTip = "Dit laat deze item(s) oppakken en het in je inventaris doen.", - dTitle = "Unowned Door", - dTitleOwned = "Purchased Door", - dIsNotOwnable = "Deze deur kan niet gekocht worden.", - dIsOwnable = "Je kan deze deur kopen door op 'F2' te drukken.", - dMadeUnownable = "Je hebt deze deur niet verkoopbaar gemaakt.", - dMadeOwnable = "Je hebt deze deur verkoopbaar gemaakt.", - dNotAllowedToOwn = "Je mag deze deur niet bezitten.", - dSetDisabled = "Je hebt deze deur uitgeschakeld.", - dSetNotDisabled = "Je hebt deze deur ingeschakeld.", - dSetParentDoor = "Je hebt deze deur als je 'Parent' deur gezet. ", - dCanNotSetAsChild = "Je kan deze 'Parent' deur niet als een 'Child' deur zetten.", - dAddChildDoor = "Je hebt deze deur als een 'Child' toegevoegd.", - dRemoveChildren = "Je hebt alle 'Childs' van deze deur verwijderd.", - dRemoveChildDoor = "Je hebt de 'Child' status van deze deur verwijderd.", - dNoParentDoor = "Je hebt nog geen 'Parent' deur ingeschakeld.", - dOwnedBy = "%s is de eigenaar van deze deur.", - dConfigName = "Deuren", - dSetFaction = "Deze deur behoort nu toe aan de %s 'faction'.", - dRemoveFaction = "Deze deur behoort niet meer toe aan een 'faction'.", - dNotValid = "Je kijkt niet naar een geldige deur.", - canNotAfford = "Je kunt het je niet veroorloven om dit te kopen.", - dPurchased = "Je hebt deze deur gekocht voor %s.", - dSold = "Je hebt deze deur verkocht voor %s.", - notOwner = "Je bent niet de eigenaar van dit.", - invalidArg = "Je hebt een ongeldige waarde voor argument #%s.", - invalidFaction = "De 'faction' die u zoekt kan niet worden gevonden.", - flagGive = "%s heeft %s '%s' flags gegeven.", - flagTake = "%s heeft '%s' flags van %s genomen.", - flagNoMatch = "Je moet (de) \"%s\" Flag(s) hebben om dit te doen", - textAdded = "Je hebt een tekst toegevoegd.", - textRemoved = "Je hebt de %s tekst(en) verwijderd.", - moneyTaken = "Je hebt %s gevonden.", - businessPurchase = "Je hebt %s gekocht voor %s.", - businessSell = "Je verkocht %s voor %s.", - cChangeModel = "%s veranderde %s's model naar %s.", - cChangeName = "%s veranderde %s's naam naar %s.", - playerCharBelonging = "Dit object behoort aan je andere karakter toe.", - business = "Bedrijf", - invalidFaction = "Je hebt een ongeldige 'faction' voorzien", - spawnAdd = "Je hebt een spawn toegevoegd voor de %s 'faction'.", - spawnDeleted = "Je hebt (een) %s spawn punt(en) verwijderd.", - someone = "Iemand", - rgnLookingAt = "Toestaan dat de persoon waar je naar kijkt je herkent.", - rgnWhisper = "Toestaan dat degene(n) in het fluister gebied je herkent.", - rgnTalk = "Toestaan dat de personen in het praat gebied je herkennen.", - rgnYell = "Toestaan dat de personen in het schreeuw gebied je herkennen.", - icFormat = "%s zegt \"%s\"", - rollFormat = "%s heeft %s uitgerold.", - wFormat = "%s fluistert \"%s\"", - yFormat = "%s schreeuwt \"%s\"", - sbOptions = "Klik om opties over %s te zien.", - spawnAdded = "Je hebt een spawn toegevoegd voor %s.", - whitelist = "%s heeft %s gewhitelist voor de %s 'faction'.", - unwhitelist = "%s heeft %s geblacklist van de %s 'faction'.", - gettingUp = "Je staat nu op...", - wakingUp = "Je krijgt je bewustzijn terug...", - Weapons = "Wapens", - checkout = "Ga naar checkout (%s)", - purchase = "Koop", - purchasing = "Aan het kopen...", - success = "Succes", - buyFailed = "De koop is gefaald!", - buyGood = "Succesvol gekocht!", - shipment = "Lading", - shipmentDesc = "Deze lading behoort toe aan %s.", - class = "Class", - classes = "Classes", - illegalAccess = "Illegale toegang", - becomeClassFail = "Het is niet gelukt om %s te worden.", - becomeClass = "Je bent %s geworden.", - attribSet = "You set %s's %s to %s.", - attribUpdate = "You added %s's %s by %s.", - noFit = "Deze item(s) passen niet in je inventaris", - help = "Hulp", - commands = "Commando's", - helpDefault = "Selecteer een categorie", - doorSettings = "Deur Instellingen", - sell = "Verkoop", - access = "Toegang", - locking = "Bezig deze 'Entity' opslot te zetten ...", - unlocking = "Bezig deze 'Entity' van het slot te zetten ...", - modelNoSeq = "Je model ondersteunt deze 'Act' niet.", - notNow = "Je kan dat nu niet doen.", - faceWall = "Je moet de muur aankijken om dit te doen.", - faceWallBack = "Je moet met je rug tegen de muur staan om dit te doen", - descChanged = "Je hebt je karakter's beschrijving veranderd.", - charMoney = "Je hebt momenteel %s.", - charFaction = "Je bent een lid van de %s 'faction'.", - charClass = "Je bent %s van de 'faction'.", - noSpace = "Inventaris is vol.", - noOwner = "De eigenaar is niet geldig.", - notAllowed = "Dit is niet toegestaan.", - invalidIndex = "De Item Index is Ongeldig.", - invalidItem = "De Item Object is Ongeldig.", - invalidInventory = "Het inventaris object is ongeldig.", - home = "Home", - charKick = "%s kickde karakter %s.", - charBan = "%s heeft karakter %s verbannen.", - charBanned = "Deze karakter is verbannen.", - setMoney = "Je hebt %s's geld tot %s gezet." -} \ No newline at end of file + loading = "Laden", + dbError = "Database verbinding mislukt", + unknown = "Onbekend", + noDesc = "Geen beschrijving beschikbaar", + create = "Aanmaken", + createTip = "Maak een nieuw personage om mee te spelen.", + load = "Laden", + loadTip = "Kies een eerder aangemaakt personage om mee te spelen.", + leave = "Verlaten", + leaveTip = "Verlaat de huidige server.", + ["return"] = "Terug", + returnTip = "Ga terug naar het vorige menu.", + name = "Naam", + desc = "Beschrijving", + model = "Model", + attribs = "Attributen", + charCreateTip = "Vul de velden hieronder in en klik op 'Voltooien' om je personage aan te maken.", + invalid = "Je hebt een ongeldige %s opgegeven", + descMinLen = "Je beschrijving moet minimaal %d karakter(s) bevatten.", + player = "Speler", + finish = "Voltooien", + finishTip = "Voltooi het aanmaken van het personage.", + needModel = "Je moet een geldig model kiezen", + creating = "Je personage wordt aangemaakt...", + unknownError = "Er is een onbekende fout opgetreden", + delConfirm = "Weet je zeker dat je %s PERMANENT wilt verwijderen?", + no = "Nee", + yes = "Ja", + itemInfo = "Naam: %s\nBeschrijving: %s", + itemCreated = "Item succesvol aangemaakt.", + cloud_no_repo = "Het opgegeven repository is niet geldig.", + cloud_no_plugin = "Het opgegeven plugin is niet geldig.", + inv = "Inventaris", + plugins = "Plugins", + togglePlugins = "Schakel plugins in/uit", + author = "Auteur", + version = "Versie", + characters = "Personages", + settings = "Instellingen", + config = "Configuratie", + chat = "Chat", + appearance = "Uiterlijk", + misc = "Diversen", + oocDelay = "Je moet nog %s seconde(n) wachten voordat je weer OOC kunt gebruiken.", + loocDelay = "Je moet nog %s seconde(n) wachten voordat je weer LOOC kunt gebruiken.", + usingChar = "Dit Personage is al in gebruik.", + itemNoExist = "Sorry, het gevraagde item bestaat niet.", + cmdNoExist = "Sorry, die opdracht bestaat niet.", + plyNoExist = "Sorry, er kon geen overeenkomende speler worden gevonden.", + cfgSet = "%s heeft \"%s\" ingesteld op %s.", + drop = "Neerzetten", + dropTip = "Zet dit item uit je inventaris.", + take = "Oppakken", + takeTip = "Pak dit item op en plaats het in je inventaris.", + dTitle = "Niet toegeĆ«igende Deur", + dTitleOwned = "Gekochte Deur", + dIsNotOwnable = "Deze deur is niet te bezitten.", + dIsOwnable = "Je kunt deze deur kopen door op F2 te drukken.", + dMadeUnownable = "Je hebt deze deur niet toekenbaar gemaakt.", + dMadeOwnable = "Je hebt deze deur toekenbaar gemaakt", + dNotAllowedToOwn = "Je mag deze deur niet bezitten.", + dSetDisabled = "Je hebt deze deur uitgeschakeld.", + dSetNotDisabled = "Je hebt deze deur Ingeschakeld.", + dSetHidden = "Je hebt deze deur verborgen.", + dSetNotHidden = "Je hebt deze deur niet langer verborgen.", + dSetParentDoor = "Je hebt deze deur als hoofd deur ingesteld.", + dCanNotSetAsChild = "Je kunt de hoofd deur niet als secundair instellen.", + dAddChildDoor = "Je hebt deze deur als kind toegevoegd.", + dRemoveChildren = "Je hebt alle secundaire van deze deur verwijderd.", + dRemoveChildDoor = "Je hebt deze deur verwijderd als secundaire.", + dNoParentDoor = "Je hebt geen ouderdeur ingesteld.", + dOwnedBy = "Deze deur is eigendom van %s.", + dConfigName = "Deuren", + dSetFaction = "Deze deur behoort nu tot de factie %s.", + dRemoveFaction = "Deze deur behoort niet langer tot een factie.", + dNotValid = "Je kijkt niet naar een geldige deur.", + canNotAfford = "Je kunt je dit niet veroorloven om te kopen.", + dPurchased = "Je hebt deze deur gekocht voor %s.", + dSold = "Je hebt deze deur verkocht voor %s.", + notOwner = "Je bent hier niet de eigenaar van.", + invalidArg = "Je hebt een ongeldige waarde opgegeven voor argument #%s.", + flagGive = "%s heeft %s de vlaggen '%s' gegeven.", + flagGiveTitle = "Vlaggen Geven", + flagGiveDesc = "Geef de volgende vlaggen aan de speler.", + flagTake = "%s heeft de vlaggen '%s' van %s afgenomen.", + flagTakeTitle = "Vlaggen Afnemen", + flagTakeDesc = "Verwijder de volgende vlaggen van de speler.", + flagNoMatch = "Je moet \"%s\" vlag(gen) hebben om deze actie uit te voeren.", + textAdded = "Je hebt een tekst toegevoegd.", + textRemoved = "Je hebt %s tekst(en) verwijderd.", + moneyTaken = "Je hebt %s gevonden.", + businessPurchase = "Je hebt %s gekocht voor %s.", + businessSell = "Je hebt %s verkocht voor %s.", + cChangeModel = "%s heeft het model van %s veranderd naar %s.", + cChangeName = "%s heeft de naam van %s veranderd naar %s.", + cChangeSkin = "%s heeft de skin van %s veranderd naar %s.", + cChangeGroups = "%s heeft de \"%s\" lichaamsstijl van %s veranderd naar %s.", + cChangeFaction = "%s heeft %s overgezet naar de factie %s.", + playerCharBelonging = "Dit object behoort toe aan je andere personage.", + business = "Zakelijk", + invalidFaction = "Je hebt een ongeldige factie opgegeven.", + limitFaction = "Deze factie is vol. Probeer het later opnieuw.", + spawnAdd = "Je hebt een spawnpunt toegevoegd voor %s.", + spawnDeleted = "Je hebt %s spawnpunt(en) verwijderd.", + someone = "Iemand", + rgnLookingAt = "Laat de persoon naar wie je kijkt je herkennen.", + rgnWhisper = "Laat degenen in fluisterafstand je herkennen.", + rgnTalk = "Laat degenen in praatafstand je herkennen.", + rgnYell = "Laat degenen in schreeuwafstand je herkennen.", + icFormat = "%s zegt \"%s\"", + rollFormat = "%s heeft %s gegooid.", + wFormat = "%s fluistert \"%s\"", + yFormat = "%s schreeuwt \"%s\"", + sbOptions = "Klik om opties te bekijken voor %s.", + spawnAdded = "Je hebt een spawnpunt toegevoegd voor %s.", + whitelist = "%s heeft %s op de whitelist gezet voor de factie %s.", + unwhitelist = "%s heeft %s van de whitelist van de factie %s verwijderd.", + gettingUp = "Je staat op...", + wakingUp = "Je komt langzaam weer bij bewustzijn...", + Weapons = "Wapens", + checkout = "Ga naar de Kassa (%s)", + purchase = "Kopen", + purchasing = "Aan het kopen...", + success = "Succes", + buyFailed = "Aankoop mislukt.", + buyGood = "Aankoop succesvol!", + shipment = "Zending", + shipmentDesc = "Deze zending behoort toe aan %s.", + class = "Klasse", + classes = "Klassen", + illegalAccess = "Illegale toegang.", + becomeClassFail = "Niet gelukt om %s te worden.", + becomeClass = "Je bent nu %s.", + attribSet = "Je hebt %s's %s ingesteld op %s.", + attribUpdate = "Je hebt %s's %s met %s verhoogd.", + noFit = "Dit item past niet in je inventaris.", + help = "Help", + commands = "Commando's", + helpDefault = "Selecteer een categorie", + doorSettings = "Deurinstellingen", + sell = "Verkopen", + access = "Toegang", + locking = "Dit object wordt vergrendeld...", + unlocking = "Dit object wordt ontgrendeld...", + modelNoSeq = "Je model ondersteunt deze handeling niet.", + notNow = "Je mag dit nu niet doen.", + faceWall = "Je moet naar de muur kijken om dit te doen.", + faceWallBack = "Je rug moet naar de muur gericht zijn om dit te doen.", + descChanged = "Je hebt de beschrijving van je personage veranderd.", + charMoney = "Je hebt momenteel %s.", + charFaction = "Je bent lid van de factie %s.", + charClass = "Je bent %s van de factie.", + noSpace = "Inventaris is vol.", + noOwner = "De eigenaar is ongeldig.", + notAllowed = "Deze actie is niet toegestaan.", + invalidIndex = "Het itemnummer is ongeldig.", + invalidItem = "Het itemobject is ongeldig.", + invalidInventory = "Het inventarisobject is ongeldig.", + home = "Thuis", + charKick = "%s heeft karakter %s gekickt.", + charBan = "%s heeft het personage %s verbannen.", + charBanned = "Dit personage is verbannen.", + setMoney = "Je hebt het geld van %s op %s gezet.", + itemPriceInfo = "Je kunt dit item kopen voor %s.\nJe kunt dit item verkopen voor %s", + free = "Gratis", + vendorNoSellItems = "Er zijn geen items te koop.", + vendorNoBuyItems = "Er zijn geen items te koop.", + vendorSettings = "Verkopersinstellingen", + vendorUseMoney = "Moet de verkoper geld gebruiken?", + vendorNoBubble = "Verberg de verkopers spraakbel?", + mode = "Modus", + price = "Prijs", + stock = "Voorraad", + none = "Geen", + vendorBoth = "Kopen en verkopen", + vendorBuy = "Alleen kopen", + vendorSell = "Alleen verkopen", + maxStock = "Maximale voorraad", + vendorFaction = "Factie-editor", + buy = "Kopen", + vendorWelcome = "Welkom in mijn winkel, wat kan ik voor je doen?", + vendorBye = "Kom snel weer terug!", + charSearching = "Je bent al op zoek naar een ander personage, wacht even.", + charUnBan = "%s heeft het personage %s geunbanned.", + charNotBanned = "Dit personage is niet verbannen.", + storPass = "Je hebt het wachtwoord van deze opslagruimte ingesteld op %s.", + storPassRmv = "Je hebt het wachtwoord van deze opslagruimte verwijderd.", + storPassWrite = "Voer het wachtwoord in.", + wrongPassword = "Je hebt het verkeerde wachtwoord ingevoerd.", + cheapBlur = "Vervaging uitschakelen? (Verhoogt FPS)", + quickSettings = "Snelle instellingen", + vmSet = "Je hebt je voicemail ingesteld.", + vmRem = "Je hebt je voicemail verwijderd.", + altLower = "Handen verbergen wanneer deze omlaag zijn?", + noPerm = "Je hebt geen toestemming om dit te doen.", + youreDead = "Je bent dood", + injMajor = "Lijkt ernstig gewond te zijn.", + injLittle = "Lijkt gewond te zijn", + toggleObserverTP = "Schakel observer-teleportatie in/uit", + toggleESP = "Schakel Admin ESP in/uit", + toggleESPAdvanced = "ESP Geavanceerde modus", + chgName = "Naam wijzigen", + chgNameDesc = "Voer hieronder de nieuwe naam van het personage in.", + thirdpersonToggle = "Schakel Derdepersoonsmodus in/uit", + thirdpersonClassic = "Gebruik Klassieke Derdepersoonsmodus", + thirdpersonConfig = "Derdepersoonsconfiguratie", + equippedBag = "Uitgeruste items kunnen niet tussen inventarissen worden verplaatst.", + useTip = "Gebruikt het item.", + equipTip = "Rust het item uit.", + unequipTip = "Leg het item weg.", + consumables = "Verbruiksartikelen", + plyNotValid = "Je kijkt niet naar een geldige speler.", + restricted = "Je functies zijn beperkt.", + viewProfile = "Bekijk Steam-profiel", + salary = "Je hebt %s van je salaris ontvangen.", + noRecog = "Je herkent dit persoon niet.", + curTime = "De huidige tijd is %s.", + vendorEditor = "Verkoper Editor", + edit = "Bewerken", + disable = "Uitschakelen", + vendorPriceReq = "Voer de nieuwe prijs voor dit item in.", + vendorEditCurStock = "Huidige voorraad bewerken", + you = "Jij", + vendorSellScale = "Verkoopprijs schaal", + vendorNoTrade = "Je kunt niet handelen met deze verkoper.", + vendorNoMoney = "Deze verkoper kan dat item niet betalen.", + vendorNoStock = "Deze verkoper heeft dat item niet op voorraad.", + contentTitle = "NutScript Inhoud Ontbreekt", + contentWarning = "Je hebt de NutScript-inhoud niet geĆÆnstalleerd. Hierdoor kunnen bepaalde functies ontbreken.\nHet adres van de Nutscript-inhoud is gewijzigd naar dat van rebel1324.\nWil je de Workshop-pagina voor de NutScript-inhoud openen?", + flags = "Vlaggen", + chooseTip = "Kies dit personage om mee te spelen.", + deleteTip = "Verwijder dit personage.", + moneyLeft = "Jouw geld: ", + currentMoney = "Resterend geld: ", + -- 2018 patch + ammoLoadAll = "Alles laden", + ammoLoadAmount = "%s laden", + ammoLoadCustom = "Laden...", + split = "Delen", + splitHelp = "Voer een getal in om te splitsen.", + splitHalf = "Helft splitsen", + splitQuarter = "Kwart splitsen", + recognize = "Laat dit personage je herkennen.", + recognized = "Je hebt dit personage je identiteit gegeven.", + already_recognized = "Dit personage kent je al.", + isTied = "Deze persoon is vastgebonden.", + tying = "Vastbinden", + untying = "Los maken", + beingUntied = "Je wordt los gemaakt.", + beingTied = "Je wordt vastgebonden.", + sameOutfitCategory = "Je draagt al dit soort outfit.", + noBusiness = "Je mag op dit moment niets kopen.", + panelRemoved = "Je hebt %s 3D-panelen verwijderd.", + panelAdded = "Je hebt een 3D-paneel toegevoegd.", + itemOnGround = "Je item is op de grond geplaatst.", + forbiddenActionStorage = "Je kunt deze actie niet uitvoeren met een opgeslagen item.", + cantDropBagHasEquipped = "Je kunt de tas niet laten vallen zolang er een uitgerust item in zit.", + -- 2021 patch + lookToUseAt = "Je moet naar iemand kijken om '@' te gebruiken.", + mustProvideString = "Je moet een tekenreeks voor de variabele opgeven", + -- 2023 patch + togglePluginsDesc = "Geselecteerde plugins worden uitgeschakeld.\nDe kaart moet worden herstart na het maken van wijzigingen!", +} diff --git a/gamemode/languages/sh_english.lua b/gamemode/languages/sh_english.lua index 26f10444..32c16ee5 100644 --- a/gamemode/languages/sh_english.lua +++ b/gamemode/languages/sh_english.lua @@ -1,4 +1,3 @@ - NAME = "English" LANGUAGE = { @@ -36,6 +35,7 @@ LANGUAGE = { cloud_no_plugin = "The plugin provided is not valid.", inv = "Inventory", plugins = "Plugins", + togglePlugins = "Toggle plugins", author = "Author", version = "Version", characters = "Characters", @@ -258,10 +258,14 @@ LANGUAGE = { panelRemoved = "You have removed %s 3D panels.", panelAdded = "You have added a 3D panel.", itemOnGround = "Your item has been placed on the ground.", - forbiddenActionStorage = "You can't do this action with storaged item.", - cantDropBagHasEquipped = "You can't drop bag that has equipped item.", + forbiddenActionStorage = "You can't do this action with a storaged item.", + cantDropBagHasEquipped = "You can't drop a bag that has equipped item.", -- 2021 patch lookToUseAt = "You need to be looking at someone to use '@'", mustProvideString = "You must provide a string for the variable", + + -- 2023 patch + + togglePluginsDesc = "Selected Plugins will be disabled.\nThe map must be restarted after making changes!", } diff --git a/gamemode/languages/sh_french.lua b/gamemode/languages/sh_french.lua index 6e70ad9e..4c57ea1f 100644 --- a/gamemode/languages/sh_french.lua +++ b/gamemode/languages/sh_french.lua @@ -3,265 +3,265 @@ NAME = "FranƧais" LANGUAGE = { loading = "Chargement", - dbError = "Connexion avec la base de donnĆ©es Ć©chouĆ©e", + dbError = "Ɖchec de la connexion Ć  la base de donnĆ©es", unknown = "Inconnu", noDesc = "Aucune description disponible", - create = "CrƉer", - createTip = "CrĆ©er un nouveau personnage pour jouer avec.", + create = "CrĆ©er", + createTip = "CrĆ©ez un nouveau personnage pour jouer.", load = "Charger", - loadTip = "Charger un personnage crĆ©e auparavant pour jouer avec.", + loadTip = "Choisissez un personnage dĆ©jĆ  crƩƩ pour jouer.", leave = "Quitter", - leaveTip = "Quitter le serveur actuel.", + leaveTip = "Quittez le serveur actuel.", ["return"] = "Retour", - returnTip = "Retourner au menu prĆ©cĆ©dent.", + returnTip = "Revenir au menu prĆ©cĆ©dent.", name = "Nom", desc = "Description", model = "ModĆØle", attribs = "Attributs", charCreateTip = "Remplissez les champs ci-dessous et appuyez sur 'Terminer' pour crĆ©er votre personnage.", invalid = "Vous avez fourni un %s invalide", - descMinLen = "Votre description doit comporter au moins %d caractĆØre(s).", + descMinLen = "Votre description doit contenir au moins %d caractĆØre(s).", player = "Joueur", finish = "Terminer", - finishTip = "Terminer la crĆ©ation du personnage.", + finishTip = "Terminez la crĆ©ation du personnage.", needModel = "Vous devez choisir un modĆØle valide", creating = "Votre personnage est en cours de crĆ©ation...", - unknownError = "Une erreur inconnue est survenue", - delConfirm = "Êtes-vous sĆ»r de vouloir supprimer dĆ©finitivement %s?", + unknownError = "Une erreur inconnue s'est produite", + delConfirm = "Êtes-vous sĆ»r de vouloir SUPPRIMER %s de faƧon PERMANENTE ?", no = "Non", yes = "Oui", - itemInfo = "Nom: %s\nDescription: %s", - itemCreated = "L'objet Ć  Ć©tĆ© crƩƩ avec succĆØs.", - cloud_no_repo = "Les rĆ©fĆ©rentiels fournies ne sont pas valides.", - cloud_no_plugin = "Les plugins fournies ne sont pas valides.", + itemInfo = "Nom : %s\nDescription : %s", + itemCreated = "Objet crƩƩ avec succĆØs.", + cloud_no_repo = "Le rĆ©fĆ©rentiel fourni n'est pas valide.", + cloud_no_plugin = "Le plugin fourni n'est pas valide.", inv = "Inventaire", plugins = "Plugins", + togglePlugins = "Activer/dĆ©sactiver les plugins", author = "Auteur", version = "Version", characters = "Personnages", settings = "ParamĆØtres", config = "Configuration", - chat = "Chat", + chat = "Discussion", appearance = "Apparence", misc = "Divers", - oocDelay = "Vous devez attendre %s seconde(s) avant de pouvoir utiliser de nouveau le OOC.", - loocDelay = "Vous devez attendre %s seconde(s) avant de pouvoir utiliser de nouveau le LOOC.", + oocDelay = "Vous devez attendre encore %s seconde(s) avant de pouvoir utiliser OOC Ć  nouveau.", + loocDelay = "Vous devez attendre encore %s seconde(s) avant de pouvoir utiliser LOOC Ć  nouveau.", usingChar = "Vous utilisez dĆ©jĆ  ce personnage.", - itemNoExist = "DĆ©solĆ©, l'objet que vous avez demandĆ© n'a pas Ć©tĆ© trouvĆ© ou n'existe pas.", - cmdNoExist = "DĆ©solĆ©, cette commande n'a pas Ć©tĆ© trouvĆ© ou n'existe pas.", - plyNoExist = "DĆ©solĆ©, le joueur n'a pas Ć©tĆ© trouvĆ© ou n'existe pas.", - cfgSet = "%s a mis \"%s\" Ć  %s.", + itemNoExist = "DĆ©solĆ©, l'objet que vous avez demandĆ© n'existe pas.", + cmdNoExist = "DĆ©solĆ©, cette commande n'existe pas.", + plyNoExist = "DĆ©solĆ©, aucun joueur correspondant n'a pu ĆŖtre trouvĆ©.", + cfgSet = "%s a dĆ©fini \"%s\" sur %s.", drop = "LĆ¢cher", - dropTip = "LĆ¢cher cet objet de votre inventaire.", + dropTip = "LĆ¢chez cet objet de votre inventaire.", take = "Prendre", - takeTip = "Prendre cet objet et le placer dans votre inventaire.", - dTitle = "Porte en vente", + takeTip = "Prenez cet objet et placez-le dans votre inventaire.", + dTitle = "Porte non possĆ©dĆ©e", dTitleOwned = "Porte achetĆ©e", - dIsNotOwnable = "Cette porte est inachetable.", + dIsNotOwnable = "Cette porte n'est pas achetable.", dIsOwnable = "Vous pouvez acheter cette porte en appuyant sur F2.", - dMadeUnownable = "Vous avez rendu cette porte inachetable.", + dMadeUnownable = "Vous avez rendu cette porte non achetable.", dMadeOwnable = "Vous avez rendu cette porte achetable.", dNotAllowedToOwn = "Vous n'ĆŖtes pas autorisĆ© Ć  possĆ©der cette porte.", dSetDisabled = "Vous avez dĆ©sactivĆ© cette porte.", - dSetNotDisabled = "Vous avez activĆ© cette porte.", - dSetHidden = "Vous avez cachĆ©e cette porte.", - dSetNotHidden = "Vous avez rendu visible cette porte.", - dSetParentDoor = "Vous avez fait de cette porte, la porte principale.", - dCanNotSetAsChild = "Vous avez fait de cette porte, la porte secondaire.", - dAddChildDoor = "Vous avez ajoutĆ© une porte secondaire.", - dRemoveChildren = "Vous avez supprimĆ© toutes les portes secondaires, pour ne laisser que celle-ci.", - dRemoveChildDoor = "Vous avez supprimĆ© cette porte secondaire.", - dNoParentDoor = "Vous ne disposez pas d'une porte principale.", + dSetNotDisabled = "Vous avez rĆ©activĆ© cette porte.", + dSetHidden = "Vous avez rendu cette porte invisible.", + dSetNotHidden = "Vous avez rendu cette porte visible.", + dSetParentDoor = "Vous avez dĆ©fini cette porte comme votre porte parente.", + dCanNotSetAsChild = "Vous ne pouvez pas dĆ©finir la porte parente comme enfant.", + dAddChildDoor = "Vous avez ajoutĆ© cette porte comme enfant.", + dRemoveChildren = "Vous avez retirĆ© tous les enfants de cette porte.", + dRemoveChildDoor = "Vous avez retirĆ© cette porte en tant qu'enfant.", + dNoParentDoor = "Vous n'avez pas de porte parente dĆ©finie.", dOwnedBy = "Cette porte appartient Ć  %s.", dConfigName = "Portes", - dSetFaction = "Cette porte appartient maintenant Ć  la faction %s.", + dSetFaction = "Cette porte appartient dĆ©sormais Ć  la faction %s.", dRemoveFaction = "Cette porte n'appartient plus Ć  aucune faction.", dNotValid = "Vous ne regardez pas une porte valide.", - canNotAfford = "Vous ne pouvez pas vous permettre d'acheter ceci.", + canNotAfford = "Vous ne pouvez pas vous permettre d'acheter cela.", dPurchased = "Vous avez achetĆ© cette porte pour %s.", dSold = "Vous avez vendu cette porte pour %s.", notOwner = "Vous n'ĆŖtes pas le propriĆ©taire de ceci.", - invalidArg = "Vous avez fourni une valeur non valide pour l'argument #%s.", - flagGive = "%s a donnĆ© Ć  %s les drapeaux \"%s\".", - flagGiveTitle = "Donner drapeaux", - flagGiveDesc = "Donner les drapeaux suivants Ć  un joueur.", - flagTake = "%s a retirĆ© les drapeaux \"%s\" Ć  %s.", - flagTakeTitle = "Retirer drapeaux", - flagTakeDesc = "Retirer les drapeaux suivants Ć  un joueur.", - flagNoMatch = "Vous devez avoir le ou les drapeaux \"%s\" pour rĆ©aliser cette action.", + invalidArg = "Vous avez fourni une valeur invalide pour l'argument #%s.", + flagGive = "%s a donnĆ© les drapeaux '%s' Ć  %s.", + flagGiveTitle = "Donner des drapeaux", + flagGiveDesc = "Donnez les drapeaux suivants au joueur.", + flagTake = "%s a retirĆ© les drapeaux '%s' de %s.", + flagTakeTitle = "Retirer les drapeaux", + flagTakeDesc = "Retirez les drapeaux suivants du joueur.", + flagNoMatch = "Vous devez avoir les drapeaux \"%s\" pour effectuer cette action.", textAdded = "Vous avez ajoutĆ© un texte.", textRemoved = "Vous avez supprimĆ© %s texte(s).", moneyTaken = "Vous avez trouvĆ© %s.", businessPurchase = "Vous avez achetĆ© %s pour %s.", businessSell = "Vous avez vendu %s pour %s.", - cChangeModel = "%s a modifiĆ© le modĆØle de %s par \"%s\".", - cChangeName = "%s a modifiĆ© le nom roleplay de %s par \"%s\".", - cChangeSkin = "%s a modifiĆ© la peau (skin) de %s par \"%s\".", - cChangeGroups = "%s a modifiĆ© le bodygroup de %s avec (nom: %s, index: %s).", - cChangeFaction = "%s a modifiĆ© la faction de %s par \"%s\".", - playerCharBelonging = "Cet objet appartient Ć  un autre de vos personnages.", - business = "MarchĆ©", - invalidFaction = "La faction que vous avez fourni n'a pu ĆŖtre trouvĆ©e.", + cChangeModel = "%s a changĆ© le modĆØle de %s en %s.", + cChangeName = "%s a changĆ© le nom de %s en %s.", + cChangeSkin = "%s a changĆ© la peau de %s en %s.", + cChangeGroups = "%s a changĆ© le groupe corporel \"%s\" de %s en %s.", + cChangeFaction = "%s a transfĆ©rĆ© %s vers la faction %s.", + playerCharBelonging = "Cet objet appartient Ć  un autre personnage.", + business = "Commerce", + invalidFaction = "Vous avez fourni une faction invalide.", limitFaction = "Cette faction est complĆØte. RĆ©essayez plus tard.", spawnAdd = "Vous avez ajoutĆ© un point d'apparition pour %s.", spawnDeleted = "Vous avez supprimĆ© %s point(s) d'apparition.", someone = "Quelqu'un", - rgnLookingAt = "Permettre Ć  la personne que vous regardez de vous reconnaĆ®tre.", - rgnWhisper = "Permettre Ć  ceux qui vous entendent chuchoter de vous reconnaĆ®tre.", - rgnTalk = "Permettre Ć  ceux qui vous entendent parler de vous reconnaĆ®tre.", - rgnYell = "Permettre Ć  ceux qui vous entendent crier de vous reconnaĆ®tre.", + rgnLookingAt = "Permet Ć  la personne que vous regardez de vous reconnaĆ®tre.", + rgnWhisper = "Permet Ć  ceux qui chuchotent de vous reconnaĆ®tre.", + rgnTalk = "Permet Ć  ceux qui parlent de vous reconnaĆ®tre.", + rgnYell = "Permet Ć  ceux qui crient de vous reconnaĆ®tre.", icFormat = "%s dit \"%s\"", - rollFormat = "%s a jetĆ© les dĆ©s, %s.", + rollFormat = "%s a fait un jet de %s.", wFormat = "%s chuchote \"%s\"", yFormat = "%s crie \"%s\"", - sbOptions = "Cliquez pour voir les options de %s.", + sbOptions = "Cliquez pour voir les options pour %s.", spawnAdded = "Vous avez ajoutĆ© un point d'apparition pour %s.", - whitelist = "%s a ajoutĆ© Ć  la liste blanche %s pour la faction %s.", - unwhitelist = "%s a retirĆ© de la liste blanche %s pour la faction %s.", - gettingUp = "Vous ĆŖtes maintenant debout...", - wakingUp = "Vous avez repris conscience...", + whitelist = "%s a mis %s sur la liste blanche pour la faction %s.", + unwhitelist = "%s a retirĆ© %s de la liste blanche de la faction %s.", + gettingUp = "Vous vous levez maintenant...", + wakingUp = "Vous reprenez conscience...", Weapons = "Armes", - checkout = "Panier (%s)", + checkout = "Aller Ć  la caisse (%s)", purchase = "Acheter", - purchasing = "Achat...", + purchasing = "Achat en cours...", success = "SuccĆØs", - buyFailed = "Achat Ć©chouĆ©.", - buyGood = "Achat rĆ©ussi.", - shipment = "Cargaison", - shipmentDesc = "Cette cargaison appartient Ć  %s.", + buyFailed = "L'achat a Ć©chouĆ©.", + buyGood = "Achat rĆ©ussi !", + shipment = "ExpĆ©dition", + shipmentDesc = "Cette expĆ©dition appartient Ć  %s.", class = "Classe", - classes = "MĆ©tiers", + classes = "Classes", illegalAccess = "AccĆØs illĆ©gal.", - becomeClassFail = "Impossible de devenir %s.", - becomeClass = "Vous ĆŖtes devenu %s.", - attribSet = "Vous avez mis Ć  %s de %s Ć  %s.", - attribUpdate = "Vous avez ajoutĆ© Ć  %s de %s, %s pour ĆŖtre prĆ©cis.", - noFit = "Cet objet ne peut pas rentrer dans votre inventaire.", + becomeClassFail = "Ɖchec pour devenir %s.", + becomeClass = "Vous ĆŖtes maintenant %s.", + attribSet = "Vous avez dĆ©fini les %s de %s sur %s.", + attribUpdate = "Vous avez augmentĆ© les %s de %s de %s.", + noFit = "Cet objet ne peut pas ĆŖtre rangĆ© dans votre inventaire.", help = "Aide", commands = "Commandes", - helpDefault = "Choisir une fichier d'aide", - doorSettings = "Modifications", + helpDefault = "SĆ©lectionnez une catĆ©gorie", + doorSettings = "ParamĆØtres de la porte", sell = "Vendre", access = "AccĆØs", - locking = "VERROUILLAGE DE L'ENTITƉ...", - unlocking = "DƉVERROUILLAGE DE L'ENTITƉ...", - modelNoSeq = "Votre modĆØle ne prend pas en charge cet acte.", - notNow = "Vous n'ĆŖtes pas autorisĆ© Ć  faire ceci maintenant.", - faceWall = "Vous devez ĆŖtre face au mur.", - faceWallBack = "Votre dos doit ĆŖtre orientĆ©e vers le mur.", - descChanged = "Vous avez changĆ© la description de votre personnage.", + locking = "Verrouillage de cette entitĆ©...", + unlocking = "DĆ©verrouillage de cette entitĆ©...", + modelNoSeq = "Votre modĆØle ne prend pas en charge cette action.", + notNow = "Vous n'ĆŖtes pas autorisĆ© Ć  faire cela pour le moment.", + faceWall = "Vous devez faire face au mur pour faire cela.", + faceWallBack = "Votre dos doit ĆŖtre tournĆ© vers le mur pour faire cela.", + descChanged = "Vous avez modifiĆ© la description de votre personnage.", charMoney = "Vous avez actuellement %s.", - charFaction = "Vous ĆŖtes un membre de la faction %s.", - charClass = "Vous ĆŖtes %s dans votre faction.", - noSpace = "L'inventaire est complet.", - noOwner = "Le propriĆ©taire est invalide.", - notAllowed = "Cette action n'est pas autorisĆ©.", - invalidIndex = "L'objet de l'index est invalide.", + charFaction = "Vous ĆŖtes membre de la faction %s.", + charClass = "Vous ĆŖtes %s de la faction.", + noSpace = "L'inventaire est plein.", + noOwner = "Le propriĆ©taire n'est pas valide.", + notAllowed = "Cette action n'est pas autorisĆ©e.", + invalidIndex = "L'index de l'objet est invalide.", invalidItem = "L'objet est invalide.", - invalidInventory = "L'object de l'inventaire est invalide.", + invalidInventory = "L'inventaire est invalide.", home = "Accueil", - charKick = "%s a kick le personnage %s.", + charKick = "%s a expulsĆ© le personnage %s.", charBan = "%s a banni le personnage %s.", charBanned = "Ce personnage est banni.", - setMoney = "Vous avez dĆ©fini l'argent de %s Ć  %s.", - itemPriceInfo = "Vous pouvez acheter cet objet pour %s.\nVous pouvez vendre cet objet pour %s.", + setMoney = "Vous avez dĆ©fini l'argent de %s sur %s.", + itemPriceInfo = "Vous pouvez acheter cet objet pour %s.\nVous pouvez vendre cet objet pour %s", free = "Gratuit", - vendorNoSellItems = "Il n'y a pas d'objet Ć  vendre.", - vendorNoBuyItems = "Il n'y a pas d'objet Ć  acheter.", - vendorSettings = "Modifications", - vendorUseMoney = "Le PNJ peut utiliser de l'argent?", - vendorNoBubble = "Cacher la bulle du PNJ ?", + vendorNoSellItems = "Il n'y a aucun objet Ć  vendre.", + vendorNoBuyItems = "Il n'y a aucun objet Ć  acheter.", + vendorSettings = "ParamĆØtres du vendeur", + vendorUseMoney = "Le vendeur devrait-il utiliser de l'argent ?", + vendorNoBubble = "Masquer la bulle du vendeur ?", mode = "Mode", price = "Prix", stock = "Stock", none = "Aucun", - vendorBoth = "Achat et vente", - vendorBuy = "Achat seulement", - vendorSell = "Vente seulement", - maxStock = "Max stock", - vendorFaction = "Modification faction", - buy = "Achat", - vendorWelcome = "Bienvenue dans mon magasin, tout ce que je peux vous obtenir se trouve ici !", - vendorBye = "ƀ bientĆ“t !", - charSearching = "Vous ĆŖtes dĆ©jĆ  Ć  la recherche d'un autre personnage, veuillez attendre.", + vendorBoth = "Acheter et Vendre", + vendorBuy = "Acheter Uniquement", + vendorSell = "Vendre Uniquement", + maxStock = "Stock Max", + vendorFaction = "Ɖditeur de Faction", + buy = "Acheter", + vendorWelcome = "Bienvenue dans mon magasin, que puis-je vous offrir aujourd'hui ?", + vendorBye = "Revenez bientĆ“t !", + charSearching = "Vous recherchez dĆ©jĆ  un autre personnage, veuillez patienter.", charUnBan = "%s a dĆ©banni le personnage %s.", - charNotBanned = "Ce personnage n'est pas interdit.", - storPass = "Le mot de passe de ce stockage est %s.", + charNotBanned = "Ce personnage n'est pas banni.", + storPass = "Vous avez dĆ©fini le mot de passe de ce stockage sur %s.", storPassRmv = "Vous avez supprimĆ© le mot de passe de ce stockage.", storPassWrite = "Entrez le mot de passe.", wrongPassword = "Vous avez entrĆ© un mauvais mot de passe.", - cheapBlur = "DĆ©sactiver le flou ? (Gain FPS)", - quickSettings = "ParamĆØtres rapides", - vmSet = "Vous avez dĆ©fini votre messagerie vocale.", - vmRem = "Vous avez supprimĆ© votre messagerie vocale.", - altLower = "Cacher les mains quand elles sont baissĆ©es ?", - noPerm = "Vous n'ĆŖtes pas autorisĆ© Ć  faire ceci.", + cheapBlur = "DĆ©sactiver le flou ? (Augmente les FPS)", + quickSettings = "ParamĆØtres Rapides", + vmSet = "Vous avez dĆ©fini votre boĆ®te vocale.", + vmRem = "Vous avez supprimĆ© votre boĆ®te vocale.", + altLower = "Masquer les mains lorsqu'elles sont baissĆ©es ?", + noPerm = "Vous n'ĆŖtes pas autorisĆ© Ć  faire cela.", youreDead = "Vous ĆŖtes mort", - injMajor = "Il semble griĆØvement blessĆ©.", - injLittle = "Il semble blessĆ©.", - toggleObserverTP = "Activer l'observation des tĆ©lĆ©portations", - toggleESP = "Activer l'ESP admin", - toggleESPAdvanced = "Mode avancĆ© de l'ESP", - chgName = "Changer de nom", + injMajor = "Semble gravement blessĆ©.", + injLittle = "Semble blessĆ©", + toggleObserverTP = "Activer/dĆ©sactiver la tĆ©lĆ©portation de l'observateur", + toggleESP = "Activer/dĆ©sactiver l'ESP Admin", + toggleESPAdvanced = "Mode ESP AvancĆ©", + chgName = "Changer le Nom", chgNameDesc = "Entrez le nouveau nom du personnage ci-dessous.", - thirdpersonToggle = "Activer la troisiĆØme personne", - thirdpersonClassic = "Utiliser troisiĆØme personne classique", - thirdpersonConfig = "Configuration troisiĆØme personne", + thirdpersonToggle = "Activer/dĆ©sactiver la TroisiĆØme Personne", + thirdpersonClassic = "Utiliser la TroisiĆØme Personne Classique", + thirdpersonConfig = "Configuration de la TroisiĆØme Personne", equippedBag = "Les objets Ć©quipĆ©s ne peuvent pas ĆŖtre dĆ©placĆ©s entre les inventaires.", - useTip = "Utiliser l'objet.", - equipTip = "Ɖquiper l'objet.", - unequipTip = "DĆ©sĆ©quiper l'objet.", + useTip = "Utilisez l'objet.", + equipTip = "Ɖquipez l'objet.", + unequipTip = "DĆ©sĆ©quipez l'objet.", consumables = "Consommables", plyNotValid = "Vous ne regardez pas un joueur valide.", - restricted = "Vous avez Ć©tĆ© attachĆ©", + restricted = "Vous ĆŖtes restreint.", viewProfile = "Voir le profil Steam", - salary = "Vous avez reƧu votre salaire, %s.", - noRecog = "Vous ne connaissez pas cette personne.", - curTime = "L'heure et la date actuelle, %s.", - vendorEditor = "Ɖdition du vendeur", - edit = "Ɖditer", + salary = "Vous avez reƧu %s de salaire.", + noRecog = "Vous ne reconnaissez pas cette personne.", + curTime = "Il est actuellement %s.", + vendorEditor = "Ɖditeur de Vendeur", + edit = "Modifier", disable = "DĆ©sactiver", - vendorPriceReq = "Entrez le nouveau prix pour cet objet.", - vendorEditCurStock = "Modifier le stock actuel", + vendorPriceReq = "Entrez le nouveau prix de cet objet.", + vendorEditCurStock = "Modifier le Stock Actuel", you = "Vous", - vendorSellScale = "Ɖchelle de prix de vente", - vendorNoTrade = "Vous ne pouvez pas faire de commerce avec ce vendeur.", - vendorNoMoney = "Ce vendeur ne peut pas se payer cet article.", - vendorNoStock = "Ce vendeur n'a pas cet article en stock.", - contentTitle = "Contenu NutScript manquant", - contentWarning = "Vous n'avez pas montĆ© le contenu NutScript. Cela peut entraĆ®ner l'absence de certaines fonctionnalitĆ©s. L'adresse du contenu NutScript a Ć©tĆ© remplacĆ©e par celle de rebel1324.\nVoulez-vous ouvrir la page de l'atelier pour le contenu NutScript ?", + vendorSellScale = "Ɖchelle de Prix de Vente", + vendorNoTrade = "Vous ne pouvez pas commercer avec ce vendeur.", + vendorNoMoney = "Ce vendeur ne peut pas se permettre cet objet.", + vendorNoStock = "Ce vendeur n'a pas cet objet en stock.", + contentTitle = "Contenu de NutScript Manquant", + contentWarning = "Vous n'avez pas le contenu de NutScript installĆ©. Cela peut entraĆ®ner l'absence de certaines fonctionnalitĆ©s.\nL'adresse du contenu Nutscript a Ć©tĆ© modifiĆ©e pour celle de rebel1324.\nSouhaitez-vous ouvrir la page Workshop pour le contenu NutScript ?", flags = "Drapeaux", - chooseTip = "Choisissez ce personnage pour jouer avec lui.", + chooseTip = "Choisissez ce personnage pour jouer.", deleteTip = "Supprimez ce personnage.", - moneyLeft = "Votre argent : ", - currentMoney = "Argent restant : ", - + moneyLeft = "Votre Argent : ", + currentMoney = "Argent Restant : ", -- 2018 patch - - ammoLoadAll = "Tout charger", + ammoLoadAll = "Tout Charger", ammoLoadAmount = "Charger %s", - ammoLoadCustom = "Chargement...", + ammoLoadCustom = "Charger...", split = "Diviser", - splitHelp = "Saisissez un nombre pour diviser.", - splitHalf = "Diviser 1/2", - splitQuarter = "Diviser 1/4", + splitHelp = "Entrez un nombre pour diviser.", + splitHalf = "Diviser par 2", + splitQuarter = "Diviser par 4", recognize = "Permettez Ć  ce personnage de vous reconnaĆ®tre.", - recognized = "Tu as donnĆ© ton identitĆ© Ć  ce personnage.", + recognized = "Vous avez donnĆ© votre identitĆ© Ć  ce personnage.", already_recognized = "Ce personnage vous connaĆ®t dĆ©jĆ .", - isTied = "Cette personne a Ć©tĆ© attachĆ©e.", + isTied = "Cette personne est attachĆ©e.", tying = "Attachement", untying = "DĆ©tachement", - beingUntied = "Tu as Ć©tĆ© dĆ©tachĆ©.", - beingTied = "Tu as Ć©tĆ© attachĆ©.", + beingUntied = "Vous ĆŖtes en train d'ĆŖtre dĆ©tachĆ©.", + beingTied = "Vous ĆŖtes en train d'ĆŖtre attachĆ©.", sameOutfitCategory = "Vous portez dĆ©jĆ  ce type de tenue.", noBusiness = "Vous n'ĆŖtes pas autorisĆ© Ć  acheter quoi que ce soit pour le moment.", - panelRemoved = "Vous avez supprimĆ© %s interfaces 3D.", - panelAdded = "Vous avez ajoutĆ© une interface 3D.", - itemOnGround = "Votre article a Ć©tĆ© placĆ© sur le sol.", - forbiddenActionStorage = "Vous ne pouvez pas faire cette action avec un objet stockĆ©.", - cantDropBagHasEquipped = "Vous ne pouvez pas dĆ©poser un sac qui a un objet Ć©quipĆ©.", - + panelRemoved = "Vous avez supprimĆ© %s panneau(x) 3D.", + panelAdded = "Vous avez ajoutĆ© un panneau 3D.", + itemOnGround = "Votre objet a Ć©tĆ© placĆ© sur le sol.", + forbiddenActionStorage = "Vous ne pouvez pas effectuer cette action avec un objet stockĆ©.", + cantDropBagHasEquipped = "Vous ne pouvez pas lĆ¢cher un sac contenant un objet Ć©quipĆ©.", -- 2021 patch - lookToUseAt = "Vous devez regarder quelqu'un pour utiliser '@'.", + lookToUseAt = "Vous devez regarder quelqu'un pour utiliser '@'", mustProvideString = "Vous devez fournir une chaĆ®ne de caractĆØres pour la variable", + -- 2023 patch + togglePluginsDesc = "Les plugins sĆ©lectionnĆ©s seront dĆ©sactivĆ©s.\nLa carte doit ĆŖtre redĆ©marrĆ©e aprĆØs avoir apportĆ© des modifications !", } diff --git a/gamemode/languages/sh_german.lua b/gamemode/languages/sh_german.lua new file mode 100644 index 00000000..d7c7e832 --- /dev/null +++ b/gamemode/languages/sh_german.lua @@ -0,0 +1,266 @@ +NAME = "Deutsch" + +LANGUAGE = { + loading = "Lade", + dbError = "Datenbankverbindung fehlgeschlagen", + unknown = "Unbekannt", + noDesc = "Keine Beschreibung verfügbar", + create = "Erstellen", + createTip = "Erstelle einen neuen Charakter, um zu spielen.", + load = "Laden", + loadTip = "WƤhle einen zuvor erstellten Charakter zum Spielen aus.", + leave = "Verlassen", + leaveTip = "Verlasse den aktuellen Server.", + ["return"] = "Zurück", + returnTip = "Zurück zum vorherigen Menü.", + name = "Name", + desc = "Beschreibung", + model = "Modell", + attribs = "Attribute", + charCreateTip = "Fülle die unten stehenden Felder aus und klicke auf 'Fertig', um deinen Charakter zu erstellen.", + invalid = "Du hast eine ungültige %s angegeben", + descMinLen = "Deine Beschreibung muss mindestens %d Zeichen lang sein.", + player = "Spieler", + finish = "Fertigstellen", + finishTip = "Beende die Charaktererstellung.", + needModel = "Du musst ein gültiges Modell auswƤhlen", + creating = "Dein Charakter wird erstellt...", + unknownError = "Ein unbekannter Fehler ist aufgetreten", + delConfirm = "Bist du sicher, dass du %s dauerhaft lƶschen mƶchtest?", + no = "Nein", + yes = "Ja", + itemInfo = "Name: %s\nBeschreibung: %s", + itemCreated = "Gegenstand erfolgreich erstellt.", + cloud_no_repo = "Das angegebene Repository ist ungültig.", + cloud_no_plugin = "Das angegebene Plugin ist ungültig.", + inv = "Inventar", + plugins = "Plugins", + togglePlugins = "Plugins umschalten", + author = "Autor", + version = "Version", + characters = "Charaktere", + settings = "Einstellungen", + config = "Konfiguration", + chat = "Chat", + appearance = "Erscheinung", + misc = "Verschiedenes", + oocDelay = "Du musst noch %s Sekunde(n) warten, bevor du OOC erneut verwenden kannst.", + loocDelay = "Du musst noch %s Sekunde(n) warten, bevor du LOOC erneut verwenden kannst.", + usingChar = "Du verwendest bereits diesen Charakter.", + itemNoExist = "Entschuldigung, der angeforderte Gegenstand existiert nicht.", + cmdNoExist = "Entschuldigung, dieser Befehl existiert nicht.", + plyNoExist = "Entschuldigung, es konnte kein passender Spieler gefunden werden.", + cfgSet = "%s hat \"%s\" auf %s gesetzt.", + drop = "Ablegen", + dropTip = "Diesen Gegenstand aus deinem Inventar ablegen.", + take = "Nehmen", + takeTip = "Diesen Gegenstand nehmen und in dein Inventar legen.", + dTitle = "Unbesitzte Tür", + dTitleOwned = "Gekaufte Tür", + dIsNotOwnable = "Diese Tür kann nicht besessen werden.", + dIsOwnable = "Du kannst diese Tür durch Drücken von F2 kaufen.", + dMadeUnownable = "Du hast diese Tür unbesitzbar gemacht.", + dMadeOwnable = "Du hast diese Tür besitzbar gemacht.", + dNotAllowedToOwn = "Du darfst diese Tür nicht besitzen.", + dSetDisabled = "Du hast diese Tür deaktiviert.", + dSetNotDisabled = "Du hast diese Tür nicht mehr deaktiviert.", + dSetHidden = "Du hast diese Tür versteckt.", + dSetNotHidden = "Du hast diese Tür nicht mehr versteckt.", + dSetParentDoor = "Du hast diese Tür als Elterntür festgelegt.", + dCanNotSetAsChild = "Du kannst die Elterntür nicht als Kind festlegen.", + dAddChildDoor = "Du hast diese Tür als Kind hinzugefügt.", + dRemoveChildren = "Du hast alle Kinder für diese Tür entfernt.", + dRemoveChildDoor = "Du hast diese Tür als Kind entfernt.", + dNoParentDoor = "Du hast keine Elterntür festgelegt.", + dOwnedBy = "Diese Tür gehƶrt %s.", + dConfigName = "Türen", + dSetFaction = "Diese Tür gehƶrt jetzt zur Fraktion %s.", + dRemoveFaction = "Diese Tür gehƶrt jetzt keiner Fraktion mehr.", + dNotValid = "Du schaust keine gültige Tür an.", + canNotAfford = "Du kannst dir den Kauf dieses Gegenstands nicht leisten.", + dPurchased = "Du hast diese Tür für %s gekauft.", + dSold = "Du hast diese Tür für %s verkauft.", + notOwner = "Du bist nicht der Besitzer davon.", + invalidArg = "Du hast einen ungültigen Wert für das Argument #%s angegeben.", + flagGive = "%s hat %s '%s' Flags gegeben.", + flagGiveTitle = "Flags geben", + flagGiveDesc = "Gib dem Spieler die folgenden Flags.", + flagTake = "%s hat '%s' Flags von %s genommen.", + flagTakeTitle = "Flags entfernen", + flagTakeDesc = "Nimm dem Spieler die folgenden Flags weg.", + flagNoMatch = "Du musst \"%s\" Flag(s) haben, um diese Aktion auszuführen.", + textAdded = "Du hast einen Text hinzugefügt.", + textRemoved = "Du hast %s Text(e) entfernt.", + moneyTaken = "Du hast %s gefunden.", + businessPurchase = "Du hast %s für %s gekauft.", + businessSell = "Du hast %s für %s verkauft.", + cChangeModel = "%s hat %s Modell zu %s geƤndert.", + cChangeName = "%s hat %s Namen zu %s geƤndert.", + cChangeSkin = "%s hat %s Skin zu %s geƤndert.", + cChangeGroups = "%s hat %s \"%s\" Bodygroup zu %s geƤndert.", + cChangeFaction = "%s hat %s zur Fraktion %s transferiert.", + playerCharBelonging = "Dieses Objekt gehƶrt deinem anderen Charakter.", + business = "GeschƤft", + invalidFaction = "Du hast eine ungültige Fraktion angegeben.", + limitFaction = "Diese Fraktion ist voll. Versuche es spƤter erneut.", + spawnAdd = "Du hast einen Spawnpunkt für %s hinzugefügt.", + spawnDeleted = "Du hast %s Spawnpunkt(e) entfernt.", + someone = "Jemand", + rgnLookingAt = "Erlaube der Person, die du ansiehst, dich zu erkennen.", + rgnWhisper = "Erlaube denen in FlüsternƤhe, dich zu erkennen.", + rgnTalk = "Erlaube denen in SprechnƤhe, dich zu erkennen.", + rgnYell = "Erlaube denen in Schreiweite, dich zu erkennen.", + icFormat = "%s sagt \"%s\"", + rollFormat = "%s hat %s geworfen.", + wFormat = "%s flüstert \"%s\"", + yFormat = "%s schreit \"%s\"", + sbOptions = "Klicke, um Optionen für %s zu sehen.", + spawnAdded = "Du hast einen Spawnpunkt für %s hinzugefügt.", + whitelist = "%s hat %s für die Fraktion %s auf die Whitelist gesetzt.", + unwhitelist = "%s hat %s von der Whitelist der Fraktion %s entfernt.", + gettingUp = "Du stehst jetzt auf...", + wakingUp = "Du kommst langsam wieder zu Bewusstsein...", + Weapons = "Waffen", + checkout = "Zur Kasse gehen (%s)", + purchase = "Kaufen", + purchasing = "Kaufe...", + success = "Erfolg", + buyFailed = "Kauf fehlgeschlagen.", + buyGood = "Kauf erfolgreich!", + shipment = "Lieferung", + shipmentDesc = "Diese Lieferung gehƶrt zu %s.", + class = "Klasse", + classes = "Klassen", + illegalAccess = "Illegale Zugriffe.", + becomeClassFail = "Fehler beim Wechsel zu %s.", + becomeClass = "Du bist jetzt %s.", + attribSet = "Du hast %s's %s auf %s gesetzt.", + attribUpdate = "Du hast %s's %s um %s erhƶht.", + noFit = "Dieser Gegenstand passt nicht in dein Inventar.", + help = "Hilfe", + commands = "Befehle", + helpDefault = "WƤhle eine Kategorie", + doorSettings = "Tür-Einstellungen", + sell = "Verkaufen", + access = "Zugriff", + locking = "Sperre dieses Objekt...", + unlocking = "Entsperre dieses Objekt...", + modelNoSeq = "Dein Modell unterstützt diese Aktion nicht.", + notNow = "Du darfst das gerade nicht tun.", + faceWall = "Du musst zur Wand schauen, um dies zu tun.", + faceWallBack = "Dein Rücken muss zur Wand zeigen, um dies zu tun.", + descChanged = "Du hast die Beschreibung deines Charakters geƤndert.", + charMoney = "Du hast derzeit %s.", + charFaction = "Du bist Mitglied der Fraktion %s.", + charClass = "Du bist %s der Fraktion.", + noSpace = "Inventar ist voll.", + noOwner = "Der Besitzer ist ungültig.", + notAllowed = "Diese Aktion ist nicht erlaubt.", + invalidIndex = "Der Gegenstandsindex ist ungültig.", + invalidItem = "Das Gegenstandsobjekt ist ungültig.", + invalidInventory = "Das Inventarobjekt ist ungültig.", + home = "Zuhause", + charKick = "%s hat Charakter %s gekickt.", + charBan = "%s hat den Charakter %s gebannt.", + charBanned = "Dieser Charakter ist gebannt.", + setMoney = "Du hast %s's Geld auf %s gesetzt.", + itemPriceInfo = "Du kannst diesen Gegenstand für %s kaufen.\nDu kannst diesen Gegenstand für %s verkaufen", + free = "Kostenlos", + vendorNoSellItems = "Es gibt keine GegenstƤnde zum Verkauf.", + vendorNoBuyItems = "Es gibt keine GegenstƤnde zum Kauf.", + vendorSettings = "VerkƤufer-Einstellungen", + vendorUseMoney = "Soll der VerkƤufer Geld verwenden?", + vendorNoBubble = "VerkƤufer-Bubble ausblenden?", + mode = "Modus", + price = "Preis", + stock = "Lagerbestand", + none = "Keine", + vendorBoth = "Kaufen und Verkaufen", + vendorBuy = "Nur Kaufen", + vendorSell = "Nur Verkaufen", + maxStock = "Maximaler Lagerbestand", + vendorFaction = "Fraktions-Editor", + buy = "Kaufen", + vendorWelcome = "Willkommen in meinem GeschƤft, was kann ich für dich tun?", + vendorBye = "Komm bald wieder!", + charSearching = "Du suchst bereits nach einem anderen Charakter, bitte warte.", + charUnBan = "%s hat den Charakter %s entbannt.", + charNotBanned = "Dieser Charakter ist nicht gebannt.", + storPass = "Du hast das Passwort für diesen Speicher auf %s gesetzt.", + storPassRmv = "Du hast das Passwort für diesen Speicher entfernt.", + storPassWrite = "Gib das Passwort ein.", + wrongPassword = "Du hast ein falsches Passwort eingegeben.", + cheapBlur = "UnschƤrfe deaktivieren? (Erhƶht FPS)", + quickSettings = "Schnelleinstellungen", + vmSet = "Du hast deine Voicemail festgelegt.", + vmRem = "Du hast deine Voicemail entfernt.", + altLower = "HƤnde verstecken, wenn sie gesenkt sind?", + noPerm = "Du darfst das nicht tun.", + youreDead = "Du bist tot", + injMajor = "Scheint schwer verletzt zu sein.", + injLittle = "Scheint verletzt zu sein", + toggleObserverTP = "Beobachter-Teleport umschalten", + toggleESP = "Admin ESP umschalten", + toggleESPAdvanced = "ESP Erweiterter Modus", + chgName = "Namen Ƥndern", + chgNameDesc = "Gib den neuen Namen des Charakters unten ein.", + thirdpersonToggle = "Dritte Person umschalten", + thirdpersonClassic = "Klassische dritte Person verwenden", + thirdpersonConfig = "Dritte Person Konfiguration", + equippedBag = "Ausgerüstete GegenstƤnde kƶnnen nicht zwischen Inventaren verschoben werden.", + useTip = "Verwendet den Gegenstand.", + equipTip = "Rüstet den Gegenstand aus.", + unequipTip = "Rüstet den Gegenstand ab.", + consumables = "Verbrauchsgüter", + plyNotValid = "Du schaust keinen gültigen Spieler an.", + restricted = "Du wurdest eingeschrƤnkt.", + viewProfile = "Steam-Profil anzeigen", + salary = "Du hast %s von deinem Gehalt erhalten.", + noRecog = "Du erkennst diese Person nicht.", + curTime = "Die aktuelle Zeit ist %s.", + vendorEditor = "VerkƤufer-Editor", + edit = "Bearbeiten", + disable = "Deaktivieren", + vendorPriceReq = "Gib den neuen Preis für diesen Gegenstand ein.", + vendorEditCurStock = "Aktuellen Lagerbestand bearbeiten", + you = "Du", + vendorSellScale = "Verkaufspreisskala", + vendorNoTrade = "Du kannst nicht mit diesem VerkƤufer handeln.", + vendorNoMoney = "Dieser VerkƤufer kann sich diesen Gegenstand nicht leisten.", + vendorNoStock = "Dieser VerkƤufer hat diesen Gegenstand nicht auf Lager.", + contentTitle = "NutScript Inhalt fehlt", + contentWarning = "Du hast den NutScript Inhalt nicht installiert. Dies kann dazu führen, dass bestimmte Funktionen fehlen.\nDie Adresse des Nutscript-Inhalts wurde zu rebel1324 geƤndert.\nMƶchtest du die Workshop-Seite für den NutScript-Inhalt ƶffnen?", + flags = "Flags", + chooseTip = "WƤhle diesen Charakter zum Spielen.", + deleteTip = "Lƶsche diesen Charakter.", + moneyLeft = "Dein Geld: ", + currentMoney = "Verbleibendes Geld: ", + -- 2018 patch + ammoLoadAll = "Alle laden", + ammoLoadAmount = "%s laden", + ammoLoadCustom = "Laden...", + split = "Teilen", + splitHelp = "Gib eine Zahl zum Teilen ein.", + splitHalf = "HƤlfte teilen", + splitQuarter = "Viertel teilen", + recognize = "Erlaube diesem Charakter, dich zu erkennen.", + recognized = "Du hast diesem Charakter deine IdentitƤt gegeben.", + already_recognized = "Dieser Charakter kennt dich bereits.", + isTied = "Diese Person wurde gefesselt.", + tying = "Binden", + untying = "Entfesseln", + beingUntied = "Du wirst entfesselt.", + beingTied = "Du wirst gefesselt.", + sameOutfitCategory = "Du trƤgst bereits diese Art von Kleidung.", + noBusiness = "Du darfst gerade nichts kaufen.", + panelRemoved = "Du hast %s 3D-Panels entfernt.", + panelAdded = "Du hast ein 3D-Panel hinzugefügt.", + itemOnGround = "Dein Gegenstand wurde auf den Boden gelegt.", + forbiddenActionStorage = "Du kannst diese Aktion nicht mit gelagertem Gegenstand durchführen.", + cantDropBagHasEquipped = "Du kannst die Tasche nicht ablegen, solange ein ausgerüsteter Gegenstand darin ist.", + -- 2021 patch + lookToUseAt = "Du musst jemanden anschauen, um '@' zu verwenden.", + mustProvideString = "Du musst eine Zeichenfolge für die Variable angeben", + -- 2023 patch + togglePluginsDesc = "AusgewƤhlte Plugins werden deaktiviert.\nDie Karte muss nach den Ƅnderungen neu gestartet werden!", +} diff --git a/gamemode/languages/sh_korean.lua b/gamemode/languages/sh_korean.lua index 0174f454..f3a10035 100644 --- a/gamemode/languages/sh_korean.lua +++ b/gamemode/languages/sh_korean.lua @@ -1,256 +1,273 @@ NAME = "ķ•œźµ­ģ–“" LANGUAGE = { - loading = "ė¶ˆėŸ¬ģ˜¤ėŠ” 중", - dbError = "DB ģ„œė²„ ģ—°ź²° ģ‹¤ķŒØ", - unknown = "ģ•Œ 수 ģ—†ģŒ", - noDesc = "정볓가 ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - create = "ģƒģ„±", - createTip = "새딜욓 캐릭터넼 ģƒģ„±ķ•©ė‹ˆė‹¤.", - load = "ź³„ģ†", - loadTip = "ķ”Œė ˆģ“ķ•  캐릭터넼 ė¶ˆėŸ¬ģ˜µė‹ˆė‹¤.", - leave = "ģ¢…ė£Œ", - leaveTip = "ģ„œė²„ģ—ģ„œ ķ‡“ģž„ķ•©ė‹ˆė‹¤.", - ["return"] = "ė’¤ė”œ", - returnTip = "ģ“ģ „ ė©”ė‰“ė”œ ėŒģ•„ź°‘ė‹ˆė‹¤.", - name = "ģ“ė¦„", - desc = "정볓", - model = "외꓀", - attribs = "늄렄", - charCreateTip = "ė¹ˆģ¹øė“¤ģ„ ģ±„ģš°ź³  ģ•„ėž˜ 'ģ™„ė£Œ' ė²„ķŠ¼ģ„ 눌러 캐릭터넼 ģƒģ„±ķ•˜ģ‹­ģ‹œģ˜¤.", - invalid = "ė‹¤ģŒ 정볓가 ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤: %s", - descMinLen = "ģ •ė³“ėŠ” ģ ģ–“ė„ %d ģž ģ“ģƒģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤.", - model = "외꓀", - player = "ķ”Œė ˆģ“ģ–“", - finish = "ģ™„ė£Œ", - finishTip = "캐릭터 ģƒģ„±ģ„ ģ™„ė£Œķ•©ė‹ˆė‹¤.", - needModel = "ģ˜¬ė°”ė„ø ģ™øź“€ģ„ ģ„ ķƒķ•˜ģ—¬ģ•¼ ķ•©ė‹ˆė‹¤.", - creating = "캐릭터넼 ģƒģ„±ģ¤‘ģž…ė‹ˆė‹¤...", - unknownError = "ģ˜¤ė„˜ź°€ ė°œģƒķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - delConfirm = "%s ģ˜źµ¬ķžˆ ģ™„ģ „ķžˆ ģ‚­ģ œķ•©ė‹ˆź¹Œ?", - no = "ģ•„ė‹ˆģ˜¤", - yes = "예", - itemInfo = "ģ“ė¦„: %s\n정볓: %s", - cloud_no_repo = "ķ“ė¼ģš°ė“œ ź²½ė”œź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - cloud_no_plugin = "ķ“ė¼ģš°ė“œ 추가 źø°ėŠ„ģ“ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - inv = "ģøė²¤ķ† ė¦¬", - plugins = "추가 기늄", - author = "ģ œģž‘ģž", - version = "버전", - characters = "캐릭터", - business = "사업", - settings = "설정", - config = "설정", - chat = "ėŒ€ķ™”", - appearance = "외꓀", - misc = "źø°ķƒ€", - oocDelay = "%s 쓈넼 ė” 기다려야 OOC ėŒ€ķ™”ź°€ ź°€ėŠ„ķ•©ė‹ˆė‹¤.", - loocDelay = "%s 쓈넼 ė” 기다려야 LOOC ėŒ€ķ™”ź°€ ź°€ėŠ„ķ•©ė‹ˆė‹¤.", - usingChar = "ģ“ėÆø ģ“ ģŗė¦­ķ„°ė”œ ģ„œė²„ģ—ģ„œ ķ”Œė ˆģ“ķ•˜ź³  ģžˆģŠµė‹ˆė‹¤.", - notAllowed = "ė‹¹ģ‹ ģ€ ģ“ź²ƒģ„ ķ•  ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤.", - itemNoExist = "ė‹¹ģ‹ ģ“ ģš”ģ²­ķ•œ ģ•„ģ“ķ…œģ€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - cmdNoExist = "ė‹¹ģ‹ ģ“ ģš”ģ²­ķ•œ ėŖ…ė ¹ģ€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - plyNoExist = "ź·ø ģ“ė¦„ģ„ 가진 ķ”Œė ˆģ“ģ–“ė„¼ ź²€ģƒ‰ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", - cfgSet = "%s ė‹˜ģ“ \"%s\" 넼 %s 으딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - drop = "버리기", - dropTip = "ģ•„ģ“ķ…œģ„ ģ†Œģ§€ķ’ˆģ—ģ„œ ģ œģ™øģ‹œķ‚µė‹ˆė‹¤.", - take = "가지기", - takeTip = "ģ•„ģ“ķ…œģ„ ģ†Œģ§€ķ’ˆģ— ģ¶”ź°€ģ‹œķ‚µė‹ˆė‹¤.", - dTitle = "ģ†Œģœ ė˜ģ§€ ģ•Šģ€ 문", - dTitleOwned = "ģ†Œģœ ėœ 문", - dIsNotOwnable = "ģ“ ė¬øģ€ ģ†Œģœ ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", - dIsOwnable = "F2넼 ėˆŒėŸ¬ģ„œ ģ“ ė¬øģ„ ģ†Œģœ ķ•  수 ģžˆģŠµė‹ˆė‹¤.", - dMadeUnownable = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ģ†Œģœ ķ•  수 ģ—†ė„ė” ģ„¤ģ •ķ–ˆģŠµė‹ˆė‹¤.", - dMadeOwnable = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ģ„ ģ†Œģœ ķ•  수 ģžˆė„ė” ģ„¤ģ •ķ–ˆģŠµė‹ˆė‹¤.", - dNotAllowedToOwn = "ģ“ ė¬øģ„ ģ†Œģœ ķ•˜ė„ė” ķ—ˆź°€ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - dSetDisabled = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ˜ źø°ėŠ„ģ„ ź»ģŠµė‹ˆė‹¤.", - dSetNotDisabled = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ˜ źø°ėŠ„ģ„ ė‹¤ģ‹œ ģ¼°ģŠµė‹ˆė‹¤.", - dSetHidden = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ģˆØź²¼ģŠµė‹ˆė‹¤.", - dSetNotHidden = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ģˆØź¹€ ķ•“ģ œķ–ˆģŠµė‹ˆė‹¤.", - dSetParentDoor = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ģƒģœ„ 개첓딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - dCanNotSetAsChild = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ķ•˜ģœ„ 개첓딜 설정할 수 ģ—†ģŠµė‹ˆė‹¤.", - dAddChildDoor = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ķ•˜ģœ„ 개첓딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - dRemoveChildren = "ė‹¹ģ‹ ģ€ ģ“ 문에 ķ• ė‹¹ėœ ėŖØė“  ķ•˜ģœ„ 개첓넼 ģ‚­ģ œķ–ˆģŠµė‹ˆė‹¤.", - dRemoveChildDoor = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ķ•˜ģœ„ ź°œģ²“ģ—ģ„œ ģ‚­ģ œķ–ˆģŠµė‹ˆė‹¤.", - dNoParentDoor = "ģƒģœ„ ź°œģ²“ģø ė¬øģ“ ģ—†ģŠµė‹ˆė‹¤.", - dOwnedBy = "ģ“ ė¬øģ€ %s ė‹˜ģ˜ ģ†Œģœ ģž…ė‹ˆė‹¤.", - dConfigName = "문", - dSetFaction = "ģ“ ė¬øģ€ ģ“ģ œ %s 단첓에 ģ†ķ•˜ź²Œ ė©ė‹ˆė‹¤.", - dRemoveFaction = "ģ“ ė¬øģ€ ģ“ģ œ ģ–“ėŠ ė‹Øģ²“ģ—ė„ ģ†ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - dNotValid = "ģœ ķšØķ•œ ė¬øģ„ ė°”ė¼ė³“ź³  ģžˆģ–“ģ•¼ ķ•©ė‹ˆė‹¤.", - canNotAfford = "ģ“ ė¬øģ„ 구매할 ģ¶©ė¶„ķ•œ ģžźøˆģ„ 가지고 ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - dPurchased = "ģ“ ė¬øģ„ %s으딜 źµ¬ė§¤ķ–ˆģŠµė‹ˆė‹¤.", - dSold = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ %s으딜 ķŒė§¤ķ–ˆģŠµė‹ˆė‹¤.", - notOwner = "ė‹¹ģ‹ ģ€ ģ“ ė¬øģ„ ģ†Œģœ ķ•˜ź³  ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - invalidArg = "#%s 번째 ėŖ…ė ¹ ė³€ģˆ˜ģ— ģ˜¬ė°”ė„ø ź°’ģ„ ģž…ė „ķ•“ģ•¼ ķ•©ė‹ˆė‹¤.", - invalidFaction = "ģ œģ‹œėœ ģ“ė¦„ģœ¼ė”œ 된 단첓넼 ģ°¾ģ„ 수 ģ—†ģŠµė‹ˆė‹¤.", - flagGive = "%s ė‹˜ģ“ %s ė‹˜ģ—ź²Œ '%s' ź¶Œķ•œģ„ ģ£¼ģ—ˆģŠµė‹ˆė‹¤.", - flagGiveTitle = "ź¶Œķ•œ 주기", - flagGiveDesc = "ģ“ ź¶Œķ•œė“¤ģ„ ķ”Œė ˆģ“ģ–“ģ—ź²Œ ģ¤ė‹ˆė‹¤.", - flagTake = "%s ė‹˜ģ“ '%s' ź¶Œķ•œģ„ %s ė‹˜ģœ¼ė”œ 부터 ė°›ģ•˜ģŠµė‹ˆė‹¤.", - flagTakeTitle = "ķ”Œėž˜ź·ø 가지기.", - flagTakeDesc = "ģ“ ź¶Œķ•œė“¤ģ„ ķ”Œė ˆģ“ģ–“ģ—ź²Œģ„œ ėŗģŠµė‹ˆė‹¤.", - flagNoMatch = "ģ“ ķ–‰ė™ģ€ \"%s\" ź¶Œķ•œģ„ ķ•„ģš”ė”œ ķ•©ė‹ˆė‹¤.", - textAdded = "ķ…ģŠ¤ķŠøė„¼ ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - textRemoved = "%sź°œģ˜ ķƒģŠ¤ķŠøė„¼ ģ‚­ģ œķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - moneyTaken = "%s 발견.", - businessPurchase = "ė‹¹ģ‹ ģ€ %s ģ„/넼 %s에 źµ¬ė§¤ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - businessSell = "ė‹¹ģ‹ ģ€ %s ģ„/넼 %s에 ķŒė§¤ķ–ˆģŠµė‹ˆė‹¤.", - cChangeModel = "%sė‹˜ģ“ %sė‹˜ģ˜ ģ™øź“€ģ„ źµģ²“ķ–ˆģŠµė‹ˆė‹¤: %s.", - cChangeName = "%sė‹˜ģ“ %sė‹˜ģ˜ ģ“ė¦„ģ„ źµģ²“ķ–ˆģŠµė‹ˆė‹¤: %s.", - cChangeSkin = "%s ź°€ %s's ģ˜ ģŠ¤ķ‚Øģ„ %s 딜 ė°”ź¾øģ—ˆģŠµė‹ˆė‹¤.", - cChangeGroups = "%s ź°€ %s ģ˜ \"%s\" ė°”ė””ź·øė£¹ģ„ %s 딜 ė°”ź¾øģ—ˆģŠµė‹ˆė‹¤.", - cChangeFaction = "%s ėŠ” %s 넼 %s ķŒ©ģ…˜ģœ¼ė”œ ģ“ė™ģ‹œģ¼°ģŠµė‹ˆė‹¤.", - playerCharBelonging = "ģ“ ė¬¼ź±“ģ€ ė‹¹ģ‹ ģ˜ 다넸 ģŗė¦­ķ„°ģ˜ ė¬¼ź±“ģž…ė‹ˆė‹¤.", - business = "사업", - invalidFaction = "ė‹¹ģ‹ ģ€ ģž˜ėŖ»ėœ 단첓넼 ģ°øģ”°ķ–ˆģŠµė‹ˆė‹¤.", - spawnAdd = "%s ź°œģ˜ ģ‹œģž‘ģ§€ģ ģ„ ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - spawnDeleted = "%sź°œģ˜ ģ‹œģž‘ģ§€ģ ģ„ ģ‚­ģ œķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - someone = "ėˆ„źµ°ź°€", - rgnLookingAt = "ė‹¹ģ‹ ģ“ 볓고 ģžˆėŠ” ģ‚¬ėžŒģ“ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ė„ė” ģ„ ģ–ø.", - rgnWhisper = "ź·“ģ†ė§ 거리에 ģžˆėŠ” ģ‚¬ėžŒģ„ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ė„ė” ģ„ ģ–ø", - rgnTalk = "ģ¼ė°˜ ėŒ€ķ™” 거리에 ģžˆėŠ” ģ‚¬ėžŒģ„ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ė„ė” ģ„ ģ–ø", - rgnYell = "외침 ėŒ€ķ™” 거리에 ģžˆėŠ” ģ‚¬ėžŒģ„ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ė„ė” ģ„ ģ–ø", - icFormat = "%s: \"%s\"", - rollFormat = "%sė‹˜ģ“ ģ£¼ģ‚¬ģœ„ė„¼ źµ“ė øģŠµė‹ˆė‹¤: %s.", - wFormat = "%s(ź·“ģ†ė§): \"%s\"", - yFormat = "%s(외침): \"%s\"", - sbOptions = "%sė‹˜ģ— ėŒ€ķ•œ ģ„ ķƒģ§€ė„¼ 볓려멓 ķ“ė¦­ķ•˜ģ‹­ģ‹œģ˜¤.", - spawnAdded = "%s 단첓넼 ģœ„ķ•œ ģ‹œģž‘ ģ§€ģ ģ“ ģ¶”ź°€ė˜ģ—ˆģŠµė‹ˆė‹¤.", - whitelist = "%sė‹˜ģ“ %sė‹˜ģ„ %s 단첓에 ė“¤ģ–“ź°€ė„ė” ķ—ˆź°€ķ–ˆģŠµė‹ˆė‹¤.", - unwhitelist = "%sė‹˜ģ“ %sė‹˜ģ„ %s 단첓에 ė“¤ģ–“ź°€ėŠ” ź²ƒģ„ źøˆģ§€ķ–ˆģŠµė‹ˆė‹¤.", - gettingUp = "ėŖøģ„ ģ¼ģœ¼ķ‚¤ėŠ” ģ¤‘ģž…ė‹ˆė‹¤...", - wakingUp = "ģ •ģ‹ ģ„ ģ°Øė¦¬ėŠ” ģ¤‘ģž…ė‹ˆė‹¤...", - Weapons = "묓기", - checkout = "물걓 결제 (%s)", - purchase = "구매", - purchasing = "결제 진행중...", - success = "성공", - buyFailed = "결제 ģ‹¤ķŒØ.", - buyGood = "ź²°ģ œź°€ ģ™„ė£Œė˜ģ—ˆģŠµė‹ˆė‹¤!", - shipment = "ģ†Œģœ ė¬¼", - shipmentDesc = "ģ“ ģ†Œģœ ė¬¼ģ€ %sė‹˜ģ˜ ėŖ…ģ˜ė”œ ė˜ģ–“ģžˆģŠµė‹ˆė‹¤.", - class = "직업", - classes = "직업", - illegalAccess = "ģž˜ėŖ»ėœ ģ ‘ź·¼ģž…ė‹ˆė‹¤.", - becomeClassFail = "%sģ“/ź°€ ė˜ėŠ” ź²ƒģ— ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤.", - becomeClass = "%sģ“/ź°€ ė˜ģ—ˆģŠµė‹ˆė‹¤.", - attribSet = "ė‹¹ģ‹ ģ€ %sė‹˜ģ˜ %sģ„/넼 %s딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - attribUpdate = "ė‹¹ģ‹ ģ€ %sė‹˜ģ˜ %sģ„/넼 %s만큼 ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - noFit = "ģ†Œģ§€ķ’ˆ ź³µź°„ģ“ ė¶€ģ”±ķ•©ė‹ˆė‹¤.", - help = "ė„ģ›€ė§", - commands = "명령얓", - helpDefault = "ėŖ©ģ°Ø ģ„ ķƒ", - doorSettings = "문 설정", - sell = "판매", - access = "ģ ‘ź·¼", - locking = "ģ“ ė¬¼ź±“ģ„ ģž ź·øėŠ” ģ¤‘ģž…ė‹ˆė‹¤...", - unlocking = "ģ“ ė¬¼ź±“ģ„ ģ—¬ėŠ” ģ¤‘ģž…ė‹ˆė‹¤...", - modelNoSeq = "ė‹¹ģ‹ ģ˜ ģ™øź“€ģ€ ģ“ ķ–‰ė™ģ„ ģ§€ģ›ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - notNow = "ė‹¹ģ‹ ģ€ 아직 ģ“ ķ–‰ė™ģ„ ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", - faceWall = "ģ“ ķ–‰ė™ģ„ ģœ„ķ•“ģ„  ė²½ģ„ ė°”ė¼ė³“ź³  ģžˆģ–“ģ•¼ ķ•©ė‹ˆė‹¤.", - faceWallBack = "ģ“ ķ–‰ė™ģ„ ģœ„ķ•“ģ„  ė²½ģ„ 등지고 ģžˆģ–“ģ•¼ ķ•©ė‹ˆė‹¤.", - descChanged = "ė‹¹ģ‹ ģ˜ ģŗė¦­ķ„°ģ˜ 정볓넼 ė³€ź²½ķ–ˆģŠµė‹ˆė‹¤.", - charMoney = "ė‹¹ģ‹ ģ˜ ģ†Œģ§€źøˆģ€ %s ģž…ė‹ˆė‹¤.", - charFaction = "ė‹¹ģ‹ ģ€ %s 단첓에 ģ†Œģ†ė˜ģ–“ ģžˆģŠµė‹ˆė‹¤.", - charClass = "ė‹¹ģ‹ ģ€ ģ“ ė‹Øģ²“ģ˜ %s ģž…ė‹ˆė‹¤.", - noSpace = "ģ†Œģ§€ķ’ˆģ“ ź°€ė“ ģ°¼ģŠµė‹ˆė‹¤.", - noOwner = "ģ†Œģœ ģžź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - notAllowed = "ģ“ ķ–‰ė™ģ„ ķ—ˆź°€ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - invalidIndex = "ģ•„ģ“ķ…œģ˜ 구분 ė²ˆķ˜øź°€ ģ˜¬ė°”ė„“ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", - invalidItem = "ģ•„ģ“ķ…œ ź°ģ²“ ģ°øģ”°ź°€ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤.", - invalidInventory = "ģ†Œģ§€ķ’ˆ ź°ģ²“ ģ°øģ”°ź°€ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤.", - home = "쓈기", - charKick = "%sė‹˜ģ“ %sė‹˜ģ˜ 캐릭터넼 ģ¶”ė°©ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - charBan = "%sė‹˜ģ“ %sė‹˜ģ˜ 캐릭터넼 ģ˜źµ¬ķžˆ ģ¶”ė°©ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - charBanned = "ģ“ ģŗė¦­ķ„°ėŠ” ģ‚¬ģš©ģ“ źøˆģ§€ė˜ģ—ˆģŠµė‹ˆė‹¤.", - setMoney = "ė‹¹ģ‹ ģ€ %sė‹˜ģ˜ ėˆģ„ %s으딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - itemPriceInfo = "ģ“ ģ•„ģ“ķ…œģ„ %s에 구매가 ź°€ėŠ„ķ•©ė‹ˆė‹¤.\nģ“ ģ•„ģ“ķ…œģ„ %s에 ķŒė§¤ź°€ ź°€ėŠ„ķ•©ė‹ˆė‹¤", - free = "묓료", - vendorNoSellItems = "ķŒė§¤ķ•  ģ•„ģ“ķ…œģ“ ģ—†ģŠµė‹ˆė‹¤.", - vendorNoBuyItems = "구매할 ģ•„ģ“ķ…œģ“ ģ—†ģŠµė‹ˆė‹¤.", - vendorSettings = "ģƒģø 설정", - vendorUseMoney = "ģƒģøģ— ģ œķ•œėœ ėˆ", - vendorNoBubble = "ė§ķ’ģ„  ė³“ģ“źø°", - mode = "상태", - price = "가격", - stock = "ģž¬ź³ ", - none = "ģ—†ģŒ", - vendorBoth = "ķŒė§¤ģ™€ 구매", - vendorBuy = "구매 ģ „ģš©", - vendorSell = "판매 ģ „ģš©", - maxStock = "ģµœėŒ€ ģž¬ź³ ", - vendorFaction = "ķŒ©ģ…˜ 에디터", - buy = "구매", - vendorWelcome = "ģ–“ģ„œģ˜¤ģ„øģš”. ė¬“ģ—‡ģ„ ģ°¾ģœ¼ģ‹­ė‹ˆź¹Œ?", - vendorBye = "ė‹¤ģŒģ— 또 ģ˜¤ģ„øģš”!", - charSearching = "ģ“ėÆø 캐릭터넼 ģˆ˜ģƒ‰ķ•˜ź³  ģžˆģŠµė‹ˆė‹¤.", - charUnBan = "%s ė‹˜ģ“ ė‹¤ģŒ 캐릭터넼 źøˆģ§€ ķ•“ģ œķ–ˆģŠµė‹ˆė‹¤: %s.", - charNotBanned = "ģ“ ģŗė¦­ķ„°ėŠ” źøˆģ§€ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - storPass = "ģ“ ė³“ź“€ķ•Øģ˜ ģ•”ķ˜øė„¼ %s 으딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", - storPassRmv = "ģ“ ė³“ź“€ķ•Øģ˜ ģ•”ķ˜øė„¼ ģ‚­ģ œķ–ˆģŠµė‹ˆė‹¤.", - storPassWrite = "ģ•”ķ˜øė„¼ ģž…ė „ķ•“ ģ£¼ģ‹­ģ‹œģ˜¤.", - wrongPassword = "ģ•”ķ˜øź°€ ė‹¤ė¦…ė‹ˆė‹¤.", - cheapBlur = "ėø”ėŸ¬ 효과 ģ‚¬ģš© (FPS ķ–„ģƒ)", - quickSettings = "빠넸 설정", - vmSet = "ź°œģø ź·“ģ†ė§ģ„ ģ„¤ģ •ķ–ˆģŠµė‹ˆė‹¤.", - vmRem = "ź°œģø ź·“ģ†ė§ģ„ ģ‚­ģ œķ–ˆģŠµė‹ˆė‹¤.", - altLower = "주먹 ėÆøģ‚¬ģš©ģ‹œ ģˆØź¹€", - noPerm = "ģ“ ķ–‰ģœ„ė„¼ ķ•  ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤.", - youreDead = "ė‹¹ģ‹ ģ€ ģ£½ģ—ˆģŠµė‹ˆė‹¤", - injMajor = "ģ¤‘ģƒģ„ ģž…ģŒ.", - injLittle = "ė¶€ģƒģ„ ģž…ģŒ.", - toggleESP = "ģ–“ė“œėÆ¼ 월핵 ģ‚¬ģš©", - chgName = "ģ“ė¦„ 변경", - chgNameDesc = "ģ•„ėž˜ģ— ģŗė¦­ķ„°ģ˜ 새딜욓 ģ“ė¦„ģ„ ģž…ė „ķ•˜ģ„øģš”.", - thirdpersonToggle = "3ģøģ¹­ ģ‚¬ģš©", - thirdpersonClassic = "ķ“ėž˜ģ‹ 3ģøģ¹­ ģ‚¬ģš©", - equippedBag = "가방 낓부에 ģ‚¬ģš©ģ¤‘ģø ģ•„ģ“ķ…œģ“ ģžˆģŠµė‹ˆė‹¤.", - useTip = "ģ“ ģ•„ģ“ķ…œģ„ ģ‚¬ģš©ķ•©ė‹ˆė‹¤.", - equipTip = "ģ“ ģ•„ģ“ķ…œģ„ ģ°©ģš©ķ•©ė‹ˆė‹¤.", - unequipTip = "ģ“ ģ•„ģ“ķ…œģ„ ģ°©ģš©ķ•“ģ œķ•©ė‹ˆė‹¤.", - consumables = "ģ†ŒėŖØķ’ˆ", - plyNotValid = "ė‹¹ģ‹ ģ€ ģž˜ėŖ»ėœ ķ”Œė ˆģ“ģ–“ė„¼ 볓고 ģžˆģŠµė‹ˆė‹¤.", - restricted = "ė‹¹ģ‹ ģ€ ģ €ģ§€ė˜ģ—ˆģŠµė‹ˆė‹¤.", - viewProfile = "ģŠ¤ķŒ€ ķ”„ė”œķ•„ 볓기", - salary = "ė‹¹ģ‹ ģ€ &s ė§Œķ¼ģ˜ ėˆģ„ ė“‰źø‰ģœ¼ė”œ ė°›ģ•˜ģŠµė‹ˆė‹¤.", - noRecog = "ė‹¹ģ‹ ģ€ ģ“ ģ‚¬ėžŒģ„ ģøģ‹ķ•˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", - curTime = "ģ§€źøˆ ģ‹œź°ģ€ %s.", - vendorEditor = "ģƒģø ģˆ˜ģ •", - edit = "ģˆ˜ģ •", - disable = "ķ•“ģ œ", - vendorPriceReq = "ģ“ ė¬¼ķ’ˆģ˜ 새딜욓 ź°€ź²©ģ„ ģ ģœ¼ģ‹­ģ‹œģ˜¤.", - vendorEditCurStock = "ķ˜„ģž¬ ģž¬ź³  ģˆ˜ģ •", - you = "당신", - vendorSellScale = "판매 가격 규모", - vendorNoTrade = "ė‹¹ģ‹ ģ€ ģ“ ģƒģøź³¼ ź±°ėž˜ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", - vendorNoMoney = "ģ“ ģƒģøģ€ 핓당 ė¬¼ķ’ˆģ„ ģ‚¬ė“¤ģ¼ 수 ģ—†ģŠµė‹ˆė‹¤.", - vendorNoStock = "ģ“ ģƒģøģ€ 핓당 ė¬¼ķ’ˆģ˜ ģž¬ź³ ź°€ ģ—†ģŠµė‹ˆė‹¤.", - contentTitle = "NutScript ģ½˜ķ…ģø  ģ—†ģŒ.", - contentWarning = "ė‹¹ģ‹ ģ€ NutScript ģ½˜ķ…ģø ź°€ ģ ģš©ė˜ģ–“ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤. ķŠ¹ģ • źø°ėŠ„ģ“ ėˆ„ė½ė  수 ģžˆģŠµė‹ˆė‹¤.\nNutscipt ģ½˜ķ…ģø ė„¼ ģ ģš©ķ•“ģ•¼ ķ•©ė‹ˆė‹¤.", - flags = "ķ”Œėž˜ź·ø", + LANGUAGE = { + loading = "ė”œė”© 중", + dbError = "ė°ģ“ķ„°ė² ģ“ģŠ¤ ģ—°ź²° ģ‹¤ķŒØ", + unknown = "ģ•Œ 수 ģ—†ģŒ", + noDesc = "설명 ģ—†ģŒ", + create = "ģƒģ„±", + createTip = "새딜욓 캐릭터넼 ģƒģ„±ķ•©ė‹ˆė‹¤.", + load = "불러오기", + loadTip = "ģ“ģ „ģ— ģƒģ„±ķ•œ 캐릭터넼 ģ„ ķƒķ•˜ģ—¬ ķ”Œė ˆģ“ķ•©ė‹ˆė‹¤.", + leave = "ė‚˜ź°€źø°", + leaveTip = "ķ˜„ģž¬ ģ„œė²„ģ—ģ„œ ė‚˜ź°‘ė‹ˆė‹¤.", + ["return"] = "ėŒģ•„ź°€źø°", + returnTip = "ģ“ģ „ ė©”ė‰“ė”œ ėŒģ•„ź°‘ė‹ˆė‹¤.", + name = "ģ“ė¦„", + desc = "설명", + model = "ėŖØėø", + attribs = "ģ†ģ„±", + charCreateTip = "ģ•„ėž˜ ķ•„ė“œė„¼ ģž‘ģ„±ķ•˜ź³  'ģ™„ė£Œ'넼 눌러 캐릭터넼 ģƒģ„±ķ•©ė‹ˆė‹¤.", + invalid = "%s넼 ģž˜ėŖ» ģž…ė „ķ•˜ģ…ØģŠµė‹ˆė‹¤.", + descMinLen = "ģ„¤ėŖ…ģ€ ģµœģ†Œ %dģž ģ“ģƒģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤.", + player = "ķ”Œė ˆģ“ģ–“", + finish = "ģ™„ė£Œ", + finishTip = "캐릭터 ģƒģ„±ģ„ ģ™„ė£Œķ•©ė‹ˆė‹¤.", + needModel = "ģ˜¬ė°”ė„ø ėŖØėøģ„ ģ„ ķƒķ•“ģ•¼ ķ•©ė‹ˆė‹¤.", + creating = "캐릭터 ģƒģ„± 중...", + unknownError = "ģ•Œ 수 ģ—†ėŠ” ģ˜¤ė„˜ź°€ ė°œģƒķ–ˆģŠµė‹ˆė‹¤.", + delConfirm = "%sģ„(넼) 영구적으딜 ģ‚­ģ œķ•˜ģ‹œź² ģŠµė‹ˆź¹Œ?", + no = "ģ•„ė‹ˆģ˜¤", + yes = "예", + itemInfo = "ģ“ė¦„: %s\n설명: %s", + itemCreated = "ģ•„ģ“ķ…œģ„ ģ„±ź³µģ ģœ¼ė”œ ģƒģ„±ķ–ˆģŠµė‹ˆė‹¤.", + cloud_no_repo = "제공된 ģ €ģž„ģ†Œź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + cloud_no_plugin = "제공된 ķ”ŒėŸ¬ź·øģøģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + inv = "ģøė²¤ķ† ė¦¬", + plugins = "ķ”ŒėŸ¬ź·øģø", + togglePlugins = "ķ”ŒėŸ¬ź·øģø ķ™œģ„±ķ™”/ė¹„ķ™œģ„±ķ™”", + author = "ģž‘ģ„±ģž", + version = "버전", + characters = "캐릭터", + settings = "설정", + config = "구성", + chat = "ģ±„ķŒ…", + appearance = "외모", + misc = "źø°ķƒ€", + oocDelay = "OOC넼 ė‹¤ģ‹œ ģ‚¬ģš©ķ•˜ė ¤ė©“ %s 쓈넼 ė” 기다려야 ķ•©ė‹ˆė‹¤.", + loocDelay = "LOOC넼 ė‹¤ģ‹œ ģ‚¬ģš©ķ•˜ė ¤ė©“ %s 쓈넼 ė” 기다려야 ķ•©ė‹ˆė‹¤.", + usingChar = "ģ“ėÆø ģ“ 캐릭터넼 ģ‚¬ģš©ķ•˜ź³  ģžˆģŠµė‹ˆė‹¤.", + itemNoExist = "ģ£„ģ†”ķ•©ė‹ˆė‹¤, ģš”ģ²­ķ•œ ģ•„ģ“ķ…œģ“ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + cmdNoExist = "ģ£„ģ†”ķ•©ė‹ˆė‹¤, 핓당 명령얓가 ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + plyNoExist = "ģ£„ģ†”ķ•©ė‹ˆė‹¤, ģ¼ģ¹˜ķ•˜ėŠ” ķ”Œė ˆģ“ģ–“ė„¼ ģ°¾ģ„ 수 ģ—†ģŠµė‹ˆė‹¤.", + cfgSet = "%sė‹˜ģ“ \"%s\"넼 %s(으)딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + drop = "버리기", + dropTip = "ģøė²¤ķ† ė¦¬ģ—ģ„œ ģ“ ģ•„ģ“ķ…œģ„ ė²„ė¦½ė‹ˆė‹¤.", + take = "가져가기", + takeTip = "ģ“ ģ•„ģ“ķ…œģ„ ź°€ģ øģ™€ģ„œ ģøė²¤ķ† ė¦¬ģ— ė„£ģŠµė‹ˆė‹¤.", + dTitle = "ģ†Œģœ ė˜ģ§€ ģ•Šģ€ 문", + dTitleOwned = "구매된 문", + dIsNotOwnable = "ģ“ ė¬øģ€ ģ†Œģœ ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", + dIsOwnable = "F2넼 눌러 ģ“ ė¬øģ„ 구매할 수 ģžˆģŠµė‹ˆė‹¤.", + dMadeUnownable = "ģ“ ė¬øģ„ ģ†Œģœ ķ•  수 ģ—†ź²Œ ė§Œė“¤ģ—ˆģŠµė‹ˆė‹¤.", + dMadeOwnable = "ģ“ ė¬øģ„ ģ†Œģœ ķ•  수 ģžˆź²Œ ė§Œė“¤ģ—ˆģŠµė‹ˆė‹¤.", + dNotAllowedToOwn = "ģ“ ė¬øģ„ ģ†Œģœ ķ•  ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤.", + dSetDisabled = "ģ“ ė¬øģ„ ė¹„ķ™œģ„±ķ™”ķ–ˆģŠµė‹ˆė‹¤.", + dSetNotDisabled = "ģ“ ė¬øģ„ ė” ģ“ģƒ ė¹„ķ™œģ„±ķ™”ķ•˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", + dSetHidden = "ģ“ ė¬øģ„ ģˆØź¹€ ģ²˜ė¦¬ķ–ˆģŠµė‹ˆė‹¤.", + dSetNotHidden = "ģ“ ė¬øģ„ ė” ģ“ģƒ ģˆØź¹€ ģ²˜ė¦¬ķ•˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", + dSetParentDoor = "ģ“ ė¬øģ„ ģƒģœ„ 문으딜 ģ„¤ģ •ķ–ˆģŠµė‹ˆė‹¤.", + dCanNotSetAsChild = "ģƒģœ„ ė¬øģ„ ķ•˜ģœ„ė”œ 설정할 수 ģ—†ģŠµė‹ˆė‹¤.", + dAddChildDoor = "ģ“ ė¬øģ„ ķ•˜ģœ„ė”œ ģ¶”ź°€ķ–ˆģŠµė‹ˆė‹¤.", + dRemoveChildren = "ģ“ ė¬øģ˜ ėŖØė“  ķ•˜ģœ„ ė¬øģ„ ģ œź±°ķ–ˆģŠµė‹ˆė‹¤.", + dRemoveChildDoor = "ģ“ ė¬øģ„ ķ•˜ģœ„ ė¬øģ—ģ„œ ģ œź±°ķ–ˆģŠµė‹ˆė‹¤.", + dNoParentDoor = "ģƒģœ„ ė¬øģ“ ģ„¤ģ •ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", + dOwnedBy = "ģ“ ė¬øģ€ %s ģ†Œģœ ģž…ė‹ˆė‹¤.", + dConfigName = "문", + dSetFaction = "ģ“ ė¬øģ€ ģ“ģ œ %s ķŒ©ģ…˜ģ— ģ†ķ•©ė‹ˆė‹¤.", + dRemoveFaction = "ģ“ ė¬øģ€ ė” ģ“ģƒ ģ–“ė–¤ ķŒ©ģ…˜ģ—ė„ ģ†ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + dNotValid = "ģœ ķšØķ•œ ė¬øģ„ 볓고 ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + canNotAfford = "ģ“ź²ƒģ„ 구매할 ėˆģ“ ė¶€ģ”±ķ•©ė‹ˆė‹¤.", + dPurchased = "ģ“ ė¬øģ„ %sģ—ź²Œ źµ¬ė§¤ķ–ˆģŠµė‹ˆė‹¤.", + dSold = "ģ“ ė¬øģ„ %sģ—ź²Œ ķŒė§¤ķ–ˆģŠµė‹ˆė‹¤.", + notOwner = "ģ“ź²ƒģ˜ ģ†Œģœ ģžź°€ ģ•„ė‹™ė‹ˆė‹¤.", + invalidArg = "ģøģˆ˜ #%s에 ėŒ€ķ•œ ģž˜ėŖ»ėœ ź°’ģ“ ģ œź³µė˜ģ—ˆģŠµė‹ˆė‹¤.", + flagGive = "%sė‹˜ģ“ %sģ—ź²Œ '%s' ķ”Œėž˜ź·øė„¼ ė¶€ģ—¬ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + flagGiveTitle = "ķ”Œėž˜ź·ø 부여", + flagGiveDesc = "ė‹¤ģŒģ˜ ķ”Œėž˜ź·øė„¼ ķ”Œė ˆģ“ģ–“ģ—ź²Œ ė¶€ģ—¬ķ•©ė‹ˆė‹¤.", + flagTake = "%sė‹˜ģ“ %sė”œė¶€ķ„° '%s' ķ”Œėž˜ź·øė„¼ ģ œź±°ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + flagTakeTitle = "ķ”Œėž˜ź·ø 제거", + flagTakeDesc = "ķ”Œė ˆģ“ģ–“ė”œė¶€ķ„° ė‹¤ģŒģ˜ ķ”Œėž˜ź·øė„¼ ģ œź±°ķ•©ė‹ˆė‹¤.", + flagNoMatch = "ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•˜ė ¤ė©“ \"%s\" ķ”Œėž˜ź·øź°€ ķ•„ģš”ķ•©ė‹ˆė‹¤.", + textAdded = "ķ…ģŠ¤ķŠøė„¼ ģ¶”ź°€ķ–ˆģŠµė‹ˆė‹¤.", + textRemoved = "%sź°œģ˜ ķ…ģŠ¤ķŠøė„¼ ģ œź±°ķ–ˆģŠµė‹ˆė‹¤.", + moneyTaken = "%s넼 ģ°¾ģ•˜ģŠµė‹ˆė‹¤.", + businessPurchase = "%sģ„(넼) %sģ—ź²Œ źµ¬ė§¤ķ–ˆģŠµė‹ˆė‹¤.", + businessSell = "%sģ„(넼) %sģ—ź²Œ ķŒė§¤ķ–ˆģŠµė‹ˆė‹¤.", + cChangeModel = "%sė‹˜ģ“ %sģ˜ ėŖØėøģ„ %s(으)딜 ė³€ź²½ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + cChangeName = "%sė‹˜ģ“ %sģ˜ ģ“ė¦„ģ„ %s(으)딜 ė³€ź²½ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + cChangeSkin = "%sė‹˜ģ“ %sģ˜ ģŠ¤ķ‚Øģ„ %s(으)딜 ė³€ź²½ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + cChangeGroups = "%sė‹˜ģ“ %sģ˜ \"%s\" ė°”ė””ź·øė£¹ģ„ %s(으)딜 ė³€ź²½ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + cChangeFaction = "%sė‹˜ģ“ %sģ„(넼) %s ķŒ©ģ…˜ģœ¼ė”œ ģ“ģ „ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + playerCharBelonging = "ģ“ ė¬¼ź±“ģ€ 다넸 ģŗė¦­ķ„°ģ˜ ģ†Œģœ ė¬¼ģž…ė‹ˆė‹¤.", + business = "ģƒģ—…", + invalidFaction = "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ķŒ©ģ…˜ģ„ ģ œź³µķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + limitFaction = "ģ“ ķŒ©ģ…˜ģ€ ź°€ė“ ģ°¼ģŠµė‹ˆė‹¤. ė‚˜ģ¤‘ģ— ė‹¤ģ‹œ ģ‹œė„ķ•˜ģ„øģš”.", + spawnAdd = "%s ģŠ¤ķ° ģ§€ģ ģ„ ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + spawnDeleted = "%s ģŠ¤ķ° ģ§€ģ ģ„ ģ‚­ģ œķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + someone = "ėˆ„źµ°ź°€", + rgnLookingAt = "ė‹¹ģ‹ ģ„ 볓고 ģžˆėŠ” ģ‚¬ėžŒģ—ź²Œ ģøģ‹ė˜ė„ė” ķ—ˆģš©ķ•©ė‹ˆė‹¤.", + rgnWhisper = "ģ†ģ‚­ģž„ ė²”ģœ„ģ˜ ģ‚¬ėžŒģ—ź²Œ ģøģ‹ė˜ė„ė” ķ—ˆģš©ķ•©ė‹ˆė‹¤.", + rgnTalk = "말 ė²”ģœ„ģ˜ ģ‚¬ėžŒģ—ź²Œ ģøģ‹ė˜ė„ė” ķ—ˆģš©ķ•©ė‹ˆė‹¤.", + rgnYell = "외침 ė²”ģœ„ģ˜ ģ‚¬ėžŒģ—ź²Œ ģøģ‹ė˜ė„ė” ķ—ˆģš©ķ•©ė‹ˆė‹¤.", + icFormat = "%sė‹˜ģ“ \"%s\"(ģ„)넼 ė§ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + rollFormat = "%sė‹˜ģ“ %s(ģ„)넼 źµ“ė øģŠµė‹ˆė‹¤.", + wFormat = "%sė‹˜ģ“ ģ†ģ‚­ģž„: \"%s\"", + yFormat = "%sė‹˜ģ“ 외침: \"%s\"", + sbOptions = "%sģ˜ ģ˜µģ…˜ģ„ 볓려멓 ķ“ė¦­ķ•˜ģ„øģš”.", + spawnAdded = "%s ģŠ¤ķ° ģ§€ģ ģ„ ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + whitelist = "%sė‹˜ģ“ %sģ„(넼) %s ķŒ©ģ…˜ģ˜ ķ™”ģ“ķŠøė¦¬ģŠ¤ķŠøģ— ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + unwhitelist = "%sė‹˜ģ“ %sģ„(넼) %s ķŒ©ģ…˜ģ˜ ķ™”ģ“ķŠøė¦¬ģŠ¤ķŠøģ—ģ„œ ģ œź±°ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + gettingUp = "ģ“ģ œ ģ¼ģ–“ė‚˜ėŠ” ģ¤‘ģž…ė‹ˆė‹¤...", + wakingUp = "ģ˜ģ‹ģ„ 회복 ģ¤‘ģž…ė‹ˆė‹¤...", + Weapons = "묓기", + checkout = "ģ²“ķ¬ģ•„ģ›ƒģœ¼ė”œ ģ“ė™ (%s)", + purchase = "구매", + purchasing = "구매 중...", + success = "성공", + buyFailed = "구매 ģ‹¤ķŒØ", + buyGood = "구매 성공!", + shipment = "ģ¶œķ•˜", + shipmentDesc = "ģ“ ģ¶œķ•˜ė¬¼ģ€ %s ģ†Œģœ ģž…ė‹ˆė‹¤.", + class = "ķ“ėž˜ģŠ¤", + classes = "ķ“ėž˜ģŠ¤", + illegalAccess = "ė¶ˆė²• ģ ‘ź·¼.", + becomeClassFail = "%sģ“(ź°€) ė˜ėŠ” ė° ģ‹¤ķŒØķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + becomeClass = "ģ“ģ œ %sģž…ė‹ˆė‹¤.", + attribSet = "%sė‹˜ģ“ %sģ˜ %sģ„(넼) %s으딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + attribUpdate = "%sė‹˜ģ“ %sģ˜ %sģ„(넼) %s만큼 ģ¦ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + noFit = "ģ“ ģ•„ģ“ķ…œģ€ ģøė²¤ķ† ė¦¬ģ— 들얓가지 ģ•ŠģŠµė‹ˆė‹¤.", + help = "ė„ģ›€ė§", + commands = "명령얓", + helpDefault = "ģ¹“ķ…Œź³ ė¦¬ė„¼ ģ„ ķƒķ•˜ģ„øģš”.", + doorSettings = "문 설정", + sell = "판매", + access = "ģ ‘ź·¼", + locking = "ģ“ 엔터티넼 ģž ź·øėŠ” 중...", + unlocking = "ģ“ 엔터티넼 ģ—“ģ–“ėŠ” 중...", + modelNoSeq = "ėŖØėøģ“ ģ“ ė™ģž‘ģ„ ģ§€ģ›ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + notNow = "ķ˜„ģž¬ ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", + faceWall = "ģ“ ė²½ģ„ ė°”ė¼ė³“ģ•„ģ•¼ ķ•©ė‹ˆė‹¤.", + faceWallBack = "ģ“ ė²½ģ˜ ė’·ė©“ģ„ ė°”ė¼ė³“ģ•„ģ•¼ ķ•©ė‹ˆė‹¤.", + descChanged = "캐릭터 ģ„¤ėŖ…ģ„ ė³€ź²½ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + charMoney = "ķ˜„ģž¬ 볓유 źøˆģ•”: %s", + charFaction = "%s ķŒ©ģ…˜ģ˜ ģ¼ģ›ģž…ė‹ˆė‹¤.", + charClass = "ė‹¹ģ‹ ģ€ %s ķŒ©ģ…˜ģ˜ %sģž…ė‹ˆė‹¤.", + noSpace = "ģøė²¤ķ† ė¦¬ź°€ ź°€ė“ ģ°¼ģŠµė‹ˆė‹¤.", + noOwner = "ģ†Œģœ ģžź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + notAllowed = "ģ“ ģž‘ģ—…ģ€ ķ—ˆģš©ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + invalidIndex = "ģ•„ģ“ķ…œ ģøė±ģŠ¤ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + invalidItem = "ģ•„ģ“ķ…œ ź°ģ²“ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + invalidInventory = "ģøė²¤ķ† ė¦¬ ź°ģ²“ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + home = "ķ™ˆ", + charKick = "%sė‹˜ģ“ 캐릭터 %sģ„(넼) ķ‚„ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + charBan = "%sė‹˜ģ“ 캐릭터 %sģ„(넼) ė°“ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + charBanned = "ģ“ ģŗė¦­ķ„°ėŠ” ė°“ė˜ģ—ˆģŠµė‹ˆė‹¤.", + setMoney = "%sė‹˜ģ“ %sģ˜ ėˆģ„ %s으딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + itemPriceInfo = "ģ“ ģ•„ģ“ķ…œģ„ %s에 źµ¬ė§¤ķ•˜ź±°ė‚˜ %s에 ķŒė§¤ķ•  수 ģžˆģŠµė‹ˆė‹¤.", + free = "묓료", + vendorNoSellItems = "ķŒė§¤ķ•  ģ•„ģ“ķ…œģ“ ģ—†ģŠµė‹ˆė‹¤.", + vendorNoBuyItems = "구매할 ģ•„ģ“ķ…œģ“ ģ—†ģŠµė‹ˆė‹¤.", + vendorSettings = "ķŒė§¤ģž 설정", + vendorUseMoney = "ķŒė§¤ģžź°€ ėˆģ„ ģ‚¬ģš©ķ•“ģ•¼ ķ•˜ė‚˜ģš”?", + vendorNoBubble = "ķŒė§¤ģž ė§ķ’ģ„  숨기기?", + mode = "ėŖØė“œ", + price = "가격", + stock = "ģž¬ź³ ", + none = "ģ—†ģŒ", + vendorBoth = "구매 ė° 판매", + vendorBuy = "구매 ģ „ģš©", + vendorSell = "판매 ģ „ģš©", + maxStock = "ģµœėŒ€ ģž¬ź³ ", + vendorFaction = "ķŒ©ģ…˜ 에디터", + buy = "구매", + vendorWelcome = "ė‚“ ź°€ź²Œģ— ģ˜¤ģ‹  ź²ƒģ„ ķ™˜ģ˜ķ•©ė‹ˆė‹¤. 오늘 ģ–“ė–¤ ź²ƒģ„ ė“œė¦“ź¹Œģš”?", + vendorBye = "ė‹¤ģŒģ— 또 ģ˜¤ģ„øģš”!", + charSearching = "ģ“ėÆø 다넸 캐릭터넼 ź²€ģƒ‰ ģ¤‘ģž…ė‹ˆė‹¤. ģž ģ‹œ źø°ė‹¤ė ¤ģ£¼ģ„øģš”.", + charUnBan = "%sė‹˜ģ“ 캐릭터 %sģ˜ ė°“ģ„ ķ•“ģ œķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + charNotBanned = "ģ“ ģŗė¦­ķ„°ėŠ” ė°“ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤.", + storPass = "ģ“ ģ €ģž„ģ†Œģ˜ ė¹„ė°€ė²ˆķ˜øė„¼ %s(으)딜 ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + storPassRmv = "ģ“ ģ €ģž„ģ†Œģ˜ ė¹„ė°€ė²ˆķ˜øė„¼ ģ œź±°ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + storPassWrite = "ė¹„ė°€ė²ˆķ˜øė„¼ ģž…ė „ķ•˜ģ„øģš”.", + wrongPassword = "ģž˜ėŖ»ėœ ė¹„ė°€ė²ˆķ˜øė„¼ ģž…ė „ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + cheapBlur = "ķė¦¼ 효과 ė¹„ķ™œģ„±ķ™”? (FPS 상승)", + quickSettings = "빠넸 설정", + vmSet = "ģŒģ„± ė©”ģ‹œģ§€ė„¼ ģ„¤ģ •ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + vmRem = "ģŒģ„± ė©”ģ‹œģ§€ė„¼ ģ œź±°ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + altLower = "ģ†ģ„ ģˆØźøøź¹Œģš”?", + noPerm = "ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•  ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤.", + youreDead = "ė‹¹ģ‹ ģ€ ģ£½ģ—ˆģŠµė‹ˆė‹¤", + injMajor = "ģ¹˜ėŖ…ģ ģø ģƒģ²˜ź°€ ģžˆėŠ” 것 ź°™ģŠµė‹ˆė‹¤.", + injLittle = "상처넼 ģž…ģ€ 것 ź°™ģŠµė‹ˆė‹¤", + toggleObserverTP = "ź“€ģ „ģž ķ…”ė ˆķ¬ķŠø 토글", + toggleESP = "ź“€ė¦¬ģž ESP 토글", + toggleESPAdvanced = "ESP ź³ źø‰ ėŖØė“œ", + chgName = "ģ“ė¦„ 변경", + chgNameDesc = "ģ•„ėž˜ģ— ģŗė¦­ķ„°ģ˜ 새 ģ“ė¦„ģ„ ģž…ė „ķ•˜ģ„øģš”.", + thirdpersonToggle = "ģ„œė“œķ¼ģŠØ 토글", + thirdpersonClassic = "ķ“ėž˜ģ‹ ģ„œė“œķ¼ģŠØ ģ‚¬ģš©", + thirdpersonConfig = "ģ„œė“œķ¼ģŠØ 설정", + equippedBag = "ģž„ė¹„ė„¼ ģž„ģ°©ķ•œ ģ•„ģ“ķ…œģ€ ģøė²¤ķ† ė¦¬ ź°„ ģ“ė™ģ“ ė¶ˆź°€ėŠ„ķ•©ė‹ˆė‹¤.", + useTip = "ģ•„ģ“ķ…œ ģ‚¬ģš©", + equipTip = "ģ•„ģ“ķ…œ ģž„ģ°©", + unequipTip = "ģ•„ģ“ķ…œ ķ•“ģ œ", + consumables = "ģ†Œė¹„ķ’ˆ", + plyNotValid = "ģœ ķšØķ•œ ķ”Œė ˆģ“ģ–“ė„¼ 볓고 ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + restricted = "ģ œķ•œėØ", + viewProfile = "ģŠ¤ķŒ€ ķ”„ė”œķ•„ 볓기", + salary = "ė‹¹ģ‹ ģ€ ģ›”źø‰ģœ¼ė”œ %sģ„(넼) ė°›ģ•˜ģŠµė‹ˆė‹¤.", + noRecog = "ė‹¹ģ‹ ģ€ ģ“ ģ‚¬ėžŒģ„ ģøģ‹ķ•˜ģ§€ ėŖ»ķ•©ė‹ˆė‹¤.", + curTime = "ķ˜„ģž¬ ģ‹œź°„ģ€ %s ģž…ė‹ˆė‹¤.", + vendorEditor = "ķŒė§¤ģž 에디터", + edit = "ķŽøģ§‘", + disable = "ė¹„ķ™œģ„±ķ™”", + vendorPriceReq = "ģ“ ģ•„ģ“ķ…œģ˜ 새 ź°€ź²©ģ„ ģž…ė „ķ•˜ģ„øģš”.", + vendorEditCurStock = "ķ˜„ģž¬ ģž¬ź³  ķŽøģ§‘", + you = "당신", + vendorSellScale = "판매 가격 ģŠ¤ģ¼€ģ¼", + vendorNoTrade = "ģ“ ķŒė§¤ģžģ™€ ź±°ėž˜ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", + vendorNoMoney = "ģ“ ķŒė§¤ģžėŠ” ź·ø ģ•„ģ“ķ…œģ„ 구매할 수 ģ—†ģŠµė‹ˆė‹¤.", + vendorNoStock = "ģ“ ķŒė§¤ģžėŠ” ź·ø ģ•„ģ“ķ…œģ„ ģž¬ź³ ģ— 가지고 ģžˆģ§€ ģ•ŠģŠµė‹ˆė‹¤.", + contentTitle = "NutScript ģ½˜ķ…ģø  ģ—†ģŒ", + contentWarning = "NutScript ģ½˜ķ…ģø ė„¼ ė§ˆģš“ķŠøķ•˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤. ģ“ė”œ ģøķ•“ ģ¼ė¶€ źø°ėŠ„ģ“ ėˆ„ė½ė  수 ģžˆģŠµė‹ˆė‹¤.\nNutscript ģ½˜ķ…ģø ģ˜ ģ£¼ģ†Œź°€ rebel1324ģ˜ 것으딜 ė³€ź²½ė˜ģ—ˆģŠµė‹ˆė‹¤.\nNutScript ģ½˜ķ…ģø ģ˜ ģ›Œķ¬ģƒµ ķŽ˜ģ“ģ§€ė„¼ ģ—“ģ–“ė³“ģ‹œź² ģŠµė‹ˆź¹Œ?", + flags = "ķ”Œėž˜ź·ø", + chooseTip = "ģ“ 캐릭터넼 ģ„ ķƒķ•˜ģ—¬ ķ”Œė ˆģ“ķ•˜ģ„øģš”.", + deleteTip = "ģ“ 캐릭터넼 ģ‚­ģ œķ•˜ģ„øģš”.", + moneyLeft = "볓유 źøˆģ•”: ", + currentMoney = "ė‚Øģ€ ėˆ: ", - -- 2018 patch + -- 2018 패치 + + ammoLoadAll = "전첓 ģž„ģ „", + ammoLoadAmount = "%s ģž„ģ „", + ammoLoadCustom = "ģ‚¬ģš©ģž ģ •ģ˜ė”œ ģž„ģ „...", + split = "ė‚˜ėˆ„źø°", + splitHelp = "ė‚˜ėˆŒ ģˆ«ģžė„¼ ģž…ė „ķ•˜ģ„øģš”.", + splitHalf = "1/2 ė‚˜ėˆ„źø°", + splitQuarter = "1/4 ė‚˜ėˆ„źø°", + recognize = "ģ“ ģŗė¦­ķ„°ģ—ź²Œ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ź²Œ ķ—ˆģš©ķ•©ė‹ˆė‹¤.", + recognized = "ģ“ ģŗė¦­ķ„°ģ—ź²Œ ė‹¹ģ‹ ģ˜ ģ‹ ģ›ģ„ ģ•Œė øģŠµė‹ˆė‹¤.", + already_recognized = "ģ“ ģŗė¦­ķ„°ėŠ” ģ“ėÆø ė‹¹ģ‹ ģ„ ģ•Œź³  ģžˆģŠµė‹ˆė‹¤.", + isTied = "ģ“ ģ‚¬ėžŒģ€ 묶여 ģžˆģŠµė‹ˆė‹¤.", + tying = "ė¬¶ėŠ” 중", + untying = "묶기 ķ•“ģ œ 중", + beingUntied = "ė‹¹ģ‹ ģ€ ģ§€źøˆ 묶기가 ķ•“ģ œė˜ź³  ģžˆģŠµė‹ˆė‹¤.", + beingTied = "ė‹¹ģ‹ ģ€ ģ§€źøˆ 묶기가 되고 ģžˆģŠµė‹ˆė‹¤.", + sameOutfitCategory = "ģ“ ģœ ķ˜•ģ˜ ģ˜ģƒģ„ ģ“ėÆø ģž…ź³  ģžˆģŠµė‹ˆė‹¤.", + noBusiness = "ķ˜„ģž¬ ģ•„ė¬“ź²ƒė„ 구매할 ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤.", + panelRemoved = "%s ź°œģ˜ 3D ķŒØė„ģ„ ģ œź±°ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + panelAdded = "3D ķŒØė„ģ„ ģ¶”ź°€ķ•˜ģ˜€ģŠµė‹ˆė‹¤.", + itemOnGround = "ģ•„ģ“ķ…œģ“ 땅에 ė†“ģ˜€ģŠµė‹ˆė‹¤.", + forbiddenActionStorage = "ģ €ģž„ėœ ģ•„ģ“ķ…œģœ¼ė”œėŠ” ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", + cantDropBagHasEquipped = "ģž„ė¹„ź°€ ģž„ģ°©ėœ ź°€ė°©ģ€ 버릓 수 ģ—†ģŠµė‹ˆė‹¤.", + + -- 2021 패치 + lookToUseAt = "ģ‚¬ģš©ķ•˜ė ¤ė©“ ėˆ„źµ°ź°€ė„¼ ė°”ė¼ė“ģ•¼ ķ•©ė‹ˆė‹¤.", + mustProvideString = "ė³€ģˆ˜ģ— ė¬øģžģ—“ģ„ ģ œź³µķ•“ģ•¼ ķ•©ė‹ˆė‹¤.", + + -- 2023 패치 + togglePluginsDesc = "ģ„ ķƒķ•œ ķ”ŒėŸ¬ź·øģøģ“ ė¹„ķ™œģ„±ķ™”ė©ė‹ˆė‹¤.\n변경 ģ‚¬ķ•­ģ„ ģ ģš©ķ•˜ė ¤ė©“ ė§µģ„ ė‹¤ģ‹œ ģ‹œģž‘ķ•“ģ•¼ ķ•©ė‹ˆė‹¤!", + } - ammoLoadAll = "모두 ģ‚¬ģš©", - ammoLoadAmount = "%s개 ģ‚¬ģš©", - ammoLoadCustom = "ģˆ˜ėŸ‰ ģž…ė „", - split = "ė‚˜ėˆ„źø°", - splitHelp = "ė‚˜ėˆŒ ģˆ˜ėŸ‰ģ„ ģž…ė „ķ•˜ģ„øģš”.", - splitHalf = "1/2딜 ė‚˜ėˆ„źø°", - splitQuarter = "1/4딜 ė‚˜ėˆ„źø°", - recognize = "ģ“ 캐릭터가 ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ė„ė” ķ—ˆģš©ķ•©ė‹ˆė‹¤.", - recognized = "ģ“ ģŗė¦­ķ„°ģ—ź²Œ ė‹¹ģ‹ ģ„ ģøģ‹ķ•˜ź²Œ ķ–ˆģŠµė‹ˆė‹¤.", - already_recognized = "ģ“ ģŗė¦­ķ„°ėŠ” ģ“ėÆø ė‹¹ģ‹ ģ„ ģøģ‹ķ–ˆģŠµė‹ˆė‹¤.", - isTied = "ģ“ ģ‚¬ėžŒģ€ ģ†ģ“ 묶여 ģžˆģŠµė‹ˆė‹¤.", - tying = "ė¬¶ėŠ” 중", - untying = "ķ’€ģ–“ģ£¼ėŠ” 중", - beingUntied = "ė‹¹ģ‹ ģ€ ģ†ģ“ 풀리고 ģžˆģŠµė‹ˆė‹¤.", - beingTied = "ė‹¹ģ‹ ģ€ ģ†ģ“ ė¬¶ģ“ź³  ģžˆģŠµė‹ˆė‹¤.", - sameOutfitCategory = "ė‹¹ģ‹ ģ€ ģ“ėÆø 핓당 ģœ ķ˜•ģ˜ ģ˜ģƒģ„ ģ°©ģš©ķ•˜ź³  ģžˆģŠµė‹ˆė‹¤.", - noBusiness = "ė‹¹ģ‹ ģ€ ģ§€źøˆ ģ•„ė¬“ź²ƒė„ źµ¬ė§¤ķ•˜ģ‹¤ 수 ģ—†ģŠµė‹ˆė‹¤.", - panelRemoved = "ė‹¹ģ‹ ģ€ %sź°œģ˜ 3D ķŒØė„ģ„ ģ§€ģ› ģŠµė‹ˆė‹¤.", - panelAdded = "ė‹¹ģ‹ ģ€ 3D ķŒØė„ģ„ ģ¶”ź°€ķ–ˆģŠµė‹ˆė‹¤.", - forbiddenActionStorage = "핓당 ķ–‰ė™ģ€ ė³“ź“€ėœ ģ•„ģ“ķ…œģ—ź²Œ ķ•  수 ģ—†ģŠµė‹ˆė‹¤.", - cantDropBagHasEquipped = "ģž„ģ°©ėœ ģ•„ģ“ķ…œģ“ ģžˆėŠ” ź°€ė°©ģ€ 버릓 수 ģ—†ģŠµė‹ˆė‹¤." } diff --git a/gamemode/languages/sh_norwegian.lua b/gamemode/languages/sh_norwegian.lua index 1dc74f52..be529945 100644 --- a/gamemode/languages/sh_norwegian.lua +++ b/gamemode/languages/sh_norwegian.lua @@ -1,232 +1,269 @@ NAME = "Norwegian" LANGUAGE = { - loading = "Laster", - dbError = "Database tilkobling feilet", - unknown = "Ukjent", - noDesc = "Ingen beskrivelse tilgjengelig", - create = "Lag", - createTip = "Lag en ny karakter til Ć„ spille med.", - load = "Last", - loadTip = "Velg en tidligere brukt karakter til Ć„ spille med.", - leave = "Forlat", - leaveTip = "Forlat den nĆ„vƦrende serveren.", - ["return"] = "Tilbake", - returnTip = "Tilbake til den forrige menyen.", - name = "Navn", - desc = "Beskrivelse", - model = "Modell", - attribs = "Attributter", - charCreateTip = "Fyll inn feltene nedenfor og trykk pĆ„ 'FullfĆør' for Ć„ skape din karakter.", - invalid = "Du har gitt et ugyldig %s", - descMinLen = "Din beskrivelse mĆ„ vƦre minst %d bokstav(er).", - model = "Modell", - player = "Spiller", - finish = "FullfĆør", - finishTip = "FullfĆør med Ć„ lage karakteren.", - needModel = "Du mĆ„ velge en gyldig modell", - creating = "Din karakter blir skapt...", - unknownError = "Det har oppstĆ„tt en ukjent feil", - delConfirm = "Er du sikker pĆ„ at du vil PERMANENT slette %s?", - no = "Nei", - yes = "Ja", - itemInfo = "Navn: %s\nDescription: %s", - cloud_no_repo = "The repository provided is not valid.", - cloud_no_plugin = "The plugin provided is not valid.", - inv = "Inventar", - plugins = "Tillegg", - author = "Forfatter", - version = "Versjon", - characters = "Karakterer", - business = "Handel", - settings = "Innstillinger", - config = "Konfigurasjon", - chat = "Chat", - appearance = "Utseende", - misc = "Diverse", - oocDelay = "Du mĆ„ vente %s sekund(er) med Ć„ bruke OOC igjen.", - loocDelay = "Du mĆ„ vente %s sekund(er) med Ć„ bruke LOOC igjen.", - usingChar = "Du bruker allerede denne karakteren.", - notAllowed = "Beklager, du har ikke lov til Ć„ gjĆøre dette.", - itemNoExist = "Beklager, det elementet du forespurte finnes ikke.", - cmdNoExist = "Beklager, den kommandoen ekisterer ikke.", - plyNoExist = "Beklager, en matchende spiller ble ikke funnet.", - cfgSet = "%s har satt \"%s\" til %s.", - drop = "FrigjĆør", - dropTip = "FrigjĆør dette elementet fra ditt inventar.", - take = "Ta", - takeTip = "Ta dette elementet og putt det i inventaret ditt.", - dTitle = "Ueid DĆør", - dTitleOwned = "KjĆøpt DĆør", - dIsNotOwnable = "Denne dĆøren er ikke mulig Ć„ kjĆøpe.", - dIsOwnable = "Du kan kjĆøpe denne dĆøren med Ć„ trykke pĆ„ F2.", - dMadeUnownable = "Du har gjordt denne dĆøren umulig Ć„ kjĆøpe.", - dMadeOwnable = "Du har gjordt denne dĆøren mulig Ć„ kjĆøpe.", - dNotAllowedToOwn = "Du er ikke tillatt Ć„ eie denne dĆøra.", - dSetDisabled = "Du har deaktivert denne dĆøren.", - dSetNotDisabled = "Du har gjordt denne dĆøren ikke lenger deaktivert.", - dSetHidden = "Du har gjordt denne dĆøren gjemt.", - dSetNotHidden = "Du har gjordt at dĆøren ikke er gjemt lenger.", - dSetParentDoor = "Du har gjort denne dĆøren, hoveddĆøren.", - dCanNotSetAsChild = "Du kan ikke sette hoveddĆøren som sekundƦr dĆøren.", - dAddChildDoor = "Du har lagt til en sekundƦr dĆør.", - dRemoveChildren = "Du har fjernet alle sekundƦre dĆører fra denne dĆøren.", - dRemoveChildDoor = "Du har fjernet denne dĆøren fra Ć„ vƦre en sekundƦr dĆør.", - dNoParentDoor = "Du har ikke en hoveddĆør satt.", - dOwnedBy = "Denne dĆøren er eid av %s.", - dConfigName = "DĆører", - dSetFaction = "Denne dĆøren tilhĆører %s gruppen.", - dRemoveFaction = "Denne dĆøren tilhĆører ikke en gruppe lenger.", - dNotValid = "Du ser ikke pĆ„ en gyldig dĆør.", - canNotAfford = "Du har ikke rĆ„d til Ć„ kjĆøpe dette.", - dPurchased = "Du har kjĆøpt denne dĆøren for %s.", - dSold = "Du har solgt denne dĆøren for %s.", - notOwner = "Du er ikke eieren av dette.", - invalidArg = "Du har gitt en ugyldig verdi for argumentet #%s.", - invalidFaction = "Gruppen du hadde gitt ekisterer ikke.", - flagGive = "%s har gitt %s '%s' flaggene.", - flagGiveTitle = "Gi Flagg", - flagGiveDesc = "Gi de fĆølgene flaggene til en spiller.", - flagTake = "%s har tatt '%s' flaggene fra %s.", - flagTakeTitle = "Ta Flagg", - flagTakeDesc = "Fjern de fĆølgene flaggene til en spiller.", - flagNoMatch = "Du mĆ„ ha \"%s\" Flagg for Ć„ gjĆøre denne handlingen.", - textAdded = "Du har lagt til en tekst.", - textRemoved = "Du har fjernet %s tekst(er).", - moneyTaken = "Du har funnet %s.", - businessPurchase = "Du har kjĆøpt %s for %s.", - businessSell = "Du har solgt %s for %s.", - cChangeModel = "%s endret %s's modell til %s.", - cChangeName = "%s endret %s's navn til %s.", - cChangeSkin = "%s endret %s's skin til %s.", - cChangeGroups = "%s endret %s's \"%s\" kroppsgruppe to %s.", - cChangeFaction = "%s har overfĆørt %s til %s gruppen.", - playerCharBelonging = "Dette objektet tilhĆører en av dine andre karakterer.", - business = "Handel", - invalidFaction = "Du har gitt en ugyldig gruppe.", - spawnAdd = "Du har lagt til spawnen for %s.", - spawnDeleted = "Du har fjernet %s spawn punkt(er).", - someone = "Noen", - rgnLookingAt = "Tillat personen du ser pĆ„ Ć„ gjenkjenne deg.", - rgnWhisper = "Tillat de innen hviske radius Ć„ gjenkjenne deg.", - rgnTalk = "Tillat de innen prate radius Ć„ gjenkjenne deg.", - rgnYell = "Tillat de innen rope radius Ć„ gjenkjenne deg.", - icFormat = "%s sier \"%s\"", - rollFormat = "%s har rullet %s.", - wFormat = "%s hvisker \"%s\"", - yFormat = "%s roper \"%s\"", - sbOptions = "Klikk for Ć„ se instillingene for %s.", - spawnAdded = "Du har lagt til spawnen for %s.", - whitelist = "%s har hvitelistet %s for %s gruppen.", - unwhitelist = "%s har fjernet %s fra hvitelisten til %s gruppen.", - gettingUp = "Du reiser deg opp...", - wakingUp = "Du er kommer til bevissthet...", - Weapons = "VĆ„pen", - checkout = "GĆ„ til kassen (%s)", - purchase = "KjĆøp", - purchasing = "KjĆøp = er...", - success = "Suksess", - buyFailed = "KjĆøpet mislyktes.", - buyGood = "KjĆøp vellykket!", - shipment = "Forsendelsen", - shipmentDesc = "Denne forsendelsen tilhĆører %s.", - class = "Klasse", - classes = "Klasser", - illegalAccess = "Ulovlig Tilgang.", - becomeClassFail = "Klarte ikke Ć„ bli %s.", - becomeClass = "Du har bltt %s.", - attribSet = "Du har satt %s's %s til %s.", - attribUpdate = "Du har lagt til %s's %s av %s.", - noFit = "Dette elementet kan ikke passe i inventaret ditt.", - help = "Hjelp", - commands = "Kommandoer", - helpDefault = "Velg et katagori", - doorSettings = "DĆør innstillinger", - sell = "Selg", - access = "Tilgang", - locking = "LĆ„ser denne enheten...", - unlocking = "LĆ„ser opp denne enheten...", - modelNoSeq = "Din modell stĆøtter ikke denne handlingen.", - notNow = "Du er ikke tillatt.", - faceWall = "Du mĆ„ stĆ„ mot veggen for Ć„ gjĆøre dette.", - faceWallBack = "Din rygg mĆ„ stĆ„ mot veggen for Ć„ gjĆøre dette.", - descChanged = "Du har endret din karakters beskrivelse.", - charMoney = "Du har akkurat nĆ„ %s.", - charFaction = "Du er et medlem av denne %s gruppen.", - charClass = "Du er %s i gruppen.", - noSpace = "Inventaret er fult.", - noOwner = "Eieren er ugyldig.", - notAllowed = "Denne handlingen er ikke tillatt.", - invalidIndex = "Elementet's Index er ugyldig.", - invalidItem = "Element Objektet er ugyldig.", - invalidInventory = "Inventar objektet er ugyldig.", - home = "Hjem", - charKick = "%s sparket karakteren %s.", - charBan = "%s utestengte karakteren %s.", - charBanned = "Denne karakteren er utestengt.", - setMoney = "Du har satt %s's penger til %s.", - itemPriceInfo = "Du kan kjĆøpe dette elementet for %s.\nDu kan kjĆøpe dette elementet for %s", - free = "Gratis", - vendorNoSellItems = "Det er ingen elementer for Ć„ selle.", - vendorNoBuyItems = "Det er ingen elementer til Ć„ kjĆøpe.", - vendorSettings = "LeverandĆør Innstillinger", - vendorUseMoney = "LeverandĆør skal bruke penger?", - vendorNoBubble = "Gjem leverandĆør bobblen?", - mode = "Modus", - price = "Pris", - stock = "PĆ„ lager", - none = "Ingen", - vendorBoth = "KjĆøp og selg", - vendorBuy = "Kun KjĆøp", - vendorSell = "Kun Selg", - maxStock = "Maks pĆ„ lager", - vendorFaction = "Gruppe endrer", - buy = "KjĆøp", - vendorWelcome = "Velkommen til butikken min, hva kan jeg gi deg i dag?", - vendorBye = "Kom tilbake snart!", - charSearching = "Du sĆøker allerede etter en annen karakter, vennligst vent.", - charUnBan = "%s har fjernet %s fra karakter utestengt listen.", - charNotBanned = "Denne karakteren er ikke utestengt.", - storPass = "Du har satt dette lagerets passord til %s.", - storPassRmv = "Du har fjernet dette lagerets passord.", - storPassWrite = "Skriv inn passordet.", - wrongPassword = "Du har skrivd inn feil passord.", - cheapBlur = "Deaktiver uklarhet? (Bedre FPS)", - quickSettings = "Hurtiginnstillinger", - vmSet = "Du har satt ditt mobilsvar.", - vmRem = "Du har fjernet ditt mobilsvar.", - altLower = "Gjemme hendene nĆ„r senket?", - noPerm = "Du er ikke tillatt til Ć„ gjĆøre dette.", - youreDead = "Du er dĆød.", - injMajor = "Ser kritisk skadd ut.", - injLittle = "Ser skadd ut.", - toggleESP = "Veksle Admin ESP", - chgName = "Endre navn", - chgNameDesc = "Skriv in karakterens nye navn under.", - thirdpersonToggle = "Veksle Tredje-Person", - thirdpersonClassic = "Bruk klassisk Tredje-Person", - equippedBag = "Posen at du flyttet har utstyrt element.", - useTip = "Bruk dette elementet.", - equipTip = "Ta pĆ„ dette elementet.", - unequipTip = "Ta av dette elementet.", - consumables = "Forbruksvarer", - plyNotValid = "Du ser ikke pĆ„ en gyldig spiller.", - restricted = "Du har blitt tilbakeholdne.", - viewProfile = "Se Steam Profil", - salary = "Du har motatt %s fra lĆønnen din.", - noRecog = "Du kjenner ikke denne personen.", - curTime = "Tiden er %s.", - vendorEditor = "LeverandĆør Redigering", - edit = "Rediger", - disable = "Deaktiver", - vendorPriceReq = "Skriv in den nye prisen for dette elementet.", - vendorEditCurStock = "Rediger nĆ„vƦrende lager", - you = "Du", - vendorSellScale = "Utsalgspris skala", - vendorNoTrade = "Du er ikke i stand til Ć„ handle med denne leverandĆøren.", - vendorNoMoney = "Denne leverandĆøren ikke har rĆ„d til dette elementet.", - vendorNoStock = "Denne leverandĆøren har ikke at varen pĆ„ lager.", - contentTitle = "NutScript Innhold Mangler", - contentWarning = "Du har ikke NutScript innhold montert. Dette kan fĆøre til enkelte funksjoner mangler. \nVil du Ć„pne Workshop side for NutScript innhold?", - flags = "Flagg" + loading = "Laster", + dbError = "Database-tilkobling mislyktes", + unknown = "Ukjent", + noDesc = "Ingen beskrivelse tilgjengelig", + create = "Opprett", + createTip = "Opprett en ny karakter Ć„ spille som.", + load = "Last", + loadTip = "Velg en tidligere opprettet karakter Ć„ spille som.", + leave = "Forlat", + leaveTip = "Forlat den gjeldende serveren.", + ["return"] = "Tilbake", + returnTip = "GĆ„ tilbake til forrige meny.", + name = "Navn", + desc = "Beskrivelse", + model = "Modell", + attribs = "Egenskaper", + charCreateTip = "Fyll ut feltene nedenfor og trykk 'FullfĆør' for Ć„ opprette karakteren din.", + invalid = "Du har oppgitt en ugyldig %s", + descMinLen = "Beskrivelsen din mĆ„ vƦre minst %d tegn(lang).", + player = "Spiller", + finish = "FullfĆør", + finishTip = "FullfĆør opprettelsen av karakteren.", + needModel = "Du mĆ„ velge en gyldig modell", + creating = "Karakteren din opprettes...", + unknownError = "En ukjent feil har oppstĆ„tt", + delConfirm = "Er du sikker pĆ„ at du vil SLETTE %s PERMANENT?", + no = "Nei", + yes = "Ja", + itemInfo = "Navn: %s\nBeskrivelse: %s", + itemCreated = "Gjenstanden ble opprettet vellykket.", + cloud_no_repo = "Den git-repositoryen er ikke gyldig.", + cloud_no_plugin = "Den git-plugins er ikke gyldig.", + inv = "Inventar", + plugins = "Plugins", + togglePlugins = "Bytt plugins", + author = "Forfatter", + version = "Versjon", + characters = "Karakterer", + settings = "Innstillinger", + config = "Konfigurasjon", + chat = "Chat", + appearance = "Utseende", + misc = "Diverse", + oocDelay = "Du mĆ„ vente %s sekund(er) til fĆør du kan bruke OOC igjen.", + loocDelay = "Du mĆ„ vente %s sekund(er) til fĆør du kan bruke LOOC igjen.", + usingChar = "Du bruker allerede denne karakteren.", + itemNoExist = "Beklager, gjenstanden du spurte etter eksisterer ikke.", + cmdNoExist = "Beklager, den kommandoen eksisterer ikke.", + plyNoExist = "Beklager, ingen passende spiller ble funnet.", + cfgSet = "%s har satt \"%s\" til %s.", + drop = "Slipp", + dropTip = "Slipp denne gjenstanden fra inventaret ditt.", + take = "Ta", + takeTip = "Ta denne gjenstanden og legg den i inventaret ditt.", + dTitle = "Ueiet dĆør", + dTitleOwned = "KjĆøpt dĆør", + dIsNotOwnable = "Denne dĆøren kan ikke eies.", + dIsOwnable = "Du kan kjĆøpe denne dĆøren ved Ć„ trykke F2.", + dMadeUnownable = "Du har gjort denne dĆøren ueiet.", + dMadeOwnable = "Du har gjort denne dĆøren eiet.", + dNotAllowedToOwn = "Du har ikke lov til Ć„ eie denne dĆøren.", + dSetDisabled = "Du har gjort denne dĆøren deaktivert.", + dSetNotDisabled = "Du har gjort denne dĆøren ikke lenger deaktivert.", + dSetHidden = "Du har gjort denne dĆøren skjult.", + dSetNotHidden = "Du har gjort denne dĆøren ikke lenger skjult.", + dSetParentDoor = "Du har satt denne dĆøren som din overordnede dĆør.", + dCanNotSetAsChild = "Du kan ikke sette overordnede dĆør som en underordnet.", + dAddChildDoor = "Du har lagt til denne dĆøren som en underordnet.", + dRemoveChildren = "Du har fjernet alle underordnede for denne dĆøren.", + dRemoveChildDoor = "Du har fjernet denne dĆøren som en underordnet.", + dNoParentDoor = "Du har ikke en overordnet dĆør satt.", + dOwnedBy = "Denne dĆøren eies av %s.", + dConfigName = "DĆører", + dSetFaction = "Denne dĆøren tilhĆører nĆ„ %s fraksjonen.", + dRemoveFaction = "Denne dĆøren tilhĆører ikke lenger noen fraksjon.", + dNotValid = "Du ser ikke pĆ„ en gyldig dĆør.", + canNotAfford = "Du har ikke rĆ„d til Ć„ kjĆøpe dette.", + dPurchased = "Du har kjĆøpt denne dĆøren for %s.", + dSold = "Du har solgt denne dĆøren for %s.", + notOwner = "Du er ikke eieren av dette.", + invalidArg = "Du har oppgitt en ugyldig verdi for argument #%s.", + flagGive = "%s har gitt %s '%s' flagg.", + flagGiveTitle = "Gi flagg", + flagGiveDesc = "Gi fĆølgende flagg til spilleren.", + flagTake = "%s har tatt '%s' flagg fra %s.", + flagTakeTitle = "Ta flagg", + flagTakeDesc = "Fjern fĆølgende flagg fra spilleren.", + flagNoMatch = "Du mĆ„ ha \"%s\" Flag(g) for Ć„ utfĆøre denne handlingen.", + textAdded = "Du har lagt til en tekst.", + textRemoved = "Du har fjernet %s tekster.", + moneyTaken = "Du fant %s.", + businessPurchase = "Du har kjĆøpt %s for %s.", + businessSell = "Du har solgt %s for %s.", + cChangeModel = "%s har endret %s sin modell til %s.", + cChangeName = "%s har endret %s sin navn til %s.", + cChangeSkin = "%s har endret %s sin hud til %s.", + cChangeGroups = "%s har endret %s sin \"%s\" kroppstype til %s.", + cChangeFaction = "%s har overfĆørt %s til %s fraksjonen.", + playerCharBelonging = "Dette objektet tilhĆører en annen karakter.", + business = "Forretning", + invalidFaction = "Du har oppgitt en ugyldig fraksjon.", + limitFaction = "Denne fraksjonen er full. PrĆøv igjen senere.", + spawnAdd = "Du har lagt til en spawn for %s.", + spawnDeleted = "Du har fjernet %s spawn punkt(er).", + someone = "Noen", + rgnLookingAt = "Tillat personen du ser pĆ„ Ć„ gjenkjenne deg.", + rgnWhisper = "Tillat de som er i en hviskende avstand Ć„ gjenkjenne deg.", + rgnTalk = "Tillat de som er i en samtaleavstand Ć„ gjenkjenne deg.", + rgnYell = "Tillat de som er i en roper avstand Ć„ gjenkjenne deg.", + icFormat = "%s sier \"%s\"", + rollFormat = "%s har rullet %s.", + wFormat = "%s hvisker \"%s\"", + yFormat = "%s roper \"%s\"", + sbOptions = "Klikk for Ć„ se alternativer for %s.", + spawnAdded = "Du la til spawn for %s.", + whitelist = "%s har satt %s pĆ„ hvitelisten for %s fraksjonen.", + unwhitelist = "%s har fjernet %s fra hvitelisten for %s fraksjonen.", + gettingUp = "Du stĆ„r nĆ„ opp...", + wakingUp = "Du er i ferd med Ć„ vĆ„kne...", + Weapons = "VĆ„pen", + checkout = "GĆ„ til kassen (%s)", + purchase = "KjĆøp", + purchasing = "KjĆøper...", + success = "Suksess", + buyFailed = "KjĆøp mislyktes.", + buyGood = "KjĆøp vellykket!", + shipment = "Sending", + shipmentDesc = "Denne forsendelsen tilhĆører %s.", + class = "Klasse", + classes = "Klasser", + illegalAccess = "Ulovlig tilgang.", + becomeClassFail = "Klasseendring til %s mislyktes.", + becomeClass = "Du har blitt %s.", + attribSet = "Du har satt %s sin %s til %s.", + attribUpdate = "Du har lagt til %s sin %s med %s.", + noFit = "Denne gjenstanden passer ikke i inventaret ditt.", + help = "Hjelp", + commands = "Kommandoer", + helpDefault = "Velg en kategori", + doorSettings = "DĆørinnstillinger", + sell = "Selg", + access = "Tilgang", + locking = "LĆ„ser dette objektet...", + unlocking = "LĆ„ser opp dette objektet...", + modelNoSeq = "Modellen din stĆøtter ikke denne handlingen.", + notNow = "Du har ikke lov til Ć„ gjĆøre dette akkurat nĆ„.", + faceWall = "Du mĆ„ stĆ„ vendt mot veggen for Ć„ gjĆøre dette.", + faceWallBack = "Du mĆ„ ha ryggen mot veggen for Ć„ gjĆøre dette.", + descChanged = "Du har endret karakterens beskrivelse.", + charMoney = "Du har for Ćøyeblikket %s.", + charFaction = "Du er medlem av %s fraksjonen.", + charClass = "Du er %s i fraksjonen.", + noSpace = "Inventaret er fullt.", + noOwner = "Eieren er ugyldig.", + notAllowed = "Denne handlingen er ikke tillatt.", + invalidIndex = "Elementindeksen er ugyldig.", + invalidItem = "Gjenstanden er ugyldig.", + invalidInventory = "Inventaret er ugyldig.", + home = "Hjem", + charKick = "%s sparket karakteren %s.", + charBan = "%s har forbudt karakteren %s.", + charBanned = "Denne karakteren er forbudt.", + setMoney = "Du har satt %s sin penger til %s.", + itemPriceInfo = "Du kan kjĆøpe denne gjenstanden for %s.\nDu kan selge denne gjenstanden for %s.", + free = "Gratis", + vendorNoSellItems = "Det er ingen gjenstander Ć„ selge.", + vendorNoBuyItems = "Det er ingen gjenstander Ć„ kjĆøpe.", + vendorSettings = "Selgerinnstillinger", + vendorUseMoney = "Skal selgeren bruke penger?", + vendorNoBubble = "Skjul selgerboble?", + mode = "Modus", + price = "Pris", + stock = "Lager", + none = "Ingen", + vendorBoth = "KjĆøp og Selg", + vendorBuy = "KjĆøp Bare", + vendorSell = "Selg Bare", + maxStock = "Maks Lager", + vendorFaction = "Fraksjonsredigerer", + buy = "KjĆøp", + vendorWelcome = "Velkommen til butikken min, hva kan jeg hjelpe deg med i dag?", + vendorBye = "Kom igjen snart!", + charSearching = "Du sĆøker allerede etter en annen karakter, vennligst vent.", + charUnBan = "%s har opphevet forbudet mot karakteren %s.", + charNotBanned = "Denne karakteren er ikke forbudt.", + storPass = "Du har satt passordet for denne lagringen til %s.", + storPassRmv = "Du har fjernet passordet for denne lagringen.", + storPassWrite = "Skriv inn passordet.", + wrongPassword = "Du har oppgitt feil passord.", + cheapBlur = "Deaktiver uskarphet? (Ƙker FPS)", + quickSettings = "Rask innstilling", + vmSet = "Du har satt din telefonsvarer.", + vmRem = "Du har fjernet din telefonsvarer.", + altLower = "Skjul hender nĆ„r de er nede?", + noPerm = "Du har ikke lov til Ć„ gjĆøre dette.", + youreDead = "Du er dĆød", + injMajor = "Ser kritisk skadet ut.", + injLittle = "Ser skadet ut", + toggleObserverTP = "Veksle observatĆør teleportering", + toggleESP = "Veksle Admin ESP", + toggleESPAdvanced = "ESP Avansert modus", + chgName = "Endre navn", + chgNameDesc = "Skriv inn den nye karakterens navn nedenfor.", + thirdpersonToggle = "Veksle Tredjeperson", + thirdpersonClassic = "Bruk Klassisk Tredjeperson", + thirdpersonConfig = "Tredjeperson Konfigurasjon", + equippedBag = "Utstyrte gjenstander kan ikke flyttes mellom inventar.", + useTip = "Bruker gjenstanden.", + equipTip = "Utstyr gjenstanden.", + unequipTip = "Fjern utstyr gjenstanden.", + consumables = "Forbruksvarer", + plyNotValid = "Du ser ikke pĆ„ en gyldig spiller.", + restricted = "Du har blitt begrenset.", + viewProfile = "Se Steam-profil", + salary = "Du har mottatt %s fra lĆønnen din.", + noRecog = "Du gjenkjenner ikke denne personen.", + curTime = "NĆ„vƦrende tid er %s.", + vendorEditor = "Selgerredigerer", + edit = "Rediger", + disable = "Deaktiver", + vendorPriceReq = "Skriv inn den nye prisen for denne gjenstanden.", + vendorEditCurStock = "Rediger nĆ„vƦrende lager", + you = "Du", + vendorSellScale = "Salgsprisskala for selger", + vendorNoTrade = "Du kan ikke handle med denne selgeren.", + vendorNoMoney = "Denne selgeren har ikke rĆ„d til den gjenstanden.", + vendorNoStock = "Denne selgeren har ikke den gjenstanden pĆ„ lager.", + contentTitle = "NutScript Innhold Mangler", + contentWarning = "Du har ikke NutScript-innholdet montert. Dette kan fĆøre til at visse funksjoner mangler.\nVil du Ć„pne Workshopen for NutScript-innholdet?", + flags = "Flagg", + chooseTip = "Velg denne karakteren Ć„ spille med.", + deleteTip = "Slett denne karakteren.", + moneyLeft = "Dine penger: ", + currentMoney = "GjenvƦrende penger: ", + + -- 2018-patch + ammoLoadAll = "Last alle", + ammoLoadAmount = "Last %s", + ammoLoadCustom = "Last tilpasset...", + split = "Del", + splitHelp = "Skriv inn et tall for Ć„ dele.", + splitHalf = "Del 1/2", + splitQuarter = "Del 1/4", + recognize = "Tillat denne karakteren Ć„ gjenkjenne deg.", + recognized = "Du ga denne karakteren identiteten din.", + already_recognized = "Denne karakteren vet allerede hvem du er.", + isTied = "Denne personen er bundet.", + tying = "Binder", + untying = "LĆøser opp", + beingUntied = "Du blir lĆøst opp.", + beingTied = "Du blir bundet.", + sameOutfitCategory = "Du har allerede pĆ„ deg denne typen antrekk.", + noBusiness = "Du har ikke lov til Ć„ kjĆøpe noe akkurat nĆ„.", + panelRemoved = "Du har fjernet %s 3D-paneler.", + panelAdded = "Du har lagt til et 3D-panel.", + itemOnGround = "Gjenstanden din er plassert pĆ„ bakken.", + forbiddenActionStorage = "Du kan ikke utfĆøre denne handlingen med lagret gjenstand.", + cantDropBagHasEquipped = "Du kan ikke droppe en bag som har utstyrte gjenstander.", + + -- 2021-patch + lookToUseAt = "Du mĆ„ se pĆ„ noen for Ć„ bruke '@'", + mustProvideString = "Du mĆ„ oppgi en streng for variabelen", + + -- 2023-patch + togglePluginsDesc = "Valgte plugins vil bli deaktivert.\nKartet mĆ„ startes pĆ„ nytt etter Ć„ ha gjort endringer!", } diff --git a/gamemode/languages/sh_polish.lua b/gamemode/languages/sh_polish.lua index 45b4c72a..32b81c22 100644 --- a/gamemode/languages/sh_polish.lua +++ b/gamemode/languages/sh_polish.lua @@ -4,211 +4,266 @@ NAME = "Polski" LANGUAGE = { - loading = "Ładowanie", - dbError = "Połączenie z bazą danych nie powiodło się", - unknown = "Nieznane", - noDesc = "Rysopis niedostępny", - create = "Stwórz", - createTip = "Stwórz nową postać aby nią zagrać.", - load = "Załaduj", - loadTip = "Załaduj uprzednio stworzoną postać aby nią zagrać.", - leave = "WyjdÅŗ", - leaveTip = "Opuść serwer.", - ["return"] = "Powrót", - returnTip = "Powrót do poprzedniego menu.", - name = "Imię i nazwisko", - desc = "Opis", - model = "Model", - attribs = "Atrybuty", - charCreateTip = "Wypełnij pola poniżej i klinij 'Zakończ' aby stworzyć swoją postać.", - invalid = "Podałeś niewłaściwe(ą) %s", - descMinLen = "Opis musi zawierać minimum %d znak(ów).", - model = "Model", - player = "Gracz", - finish = "Zakończ", - finishTip = "Zakończ tworzenie postaci.", - needModel = "Musisz wybrać prawidłowy model", - creating = "Twoja postać jest aktualnie tworzona...", - unknownError = "Wystąpił nieznany błąd", - delConfirm = "Czy jesteś pewien, że chcesz PERMANENTNIE skasować %s?", - no = "Nie", - yes = "Tak", - itemInfo = "Imię i nazwisko %s\nRysopis: %s", - cloud_no_repo = "Repozytorium, które zostało podane nie jest prawidłowe.", - cloud_no_plugin = "Podany plugin nie jest prawidłowy.", - inv = "Ekwipunek", - plugins = "Pluginy", - author = "Autor", - version = "Wersja", - characters = "Postacie", - business = "Biznes", - settings = "Ustawienia", - config = "Konfiguracja", - chat = "Czat", - appearance = "Wygląd", - misc = "Różne", - oocDelay = "Musisz poczekać %s sekund przed ponownym użyciem OOC.", - loocDelay = "Musisz poczekać %s sekund przed ponownym użyciem LOOC.", - usingChar = "Aktualnie już używasz tej postaci.", - notAllowed = "Przepraszamy, nie masz uprawnień do zrobienia tego.", - itemNoExist = "Przepraszamy, przedmiot o który prosiłeś nie istnieje.", - cmdNoExist = "Przepraszamy, ta komenda nie istnieje.", - plyNoExist = "Przepraszamy, nie znaleziono pasującego gracza.", - cfgSet = "%s ustawił \"%s\" na %s.", - drop = "Upuść", - dropTip = "Upuszcza ten przedmiot z Twojego ekwipunku.", - take = "WeÅŗ", - takeTip = "WeÅŗ ten przedmiot i umieść go w swoim ekwipunku.", - dTitle = "Drzwi możliwe do wykupienia", - dTitleOwned = "Wykupione Drzwi", - dIsNotOwnable = "Tych drzwi nie można kupić.", - dIsOwnable = "Możesz kupić te drzwi naciskając F2.", - dMadeUnownable = "Uczyniłeś te drzwi niemożliwymi do kupienia.", - dMadeOwnable = "Uczyniłeś te drzwi możliwymi do kupienia.", - dNotAllowedToOwn = "Nie możesz kupić tych drzwi.", - dSetDisabled = "Wyłączyłeś te drzwi z użytku.", - dSetNotDisabled = "Ponownie można używać tych drzwi.", - dSetParentDoor = "Uczyniłeś te drzwi swoimi drzwiami nadrzędnymi.", - dCanNotSetAsChild = "Nie możesz ustawi aby drzwi nadrzędne były drzwiami podrzędnymi.", - dAddChildDoor = "Dodałeś te drzwi jako drzwi podrzędne.", - dRemoveChildren = "Usunąłeś wszystkie drzwi podrzędne należące do tych drzwi.", - dRemoveChildDoor = "Te drzwi już nie są drzwiami podrzędnymi.", - dNoParentDoor = "Nie masz ustawionych drzwi nadrzędnych.", - dOwnedBy = "Te drzwi należą do %s.", - dConfigName = "Drzwi", - dSetFaction = "Te drzwi należą teraz do frakcji %s.", - dRemoveFaction = "Te drzwi już nie należą do żadnej frakcji.", - dNotValid = "Patrzysz na nie prawidłowe drzwi.", - canNotAfford = "Nie stać Cię na kupienie tego.", - dPurchased = "Kupiłeś te drzwi za %s.", - dSold = "Sprzedałeś te drzwi za %s.", - notOwner = "Nie jesteś właścicielem tego.", - invalidArg = "Podałeś niepoprawną wartość dla argumentu #%s.", - invalidFaction = "Frakcja, którą podałeś nie mogła zostać znaleziona.", - flagGive = "%s dał %s następujące flagi: '%s'.", - flagGiveTitle = "Daj Flagi", - flagGiveDesc = "Daj następujące flagi graczowi.", - flagTake = "%s zabrał od %s następujące flagi: '%s'.", - flagTakeTitle = "Zabierz Flagi", - flagTakeDesc = "Zabierz następujące flagi od gracza.", - flagNoMatch = "Musisz posiadać flagę(i) \"%s\" aby wykonać tą czynność.", - textAdded = "Dodałeś tekst.", - textRemoved = "Usunąłeś %s tekst(y).", - moneyTaken = "Znalazłeś %s.", - businessPurchase = "Kupiłeś %s za %s.", - businessSell = "Sprzedałeś %s za %s.", - cChangeModel = "%s zmienił model gracza %s na %s.", - cChangeName = "%s zmienił imię gracza %s na %s.", - playerCharBelonging = "Ten przedmiot należy do innej postaci należącej do Ciebie.", - business = "Biznes", - invalidFaction = "Wprowadziłeś niewłaściwą frakcję.", - spawnAdd = "Dodaj punkt odradzania się (Spawn) dla %s.", - spawnDeleted = "Usunąłeś %s punktów odradzania się (spawn'u).", - someone = "Ktoś", - rgnLookingAt = "Pozwól osobie na którą patrzysz aby Cię rozpoznawała.", - rgnWhisper = "Pozwól tym, którzy są w zasięgu Twoich szeptów aby Cię rozpoznawali.", - rgnTalk = "Pozwól tym, którzy są w zasięgu normalnych rozmów aby Cię rozpoznawali.", - rgnYell = "Pozwól tym, którzy są w zasięgu Twoich krzyków aby Cię rozpoznawali.", - icFormat = "%s mówi: \"%s\"", - rollFormat = "%s wylosował %s rzucając kośćmi.", - wFormat = "%s szepcze: \"%s\"", - yFormat = "%s krzyczy: \"%s\"", - sbOptions = "Kliknij aby zobaczyć opcje dla %s.", - spawnAdded = "Dodałeś punkt odradzania się (Spawn) dla %s.", - whitelist = "%s dodał %s na białą listę frakcji %s.", - unwhitelist = "%s usunął %s z białej listy frakcji %s.", - gettingUp = "Podnosisz się...", - wakingUp = "Wraca Ci świadomość...", - Weapons = "Broń", - checkout = "IdÅŗ do kasy (%s)", - purchase = "Kup", - purchasing = "Kupuję...", - success = "Sukces", - buyFailed = "Zakupy nie powiodły się.", - buyGood = "Zakupy udane!", - shipment = "Dostawa", - shipmentDesc = "Ta dostawa należy do %s.", - class = "Klasa", - classes = "Klasy", - illegalAccess = "Nielegalny Dostęp.", - becomeClassFail = "Nie udało Ci się zostać %s.", - becomeClass = "Zostałeś %s.", - attribSet = "Postać %s ma teraz %s ustawioną na %s.", - attribUpdate = "Postać %s ma teraz %s podwyższoną o %s.", - noFit = "Ten przedmiot nie mieści się w Twoim ekwipunku.", - help = "Pomoc", - commands = "Komendy", - helpDefault = "Wybierz kateogrię", - doorSettings = "Ustawienia drzwi", - sell = "Sprzedaj", - access = "Dostęp", - locking = "Zamykanie przedmiotu...", - unlocking = "Otwieranie przedmiotu...", - modelNoSeq = "Twój model nie obsługuje tej animacji.", - notNow = "Nie możesz tego aktualnie zrobić.", - faceWall = "Musisz patrzeć na ścianę aby to wykonać.", - faceWallBack = "Musisz stać tyłem do ściany aby to wykonać.", - descChanged = "Zmieniłeś rysopis swojej postaci.", - charMoney = "Aktualnie posiadasz %s.", - charFaction = "Jesteś członkiem frakcji %s.", - charClass = "Piastujesz stanowisko %s we frakcji.", - noSpace = "Ekwipunek jest pełny.", - noOwner = "Nieprawidłowy właściciel.", - notAllowed = "Ta akcja jest niedozowolna.", - invalidIndex = "Index przedmiotu jest nieprawidłowy.", - invalidItem = "Obiekt przedmiotu jest nieprawidłowy.", - invalidInventory = "Obiekt ekwipunku jest nieprawidłowy.", - home = "Strona główna", - charKick = "%s wyrzucił %s.", - charBan = "%s zbanował postać %s.", - charBanned = "Ta postać jest niedostępna.", - setMoney = "Ustawiłem ilość pieniędzy %s na %s.", - itemPriceInfo = "Możesz kupić ten przedmiot za %s.\nMożesz sprzedać ten przedmiot za %s", - free = "Darmowe", - vendorNoSellItems = "Nie ma przedmiotów do sprzedania.", - vendorNoBuyItems = "Nie ma przedmiotów do kupienia.", - vendorSettings = "Ustawienia sprzedawców", - vendorUseMoney = "Czy sprzedawcy powinni używać pieniędzy?", - vendorNoBubble = "Ukryć dymek sprzedawcy?", - mode = "Tryb", - price = "Cena", - stock = "Zasób", - none = "Nic", - vendorBoth = "Kupowanie i Sprzedawanie", - vendorBuy = "Tylko kupowanie", - vendorSell = "Tylko sprzedawanie", - maxStock = "Maksymalny zasób", - vendorFaction = "Edytor frakcji", - buy = "Kup", - vendorWelcome = "Witaj w moim sklepie, czy mogę Ci coś podać?", - vendorBye = "PrzyjdÅŗ niedługo z powrotem!", - charSearching = "Aktualnie szukasz już innej postaci, proszę poczekać.", - charUnBan = "%s odbanował postać %s.", - charNotBanned = "Ta postać nie jest zbanowana.", - storPass = "Ustawiłeś hasło tego pojemnika na %s.", - storPassRmv = "Usunąłeś hasło z tego pojemnika.", - storPassWrite = "WprowadÅŗ hasło.", - wrongPassword = "Wprowadziłeś złe hasło.", - cheapBlur = "Wyłączyć rozmazywanie? (Podnosi FPSy)", - quickSettings = "Szybkie Ustawienia", - vmSet = "Ustawiłeś swoją automatyczną sekretarkę.", - vmRem = "Usunąłeś swoją automatyczną sekretarkę.", - altLower = "Ukryć dłonie kiedy są opuszczone?", - noPerm = "Nie wolno Ci tego zrobić.", - youreDead = "Jesteś martwy.", - injMajor = "Widoczne krytyczne obrażenia.", - injLittle = "Widoczne obrażenia.", - toggleESP = "Włącz/Wyłącz Admiński wallhack.", - chgName = "Zmień imię i nazwisko.", - chgNameDesc = "WprowadÅŗ nowę imię i nazwisko postaci poniżej.", - thirdpersonToggle = "Przełącz widok z trzeciej osoby", - thirdpersonClassic = "Używaj klasycznego widoku z trzeciej osoby", - equippedBag = "Torba którą przesunąłeś posiada przedmiot(y).", - useTip = "Używa przedmiotu.", - equipTip = "Zakłada przedmiot.", - unequipTip = "Zdejmuje przedmiot.", - consumables = "Towary konsumpcyjne.", - plyNotValid = "Nie patrzysz na prawidłowego gracza.", - restricted = "Zostałeś związany.", - viewProfile = "Obejrzyj profil Steam." -} + loading = "Ładowanie", + dbError = "Błąd połączenia z bazą danych", + unknown = "Nieznane", + noDesc = "Brak dostępnych opisów", + create = "Stwórz", + createTip = "Stwórz nową postać do gry.", + load = "Wczytaj", + loadTip = "Wybierz wcześniej stworzoną postać do gry.", + leave = "Opuszcz", + leaveTip = "Opuszcz obecny serwer.", + ["return"] = "Powrót", + returnTip = "Powróć do poprzedniego menu.", + name = "Imię", + desc = "Opis", + model = "Model", + attribs = "Atrybuty", + charCreateTip = "Wypełnij pola poniżej i naciśnij 'Zakończ', aby stworzyć swoją postać.", + invalid = "Podano nieprawidłowy %s", + descMinLen = "Twój opis musi mieć co najmniej %d znak(ów).", + player = "Gracz", + finish = "Zakończ", + finishTip = "Zakończ tworzenie postaci.", + needModel = "Musisz wybrać prawidłowy model postaci", + creating = "Twoja postać jest tworzona...", + unknownError = "Wystąpił nieznany błąd", + delConfirm = "Czy na pewno chcesz TRWALE usunąć %s?", + no = "Nie", + yes = "Tak", + itemInfo = "Nazwa: %s\nOpis: %s", + itemCreated = "Przedmiot pomyślnie stworzony.", + cloud_no_repo = "Podane repozytorium jest nieprawidłowe.", + cloud_no_plugin = "Podana wtyczka jest nieprawidłowa.", + inv = "Inwentarz", + plugins = "Wtyczki", + togglePlugins = "Przełącz wtyczki", + author = "Autor", + version = "Wersja", + characters = "Postacie", + settings = "Ustawienia", + config = "Konfiguracja", + chat = "Czat", + appearance = "Wygląd", + misc = "Różne", + oocDelay = "Musisz poczekać jeszcze %s sekund(y), zanim będziesz mógł ponownie używać czatu OOC.", + loocDelay = "Musisz poczekać jeszcze %s sekund(y), zanim będziesz mógł ponownie używać czatu LOOC.", + usingChar = "Już używasz tej postaci.", + itemNoExist = "Przepraszam, ale przedmiot, który chciałeś, nie istnieje.", + cmdNoExist = "Przepraszam, ale ta komenda nie istnieje.", + plyNoExist = "Przepraszam, ale nie znaleziono pasującego gracza.", + cfgSet = "%s ustawił \"%s\" na %s.", + drop = "Upuść", + dropTip = "Upuść ten przedmiot z twojego inwentarza.", + take = "WeÅŗ", + takeTip = "WeÅŗ ten przedmiot i umieść go w swoim inwentarzu.", + dTitle = "Drzwi niezakupione", + dTitleOwned = "Zakupione drzwi", + dIsNotOwnable = "Te drzwi nie mogą być zakupione.", + dIsOwnable = "Możesz zakupić te drzwi, naciskając F2.", + dMadeUnownable = "Zrobiłeś te drzwi niezakupionymi.", + dMadeOwnable = "Zrobiłeś te drzwi zakupionymi.", + dNotAllowedToOwn = "Nie masz uprawnień do zakupu tych drzwi.", + dSetDisabled = "Zrobiłeś te drzwi wyłączonymi.", + dSetNotDisabled = "Zrobiłeś te drzwi nie wyłączonymi.", + dSetHidden = "Zrobiłeś te drzwi ukrytymi.", + dSetNotHidden = "Zrobiłeś te drzwi nie ukrytymi.", + dSetParentDoor = "Ustawiłeś te drzwi jako drzwi nadrzędne.", + dCanNotSetAsChild = "Nie możesz ustawić drzwi nadrzędnych jako drzwi podrzędnych.", + dAddChildDoor = "Dodałeś te drzwi jako drzwi podrzędne.", + dRemoveChildren = "Usunąłeś wszystkie podrzędne drzwi dla tych drzwi.", + dRemoveChildDoor = "Usunąłeś te drzwi jako drzwi podrzędne.", + dNoParentDoor = "Nie masz ustawionego drzwi nadrzędnego.", + dOwnedBy = "Te drzwi są własnością %s.", + dConfigName = "Drzwi", + dSetFaction = "Te drzwi teraz należą do frakcji %s.", + dRemoveFaction = "Te drzwi już nie należą do żadnej frakcji.", + dNotValid = "Nie patrzysz na prawidłowe drzwi.", + canNotAfford = "Nie stać cię na zakup tego przedmiotu.", + dPurchased = "Zakupiłeś te drzwi za %s.", + dSold = "Sprzedałeś te drzwi za %s.", + notOwner = "Nie jesteś właścicielem tego.", + invalidArg = "Podano nieprawidłową wartość dla argumentu #%s.", + flagGive = "%s nadał %s flagę '%s'.", + flagGiveTitle = "Nadaj Flagi", + flagGiveDesc = "Nadaj następujące flagi graczowi.", + flagTake = "%s odebrał flagę '%s' od %s.", + flagTakeTitle = "Usuń Flagi", + flagTakeDesc = "Usuń następujące flagi graczowi.", + flagNoMatch = "Musisz mieć Flagi \"%s\" aby wykonać tę akcję.", + textAdded = "Dodałeś tekst.", + textRemoved = "Usunąłeś %s tekst(y).", + moneyTaken = "Znalazłeś %s.", + businessPurchase = "Zakupiłeś %s za %s.", + businessSell = "Sprzedałeś %s za %s.", + cChangeModel = "%s zmienił model %s na %s.", + cChangeName = "%s zmienił imię %s na %s.", + cChangeSkin = "%s zmienił skórkę %s na %s.", + cChangeGroups = "%s zmienił grupę ciała \"%s\" na %s.", + cChangeFaction = "%s przetransferował %s do frakcji %s.", + playerCharBelonging = "Ten przedmiot należy do innej postaci.", + business = "Biznes", + invalidFaction = "Podano nieprawidłową frakcję.", + limitFaction = "Ta frakcja jest pełna. Spróbuj ponownie później.", + spawnAdd = "Dodałeś punkt spawnu dla %s.", + spawnDeleted = "Usunąłeś %s punkt(y) spawnu.", + someone = "Ktoś", + rgnLookingAt = "Pozwól osobie, na którą patrzysz, cię rozpoznać.", + rgnWhisper = "Pozwól tym, którzy są w zasięgu szeptu, cię rozpoznać.", + rgnTalk = "Pozwól tym, którzy są w zasięgu rozmowy, cię rozpoznać.", + rgnYell = "Pozwól tym, którzy są w zasięgu krzyku, cię rozpoznać.", + icFormat = "%s mówi \"%s\"", + rollFormat = "%s rzucił %s.", + wFormat = "%s szepce \"%s\"", + yFormat = "%s krzyczy \"%s\"", + sbOptions = "Kliknij, aby zobaczyć opcje dla %s.", + spawnAdded = "Dodałeś punkt spawnu dla %s.", + whitelist = "%s dodał %s do białej listy frakcji %s.", + unwhitelist = "%s usunął %s z białej listy frakcji %s.", + gettingUp = "Teraz wstajesz...", + wakingUp = "Zdajesz sobie sprawę...", + Weapons = "Bronie", + checkout = "IdÅŗ do Kasy (%s)", + purchase = "Zakup", + purchasing = "Zakupy...", + success = "Sukces", + buyFailed = "Zakup nieudany.", + buyGood = "Zakup udany!", + shipment = "Dostawa", + shipmentDesc = "Ta dostawa należy do %s.", + class = "Klasa", + classes = "Klasy", + illegalAccess = "Nielegalny dostęp.", + becomeClassFail = "Nie udało się zostać %s.", + becomeClass = "Stałeś się %s.", + attribSet = "Ustawiłeś %s atrybut %s na %s.", + attribUpdate = "Dodałeś %s atrybut %s o %s.", + noFit = "Ten przedmiot nie mieści się w twoim inwentarzu.", + help = "Pomoc", + commands = "Komendy", + helpDefault = "Wybierz kategorię", + doorSettings = "Ustawienia drzwi", + sell = "Sprzedaj", + access = "Dostęp", + locking = "Zamykanie tego obiektu...", + unlocking = "Otwieranie tego obiektu...", + modelNoSeq = "Twój model nie obsługuje tej animacji.", + notNow = "Nie możesz teraz tego zrobić.", + faceWall = "Musisz stać twarzą do ściany, żeby to zrobić.", + faceWallBack = "Musisz stać plecami do ściany, żeby to zrobić.", + descChanged = "Zmieniłeś opis swojej postaci.", + charMoney = "Aktualnie masz %s.", + charFaction = "Jesteś członkiem frakcji %s.", + charClass = "Jesteś %s w frakcji.", + noSpace = "Inwentarz jest pełny.", + noOwner = "Właściciel jest nieprawidłowy.", + notAllowed = "Ta akcja jest niedozwolona.", + invalidIndex = "Indeks przedmiotu jest nieprawidłowy.", + invalidItem = "Obiekt przedmiotu jest nieprawidłowy.", + invalidInventory = "Obiekt inwentarza jest nieprawidłowy.", + home = "Dom", + charKick = "%s wykickował postać %s.", + charBan = "%s zbanował postać %s.", + charBanned = "Ta postać jest zbanowana.", + setMoney = "Ustawiłeś pieniądze %s na %s.", + itemPriceInfo = "Możesz zakupić ten przedmiot za %s.\nMożesz sprzedać ten przedmiot za %s", + free = "Darmowe", + vendorNoSellItems = "Nie ma przedmiotów do sprzedaży.", + vendorNoBuyItems = "Nie ma przedmiotów do zakupu.", + vendorSettings = "Ustawienia sprzedawcy", + vendorUseMoney = "Czy sprzedawca powinien używać pieniędzy?", + vendorNoBubble = "Ukryj dymek sprzedawcy?", + mode = "Tryb", + price = "Cena", + stock = "Zapas", + none = "Brak", + vendorBoth = "Kup i Sprzedaj", + vendorBuy = "Tylko Kup", + vendorSell = "Tylko Sprzedaj", + maxStock = "Maksymalny Zapas", + vendorFaction = "Edytor Frakcji", + buy = "Zakup", + vendorWelcome = "Witaj w moim sklepie, czym mogę służyć?", + vendorBye = "Do zobaczenia następnym razem!", + charSearching = "Już wyszukujesz inną postać, proszę czekać.", + charUnBan = "%s odbanował postać %s.", + charNotBanned = "Ta postać nie jest zbanowana.", + storPass = "Ustawiłeś hasło do tego schowka na %s.", + storPassRmv = "Usunąłeś hasło tego schowka.", + storPassWrite = "Podaj hasło.", + wrongPassword = "Podano złe hasło.", + cheapBlur = "Wyłączyć rozmycie? (Zwiększa FPS)", + quickSettings = "Szybkie ustawienia", + vmSet = "Ustawiłeś pocztę głosową.", + vmRem = "Usunąłeś pocztę głosową.", + altLower = "Ukryć ręce podczas opuszczenia?", + noPerm = "Nie masz uprawnień do tego.", + youreDead = "Jesteś martwy", + injMajor = "Wydajesz się być ciężko ranny.", + injLittle = "Wydajesz się być ranny", + toggleObserverTP = "Przełącz teleportację obserwatora", + toggleESP = "Przełącz ESP administratora", + toggleESPAdvanced = "Zaawansowany tryb ESP", + chgName = "Zmień imię", + chgNameDesc = "WprowadÅŗ nowe imię postaci poniżej.", + thirdpersonToggle = "Przełącz tryb widoku z trzeciej osoby", + thirdpersonClassic = "Użyj klasycznego widoku z trzeciej osoby", + thirdpersonConfig = "Konfiguracja widoku z trzeciej osoby", + equippedBag = "Przedmioty wyposażone nie mogą być przenoszone między inwentarzami.", + useTip = "Używa przedmiot.", + equipTip = "Wyposaża przedmiot.", + unequipTip = "Usuwa wyposażenie przedmiot.", + consumables = "Środki spożywcze", + plyNotValid = "Nie patrzysz na prawidłowego gracza.", + restricted = "Jesteś ograniczony.", + viewProfile = "Zobacz profil Steam", + salary = "Otrzymałeś %s z twojej pensji.", + noRecog = "Nie rozpoznajesz tej osoby.", + curTime = "Obecny czas to %s.", + vendorEditor = "Edytor sprzedawcy", + edit = "Edytuj", + disable = "Wyłącz", + vendorPriceReq = "Podaj nową cenę tego przedmiotu.", + vendorEditCurStock = "Edytuj bieżący zapas", + you = "Ty", + vendorSellScale = "Skala ceny sprzedaży", + vendorNoTrade = "Nie możesz handlować z tym sprzedawcą.", + vendorNoMoney = "Ten sprzedawca nie stać na ten przedmiot.", + vendorNoStock = "Ten sprzedawca nie ma tego przedmiotu w zapasach.", + contentTitle = "Brakująca zawartość NutScript", + contentWarning = "Nie masz zamontowanej zawartości NutScript. Może to skutkować brakiem pewnych funkcji.\nCzy chcesz otworzyć stronę Warsztatu z zawartością NutScript?", + flags = "Flagi", + chooseTip = "Wybierz tę postać, aby grać.", + deleteTip = "Usuń tę postać.", + moneyLeft = "Twoje pieniądze: ", + currentMoney = "Pozostałe pieniądze: ", + -- 2018-patch + ammoLoadAll = "Załaduj wszystko", + ammoLoadAmount = "Załaduj %s", + ammoLoadCustom = "Załaduj...", + split = "Podziel", + splitHelp = "WprowadÅŗ liczbę, aby podzielić.", + splitHalf = "Podziel 1/2", + splitQuarter = "Podziel 1/4", + recognize = "Pozwól tej postaci cię rozpoznać.", + recognized = "Podarowałeś tej postaci swoją tożsamość.", + already_recognized = "Ta postać już cię zna.", + isTied = "Ta osoba jest związana.", + tying = "Wiązanie", + untying = "Rozwiązywanie", + beingUntied = "Jesteś rozwiązywany.", + beingTied = "Jesteś wiązany.", + sameOutfitCategory = "Jesteś już ubrany w ten typ ubioru.", + noBusiness = "Obecnie nie masz dostępu do zakupów.", + panelRemoved = "Usunąłeś %s panele 3D.", + panelAdded = "Dodałeś panel 3D.", + itemOnGround = "Twój przedmiot został umieszczony na ziemi.", + forbiddenActionStorage = "Nie możesz wykonywać tej akcji z przechowywanym przedmiotem.", + cantDropBagHasEquipped = "Nie możesz upuścić torby, która ma założony przedmiot.", + -- 2021-patch + lookToUseAt = "Musisz patrzeć na kogoś, żeby użyć '@'", + mustProvideString = "Musisz podać ciąg znaków dla zmiennej", + -- 2023-patch + togglePluginsDesc = "Wybrane wtyczki zostaną wyłączone.\nMapa musi zostać ponownie uruchomiona po wprowadzeniu zmian!", +} \ No newline at end of file diff --git a/gamemode/languages/sh_portuguese.lua b/gamemode/languages/sh_portuguese.lua index 25c570c5..e54ee74b 100644 --- a/gamemode/languages/sh_portuguese.lua +++ b/gamemode/languages/sh_portuguese.lua @@ -1,267 +1,267 @@ -NAME = "Portuguese" ---//Contact Barata#2411 if you have any translation change suggestion\\---- - +NAME = "Portuguese" LANGUAGE = { - loading = "A carregar", - dbError = "Erro ao conectar Ć  database", + loading = "Carregando", + dbError = "Falha na conexĆ£o com o banco de dados", unknown = "Desconhecido", noDesc = "Nenhuma descrição disponĆ­vel", create = "Criar", - createTip = "Criar um novo personagem para jogar como.", + createTip = "Criar um novo personagem para jogar.", load = "Carregar", - loadTip = "Escolhe um personagem que jĆ” tenhas criado.", + loadTip = "Escolher um personagem previamente criado para jogar.", leave = "Sair", leaveTip = "Sair do servidor atual.", ["return"] = "Retornar", - returnTip = "Retornar ao menu anterior.", + returnTip = "Voltar ao menu anterior.", name = "Nome", desc = "Descrição", - attribs = "Atributos", - charCreateTip = "Preenche os campos abaixo e pressiona 'Acabar' para criar o teu personagem.", - invalid = "Deste uma %s invĆ”lida", - descMinLen = "A tua descrição tĆŖm de ter pelo menos %d caracteres.", model = "Modelo", + attribs = "Atributos", + charCreateTip = "Preencha os campos abaixo e pressione 'Concluir' para criar seu personagem.", + invalid = "VocĆŖ forneceu um(a) %s invĆ”lido(a)", + descMinLen = "Sua descrição deve ter pelo menos %d caractere(s).", player = "Jogador", - finish = "Acabar", - finishTip = "Acabar de criar o teu personagem.", - needModel = "Escolhe um modelo vĆ”lido", - creating = "O teu personagem estĆ” a ser criado...", - unknownError = "Ocorreu um erro desconhecido.", - delConfirm = "Tens a certeza que queres apagar %s PERMANENTEMENTE?", + finish = "Concluir", + finishTip = "Concluir a criação do personagem.", + needModel = "VocĆŖ precisa escolher um modelo vĆ”lido", + creating = "Seu personagem estĆ” sendo criado...", + unknownError = "Um erro desconhecido ocorreu", + delConfirm = "VocĆŖ tem certeza de que deseja EXCLUIR PERMANENTEMENTE %s?", no = "NĆ£o", yes = "Sim", itemInfo = "Nome: %s\nDescrição: %s", - itemCreated = "Objecto criado com sucesso.", - cloud_no_repo = "O repositório providenciado nĆ£o Ć© valido.", - cloud_no_plugin = "O plugin providenciado nĆ£o Ć© vĆ”lido.", + itemCreated = "Item criado com sucesso.", + cloud_no_repo = "O repositório fornecido nĆ£o Ć© vĆ”lido.", + cloud_no_plugin = "O plugin fornecido nĆ£o Ć© vĆ”lido.", inv = "InventĆ”rio", plugins = "Plugins", + togglePlugins = "Ativar/desativar plugins", author = "Autor", version = "VersĆ£o", characters = "Personagens", - settings = "DefiniƧƵes", - config = "Configuração", + settings = "ConfiguraƧƵes", + config = "Config", chat = "Chat", - appearance = "Aparencia", + appearance = "AparĆŖncia", misc = "Diversos", - oocDelay = "Deves esperar %s mais segundos antes de usares o OOC de novo.", - loocDelay = "Deves esperar %s mais segundos antes de usares o LOOC de novo.", - usingChar = "JĆ” estĆ”s a usar este personagem.", - notAllowed = "Desculpa, nĆ£o podes fazer isto.", - itemNoExist = "Desculpa, o item que pediste nĆ£o existe.", - cmdNoExist = "Desculpa, o comando nĆ£o existe.", - plyNoExist = "Desculpa, um jogador que procuras nĆ£o foi encontrado.", - cfgSet = "%s mudou \"%s\" para %s.", + oocDelay = "VocĆŖ deve esperar mais %s segundo(s) antes de usar o OOC novamente.", + loocDelay = "VocĆŖ deve esperar mais %s segundo(s) antes de usar o LOOC novamente.", + usingChar = "VocĆŖ jĆ” estĆ” usando este personagem.", + itemNoExist = "Desculpe, o item que vocĆŖ solicitou nĆ£o existe.", + cmdNoExist = "Desculpe, esse comando nĆ£o existe.", + plyNoExist = "Desculpe, nenhum jogador correspondente foi encontrado.", + cfgSet = "%s definiu \"%s\" para %s.", drop = "Largar", - dropTip = "Solta este objecto do teu inventĆ”rio.", - take = "Levar", - takeTip = "Leva este item e pƵe no teu inventĆ”rio.", - dTitle = "Porta sem dono", + dropTip = "Larga este item do seu inventĆ”rio.", + take = "Pegar", + takeTip = "Pegar este item e colocĆ”-lo em seu inventĆ”rio.", + dTitle = "Porta nĆ£o pertencente", dTitleOwned = "Porta Comprada", - dIsNotOwnable = "Esta porta nĆ£o pode ser comprada.", - dIsOwnable = "Podes comprar esta porta ao clicar F2.", - dMadeUnownable = "Fizeste esta porta nĆ£o ser comprĆ”vel.", - dMadeOwnable = "Fizeste esta porta ser compravel.", - dNotAllowedToOwn = "NĆ£o podes comprar esta porta.", - dSetDisabled = "Desativaste esta porta.", - dSetNotDisabled = "Esta porta jĆ” nĆ£o estĆ” desativada.", - dSetHidden = "Escondeste a porta.", - dSetNotHidden = "Esta porta jĆ” nĆ£o estĆ” escondida.", - dSetParentDoor = "Tornaste esta porta numa porta parente.", - dCanNotSetAsChild = "NĆ£o pode tornar esta porta parente numa porta crianƧa.", - dAddChildDoor = "Adicionaste esta porta como porta crianƧa.", - dRemoveChildren = "Removeste todos os filhos de esta porta.", - dRemoveChildDoor = "Removeste esta porta de ser filho.", - dNoParentDoor = "NĆ£o tens uma porta parente definida.", - dOwnedBy = "Este porta Ć© propriedade de %s.", + dIsNotOwnable = "Esta porta nĆ£o pode ser possuĆ­da.", + dIsOwnable = "VocĆŖ pode comprar esta porta pressionando F2.", + dMadeUnownable = "VocĆŖ tornou esta porta nĆ£o-possuĆ­vel.", + dMadeOwnable = "VocĆŖ tornou esta porta possuĆ­vel.", + dNotAllowedToOwn = "VocĆŖ nĆ£o estĆ” autorizado a possuir esta porta.", + dSetDisabled = "VocĆŖ tornou esta porta desativada.", + dSetNotDisabled = "VocĆŖ tornou esta porta nĆ£o mais desativada.", + dSetHidden = "VocĆŖ tornou esta porta oculta.", + dSetNotHidden = "VocĆŖ tornou esta porta nĆ£o mais oculta.", + dSetParentDoor = "VocĆŖ definiu esta porta como sua porta principal.", + dCanNotSetAsChild = "VocĆŖ nĆ£o pode definir a porta principal como uma porta secundĆ”ria.", + dAddChildDoor = "VocĆŖ adicionou esta porta como uma porta secundĆ”ria.", + dRemoveChildren = "VocĆŖ removeu todas as portas secundĆ”rias para esta porta.", + dRemoveChildDoor = "VocĆŖ removeu esta porta como uma porta secundĆ”ria.", + dNoParentDoor = "VocĆŖ nĆ£o tem uma porta principal definida.", + dOwnedBy = "Esta porta pertence a %s.", dConfigName = "Portas", - dSetFaction = "Esta porta pertence Ć  facção %s.", - dRemoveFaction = "Esta porta jĆ” nĆ£o pertence a uma facção.", - dNotValid = "NĆ£o estĆ”s a olhar para uma porta vĆ”lida.", - canNotAfford = "NĆ£o tens dinheiro suficiente para comprar isto.", - dPurchased = "Compraste esta porta por %s.", - dSold = "Vendeste esta porta por %s.", - notOwner = "NĆ£o Ć©s o dono disto.", - invalidArg = "Deste um valor invalido para o argumento #%s.", - flagGive = "%s deu %s '%s' flags.", - flagGiveTitle = "Dar Flags", - flagGiveDesc = "Dar as flags seguintes ao jogador.", - flagTake = "%s tirou '%s' flags de %s.", - flagTakeTitle = "Tirar Flags", - flagTakeDesc = "Remover Flags do jogador.", - flagNoMatch = "Tu deves ter a Flag \"%s\" para fazeres isto.", - textAdded = "Adicionaste texto.", - textRemoved = "Removeste %s textos.", - moneyTaken = "Encontraste %s.", - businessPurchase = "Compraste %s por %s.", - businessSell = "Vendeste %s por %s.", + dSetFaction = "Esta porta agora pertence Ć  facção %s.", + dRemoveFaction = "Esta porta nĆ£o pertence mais a nenhuma facção.", + dNotValid = "VocĆŖ nĆ£o estĆ” olhando para uma porta vĆ”lida.", + canNotAfford = "VocĆŖ nĆ£o pode pagar por esta compra.", + dPurchased = "VocĆŖ comprou esta porta por %s.", + dSold = "VocĆŖ vendeu esta porta por %s.", + notOwner = "VocĆŖ nĆ£o Ć© o proprietĆ”rio disso.", + invalidArg = "VocĆŖ forneceu um valor invĆ”lido para o argumento #%s.", + flagGive = "%s deu a %s a(s) bandeira(s) '%s'.", + flagGiveTitle = "Dar Bandeiras", + flagGiveDesc = "DĆŖ as seguintes bandeiras ao jogador.", + flagTake = "%s retirou a(s) bandeira(s) '%s' de %s.", + flagTakeTitle = "Retirar Bandeiras", + flagTakeDesc = "Remova as seguintes bandeiras do jogador.", + flagNoMatch = "VocĆŖ precisa ter bandeira(s) \"%s\" para executar esta ação.", + textAdded = "VocĆŖ adicionou um texto.", + textRemoved = "VocĆŖ removeu %s texto(s).", + moneyTaken = "VocĆŖ encontrou %s.", + businessPurchase = "VocĆŖ comprou %s por %s.", + businessSell = "VocĆŖ vendeu %s por %s.", cChangeModel = "%s mudou o modelo de %s para %s.", cChangeName = "%s mudou o nome de %s para %s.", cChangeSkin = "%s mudou a skin de %s para %s.", - cChangeGroups = "%s mudou o bodygroup de %s \"%s\" para %s.", + cChangeGroups = "%s mudou o grupo de corpo \"%s\" de %s para %s.", cChangeFaction = "%s transferiu %s para a facção %s.", - playerCharBelonging = "Isto pertence a outro personagem.", + playerCharBelonging = "Este objeto pertence a outro personagem seu.", business = "Negócios", - invalidFaction = "Deste uma facção invĆ”lida.", - limitFaction = "Esta facção estĆ” cheia. Tenta mais tarde.", - spawnAdd = "Adicionaste um spawn para a %s.", - spawnDeleted = "Removeste %s spawn point(s).", + invalidFaction = "VocĆŖ forneceu uma facção invĆ”lida.", + limitFaction = "Esta facção estĆ” cheia. Tente novamente mais tarde.", + spawnAdd = "VocĆŖ adicionou um ponto de spawn para %s.", + spawnDeleted = "VocĆŖ removeu %s ponto(s) de spawn.", someone = "AlguĆ©m", - rgnLookingAt = "Permite que a pessoa te reconheƧa.", - rgnWhisper = "Permite que a(s) pessoa(s) na area de sussuro te reconheƧam.", - rgnTalk = "Permite que a(s) pessoa(s) na area de fala te reconheƧam.", - rgnYell = "Permite que a(s) pessoa(s) na area de gritar te reconheƧam.", + rgnLookingAt = "Permitir que a pessoa que vocĆŖ estĆ” olhando o reconheƧa.", + rgnWhisper = "Permitir que aqueles em um sussurro reconheƧam vocĆŖ.", + rgnTalk = "Permitir que aqueles em uma conversa reconheƧam vocĆŖ.", + rgnYell = "Permitir que aqueles em um grito reconheƧam vocĆŖ.", icFormat = "%s diz \"%s\"", - rollFormat = "%s deu roll a %s.", + rollFormat = "%s rolou %s.", wFormat = "%s sussurra \"%s\"", yFormat = "%s grita \"%s\"", - sbOptions = "Clica para veres as opƧƵes para %s.", - spawnAdded = "Adicionaste um spawn para %s.", - whitelist = "%s deu uma whitelist a %s para a facção %s.", - unwhitelist = "%s tirou uma whitelist a %s para a facção %s.", - gettingUp = "EstĆ”s a levantar-te...", - wakingUp = "EstĆ”s a ganhar consciĆŖncia...", + sbOptions = "Clique para ver opƧƵes para %s.", + spawnAdded = "VocĆŖ adicionou um spawn para %s.", + whitelist = "%s incluiu %s na whitelist da facção %s.", + unwhitelist = "%s excluiu %s da whitelist da facção %s.", + gettingUp = "VocĆŖ estĆ” se levantando agora...", + wakingUp = "VocĆŖ estĆ” recuperando a consciĆŖncia...", Weapons = "Armas", - checkout = "Vai para o pagamento (%s)", + checkout = "Ir para o Checkout (%s)", purchase = "Comprar", purchasing = "Comprando...", success = "Sucesso", - buyFailed = "Compra Falhada.", - buyGood = "Compra bem sucedida!", + buyFailed = "Compra falhou.", + buyGood = "Compra bem-sucedida!", shipment = "Remessa", shipmentDesc = "Esta remessa pertence a %s.", - class = "Class", + class = "Classe", classes = "Classes", - illegalAccess = "Acesso Ilegal.", - becomeClassFail = "Falhaste a tornar-te %s.", - becomeClass = "Tornaste-te %s.", - attribSet = "Definiste %s %s para %s.", - attribUpdate = "Adicionaste %s %s para %s.", - noFit = "Este item nĆ£o cabe no teu inventĆ”rio.", + illegalAccess = "Acesso ilegal.", + becomeClassFail = "Falha ao se tornar %s.", + becomeClass = "VocĆŖ se tornou %s.", + attribSet = "VocĆŖ definiu %s's %s como %s.", + attribUpdate = "VocĆŖ adicionou %s's %s por %s.", + noFit = "Este item nĆ£o cabe em seu inventĆ”rio.", help = "Ajuda", commands = "Comandos", - helpDefault = "Selecionar Categoria", - doorSettings = "DefiniƧƵes da porta", + helpDefault = "Selecione uma categoria", + doorSettings = "ConfiguraƧƵes da Porta", sell = "Vender", access = "Acesso", locking = "Trancando esta entidade...", - unlocking = "Desbloqueando esta entidade...", - modelNoSeq = "O teu modelo nĆ£o suporta este ato.", - notNow = "NĆ£o Ć©s permitido a fazer isto agora.", - faceWall = "Deves estar a olhar para uma parede para fazer isto.", - faceWallBack = "Deves estar de costas para uma parede para fazer isto.", - descChanged = "Mudaste a aparĆŖncia do teu personagem.", - charMoney = "Tens %s.", - charFaction = "Ɖs membro da facção %s.", - charClass = "Tu %s da facção.", + unlocking = "Destrancando esta entidade...", + modelNoSeq = "Seu modelo nĆ£o suporta essa ação.", + notNow = "VocĆŖ nĆ£o tem permissĆ£o para fazer isso agora.", + faceWall = "VocĆŖ precisa estar de frente para a parede para fazer isso.", + faceWallBack = "Sua parte de trĆ”s deve estar voltada para a parede para fazer isso.", + descChanged = "VocĆŖ alterou a descrição do seu personagem.", + charMoney = "VocĆŖ tem atualmente %s.", + charFaction = "VocĆŖ Ć© um membro da facção %s.", + charClass = "VocĆŖ Ć© %s da facção.", noSpace = "InventĆ”rio estĆ” cheio.", - noOwner = "O dono Ć© invalido.", - invalidIndex = "O Ć­ndice deste item Index Ć© invalido.", - invalidItem = "O objeto deste item Index Ć© invalido.", - invalidInventory = "O objecto do inventĆ”rio Ć© invaldio.", - home = "Home", - charKick = "%s deu kick ao personagem %s.", + noOwner = "O proprietĆ”rio Ć© invĆ”lido.", + notAllowed = "Esta ação nĆ£o Ć© permitida.", + invalidIndex = "O ƍndice do Item Ć© InvĆ”lido.", + invalidItem = "O Objeto do Item Ć© InvĆ”lido.", + invalidInventory = "O Objeto de InventĆ”rio Ć© InvĆ”lido.", + home = "InĆ­cio", + charKick = "%s chutou o personagem %s.", charBan = "%s baniu o personagem %s.", charBanned = "Este personagem estĆ” banido.", - setMoney = "Definiste o dinheiro de %s para %s.", - itemPriceInfo = "Podes comprar este item por %s.\nPodes vender este item por %s", - free = "De GraƧa", - vendorNoSellItems = "NĆ£o existem items para vender.", - vendorNoBuyItems = "NĆ£o existem items para comprar.", - vendorSettings = "DefiniƧƵes do vendedor", - vendorUseMoney = "O vendedor deve usar dinheiro?", - vendorNoBubble = "Esconder a bolha do vendedor?", + setMoney = "VocĆŖ definiu o dinheiro de %s como %s.", + itemPriceInfo = "VocĆŖ pode comprar este item por %s.\nVocĆŖ pode vender este item por %s", + free = "GrĆ”tis", + vendorNoSellItems = "NĆ£o hĆ” itens para vender.", + vendorNoBuyItems = "NĆ£o hĆ” itens para comprar.", + vendorSettings = "ConfiguraƧƵes do Vendedor", + vendorUseMoney = "Vendedor deve usar dinheiro?", + vendorNoBubble = "Esconder balĆ£o do vendedor?", mode = "Modo", price = "PreƧo", - stock = "Stock", + stock = "Estoque", none = "Nenhum", vendorBoth = "Comprar e Vender", vendorBuy = "Apenas Comprar", vendorSell = "Apenas Vender", - maxStock = "Stock MĆ”ximo", - vendorFaction = "Editor de FacƧƵes", + maxStock = "Estoque MĆ”ximo", + vendorFaction = "Editor de Facção", buy = "Comprar", - vendorWelcome = "Bem vindo Ć  minha loja, o que Ć© que te posso arranjar hoje?", - vendorBye = "Volta brevemente!", - charSearching = "JĆ” estĆ”s a procurar um personagem, espera por favor.", + vendorWelcome = "Bem-vindo Ć  minha loja, o que posso pegar para vocĆŖ hoje?", + vendorBye = "Volte sempre!", + charSearching = "VocĆŖ jĆ” estĆ” procurando por outro personagem, por favor, espere.", charUnBan = "%s desbaniu o personagem %s.", charNotBanned = "Este personagem nĆ£o estĆ” banido.", - storPass = "Definiste a password deste armazĆ©m para %s.", - storPassRmv = "Removeste a password deste armazĆ©m.", - storPassWrite = "Mete a password.", - wrongPassword = "Meteste a password errada.", - cheapBlur = "Desativar obscurecimento? (Aumenta os FPS)", - quickSettings = "DefiniƧƵes rĆ”pidas", - vmSet = "Definiste voicemail.", - vmRem = "Removeste o teu voicemail.", + storPass = "VocĆŖ definiu a senha deste armazenamento como %s.", + storPassRmv = "VocĆŖ removeu a senha deste armazenamento.", + storPassWrite = "Digite a senha.", + wrongPassword = "VocĆŖ digitou a senha errada.", + cheapBlur = "Desativar o desfoque? (Aumenta o FPS)", + quickSettings = "ConfiguraƧƵes RĆ”pidas", + vmSet = "VocĆŖ definiu sua caixa postal.", + vmRem = "VocĆŖ removeu sua caixa postal.", altLower = "Esconder mĆ£os quando abaixadas?", - noPerm = "NĆ£o estĆ”s permitido a fazer isto.", - youreDead = "Tu estĆ”s morto", - injMajor = "Parece estar criticamente ferido.", - injLittle = "Parece magoado", - toggleObserverTP = "Alternar teleportador do Observer", - toggleESP = "Alternar ESP de Admin", - toggleESPAdvanced = "Modo avanƧado do ESP", - chgName = "Mudar nome", - chgNameDesc = "PƵe o novo nome do personagem abaixo.", - thirdpersonToggle = "Alternar Terceira Pessoa", - thirdpersonClassic = "Usar Terceira Pessoa clĆ”ssica", - thirdpersonConfig = "Configuração da Terceira Pessoa", - equippedBag = "items equipados nĆ£o podem ser movidos por inventarios.", - useTip = "Usa o item", - equipTip = "Equipa o item.", - unequipTip = "Desequipa o item.", + noPerm = "VocĆŖ nĆ£o tem permissĆ£o para fazer isso.", + youreDead = "VocĆŖ estĆ” morto", + injMajor = "Parece gravemente ferido.", + injLittle = "Parece ferido", + toggleObserverTP = "Alternar teletransporte de observador", + toggleESP = "Alternar ESP de Administrador", + toggleESPAdvanced = "Modo AvanƧado de ESP", + chgName = "Mudar Nome", + chgNameDesc = "Digite o novo nome do personagem abaixo.", + thirdpersonToggle = "Alternar VisĆ£o de Terceira Pessoa", + thirdpersonClassic = "Usar VisĆ£o de Terceira Pessoa ClĆ”ssica", + thirdpersonConfig = "Configuração de Terceira Pessoa", + equippedBag = "Itens equipados nĆ£o podem ser movidos entre inventĆ”rios.", + useTip = "Usa o item.", + equipTip = "Equipar o item.", + unequipTip = "Desquipar o item.", consumables = "ConsumĆ­veis", - plyNotValid = "NĆ£o estĆ”s a olhar para um jogador valido.", - restricted = "Foste contido.", - viewProfile = "Ver perfil Steam", - salary = "Recebeste %s do teu salĆ”rio.", - noRecog = "NĆ£o reconheces esta pessoa.", - curTime = "SĆ£o %s.", - vendorEditor = "Editar Vendedor", + plyNotValid = "VocĆŖ nĆ£o estĆ” olhando para um jogador vĆ”lido.", + restricted = "VocĆŖ estĆ” restrito.", + viewProfile = "Ver Perfil Steam", + salary = "VocĆŖ recebeu %s do seu salĆ”rio.", + noRecog = "VocĆŖ nĆ£o reconhece esta pessoa.", + curTime = "O horĆ”rio atual Ć© %s.", + vendorEditor = "Editor de Vendedor", edit = "Editar", - disable = "Desabilitar", - vendorPriceReq = "PƵe o novo preƧo para este item.", - vendorEditCurStock = "Edit Current Stock", - you = "Tu", - vendorSellScale = "Escala do PreƧo de Venda", - vendorNoTrade = "Tu nĆ£o podes trocar com este vendedor.", - vendorNoMoney = "Este vendedor nĆ£o tĆŖm dinheiro suficiente para esse item.", - vendorNoStock = "Este vendedor nĆ£o tĆŖm esse item em stock.", - contentTitle = "ConteĆŗdo NutScript nĆ£o encontrado", - contentWarning = "NĆ£o tens o conteĆŗdo do NutScript montado. Isto pode resultar em alguns recursos nĆ£o funcionarem .\nO conteĆŗdo do Nutscript foi mudado para o do rebel1324.\nQueres abrir a pagina da loja para o conteĆŗdo do NutScript?", - flags = "Flags", - chooseTip = "Escolhe este personagem para jogares.", - deleteTip = "Apagar este personagem.", - moneyLeft = "O teu dinheiro: ", + disable = "Desativar", + vendorPriceReq = "Digite o novo preƧo para este item.", + vendorEditCurStock = "Editar Estoque Atual", + you = "VocĆŖ", + vendorSellScale = "Escala de preƧo de venda", + vendorNoTrade = "VocĆŖ nĆ£o pode negociar com este vendedor.", + vendorNoMoney = "Este vendedor nĆ£o pode pagar por esse item.", + vendorNoStock = "Este vendedor nĆ£o tem esse item em estoque.", + contentTitle = "ConteĆŗdo do NutScript Ausente", + contentWarning = "VocĆŖ nĆ£o tem o conteĆŗdo do NutScript montado. Isso pode resultar em algumas funcionalidades ausentes.\nO endereƧo do conteĆŗdo do Nutscript foi alterado para o de rebel1324.\nGostaria de abrir a pĆ”gina da Oficina para o conteĆŗdo do NutScript?", + flags = "Bandeiras", + chooseTip = "Escolha este personagem para jogar com.", + deleteTip = "Excluir este personagem.", + moneyLeft = "Seu Dinheiro: ", currentMoney = "Dinheiro Restante: ", - - -- 2018 patch - - ammoLoadAll = "Carregar tudo", + -- 2018-patch + ammoLoadAll = "Carregar Tudo", ammoLoadAmount = "Carregar %s", ammoLoadCustom = "Carregar...", split = "Dividir", - splitHelp = "Mete um nĆŗmero para dividir.", + splitHelp = "Digite um nĆŗmero para dividir.", splitHalf = "Dividir 1/2", splitQuarter = "Dividir 1/4", - recognize = "Permite que este personagem te reconheƧa.", - recognized = "Deste a tua identidade a este personagem.", + recognize = "Permitir que este personagem o reconheƧa.", + recognized = "VocĆŖ deu sua identidade a este personagem.", already_recognized = "Este personagem jĆ” te conhece.", - isTied = "Esta personagem jĆ” estĆ” atada.", - tying = "Atando", - untying = "Desatando", - beingUntied = "EstĆ”s a ser desatado.", - beingTied = "EstĆ”s a ser atado.", - sameOutfitCategory = "JĆ” estĆ”s a vestir uma roupa deste tipo.", - noBusiness = "NĆ£o podes comprar nada.", - panelRemoved = "Removeste %s 3D panels.", - panelAdded = "Adicionaste 1 3D panel.", - itemOnGround = "O teu item foi colocado no chĆ£o.", - forbiddenActionStorage = "NĆ£o podes fazer isto com itens armazenados.", - cantDropBagHasEquipped = "NĆ£o podes largar uma mala equipada.", - - -- 2021 patch - lookToUseAt = "Precisas de estar a olhar para alguĆ©m para usar '@'", - mustProvideString = "Deves dar uma string para a variĆ”vel", + isTied = "Esta pessoa estĆ” amarrada.", + tying = "Amarrando", + untying = "Desamarrando", + beingUntied = "VocĆŖ estĆ” sendo desamarrado.", + beingTied = "VocĆŖ estĆ” sendo amarrado.", + sameOutfitCategory = "VocĆŖ jĆ” estĆ” usando esse tipo de roupa.", + noBusiness = "VocĆŖ nĆ£o estĆ” autorizado a comprar nada no momento.", + panelRemoved = "VocĆŖ removeu %s painel(ns) 3D.", + panelAdded = "VocĆŖ adicionou um painel 3D.", + itemOnGround = "Seu item foi colocado no chĆ£o.", + forbiddenActionStorage = "VocĆŖ nĆ£o pode fazer essa ação com um item guardado.", + cantDropBagHasEquipped = "VocĆŖ nĆ£o pode soltar a bolsa que possui um item equipado.", + -- 2021-patch + lookToUseAt = "Olhe para alguĆ©m para usar '@'", + mustProvideString = "VocĆŖ deve fornecer uma string para a variĆ”vel", + -- 2023-patch + togglePluginsDesc = "Os Plugins selecionados serĆ£o desativados.\nO mapa deve ser reiniciado após fazer as alteraƧƵes!", } + diff --git a/gamemode/languages/sh_russian.lua b/gamemode/languages/sh_russian.lua index 0aceb1ac..4b746b04 100644 --- a/gamemode/languages/sh_russian.lua +++ b/gamemode/languages/sh_russian.lua @@ -1,6 +1,6 @@  --[[ -Russian translation by: +Russian translation by: Shadow Nova (http://steamcommunity.com/profiles/76561197989134302), Schwarz Kruppzo (http://steamcommunity.com/id/schwarzkruppzo), Neon (http://steamcommunity.com/id/ru_neon), @@ -11,288 +11,269 @@ Tov (https://steamcommunity.com/id/TOVARISCHPOOTIS) NAME = "Русский" LANGUAGE = { - loading = "Š—Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ŃŃ", - dbError = "ŠŸŠ¾Š“ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŠµ Šŗ базе Ганных ŠæŃ€Š¾Š²Š°Š»ŠøŠ»Š¾ŃŃŒ", - unknown = "ŠŠµŠøŠ·Š²ŠµŃŃ‚Š½Š¾", - noDesc = "ŠžŠæŠøŃŠ°Š½ŠøŠµ Š¾Ń‚ŃŃƒŃ‚ŃŃ‚Š²ŃƒŠµŃ‚", - create = "Š”Š¾Š·Š“Š°Ń‚ŃŒ", - createTip = "Š”Š¾Š·Š“Š°Ń‚ŃŒ нового персонажа, за которого вы Š±ŃƒŠ“ŠµŃ‚Šµ ŠøŠ³Ń€Š°Ń‚ŃŒ.", - load = "Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ", - loadTip = "Выберите ранее созГанного вами персонажа.", - leave = "Выйти", - leaveTip = "ŠŸŠ¾ŠŗŠøŠ½ŃƒŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ сервер.", - ["return"] = "Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ", - returnTip = "Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ Šŗ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ¼Ńƒ Š¼ŠµŠ½ŃŽ.", - name = "Š˜Š¼Ń", - desc = "ŠžŠæŠøŃŠ°Š½ŠøŠµ", - model = "МоГель", - attribs = "ŠŃ‚Ń€ŠøŠ±ŃƒŃ‚Ń‹", - charCreateTip = "Заполните строчки ниже Šø нажмите 'Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ', чтобы ŃŠ¾Š·Š“Š°Ń‚ŃŒ вашего персонажа.", - invalid = "Š’Ń‹ ŠæŃ€ŠµŠ“ŃŠŃŠ²ŠøŠ»Šø Š½ŠµŠ“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Ń‹Š¹ %s", - descMinLen = "Š’Š°ŃˆŠµ описание Голжно Ń…Š¾Ń‚Ń бы ŠøŠ¼ŠµŃ‚ŃŒ %d количество букв.", - player = "Š˜Š³Ń€Š¾Šŗ", - finish = "Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ", - finishTip = "Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ созГание персонажа.", - needModel = "Š’Ń‹ Голжны Š²Ń‹Š±Ń€Š°Ń‚ŃŒ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½ŃƒŃŽ моГель", - creating = "Š’Š°Ńˆ персонаж ŃŠ¾Š·Š“Š°Ń‘Ń‚ŃŃ...", - unknownError = "ŠžŠ±Š½Š°Ń€ŃƒŠ¶ŠµŠ½Š° Š½ŠµŠøŠ·Š²ŠµŃŃ‚Š½Š°Ń ошибка", - delConfirm = "Š’Ń‹ ŃƒŠ²ŠµŃ€ŠµŠ½Ń‹, что хотите ŠŠŠ’ДЕГДА ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ %s?", - no = "ŠŠµŃ‚", - yes = "Да", - choose = "Š’Ń‹Š±Ń€Š°Ń‚ŃŒ", - delete = "Š£Š“Š°Š»ŠøŃ‚ŃŒ", - chooseTip = "Š’Ń‹Š±Ń€Š°Ń‚ŃŒ ŃŃ‚Š¾Š³Š¾ персонажа.", - deleteTip = "Š£Š“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾Š³Š¾ персонажа.", - itemInfo = "ŠŠ°Š·Š²Š°Š½ŠøŠµ: %s\nŠžŠæŠøŃŠ°Š½ŠøŠµ: %s", - cloud_no_repo = "Выбранное Ń…Ń€Š°Š½ŠøŠ»ŠøŃˆŠµ Š½ŠµŠ“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾Šµ.", - cloud_no_plugin = "Выбранный плагин неГействителен.", - inv = "Š˜Š½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ", - plugins = "Плагин", - author = "Автор", - version = "Š’ŠµŃ€ŃŠøŃ", - characters = "ŠŸŠµŃ€ŃŠ¾Š½Š°Š¶Šø", - business = "Бизнес", - settings = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø", - config = "ŠšŠ¾Š½Ń„ŠøŠ³", - chat = "Чат", - appearance = "Š’Š½ŠµŃˆŠ½ŠøŠ¹ виГ", - misc = "ŠžŃŃ‚Š°Š»ŃŒŠ½Š¾Šµ", - oocDelay = "Š’Ń‹ Голжны Š“Š¾Š¶Š“Š°Ń‚ŃŒŃŃ %s секунГ, чтобы Š²Š¾ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŃ OOC чатом снова.", - loocDelay = "Š’Ń‹ Голжны Š“Š¾Š¶Š“Š°Ń‚ŃŒŃŃ %s секунГ чтобы Š²Š¾ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŃ LOOC чатом снова.", - usingChar = "Š’Ń‹ уже ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠµŃ‚е ŃŃ‚Š¾Š³Š¾ персонажа.", - notAllowed = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, но вы не можете ŃŃ‚Š¾Š³Š¾ ŃŠ“ŠµŠ»Š°Ń‚ŃŒ.", - itemNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, но преГмет, который вы просите не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚.", - cmdNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, но ŃŃ‚Š° команГа не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚.", - plyNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, игрок с таким именем не найГен.", - cfgSet = "%s изменил \"%s\" на %s.", - drop = "Š’Ń‹Š±Ń€Š¾ŃŠøŃ‚ŃŒ", - dropTip = "Š’Ń‹Š±Ń€Š¾ŃŠøŃ‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет ŠøŠ· ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€Ń.", - take = "Š’Š·ŃŃ‚ŃŒ", - takeTip = "Š’Š·ŃŃ‚ŃŒ преГмет Šø ŠæŠ¾Š»Š¾Š¶ŠøŃ‚ŃŒ его в ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ.", - dTitle = "Š‘ŠµŃŃ…Š¾Š·Š½Š°Ń Š“Š²ŠµŃ€ŃŒ", - dTitleOwned = "ŠŃ€ŠµŠ½Š“Š¾Š²Š°Š½Š½Š°Ń Š“Š²ŠµŃ€ŃŒ", - dIsNotOwnable = "Š­Ń‚Ńƒ Š“Š²ŠµŃ€ŃŒ невозможно Š°Ń€ŠµŠ½Š“Š¾Š²Š°Ń‚ŃŒ.", - dIsOwnable = "Š’Ń‹ можете Š°Ń€ŠµŠ½Š“Š¾Š²Š°Ń‚ŃŒ эту Š“Š²ŠµŃ€ŃŒ, Š½Š°Š¶ŠøŠ¼Š°Ń кнопку F2.", - dMadeUnownable = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ не поГлежащей Šŗ аренГе.", - dMadeOwnable = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ поГлежащей Šŗ аренГе.", - dNotAllowedToOwn = "Вам не позволено Š°Ń€ŠµŠ½Š“Š¾Š²Š°Ń‚ŃŒ эту Š“Š²ŠµŃ€ŃŒ.", - dSetDisabled = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ нерабочей.", - dSetNotDisabled = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ вновь рабочей.", - dSetHidden = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ невиГимой.", - dSetNotHidden = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ вновь виГимой.", - dSetParentDoor = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ главной.", - dCanNotSetAsChild = "Š’Ń‹ не можете ŃŠ“ŠµŠ»Š°Ń‚ŃŒ Š³Š»Š°Š²Š½ŃƒŃŽ Š“Š²ŠµŃ€ŃŒ второстепенной.", - dAddChildDoor = "Š’Ń‹ Гобавили эту Š“Š²ŠµŃ€ŃŒ как Š²Ń‚Š¾Ń€Š¾ŃŃ‚ŠµŠæŠµŠ½Š½ŃƒŃŽ.", - dRemoveChildren = "Š’Ń‹ ŃƒŠ±Ń€Š°Š»Šø все второстепенные Гвери ŠøŠ· ŠæŠµŃ€ŠµŃ‡Š½Ń главной.", - dRemoveChildDoor = "Š’Ń‹ ŃƒŠ±Ń€Š°Š»Šø Š²Ń‚Š¾Ń€Š¾ŃŃ‚ŠµŠæŠµŠ½Š½ŃƒŃŽ Š“Š²ŠµŃ€ŃŒ ŠøŠ· ŠæŠµŃ€ŠµŃ‡Š½Ń главной.", - dNoParentDoor = "Š£ вас не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š½Š° Š³Š»Š°Š²Š½Š°Ń Š“Š²ŠµŃ€ŃŒ.", - dOwnedBy = "Эта Š“Š²ŠµŃ€ŃŒ принаГлежит %s.", - dConfigName = "Š”Š²ŠµŃ€ŃŒ", - dSetFaction = "Дейчас ŃŃ‚Š° Š“Š²ŠµŃ€ŃŒ принаГлежит %s фракций.", - dRemoveFaction = "Эта Š“Š²ŠµŃ€ŃŒ не принаГлежит никакой фракции.", - dNotValid = "Š’Ń‹ смотрите не на ŠæŠ¾Š“Š»ŠøŠ½Š½ŃƒŃŽ Š“Š²ŠµŃ€ŃŒ.", - canNotAfford = "Š£ вас неГостаточно среГств, чтобы ŠŗŃƒŠæŠøŃ‚ŃŒ ŃŃ‚Š¾.", - dPurchased = "Š’Ń‹ аренГовали эту Š“Š²ŠµŃ€ŃŒ за %s.", - dSold = "Š’Ń‹ проГали эту Š“Š²ŠµŃ€ŃŒ за %s.", - notOwner = "Š’Ń‹ не влаГелец ŃŃ‚Š¾Š³Š¾.", - invalidArg = "Š’Ń‹ преГоставили Š½ŠµŠ“Š¾ŠæŃƒŃŃ‚ŠøŠ¼Š¾Šµ значение Š°Ń€Š³ŃƒŠ¼ŠµŠ½Ń‚а #%s.", - tellAdmin = "ŠžŃˆŠøŠ±ŠŗŠ°: %s. Дообщите Š°Š“Š¼ŠøŠ½ŠøŃŃ‚Ń€Š°Ń‚Š¾Ń€Ńƒ!", - flagGive = "%s выГал %s '%s' флаги.", - flagTake = "%s Š¾Ń‚Š½ŃŠ» '%s' флаги у %s.", - flagNoMatch = "Š£ вас Голжны Š±Ń‹Ń‚ŃŒ \"%s\" флаги, чтобы Š²Ń‹ŠæŠ¾Š»Š½ŠøŃ‚ŃŒ ŃŃ‚Š¾ Гействие.", - textAdded = "Š’Ń‹ Гобавили текст.", - textRemoved = "Š’Ń‹ уГалили %s текст(ов).", - moneyTaken = "Š’Ń‹ нашли %s.", - businessPurchase = "Š’Ń‹ купили %s за %s.", - businessSell = "Š’Ń‹ проГали %s за %s.", - cChangeModel = "%s ŠæŠ¾Š¼ŠµŠ½ŃŠ» моГель %s на %s.", - cChangeName = "%s ŠæŠ¾Š¼ŠµŠ½ŃŠ» ŠøŠ¼Ń %s на %s.", - cChangeSkin = "%s ŠæŠ¾Š¼ŠµŠ½ŃŠ» скин %s на %s.", - cChangeGroups = "%s ŠæŠ¾Š¼ŠµŠ½ŃŠ» %s \"%s\" Š±Š¾Š“ŠøŠ³Ń€ŃƒŠæŠæŃƒ на %s.", - cChangeFaction = "%s переместил %s в Ń„Ń€Š°ŠŗŃ†ŠøŃŽ %s.", - playerCharBelonging = "Этот Š¾Š±ŃŠŠµŠŗŃ‚ принаГлежит Š“Ń€ŃƒŠ³Š¾Š¼Ńƒ вашему ŠæŠµŃ€ŃŠ¾Š½Š°Š¶Ńƒ.", - invalidFaction = "Š’Ń‹ ŠæŃ€ŠµŠ“ŃŠŃŠ²ŠøŠ»Šø Š½ŠµŠ“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½ŃƒŃŽ Ń„Ń€Š°ŠŗŃ†ŠøŃŽ.", - spawnAdd = "Š’Ń‹ созГали Ń‚Š¾Ń‡ŠŗŃƒ Š²Š¾Š·Ń€Š¾Š¶Š“ŠµŠ½ŠøŃ Š“Š»Ń %s.", - spawnDeleted = "Š’Ń‹ уГалили %s Ń‚Š¾Ń‡ŠŗŃƒ (точки) Š²Š¾Š·Ń€Š¾Š¶Š“ŠµŠ½ŠøŃ.", - someone = "ŠšŃ‚Š¾-то", - rgnLookingAt = "ŠŸŠ¾Š·Š²Š¾Š»ŠøŃ‚ŃŒ Ń‡ŠµŠ»Š¾Š²ŠµŠŗŃƒ, на которого вы смотрите вас Ń€Š°ŃŠæŠ¾Š·Š½Š°Ń‚ŃŒ.", - rgnWhisper = "ŠŸŠ¾Š·Š²Š¾Š»ŠøŃ‚ŃŒ Š»ŃŽŠ“ŃŠ¼ в Ń€Š°Š“ŠøŃƒŃŠµ ŃŠ»Ń‹ŃˆŠøŠ¼Š¾ŃŃ‚Šø ŃˆŠµŠæŠ¾Ń‚Š° вас Ń€Š°ŃŠæŠ¾Š·Š½Š°Ń‚ŃŒ.", - rgnTalk = "ŠŸŠ¾Š·Š²Š¾Š»ŠøŃ‚ŃŒ Š»ŃŽŠ“ŃŠ¼ в Ń€Š°Š“ŠøŃƒŃŠµ ŃŠ»Ń‹ŃˆŠøŠ¼Š¾ŃŃ‚Šø речи вас Ń€Š°ŃŠæŠ¾Š·Š½Š°Ń‚ŃŒ.", - rgnYell = "ŠŸŠ¾Š·Š²Š¾Š»ŠøŃ‚ŃŒ Š»ŃŽŠ“ŃŠ¼ в Ń€Š°Š“ŠøŃƒŃŠµ ŃŠ»Ń‹ŃˆŠøŠ¼Š¾ŃŃ‚Šø крика вас Ń€Š°ŃŠæŠ¾Š·Š½Š°Ń‚ŃŒ.", - icFormat = "%s говорит \"%s\"", - rollFormat = "%s выпало число %s.", - wFormat = "%s ŃˆŠµŠæŃ‡ŠµŃ‚ \"%s\"", - yFormat = "%s кричит \"%s\"", - sbOptions = "ŠŠ°Š¶Š¼ŠøŃ‚Šµ, чтобы ŃƒŠ²ŠøŠ“ŠµŃ‚ŃŒ опции Š“Š»Ń %s.", - spawnAdded = "Š’Ń‹ созГали Ń‚Š¾Ń‡ŠŗŃƒ Š²Š¾Š·Ń€Š¾Š¶Š“ŠµŠ½ŠøŃ Š“Š»Ń %s.", - whitelist = "%s Гобавил %s в ŠæŠµŃ€ŠµŃ‡ŠµŠ½ŃŒ фракции %s.", - unwhitelist = "%s ŠøŃŠŗŠ»ŃŽŃ‡ŠøŠ» %s ŠøŠ· ŠæŠµŃ€ŠµŃ‡Š½Ń фракции %s.", - gettingUp = "Š’Ń‹ ŠæŠ¾Š“Š½ŠøŠ¼Š°ŠµŃ‚ŠµŃŃŒ...", - wakingUp = "Š’Ń‹ прихоГите в Ń‡ŃƒŠ²ŃŃ‚Š²Š¾...", - Weapons = "ŠžŃ€ŃƒŠ¶ŠøŠµ", - checkout = "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Šŗ Š¾Ń„Š¾Ń€Š¼Š»ŠµŠ½ŠøŃŽ заказа (%s)", - purchase = "Покупка", - purchasing = "Покупаем...", - success = "Успех", - buyFailed = "Покупка ŠæŃ€Š¾Š²Š°Š»ŠøŠ»Š°ŃŃŒ.", - buyGood = "Покупка успешна!", - shipment = "Š“Ń€ŃƒŠ·", - shipmentDesc = "Этот Š³Ń€ŃƒŠ· принаГлежит %s.", - class = "Класс", - classes = "ŠšŠ»Š°ŃŃŃ‹", - illegalAccess = "Запрещённый Š“Š¾ŃŃ‚ŃƒŠæ.", - becomeClassFail = "ŠŠµ ŠæŠ¾Š»ŃƒŃ‡ŠøŠ»Š¾ŃŃŒ ŃŃ‚Š°Ń‚ŃŒ %s.", - becomeClass = "Š’Ń‹ стали %s.", - attribSet = "Š’Ń‹ ŠæŠ¾Š¼ŠµŠ½ŃŠ»Šø ŠøŠ³Ń€Š¾ŠŗŃƒ %s %s на %s.", - attribUpdate = "Š’Ń‹ Гобавили ŠøŠ³Ń€Š¾ŠŗŃƒ %s %s by %s.", - noFit = "Этот преГмет не ŠæŠ¾Š¼ŠµŃ‰Š°ŠµŃ‚ŃŃ в инвентаре.", - help = "ŠŸŠ¾Š¼Š¾Ń‰ŃŒ", - commands = "ŠšŠ¾Š¼Š°Š½Š“Ń‹", - helpDefault = "Выберите ŠŗŠ°Ń‚ŠµŠ³Š¾Ń€ŠøŃŽ", - doorSettings = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø Гверей", - sell = "ŠŸŃ€Š¾Š“Š°Ń‚ŃŒ", - access = "Š”Š¾ŃŃ‚ŃƒŠæ", - locking = "Запираем ŃŃ‚Š¾Ń‚ Š¾Š±ŃŠŠµŠŗŃ‚...", - unlocking = "ŠžŃ‚ŠŗŃ€Ń‹Š²Š°ŠµŠ¼ ŃŃ‚Š¾Ń‚ Š¾Š±ŃŠŠµŠŗŃ‚...", - modelNoSeq = "Эта моГель не поГГерживает эту Š°Š½ŠøŠ¼Š°Ń†ŠøŃŽ.", - notNow = "Š’Ń‹ не можете ŃŃ‚Š¾ ŃŠ“ŠµŠ»Š°Ń‚ŃŒ сейчас.", - faceWall = "Š’Ń‹ Голжны ŃŃ‚Š¾ŃŃ‚ŃŒ лицом Šŗ стене, чтобы ŃŠ“ŠµŠ»Š°Ń‚ŃŒ ŃŃ‚Š¾.", - faceWallBack = "Š’Š°ŃˆŠ° спина Голжна Š±Ń‹Ń‚ŃŒ прижата Šŗ стене, чтобы ŃŠ“ŠµŠ»Š°Ń‚ŃŒ ŃŃ‚Š¾.", - descChanged = "Š’Ń‹ ŠæŠ¾Š¼ŠµŠ½ŃŠ»Šø описание вашего персонажа.", - livesLeft = "Жизней Š¾ŃŃ‚Š°Š»Š¾ŃŃŒ: %s", - charIsDead = "Š’Š°Ńˆ персонаж ŃƒŠ¼ŠµŃ€", - charMoney = "Š£ вас сейчас %s.", - charFaction = "Š’Ń‹ ŃŠ²Š»ŃŠµŃ‚ŠµŃŃŒ членом фракции %s.", - charClass = "Š’Ń‹ %s фракций.", - noSpace = "Š’Š°Ńˆ ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ полон.", - noOwner = "ВлаГелец неГействителен.", - invalidIndex = "ИнГекс преГмета неГействителен.", - invalidItem = "ŠžŠ±ŃŠŠµŠŗŃ‚ преГмета неГействителен.", - invalidInventory = "ŠžŠ±ŃŠŠµŠŗŃ‚ ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€Ń неГействителен.", - home = "Дом", - charKick = "%s кикнул персонажа %s.", - charBan = "%s забанил персонажа %s.", - charBanned = "Этот персонаж забанен.", - setMoney = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø %s's количество Генег на %s.", - itemPriceInfo = "Š’Ń‹ можете ŠŗŃƒŠæŠøŃ‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет за %s.\nŠ’Ń‹ можете ŠæŃ€Š¾Š“Š°Ń‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет за %s", - free = "Бесплатно", - vendorNoSellItems = "Š—Š“ŠµŃŃŒ Š½ŠµŃ‚Ńƒ преГметов Š“Š»Ń проГажи.", - vendorNoBuyItems = "Š—Š“ŠµŃŃŒ Š½ŠµŃ‚Ńƒ преГметов Š“Š»Ń покупки.", - vendorSettings = "ŠŠ°ŃŃ‚Ń€Š¾ŠøŠŗŠø разГатчика", - vendorUseMoney = "Š‘ŃƒŠ“ŠµŃ‚ ли разГатчик Š±Ń€Š°Ń‚ŃŒ Геньги?", - vendorNoBubble = "Š”ŠæŃ€ŃŃ‚Š°Ń‚ŃŒ облачко разГатчика?", - mode = "МоГ", - price = "Цена", - stock = "Запас", - none = "ŠŠøŃ‡ŠµŠ³Š¾", - vendorBoth = "ŠšŃƒŠæŠøŃ‚ŃŒ Šø ŠæŃ€Š¾Š“Š°Ń‚ŃŒ", - vendorBuy = "Только ŠŗŃƒŠæŠøŃ‚ŃŒ", - vendorSell = "Только ŠæŃ€Š¾Š“Š°Ń‚ŃŒ", - maxStock = "ŠœŠ°ŠŗŃŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ запас", - vendorFaction = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø фракций", - buy = "ŠšŃƒŠæŠøŃ‚ŃŒ", - vendorWelcome = "ŠŸŃ€ŠøŠ²ŠµŃ‚ŃŃ‚Š²ŃƒŃŽ вас в моем магазине, что пожелаете?", - vendorBye = "ŠŸŃ€ŠøŃ…Š¾Š“ŠøŃ‚Šµ еще!", - charSearching = "Š’Ń‹ уже ищите Š“Ń€ŃƒŠ³Š¾Š³Š¾ персонажа, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поГожГите.", - charUnBan = "%s разбанил персонажа %s.", - charNotBanned = "Этот персонаж не забанен.", - storPass = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø ŠæŠ°Ń€Š¾Š»ŃŒ контейнера на %s.", - storPassRmv = "Š’Ń‹ ŃƒŠ±Ń€Š°Š»Šø ŠæŠ°Ń€Š¾Š»ŃŒ контейнера.", - storPassWrite = "ВвеГите ŠæŠ°Ń€Š¾Š»ŃŒ.", - wrongPassword = "Š’Ń‹ ввели Š½ŠµŠæŃ€Š°Š²ŠøŠ»ŃŒŠ½Ń‹Š¹ ŠæŠ°Ń€Š¾Š»ŃŒ.", - cheapBlur = "Š’Ń‹ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ размытие? (ŠŸŠ¾Š²Ń‹ŃˆŠ°ŠµŃ‚ FPS)", - quickSettings = "Быстрые настройки", - vmSet = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø ваш автоответчик.", - vmRem = "Š’Ń‹ избавились от автоответчика.", - altLower = "Š”ŠæŃ€ŃŃ‚Š°Ń‚ŃŒ Ń€ŃƒŠŗŠø, пока они Š¾ŠæŃƒŃ‰ŠµŠ½Ń‹?", - noPerm = "Вам не позволено ŃŠ“ŠµŠ»Š°Ń‚ŃŒ ŃŃ‚Š¾.", - youreDead = "Š’Ń‹ мертвы", - injMajor = "ŠŸŠ¾Ń…Š¾Š¶Šµ, что он Š¾Ń‡ŠµŠ½ŃŒ сильно ранен.", - injLittle = "ŠŸŠ¾Ń…Š¾Š¶Šµ, что он ранен", - toggleESP = "Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Admin ESP", - chgName = "ŠŸŠ¾Š¼ŠµŠ½ŃŃ‚ŃŒ ŠøŠ¼Ń", - chgNameDesc = "Š’ŠæŠøŃˆŠøŃ‚Šµ новое ŠøŠ¼Ń Š“Š»Ń персонажа.", - thirdpersonToggle = "Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ виГ от Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", - thirdpersonClassic = "Š˜ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ классический виГ от Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", - equippedBag = "Думка, ŠŗŠ¾Ń‚Š¾Ń€ŃƒŃŽ вы сГвинули имеет Š¾Š“ŠµŃ‚ŃƒŃŽ вами Š²ŠµŃ‰ŃŒ.", - useTip = "Š˜ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ преГмет.", - equipTip = "ŠžŠ“ŠµŃ‚ŃŒ преГмет.", - unequipTip = "Š”Š½ŃŃ‚ŃŒ преГмет.", - consumables = "ŠŸŠ¾Ń‚Ń€ŠµŠ±Š½Š¾ŃŃ‚Šø", - plyNotValid = "Š’Ń‹ смотрите не на поГлинного игрока.", - restricted = "Š’Ń‹ были ŃŠ²ŃŠ·Š°Š½Ń‹.", - viewProfile = "ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ ŠæŃ€Š¾Ń„ŠøŠ»ŃŒ Steam", - salary = "Š’Ń‹ ŠæŠ¾Š»ŃƒŃ‡ŠøŠ»Šø %s ŠøŠ· вашей зарплаты.", - noRecog = "Š’Ń‹ не ŃƒŠ·Š½Š°Ń‘Ń‚Šµ ŃŃ‚Š¾Š³Š¾ человека.", - curTime = "Š¢ŠµŠŗŃƒŃ‰ŠµŠµ Š²Ń€ŠµŠ¼Ń: %s.", - vendorEditor = "РеГактор торговца", - edit = "Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ", - disable = "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ", - vendorPriceReq = "ВвеГите Š½Š¾Š²ŃƒŃŽ Ń†ŠµŠ½Ńƒ преГмета.", - vendorEditCurStock = "Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ количество", - radioFreq = "Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ Ń‡Š°ŃŃ‚Š¾Ń‚Ńƒ раГиоприёма", - radioSubmit = "Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ", - you = "Š’Ń‹", - isTied = "Š”Š²ŃŠ·Š°Š½", - tying = "Š”Š²ŃŠ·Ń‹Š²Š°Š½ŠøŠµ...", - unTying = "Š Š°Š·Š²ŃŠ·Ń‹Š²Š°Š½ŠøŠµ...", - On = "Š’ŠŗŠ»ŃŽŃ‡ŠµŠ½", - Off = "Š’Ń‹ŠŗŠ»ŃŽŃ‡ŠµŠ½", - vendorSellScale = "ŠœŠ½Š¾Š¶ŠøŃ‚ŠµŠ»ŃŒ цен проГажи", - vendorNoTrade = "Š’Ń‹ не можете Š²Š·Š°ŠøŠ¼Š¾Š“ŠµŠ¹ŃŃ‚Š²Š¾Š²Š°Ń‚ŃŒ с ŃŃ‚ŠøŠ¼ торговцем.", - vendorNoMoney = "Торговец не может ŠŗŃƒŠæŠøŃ‚ŃŒ у вас преГмет.", - vendorNoStock = "Š£ ŃŃ‚Š¾Š³Š¾ торговца нет в наличии ŃŃ‚Š¾Š³Š¾ преГмета.", - contentTitle = "ŠžŃ‚ŃŃƒŃ‚ŃŃ‚Š²ŃƒŠµŃ‚ контент NutScript", - contentWarning = "Š£ вас не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½ контент NutScript. ŠŠµŠŗŠ¾Ń‚Š¾Ń€Ń‹Šµ Ń„ŃƒŠ½ŠŗŃ†ŠøŠø Š¼Š¾Š³ŃƒŃ‚ не Ń€Š°Š±Š¾Ń‚Š°Ń‚ŃŒ.\nŠ’Ń‹ желаете перейти на ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ ŃŠŗŠ°Ń‡ŠøŠ²Š°Š½ŠøŃ контента?", - Assign = "ŠŸŃ€ŠøŃŠ²Š¾ŠøŃ‚ŃŒ", - Freq = "Частота", - Toggle = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ", - Use = "Š˜ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ", - UseForward = "Š˜ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ на игроке", - Equip = "Š­ŠŗŠøŠæŠøŃ€Š¾Š²Š°Ń‚ŃŒ", - Unequip = "Š”Š½ŃŃ‚ŃŒ", - Load = "Š Š°ŃŠæŠ°ŠŗŠ¾Š²Š°Ń‚ŃŒ", - View = "ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ", - flags = "Флаги", - moneyLeft = "Š’Š°ŃˆŠø Геньги: ", - currentMoney = "ŠžŃŃ‚Š°Š»Š¾ŃŃŒ Генег: ", - moneyGiven = "Š’Ń‹ Гали %s", + loading = "Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°", + dbError = "ŠžŃˆŠøŠ±ŠŗŠ° ŠæŠ¾Š“ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŃ Šŗ базе Ганных", + unknown = "ŠŠµŠøŠ·Š²ŠµŃŃ‚Š½Š¾", + noDesc = "ŠžŠæŠøŃŠ°Š½ŠøŠµ Š¾Ń‚ŃŃƒŃ‚ŃŃ‚Š²ŃƒŠµŃ‚", + create = "Š”Š¾Š·Š“Š°Ń‚ŃŒ", + createTip = "Š”Š¾Š·Š“Š°Ń‚ŃŒ нового персонажа Š“Š»Ń игры.", + load = "Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ", + loadTip = "Š’Ń‹Š±Ń€Š°Ń‚ŃŒ ранее созГанного персонажа Š“Š»Ń игры.", + leave = "Выйти", + leaveTip = "ŠŸŠ¾ŠŗŠøŠ½ŃƒŃ‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ сервер.", + ["return"] = "Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ", + returnTip = "Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ в ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠµ Š¼ŠµŠ½ŃŽ.", + name = "Š˜Š¼Ń", + desc = "ŠžŠæŠøŃŠ°Š½ŠøŠµ", + model = "МоГель", + attribs = "ŠŃ‚Ń€ŠøŠ±ŃƒŃ‚Ń‹", + charCreateTip = "Заполните ŠæŠ¾Š»Ń ниже Šø нажмите 'Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ', чтобы ŃŠ¾Š·Š“Š°Ń‚ŃŒ своего персонажа.", + invalid = "Š’Ń‹ указали Š½ŠµŠ“Š¾ŠæŃƒŃŃ‚ŠøŠ¼Ń‹Š¹ %s", + descMinLen = "Š’Š°ŃˆŠµ описание Голжно ŃŠ¾Š“ŠµŃ€Š¶Š°Ń‚ŃŒ как минимум %d символ(ов).", + player = "Š˜Š³Ń€Š¾Šŗ", + finish = "Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ", + finishTip = "Š—Š°Š²ŠµŃ€ŃˆŠøŃ‚ŃŒ созГание персонажа.", + needModel = "Вам нужно Š²Ń‹Š±Ń€Š°Ń‚ŃŒ ŠæŠ¾Š“Ń…Š¾Š“ŃŃ‰ŃƒŃŽ моГель", + creating = "Š’Š°Ńˆ персонаж ŃŠ¾Š·Š“Š°ŠµŃ‚ŃŃ...", + unknownError = "ŠŸŃ€Š¾ŠøŠ·Š¾ŃˆŠ»Š° Š½ŠµŠøŠ·Š²ŠµŃŃ‚Š½Š°Ń ошибка", + delConfirm = "Š’Ń‹ ŃƒŠ²ŠµŃ€ŠµŠ½Ń‹, что хотите ŠŸŠ•Š ŠœŠŠŠ•ŠŠ¢ŠŠž ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ %s?", + no = "ŠŠµŃ‚", + yes = "Да", + itemInfo = "ŠŠ°Š·Š²Š°Š½ŠøŠµ: %s\nŠžŠæŠøŃŠ°Š½ŠøŠµ: %s", + itemCreated = "ŠŸŃ€ŠµŠ“Š¼ŠµŃ‚ успешно созГан.", + cloud_no_repo = "Указанный репозиторий неГействителен.", + cloud_no_plugin = "Указанный плагин неГействителен.", + inv = "Š˜Š½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ", + plugins = "ŠŸŠ»Š°Š³ŠøŠ½Ń‹", + togglePlugins = "Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ/Š²Ń‹ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ плагины", + author = "Автор", + version = "Š’ŠµŃ€ŃŠøŃ", + characters = "ŠŸŠµŃ€ŃŠ¾Š½Š°Š¶Šø", + settings = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø", + config = "ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŃ", + chat = "Чат", + appearance = "Š’Š½ŠµŃˆŠ½Š¾ŃŃ‚ŃŒ", + misc = "Разное", + oocDelay = "Š’Ń‹ Голжны ŠæŠ¾Š“Š¾Š¶Š“Š°Ń‚ŃŒ еще %s секунГ(ы) переГ повторным использованием OOC.", + loocDelay = "Š’Ń‹ Голжны ŠæŠ¾Š“Š¾Š¶Š“Š°Ń‚ŃŒ еще %s секунГ(ы) переГ повторным использованием LOOC.", + usingChar = "Š’Ń‹ уже ŠøŃŠæŠ¾Š»ŃŒŠ·ŃƒŠµŃ‚е ŃŃ‚Š¾Š³Š¾ персонажа.", + itemNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, Š·Š°ŠæŃ€Š¾ŃˆŠµŠ½Š½Ń‹Š¹ вами преГмет не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚.", + cmdNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, ŃŃ‚Š¾Š¹ команГы не ŃŃƒŃ‰ŠµŃŃ‚Š²ŃƒŠµŃ‚.", + plyNoExist = "Š˜Š·Š²ŠøŠ½ŠøŃ‚Šµ, игрок с таким именем не найГен.", + cfgSet = "%s ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ» \"%s\" на %s.", + drop = "Š£Š±Ń€Š°Ń‚ŃŒ", + dropTip = "Š£Š±Ń€Š°Ń‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет ŠøŠ· вашего ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€Ń.", + take = "Š’Š·ŃŃ‚ŃŒ", + takeTip = "Š’Š·ŃŃ‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет Šø ŠæŠ¾Š¼ŠµŃŃ‚ŠøŃ‚ŃŒ его в ваш ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ.", + dTitle = "Š‘ŠµŠ·Ń…Š¾Š·Š½Š°Ń Š“Š²ŠµŃ€ŃŒ", + dTitleOwned = "ŠŸŃ€ŠøŠ¾Š±Ń€ŠµŃ‚ŠµŠ½Š½Š°Ń Š“Š²ŠµŃ€ŃŒ", + dIsNotOwnable = "Эта Š“Š²ŠµŃ€ŃŒ не может Š±Ń‹Ń‚ŃŒ Š²Š·ŃŃ‚Š° во влаГение.", + dIsOwnable = "Š’Ń‹ можете приобрести эту Š“Š²ŠµŃ€ŃŒ, нажав F2.", + dMadeUnownable = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ невлаГеемой.", + dMadeOwnable = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ влаГеемой.", + dNotAllowedToOwn = "Вам запрещено Š²Š»Š°Š“ŠµŃ‚ŃŒ ŃŃ‚Š¾Š¹ Š“Š²ŠµŃ€ŃŒŃŽ.", + dSetDisabled = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾Š¹.", + dSetNotDisabled = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ снова Š“Š¾ŃŃ‚ŃƒŠæŠ½Š¾Š¹.", + dSetHidden = "Š’Ń‹ скрыли эту Š“Š²ŠµŃ€ŃŒ.", + dSetNotHidden = "Š’Ń‹ сГелали эту Š“Š²ŠµŃ€ŃŒ виГимой.", + dSetParentDoor = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø эту Š“Š²ŠµŃ€ŃŒ как Ń€Š¾Š“ŠøŃ‚ŠµŠ»ŃŒŃŠŗŃƒŃŽ.", + dCanNotSetAsChild = "Š’Ń‹ не можете ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŃ‚ŃŒ Ń€Š¾Š“ŠøŃ‚ŠµŠ»ŃŒŃŠŗŃƒŃŽ Š“Š²ŠµŃ€ŃŒ как Š“Š¾Ń‡ŠµŃ€Š½ŃŽŃŽ.", + dAddChildDoor = "Š’Ń‹ Гобавили эту Š“Š²ŠµŃ€ŃŒ в качестве Гочерней.", + dRemoveChildren = "Š’Ń‹ уГалили все Гочерние Гвери Š“Š»Ń ŃŃ‚Š¾Š¹ Гвери.", + dRemoveChildDoor = "Š’Ń‹ уГалили эту Š“Š²ŠµŃ€ŃŒ как Š“Š¾Ń‡ŠµŃ€Š½ŃŽŃŽ.", + dNoParentDoor = "Š£ вас не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½Š° Ń€Š¾Š“ŠøŃ‚ŠµŠ»ŃŒŃŠŗŠ°Ń Š“Š²ŠµŃ€ŃŒ.", + dOwnedBy = "Эта Š“Š²ŠµŃ€ŃŒ принаГлежит %s.", + dConfigName = "Двери", + dSetFaction = "Эта Š“Š²ŠµŃ€ŃŒ Ń‚ŠµŠæŠµŃ€ŃŒ принаГлежит фракции %s.", + dRemoveFaction = "Эта Š“Š²ŠµŃ€ŃŒ больше не принаГлежит никакой фракции.", + dNotValid = "Š’Ń‹ не смотрите на Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½ŃƒŃŽ Š“Š²ŠµŃ€ŃŒ.", + canNotAfford = "Š£ вас нет Генег, чтобы ŠŗŃƒŠæŠøŃ‚ŃŒ ŃŃ‚Š¾.", + dPurchased = "Š’Ń‹ приобрели эту Š“Š²ŠµŃ€ŃŒ за %s.", + dSold = "Š’Ń‹ проГали эту Š“Š²ŠµŃ€ŃŒ за %s.", + notOwner = "Š’Ń‹ не ŃŠ²Š»ŃŠµŃ‚ŠµŃŃŒ Š²Š»Š°Š“ŠµŠ»ŃŒŃ†ŠµŠ¼ ŃŃ‚Š¾Š³Š¾.", + invalidArg = "Š’Ń‹ преГоставили Š½ŠµŠ“Š¾ŠæŃƒŃŃ‚ŠøŠ¼Š¾Šµ значение Š“Š»Ń Š°Ń€Š³ŃƒŠ¼ŠµŠ½Ń‚Š° #%s.", + flagGive = "%s Гал %s флаги '%s'.", + flagGiveTitle = "Š’Ń‹Š“Š°Ń‚ŃŒ флаги", + flagGiveDesc = "ВыГайте ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠµ флаги ŠøŠ³Ń€Š¾ŠŗŃƒ.", + flagTake = "%s Š²Š·ŃŠ» флаги '%s' у %s.", + flagTakeTitle = "Š—Š°Š±Ń€Š°Ń‚ŃŒ флаги", + flagTakeDesc = "Уберите ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠµ флаги у игрока.", + flagNoMatch = "Š”Š»Ń Š²Ń‹ŠæŠ¾Š»Š½ŠµŠ½ŠøŃ ŃŃ‚Š¾Š³Š¾ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ вам нужно ŠøŠ¼ŠµŃ‚ŃŒ флаг(Šø) \"%s\".", + textAdded = "Š’Ń‹ Гобавили текст.", + textRemoved = "Š’Ń‹ уГалили %s текст(ов).", + moneyTaken = "Š’Ń‹ нашли %s.", + businessPurchase = "Š’Ń‹ приобрели %s за %s.", + businessSell = "Š’Ń‹ проГали %s за %s.", + cChangeModel = "%s сменил моГель %s на %s.", + cChangeName = "%s сменил ŠøŠ¼Ń %s на %s.", + cChangeSkin = "%s сменил скин %s на %s.", + cChangeGroups = "%s сменил Š±Š¾Š“ŠøŠ³Ń€ŃƒŠæŠæŃƒ \"%s\" у %s на %s.", + cChangeFaction = "%s перевел %s в Ń„Ń€Š°ŠŗŃ†ŠøŃŽ %s.", + playerCharBelonging = "Этот Š¾Š±ŃŠŠµŠŗŃ‚ ŃŠ²Š»ŃŠµŃ‚ŃŃ ŠøŠ¼ŃƒŃ‰ŠµŃŃ‚Š²Š¾Š¼ Š“Ń€ŃƒŠ³Š¾Š³Š¾ вашего персонажа.", + business = "Бизнес", + invalidFaction = "Š’Ń‹ указали Š½ŠµŠ“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½ŃƒŃŽ Ń„Ń€Š°ŠŗŃ†ŠøŃŽ.", + limitFaction = "Эта Ń„Ń€Š°ŠŗŃ†ŠøŃ полна. ŠŸŠ¾ŠæŃ€Š¾Š±ŃƒŠ¹Ń‚Šµ позже.", + spawnAdd = "Š’Ń‹ Гобавили Ń‚Š¾Ń‡ŠŗŃƒ ŠæŠ¾ŃŠ²Š»ŠµŠ½ŠøŃ Š“Š»Ń %s.", + spawnDeleted = "Š’Ń‹ уГалили %s точек ŠæŠ¾ŃŠ²Š»ŠµŠ½ŠøŃ.", + someone = "ŠšŃ‚Š¾-то", + rgnLookingAt = "Š Š°Š·Ń€ŠµŃˆŠøŃ‚ŃŒ Ń‡ŠµŠ»Š¾Š²ŠµŠŗŃƒ, на которого вы смотрите, ŃƒŠ·Š½Š°Ń‚ŃŒ вас.", + rgnWhisper = "Š Š°Š·Ń€ŠµŃˆŠøŃ‚ŃŒ тем, кто Š½Š°Ń…Š¾Š“ŠøŃ‚ŃŃ в Ń€Š°Š“ŠøŃƒŃŠµ ŃˆŠµŠæŠ¾Ń‚Š°, ŃƒŠ·Š½Š°Ń‚ŃŒ вас.", + rgnTalk = "Š Š°Š·Ń€ŠµŃˆŠøŃ‚ŃŒ тем, кто Š½Š°Ń…Š¾Š“ŠøŃ‚ŃŃ в Ń€Š°Š“ŠøŃƒŃŠµ разговора, ŃƒŠ·Š½Š°Ń‚ŃŒ вас.", + rgnYell = "Š Š°Š·Ń€ŠµŃˆŠøŃ‚ŃŒ тем, кто Š½Š°Ń…Š¾Š“ŠøŃ‚ŃŃ в Ń€Š°Š“ŠøŃƒŃŠµ крика, ŃƒŠ·Š½Š°Ń‚ŃŒ вас.", + icFormat = "%s говорит \"%s\"", + rollFormat = "%s бросил %s.", + wFormat = "%s ŃˆŠµŠæŃ‡ŠµŃ‚ \"%s\"", + yFormat = "%s кричит \"%s\"", + sbOptions = "ŠŠ°Š¶Š¼ŠøŃ‚Šµ, чтобы ŃƒŠ²ŠøŠ“ŠµŃ‚ŃŒ опции Š“Š»Ń %s.", + spawnAdded = "Š’Ń‹ Гобавили Ń‚Š¾Ń‡ŠŗŃƒ ŠæŠ¾ŃŠ²Š»ŠµŠ½ŠøŃ Š“Š»Ń %s.", + whitelist = "%s Гобавил в белый список %s Š“Š»Ń фракции %s.", + unwhitelist = "%s ŃƒŠ±Ń€Š°Š» ŠøŠ· белого списка %s ŠøŠ· фракции %s.", + gettingUp = "Š’Ń‹ встаете...", + wakingUp = "Š’Ń‹ прихоГите в сознание...", + Weapons = "ŠžŃ€ŃƒŠ¶ŠøŠµ", + checkout = "ŠŸŠµŃ€ŠµŠ¹Ń‚Šø Šŗ Š¾Ń„Š¾Ń€Š¼Š»ŠµŠ½ŠøŃŽ (%s)", + purchase = "Покупка", + purchasing = "Покупка...", + success = "Успех", + buyFailed = "Покупка не уГалась.", + buyGood = "Покупка успешно Š·Š°Š²ŠµŃ€ŃˆŠµŠ½Š°!", + shipment = "ŠŸŠ°Ń€Ń‚ŠøŃ", + shipmentDesc = "Эта ŠæŠ°Ń€Ń‚ŠøŃ принаГлежит %s.", + class = "Класс", + classes = "ŠšŠ»Š°ŃŃŃ‹", + illegalAccess = "ŠŠµŠ·Š°ŠŗŠ¾Š½Š½Ń‹Š¹ Š“Š¾ŃŃ‚ŃƒŠæ.", + becomeClassFail = "ŠŠµ уГалось ŃŃ‚Š°Ń‚ŃŒ %s.", + becomeClass = "Š’Ń‹ стали %s.", + attribSet = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø %s %s на %s.", + attribUpdate = "Š’Ń‹ ŃƒŠ²ŠµŠ»ŠøŃ‡ŠøŠ»Šø %s %s на %s.", + noFit = "Этот преГмет не ŠæŠ¾Š¼ŠµŃ‰Š°ŠµŃ‚ŃŃ в ваш ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ.", + help = "ŠŸŠ¾Š¼Š¾Ń‰ŃŒ", + commands = "ŠšŠ¾Š¼Š°Š½Š“Ń‹", + helpDefault = "Выберите ŠŗŠ°Ń‚ŠµŠ³Š¾Ń€ŠøŃŽ", + doorSettings = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø Гверей", + sell = "ŠŸŃ€Š¾Š“Š°Ń‚ŃŒ", + access = "Š”Š¾ŃŃ‚ŃƒŠæ", + locking = "Š—Š°ŠŗŃ€Ń‹Š²Š°ŃŽ ŃŃ‚Š¾Ń‚ Š¾Š±ŃŠŠµŠŗŃ‚...", + unlocking = "ŠžŃ‚ŠŗŃ€Ń‹Š²Š°ŃŽ ŃŃ‚Š¾Ń‚ Š¾Š±ŃŠŠµŠŗŃ‚...", + modelNoSeq = "Š’Š°ŃˆŠ° моГель не поГГерживает ŃŃ‚Š¾ Гействие.", + notNow = "Вам сейчас Š½ŠµŠ»ŃŒŠ·Ń ŃŃ‚Š¾ Š“ŠµŠ»Š°Ń‚ŃŒ.", + faceWall = "Š’Ń‹ Голжны ŃŠ¼Š¾Ń‚Ń€ŠµŃ‚ŃŒ на ŃŃ‚ŠµŠ½Ńƒ, чтобы ŃŠ“ŠµŠ»Š°Ń‚ŃŒ ŃŃ‚Š¾.", + faceWallBack = "Š’Š°ŃˆŠ° спина Голжна Š±Ń‹Ń‚ŃŒ обращена Šŗ стене, чтобы ŃŠ“ŠµŠ»Š°Ń‚ŃŒ ŃŃ‚Š¾.", + descChanged = "Š’Ń‹ изменили описание своего персонажа.", + charMoney = "Š£ вас сейчас %s.", + charFaction = "Š’Ń‹ ŃŠ²Š»ŃŠµŃ‚ŠµŃŃŒ членом фракции %s.", + charClass = "Š’Ń‹ %s фракции.", + noSpace = "Š˜Š½Š²ŠµŠ½Ń‚Š°Ń€ŃŒ полон.", + noOwner = "ВлаГелец неГействителен.", + notAllowed = "Это Гействие не Ń€Š°Š·Ń€ŠµŃˆŠµŠ½Š¾.", + invalidIndex = "ИнГекс преГмета неГействителен.", + invalidItem = "ŠžŠ±ŃŠŠµŠŗŃ‚ преГмета неГействителен.", + invalidInventory = "ŠžŠ±ŃŠŠµŠŗŃ‚ ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€Ń неГействителен.", + home = "Домой", + charKick = "%s выгнал персонажа %s.", + charBan = "%s забанил персонажа %s.", + charBanned = "Этот персонаж забанен.", + setMoney = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø Геньги %s на %s.", + itemPriceInfo = "Š’Ń‹ можете приобрести ŃŃ‚Š¾Ń‚ преГмет за %s.\nŠ’Ń‹ можете ŠæŃ€Š¾Š“Š°Ń‚ŃŒ ŃŃ‚Š¾Ń‚ преГмет за %s", + free = "Бесплатно", + vendorNoSellItems = "ŠŠµŃ‚ преГметов Š“Š»Ń проГажи.", + vendorNoBuyItems = "ŠŠµŃ‚ преГметов Š“Š»Ń покупки.", + vendorSettings = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø проГавца", + vendorUseMoney = "ŠŸŃ€Š¾Š“Š°Š²ŠµŃ† Голжен ŠøŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ Геньги?", + vendorNoBubble = "Š”ŠŗŃ€Ń‹Ń‚ŃŒ облачко проГавца?", + mode = "Режим", + price = "Цена", + stock = "ДклаГ", + none = "ŠŠµŃ‚", + vendorBoth = "ŠšŃƒŠæŠøŃ‚ŃŒ Šø ŠæŃ€Š¾Š“Š°Ń‚ŃŒ", + vendorBuy = "Только покупка", + vendorSell = "Только проГажа", + maxStock = "ŠœŠ°ŠŗŃŠøŠ¼Š°Š»ŃŒŠ½Ń‹Š¹ запас", + vendorFaction = "РеГактор фракции", + buy = "ŠšŃƒŠæŠøŃ‚ŃŒ", + vendorWelcome = "Добро ŠæŠ¾Š¶Š°Š»Š¾Š²Š°Ń‚ŃŒ в мой магазин, что я могу Š“Š»Ń вас ŃŠ“ŠµŠ»Š°Ń‚ŃŒ?", + vendorBye = "ŠŸŃ€ŠøŃ…Š¾Š“ŠøŃ‚Šµ еще!", + charSearching = "Š’Ń‹ уже ищете Š“Ń€ŃƒŠ³Š¾Š³Š¾ персонажа, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поГожГите.", + charUnBan = "%s разбанил персонажа %s.", + charNotBanned = "Этот персонаж не забанен.", + storPass = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø ŠæŠ°Ń€Š¾Š»ŃŒ Š“Š»Ń ŃŃ‚Š¾Š³Š¾ хранилища: %s.", + storPassRmv = "Š’Ń‹ уГалили ŠæŠ°Ń€Š¾Š»ŃŒ Š“Š»Ń ŃŃ‚Š¾Š³Š¾ хранилища.", + storPassWrite = "ВвеГите ŠæŠ°Ń€Š¾Š»ŃŒ.", + wrongPassword = "Š’Ń‹ ввели неверный ŠæŠ°Ń€Š¾Š»ŃŒ.", + cheapBlur = "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ размытие? (ŠŸŠ¾Š²Ń‹ŃˆŠ°ŠµŃ‚ FPS)", + quickSettings = "Быстрые настройки", + vmSet = "Š’Ń‹ ŃƒŃŃ‚Š°Š½Š¾Š²ŠøŠ»Šø ŃŠ²Š¾ŃŽ Š³Š¾Š»Š¾ŃŠ¾Š²ŃƒŃŽ ŠæŠ¾Ń‡Ń‚Ńƒ.", + vmRem = "Š’Ń‹ уГалили ŃŠ²Š¾ŃŽ Š³Š¾Š»Š¾ŃŠ¾Š²ŃƒŃŽ ŠæŠ¾Ń‡Ń‚Ńƒ.", + altLower = "Š”ŠŗŃ€Ń‹Š²Š°Ń‚ŃŒ Ń€ŃƒŠŗŠø, когГа они Š¾ŠæŃƒŃ‰ŠµŠ½Ń‹?", + noPerm = "Вам запрещено ŃŃ‚Š¾ Š“ŠµŠ»Š°Ń‚ŃŒ.", + youreDead = "Š’Ń‹ мертвы", + injMajor = "Š’Ń‹Š³Š»ŃŠ“ŠøŃ‚ критически раненым/ой.", + injLittle = "Š’Ń‹Š³Š»ŃŠ“ŠøŃ‚ раненым/ой.", + toggleObserverTP = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń‚ŠµŠ»ŠµŠæŠ¾Ń€Ń‚Š°Ń†ŠøŃŽ Š½Š°Š±Š»ŃŽŠ“Š°Ń‚ŠµŠ»Ń", + toggleESP = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ режим аГминистратора ESP", + toggleESPAdvanced = "Š Š°ŃŃˆŠøŃ€ŠµŠ½Š½Ń‹Š¹ режим ESP", + chgName = "Š˜Š·Š¼ŠµŠ½ŠøŃ‚ŃŒ ŠøŠ¼Ń", + chgNameDesc = "ВвеГите новое ŠøŠ¼Ń персонажа.", + thirdpersonToggle = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ виГ от Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", + thirdpersonClassic = "Š˜ŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ классический виГ от Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", + thirdpersonConfig = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠ° виГа от Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", + equippedBag = "Экипированные преГметы Š½ŠµŠ»ŃŒŠ·Ń ŠæŠµŃ€ŠµŠ¼ŠµŃ‰Š°Ń‚ŃŒ межГу ŠøŠ½Š²ŠµŠ½Ń‚Š°Ń€ŃŠ¼Šø.", + useTip = "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŠµŃ‚ преГмет.", + equipTip = "Š­ŠŗŠøŠæŠøŃ€ŃƒŠµŃ‚ преГмет.", + unequipTip = "Днимает преГмет.", + consumables = "Š Š°ŃŃ…Š¾Š“ŃƒŠµŠ¼Ń‹Šµ", + plyNotValid = "Š’Ń‹ не смотрите на Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾Š³Š¾ игрока.", + restricted = "Š’Ń‹ были заГержаны.", + viewProfile = "ŠŸŃ€Š¾ŃŠ¼Š¾Ń‚Ń€ŠµŃ‚ŃŒ ŠæŃ€Š¾Ń„ŠøŠ»ŃŒ Steam", + salary = "Š’Ń‹ ŠæŠ¾Š»ŃƒŃ‡ŠøŠ»Šø %s от своей зарплаты.", + noRecog = "Š’Ń‹ не ŃƒŠ·Š½Š°ŠµŃ‚Šµ ŃŃ‚Š¾Š³Š¾ человека.", + curTime = "Š¢ŠµŠŗŃƒŃ‰ŠµŠµ Š²Ń€ŠµŠ¼Ń: %s.", + vendorEditor = "РеГактор проГавца", + edit = "Š ŠµŠ“Š°ŠŗŃ‚ŠøŃ€Š¾Š²Š°Ń‚ŃŒ", + disable = "ŠžŃ‚ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ", + vendorPriceReq = "ВвеГите Š½Š¾Š²ŃƒŃŽ Ń†ŠµŠ½Ńƒ Š“Š»Ń ŃŃ‚Š¾Š³Š¾ преГмета.", + vendorEditCurStock = "Š ŠµŠ“Š°ŠŗŃ‚ŠøŃ€Š¾Š²Š°Ń‚ŃŒ Ń‚ŠµŠŗŃƒŃ‰ŠøŠ¹ склаГ", + you = "Š’Ń‹", + vendorSellScale = "ŠœŠ°ŃŃˆŃ‚Š°Š± цены проГажи", + vendorNoTrade = "Š’Ń‹ не можете Ń‚Š¾Ń€Š³Š¾Š²Š°Ń‚ŃŒ с ŃŃ‚ŠøŠ¼ проГавцом.", + vendorNoMoney = "Š£ ŃŃ‚Š¾Š³Š¾ проГавца нет Генег на ŃŃ‚Š¾Ń‚ преГмет.", + vendorNoStock = "Š£ ŃŃ‚Š¾Š³Š¾ проГавца нет ŃŃ‚Š¾Š³Š¾ преГмета в наличии.", + contentTitle = "ŠžŃ‚ŃŃƒŃ‚ŃŃ‚Š²ŃƒŠµŃ‚ контент NutScript", + contentWarning = "Š£ вас не ŃƒŃŃ‚Š°Š½Š¾Š²Š»ŠµŠ½ контент NutScript. Это может привести Šŗ Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾ŃŃ‚Šø некоторых Ń„ŃƒŠ½ŠŗŃ†ŠøŠ¹.\nАГрес контента NutScript был изменен на аГрес rebel1324.\nЄотите Š¾Ń‚ŠŗŃ€Ń‹Ń‚ŃŒ ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ мастерской Š“Š»Ń контента NutScript?", + flags = "Флаги", + chooseTip = "Выберите ŃŃ‚Š¾Š³Š¾ персонажа Š“Š»Ń игры.", + deleteTip = "Š£Š“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾Š³Š¾ персонажа.", + moneyLeft = "Š’Š°ŃˆŠø Геньги: ", + currentMoney = "ŠžŃŃ‚Š°Ń‚Š¾Šŗ Генег: ", - -- 2021 patch - itemCreated = "ŠŸŃ€ŠµŠ“Š¼ŠµŃ‚ успешно созГан.", - flagGiveTitle = "Š”Š°Ń‚ŃŒ флаги", - flagGiveDesc = "Š’Ń‹Š“Š°Ń‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠµ флаги ŠøŠ³Ń€Š¾ŠŗŃƒ.", - flagTakeTitle = "ŠžŃ‚Š½ŃŃ‚ŃŒ флаги", - flagTakeDesc = "ŠžŃ‚Š½ŃŃ‚ŃŒ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠµ флаги от игрока.", - limitFaction = "Š”Š°Š½Š½Š°Ń Ń„Ń€Š°ŠŗŃ†ŠøŃ полна. ŠŸŠ¾ŠæŃ€Š¾Š±ŃƒŠ¹Ń‚Šµ попозже.", - toggleObserverTP = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ телепортирование при Š½Š°Š±Š»ŃŽŠ“ении.", - toggleESPAdvanced = "ŠŸŠµŃ€ŠµŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ Ń€Š°ŃŃˆŠøŃ€ŠµŠ½Š½Ń‹Š¹ режим ESP", - thirdpersonConfig = "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠ° Ń‚Ń€ŠµŃ‚ŃŒŠµŠ³Š¾ лица", - ammoLoadAll = "Š—Š°Ń€ŃŠ“ŠøŃ‚ŃŒ всё", - ammoLoadAmount = "Š—Š°Ń€ŃŠ“ŠøŃ‚ŃŒ %s", - ammoLoadCustom = "Š—Š°Ń€ŃŠ“ŠøŃ‚ŃŒ...", - split = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ", - splitHelp = "ВвеГите сумму Š“Š»Ń Ń€Š°Š·Š“ŠµŠ»ŠµŠ½ŠøŃ.", - splitHalf = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ 1/2", - splitQuarter = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ 1/4", - recognize = "ŠŸŠ¾Š·Š²Š¾Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾Š¼Ńƒ ŠæŠµŃ€ŃŠ¾Š½Š°Š¶Ńƒ ŃƒŠ·Š½Š°Ń‚ŃŒ вашу Š»ŠøŃ‡Š½Š¾ŃŃ‚ŃŒ.", - recognized = "Данный персонаж узнал вашу Š»ŠøŃ‡Š½Š¾ŃŃ‚ŃŒ.", - already_recognized = "Данный персонаж уже знает вашу Š»ŠøŃ‡Š½Š¾ŃŃ‚ŃŒ.", - untying = "Š Š°Š·Š²ŃŠ·Ń‹Š²Š°Š½ŠøŠµ...", - beingUntied = "Вас Ń€Š°Š·Š²ŃŠ·Ń‹Š²Š°ŃŽŃ‚...", - beingTied = "Вас ŃŠ²ŃŠ·Ń‹Š²Š°ŃŽŃ‚...", - sameOutfitCategory = "Такой виГ ŃŠŗŠøŠæŠøŃ€Š¾Š²ŠŗŠø на вас уже наГет.", - noBusiness = "Š’ Ганный момент вы не можете ничего ŠŗŃƒŠæŠøŃ‚ŃŒ.", - panelRemoved = "Š’Ń‹ уГалили %s 3D панелей.", - panelAdded = "Š’Ń‹ Гобавили 3D панель.", - itemOnGround = "Вас преГмет был положет на Š·ŠµŠ¼Š»ŃŽ.", - forbiddenActionStorage = "Действие с хранимым преГметом запрещено.", - cantDropBagHasEquipped = "Запрещено Š±Ń€Š¾ŃŠ°Ń‚ŃŒ сумку с ŃŠŗŠøŠæŠøŃ€Š¾Š²Š°Š½Š½Ń‹Š¼ преГметом.", - lookToUseAt = "ŠŠµŠ¾Š±Ń…Š¾Š“ŠøŠ¼Š¾ ŃŠ¼Š¾Ń‚Ń€ŠµŃ‚ŃŒ на игрока Š“Š»Ń ŠøŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŃ '@'", - mustProvideString = "ŠŠµŠ¾Š±Ń…Š¾Š“ŠøŠ¼Š¾ ŠæŃ€ŠµŠ“ŃŒŃŠ²ŠøŃ‚ŃŒ ŃŃ‚Ń€Š¾ŠŗŠ¾Š²ŃƒŃŽ Š“Š»Ń ŃŃ‚Š¾Š¹ Ń„ŃƒŠ½ŠŗŃ†ŠøŠø", - - --Attributes - Endurance = "Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ бега", - Stamina = "Š’Ń‹Š½Š¾ŃŠ»ŠøŠ²Š¾ŃŃ‚ŃŒ", - Strength = "Дила", + -- ŠŸŠ°Ń‚Ń‡ 2018 гоГа + ammoLoadAll = "Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ всё", + ammoLoadAmount = "Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ %s", + ammoLoadCustom = "Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ...", + split = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ", + splitHelp = "ВвеГите число Š“Š»Ń Ń€Š°Š·Š“ŠµŠ»ŠµŠ½ŠøŃ.", + splitHalf = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ на 1/2", + splitQuarter = "Š Š°Š·Š“ŠµŠ»ŠøŃ‚ŃŒ на 1/4", + recognize = "Š Š°Š·Ń€ŠµŃˆŠøŃ‚ŃŒ ŃŃ‚Š¾Š¼Ńƒ ŠæŠµŃ€ŃŠ¾Š½Š°Š¶Ńƒ вас ŃƒŠ·Š½Š°Š²Š°Ń‚ŃŒ.", + recognized = "Š’Ń‹ преГоставили ŃŃ‚Š¾Š¼Ńƒ ŠæŠµŃ€ŃŠ¾Š½Š°Š¶Ńƒ ŃŠ²Š¾ŃŽ Š»ŠøŃ‡Š½Š¾ŃŃ‚ŃŒ.", + already_recognized = "Этот персонаж уже вас знает.", + isTied = "Этого человека ŃŠ²ŃŠ·Š°Š»Šø.", + tying = "Š”Š²ŃŠ·Ń‹Š²Š°Š½ŠøŠµ", + untying = "Š Š°Š·Š²ŃŠ·Ń‹Š²Š°Š½ŠøŠµ", + beingUntied = "Вас Ń€Š°Š·Š²ŃŠ·Ń‹Š²Š°ŃŽŃ‚.", + beingTied = "Вас ŃŠ²ŃŠ·Ń‹Š²Š°ŃŽŃ‚.", + sameOutfitCategory = "Š’Ń‹ уже носите ŃŃ‚Š¾Ń‚ тип Š½Š°Ń€ŃŠ“а.", + noBusiness = "Вам сейчас не Ń€Š°Š·Ń€ŠµŃˆŠ°ŠµŃ‚ŃŃ ничего ŠæŠ¾ŠŗŃƒŠæŠ°Ń‚ŃŒ.", + panelRemoved = "Š’Ń‹ уГалили %s 3D-панелей.", + panelAdded = "Š’Ń‹ Гобавили 3D-панель.", + itemOnGround = "Š’Š°Ńˆ преГмет был помещен на Š·ŠµŠ¼Š»ŃŽ.", + forbiddenActionStorage = "Š’Ń‹ не можете Š²Ń‹ŠæŠ¾Š»Š½ŃŃ‚ŃŒ ŃŃ‚Š¾ Гействие с ŠæŠ¾Š¼Š¾Ń‰ŃŒŃŽ преГмета в хранилище.", + cantDropBagHasEquipped = "Š’Ń‹ не можете Š²Ń‹Š±Ń€Š¾ŃŠøŃ‚ŃŒ сумку, в которой ŠµŃŃ‚ŃŒ ŃŠŗŠøŠæŠøŃ€Š¾Š²Š°Š½Š½Ń‹Š¹ преГмет.", + + -- ŠŸŠ°Ń‚Ń‡ 2021 гоГа + lookToUseAt = "Š’Ń‹ Голжны ŃŠ¼Š¾Ń‚Ń€ŠµŃ‚ŃŒ на кого-то, чтобы ŠøŃŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Ń‚ŃŒ '@'", + mustProvideString = "Š’Ń‹ Голжны ŠæŃ€ŠµŠ“Š¾ŃŃ‚Š°Š²ŠøŃ‚ŃŒ ŃŃ‚Ń€Š¾ŠŗŃƒ Š“Š»Ń переменной", + + -- ŠŸŠ°Ń‚Ń‡ 2023 гоГа + togglePluginsDesc = "Выбранные плагины Š±ŃƒŠ“ŃƒŃ‚ Š¾Ń‚ŠŗŠ»ŃŽŃ‡ŠµŠ½Ń‹.\nŠšŠ°Ń€Ń‚Š° Голжна Š±Ń‹Ń‚ŃŒ ŠæŠµŃ€ŠµŠ·Š°ŠæŃƒŃ‰ŠµŠ½Š° после Š²Š½ŠµŃŠµŠ½ŠøŃ изменений!", } diff --git a/gamemode/languages/sh_spanish.lua b/gamemode/languages/sh_spanish.lua index dec2466e..4ffb66da 100644 --- a/gamemode/languages/sh_spanish.lua +++ b/gamemode/languages/sh_spanish.lua @@ -1,264 +1,266 @@ ----//Translation made by Barata#2411 & CVAROG#7222\\---- ----//Contact DasBarata#2411 if you have any translation change suggestion\\---- -NAME = "EspaƱol" -LANGUAGE = { - loading = "Cargando", - dbError = "Fallo de conexión con la Base de Datos", - unknown = "Desconocido", - noDesc = "Descripción no disponible", - create = "Crear", - createTip = "Crea un nuevo personaje con el que jugar.", - load = "Cargar", - loadTip = "Escoge un personaje previamente creado con el que jugar.", - leave = "Abandonar", - leaveTip = "Abandonar el servidor.", - ["return"] = "Volver", - returnTip = "Vuelve al menĆŗ anterior.", - name = "Nombre", - desc = "Descripción", - model = "Modelo", - attribs = "Atributos", - charCreateTip = "Completa todos los campos obligatorios y haz clic en 'Finalizar' para crear a tu personaje.", - invalid = "Has provisto un %s invĆ”lido.", - descMinLen = "Tu descripción debe ser de al menos %d caracteres.", - player = "Jugador", - finish = "Finalizar", - finishTip = "Finaliza la creación de personaje.", - needModel = "Necesitas escoger un modelo vĆ”lido.", - creating = "Tu personaje estĆ” siendo creado...", - unknownError = "Ha ocurrido un error desconocido", - delConfirm = "ĀæEstĆ”s seguro que quieres borrar PERMANENTEMENTE a %s?", - no = "No", - yes = "SĆ­", - itemInfo = "Nombre: %s\nDescripción: %s", - cloud_no_repo = "El repositorio provisto no es vĆ”lido.", - cloud_no_plugin = "El plugin provisto no es vĆ”lido.", - inv = "Inventario", - plugins = "Plugins", - author = "Autor", - version = "Versión", - characters = "Personajes", - business = "Negocios", - settings = "Opciones", - config = "Configuración", - chat = "Chat", - appearance = "Apariencia", - misc = "MiscelĆ”neo", - oocDelay = "Espera %s segundo(s) antes de usar el chat OOC de nuevo.", - loocDelay = "Espera %s segundo(s) antes de usar el chat LOOC de nuevo.", - usingChar = "Ya estĆ”s usando Ć©ste personaje.", - notAllowed = "Lo siento, no tienes permitido hacer eso.", - itemNoExist = "Lo siento, el objeto que solicitaste no existe.", - cmdNoExist = "Lo siento, Ć©ste comando no existe.", - plyNoExist = "Lo siento, el jugador correspondiente no ha podido ser encontrado.", - cfgSet = "%s ha establecido \"%s\" a %s.", - drop = "Tirar", - dropTip = "Tira el objeto desde tu inventario.", - take = "Coger", - takeTip = "Coge Ć©ste objeto y colocarlo en tu inventario.", - dTitle = "Puerta sin propietario", - dTitleOwned = "Puerta comprada", - dIsNotOwnable = "EstĆ” puerta no se puede poseer.", - dIsOwnable = "Puedes comprar Ć©sta puerta pulsando F2.", - dMadeUnownable = "Has hecho Ć©sta puerta 'No poseĆ­ble'.", - dMadeOwnable = "Has hecho Ć©sta puerta 'PoseĆ­ble'.", - dNotAllowedToOwn = "No tienes permiso a poseer Ć©sta puerta.", - dSetDisabled = "Has hecho que Ć©sta puerta este 'Dehabilitada'.", - dSetNotDisabled = "Has hecho que Ć©sta puerta este 'Habilitada'.", - dSetHidden = "Has hecho que Ć©sta puerta estĆ© oculta.", - dSetNotHidden = "Has hecho que Ć©sta puerta no estĆ© oculta.", - dSetParentDoor = "Has establecido Ć©sta puerta como tu puerta principal.", - dCanNotSetAsChild = "No puedes establecer la puerta principal como puerta secundaria.", - dAddChildDoor = "Has aƱadido Ć©sta puerta como puerta secundaria.", - dRemoveChildren = "Has eliminado todas las puertas secundarias de Ć©sta puerta.", - dRemoveChildDoor = "Has eliminado Ć©sta puerta como puerta secundaria.", - dNoParentDoor = "No tienes una puerta principal establecida.", - dOwnedBy = "Ɖsta puerta estĆ” poseĆ­da por %s.", - dConfigName = "Puertas", - dSetFaction = "Ɖsta puerta ahora pertenece a la facción %s.", - dRemoveFaction = "Ɖsta puerta ya no pertenece a ninguna facción.", - dNotValid = "No estĆ”s mirando a una puerta vĆ”lida.", - canNotAfford = "No puedes permitirte el gasto para comprar Ć©sto.", - dPurchased = "Has comprado Ć©sta puerta por %s.", - dSold = "Has vendido Ć©sta puerta por %s.", - notOwner = "No eres el propietario de Ć©sto.", - invalidArg = "Has provisto un valor invĆ”lido para el argumento #%s.", - invalidFaction = "No se ha encontrado la facción que has provisto.", - flagGive = "%s ha dado a %s las flags '%s'.", - flagGiveTitle = "Dar Flags", - flagGiveDesc = "Da las siguientes flags al jugador.", - flagTake = "%s ha quitado las flags '%s' de %s.", - flagTakeTitle = "Quitar Flags", - flagTakeDesc = "Quita las siguientes flags del jugador.", - flagNoMatch = "Debes tener la(s) flag(s) \"%s\" para hacer Ć©sta acción.", - textAdded = "Has aƱadido un texto.", - textRemoved = "Has borrado %s texto(s).", - moneyTaken = "Has encontrado %s.", - businessPurchase = "Has comprado %s por %s.", - businessSell = "Has vendido %s por %s.", - cChangeModel = "%s ha cambiado el modelo de %s a %s.", - cChangeName = "%s ha cambiado el nombre de %s a %s.", - cChangeSkin = "%s ha cambiado el skin de %s a %s.", - cChangeGroups = "%s ha cambiado el bodygroup \"%s\" de %s a %s.", - cChangeFaction = "%s ha transferido a %s a la facción %s.", - playerCharBelonging = "Ɖste objeto ya pertenece a otro de tus personajes.", - spawnAdd = "Has aƱadido un spawn para %s.", - spawnDeleted = "Has eliminado el spawn de %s.", - someone = "Alguien", - rgnLookingAt = "Permite que te reconozca a quien estĆ”s mirando.", - rgnWhisper = "Permite que te reconozcan aquellos que te escuchen susurrar.", - rgnTalk = "Permite que te reconozcan aquellos que te escuchen hablar.", - rgnYell = "Permite que te reconozcan aquellos que te escuchen gritar.", - icFormat = "%s dice \"%s\"", - rollFormat = "%s ha tirado los dados y ha sacado un %s.", - wFormat = "%s susurra \"%s\"", - yFormat = "%s gritar \"%s\"", - sbOptions = "Haz clic para ver las opciones de %s.", - spawnAdded = "Has aƱadido punto de aparición de %s.", - whitelist = "%s ha metido a %s en la 'whitelist' de la facción %s.", - unwhitelist = "%s ha sacado a %s de la 'whitelist' de la facción %s.", - gettingUp = "Te estĆ”s levantando...", - wakingUp = "EstĆ”s recuperando la consciencia...", - Weapons = "Armas", - checkout = "Ir a la cesta (%s)", - purchase = "Comprar", - purchasing = "Comprando...", - success = "Ɖxito.", - buyFailed = "Compra fallida.", - buyGood = "Compra exitosa!", - shipment = "EnvĆ­o", - shipmentDesc = "Ɖste envĆ­o pertenece a %s.", - class = "Clase", - classes = "Clases", - illegalAccess = "Acceso ilegal.", - becomeClassFail = "Fallo en convertirse en %s.", - becomeClass = "Te has convertido en %s.", - attribSet = "Has establecido el nivel de %s de %s a %s puntos.", - attribUpdate = "Has aƱadido al nivel de %s de %s %s puntos.", - noFit = "Ɖste objeto no cabe en tu inventario.", - help = "Ayuda", - commands = "Comandos", - helpDefault = "Selecciona una categorĆ­a", - doorSettings = "Configuración de puertas", - sell = "Vender", - access = "Acceso", - locking = "Bloqueando Ć©sta entidad...", - unlocking = "Desbloqueando Ć©sta entidad...", - modelNoSeq = "Tu modelo no es compatible con Ć©ste acto.", - notNow = "No tienes permiso para hacer Ć©sto ahora.", - faceWall = "Debes estar mirando una pared para hacer Ć©sto.", - faceWallBack = "Tu espalda tiene que estar mirando una pared para hacer Ć©sto.", - descChanged = "Has cambiado la descripción de tu personaje.", - charMoney = "Actualmente tienes %s.", - charFaction = "Eres un miembro de %s.", - charClass = "Eres %s de la facción.", - noSpace = "El inventario estĆ” lleno.", - noOwner = "El propietario no es vĆ”lido.", - invalidIndex = "El Ć­ndice no es vĆ”lido.", - invalidItem = "El objeto no es vĆ”lido.", - invalidInventory = "El inventario no es vĆ”lido.", - home = "Inicio", - charKick = "%s ha echado a %s.", - charBan = "%s ha expulsado a %s.", - charBanned = "Ɖste personaje estĆ” expulsado.", - setMoney = "Has establecido el dinero de %s a %s.", - itemPriceInfo = "Puedes comprar Ć©ste objeto por %s.\nPuedes vender Ć©ste objeto por %s", - free = "Gratis", - vendorNoSellItems = "No hay objetos para vender.", - vendorNoBuyItems = "No hay objetos para comprar.", - vendorSettings = "Configuración del Vendedor", - vendorUseMoney = "ĀæEl vendedor debe usar dinero?", - vendorNoBubble = "ĀæEsconder burbuja del vendedor?", - mode = "Modo", - price = "Precio", - stock = "Stock", - none = "Nada", - vendorBoth = "Comprar y vender", - vendorBuy = "Sólo comprar", - vendorSell = "Sólo vender", - maxStock = "Stock mĆ”ximo", - vendorFaction = "Editor de facción", - buy = "Comprar", - vendorWelcome = "Bienvenid@ a mi tienda, ĀæquĆ© puedo hacer por usted?", - vendorBye = "Ā”Vuelva pronto!", - charSearching = "Ya estĆ” buscando a otro personaje, por favor espere.", - charUnBan = "%s ha perdonado la expulsión a %s.", - charNotBanned = "Ɖste personaje no estĆ” expulsado.", - storPass = "Has establecido la contraseƱa de Ć©ste depósito como %s.", - storPassRmv = "Has eliminado la contraseƱa de Ć©ste depósito.", - storPassWrite = "Introduce la contraseƱa.", - wrongPassword = "Has introducido una constraseƱa errónea.", - cheapBlur = "ĀæDeshabilitar difuminación?", - quickSettings = "Configuración rĆ”pida", - vmSet = "Has establecido tu buzón de voz.", - vmRem = "Has eliminado tu buzón de voz.", - altLower = "ĀæOcultar las manos cuando se bajen?", - noPerm = "No tienes permiso para hacer Ć©sto.", - youreDead = "EstĆ”s muerto.", - injMajor = "Parece que estĆ” gravemente herido.", - injLittle = "Parece que estĆ” herido.", - toggleESP = "Activar/Desactivar Admin ESP", - chgName = "Cambiar nombre", - chgNameDesc = "Introduce abajo el nuevo nombre del personaje.", - thirdpersonToggle = "Activar/Desactivar Tercera Persona", - thirdpersonClassic = "Usar el sistema de Tercera Persona clĆ”sico", - equippedBag = "La bolsa que has movido tiene un objeto que te has equipado.", - useTip = "Usa el objeto.", - equipTip = "Equipa el objeto.", - unequipTip = "Desequipa el objeto.", - consumables = "Consumibles", - plyNotValid = "No estĆ”s mirando a un jugador vĆ”lido.", - restricted = "Has sido atado.", - viewProfile = "Ver el perfil de Steam.", - salary = "Has recibido %s de tu salario.", - noRecog = "No reconoces a Ć©sta persona.", - curTime = "La hora actual es %s.", - vendorEditor = "Editor de vendedor", - edit = "Editar", - disable = "Deshabilitar", - vendorPriceReq = "Introduce el nuevo precio del objeto.", - vendorEditCurStock = "Editar Stock actual", - you = "TĆŗ", - model = "Modelo", - business = "Negocios", - invalidFaction = "Has provisto una facción invĆ”lida.", - notAllowed = "Ɖsta acción no estĆ” permitida.", - -- 2021 patch +NAME = "EspaƱol" - thirdpersonConfig = "Configuración de cĆ”mara en tercera persona", - vendorSellScale = "Escala de precios de venta", - vendorNoTrade = "No puedes comprar a este vendedor.", - vendorNoMoney = "Este vendedor no puede pagar este artĆ­culo.", - vendorNoStock = "Este vendedor no tiene este artĆ­culo en stock.", - contentTitle = "Content del NutScript Ausent", - contentWarning = "No tienes el contenido de NutScript montado. Esto puede probocar ciertas fallas en las funciones.\nUtilice el contenido de Nutscript de Rebel1324.\nĀæLe gustarĆ­a abrir la pĆ”gina del Workshop para el contenido de NutScript?", - flags = "Flags", - chooseTip = "Elige este personaje para jugar.", - deleteTip = "Eliminar este personaje.", - moneyLeft = "Tu Dinero: ", - currentMoney = "Dinero Sobrante: ", - ammoLoadAll = "Cargar todo", - ammoLoadAmount = "Cargar %s", - ammoLoadCustom = "Cargar...", - split = "Dividr", - splitHelp = "Ingrese un nĆŗmero para dividir.", - splitHalf = "Dividir 1/2", - splitQuarter = "Dividir 1/4", - recognize = "Deja que este personaje te reconozca.", - recognized = "Le diste a este personaje tu identidad.", - already_recognized = "Este personaje ya te conoce.", - isTied = "Esta persona ha sido atada.", - tying = "Atando", - untying = "Desatando", - beingUntied = "Estas siendo desatado.", - beingTied = "Estas siendo atado.", - sameOutfitCategory = "Ya llevas este tipo de atuendo.", - noBusiness = "No se le permite comprar nada en este momento.", - panelRemoved = "Te has quitado %s 3D panels.", - panelAdded = "Has agregado a 3D panel.", - itemOnGround = "Tu artĆ­culo ha sido colocado en el suelo.", - forbiddenActionStorage = "No puedes realizar esta acción con un artĆ­culo almacenado.", - cantDropBagHasEquipped = "No puedes soltar la bolsa que tiene un artĆ­culo equipado.", - lookToUseAt = "Necesitas estar buscando a alguien para usar '@'", - mustProvideString = "Debes proporcionar una string para la variable.", -} +LANGUAGE = { + loading = "Cargando", + dbError = "Error de conexión a la base de datos", + unknown = "Desconocido", + noDesc = "Descripción no disponible", + create = "Crear", + createTip = "Crear un nuevo personaje para jugar.", + load = "Cargar", + loadTip = "Seleccionar un personaje previamente creado para jugar.", + leave = "Salir", + leaveTip = "Abandonar el servidor actual.", + ["return"] = "Volver", + returnTip = "Volver al menĆŗ anterior.", + name = "Nombre", + desc = "Descripción", + model = "Modelo", + attribs = "Atributos", + charCreateTip = "Rellena los campos a continuación y pulsa 'Finalizar' para crear tu personaje.", + invalid = "Has proporcionado un(a) %s invĆ”lido(a)", + descMinLen = "Tu descripción debe tener al menos %d caracteres.", + player = "Jugador", + finish = "Finalizar", + finishTip = "Terminar la creación del personaje.", + needModel = "Debes elegir un modelo vĆ”lido", + creating = "Tu personaje se estĆ” creando...", + unknownError = "Ha ocurrido un error desconocido", + delConfirm = "ĀæEstĆ”s seguro de que quieres BORRAR PERMANENTEMENTE a %s?", + no = "No", + yes = "SĆ­", + itemInfo = "Nombre: %s\nDescripción: %s", + itemCreated = "Objeto creado exitosamente.", + cloud_no_repo = "El repositorio proporcionado no es vĆ”lido.", + cloud_no_plugin = "El complemento proporcionado no es vĆ”lido.", + inv = "Inventario", + plugins = "Complementos", + togglePlugins = "Activar/Desactivar complementos", + author = "Autor", + version = "Versión", + characters = "Personajes", + settings = "Configuración", + config = "Config", + chat = "Chat", + appearance = "Apariencia", + misc = "MiscelĆ”neo", + oocDelay = "Debes esperar %s segundo(s) mĆ”s antes de usar OOC nuevamente.", + loocDelay = "Debes esperar %s segundo(s) mĆ”s antes de usar LOOC nuevamente.", + usingChar = "Ya estĆ”s usando este personaje.", + itemNoExist = "Lo siento, el objeto que has solicitado no existe.", + cmdNoExist = "Lo siento, ese comando no existe.", + plyNoExist = "Lo siento, no se ha encontrado ningĆŗn jugador coincidente.", + cfgSet = "%s ha configurado \"%s\" como %s.", + drop = "Soltar", + dropTip = "Soltar este objeto de tu inventario.", + take = "Recoger", + takeTip = "Recoger este objeto y colocarlo en tu inventario.", + dTitle = "Puerta sin propietario", + dTitleOwned = "Puerta Comprada", + dIsNotOwnable = "Esta puerta no puede ser poseĆ­da.", + dIsOwnable = "Puedes comprar esta puerta presionando F2.", + dMadeUnownable = "Has hecho que esta puerta no sea poseĆ­ble.", + dMadeOwnable = "Has hecho que esta puerta sea poseĆ­ble.", + dNotAllowedToOwn = "No tienes permitido ser el propietario de esta puerta.", + dSetDisabled = "Has desactivado esta puerta.", + dSetNotDisabled = "Has reactivado esta puerta.", + dSetHidden = "Has ocultado esta puerta.", + dSetNotHidden = "Has revelado esta puerta.", + dSetParentDoor = "Has establecido esta puerta como tu puerta principal.", + dCanNotSetAsChild = "No puedes establecer la puerta principal como una puerta secundaria.", + dAddChildDoor = "Has aƱadido esta puerta como una puerta secundaria.", + dRemoveChildren = "Has eliminado todas las puertas secundarias de esta puerta.", + dRemoveChildDoor = "Has eliminado esta puerta como una puerta secundaria.", + dNoParentDoor = "No tienes una puerta principal establecida.", + dOwnedBy = "Esta puerta es propiedad de %s.", + dConfigName = "Puertas", + dSetFaction = "Esta puerta ahora pertenece a la facción %s.", + dRemoveFaction = "Esta puerta ya no pertenece a ninguna facción.", + dNotValid = "No estĆ”s mirando a una puerta vĆ”lida.", + canNotAfford = "No puedes permitirte comprar esto.", + dPurchased = "Has comprado esta puerta por %s.", + dSold = "Has vendido esta puerta por %s.", + notOwner = "No eres el propietario de esto.", + invalidArg = "Has proporcionado un valor invĆ”lido para el argumento #%s.", + flagGive = "%s ha dado a %s las banderas '%s'.", + flagGiveTitle = "Dar Banderas", + flagGiveDesc = "Dar las siguientes banderas al jugador.", + flagTake = "%s ha quitado las banderas '%s' de %s.", + flagTakeTitle = "Quitar Banderas", + flagTakeDesc = "Quitar las siguientes banderas del jugador.", + flagNoMatch = "Necesitas tener banderas \"%s\" para realizar esta acción.", + textAdded = "Has aƱadido un texto.", + textRemoved = "Has eliminado %s texto(s).", + moneyTaken = "Encontraste %s.", + businessPurchase = "Has comprado %s por %s.", + businessSell = "Has vendido %s por %s.", + cChangeModel = "%s ha cambiado el modelo de %s a %s.", + cChangeName = "%s ha cambiado el nombre de %s a %s.", + cChangeSkin = "%s ha cambiado la apariencia de %s a %s.", + cChangeGroups = "%s ha cambiado el bodygroup \"%s\" de %s a %s.", + cChangeFaction = "%s ha transferido a %s a la facción %s.", + playerCharBelonging = "Este objeto pertenece a tu otro personaje.", + business = "Negocio", + invalidFaction = "Has proporcionado una facción invĆ”lida.", + limitFaction = "Esta facción estĆ” llena. IntĆ©ntalo de nuevo mĆ”s tarde.", + spawnAdd = "Has aƱadido un punto de spawn para %s.", + spawnDeleted = "Has eliminado %s punto(s) de spawn.", + someone = "Alguien", + rgnLookingAt = "Permite a la persona a la que estĆ”s mirando reconocerte.", + rgnWhisper = "Permite a los que estĆ”n susurrando reconocerte.", + rgnTalk = "Permite a los que estĆ”n hablando reconocerte.", + rgnYell = "Permite a los que estĆ”n gritando reconocerte.", + icFormat = "%s dice \"%s\"", + rollFormat = "%s ha sacado %s.", + wFormat = "%s susurra \"%s\"", + yFormat = "%s grita \"%s\"", + sbOptions = "Haz clic para ver las opciones de %s.", + spawnAdded = "Has aƱadido un punto de spawn para %s.", + whitelist = "%s ha aƱadido a %s a la lista blanca de la facción %s.", + unwhitelist = "%s ha eliminado a %s de la lista blanca de la facción %s.", + gettingUp = "Te estĆ”s levantando...", + wakingUp = "EstĆ”s recobrando la conciencia...", + Weapons = "Armas", + checkout = "Ir al Pago (%s)", + purchase = "Comprar", + purchasing = "Comprando...", + success = "Ɖxito", + buyFailed = "Compra fallida.", + buyGood = "Compra exitosa.", + shipment = "EnvĆ­o", + shipmentDesc = "Este envĆ­o pertenece a %s.", + class = "Clase", + classes = "Clases", + illegalAccess = "Acceso ilegal.", + becomeClassFail = "Fallo al convertirse en %s.", + becomeClass = "Te has convertido en %s.", + attribSet = "Has establecido %s's %s como %s.", + attribUpdate = "Has aumentado %s's %s por %s.", + noFit = "Este objeto no cabe en tu inventario.", + help = "Ayuda", + commands = "Comandos", + helpDefault = "Selecciona una categorĆ­a", + doorSettings = "Configuración de Puertas", + sell = "Vender", + access = "Acceso", + locking = "Bloqueando esta entidad...", + unlocking = "Desbloqueando esta entidad...", + modelNoSeq = "Tu modelo no admite esta acción.", + notNow = "No tienes permitido hacer esto en este momento.", + faceWall = "Debes estar mirando a la pared para hacer esto.", + faceWallBack = "Debes tener la espalda hacia la pared para hacer esto.", + descChanged = "Has cambiado la descripción de tu personaje.", + charMoney = "Actualmente tienes %s.", + charFaction = "Eres miembro de la facción %s.", + charClass = "Eres %s de la facción.", + noSpace = "Inventario lleno.", + noOwner = "El propietario no es vĆ”lido.", + notAllowed = "Esta acción no estĆ” permitida.", + invalidIndex = "El Ć­ndice del objeto no es vĆ”lido.", + invalidItem = "El objeto no es vĆ”lido.", + invalidInventory = "El inventario no es vĆ”lido.", + home = "Inicio", + charKick = "%s expulsó al personaje %s.", + charBan = "%s ha baneado al personaje %s.", + charBanned = "Este personaje estĆ” baneado.", + setMoney = "Has establecido el dinero de %s como %s.", + itemPriceInfo = "Puedes comprar este objeto por %s.\nPuedes vender este objeto por %s", + free = "Gratis", + vendorNoSellItems = "No hay objetos para vender.", + vendorNoBuyItems = "No hay objetos para comprar.", + vendorSettings = "Configuración de Vendedor", + vendorUseMoney = "ĀæEl vendedor debe usar dinero?", + vendorNoBubble = "ĀæOcultar burbuja del vendedor?", + mode = "Modo", + price = "Precio", + stock = "Existencias", + none = "Ninguno", + vendorBoth = "Comprar y Vender", + vendorBuy = "Solo Comprar", + vendorSell = "Solo Vender", + maxStock = "Existencias MĆ”ximas", + vendorFaction = "Editor de Facciones", + buy = "Comprar", + vendorWelcome = "Bienvenido a mi tienda, ĀæquĆ© puedo conseguirte hoy?", + vendorBye = "Ā”Vuelve pronto!", + charSearching = "Ya estĆ”s buscando otro personaje, por favor espera.", + charUnBan = "%s ha desbaneado al personaje %s.", + charNotBanned = "Este personaje no estĆ” baneado.", + storPass = "Has establecido la contraseƱa de este almacenamiento como %s.", + storPassRmv = "Has eliminado la contraseƱa de este almacenamiento.", + storPassWrite = "Ingresa la contraseƱa.", + wrongPassword = "Has ingresado una contraseƱa incorrecta.", + cheapBlur = "ĀæDesactivar el desenfoque? (Aumenta FPS)", + quickSettings = "Configuración RĆ”pida", + vmSet = "Has establecido tu correo de voz.", + vmRem = "Has eliminado tu correo de voz.", + altLower = "ĀæOcultar las manos cuando estĆ”n bajas?", + noPerm = "No tienes permiso para hacer esto.", + youreDead = "EstĆ”s muerto", + injMajor = "Pareces gravemente herido.", + injLittle = "Pareces herido", + toggleObserverTP = "Alternar teletransporte de observador", + toggleESP = "Alternar ESP de Administrador", + toggleESPAdvanced = "Modo Avanzado de ESP", + chgName = "Cambiar Nombre", + chgNameDesc = "Ingresa el nuevo nombre del personaje a continuación.", + thirdpersonToggle = "Alternar Tercera Persona", + thirdpersonClassic = "Usar Tercera Persona ClĆ”sica", + thirdpersonConfig = "Configuración de Tercera Persona", + equippedBag = "Los objetos equipados no se pueden mover entre inventarios.", + useTip = "Usa el objeto.", + equipTip = "Equipar el objeto.", + unequipTip = "Desequipar el objeto.", + consumables = "Consumibles", + plyNotValid = "No estĆ”s mirando a un jugador vĆ”lido.", + restricted = "Has sido restringido.", + viewProfile = "Ver Perfil de Steam", + salary = "Has recibido %s de tu salario.", + noRecog = "No reconoces a esta persona.", + curTime = "La hora actual es %s.", + vendorEditor = "Editor de Vendedor", + edit = "Editar", + disable = "Desactivar", + vendorPriceReq = "Ingresa el nuevo precio para este objeto.", + vendorEditCurStock = "Editar Existencias Actuales", + you = "TĆŗ", + vendorSellScale = "Escala de precio de venta", + vendorNoTrade = "No puedes comerciar con este vendedor.", + vendorNoMoney = "Este vendedor no puede permitirse ese objeto.", + vendorNoStock = "Este vendedor no tiene ese objeto en stock.", + contentTitle = "Contenido Faltante de NutScript", + contentWarning = "No tienes montado el contenido de NutScript. Esto puede resultar en la falta de ciertas caracterĆ­sticas.\nLa dirección del contenido de Nutscript ha sido cambiada a la de rebel1324.\nĀæDeseas abrir la pĆ”gina del Workshop para el contenido de NutScript?", + flags = "Banderas", + chooseTip = "Elige este personaje para jugar con Ć©l.", + deleteTip = "Eliminar este personaje.", + moneyLeft = "Tu Dinero: ", + currentMoney = "Dinero Restante: ", + -- Parche de 2018 + ammoLoadAll = "Cargar Todo", + ammoLoadAmount = "Cargar %s", + ammoLoadCustom = "Cargar...", + split = "Dividir", + splitHelp = "Ingresa un nĆŗmero para dividir.", + splitHalf = "Dividir 1/2", + splitQuarter = "Dividir 1/4", + recognize = "Permitir que este personaje te reconozca.", + recognized = "Le diste tu identidad a este personaje.", + already_recognized = "Este personaje ya te conoce.", + isTied = "Esta persona estĆ” atada.", + tying = "Atando", + untying = "Desatando", + beingUntied = "Te estĆ”n desatando.", + beingTied = "Te estĆ”n atando.", + sameOutfitCategory = "Ya estĆ”s usando este tipo de atuendo.", + noBusiness = "No tienes permitido comprar nada en este momento.", + panelRemoved = "Has eliminado %s paneles 3D.", + panelAdded = "Has agregado un panel 3D.", + itemOnGround = "Tu objeto ha sido colocado en el suelo.", + forbiddenActionStorage = "No puedes hacer esta acción con un objeto almacenado.", + cantDropBagHasEquipped = "No puedes soltar la bolsa que tiene un objeto equipado.", + -- Parche de 2021 + lookToUseAt = "Debes mirar a alguien para usar '@'", + mustProvideString = "Debes proporcionar una cadena para la variable.", + -- Parche de 2023 + togglePluginsDesc = "Los complementos seleccionados se desactivarĆ”n.\nEl mapa debe reiniciarse despuĆ©s de realizar cambios.", +} \ No newline at end of file diff --git a/gamemode/shared.lua b/gamemode/shared.lua index 4e5583b3..3f63727f 100644 --- a/gamemode/shared.lua +++ b/gamemode/shared.lua @@ -76,7 +76,8 @@ function GM:OnReloaded() hook.Run( "LoadNutFonts", nut.config.get("font"), - nut.config.get("genericFont") + nut.config.get("genericFont"), + nut.config.get("configFont") ) else -- Auto-reload support for faction pay timers. @@ -96,6 +97,7 @@ function GM:OnReloaded() end nut.faction.formatModelData() + hook.Run("nutUpdateColors") end -- Include default NutScript chat commands. diff --git a/plugins/area/derma/cl_areamanager.lua b/plugins/area/derma/cl_areamanager.lua index 7765e8fb..bcbe3675 100644 --- a/plugins/area/derma/cl_areamanager.lua +++ b/plugins/area/derma/cl_areamanager.lua @@ -9,7 +9,7 @@ function PANEL:Init() local noticeBar = self:Add("DLabel") noticeBar:Dock(TOP) - noticeBar:SetTextColor(color_white) + noticeBar:SetTextColor(nut.config.get("colorText", color_white)) noticeBar:SetExpensiveShadow(1, color_black) noticeBar:SetContentAlignment(8) noticeBar:SetFont("nutChatFont") @@ -31,7 +31,7 @@ function PANEL:loadAreas() local panel = self.list:Add("DButton") panel:SetText(data.name) panel:SetFont("ChatFont") - panel:SetTextColor(color_white) + panel:SetTextColor(nut.config.get("colorText", color_white)) panel:SetTall(30) local onConfirm = function(newName) netstream.Start("areaEdit", class, {name = newName}) diff --git a/plugins/area/sh_plugin.lua b/plugins/area/sh_plugin.lua index 13b24704..d4b5999d 100644 --- a/plugins/area/sh_plugin.lua +++ b/plugins/area/sh_plugin.lua @@ -12,7 +12,8 @@ nut.config.add("areaFontSize", 26, "The size of the font of Area Display.", hook.Run( "LoadNutFonts", nut.config.get("font"), - nut.config.get("genericFont") + nut.config.get("genericFont"), + nut.config.get("configFont") ) end end, @@ -343,6 +344,8 @@ else end end + local textR, textG, textB = nut.config.get("colorText", color_white):Unpack() + -- draw recursive for i = 1, math.min(maxDisplay, strEnd) do -- character scale/color lerp @@ -361,7 +364,7 @@ else math.Round(h / 3 - (sy or 0) * scale / 2), Vector(Format("%.2f", flipTable[i][1]), Format("%.2f", scale), 1), nil, - Color(255, 255, 255, + Color(textR, textG, textB, (dieTrigger and dieTimer < RealTime()) and dieAlpha or flipTable[i][2]) ) diff --git a/plugins/attributes/derma/cl_attribute.lua b/plugins/attributes/derma/cl_attribute.lua index 26c338d2..33cb03fd 100644 --- a/plugins/attributes/derma/cl_attribute.lua +++ b/plugins/attributes/derma/cl_attribute.lua @@ -1,7 +1,7 @@ local PANEL = {} local gradient = nut.util.getMaterial("vgui/gradient-u") local gradient2 = nut.util.getMaterial("vgui/gradient-d") - + local color_blackTransparent = Color(0,0,0,60) function PANEL:Init() self:SetTall(20) @@ -83,7 +83,7 @@ local PANEL = {} self.label = self.bar:Add("DLabel") self.label:Dock(FILL) - self.label:SetExpensiveShadow(1, Color(0, 0, 60)) + self.label:SetExpensiveShadow(1, color_blackTransparent) self.label:SetContentAlignment(5) end diff --git a/plugins/attributes/derma/cl_attributes_step.lua b/plugins/attributes/derma/cl_attributes_step.lua index 74a9938b..14e9a9f2 100644 --- a/plugins/attributes/derma/cl_attributes_step.lua +++ b/plugins/attributes/derma/cl_attributes_step.lua @@ -98,7 +98,7 @@ function PANEL:Init() self.quantity = self.buttons:Add("DLabel") self.quantity:SetFont("nutCharSubTitleFont") - self.quantity:SetTextColor(color_white) + self.quantity:SetTextColor(nut.config.get("colorText", color_white)) self.quantity:Dock(FILL) self.quantity:SetText("0") self.quantity:SetContentAlignment(5) @@ -106,7 +106,7 @@ function PANEL:Init() self.name = self:Add("DLabel") self.name:SetFont("nutCharSubTitleFont") self.name:SetContentAlignment(4) - self.name:SetTextColor(nut.gui.character.WHITE) + self.name:SetTextColor(nut.gui.character.color) self.name:Dock(FILL) self.name:DockMargin(8, 0, 0, 0) end diff --git a/plugins/attributes/sh_plugin.lua b/plugins/attributes/sh_plugin.lua index bc47c684..c579e611 100644 --- a/plugins/attributes/sh_plugin.lua +++ b/plugins/attributes/sh_plugin.lua @@ -55,13 +55,14 @@ if (SERVER) then end end else + local color_blackTransparent = Color(0,0,0,150) function PLUGIN:CreateCharInfoText(panel, suppress) if (suppress and suppress.attrib) then return end panel.attribName = panel.info:Add("DLabel") panel.attribName:Dock(TOP) panel.attribName:SetFont("nutMediumFont") - panel.attribName:SetTextColor(color_white) - panel.attribName:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + panel.attribName:SetTextColor(nut.config.get("colorText", color_white)) + panel.attribName:SetExpensiveShadow(1, color_blackTransparent) panel.attribName:DockMargin(0, 10, 0, 0) panel.attribName:SetText(L"attribs") diff --git a/plugins/business/derma/cl_business.lua b/plugins/business/derma/cl_business.lua index ce559548..f9ccdd21 100644 --- a/plugins/business/derma/cl_business.lua +++ b/plugins/business/derma/cl_business.lua @@ -6,6 +6,9 @@ function PANEL:Init() self:SetSize(size, size * 1.4) end +local color_blackTransparent = Color(0,0,0,200) +local color_blackTransparent2 = Color(0,0,0,150) + function PANEL:setItem(itemTable) self.itemName = L(itemTable.name):lower() @@ -13,17 +16,17 @@ function PANEL:setItem(itemTable) self.price:Dock(BOTTOM) self.price:SetText(itemTable:getPrice() and nut.currency.get(itemTable:getPrice()) or L"free":upper()) self.price:SetContentAlignment(5) - self.price:SetTextColor(color_white) + self.price:SetTextColor(nut.config.get("colorText", color_white)) self.price:SetFont("nutSmallFont") - self.price:SetExpensiveShadow(1, Color(0, 0, 0, 200)) + self.price:SetExpensiveShadow(1, color_blackTransparent) self.name = self:Add("DLabel") self.name:Dock(TOP) self.name:SetText(itemTable.getName and itemTable:getName() or L(itemTable.name)) self.name:SetContentAlignment(5) - self.name:SetTextColor(color_white) + self.name:SetTextColor(nut.config.get("colorText", color_white)) self.name:SetFont("nutSmallFont") - self.name:SetExpensiveShadow(1, Color(0, 0, 0, 200)) + self.name:SetExpensiveShadow(1, color_blackTransparent) self.name.Paint = function(this, w, h) surface.SetDrawColor(0, 0, 0, 75) surface.DrawRect(0, 0, w, h) @@ -60,7 +63,7 @@ function PANEL:Init() self.error:SetFont("nutMenuButtonLightFont") self.error:Dock(FILL) self.error:SetText(L"noBusiness") - self.error:SetTextColor(color_white) + self.error:SetTextColor(nut.config.get("colorText", color_white)) self.error:SetExpensiveShadow(1, color_black) self.error:SizeToContents() self.error:SetContentAlignment(5) @@ -109,11 +112,11 @@ function PANEL:Init() self.checkout = self:Add("DButton") self.checkout:Dock(BOTTOM) - self.checkout:SetTextColor(color_white) + self.checkout:SetTextColor(nut.config.get("colorText", color_white)) self.checkout:SetTall(36) self.checkout:SetFont("nutMediumFont") self.checkout:DockMargin(10, 10, 0, 0) - self.checkout:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.checkout:SetExpensiveShadow(1, color_blackTransparent2) self.checkout:SetText(L("checkout", 0)) self.checkout.DoClick = function() if (!IsValid(nut.gui.checkout) and self:getCartCount() > 0) then @@ -141,10 +144,10 @@ function PANEL:Init() button:SetTall(36) button:SetText(category) button:Dock(TOP) - button:SetTextColor(color_white) + button:SetTextColor(nut.config.get("colorText", color_white)) button:DockMargin(5, 5, 5, 0) button:SetFont("nutMediumFont") - button:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + button:SetExpensiveShadow(1, color_blackTransparent2) button.Paint = function(this, w, h) surface.SetDrawColor(self.selected == this and nut.config.get("color") or dark) surface.DrawRect(0, 0, w, h) @@ -156,7 +159,7 @@ function PANEL:Init() if (self.selected ~= this) then self.selected = this self:loadItems(realName) - timer.Simple(0.01, function() + timer.Simple(0.01, function() self.scroll:InvalidateLayout() end) end @@ -255,7 +258,7 @@ PANEL = {} self.buy = self:Add("DButton") self.buy:Dock(BOTTOM) self.buy:SetText(L"purchase") - self.buy:SetTextColor(color_white) + self.buy:SetTextColor(nut.config.get("colorText", color_white)) self.buy.DoClick = function(this) if ((this.nextClick or 0) < CurTime()) then this.nextClick = CurTime() + 0.5 @@ -285,7 +288,7 @@ PANEL = {} self.text = self:Add("DLabel") self.text:Dock(FILL) self.text:SetContentAlignment(5) - self.text:SetTextColor(color_white) + self.text:SetTextColor(nut.config.get("colorText", color_white)) self.text:SetText(L"purchasing") self.text:SetFont("nutMediumFont") @@ -317,14 +320,14 @@ PANEL = {} self.current = self.data:Add("DLabel") self.current:SetFont("nutSmallFont") self.current:SetContentAlignment(6) - self.current:SetTextColor(color_white) + self.current:SetTextColor(nut.config.get("colorText", color_white)) self.current:Dock(TOP) self.current:SetTextInset(4, 0) self.total = self.data:Add("DLabel") self.total:SetFont("nutSmallFont") self.total:SetContentAlignment(6) - self.total:SetTextColor(color_white) + self.total:SetTextColor(nut.config.get("colorText", color_white)) self.total:Dock(TOP) self.total:SetTextInset(4, 0) @@ -340,14 +343,14 @@ PANEL = {} self.final = self.data:Add("DLabel") self.final:SetFont("nutSmallFont") self.final:SetContentAlignment(6) - self.final:SetTextColor(color_white) + self.final:SetTextColor(nut.config.get("colorText", color_white)) self.final:Dock(TOP) self.final:SetTextInset(4, 0) self.finalGlow = self.final:Add("DLabel") self.finalGlow:Dock(FILL) self.finalGlow:SetFont("nutSmallFont") - self.finalGlow:SetTextColor(color_white) + self.finalGlow:SetTextColor(nut.config.get("colorText", color_white)) self.finalGlow:SetContentAlignment(6) self.finalGlow:SetAlpha(0) self.finalGlow:SetTextInset(4, 0) @@ -358,6 +361,9 @@ PANEL = {} self:onQuantityChanged() end + local color_offGreen = Color(46, 204, 113) + local color_offRed = Color(217, 30, 24) + function PANEL:onQuantityChanged() local price = 0 local money = LocalPlayer():getChar():getMoney() @@ -375,7 +381,7 @@ PANEL = {} self.current:SetText(L"currentMoney"..nut.currency.get(money)) self.total:SetText("- "..nut.currency.get(price)) self.final:SetText(L"moneyLeft"..nut.currency.get(money - price)) - self.final:SetTextColor((money - price) >= 0 and Color(46, 204, 113) or Color(217, 30, 24)) + self.final:SetTextColor((money - price) >= 0 and color_offGreen or color_offRed) self.preventBuy = (money - price) < 0 or valid == 0 end @@ -402,7 +408,7 @@ PANEL = {} slot.name:SetSize(180, 32) slot.name:SetFont("nutChatFont") slot.name:SetText(L(itemTable.getName and itemTable:getName() or L(itemTable.name)).." ("..(itemTable:getPrice() and nut.currency.get(itemTable:getPrice()) or L"free":upper())..")") - slot.name:SetTextColor(color_white) + slot.name:SetTextColor(nut.config.get("colorText", color_white)) slot.quantity = slot:Add("DTextEntry") slot.quantity:SetSize(32, 32) @@ -440,7 +446,7 @@ PANEL = {} function PANEL:Think() if (!self:HasFocus()) then self:MakePopup() - end + end end vgui.Register("nutBusinessCheckout", PANEL, "DFrame") diff --git a/plugins/business/derma/cl_shipment.lua b/plugins/business/derma/cl_shipment.lua index 84fbbec0..06727f6a 100644 --- a/plugins/business/derma/cl_shipment.lua +++ b/plugins/business/derma/cl_shipment.lua @@ -12,6 +12,7 @@ local PANEL = {} self.list:Dock(FILL) end + local color_blackTransparent = Color(0,0,0,150) function PANEL:setItems(entity, items) self.entity = entity @@ -38,7 +39,7 @@ local PANEL = {} item.quantity:SetTextInset(0, 0) item.quantity:SetText(v) item.quantity:SetFont("DermaDefaultBold") - item.quantity:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + item.quantity:SetExpensiveShadow(1, color_blackTransparent) item.name = item:Add("DLabel") item.name:SetPos(38, 0) @@ -46,7 +47,7 @@ local PANEL = {} item.name:SetFont("nutSmallFont") item.name:SetText(L(itemTable.name)) item.name:SetContentAlignment(4) - item.name:SetTextColor(color_white) + item.name:SetTextColor(nut.config.get("colorText", color_white)) item.take = item:Add("DButton") item.take:Dock(RIGHT) diff --git a/plugins/chatbox/derma/cl_chatbox.lua b/plugins/chatbox/derma/cl_chatbox.lua index 33e51f59..c9ba646e 100644 --- a/plugins/chatbox/derma/cl_chatbox.lua +++ b/plugins/chatbox/derma/cl_chatbox.lua @@ -212,6 +212,8 @@ local PANEL = {} surface.DrawOutlinedRect(0, 0, w, h) end + local color_blackTransparent = Color(0,0,0,200) + function PANEL:addFilterButton(filter) local name = L(filter) @@ -222,8 +224,8 @@ local PANEL = {} tab:DockMargin(0, 0, 3, 0) tab:SetWide(tab:GetWide() + 32) tab:Dock(LEFT) - tab:SetTextColor(color_white) - tab:SetExpensiveShadow(1, Color(0, 0, 0, 200)) + tab:SetTextColor(nut.config.get("colorText", color_white)) + tab:SetExpensiveShadow(1, color_blackTransparent) tab.Paint = PaintFilterButton tab.DoClick = function(this) this.active = !this.active diff --git a/plugins/doors/derma/cl_door.lua b/plugins/doors/derma/cl_door.lua index 0dbb8242..64481f3e 100644 --- a/plugins/doors/derma/cl_door.lua +++ b/plugins/doors/derma/cl_door.lua @@ -1,4 +1,6 @@ local PANEL = {} +local color_darkGrey = Color(25, 25, 25) + function PANEL:Init() self:SetSize(280, 240) self:SetTitle(L"doorSettings") @@ -7,8 +9,8 @@ local PANEL = {} self.access = self:Add("DListView") self.access:Dock(FILL) - self.access:AddColumn(L"name").Header:SetTextColor(Color(25, 25, 25)) - self.access:AddColumn(L"access").Header:SetTextColor(Color(25, 25, 25)) + self.access:AddColumn(L"name").Header:SetTextColor(color_darkGrey) + self.access:AddColumn(L"access").Header:SetTextColor(color_darkGrey) self.access.OnClickLine = function(this, line, selected) if (IsValid(line.player)) then local menu = DermaMenu() @@ -51,7 +53,7 @@ local PANEL = {} self.sell = self:Add("DButton") self.sell:Dock(BOTTOM) self.sell:SetText(L"sell") - self.sell:SetTextColor(color_white) + self.sell:SetTextColor(nut.config.get("colorText", color_white)) self.sell:DockMargin(0, 5, 0, 0) self.sell.DoClick = function(this) self:Remove() diff --git a/plugins/f1menu/derma/cl_classes.lua b/plugins/f1menu/derma/cl_classes.lua index 8d514691..b81bf0a1 100644 --- a/plugins/f1menu/derma/cl_classes.lua +++ b/plugins/f1menu/derma/cl_classes.lua @@ -1,9 +1,10 @@ local PANEL = {} +local color_darkBlue = Color(0,0,60) function PANEL:Init() self:SetTall(64) - - local function assignClick(panel) + + local function assignClick(panel) panel.OnMousePressed = function() self.pressing = -1 self:onClick() @@ -40,26 +41,26 @@ local PANEL = {} end */ end - assignClick(self.icon) + assignClick(self.icon) self.limit = self:Add("DLabel") self.limit:Dock(RIGHT) self.limit:SetMouseInputEnabled(true) self.limit:SetCursor("hand") - self.limit:SetExpensiveShadow(1, Color(0, 0, 60)) + self.limit:SetExpensiveShadow(1, color_darkBlue) self.limit:SetContentAlignment(5) self.limit:SetFont("nutMediumFont") self.limit:SetWide(64) - assignClick(self.limit) + assignClick(self.limit) self.label = self:Add("DLabel") self.label:Dock(FILL) self.label:SetMouseInputEnabled(true) self.label:SetCursor("hand") - self.label:SetExpensiveShadow(1, Color(0, 0, 60)) + self.label:SetExpensiveShadow(1, color_darkBlue) self.label:SetContentAlignment(5) self.label:SetFont("nutMediumFont") - assignClick(self.label) + assignClick(self.label) end function PANEL:onClick() @@ -95,8 +96,8 @@ local PANEL = {} self.icon:SetModel(model) end - self.label:SetText(L(data.name)) - self.data = data + self.label:SetText(L(data.name)) + self.data = data self.class = data.index self:setNumber(#nut.class.getPlayers(data.index)) @@ -121,7 +122,7 @@ PANEL = {} function PANEL:loadClasses() self.list:Clear() - + for k, v in ipairs(nut.class.list) do local no, why = nut.class.canBe(LocalPlayer(), k) local itsFull = ("class is full" == why) diff --git a/plugins/f1menu/derma/cl_information.lua b/plugins/f1menu/derma/cl_information.lua index 7b4b8c12..e33a2b0f 100644 --- a/plugins/f1menu/derma/cl_information.lua +++ b/plugins/f1menu/derma/cl_information.lua @@ -1,4 +1,5 @@ local PANEL = {} +local color_blackTransparent = Color(0,0,0,150) function PANEL:Init() if (IsValid(nut.gui.info)) then nut.gui.info:Remove() @@ -34,8 +35,8 @@ local PANEL = {} self.name:SetFont("nutHugeFont") self.name:SetTall(60) self.name:Dock(TOP) - self.name:SetTextColor(color_white) - self.name:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.name:SetTextColor(nut.config.get("colorText", color_white)) + self.name:SetExpensiveShadow(1, color_blackTransparent) end if (!suppress or !suppress.desc) then @@ -50,16 +51,16 @@ local PANEL = {} self.time:SetFont("nutMediumFont") self.time:SetTall(28) self.time:Dock(TOP) - self.time:SetTextColor(color_white) - self.time:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.time:SetTextColor(nut.config.get("colorText", color_white)) + self.time:SetExpensiveShadow(1, color_blackTransparent) end if (!suppress or !suppress.money) then self.money = self.info:Add("DLabel") self.money:Dock(TOP) self.money:SetFont("nutMediumFont") - self.money:SetTextColor(color_white) - self.money:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.money:SetTextColor(nut.config.get("colorText", color_white)) + self.money:SetExpensiveShadow(1, color_blackTransparent) self.money:DockMargin(0, 10, 0, 0) end @@ -67,8 +68,8 @@ local PANEL = {} self.faction = self.info:Add("DLabel") self.faction:Dock(TOP) self.faction:SetFont("nutMediumFont") - self.faction:SetTextColor(color_white) - self.faction:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.faction:SetTextColor(nut.config.get("colorText", color_white)) + self.faction:SetExpensiveShadow(1, color_blackTransparent) self.faction:DockMargin(0, 10, 0, 0) end @@ -79,8 +80,8 @@ local PANEL = {} self.class = self.info:Add("DLabel") self.class:Dock(TOP) self.class:SetFont("nutMediumFont") - self.class:SetTextColor(color_white) - self.class:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.class:SetTextColor(nut.config.get("colorText", color_white)) + self.class:SetExpensiveShadow(1, color_blackTransparent) self.class:DockMargin(0, 10, 0, 0) end end diff --git a/plugins/f1menu/derma/cl_menu.lua b/plugins/f1menu/derma/cl_menu.lua index 104a9514..943dba47 100644 --- a/plugins/f1menu/derma/cl_menu.lua +++ b/plugins/f1menu/derma/cl_menu.lua @@ -1,6 +1,9 @@ local PANEL = {} - local gradient = nut.util.getMaterial("vgui/gradient-u") - local gradient2 = nut.util.getMaterial("vgui/gradient-d") + local gradientU = nut.util.getMaterial("vgui/gradient-u") + local gradientD = nut.util.getMaterial("vgui/gradient-d") + local gradientL = nut.util.getMaterial("vgui/gradient-l") + local gradientR = nut.util.getMaterial("vgui/gradient-r") + local color_blackTransparent = Color(0,0,0,150) local alpha = 80 function PANEL:Init() @@ -27,8 +30,8 @@ local PANEL = {} self.title = self:Add("DLabel") self.title:SetPos(self.panel.x, self.panel.y - 80) - self.title:SetTextColor(color_white) - self.title:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + self.title:SetTextColor(nut.config.get("colorText", color_white)) + self.title:SetExpensiveShadow(1, color_blackTransparent) self.title:SetFont("nutTitleFont") self.title:SetText("") self.title:SetAlpha(0) @@ -102,42 +105,73 @@ local PANEL = {} local color_bright = Color(240, 240, 240, 180) function PANEL:Paint(w, h) +--[[ local r, g, b = nut.config.get("color"):Unpack() + surface.SetDrawColor(r, g, b, 200) + surface.DrawRect(-10, -10, w + 10, h + 10) + + surface.SetDrawColor(0, 0, 0, 255) + surface.SetMaterial(gradientD) + surface.DrawTexturedRect(-10, -10, w + 10, h + 10) + + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(-10, -10, w + 10, h + 10) + + nut.util.drawBlur(self) ]] nut.util.drawBlur(self, 12) + local r, g, b = nut.config.get("color"):Unpack() + surface.SetDrawColor(0, 0, 0) - surface.SetMaterial(gradient) + surface.SetMaterial(gradientU) surface.DrawTexturedRect(0, 0, w, h) - surface.SetDrawColor(30, 30, 30, alpha) - surface.DrawRect(0, 0, w, 78) + surface.SetDrawColor(r, g, b, alpha) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, 78) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, 0, w/2, 78) surface.SetDrawColor(color_bright) surface.DrawRect(0, 78, w, 8) end + local color_offWhite = Color(250,250,250) + function PANEL:addTab(name, callback, uniqueID) name = L(name) local function paintTab(tab, w, h) + local r, g, b = nut.config.get("color"):Unpack() if (self.activeTab == tab) then - surface.SetDrawColor(ColorAlpha(nut.config.get("color"), 200)) - surface.DrawRect(0, h - 8, w, 8) + surface.SetDrawColor(r, g, b, 255) +--[[ surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, 0, w/2, 78) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, 0, w/2, 78) ]] + + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, h - 8, w*0.26, 8) + surface.DrawRect(w*0.25, h - 8, w*0.5, 8) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w*0.74, h - 8, w*0.26, 8) elseif (tab.Hovered) then - surface.SetDrawColor(0, 0, 0, 50) - surface.DrawRect(0, h - 8, w, 8) + surface.SetDrawColor(r, g, b, 200) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, h - 8, w/2, 8) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, h - 8, w/2, 8) end end surface.SetFont("nutMenuButtonLightFont") local w = surface.GetTextSize(name) - local tab = self.tabs:Add("DButton") + local tab = self.tabs:Add("nutMenuButton") tab:SetSize(0, self.tabs:GetTall()) - tab:SetText(name) + tab:setText(name) tab:SetPos(self.tabs:GetWide(), 0) - tab:SetTextColor(Color(250, 250, 250)) tab:SetFont("nutMenuButtonLightFont") - tab:SetExpensiveShadow(1, Color(0, 0, 0, 150)) + tab:SetExpensiveShadow(1, color_blackTransparent) tab:SizeToContentsX() tab:SetWide(w + 32) tab.Paint = paintTab @@ -154,7 +188,10 @@ local PANEL = {} self.title:MoveAbove(self.panel, 8) self.panel:AlphaTo(255, 0.5, 0.1) + if self.activeTab then self.activeTab:setActive(false) end self.activeTab = this + this:setActive(true) + lastMenuTab = uniqueID if (callback) then diff --git a/plugins/f1menu/derma/cl_menubutton.lua b/plugins/f1menu/derma/cl_menubutton.lua index aa737ad8..8cc3f9e9 100644 --- a/plugins/f1menu/derma/cl_menubutton.lua +++ b/plugins/f1menu/derma/cl_menubutton.lua @@ -1,63 +1,61 @@ local PANEL = {} - function PANEL:Init() - self:SetFont("nutMenuButtonFont") - self:SetExpensiveShadow(2, Color(0, 0, 0, 200)) - self:SetTextColor(color_white) - self:SetPaintBackground(false) - self.OldSetTextColor = self.SetTextColor - self.SetTextColor = function(this, color) - this:OldSetTextColor(color) - this:SetFGColor(color) - end +local color = Color(0, 0, 0, 255) +local colorSelected = Color(0, 0, 0, 255) +local colorHovered = Color(0, 0, 0, 255) + +function PANEL:Init() + self:SetFont("nutMenuButtonLightFont") + self:SetExpensiveShadow(2, Color(0, 0, 0, 200)) + self:SetPaintBackground(false) + self.OldSetTextColor = self.SetTextColor + self.SetTextColor = function(this, color) + this:OldSetTextColor(color) + this:SetFGColor(color) end - function PANEL:setText(text, noTranslation) - surface.SetFont("nutMenuButtonFont") + local nscolor = table.Copy(nut.config.get("colorText", color_white)) + color.r, color.g, color.b = nscolor.r - 30, nscolor.g - 30, nscolor.b - 30 + colorHovered.r, colorHovered.g, colorHovered.b = nscolor.r - 15, nscolor.g - 15, nscolor.b - 15 + colorSelected.r, colorSelected.g, colorSelected.b = nscolor.r, nscolor.g, nscolor.b + self.color, self.colorHovered, self.colorSelected = color, colorHovered, colorSelected - self:SetText(noTranslation and text:upper() or L(text):upper()) + self:SetTextColor(self.active and self.colorSelected or self.color) +end - if (!noTranslation) then - self:SetTooltip(L(text.."Tip")) - end +function PANEL:setText(text, noTranslation) + self:SetText("") + text = noTranslation and text or L(text) + self:SetText(text) +end - local w, h = surface.GetTextSize(self:GetText()) - self:SetSize(w + 64, h + 32) - end - - function PANEL:OnCursorEntered() - local color = self:GetTextColor() - self:SetTextColor(Color(math.max(color.r - 25, 0), math.max(color.g - 25, 0), math.max(color.b - 25, 0))) +function PANEL:OnCursorEntered() + self:SetTextColor(self.colorHovered) + surface.PlaySound(SOUND_MENU_BUTTON_ROLLOVER) +end - surface.PlaySound(SOUND_MENU_BUTTON_ROLLOVER) - end +function PANEL:OnCursorExited() + self:SetTextColor(self.active and self.colorSelected or self.color) +end - function PANEL:OnCursorExited() - if (self.color) then - self:SetTextColor(self.color) - else - self:SetTextColor(color_white) - end - end +function PANEL:OnMousePressed(code) - function PANEL:OnMousePressed(code) - if (self.color) then - self:SetTextColor(self.color) - else - self:SetTextColor(nut.config.get("color")) - end + self:SetTextColor(self.colorSelected) - surface.PlaySound(SOUND_MENU_BUTTON_PRESSED) + surface.PlaySound(SOUND_MENU_BUTTON_PRESSED) - if (code == MOUSE_LEFT and self.DoClick) then - self:DoClick(self) - end + if (code == MOUSE_LEFT and self.DoClick) then + self:DoClick(self) end +end + +function PANEL:OnMouseReleased(key) + self:SetTextColor(self.active and self.colorSelected or self.color) +end + +function PANEL:setActive(active) + self.active = active + self:SetFont(active and "nutMenuButtonFont" or "nutMenuButtonLightFont") + self:SetTextColor(self.active and self.colorSelected or self.color) +end - function PANEL:OnMouseReleased(key) - if (self.color) then - self:SetTextColor(self.color) - else - self:SetTextColor(color_white) - end - end vgui.Register("nutMenuButton", PANEL, "DButton") \ No newline at end of file diff --git a/plugins/multichar/plugins/charselect/derma/cl_button.lua b/plugins/multichar/plugins/charselect/derma/cl_button.lua index 312a6e9b..20b8281d 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_button.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_button.lua @@ -3,17 +3,17 @@ local PANEL = {} function PANEL:Init() self:SetFont("nutCharButtonFont") self:SizeToContentsY() - self:SetTextColor(nut.gui.character.WHITE) + self:SetTextColor(nut.gui.character.color) self:SetPaintBackground(false) end function PANEL:OnCursorEntered() nut.gui.character:hoverSound() - self:SetTextColor(nut.gui.character.HOVERED) + self:SetTextColor(nut.gui.character.colorHovered) end function PANEL:OnCursorExited() - self:SetTextColor(nut.gui.character.WHITE) + self:SetTextColor(nut.gui.character.color) end function PANEL:OnMousePressed() diff --git a/plugins/multichar/plugins/charselect/derma/cl_character.lua b/plugins/multichar/plugins/charselect/derma/cl_character.lua index 9e801eb9..7c85117e 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_character.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_character.lua @@ -1,11 +1,7 @@ local PANEL = {} local WHITE = Color(255, 255, 255, 150) -local SELECTED = Color(255, 255, 255, 230) -PANEL.WHITE = WHITE -PANEL.SELECTED = SELECTED -PANEL.HOVERED = Color(255, 255, 255, 50) PANEL.ANIM_SPEED = 0.1 PANEL.FADE_SPEED = 0.5 @@ -38,36 +34,55 @@ function PANEL:createTabs() self:fadeOut() end end, true) - return + + else + + -- Otherwise, add a disconnect button. + self:addTab("leave", function() + vgui.Create("nutCharacterConfirm") + :setTitle(L("disconnect"):upper().."?") + :setMessage(L("You will disconnect from the server."):upper()) + :onConfirm(function() LocalPlayer():ConCommand("disconnect") end) + end, true) + end + + -- get the width of the tabs summed up + local totalWidth = -32 + for _, v in ipairs(self.tabs:GetChildren()) do + totalWidth = totalWidth + v:GetWide() end - -- Otherwise, add a disconnect button. - self:addTab("leave", function() - vgui.Create("nutCharacterConfirm") - :setTitle(L("disconnect"):upper().."?") - :setMessage(L("You will disconnect from the server."):upper()) - :onConfirm(function() LocalPlayer():ConCommand("disconnect") end) - end, true) + -- set the dock margin of self.tabs to center the tabs + if nut.config.get("charMenuAlignment", "center") == "center" then + self.tabs:DockMargin(self.tabs:GetWide() * 0.5 - totalWidth * 0.5, 0, 0, 0) + end end function PANEL:createTitle() + local alignment = nut.config.get("charMenuAlignment", "center") self.title = self:Add("DLabel") self.title:Dock(TOP) - self.title:DockMargin(64, 48, 0, 0) - self.title:SetContentAlignment(1) - self.title:SetTall(96) + self.title:DockMargin(alignment == "left" and 64 or 0, 48, alignment == "right" and 64 or 0, 0) + self.title:SetContentAlignment(alignment == "left" and 4 or alignment == "center" and 5 or 6) self.title:SetFont("nutCharTitleFont") self.title:SetText(L(SCHEMA and SCHEMA.name or "Unknown"):upper()) - self.title:SetTextColor(WHITE) + self.title:SetTextColor(self.color) + + surface.SetFont("nutCharTitleFont") + local _, h = surface.GetTextSize(self.title:GetText()) + self.title:SetTall(h) self.desc = self:Add("DLabel") self.desc:Dock(TOP) - self.desc:DockMargin(64, 0, 0, 0) - self.desc:SetTall(32) - self.desc:SetContentAlignment(7) + self.desc:DockMargin(alignment == "left" and 64 or 0, 0, alignment == "right" and 64 or 0, 0) + self.desc:SetContentAlignment(alignment == "left" and 7 or alignment == "center" and 8 or 9) self.desc:SetText(L(SCHEMA and SCHEMA.desc or ""):upper()) self.desc:SetFont("nutCharDescFont") - self.desc:SetTextColor(WHITE) + self.desc:SetTextColor(self.color) + + surface.SetFont("nutCharDescFont") + _, h = surface.GetTextSize(self.title:GetText()) + self.desc:SetTall(h) end function PANEL:loadBackground() @@ -109,7 +124,12 @@ function PANEL:loadBackground() end end -local gradient = nut.util.getMaterial("vgui/gradient-u") +local gradientU = nut.util.getMaterial("vgui/gradient-u") +local gradientD = nut.util.getMaterial("vgui/gradient-d") +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientL = nut.util.getMaterial("vgui/gradient-l") + +local sin = math.sin function PANEL:paintBackground(w, h) if (IsValid(self.background)) then return end @@ -119,9 +139,22 @@ function PANEL:paintBackground(w, h) surface.DrawRect(0, 0, w, h) end - surface.SetMaterial(gradient) - surface.SetDrawColor(0, 0, 0, 250) - surface.DrawTexturedRect(0, 0, w, h * 1.5) + if not self.startTime then self.startTime = CurTime() end + + local r, g, b = nut.config.get("color"):Unpack() + local curTime = (self.startTime - CurTime())/4 + local alpha = 200 * ((sin(curTime - 1.8719) + sin(curTime - 1.8719/2))/4 + 0.44) + + + surface.SetDrawColor(r, g, b, alpha) + surface.DrawRect(0,0,w,h) + + surface.SetDrawColor(0, 0, 0, 255) + surface.SetMaterial(gradientD) + surface.DrawTexturedRect(0,0,w,h) + + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(0,0,w,h) end function PANEL:addTab(name, callback, justClick) @@ -175,6 +208,12 @@ function PANEL:Init() end nut.gui.character = self + local color = nut.config.get("colorText") + + self.color = ColorAlpha(color, 150) + self.colorSelected = color + self.colorHovered = ColorAlpha(color, 50) + self:Dock(FILL) self:MakePopup() self:SetAlpha(0) @@ -195,6 +234,10 @@ function PANEL:Init() self.music = self:Add("nutCharBGMusic") self:loadBackground() + + self:InvalidateParent(true) + self:InvalidateChildren(true) + self:showContent() end diff --git a/plugins/multichar/plugins/charselect/derma/cl_character_slot.lua b/plugins/multichar/plugins/charselect/derma/cl_character_slot.lua index abafa3a4..6ab5af0a 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_character_slot.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_character_slot.lua @@ -1,6 +1,7 @@ local PANEL = {} local STRIP_HEIGHT = 4 +local WIDTH = 240 function PANEL:isCursorWithinBounds() local x, y = self:LocalCursorPos() @@ -17,7 +18,6 @@ function PANEL:confirmDelete() end function PANEL:Init() - local WIDTH = 240 self:SetWide(WIDTH) self:SetPaintBackground(false) @@ -37,12 +37,12 @@ function PANEL:Init() self.name:DockMargin(0, 16, 0, 0) self.name:SetContentAlignment(5) self.name:SetFont("nutCharSmallButtonFont") - self.name:SetTextColor(nut.gui.character.WHITE) + self.name:SetTextColor(nut.gui.character.color) self.name:SizeToContentsY() self.model = self:Add("nutModelPanel") self.model:Dock(FILL) - self.model:SetFOV(37) + self.model:SetFOV(30) self.model.PaintOver = function(model, w, h) if (self.banned) then local centerX, centerY = w * 0.5, h * 0.5 - 24 @@ -136,10 +136,14 @@ function PANEL:onHoverChanged(isHovered) self.faction:AlphaTo(isHovered and 250 or 100, ANIM_SPEED) end +local gradientU = nut.util.getMaterial("vgui/gradient-u") + function PANEL:Paint(w, h) - nut.util.drawBlur(self) - surface.SetDrawColor(0, 0, 0, 50) - surface.DrawRect(0, STRIP_HEIGHT, w, h) + --nut.util.drawBlur(self) + local secondaryR, secondaryG, secondaryB = nut.config.get("colorBackground"):Unpack() + surface.SetDrawColor(secondaryR, secondaryG, secondaryB, 200) + surface.SetMaterial(gradientU) + surface.DrawTexturedRect(0, STRIP_HEIGHT, w, h) if (not self:isCursorWithinBounds() and self.isHovered) then self:onHoverChanged(false) diff --git a/plugins/multichar/plugins/charselect/derma/cl_confirmation.lua b/plugins/multichar/plugins/charselect/derma/cl_confirmation.lua index c4ce2ac8..4bed4f64 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_confirmation.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_confirmation.lua @@ -22,25 +22,30 @@ function PANEL:Init() self.title = self.content:Add("DLabel") self.title:SetText(L("Are you sure?"):upper()) self.title:SetFont("nutCharButtonFont") - self.title:SetTextColor(color_white) + self.title:SetTextColor(nut.config.get("colorText", color_white)) self.title:SizeToContents() self.title:CenterHorizontal() self.title.y = 64 self.message = self.content:Add("DLabel") self.message:SetFont("nutCharSubTitleFont") - self.message:SetTextColor(color_white) + self.message:SetTextColor(nut.config.get("colorText", color_white)) self.message:SetSize(ScrW(), 32) self.message:CenterVertical() self.message:SetContentAlignment(5) local SPACING = 16 + local confirmText, cancelText = L("yes"):upper(), L("no"):upper() + surface.SetFont("nutCharSmallButtonFont") + local confirmWidth = surface.GetTextSize(confirmText) + SPACING + local cancelWidth = surface.GetTextSize(cancelText) + SPACING + self.confirm = self.content:Add("DButton") self.confirm:SetFont("nutCharSmallButtonFont") - self.confirm:SetText(L("yes"):upper()) + self.confirm:SetText(confirmText) self.confirm:SetPaintBackground(false) - self.confirm:SetSize(64, 32) + self.confirm:SetSize(confirmWidth, 32) self.confirm.OnCursorEntered = function() nut.gui.character:hoverSound() end self.confirm.OnCursorEntered = function(cancel) cancel.BaseClass.OnCursorEntered(cancel) @@ -60,9 +65,9 @@ function PANEL:Init() self.cancel = self.content:Add("DButton") self.cancel:SetFont("nutCharSmallButtonFont") - self.cancel:SetText(L("no"):upper()) + self.cancel:SetText(cancelText) self.cancel:SetPaintBackground(false) - self.cancel:SetSize(64, 32) + self.cancel:SetSize(cancelWidth, 32) self.cancel.OnCursorEntered = function(cancel) cancel.BaseClass.OnCursorEntered(cancel) nut.gui.character:hoverSound() diff --git a/plugins/multichar/plugins/charselect/derma/cl_creation.lua b/plugins/multichar/plugins/charselect/derma/cl_creation.lua index 5231b193..11db27fe 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_creation.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_creation.lua @@ -173,7 +173,7 @@ function PANEL:showMessage(message, ...) self.message = self:Add("DLabel") self.message:SetFont("nutCharButtonFont") - self.message:SetTextColor(nut.gui.character.WHITE) + self.message:SetTextColor(nut.gui.character.color) self.message:Dock(FILL) self.message:SetContentAlignment(5) self.message:SetText(message) diff --git a/plugins/multichar/plugins/charselect/derma/cl_selection.lua b/plugins/multichar/plugins/charselect/derma/cl_selection.lua index 5d210eab..b10cdfad 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_selection.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_selection.lua @@ -3,7 +3,9 @@ local PANEL = {} function PANEL:Init() self:Dock(FILL) self:DockMargin(0, 64, 0, 0) + self:InvalidateParent(true) self:InvalidateLayout(true) + self.panels = {} self.scroll = self:Add("nutHorizontalScroll") @@ -35,15 +37,19 @@ end -- Creates a nutCharacterSlot for each of the local player's characters. function PANEL:createCharacterSlots() + local alignment = nut.config.get("charMenuAlignment", "center") self.scroll:Clear() if (#nut.characters == 0) then return nut.gui.character:showContent() end + + local totalWide = 0 for _, id in ipairs(nut.characters) do local character = nut.char.loaded[id] if (not character) then continue end local panel = self.scroll:Add("nutCharacterSlot") + totalWide = totalWide + panel:GetWide() + 8 panel:Dock(LEFT) panel:DockMargin(0, 0, 8, 8) panel:setCharacter(character) @@ -51,6 +57,12 @@ function PANEL:createCharacterSlots() self:onCharacterSelected(character) end end + + totalWide = totalWide - 8 + self.scroll:SetWide(self:GetWide()) + -- This is a hack to make sure the scroll panel is the correct size + local multiplier = alignment == "center" and 0.5 or alignment == "left" and 0 or 1 + self.scroll:DockMargin(math.max(0, self.scroll:GetWide()*multiplier - totalWide*multiplier), 0, 0, 0) end -- Called when a character slot has been selected. This actually loads the diff --git a/plugins/multichar/plugins/charselect/derma/cl_tab_button.lua b/plugins/multichar/plugins/charselect/derma/cl_tab_button.lua index 211ff111..700a6eba 100644 --- a/plugins/multichar/plugins/charselect/derma/cl_tab_button.lua +++ b/plugins/multichar/plugins/charselect/derma/cl_tab_button.lua @@ -1,7 +1,8 @@ local PANEL = {} function PANEL:Init() - self:Dock(LEFT) + local alignment = nut.config.get("charMenuAlignment", "center") + self:Dock(alignment == "right" and RIGHT or LEFT) self:DockMargin(0, 0, 32, 0) self:SetContentAlignment(4) end @@ -23,7 +24,7 @@ function PANEL:setSelected(isSelected) local menu = nut.gui.character if (isSelected and IsValid(menu)) then if (IsValid(menu.lastTab)) then - menu.lastTab:SetTextColor(nut.gui.character.WHITE) + menu.lastTab:SetTextColor(nut.gui.character.color) menu.lastTab.isSelected = false end menu.lastTab = self @@ -31,8 +32,8 @@ function PANEL:setSelected(isSelected) self:SetTextColor( isSelected - and nut.gui.character.SELECTED - or nut.gui.character.WHITE + and nut.gui.character.colorSelected + or nut.gui.character.color ) self.isSelected = isSelected if (isfunction(self.callback)) then @@ -40,14 +41,28 @@ function PANEL:setSelected(isSelected) end end +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientL = nut.util.getMaterial("vgui/gradient-l") + function PANEL:Paint(w, h) if (self.isSelected or self:IsHovered()) then - surface.SetDrawColor( + local r, g, b = nut.config.get("color"):Unpack() +--[[ surface.SetDrawColor( self.isSelected and nut.gui.character.WHITE or nut.gui.character.HOVERED - ) - surface.DrawRect(0, h - 4, w, 4) + ) ]] + if (self.isSelected) then + surface.SetDrawColor(r, g, b, 200) + else + surface.SetDrawColor(r, g, b, 100) + end + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(0, h-4, w/2, 4) + + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(w/2, h-4, w/2, 4) + --surface.DrawRect(0, h - 4, w, 4) end end diff --git a/plugins/multichar/plugins/charselect/derma/steps/cl_faction.lua b/plugins/multichar/plugins/charselect/derma/steps/cl_faction.lua index 7b3ced5f..4b84879f 100644 --- a/plugins/multichar/plugins/charselect/derma/steps/cl_faction.lua +++ b/plugins/multichar/plugins/charselect/derma/steps/cl_faction.lua @@ -13,7 +13,7 @@ function PANEL:Init() surface.SetDrawColor(0, 0, 0, 100) surface.DrawRect(0, 0, w, h) end - self.faction:SetTextColor(color_white) + self.faction:SetTextColor(nut.config.get("colorText", color_white)) self.faction.OnSelect = function(faction, index, value, id) self:onFactionSelected(nut.faction.teams[id]) end diff --git a/plugins/multichar/plugins/charselect/sh_plugin.lua b/plugins/multichar/plugins/charselect/sh_plugin.lua index bec478de..1e78de89 100644 --- a/plugins/multichar/plugins/charselect/sh_plugin.lua +++ b/plugins/multichar/plugins/charselect/sh_plugin.lua @@ -38,6 +38,18 @@ nut.config.add( {category = PLUGIN.name} ) +nut.config.add( + "charMenuAlignment", + "center", + "Where the character menu is aligned.", + nil, + { + options = {"left", "center", "right"}, + form = "Combo", + category = PLUGIN.name + } +) + if (SERVER) then return end local function ScreenScale(size) diff --git a/plugins/newvoice.lua b/plugins/newvoice.lua index 50dbbe81..dcc3551e 100644 --- a/plugins/newvoice.lua +++ b/plugins/newvoice.lua @@ -11,7 +11,7 @@ if (CLIENT) then hi:SetFont("nutIconsMedium") hi:Dock(LEFT) hi:DockMargin(8, 0, 8, 0) - hi:SetTextColor(color_white) + hi:SetTextColor(nut.config.get("colorText", color_white)) hi:SetText("i") hi:SetWide(30) @@ -19,7 +19,7 @@ if (CLIENT) then self.LabelName:SetFont("nutMediumFont") self.LabelName:Dock(FILL) self.LabelName:DockMargin(0, 0, 0, 0) - self.LabelName:SetTextColor(color_white) + self.LabelName:SetTextColor(nut.config.get("colorText", color_white)) self.Color = color_transparent diff --git a/plugins/notices/derma/cl_notice.lua b/plugins/notices/derma/cl_notice.lua index f88f1707..74b5f885 100644 --- a/plugins/notices/derma/cl_notice.lua +++ b/plugins/notices/derma/cl_notice.lua @@ -6,7 +6,7 @@ local PANEL = {} self:SetContentAlignment(5) self:SetExpensiveShadow(1, Color(0, 0, 0, 150)) self:SetFont("nutNoticeFont") - self:SetTextColor(color_white) + self:SetTextColor(nut.config.get("colorText", color_white)) self:SetDrawOnTop(true) end diff --git a/plugins/nscredits.lua b/plugins/nscredits.lua index 3e080ce6..db91ae6a 100644 --- a/plugins/nscredits.lua +++ b/plugins/nscredits.lua @@ -21,15 +21,26 @@ surface.CreateFont("nutBigCredits", { weight = 600 }) +local colorCreator, colorLDev, colorDev = Color(255, 0, 0), Color(138,43,226), Color(34,139,34) + local authorCredits = { - {desc = "Creator", steamid = "76561198030127257", color = Color(255, 0, 0)}, -- Chessnut - {desc = "Co-Creator", steamid = "76561197999893894", color = Color(255, 0, 0)}, -- Black Tea - {desc = "Lead Developer", steamid = "76561198060659964", color = Color(138,43,226)}, -- Zoephix - {desc = "Lead Developer", steamid = "76561198070441753", color = Color(138,43,226)}, -- TovarischPootis - {desc = "Developer", steamid = "76561198036551982", color = Color(34,139,34)}, -- Seamus - {desc = "Developer", steamid = "76561198031437460", color = Color(34,139,34)}, -- Milk + {desc = "Creator", steamid = "76561198030127257", color = colorCreator}, -- Chessnut + {desc = "Co-Creator", steamid = "76561197999893894", color = colorCreator}, -- Black Tea + {desc = "Lead Developer", steamid = "76561198060659964", color = colorLDev}, -- Zoephix + {desc = "Lead Developer", steamid = "76561198070441753", color = colorLDev}, -- TovarischPootis + {desc = "Developer", steamid = "76561198036551982", color = colorDev}, -- Seamus + {desc = "Developer", steamid = "76561198251000796", color = colorDev}, -- Dobytchick + {desc = "Developer", steamid = "76561198031437460", color = colorDev}, -- Milk } +do + for _, v in ipairs(authorCredits) do + steamworks.RequestPlayerInfo(v.steamid, function(steamName) + v.name = steamName or "Loading..." + end) + end +end + local contributors = {desc = "View All Contributors", url = "https://github.com/NutScript/NutScript/graphs/contributors"} local discord = {desc = "Join the NutScript Community Discord", url = "https://discord.gg/ySZY8TY"} @@ -62,15 +73,9 @@ function PANEL:setAvatarImage(id) end end -function PANEL:setName(name, isID, color) +function PANEL:setName(name, color) if not IsValid(self.name) then return end - if isID then - steamworks.RequestPlayerInfo(name, function(steamName) - self.name:SetText(steamName or "Loading...") - end) - else - self.name:SetText(name) - end + self.name:SetText(name) if color then self.name:SetTextColor(color) end @@ -133,7 +138,7 @@ function PANEL:setPerson(data, left) local id = left and "creditleft" or "creditright" self[id] = self:Add("CreditsNamePanel") self[id]:setAvatarImage(data.steamid) - self[id]:setName(data.steamid, true, data.color) + self[id]:setName(data.name, data.color) self[id]:setDesc(data.desc) self[id]:Dock(left and LEFT or RIGHT) self[id]:InvalidateLayout(true) diff --git a/plugins/nshud/sh_plugin.lua b/plugins/nshud/sh_plugin.lua index 9dbe3004..32e630f7 100644 --- a/plugins/nshud/sh_plugin.lua +++ b/plugins/nshud/sh_plugin.lua @@ -22,7 +22,8 @@ local toScreen = FindMetaTable("Vector").ToScreen local NUT_CVAR_NSHUD_DESCWIDTH = CreateClientConVar("nut_hud_descwidth", 0.5, true, false) function PLUGIN:SetupQuickMenu(menu) - menu:addSlider("HUD Desc Width Modifier", function(panel, value) + menu:addCategory("NSHUD") + menu:addSlider("Desc Width Modifier", function(panel, value) NUT_CVAR_NSHUD_DESCWIDTH:SetFloat(value) end, NUT_CVAR_NSHUD_DESCWIDTH:GetFloat(), 0.1, 1, 2) menu:addSpacer() @@ -127,9 +128,6 @@ function PLUGIN:DrawEntityInfo(entity, alpha, position) entity.nutDescCache = nil end - entity.nutNameCache = nil - entity.nutDescCache = nil - local name = hookRun("GetDisplayedName", entity, nil, "hud") or character.getName(character) if (name ~= entity.nutNameCache) then diff --git a/plugins/nsintro/derma/cl_intro.lua b/plugins/nsintro/derma/cl_intro.lua index f2e11dd8..a58a56f9 100644 --- a/plugins/nsintro/derma/cl_intro.lua +++ b/plugins/nsintro/derma/cl_intro.lua @@ -26,7 +26,7 @@ local PANEL = {} self.authors = self:Add("DLabel") self.authors:SetText(GAMEMODE.Author.." Presents") self.authors:SetFont("nutIntroMediumFont") - self.authors:SetTextColor(color_white) + self.authors:SetTextColor(nut.config.get("colorText", color_white)) self.authors:SetAlpha(0) self.authors:AlphaTo(255, 5, 1.5, function() self.authors:AlphaTo(0, 5, 3, function() @@ -60,7 +60,7 @@ local PANEL = {} self.name = self:Add("DLabel") self.name:SetText(GAMEMODE.Name) self.name:SetFont("nutIntroTitleFont") - self.name:SetTextColor(color_white) + self.name:SetTextColor(nut.config.get("colorText", color_white)) self.name:SizeToContents() self.name:Center() self.name:SetPos(self.name.x, ScrH() * 0.4) diff --git a/plugins/nstheme/derma/cl_skin.lua b/plugins/nstheme/derma/cl_skin.lua index dea65906..26e892f9 100644 --- a/plugins/nstheme/derma/cl_skin.lua +++ b/plugins/nstheme/derma/cl_skin.lua @@ -1,3 +1,10 @@ +local gradientU = nut.util.getMaterial("vgui/gradient-u") +local gradientD = nut.util.getMaterial("vgui/gradient-d") +local gradientL = nut.util.getMaterial("vgui/gradient-l") +local gradientR = nut.util.getMaterial("vgui/gradient-r") +local gradientC = nut.util.getMaterial("gui/center_gradient") +local palette = palette or {} + local SKIN = {} SKIN.fontFrame = "BudgetLabel" SKIN.fontTab = "nutSmallFont" @@ -7,34 +14,187 @@ local SKIN = {} SKIN.Colours.Window.TitleActive = Color(0, 0, 0) SKIN.Colours.Window.TitleInactive = Color(255, 255, 255) - SKIN.Colours.Button.Normal = Color(80, 80, 80) - SKIN.Colours.Button.Hover = Color(255, 255, 255) + local defaultLight, defaultDark = color_white, Color(80, 80, 80) + + SKIN.Colours.Button.Normal = defaultDark + SKIN.Colours.Button.Hover = defaultLight SKIN.Colours.Button.Down = Color(180, 180, 180) SKIN.Colours.Button.Disabled = Color(0, 0, 0, 100) - function SKIN:PaintFrame(panel) - nut.util.drawBlur(panel, 10) + local clamp = function(value) + return math.Clamp(value, 0.2, 1) + end - surface.SetDrawColor(45, 45, 45, 200) - surface.DrawRect(0, 0, panel:GetWide(), panel:GetTall()) + local toColor = function(baseColor) + return Color(baseColor.r, baseColor.g, baseColor.b) + end - surface.SetDrawColor(nut.config.get("color")) - surface.DrawRect(0, 0, panel:GetWide(), 24) + local themeGenerator = { + ["dark"] = function(h, s, l) + local secondary = HSVToColor(h, s, l - 0.5 <=0.2 and l + 0.3 or l - 0.5) + local background = HSVToColor(h, s - 0.3 < 0.1 and s + 0.3 or s - 0.3, l - 0.5 <=0.2 and l + 0.3 or l - 0.5) + local light = HSVToColor(h, 0.1, 1) + local dark = HSVToColor(h, 1, 0.2) - surface.SetDrawColor(nut.config.get("color")) - surface.DrawOutlinedRect(0, 0, panel:GetWide(), panel:GetTall()) + return toColor(secondary), toColor(background), toColor(light), toColor(dark) + end, + ["light"] = function(h, s, l) + local secondary = HSVToColor(h, s, l - 0.2 <=0.2 and l + 0.6 or l - 0.2) + local background = HSVToColor(h, s - 0.3 < 0.1 and s + 0.3 or s - 0.3, clamp(s + 0.05)) + local light = HSVToColor(h, 0.1, 1) + local dark = HSVToColor(h, 1, 0.2) + + return toColor(secondary), toColor(background), toColor(light), toColor(dark) + end, + } + -- Function to create a monochromatic color palette + local function createMonochromaticPalette() + -- Calculate the HSL values of the base color + local theme = nut.config.get("colorAutoTheme", "dark") + local primary = nut.config.get("color") + local h, s, l = ColorToHSV(primary) + local secondary = nut.config.get("colorSecondary", Color(55, 87, 140)) + local background = nut.config.get("colorBackground", Color(45, 45, 45)) + local light, dark = defaultLight, defaultDark + if themeGenerator[theme] ~= nil then + secondary, background, light, dark = themeGenerator[theme](h, s, l) + end + + return {primary = primary, secondary = secondary, background = background, light = light, dark = dark} + end + + hook.Add("PostDrawHUD", "nutdebugTestlalal", function() + --[[ if not table.IsEmpty(palette) then + local x, y = 0, 0 + local w, h = 100, 100 + for i = 1, #palette do + local color = palette[i] + surface.SetDrawColor(color) + surface.DrawRect(x, y, w, h) + --draw text inside the box with the color r,g,b + draw.SimpleText("R: "..color.r, "nutSmallFont", x + w/2, y + h*0.25, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) + draw.SimpleText("G: "..color.g, "nutSmallFont", x + w/2, y + h*0.5, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) + draw.SimpleText("B: "..color.b, "nutSmallFont", x + w/2, y + h*0.75, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER) + + x = x + w + end + end ]] + end) + + local function updateColors() + + timer.Simple(0, function() + palette = createMonochromaticPalette() + local primary, secondary, background, light, dark = palette.primary, palette.secondary, palette.background, palette.light, palette.dark + nut.config.set("color", primary) + nut.config.set("colorSecondary", secondary) + nut.config.set("colorBackground", background) + + if themeGenerator[nut.config.get("colorAutoTheme", "dark")] ~= nil then + nut.config.setDefault("colorSecondary", secondary) + nut.config.setDefault("colorBackground", background) + end + + SKIN.Colours.Window.TitleActive = secondary + SKIN.Colours.Window.TitleInactive = Color(255, 255, 255) + + SKIN.tex.CategoryList.Header = function( x, y, w, h ) + surface.SetDrawColor( primary ) + surface.DrawRect( x, y, w, h ) + end + + SKIN.Colours.Button.Normal = light + +--[[ SKIN.Colours.Button.Normal = secondary + SKIN.Colours.Button.Hover = light + SKIN.Colours.Button.Down = dark + SKIN.Colours.Button.Disabled = background ]] + + SKIN.colTextEntryTextHighlight = secondary + end) + end + + hook.Add("nutUpdateColors", "nutSkinUpdateColors", updateColors) + + local function updateTextColors() + timer.Simple(0, function() + local normal = nut.config.get("colorText") + + local h, s, v = ColorToHSV(normal) + local h1, s1, v1 = ColorToHSV(nut.config.get("color")) + + local hover = HSVToColor(h1, s, v) + local down = HSVToColor(h, 0, v*0.2) + local bright = HSVToColor(h, 0, v*1.2) + local dark = HSVToColor(h, 0, v*0.8) + local disabled = HSVToColor(h, 0, v*0.5) + + SKIN.Colours.Button.Normal = normal + SKIN.Colours.Button.Hover = hover + SKIN.Colours.Button.Down = down + SKIN.Colours.Button.Disabled = disabled + + SKIN.Colours.Tree.Normal = normal + SKIN.Colours.Tree.Hover = hover + SKIN.Colours.Tree.Selected = down + + SKIN.Colours.Category.Line.Text = normal + SKIN.Colours.Category.Line.Text_Hover = hover + SKIN.Colours.Category.Line.Text_Selected = down + SKIN.Colours.Category.LineAlt.Text = normal + SKIN.Colours.Category.LineAlt.Text_Hover = hover + SKIN.Colours.Category.LineAlt.Text_Selected = down + SKIN.Colours.Label.Default = normal + SKIN.Colours.Label.Bright = bright + SKIN.Colours.Label.Dark = dark + SKIN.Colours.Label.Highlight = hover + end) + + if (IsValid(nut.gui.score)) then nut.gui.score:Remove() end end - function SKIN:DrawGenericBackground(x, y, w, h) - surface.SetDrawColor(45, 45, 45, 240) + hook.Add("nutUpdateColors", "nutSkinUpdateTextColors", updateTextColors) + + local function nsBackground(panel, x, y, w, h, alt) + local colorR, colorG, colorB = nut.config.get("color"):Unpack() + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + nut.util.drawBlur(panel, 10) + + surface.SetDrawColor(alt and 255 or colorR, alt and 255 or colorG, alt and 255 or colorB, 200) surface.DrawRect(x, y, w, h) - surface.SetDrawColor(0, 0, 0, 180) - surface.DrawOutlinedRect(x, y, w, h) + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 255) + surface.SetMaterial(gradientD) + surface.DrawTexturedRect(x, y, w, h) + surface.SetMaterial(gradientR) + surface.DrawTexturedRect(x, y, w, h) + end + + local function nsComboBackground(panel, x, y, w, h, alt) + local colorR, colorG, colorB = nut.config.get("color"):Unpack() + local backgroundR, backgroundG, backgroundB = nut.config.get("colorSecondary"):Unpack() + --nut.util.drawBlur(panel, 10) + + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 255) + surface.DrawRect(x, y, w, h) + + if alt then + surface.SetDrawColor(colorR, colorG, colorB, 255) + surface.SetMaterial(gradientL) + surface.DrawTexturedRect(x, y, w, h) + end + end + + function SKIN:PaintFrame(panel, w, h) + nsBackground(panel, 0, 0, w, h) + + surface.SetDrawColor(nut.config.get("color")) + surface.DrawRect(0, 0, panel:GetWide(), 24) + + surface.SetDrawColor(nut.config.get("color")) + surface.DrawOutlinedRect(0, 0, panel:GetWide(), panel:GetTall()) - surface.SetDrawColor(100, 100, 100, 25) - surface.DrawOutlinedRect(x + 1, y + 1, w - 2, h - 2) end function SKIN:PaintPanel(panel) @@ -43,9 +203,11 @@ local SKIN = {} return end + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + local w, h = panel:GetWide(), panel:GetTall() - surface.SetDrawColor(0, 0, 0, 100) + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 100) surface.DrawRect(0, 0, w, h) surface.DrawOutlinedRect(0, 0, w, h) end @@ -56,21 +218,24 @@ local SKIN = {} return end + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + local secondaryR, secondaryG, secondaryB = nut.config.get("colorSecondary"):Unpack() + local w, h = panel:GetWide(), panel:GetTall() local alpha = 50 if (panel:GetDisabled()) then alpha = 10 elseif (panel.Depressed) then - alpha = 180 + alpha = 100 elseif (panel.Hovered) then alpha = 75 end - surface.SetDrawColor(30, 30, 30, alpha) + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, alpha) surface.DrawRect(0, 0, w, h) - surface.SetDrawColor(0, 0, 0, 180) + surface.SetDrawColor(secondaryR, secondaryG, secondaryB, 180) surface.DrawOutlinedRect(0, 0, w, h) surface.SetDrawColor(180, 180, 180, 2) @@ -83,5 +248,159 @@ local SKIN = {} function SKIN:PaintWindowMaximizeButton(panel, w, h) end + + function SKIN:PaintCollapsibleCategory( panel, w, h ) + + if ( h <= panel:GetHeaderHeight() ) then + --self.tex.CategoryList.Header( 0, 0, w, h ) + draw.RoundedBoxEx( 6, 0, 0, w, h, palette.secondary, true, true, false, false ) + -- Little hack, draw the ComboBox's dropdown arrow to tell the player the category is collapsed and not empty + if ( !panel:GetExpanded() ) then self.tex.Input.ComboBox.Button.Down( w - 18, h / 2 - 8, 15, 15 ) end + return + end + + --self.tex.CategoryList.InnerH( 0, 0, w, panel:GetHeaderHeight() ) + draw.RoundedBoxEx( 6, 0, 0, w, panel:GetHeaderHeight(), palette.primary, true, true, false, false ) + --self.tex.CategoryList.Inner( 0, panel:GetHeaderHeight(), w, h - panel:GetHeaderHeight() ) + nsBackground(panel, 0, panel:GetHeaderHeight(), w, h - panel:GetHeaderHeight()) + + end + + --[[--------------------------------------------------------- + Panel + -----------------------------------------------------------]] + function SKIN:PaintPanel( panel, w, h ) + + if ( !panel.m_bBackground ) then return end + nsBackground(panel, 0, 0, w, h) + end + + --[[--------------------------------------------------------- + Tree + -----------------------------------------------------------]] + function SKIN:PaintTree( panel, w, h ) + + if ( !panel.m_bBackground ) then return end + nsBackground(panel, 0, 0, w, h) + end + + --[[--------------------------------------------------------- + Menu + -----------------------------------------------------------]] + function SKIN:PaintMenu( panel, w, h ) + + if ( panel:GetDrawColumn() ) then + self.tex.MenuBG_Column( 0, 0, w, h ) + else + nsBackground(panel, 0, 0, w, h) + end + end + + --[[--------------------------------------------------------- + MenuOption + -----------------------------------------------------------]] + function SKIN:PaintMenuOption( panel, w, h ) + + --[[ if ( panel.m_bBackground && !panel:IsEnabled() ) then + surface.SetDrawColor( Color( 0, 0, 0, 50 ) ) + surface.DrawRect( 0, 0, w, h ) + end ]] + + --[[ if ( panel.m_bBackground && ( panel.Hovered || panel.Highlight) ) then + self.tex.MenuBG_Hover( 0, 0, w, h ) + end ]] + + if ( panel:GetChecked() ) then + self.tex.Menu_Check( 5, h / 2 - 7, 15, 15 ) + end + + nsComboBackground(panel, 0, 0, w, h, panel.m_bBackground && ( panel.Hovered || panel.Highlight)) + + end + + --[[--------------------------------------------------------- + ComboBox + -----------------------------------------------------------]] + function SKIN:PaintComboBox( panel, w, h ) + + if ( panel:GetDisabled() ) then + return self.tex.Input.ComboBox.Disabled( 0, 0, w, h ) + end + + if ( panel.Depressed || panel:IsMenuOpen() ) then + return self.tex.Input.ComboBox.Down( 0, 0, w, h ) + end + + if ( panel.Hovered ) then + nsComboBackground(panel, 0, 0, w, h, true) + return + end + + nsComboBackground(panel, 0, 0, w, h) + + end + + + function SKIN:PaintCategoryButton( panel, w, h ) + local r, g, b = nut.config.get("colorSecondary"):Unpack() + local r2, g2, b2 = r - 25, g - 25, b - 25 + + + if ( panel.AltLine ) then + + surface.SetDrawColor( r, g, b ) + + else + + surface.SetDrawColor( r2, g2, b2 ) + + end + + surface.DrawRect( 0, 0, w, h ) + + end + + + function SKIN:PaintListBox( panel, w, h ) + + nsBackground(panel, 0, 0, w, h) + + end + + function SKIN:PaintListView( panel, w, h ) + + if ( !panel.m_bBackground ) then return end + + nsBackground(panel, 0, 0, w, h) + + end + + function SKIN:PaintMenuBar( panel, w, h ) + + local colorR, colorG, colorB = nut.config.get("color"):Unpack() + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + nut.util.drawBlur(panel, 10) + + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 200) + surface.DrawRect(0, 0, w, h) + + surface.SetDrawColor(colorR, colorG, colorB, 255) + surface.SetMaterial(gradientC) + surface.DrawTexturedRect(0, 0, w, h) + end + + function SKIN:PaintProgress( panel, w, h ) + + local colorR, colorG, colorB = nut.config.get("color"):Unpack() + local backgroundR, backgroundG, backgroundB = nut.config.get("colorBackground"):Unpack() + + surface.SetDrawColor(backgroundR, backgroundG, backgroundB, 200) + surface.DrawRect(0, 0, w, h) + + surface.SetDrawColor(colorR, colorG, colorB, 255) + --surface.SetMaterial(gradientC) + surface.DrawRect(0, 0, w * panel:GetFraction(), h) + end + derma.DefineSkin("nutscript", "The base skin for the NutScript framework.", SKIN) -derma.RefreshSkins() +derma.RefreshSkins() \ No newline at end of file diff --git a/plugins/nstheme/derma/cl_skin_alt.lua b/plugins/nstheme/derma/cl_skin_alt.lua new file mode 100644 index 00000000..22cc0036 --- /dev/null +++ b/plugins/nstheme/derma/cl_skin_alt.lua @@ -0,0 +1,90 @@ +local palette = palette or {} + +local SKIN = {} + SKIN.fontFrame = "BudgetLabel" + SKIN.fontTab = "nutSmallFont" + SKIN.fontButton = "nutSmallFont" + + SKIN.Colours = table.Copy(derma.SkinList.Default.Colours) + SKIN.Colours.Window.TitleActive = Color(0, 0, 0) + SKIN.Colours.Window.TitleInactive = Color(255, 255, 255) + + local defaultLight, defaultDark = color_white, Color(80, 80, 80) + + SKIN.Colours.Button.Normal = defaultDark + SKIN.Colours.Button.Hover = defaultLight + SKIN.Colours.Button.Down = Color(180, 180, 180) + SKIN.Colours.Button.Disabled = Color(0, 0, 0, 100) + + local clamp = function(value) + return math.Clamp(value, 0.2, 1) + end + + local toColor = function(baseColor) + return Color(baseColor.r, baseColor.g, baseColor.b) + end + + local themeGenerator = { + ["dark"] = function(h, s, l) + local secondary = HSVToColor(h, s, l - 0.5 <=0.2 and l + 0.3 or l - 0.5) + local background = HSVToColor(h, s - 0.3 < 0.1 and s + 0.3 or s - 0.3, l - 0.5 <=0.2 and l + 0.3 or l - 0.5) + local light = HSVToColor(h, 0.1, 1) + local dark = HSVToColor(h, 1, 0.2) + + return toColor(secondary), toColor(background), toColor(light), toColor(dark) + end, + ["light"] = function(h, s, l) + local secondary = HSVToColor(h, s, l - 0.2 <=0.2 and l + 0.6 or l - 0.2) + local background = HSVToColor(h, s - 0.3 < 0.1 and s + 0.3 or s - 0.3, clamp(s + 0.05)) + local light = HSVToColor(h, 0.1, 1) + local dark = HSVToColor(h, 1, 0.2) + + return toColor(secondary), toColor(background), toColor(light), toColor(dark) + end, + } + -- Function to create a monochromatic color palette + local function createMonochromaticPalette() + -- Calculate the HSL values of the base color + local theme = nut.config.get("colorAutoTheme", "dark") + local primary = nut.config.get("color") + local h, s, l = ColorToHSV(primary) + local secondary = nut.config.get("colorSecondary", Color(55, 87, 140)) + local background = nut.config.get("colorBackground", Color(45, 45, 45)) + local light, dark = defaultLight, defaultDark + if themeGenerator[theme] ~= nil then + secondary, background, light, dark = themeGenerator[theme](h, s, l) + end + + return {primary = primary, secondary = secondary, background = background, light = light, dark = dark} + end + + local function updateColors() + + timer.Simple(0, function() + palette = createMonochromaticPalette() + local primary, secondary, background, light, dark = palette.primary, palette.secondary, palette.background, palette.light, palette.dark + nut.config.set("color", primary) + nut.config.set("colorSecondary", secondary) + nut.config.set("colorBackground", background) + + if themeGenerator[nut.config.get("colorAutoTheme", "dark")] ~= nil then + nut.config.setDefault("colorSecondary", secondary) + nut.config.setDefault("colorBackground", background) + end + + SKIN.Colours.Window.TitleActive = secondary + SKIN.Colours.Window.TitleInactive = Color(255, 255, 255) + + SKIN.tex.CategoryList.Header = function( x, y, w, h ) + surface.SetDrawColor( primary ) + surface.DrawRect( x, y, w, h ) + end + + SKIN.colTextEntryTextHighlight = secondary + end) + end + + hook.Add("nutUpdateColors", "nutSkinUpdateColors_Alt", updateColors) + +derma.DefineSkin("nutscript_alt", "Alternative skin for the NutScript framework.", SKIN) +derma.RefreshSkins() \ No newline at end of file diff --git a/plugins/nstheme/derma/cl_skin_old.lua b/plugins/nstheme/derma/cl_skin_old.lua new file mode 100644 index 00000000..cac76679 --- /dev/null +++ b/plugins/nstheme/derma/cl_skin_old.lua @@ -0,0 +1,87 @@ +local SKIN = {} + SKIN.fontFrame = "BudgetLabel" + SKIN.fontTab = "nutSmallFont" + SKIN.fontButton = "nutSmallFont" + + SKIN.Colours = table.Copy(derma.SkinList.Default.Colours) + SKIN.Colours.Window.TitleActive = Color(0, 0, 0) + SKIN.Colours.Window.TitleInactive = Color(255, 255, 255) + + SKIN.Colours.Button.Normal = Color(80, 80, 80) + SKIN.Colours.Button.Hover = Color(255, 255, 255) + SKIN.Colours.Button.Down = Color(180, 180, 180) + SKIN.Colours.Button.Disabled = Color(0, 0, 0, 100) + + function SKIN:PaintFrame(panel) + nut.util.drawBlur(panel, 10) + + surface.SetDrawColor(45, 45, 45, 200) + surface.DrawRect(0, 0, panel:GetWide(), panel:GetTall()) + + surface.SetDrawColor(nut.config.get("color")) + surface.DrawRect(0, 0, panel:GetWide(), 24) + + surface.SetDrawColor(nut.config.get("color")) + surface.DrawOutlinedRect(0, 0, panel:GetWide(), panel:GetTall()) + + end + + function SKIN:DrawGenericBackground(x, y, w, h) + surface.SetDrawColor(45, 45, 45, 240) + surface.DrawRect(x, y, w, h) + + surface.SetDrawColor(0, 0, 0, 180) + surface.DrawOutlinedRect(x, y, w, h) + + surface.SetDrawColor(100, 100, 100, 25) + surface.DrawOutlinedRect(x + 1, y + 1, w - 2, h - 2) + end + + function SKIN:PaintPanel(panel) + if (not panel.m_bBackground) then return end + if (panel.GetPaintBackground and not panel:GetPaintBackground()) then + return + end + + local w, h = panel:GetWide(), panel:GetTall() + + surface.SetDrawColor(0, 0, 0, 100) + surface.DrawRect(0, 0, w, h) + surface.DrawOutlinedRect(0, 0, w, h) + end + + function SKIN:PaintButton(panel) + if (not panel.m_bBackground) then return end + if (panel.GetPaintBackground and not panel:GetPaintBackground()) then + return + end + + local w, h = panel:GetWide(), panel:GetTall() + local alpha = 50 + + if (panel:GetDisabled()) then + alpha = 10 + elseif (panel.Depressed) then + alpha = 180 + elseif (panel.Hovered) then + alpha = 75 + end + + surface.SetDrawColor(30, 30, 30, alpha) + surface.DrawRect(0, 0, w, h) + + surface.SetDrawColor(0, 0, 0, 180) + surface.DrawOutlinedRect(0, 0, w, h) + + surface.SetDrawColor(180, 180, 180, 2) + surface.DrawOutlinedRect(1, 1, w - 2, h - 2) + end + + -- I don't think we gonna need minimize button and maximize button. + function SKIN:PaintWindowMinimizeButton(panel, w, h) + end + + function SKIN:PaintWindowMaximizeButton(panel, w, h) + end +derma.DefineSkin("nutscript_legacy", "The base skin for the NutScript framework.", SKIN) +derma.RefreshSkins() \ No newline at end of file diff --git a/plugins/nstheme/sh_plugin.lua b/plugins/nstheme/sh_plugin.lua index 21993361..95a78bcc 100644 --- a/plugins/nstheme/sh_plugin.lua +++ b/plugins/nstheme/sh_plugin.lua @@ -2,8 +2,27 @@ PLUGIN.name = "NutScript Theme" PLUGIN.author = "Cheesenut" PLUGIN.desc = "Adds a dark Derma skin for NutScript." +local function getRegisteredThemes() + local themes = {} + if CLIENT then + for k in pairs(derma.GetSkinTable()) do + themes[#themes + 1] = k + end + end + + return themes +end + +nut.config.add("theme", "nutscript", "Which derma skin to use. Requires restart to apply", nil, { + form = "Combo", + category = "appearance", + options = getRegisteredThemes() + } +) + if (CLIENT) then function PLUGIN:ForceDermaSkin() - return "nutscript" + local theme = nut.config.get("theme", "nutscript") + return derma.GetNamedSkin(theme) and theme or "nutscript" end end diff --git a/plugins/observer.lua b/plugins/observer.lua index 02081cae..4a756f90 100644 --- a/plugins/observer.lua +++ b/plugins/observer.lua @@ -41,6 +41,8 @@ if (CLIENT) then function PLUGIN:SetupQuickMenu(menu) if (LocalPlayer():IsAdmin()) then + menu:addCategory(self.name) + local buttonESP = menu:addCheck(L"toggleESP", function(panel, state) if (state) then RunConsoleCommand("nut_obsesp", "1") diff --git a/plugins/pluginconfig.lua b/plugins/pluginconfig.lua index 8e652476..6dc2d9c1 100644 --- a/plugins/pluginconfig.lua +++ b/plugins/pluginconfig.lua @@ -88,10 +88,10 @@ if (SERVER) then net.Receive("nutPluginList", function(_, client) if (not client:IsSuperAdmin()) then return end local plugins = PLUGIN:getPluginList() - local disabled, plugin + local disabled net.Start("nutPluginList") net.WriteUInt(#plugins, 32) - for k, plugin in ipairs(plugins) do + for _, plugin in ipairs(plugins) do if (PLUGIN.overwrite[plugin] ~= nil) then disabled = PLUGIN.overwrite[plugin] else @@ -105,7 +105,7 @@ if (SERVER) then else function PLUGIN:createPluginPanel(parent, plugins) local frame = vgui.Create("DFrame") - frame:SetTitle(L"Plugins") + frame:SetTitle(L"togglePlugins") frame:SetSize(256, 512) frame:MakePopup() frame:Center() @@ -119,10 +119,14 @@ else nut.gui.pluginConfig = frame local info = frame:Add("DLabel") - info:SetText("The map must be restarted after making changes!") + local text = L"togglePluginsDesc" + info:SetText(text) info:Dock(TOP) info:DockMargin(0, 0, 0, 4) info:SetContentAlignment(5) + surface.SetFont(info:GetFont()) + local _, h = surface.GetTextSize(text) + info:SetTall(h) local scroll = frame:Add("DScrollPanel") scroll:Dock(FILL) @@ -163,11 +167,11 @@ else function PLUGIN:CreateConfigPanel(parent) local button = parent:Add("DButton") - button:SetText(L"Plugins") + button:SetText(L"togglePlugins") button:Dock(TOP) button:DockMargin(0, 0, 0, 8) button:SetSkin("Default") - button.DoClick = function(button) + button.DoClick = function() self:createPluginPanel(parent) end end @@ -175,7 +179,7 @@ else net.Receive("nutPluginList", function() local length = net.ReadUInt(32) local plugins = {} - for i = 1, length do + for _ = 1, length do plugins[net.ReadString()] = net.ReadBit() == 1 end hook.Run("RetrievedPluginList", plugins) diff --git a/plugins/raiseweapons/cl_hooks.lua b/plugins/raiseweapons/cl_hooks.lua index 90a398fb..6bf17c0b 100644 --- a/plugins/raiseweapons/cl_hooks.lua +++ b/plugins/raiseweapons/cl_hooks.lua @@ -31,7 +31,7 @@ function PLUGIN:CalcViewModelView(weapon, viewModel, oldEyePos, oldEyeAngles, ey end function PLUGIN:SetupQuickMenu(menu) - menu:addSpacer() + menu:addCategory("Raise Weapons") menu:addCheck(L"altLower", function(panel, state) if (state) then RunConsoleCommand("nut_usealtlower", "1") diff --git a/plugins/scoreboard/derma/cl_scoreboard.lua b/plugins/scoreboard/derma/cl_scoreboard.lua index e1b6f77a..91084105 100644 --- a/plugins/scoreboard/derma/cl_scoreboard.lua +++ b/plugins/scoreboard/derma/cl_scoreboard.lua @@ -21,7 +21,7 @@ local PANEL = {} self.title:SetText(GetHostName()) self.title:SetFont("nutBigFont") self.title:SetContentAlignment(5) - self.title:SetTextColor(color_white) + self.title:SetTextColor(nut.config.get("colorText", color_white)) self.title:SetExpensiveShadow(1, color_black) self.title:Dock(TOP) self.title:SizeToContentsY() @@ -67,7 +67,7 @@ local PANEL = {} header:SetText(L(v.name)) header:SetTextInset(3, 0) header:SetFont("nutMediumFont") - header:SetTextColor(color_white) + header:SetTextColor(nut.config.get("colorText", color_white)) header:SetExpensiveShadow(1, color_black) header:SetTall(28) header.Paint = function(this, w, h) @@ -166,7 +166,7 @@ local PANEL = {} slot.name:DockMargin(65, 0, 48, 0) slot.name:SetTall(18) slot.name:SetFont("nutGenericFont") - slot.name:SetTextColor(color_white) + slot.name:SetTextColor(nut.config.get("colorText", color_white)) slot.name:SetExpensiveShadow(1, color_black) slot.ping = slot:Add("DLabel") @@ -180,7 +180,7 @@ local PANEL = {} end slot.ping:SetFont("nutGenericFont") slot.ping:SetContentAlignment(6) - slot.ping:SetTextColor(color_white) + slot.ping:SetTextColor(nut.config.get("colorText", color_white)) slot.ping:SetTextInset(16, 0) slot.ping:SetExpensiveShadow(1, color_black) @@ -189,7 +189,7 @@ local PANEL = {} slot.desc:DockMargin(65, 0, 48, 0) slot.desc:SetWrap(true) slot.desc:SetContentAlignment(7) - slot.desc:SetTextColor(color_white) + slot.desc:SetTextColor(nut.config.get("colorText", color_white)) slot.desc:SetExpensiveShadow(1, Color(0, 0, 0, 100)) slot.desc:SetFont("nutSmallFont") diff --git a/plugins/thirdperson.lua b/plugins/thirdperson.lua index 4116741f..884d5a68 100644 --- a/plugins/thirdperson.lua +++ b/plugins/thirdperson.lua @@ -72,6 +72,7 @@ if (CLIENT) then function PLUGIN:SetupQuickMenu(menu) if (isAllowed()) then + menu:addCategory("Thirdperson") local button = menu:addCheck(L"thirdpersonToggle", function(panel, state) if (state) then RunConsoleCommand("nut_tp_enabled", "1")