Ядро плагина Shop Core 2.0.22

Ядро плагина магазина

  1. FrozDark
    Поддерживаемые игры:
    • CS: Source
    • CS: GO
    Основной плагин внутриигрового магазина. Поддержка MySQL, SQLite
    main.jpg
    [13.12.12] - Начало создания плагина

    Версия 1.0 [15.12.12] - Первый выход плагина
    Версия 1.1 [17.12.12] - Увеличена длина буфера и мелкие неисправности
    Версия 1.2 [18.12.12] - Добавлена возможность продавать предметы. Некоторые исправления
    Версия 1.3 [19.12.12] - Значительная оптимизация на базу данных. Исправление ошибок
    Версия 1.3.1 [19.12.12] - Добавлена поддержка для поздней загрузке плагина
    Версия 1.4 [20.12.12] - Значительная оптимизация. Сохранение включенных вещей. Подкорректирована поддержка поздней загрузки. Расширение библиотеки.
    Версия 1.5 [21.12.12] - Устранены утечки памяти. Библиотека изменена и расширена (Требуется обновить модули)
    Версия 1.6 [22.12.12] - Устранены утечки памяти. Библиотека изменена и расширена. Добавлены команды takecredits и setcredits
    Версия 1.7 [23.12.12] - Изменена библиотека. Добавлены нативы. Добавлены забытые нативы UseItem и UseItemId. Возможность вывести в меню дополнительную информацию
    Версия 1.7.1 [24.12.12] - Улучшены последние нативы для удобной работы
    Версия 1.7.2 [26.12.12] - Исправлена одна маленькая ошибка, вводящая в заблуждение модуль Trails
    Версия 1.8 [02.01.13] - Большие изменения в плагине. Изменена библиотека. Добавлены нативы. Исправлены все возможные ошибки. Добавлена возможность мульти-язычного перевода.
    Версия 1.8.1 [02.01.13] - Добавлен multi-targets в командах
    Версия 1.8.2 [03.01.13] - Добавлен вывод кол-во предметов категории в покупке. Поправлен неверный перевод, когда выводилось "Кол-во" вместо "Цена"
    Версия 1.8.3 [03.01.13] - Исправлен баг, который выдавал покупки одного игрока всем
    Версия 1.8.4 [04.01.13] - Добавил бэкап предметов игроков, у которых покупки не были занесены в базу по причине отсутствия соединения
    Версия 1.8.5 [05.01.13] - Теперь UnregisterMe и RemoveItemFromCategory функционируют полностью и утечка памяти (хоть и очень редкая, при выгрузке модуля) устранена. Поправил библиотеку. Исправил натив SetItemSellPrice (выставлял покупаемую цену). Добавил GiveItem и SellItem натив и немного изменил натив SetItemSellPrice
    Версия 1.8.6 [03.03.13] - Выведены все возможные настройки в папку "shop".
    Добавлен иммунитет админов.
    Добавлен натив Shop_ToggleCategoryOff.
    Добавлен натив Shop_IsAdmin.
    Добавлены несколько форвардов
    Добавлен в меню пункт "Панель Администратора" с возможностью редактирования каждого клиента на сервере.
    Добавлена поддержка последнего обновления CS:GO.
    Добавлены ещё 2 пункта в меню (Передача кредитов с комиссией и Испытать удачу)
    Добавлена новая команда для добавления игрока в базу данных.
    Добавлены дополнительные проверки функции.
    Добавлены расширенные настройки.
    Исправлена ошибка с нативом Shop_UnregisterMe. (Рекомендуется обновить модули)
    Исправлены некоторые ошибки в коде и в документации.
    Убрана требуемость натива "GetUserMessageType" (Для sourcemod ниже версии 1.5.0)
    Значительные исправления багов.
    Изменены данные о включенных предметах игроков. (Рекомендуется удалить файл "data/shop.txt")
    Папку Shop с файлами настроек иметь не обязательно!

    Версия 1.8.7 [03.03.13] - Исправлен баг с нативами Shop_UseItem и Shop_UseItemId

    Версия 1.8.8 [03.03.13] - Исправлен баг с файлом database.cfg и если отсутствуют конфигурации базы данных

    Версия 1.9.0 [11.08.13] - Добавлено множество функции такие как: Описание категории и предметов;
    Возможность мультиперевода предметов;
    Возможность передавать предметы от игрока игроку;
    Длительность предмета;
    Доступность предмета определенной команде;

    Добавлено в настройки параметр Database Prefix, где указывается префикс баз данных
    Добавлено в настройки параметр Validate, для включения или отключения ожидания проверки SteamID на кражу аккаунта Steam. Работает если "SteamAuthStringValidation" установлен на "yes" в "configs/core.cfg"
    Добавлено в настройки параметр Item Transfer, для включения или отключения возможности игрокам передавать предметы
    Добавлено в настройки параметр Item Transfer Credits, цена передачи предмета

    Изменено оформление меню

    Изменена библиотека, теперь AddItemToCategory разделена на 3 натива:
    Shop_StartItem;
    Shop_SetItemInfo;
    Shop_SetItemCallbacks;
    Можно устанавливать дополнительную информацию о предмете с помощью:
    Shop_SetItemCustomInfo;
    Shop_SetItemCustomInfoFloat;
    Shop_SetItemCustomInfoString;
    И заканчивать устанавливать параметры предмета нужно с помощью: Shop_EndItem
    Все параметры устанавливаются только после Shop_StartItem и обязательно должны заканчиваться с помощью Shop_EndItem.

    Добавлены нативы для получения дополнительной информации о предмете:
    Shop_GetItemCustomInfo;
    Shop_GetItemCustomInfoFloat;
    Shop_GetItemCustomInfoString;

    Добавлены нативы для добавления функции в меню:
    Shop_AddToFunctionsMenu
    Shop_RemoveFromFunctionsMenu
    Shop_AddToAdminMenu
    Shop_RemoveFromAdminMenu

    Нативы для открытия меню:
    Shop_ShowMainMenu
    Shop_ShowInventory
    Shop_ShowFunctions
    Shop_ShowAdminMenu

    Нативы для получения или установки длительности предмета:
    Shop_GetItemDuration
    Shop_SetItemDuration

    Добавлены форварды:
    Shop_OnItemStarted
    Shop_OnMenuTitle
    Shop_OnItemDisplay
    Shop_OnItemTransfer
    Shop_GetDatabasePrefix

    Версия 1.9.1 [12.08.13] - Исправлен баг с предметами типа Item_Finite, позволяя предметам быть использованы бесконечное кол-во раз

    Версия 1.9.2 [16.08.13] - Исправлен баг с параметром Luck Credits заставляя его быть минимум 1

    Версия 1.9.3 [26.08.13] - Исправлен баг с параметром Credits Tranfser. Не выключал возможность передавать кредиты

    Версия 1.9.4 [05.09.13] - Исправлен баг с параметром Credits Tranfser. Не выключал возможность передавать кредиты

    Версия 1.9.4 [05.09.13] - Исправлен баг с параметром Item Transfer Credits. Не выключал возможность передавать кредиты

    Версия 1.9.5 [27.09.13] - Добавлена команда sm_shop_dump. Для вывода информации о предметах в виде KeyValues
    Добавлена команда shop_save, чтобы сохранить инвентарь не выходя с сервера или не перезагружая карту.
    Цена продажа теперь не может быть выше чем цена покупки.
    Некоторые исправления

    Версия 1.9.6 [04.12.13] - Надеюсь исправил баг с раздвоением аномального предмета
    Исправлен баг с регистрацией предмета несколько раз
    Форвард Shop_OnConnected вызывается теперь 1 раз после загрузки Shop

    Версия 1.9.7 [06.12.13] - Исправлен баг, когда пункт "Дополнительные функции" не отображался в главном меню

    Версия 1.9.8 [10.02.14] - Добавлен натив Shop_ShowCategory

    Версия 1.9.9 [16.02.14] - Добавлен форвард Shop_OnItemLoaded. Вызывается при загрузке предмета игроку из базы данных
    Добавлен форвард Shop_OnItemEquipped. Вызывается, когда игрок включает предмет
    Добавлен форвард Shop_OnItemDequipped. Вызывается, когда игрок выключает предмет
    Добавлен форвард Shop_OnItemElapsed. Глобальный вызов, когда предмет истек
    Добавлен форвард Shop_OnCreditsReceive. Вызывается, когда игрок получает кредиты
    Добавлен форвард Shop_OnItemBuy. Вызывается перед тем, как игрок покупает предмет
    Добавлен натив Shop_GetClientItemDuration. Для получения времени предмета игрока
    Добавлен натив Shop_SetClientItemDuration. Для установки длительности предмета игроку
    Добавлен натив Shop_GetClientItemPrice. Для получения абсолютной цены продажи предмет (У тех, у кого выставляется длительность предмета)
    Испавлен натив Shop_GiveCredits, чтобы возвращал кредиты, которые были выданы игроку

    Версия 1.9.10 [16.02.14] - Вернул кнопку Назад в меню покупок
    Исправлен натив Shop_GetClientItemPrice, который всегда возвращал 0

    Версия 2.0.0 [20.03.14] - Переписание плагина
    Изменение структуры базы данных
    Изменение всех настроек. Настройки из settings.txt перевелись в convars
    Изменение всей библиотеки
    Исправление многочисленных багов. Теперь доступ к предметам происходит по их иденту
    Новый метод передачи кредитов и предметов
    Добавлено несколько больше форвардов
    Добавлена возможность превью предмета
    Добавлен тип предмета BuyOnly. Который не попадает в инвентарь при покупке, а вызывает функцию покупки для модуля.
    Возможность указать 2 метода отсчета. По использованию (по умолчанию) и реальное время.
    Регистрация категории происходит моментально
    Переход с ветки 1.х до 2.х происходит автоматически
    и множество других изменений которые могли быть не внесены в этот список

    Версия 2.0.1 [22.03.14] - Исправлена ошибка при выборе категории
    Исправлено неверное показание количества предметов в категории покупок
    Исправлено передача уникального названия предмета в функции

    Версия 2.0.2 [23.03.14] - Добавлен натив Shop_ShowFunctionsMenu
    Исправлена библиотека

    Версия 2.0.3 [23.03.14] - Исправлен вывод предметов в категории регистрированные несколькими плагинами

    Версия 2.0.4 [23.03.14] - Вызов форварда Shop_OnItemToggled при истечении времени предмета
    Исправлено многочисленный вызов Shop_OnItemToggled при включении предмета

    Версия 2.0.5 [23.03.14] - Исправлена работа с MySQL

    Версия 2.0.6 [23.03.14] - Исправлено бесконечное время действия предметов, истекала при покупке (Метод отсчета - Реальный)
    Исправлена структура keyvalues

    Версия 2.0.7 [24.03.14] - Добавлена переменная sm_shop_start_credits и sm_advenced_shop_version

    Версия 2.0.8 [24.03.14] - Исправлено не запускавшийся таймер для предметов типа None

    Версия 2.0.9 [29.03.14] - Исправлена ошибка с таймерами

    Версия 2.0.10 [30.03.14] - Окончательное решение ошибки с таймером
    Исправлено проблема с ToggleCategoryOff

    Версия 2.0.11 [31.03.14] - Исправлена проблема с предметами Item_Finite
    Добавлены нативы Shop_IsAdmin и Shop_ShowAdminMenu

    Версия 2.0.12 [05.04.14] - Небольшой фикс
    Добавлены нативы Shop_AddToAdminMenu и Shop_RemoveFromAdminMenu
    Немного поправлена библиотека

    Версия 2.0.13 [07.04.14] - Исправлен натив Shop_GetClientCredits, ничего не возвращал при вызове
    Исправлена функция OnItemShouldDisplay

    Версия 2.0.14 [11.04.14] - Исправлена ошибка с испытанием удачи

    Версия 2.0.15 [14.04.14] - Исправлена ошибка с нативом Shop_SetItemSellPrice

    Версия 2.0.16 [18.04.14] - Исправлена баг с комиссией при передачи кредитов
    Добавлен натив Shop_SetClientItemTimeleft

    Версия 2.0.17 [19.04.14] - Убрано восстановление полной продаваемой цены при уменьшении длительности предмета

    Версия 2.0.18 [22.04.14] - Исправлен баг с ценой б/у
    Исправлен баг с информацией о полной длительности предмета
    Добавлен забытый натив в библиотеку Shop_GetItemCategoryId

    Версия 2.0.19 [25.04.14] - Исправлен баг с передачей кредитов больше, чем имеется

    Версия 2.0.20 [11.01.15] - Исправлен баг с методом отсчета времени по использованию. Когда при включенном предмете у игрока сохранялось прежнее время предмета при перезаходе на сервер
    Удалено авто-обновление плагина до смены локации сервера обновлений

    Версия 2.0.21 [31.01.15] - Устранена утечка памяти
    Исправлено неверное очищение бд

    Версия 2.0.22 [04.06.15] - Добавлен натив Shop_GetClientItemCount
    Добавлен параметр by_who в нативы GiveCredits и TakeCredits и соответствующие ему форварды, где указывается кем было выдано или забраны кредиты или вообще не вызывать соответствующий форвард. В связи с этим требуется перекомпилировать плагины использующие эти нативы с актуальными библиотеками этой версии плагина

    Всё благодаря Fallen'у (Плагин: economy)
    Требования:
    Любая игра на движке Source
    Sourcemod 1.3 или выше
    Не обязательно - Updater, чтобы плагин был всегда актуальным

    Модули для ядра. Не обязательно!
    [Shop] Money Distributor - Раздача кредитов за пребывание в игре. Раздача по событиям настроенные вами
    [Shop] Medkit - Аптечка
    [Shop] Trails - Трейлы за игроками
    [Shop] Paintball - Пейнтбол
    [Shop] Speed - Способность-Скорость
    [Shop] Skins - Скины
    [Shop] Equipments - Шапки, маски, очки
    [Shop] Ball - Подарок с кредитами
    [Shop] Nades - Модели гранат
    [Shop] Top10 - Топ 10 богатых игроков
    [Shop] Tracers - Лучи пуль
    [Shop:ZR] Anti-Dote nade - Граната анти-дот для зомби мода
    [Shop:ZR] Infection nade - Заражающая граната для зомби мода
    [Shop] Aura - Дает игрокам возможность купить себе ауру в разделе "Аура".
    [Shop] THC RPG Exchange - Даёт возможность игрокам обменивать кредиты с магазина на кредиты в rpg.
    [Shop] Respawn - Добавляет в раздел "Разное" пункт "Возрождение".
    [Shop] Long Jump - Добавляет в раздел "Способности " пункт "Длинные прыжки".
    [Shop] Chat/Title Color - Титулы и цвета титул и ников
    [Shop] Gravity - Добавляет в раздел "Способности " пункт "Пониженая гравитация"
    [Shop] Smoke Color - Позволяет покупать цвет дыма
    [Shop] Discounts - Скидки на покупку предметов в определенные дни.
    [Shop] CS:GO Trails - Трейлы для CS:GO.
    [Shop] CS:GO Equipments - Шапки, маски, очки для CS:GO
    [Shop] Games - Игры на кредиты вдвоём
    [Shop] CS:GO Knife - возможность покупать скин ножа в CS:GO
    [Shop] Laseraim - позволяет купить лазерный прицел в cs:s
    [Shop] Neon - позволяет купить подсветку
    [Shop] Coin - позволяет купить "монеты"(значки) в CS:GO
    [Shop] Watereffect - позволяет купить брызги воды во время стрельбы
    [Shop] Betting - ставки в игре на кредиты
    [Shop] Weapon Giver - позволяет покупать оружие через магазин
    Переменные:
    Настройки:
    Не обязательно: Чтобы открыть пункт "Информация" в главное меню, создайте файл sourcemod/configs/shop/shop_info.txt с содержимым, которое будет выведено в меню при выборе пункта. К примеру:
    Команды:
    sm_items_dump - серверная команда для дампа предметов в файл addons/items.txt
    Установка:
    1. Распаковать архив в папку sourcemod
    2. Настроить файлы настроек в файле sourcemod/configs/shop/settings.txt - Если требуется
    3. Настроить переменные в файле cfg/shop/shop.cfg - Если требуется
    4. Установить модули (см. пункт Модули ниже)
    Заметка:
    1) Не обязательно, если вы не знаете что это! Настройки подключения к БД с sourcemod файла databases.cfg (Вкладка "shop")
    2) Если пункт 1 не прошел валидность или не настроен вовсе, тогда используется SQLite подключение к базе данных shop