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 килобайт ) Кол-во скачиваний: 41 2. Готовый магазин на основе Shop API: ShopAPI_0.1_StubPlugin.rar ( 5,45 килобайт ) Кол-во скачиваний: 48 |
Поблагодарили 9 раз
|
|
fl0werD |
22.6.2017, 16:33
Сообщение
|
Код:
#define CHECK_PLAYER(%1,%2) \ это так не работает и воспринимается как if (!((0 < %1) <= %2)), то есть условие (0 < %1) будет или 0, и оно, конечно же меньше %2. |
|
|
|
JIuXeP |
23.6.2017, 15:52
Сообщение
|
|
Код:
#define CHECK_PLAYER(%1,%2) \ это так не работает и воспринимается как if (!((0 < %1) <= %2)), то есть условие (0 < %1) будет или 0, и оно, конечно же меньше %2. чего это? Если возьмешь первую часть выражения в скобки, то конечно, эта часть вернет тебе 1 or 0. Cкрытый текст Код: #include <amxmodx> |
|
|
KaidoRen |
25.6.2017, 19:03
Сообщение
|
|
Изменения версии 1.1.0
ShopAPI1.1.0.rar ( 9,1 килобайт ) Кол-во скачиваний: 16 |
Поблагодарили 2 раз
|
|
KaidoRen |
25.6.2017, 19:06
Сообщение
|
|
Просьба к модераторам заменить в заголовке версию, либо вовсе ее убрать.
|
|
|