[Shop] Auction

[Shop] Auction 1.3.6

Дата релиза
Последнее обновление
Цена
$6,99

Краткое описание функций

  • Позволяет разыгрывать на сервере предметы
  • Возможность выполнения ркон команд от имени сервера
  • Приз победителю
  • Меню с описанием аукциона
  • Есть минимальные ставки
  • Настраиваемые параметры
  • Интеграция меню аукциона в раздел "функции" магазина
  • Имеет API для разработчиков
Поддерживаемые игры
Counter-Strike: Global Offensive, Counter-Strike: Source

Подробное описание продукта

Аукцион может начинать только администратор.
Участвовать могут все.
Какой игрок сделает самую большую ставку, тот и получит предмет. Аукцион ограничен по времени и по истечению времени, игрок получит указанный в конфиге товар. Также можно ставить количество выдаваемого предмета победителю (зависит от типа предмета)

Если тип предмета: ItemType_Finite - тогда требуется использовать параметр count.
Если тип предмета: ItemType_Togglable - тогда используйте параметр duration.

Команды:
  • sm_auction - зайти в меню аукциона
  • sm_au_admin - открыть админку аукциона (требуется флаг z)
Конфигурация:
PHP:
// Включить уведомление об аукционе по центру в hud
// -
// По-умолчанию: "1"
// Минимум: "0"
// Максимум: "1"
sm_auction_notify "1"

// Показывать аукцион в магазине в разделе функций
// -
// По-умолчанию: "1"
// Минимум: "0"
// Максимум: "1"
sm_auction_showinfunc "1"
Конфиг:
Код:
//   start_sound   - звук после начала аукциона (путь указывайте, начиная с sound/)
//   end_sound   - звук после окончания аукциона (путь указывайте, начиная с sound/)
//   bet_sound   - звук после ставки (путь указывайте, начиная с sound/)
//
//   bet_step     - на сколько кредитов новая ставка должна быть больше прошлой (минимум 1).
//   Например, если текущая ставка 100 кр и bet_step равен 5, то игрок должен поставить не меньше 105 кр, чтобы перебить ставку.
//
//   "AUCTIONS"
//   {
//     "название аукциона на англ"
//     {
//       "name"     "название товара"
//       "rcon_cmd"   "RCON команда, которая будет выполнена. {id} | {name} | {steamid} | {bet} - индекс/имя/steamid/ставка победителя"
//       "bet"     "начальная ставка, минимум 1 кр"
//       "min"     "продолжительность аукциона в минутах"
//
//       Данные параметры не обязательны, их можно опустить
//
//       "category"   "категория предмета, смотрите коде #define CATEGORY"
//       "item"     "уникальное имя предмета, смотрите в коде #define ITEM"
//
//       Выбрать требуется что-то одно. Согласно типу. Если предмет имеет срок использования, тогда duration. Если количество, как аптечка, тогда count.
//       "duration"   "Новое время использования предмета в секундах. -1 выключить"
//       "count"     "Количество выдаваемого предмета. Если предмет имеет тип Finite"
//
//       "add_descr"   "описание товара"
//       "add_descr"   "описание товара - новая строка (не пишите много в одной строке)"
//     }
//     "название аукциона 2"
//     {
//       НАСТРОЙКИ КАК И ВЫШЕ И ТД
//
//       После изменения настроек, команду sm_auction_start "название аукциона" можно использовать сразу, не дожидаясь смены карты
//       sm_auction_end  - остановить/отменить аукцион
//       sm_auction_list - список аукционов, которые можно запускать
//     }
//   }

"shop_auction"
{
   "bet_step"       "10"

   "start_sound"     "shop/lucky.mp3"
   "end_sound"       "shop/lucky.mp3"
   "bet_sound"       "shop/lucky.mp3"

   "AUCTIONS"
   {
     "Medkit"
     {
       "name"     "Аптечка"
       "rcon_cmd"   "sm_slap #{id} 50"
       "bet"     "100"
       "min"     "10"
       "category"   "stuff"
       "item"     "medkit"
       "duration"   "-1"
       "count"     "2"

       "add_descr"   "Победитель аукциона получит аптечку:"
       "add_descr"   " "
       "add_descr"   "Аптечка 1 шт."
       "add_descr"   "Позволяет вам вылечить раны"
     }

     "Chat"
     {
       "name"     "Тест"
       "rcon_cmd"   "sm_say Hello World!"
       "bet"     "100"
       "min"     "1"

       "add_descr"   "Привет мир как дела"
       "add_descr"   " "
       "add_descr"   " "
     }

     "Gut"
     {
       "name"     "Нож с крюком"
       "rcon_cmd"   "sm_say Игрок получил Gut нож"
       "bet"     "100"
       "min"     "1"
       "category"   "knifes"
       "item"     "gut"
       "duration"   "3600"
       "count"     "-1"

       "add_descr"   "Нож с крюком"
       "add_descr"   " "
       "add_descr"   "Теперь резать врагов удобнее"
       "add_descr" "by White Wolf"
     }
   }
}
PHP:
/**
* АУКЦИОН ВОТ-ВОТ НАЧНЕТСЯ
*
* AuctionName   - название аукциона
* ItemName     - название предмета (параметр "name" в shop_auction.txt)
* bet       - начальная ставка
* client     - индекс клиента, запустившего голосование или 0 (rcon)
*
* Plugin_Continue  - разрешить
**/
forward Action SHOP_OnAuctionStart(const char[] AuctionName, const char[] ItemName, int bet, int client);

/**
* АУКЦИОН ЗАВЕРШЕН
*
* AuctionName   - название аукциона
* client     - клиент, который победил или 0 если никто не победил
* AuthId     - SteamID клиента, который побелил, иначе 0
* bet       - ставка, которая победила (если < 1, то победителя нет и client = 0)
* players     - сколько человек участвовало в аукционе
* ByAdmin     - если true, то аукцион остановлен командой sm_auction_end
**/
forward void SHOP_OnAuctionEnd(const char[] AuctionName, int client, const char[] AuthId, int bet, int players, bool ByAdmin);

/**
* ИГРОК ДЕЛАЕТ СТАВКУ
*
* client     - клиент, который сделал ставку, иначе 0
* AuthId     - стим игрока
* bet       - ставка
*
* Plugin_Continue  - разрешить
**/
forward Action SHOP_OnClientBet(int client, const char[] AuthId, int bet);

/* NATIVES */

// Через сколько сек аукцион закончится. Если < 1, то не запущен.
native int SHOP_GetAuctionSec();

// Возвращает ставку игрока, или -1, если он её не делал (или аукцион не запущен)
native int SHOP_GetClientBet(client);

/**
*   Запускает аукцион
*   -
*   @param AuctionName       Название ауциона в конфиге
*   -
*   @return true если аукцион запустился, иначе false
*/
native bool SHOP_StartAuction(const char[] AuctionName);

/**
*   Остановить аукцион
*   -
*   @noparam
*   -
*   @return true если аукцион успешно остановлен, иначе false
*/
native bool SHOP_StopAuction();
Сверху