Skip to content

Commit

Permalink
Серия изменений, которые ПО ИДЕЕ НЕ ЛОМАЮТ!!! автодонат
Browse files Browse the repository at this point in the history
Хотя я делал их без запуска Garry's Mod, так что кто знает...

## Небольшой рефакторинг sandbox extension

Незначителньые улучшения, могут в теории повлиять на работу

## Fix работы на локалке

convar hostip на локалке мог выдавать некорректный IP, из-за чего потом были ошибки ip_not_registered. Теперь все сервера выполняют getExternalIP Подробнее: https://forum.gm-donate.net/t/5321

## С apinator удалено kv.gmod.app

Не использовалось никем и нигде

## Версия сервера с куки, а не конвара

До этого версия сервера отправлялась в ГМД, бравшись с ConVarString("igs_version"), а он не всегда был корректным и часто передавал 0

##  🆕 Функция IGS.prints

Удобное и красивое. Новая функция принтов, с которой легко выделять в тексте какой-то кусочек без дрочи с IGS.print(Color(la, la, la), "text", Color(bla, bla, bla), "другой text")

IGS.debug тоже на нее перевел, а еще добавил логгинг левелы в cvar igs_debug

🔥 Заодно сразу сделал намного более красивые сообщения про наличие обновлений

И все найденные обычные IGS.print поменял на IGS.prints

## debug принты в serv_sv.lua

Зачем? Не знаю. Хотел где-то функцию IGS.debug применить и насладиться в полной красоте.

Если эти принты утомляют, то в server.cfg нужно прописать igs_debug 3

## 🆕 Возможность указания материала в :SetIcon

Раньше можно было только ссылку и модельку, а теперь еще путь к существующему материалу. По сути, не тестировал, потому что негде было 🫣

## Прочие мелочи

- Немного отформатировал код. Пробелы там добавил и все такое
- Добавил еще примеры и полезные ссылки в sh_additems
- Сделал, чтобы cvar kupol_logging_level 1 не так сильно мусорил логами
- Обновил README, добавил информацию про надоевший igs-core пользователей в addons :(
  • Loading branch information
AMD-NICK committed Sep 3, 2024
1 parent 14ea587 commit 67ad529
Show file tree
Hide file tree
Showing 18 changed files with 262 additions and 311 deletions.
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,25 @@
<img align="left" width="450" src="https://user-images.githubusercontent.com/9200174/111821738-aad96c80-88eb-11eb-91ba-a98a2c3d770a.png">

## Инструкция по установке
1. Скачайте igsmodification по указанной ссылке: [скачать](https://github.com/GM-DONATE/IGS/releases/latest/download/igs-mod.zip) и распакуйте его в папку /addons на сервере
Этот скрипт используется для настройки автодоната, а также скачивает его последнюю версию
2. В файле config_sv.lua укажите ID проекта и секретный ключ, который указан на странице проекта [на сайте](https://gm-donate.net/panel/) (проект нужно создать)

1. Скачайте `igs-modification`: [скачать](https://github.com/GM-DONATE/IGS/releases/latest/download/igs-mod.zip) и распакуйте его в папку /addons на сервере. `igs-core` скачивать не нужно. Этот скрипт используется для настройки автодоната, а также сам его обновляет
2. В файле `config_sv.lua` укажите ID проекта и секретный ключ, который указан на странице проекта [на сайте](https://gm-donate.net/panel/) (проект нужно создать)

[Напишите нам](https://gm-donate.net/support), если возникли какие-то вопросы
Напишите нам [в поддержку](https://gm-donate.net/support), если возникли какие-то вопросы, а наш живой оператор вам поможет. Также вы можете обратиться [на форум](https://forum.gm-donate.net).

## Главная ошибка при установке

> **Папки `igs-core` не должно быть в addons**. `igs-modification` сама проследит и скачает все необходимые файлы.
В 99% случаев `igs-core` распаковывают в addons, чтобы что-то сделать, что можно сделать без распаковки. Просто спросите у поддержки, либо на форуме, а мы вам поможем не сделать глупость.

`igs-core` в addons лишает вас автоматических обновлений и исправлений, если очередная обнова в гмоде снова все сломает, как с `debug.getregistry()`

## Полезные ресурсы

- 🔥 [Более подробная инструкция по установке](http://gm-donate.net/instructions)
- 📰 [VK](https://vk.com/public143836547): Главная группа VK с основными новостями
- 💬 [Forum](https://forum.gm-donate.net): Форум гмоддеров. Ответы и помощь с любыми гмод вопросами, включая GMD
- 📣 [GMD Stream](https://t.me/notafaq): Telegram канал с информацией, которая мало известна, но может быть полезна
- 📣 [GMD Mods](https://t.me/gmodder): Telegram канал с модами и различными публикациями, которых нет в группе ВК
- 🔧 [Настройка итемов](https://gm-donate.net/docs): информация про методы, которые наделяют донат предметы функционалом
24 changes: 12 additions & 12 deletions addons/igs-core/lua/autorun/l_ingameshop.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ IGS = IGS or {}

local function log(patt, ...)
if cookie.GetNumber("igs_verbose", 0) == 1 then
print(string.format("[IGS] " .. patt, ...))
print(string.format("[IGS] " .. patt, ...)) -- не менять на printS. Некоторые логи слишком ранние
end
end

Expand All @@ -16,7 +16,7 @@ concommand.Add("igs_verbose", function(pl)

local enable = cookie.GetNumber("igs_verbose", 0) == 0
cookie.Set("igs_verbose", enable and 1 or 0)
print("IGS Logging " .. (enable and "enabled" or "disabled"))
IGS.prints("IGS Logging " .. (enable and "enabled" or "disabled"))
end)

local i = {} -- lua files only
Expand Down Expand Up @@ -72,7 +72,7 @@ function IGS.cl(sPath) return incl("cl", sPath) end

local function findKeys(arr, patt)
local found = {}
for key,val in pairs(arr) do
for key, val in pairs(arr) do
local match = key:match(patt)
if match then
table.insert(found, match)
Expand All @@ -85,7 +85,7 @@ end
-- При выборке модулей и энтити элементы повторяются
local function unique(arr)
local ret = {}
for _,v in ipairs(arr) do
for _, v in ipairs(arr) do
if not table.HasValue(ret, v) then
table.insert(ret, v)
end
Expand All @@ -99,21 +99,21 @@ end

function IGS.include_files(sPath, fIncluder) -- igs/extensions
local data_files = findInMount("^" .. sPath:PatternSafe() .. "/(.*%.lua)$")
local lua_files = file.Find(sPath .. "/*.lua","LUA")
local lua_files = file.Find(sPath .. "/*.lua", "LUA")
table.Add(data_files, lua_files)

for _,fileName in ipairs(data_files) do
for _, fileName in ipairs(data_files) do
fIncluder(sPath .. "/" .. fileName)
end
end

function IGS.load_modules(sBasePath) -- igs/modules
local data_modules = findInMount("^" .. sBasePath .. "/([^/]*)/_main%.lua$")
data_modules = unique(data_modules)
local _,lua_modules = file.Find(sBasePath .. "/*","LUA")
local _, lua_modules = file.Find(sBasePath .. "/*", "LUA")
table.Add(data_modules, lua_modules)

for _,mod in ipairs(data_modules) do
for _, mod in ipairs(data_modules) do
local sModPath = sBasePath .. "/" .. mod
iam_inside = sModPath
IGS.sh(sModPath .. "/_main.lua") -- igs/modules/inv_log/_main.lua
Expand All @@ -126,7 +126,7 @@ function IGS.load_entities()
local entities = findInMount("^entities/([^/]*)/(.*%.lua)$")
entities = unique(entities) -- {ent_igs, npc_igs}

for _,ent_class in ipairs(entities) do
for _, ent_class in ipairs(entities) do
iam_inside = "entities/" .. ent_class
ENT = {}
ENT.Folder = iam_inside
Expand All @@ -142,12 +142,12 @@ end


concommand.Add("igs_flushversion", function(pl)
if IsValid(pl) then print("console only") return end
if IsValid(pl) then IGS.prints("console only") return end
cookie.Set("igs_version", nil)
print("OK. После перезагрузки сервер скачает новую версию")
IGS.prints("OK. После перезагрузки сервер скачает новую версию")
end)

-- мб ему место в launcher?
-- Используется только для передачи версии клиенту. На сервере использовать cookie.GetString("igs_version")
local igs_version = CreateConVar("igs_version", "", {FCVAR_NOTIFY, FCVAR_REPLICATED, FCVAR_SERVER_CAN_EXECUTE})

if SERVER and igs_version:GetString() == "" then
Expand Down
Loading

0 comments on commit 67ad529

Please sign in to comment.