Shop API v0.1 |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Shop API v0.1 |
KaidoRen
|
22.6.2017, 7:29
Сообщение
|
![]() |
Автор: Kaido Ren
Версия: 0.1 Благодарности:
Описание: Это достаточно функциональная система создания магазина с возможностью почти полного контроля над его предметами (почти потому что версия еще только первая и функционал будет увеличиваться исходя из ваших пожеланий и моих недофантазий). Функционал позволяет добавлять, изменять и удалять предметы, имеет весьма удобные события о которых узнаете чуть ниже, возможность при необходимых условиях давать игрокам скидки, запрещать покупку и т.д. Доступные функции: "Подробнее..." shop_set_title - изменение заголовка меню. shop_register_openmenu - отлов открытия меню игроком. shop_push_item - добавление предмета. shop_remove_item - удаление предмета. shop_set_prop - изменение предмета. shop_user_remove_item - удаление предмета из инвентаря игрока, если предмет указан как "сохраняемый". shop_has_user_item - проверка на существование предмета в инвентаре игрока. Возможности и события: "Подробнее..." Обработчик предмета (предметов, если обработчик у всех одинаковый) принимает несколько возможных событий:
Примеры: "Добавление и покупка предмета (основной пример)" Подключим include shopapi: Код: #include <shopapi> Создадим переменную которая будет содержать идентификатор предмета Код: new ShopItem: gl_iGravity; В plugin_init создадим предмет - Гравитация Код: public plugin_init() {"Для справки"
Добавим в plugin_init также регистрацию события смерти игрока, чтобы удалить в нем предмет из инвентаря игрока. То есть грубо говоря предмет можно будет купить один раз за жизнь Код: public plugin_init() {Добавим обработчик предмета Код: public CommonHandler(const this, const ShopEvents: event, const ShopItem: item, const itemname[], const price, const duration, const access, const durationleft) {Удалим предмет из инвентаря игрока после его смерти Код: public CBase_PlayerKilled_Post(const this) {"Скидка для администраторов" Используя функцию shop_register_openmenu в plugin_init зарегистрируем событие открытия меню Код: public plugin_init() {В обработчике при необходимом нам условии выдаем скидку игроку с помощью RETURN_SHOP_DISCOUNT Код: public ShopOpenMenuHandler(const this) {"Ограничение предмета по времени" Добавим ограничение по времени для предмета "Гравитация" из первого примера, для этого укажем в параметр duration время в секундах, например 10 Код: public plugin_init() {Изменим обработчик, добавив новые события Код: public CommonHandler(const this, const ShopEvents: event, const ShopItem: item, const itemname[], const price, const duration, const access, const durationleft) {Что из этого вышло ![]() Прикрепляю два архива: 1. Сам ShopAPI:
ShopAPI_0.1.rar ( 4,37 килобайт )
Кол-во скачиваний: 422. Готовый магазин на основе Shop API:
ShopAPI_0.1_StubPlugin.rar ( 5,45 килобайт )
Кол-во скачиваний: 49 |
Поблагодарили 9 раз
|
|
KaidoRen
|
25.6.2017, 19:03
Сообщение
|
![]() |
Изменения версии 1.1.0
ShopAPI1.1.0.rar ( 9,1 килобайт )
Кол-во скачиваний: 16 |
Поблагодарили 2 раз
|
|
KaidoRen
|
25.6.2017, 19:06
Сообщение
|
![]() |
Просьба к модераторам заменить в заголовке версию, либо вовсе ее убрать.
|
|
|
|
![]() ![]() |