Releases: GM-DONATE/IGS
Чучуть рефакторинга, использование материалов в SetIcon, визуальные изменения консольных сообщений
Full changelog: 240600...240600.1
❗ Как обновиться
Только если IGS установлен правильно (без igs-core
в addons
):
- Если у вас
igs_version
==240600
, то обновление должно произойти автоматически. - Введите в консоль запущенного сервера
igs_flushversion
- Выключите сервер
- Откройте файл
garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua
и замените его содержимое на это - Включайте сервер
Список изменений:
🔸 Небольшой рефакторинг sandbox extension
Незначителньые улучшения, могут в теории повлиять на работу
🔸 Fix работы на локалке
convar hostip
на локалке мог выдавать некорректный IP, из-за чего потом были ошибки ip_not_registered
. Теперь все сервера выполняют getExternalIP
. Подробнее тут
🔸 С apinator удалено kv.gmod.app
Штука планировалась как способ хранения данных между серверами (сетевой bib
или cookie
библиотека), но на деле не нашло применения, поэтому удалено
🔸 Версия сервера с БД, а не конвара
До этого версия сервера отправлялась в ГМД, бравшись с ConVarString("igs_version")
, а он не всегда был корректным и часто передавал 0. Теперь берется с БД, потому что там по идее должно быть более корректное и свежее значение
🔸 Добавлена функция IGS.prints
Удобное и красивое. Новая функция принтов, с которой легко выделять в тексте какой-то кусочек без дрочи с IGS.print(Color(la, la, la), "text", Color(bla, bla, bla), "другой text")
IGS.debug
тоже на нее перевел, а еще добавил логгинг левелы в cvarigs_debug
- Заодно сразу сделал намного более красивые сообщения про наличие обновлений
- И все найденные обычные
IGS.print
поменял наIGS.prints
🔸 debug принты в serv_sv.lua
Зачем? Не знаю. Хотел где-то функцию IGS.debug
применить и насладиться в полной красоте.
Если эти принты утомляют, то в server.cfg
нужно прописать igs_debug 3
🔸 Добавлена возможность указания материала в :SetIcon
:SetIcon("material_path", "material")
– вторым аргументом написано "material", что переключает иконку в режим отображения материала
Раньше можно было только ссылку и модельку, а теперь еще путь к существующему материалу. По сути, не тестировал, потому что негде было 🫣
🔸 Прочие мелочи
- Немного отформатировал код. Пробелы там добавил и все такое
- Добавил еще примеры и полезные ссылки в
sh_additems.lua
- Сделал, чтобы cvar
kupol_logging_level 3
не так сильно мусорил логами - Обновил README, добавил информацию про надоевший
igs-core
пользователей в addons :(
Фиксы debug.getregistry
Full changelog: 221122.1...240600
❗ Обновление
Если IGS установлен правильно (без igs-core в addons):
- Введите в консоль запущенного сервера
igs_flushversion
(илиigsflushversion
для очень старых версий) - Выключите сервер
- Откройте файл
garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua
и замените его содержимое на это
Для версии без автообновления:
Изменения
⚠️ Код подогнан под обновление Garry's Mod, в котором убранdebug.getregistry()
. См. полный ченджлог, если вы использовалиFindMetaTable("IGSItem")
и т.п., потому что изменения могут сломать ваш автодонат. Спасибо команде гмода :(- 🆕 Добавлена консольная команда
igs_info
, которая поможет собрать данные для составления репорта на форуме или в поддержке ГМД - 🆕 Добавлены методы
:SetCanSee(func)
и:CanSee(pl)
вместо:SetHidden(true/false)
. Позволяет делать предметы, которые видят определенные игроки - Команда
addfunds
стала работать более корректно. С ней теперь сложнее сделать неправильный ввод IGS.GetPaymentURL
теперь поддерживает третий аргумент, в котором можно добавить метаданные к платежу. Эти данные потом придут на вебхук черезpushes
модуль (poll.gmod.app
, long polling)- Релизы теперь создаются тегом, а не коммитом с префиксом "RELEASE tag", обновлены uses в action
221122.1
Избавление от псевдовалюты, динамичная цена, загрузчик
❗ Обновление
Если IGS установлен правильно (без igs-core в addons):
- Введите в консоль запущенного сервера
igs_flushversion
(илиigsflushversion
для очень старых версий) - Выключите сервер
- Откройте файл
garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua
и замените его содержимое на это
Для версии без автообновления:
💹 Удален "курс" валюты
IGS больше не поддерживает "курс" валюты, когда за условно 5 рублей игрок получал 1 единицу донат валюты. Этот функционал затрагивал меньше 1% транзакций, но сильно мешал разработке, включая такой метод как :SetGetPrice
, который был добавлен в этой версии.
Этот курс не имел никакого отношения к приему иностранных карт
🏋️ Добавлен важный метод :SetGetPrice
:SetGetPrice
позволяет делать динамичную цену предмета. Например, для випов скидку на премиум, либо автоматические скидки по праздникам.
🚀 Обновлен загрузчик
- Если у игрока проблемы с интернетом и IGS не смог загрузиться с первого раза, то загрузчик попытается скачать его снова и снова.
- Бывает, что провайдеры блокируют сам GitHub. В таких случаях запросы будут выполняться через встроенный прокси.
- В целом загрузчик сильно изменен и решает много возможных проблем самостоятельно, а те, которые решить не может сам – помогает исправлять ссылкой на помощь.
ℹ️ Другие изменения
texture
библиотека от dash заменена наmatex.lua
. Это должно исправить проблему "мыльных" картинок. Также теперь до полной загрузки картинки отображается "заглушка"- 🆕
ITEM:SetSHWhitelist(team_cmd)
позволяет продавать SH Whitelist ITEM:SetMaxPlayerPurchases(iLimit)
теперь не конфликтует с методомITEM:SetCanBuy
- Из методов удалена предустановка
SetCategory
,SetDescription
. Теперь их нужно устанавливать самостоятельно. Это решало какую-то проблему, но я не помню какую - Из кода удален синтаксический сахар (
!, continue, !=, /*
и т.п.), специфичный для glua. Это позволяет сторонним приложениям, вроде luacheck, минификаторам и обфускаторам работать с кодом IGS - concommand
igsverbose
переименована вigs_verbose
- API
IGS.GetPaymentURL
по ненадобности больше не поддерживает параметр description - Удален весь мусор, который связан с использованием
gmsv_luasocket.dll
, который давно использовался для работы мгновенных пополнений. Довольно давно мы перешли на polling misroservice
Full Changelog: 210525.5...221122
Переход на .net, моделька игрока, return в :AddHook
- Переход на .net домен
- Возможность изменить текст над NPC
- Замена ! на not для улучшения работы парсеров и лексеров. continue пока что остался
- plurals либа упрощена (1 рубль, 2 рубля, 5 рублей)
- Внутри
ITEM:AddHook(sHook, fCallback)
return теперь передает значение внешнему хуку ITEM:SetPlayerModel(mdl)
позволяет продавать замену модельки игрока. Пример
Full Changelog: 210525.4...210525.5
210525.4
Score, gift моделька, бесконечные патроны, юзергруппы
Основные изменения
- Популяризация Score - отображение Score игроку после доната и входа на сервер. Мотивация стремиться к высшему. В будущем можно будет сделать топ игроков по Score за неделю например
- IGS_GIFT_MODEL - переменная, которую можно изменить для того, чтобы изменилась моделька гифта при спавне
- ITEM:SetInfAmmo() - метод, который позволяет делать предметы, дающие бесконечные патроны для оружия. Идея отсюда
- Правки invlog - igs_invlog теперь отображает Score игроков возле ника, а также выделяет разными цветами ID предметов, чтобы проще было визуально их отличать
- Отображение null в покупках заменено на uid предмета. null отображался, если предмет был удален с сервера, но еще числился у игрока
- sam, badmin, serverguard сделан рефакторинг, исправлены ошибки, приоритет предмета теперь определяется сам
Полный список
- Release 210525.3 (39396d8d)
- Fix и рефакторинг :SetSAMGroup (1797c869)
- Популяция Score (0dc2babe)
- Изменение отображения null предметов в профиле (54401c24)
- invlog (38323e68)
- Update serverguard.lua (fec90087)
- Update badmin.lua (cafc6f8a)
- item id fix (2e470790)
- ITEM:SetInfAmmo() (6b888616)
- Пересмотрение null итема (d475d261)
- Pre release commit (22c89e6d)
- fix :SetBAdminGroup (a3d24576)
- Хвосты рефакторинга (75e141a7)
- Update sam.lua (5d7915b7)
- typo (a73c6e7c)
- IGS ent_igs model, args (83f24381)
- Readme в igs-core, чтобы не устанавливали в addons (2619784f)
Fix ошибки у новых пользователей
Fix ошибки локальной разработки, xAdmin2, bWhitelist
Большие изменения загрузчика и superfile
Обновление с предыдущей версии:
- Введите в консоль запущенного сервера
igsflushversion
- Выключите сервер
- Откройте файл
garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua
и замените его содержимое на это
Изменения:
Полностью обновлен принцип работы загрузчика. Ранее он при каждом запуске сервера скачивал свежую версию IGS и запускал ее. Теперь при первом запуске он скачивает И сохраняет IGS и все следующие запуски происходят с сохраненной версии. Сам IGS теперь упакован не построчно в формате путь-код, а в json файл без минификации
Мелочи: кнопка "бросить на пол" теперь не отображается для тех, кто отключил дроп с инвентаря. ULX приоритеты теперь корректно устанавливают старшую группу без постоянной "карусели" групп
Проблемы, которые это должно решить:
- В предыдущей версии AddCSLuaFile выполнялся после http.Fetch, что было слишком поздно и конфиги, на которые применялась эта функция просто не подгружались
- Донат NPC на некоторых серверах не отображался, а под ним была просто тень
- В случае возникновения проблем можно будет точно понять, где она произошла (будет указываться корректная строка, а не всегда №1)
Ломающие изменения:
- Формат superfile.txt изменен. Теперь он в json и старая версия загрузчика не понимает его
IGS.CODEMOUNT
переименован вIGS_MOUNT
IGS.Version
переделан вGetConVarString("igs_version")
cookie.GetString("igsversion")
>cookie.GetString("igs_version")
concommand.Add("igsflushversion")
>concommand.Add("igs_flushversion")