diff --git a/doc/ru/scripting/extensions.md b/doc/ru/scripting/extensions.md index 32afc52d..82235b96 100644 --- a/doc/ru/scripting/extensions.md +++ b/doc/ru/scripting/extensions.md @@ -88,12 +88,6 @@ table.deep_flat(t: table) -> table Возвращает глубокую "плоскую" версию исходной таблицы. -```lua -table.sum(t) -> number -``` - -Возвращает сумму всех элементов, игнорируя пары ключ-значение. - ```lua table.tostring(t: table) -> string ``` @@ -206,6 +200,12 @@ math.round(num: number, [опционально] places: num) -> number Возвращает округлённое значение num до указанного количества знаков после запятой places. +```lua +math.sum(x: number, ... | t: table) -> number +``` + +Возвращает сумму всех принимаемых аргументов. Если в качестве аргумента была передана таблица, метод вернёт сумму всех её элементов. + ## Дополнительные глобальные функции В этом же скрипте также определены и другие глобальные функции которые доступны для использования. Ниже их список diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index 7a264540..07c42e35 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -64,6 +64,23 @@ function math.round(num, places) return math.floor(num * mult + 0.5) / mult end +function math.sum(...) + local numbers = nil + local sum = 0 + + if type(...) == "table" then + numbers = ... + else + numbers = {...} + end + + for _, v in ipairs(numbers) do + sum = sum + v + end + + return sum +end + ---------------------------------------------- function table.copy(t) @@ -179,17 +196,6 @@ function table.deep_flat(t) return flat end - -function table.sum(t) - local sum = 0 - - for _, v in ipairs(t) do - sum = sum + v - end - - return sum -end - ---------------------------------------------- local pattern_escape_replacements = {