Releases: GM-DONATE/IGS
210316.2
Release 210316.1
Release 210316
Other Changes
🔥🚨 UPD 08.12.2024
(!!!) 2024!!!
Нашел старый gist начала 2020 года, назывался IGS v3 changelog. Решил удалить его с гиста, но увековечить где-то. Так что переношу инфу в этот релиз, хотя этот релиз был создан ПОСЛЕ v3
Обновление
- Скачайте и установите новый igsmodification с панели на сайте
- Замените содержимое нового additems файла прошлым
- Удалите с коллекции старый IGS (или этот) и добавьте новый
Если вы использовали модуль чартов, то его также необходимо обновить
Этого должно быть достаточно, если вы не сильно модифицировали IGS, но если возникают какие-то ошибки, то напишите нам
Визуально:
Новые ITEM:методы():
:SetHidden(bool)
- скрывает предмет из меню. Полезно в комбинации с другими новыми методами:SetItems(tItems)
- предмет, который выдает несколько других. Можно делать наборы со скидкой или продавать паки, например аптечек (саму аптечку при этом можно скрыть, чтобы ее не покупали поодиночке):SetRandom(tItems)
- аналог "рулетки". Активирует случайный предмет:SetMaxGlobalPurchases(iMax)
- ограничивает максимальное глобальное кол-во покупок для предмета:SetXAdminGroup(sGroup)
- поддержка xAdmin:SetBAdminGroup(sGroup, iWeight)
- поддержка bAdmin
Модуль красивых купонов
Позволяет создавать ограниченные купоны с определенным именем. С ними можно отслеживать, например, аудиторию, которая пришла от конкретного блоггера или просто делать красивые праздничные подарки в стиле NEWYEAR2019
Отображение покупок и пополнений счета
Изменения igs_invlog
- 🆕 Поиск по UID предмета
- 🆕 Кнопка деактивации предмета
- 🙉 Теперь отображается имя даже оффлайн игроков
- 🔧 Обновление инвентаря при дропе итема и корректная запись в
igs_invlog
Поведение IGS меню
- Меню можно свернуть кнопкой открытия
- Меню запоминает позицию закрытия меню и восстанавливает там же
- Звуки Иисусьей тряпки заменены приятными звуками взаимодействия с интерфейсом
- Починена вкладка помощи (chatra)
- Немного обновлены иконки
Детали
- Выдача
:SetWeapon()
оружия при спавне по умолчанию (не нужно включать). Также покажется подсказка, как это отключить - Изменен стиль надписи над головой NPC
Под капотом:
Очень много изменений в хуках, методах, названиях функций и порядке их аргументов, которые значительно расширяют и упрощают модификацию автодоната и написание различных модулей.
Обратной совместимости нет, это полноценно новая версия IGS и переход на нее не обязателелен. Поддержка текущей версии будет все еще осуществляется (Рассчетно пол года). Документация по новым методам, хукам и функциям будет позже
Изменен принцип работы :SetGlobal()
Ранее функционал этого метода затрагивал более 20 файлов и был практически невостребован, а некоторые и вовсе использовали его не по назначению.
Новая логика действия более правильна и лаконична. Предметы с :SetGlobal()
будут выданы на каждом из активных серверов проекта вместо того, чтобы являться 1 записью для всех, в том числе, новосозданных серверов
Изменена логика :SetOnActivate()
Ранее этот метод указывал действие, которое выполнится при активации предмета игроком, а также при восстановлении прав, но сейчас только при первой активации предмета игроком.
Если вы используете :SetValidator()
, то замените в тех предметах :SetOnActivate
на :SetInstaller
. SetInstaller
вызывается при активации и восстановлении предмета, как ранее делал :SetOnActivate
Упрощение переезда
Теперь, если вы захотите сменить хостинг или тестируете IGS на локальном сервере, где часто изменяется IP, в панели больше не будут создаваться новые мусорные сервера и не придется разбирать кашу с новыми покупками и слетевшими правами. Вместо этого IGS сам поймет, что у хоста сменился IP и обновит его в панели для существующего сервера
Рефакторинг кода
Включает в себя оптимизацию (хотя IGS и так был очень стабилен) и улучшение общей логики скрипта. Разработчики, которые решатся распаковать IGS, чтобы написать какой-то модуль с радостью обнаружат, что почти любые действия можно сделать в пару строк кода, не модифицируя ядро.
В эту категорию вошло огромное множество изменений, которые невозможно описать в деталях. В категориях изменения выглядят так:
- Нетворк сильно упрощен, появились специальные функции чтения/записи типов, константы-помощники и многое другое. С ним пофиксил и "A net message (IGS.Purchase) is already started", а также полностью переписал функции покупки, активации, выбрасывания итема, да и вообще я там все переписал
- В
getPurchases
иgetTransactions
появились параметры limit (max 255) и offset. В коде есть пример постраничного получения нужного кол-ва транзакций (IGS.GetPlayerTransactionsBypassingLimit
) - Многие функции работы с API изменили свое название или, хотя бы, порядок параметров. То же самое касается вообще любых функций скрипта
- Пара хуков, связанных с SandBox методами сильно переписаны и могут перестать корректно работать (
CanTool
,PlayerSpawnSent
) ui.Create
>uigs.Create
(избавление от конфликтов в коде)ui.NUM
шрифты переименованы вigs.NUM
- Названия родных Derma компонентов IGS изменены
Но еще есть к чему стремиться. Скорее всего, будет v4, с еще большим улучшением подкапотной составляющей
Новинки / улучшения
- Полностью новый apinator с улучшенной и упрощенной очередью запросов, защитой от падения сервера и чистеньким кодом. Кода меньше -- эффективность больше. Подробнее
:SetTerm(0)
предметы (с мгновенным действием) теперь тоже записываются в БД. Мгновенные услуги, вроде денег с:SetTerm(0)
должны быть в паре с:SetStackable(true)
, иначе при повторной покупке (пока игрок не перезайдет) будет "Услуга уже активна"- Debug команда
igsreload
для перезагрузки IGS - На коленке написана
scc
(SimpleChatCommands) библиотека специально для IGS для замены текущей тяжеловесной - Поддержка SimfPhys машин в
:SetVehicle()
:SetDarkRPTeams({})
может принимать команду ("hobo") тимы вместо ENUM (TEAM_HOBO)
Исправления
- Исправлен
:SetDarkRPItem()
("Это для донатеров") - У
:SetULXGroup
починен "вес" группы. Если игрок купил несколько групп, то самая "высокая" не будет сбрасываться - Fix неправильного подсчета уровня, если у игрока 255+ транзакций
- Огромное множество прочих исправлений, о которых вы нам писали
Бонус
После такого значительного улучшения кода, мы планируем выпустить серию модулей, расширяющих возможности автодоната, такие как отправка уведомлений о покупке в телеграм или вк, синтез и проигрование речи о донатах, как на стримах, авторазбан, шапки, аналог patreon и прочие плюшки. Модули будут выкладываться бесплатно в Telegram канале @gmodder