Услуги aka итемы в IGS это объекты, наделенные определенными свойствами: выдача денег после активации, установка донат группы, проигрывание какой-то музыки и тд. Примеры таких предметов есть в файле additems_sh.lua вместе с конфигуратором, который скачивается в панели на сайте. Пример сложной конфигурации можно посмотреть здесь
Итемы имеют неограниченные возможности применения: все, что можно прописать в коде - можно сделать при помощи итемов. Когда-то у меня даже была идея транслировать в Twitch 24/7 табло с текстом и через донат можно было указать текст на нем, который видели бы все, кто зашел на трансляцию. И это реально, несмотря на то, что твитч и табло в жизни вообще никак не связаны с гмодом.
В стандартной комплектации IGS имеются самые основные методы. Дополнительные идеи применения IGS я планирую выкладывать в группе GMD в VK и в TLG, поэтому подписывайтесь, чтобы не пропустить ничего интересного.
Устанавливает цену предмета в рублях. Также ее можно устанавливать, указав третьим аргументом в IGS("Название", "uid", цена)
Описание предмета
Срок действия предмета в днях. По умолчанию 0 и это значит, что после перезахода права на предмет исчезнут. Обычно срок не указывают для предметов с одноразовой активацией, например, выдачу денег. Чтобы выдать предмет навсегда, используйте :SetPerma()
Можно ли купить такой же предмет, пока не истек срок действия предыдущего. Если у преджмета :SetTerm(0), то этот метод часто применяется, чтобы игроку не приходилось перезаходить для повторной покупки. Часто применяется для накопительных предметов, например, лимита пропов
Картинка-иконка, которая отобразится рядом с названием на главной странице. Формат 1:1, желательно минимум 100 px. Вместо картинки можно указать путь к игровой модельке, только тогда вторым аргументов укажите true
Позволяет собрать несколько предметов рядом. Например, випы, премиумы, платины в категорию "Донат группы"
Показывает над ценой предмета зачеркнутую указанную, а-ля скидка. По праздникам хорошо увеличивает прибыль
Указывает функцию, которая выполнится, когда игрок активирует предмет. Первым аргументом функции будет сам игрок
Устанавливает ULX группу. Если игрок купит несколько групп, ему будет выдаваться та, у которой выше iGroupWeight
Выдает игровую валюту в режиме DarkRP. Рекомендуется использовать с :SetStackable()
При спавне игроку выдается указанный класс оружия. К примеру :SetWeapon("weapon_frag", {Grenade = 5}) при каждом респавне будет выдавать 5 стандартных гранат. Игрок может отключить выдачу оружия при спавне, сняв галочку "Выдавать при спавне" на странице предмета и сможет брать это оружие прямо со спавнменю при необходимости
Делает лимитированный предмет. После максимального числа покупок он скроется с /donate меню
Примитивный аналог рулетки. Выдаст один из указанных предметов. Принимает таблицу с предметами, а не их UID
Помещает в инвентарь пак предметов. Например, вы не хотите продавать по 1 аптечке, а минимум 5. Создайте :SetHidden() предмет "Аптечка" и 5 раз засуньте его в этот метод. В итоге 1 аптечку в магазине никто не будет видеть, но при покупке 5 они появятся в инвентаре
Нужна ли информация о покупке на клиентсайде? Будет в IGS.PlayerPurchases(pl) и pl:HasPurchase("uid") на клиенте
Ссылка на картинку-баннер товара. Будет отображен под информацией о товаре. Рекомендуемый размер 1000х400
:SetHidden(b)
Скрывает предмет из магазина. Такой предмет нельзя купить, но можно активировать с инвентаря. Полезно, чтобы "удалять" ненужные, но еще активные у людей итемы
fCheck должен вернуть причину (строку), чтобы запретить игроку купить предмет или nil, если все ок
"Установщик" услуги. Выполняется при активации предмета игроком. От :SetOnActivate отличается тем, что это выполняется и при восстановлении услуги, т.е. если :SetValidator вернул false
Если fChecker вернет false, то выполнится :SetInstaller. Обычно применяется для обязательной переустановки услуг после входа игрока. Также используется в донат группах, чтобы проверить, не слетела ли она и если да, то перевыдать
Выделяет заголовок предмета указанным цветом
Выдача доступа к ulx команде, например "ulx model". "^" в качестве тега ограничивает игрока, чтобы он не мог применять команду на других
Выдача групп bAdmin. weight работает по аналогии с :SetULXGroup
Выдача групп xAdmin
Ранг evolve
Ранг FAdmin (админка DarkRP)
При покупке такого предмета он будет выдан на всех активных серверах проекта сразу. Идея: у проекта 3 сервера. Вип на 1 сервере 150 руб, на 3 — 300. Игроку выгодно и он платит больше
Разрешает покупать энтити с F4 меню только тому, у кого есть эта покупка
Разрешает брать указанные работы только тому, у кого есть эта покупка. Тимы указываются через запятую в виде "medic", "hobo" и тд.
Разрешает применять инструмент тулгана. Например "rope" разрешит использовать веревку
Разрешает спавнить энтити с спавнменю
Спавн машин из спавнменю. Simfphys также поддерживаются
Уровни для Leveling System. :SetEXP() по аналогии выдает опыт
Поинты для 2 поинтшопа. Премиум поинты выдаются через :SetPremiumPoints(iAmount)