Skip to content

Releases: GM-DONATE/IGS

Чучуть рефакторинга, использование материалов в SetIcon, визуальные изменения консольных сообщений

03 Sep 19:51
Compare
Choose a tag to compare

Full changelog: 240600...240600.1

❗ Как обновиться

Только если IGS установлен правильно (без igs-core в addons):

  1. Если у вас igs_version == 240600, то обновление должно произойти автоматически.
  2. Введите в консоль запущенного сервера igs_flushversion
  3. Выключите сервер
  4. Откройте файл garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua и замените его содержимое на это
  5. Включайте сервер

Список изменений:

🔸 Небольшой рефакторинг 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 тоже на нее перевел, а еще добавил логгинг левелы в cvar igs_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

11 Jun 15:51
Compare
Choose a tag to compare

Full changelog: 221122.1...240600

❗ Обновление

Если IGS установлен правильно (без igs-core в addons):

  1. Введите в консоль запущенного сервера igs_flushversion (или igsflushversion для очень старых версий)
  2. Выключите сервер
  3. Откройте файл 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

19 May 18:11
Compare
Choose a tag to compare

Other Changes

Избавление от псевдовалюты, динамичная цена, загрузчик

21 Nov 17:57
Compare
Choose a tag to compare

❗ Обновление

Если IGS установлен правильно (без igs-core в addons):

  1. Введите в консоль запущенного сервера igs_flushversion (или igsflushversion для очень старых версий)
  2. Выключите сервер
  3. Откройте файл 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

19 Jun 18:34
Compare
Choose a tag to compare
  • Переход на .net домен
  • Возможность изменить текст над NPC
  • Замена ! на not для улучшения работы парсеров и лексеров. continue пока что остался
  • plurals либа упрощена (1 рубль, 2 рубля, 5 рублей)
  • Внутри ITEM:AddHook(sHook, fCallback) return теперь передает значение внешнему хуку
  • ITEM:SetPlayerModel(mdl) позволяет продавать замену модельки игрока. Пример

Full Changelog: 210525.4...210525.5

210525.4

01 Mar 17:47
d98b6dd
Compare
Choose a tag to compare

Other Changes


Score, gift моделька, бесконечные патроны, юзергруппы

22 Feb 22:38
Compare
Choose a tag to compare

Основные изменения

  • Популяризация Score - отображение Score игроку после доната и входа на сервер. Мотивация стремиться к высшему. В будущем можно будет сделать топ игроков по Score за неделю например
  • IGS_GIFT_MODEL - переменная, которую можно изменить для того, чтобы изменилась моделька гифта при спавне
  • ITEM:SetInfAmmo() - метод, который позволяет делать предметы, дающие бесконечные патроны для оружия. Идея отсюда
  • Правки invlog - igs_invlog теперь отображает Score игроков возле ника, а также выделяет разными цветами ID предметов, чтобы проще было визуально их отличать
  • Отображение null в покупках заменено на uid предмета. null отображался, если предмет был удален с сервера, но еще числился у игрока
  • sam, badmin, serverguard сделан рефакторинг, исправлены ошибки, приоритет предмета теперь определяется сам

Полный список

Fix ошибки у новых пользователей

20 Sep 00:49
Compare
Choose a tag to compare

Fix ошибки локальной разработки, xAdmin2, bWhitelist

27 Aug 20:20
Compare
Choose a tag to compare

🆕

  • Альтернативный скин в комментариях файла interface/skin.lua (52c0714c)
  • Поддержка xAdmin2 (d9398490)
  • Поддержка bWhitelist (64726f4a)
  • Эксперементальный метод ITEM:AddHook (f993e45e)

🔧

  • Фикс ошибки при локальной разработке (f2b4f2cc)
  • Fix некорректной работы приоритетизации итемов (7eeb2f39)

🌚

  • igsreload > igs_reload (83a4ab6c)
  • Какие-то непонятные изменения. Не помню зачем они (045dd77e)

Большие изменения загрузчика и superfile

25 May 13:41
Compare
Choose a tag to compare

Обновление с предыдущей версии:

  1. Введите в консоль запущенного сервера igsflushversion
  2. Выключите сервер
  3. Откройте файл garrysmod/addons/igs-modification/lua/autorun/l_ingameshopmod.lua и замените его содержимое на это

Изменения:

Полностью обновлен принцип работы загрузчика. Ранее он при каждом запуске сервера скачивал свежую версию IGS и запускал ее. Теперь при первом запуске он скачивает И сохраняет IGS и все следующие запуски происходят с сохраненной версии. Сам IGS теперь упакован не построчно в формате путь-код, а в json файл без минификации

Мелочи: кнопка "бросить на пол" теперь не отображается для тех, кто отключил дроп с инвентаря. ULX приоритеты теперь корректно устанавливают старшую группу без постоянной "карусели" групп

Проблемы, которые это должно решить:

  1. В предыдущей версии AddCSLuaFile выполнялся после http.Fetch, что было слишком поздно и конфиги, на которые применялась эта функция просто не подгружались
  2. Донат NPC на некоторых серверах не отображался, а под ним была просто тень
  3. В случае возникновения проблем можно будет точно понять, где она произошла (будет указываться корректная строка, а не всегда №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")