[VIP] Core 2.0.0 R

Тема в разделе "Ядро", создана пользователем R1KO, 2 фев 2016.

Статус темы:
Закрыта.
  1. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.982
    Симпатии:
    2.983
    [VIP] Core

    Текущая версия: 2.0.0 R


    Описание:
    Плагин позволяет выдавать игрокам VIP-статус навсегда или на определенный срок. Учитывая модульную систему плагина вы всегда имеете возможность расширить функционал плагина.
    Плагин очень гибкий и удобный в настройке.

    Плагин использует SQL/MySQL базу.

    Для использования MySQL в databases.cfg прописать:
    Код:
    "vip"
    {
        "driver"        "mysql"
        "host"            "ip"        // ip сервера где находится ваш mysql
        "database"        "vip"        // название базы данных
        "user"            "root"        // имя пользователя базы данных
        "pass"            "pass"        // пароль для этого пользователя
    }
    
    Структура БД (Это не нужно выполнять, предоставлен только в ознакомительных целях!):
    PHP:
    if (g_bDBMySQL)
        {
            
    SQL_TQuery(g_hDatabaseSQL_Callback_ErrorCheck,    "CREATE TABLE IF NOT EXISTS `vip_users` (\
                                                                            `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, \
                                                                            `auth` VARCHAR(64) UNIQUE NULL default NULL, \
                                                                            `name` VARCHAR(64) NOT NULL default 'unknown', \
                                                                            `auth_type` TINYINT(2) UNSIGNED NOT NULL default '0', \
                                                                            `pass_key` VARCHAR(64) default NULL, \
                                                                            `password` VARCHAR(64) default NULL, \
                                                                            PRIMARY KEY (`id`), \
                                                                            UNIQUE KEY `auth_id` (`auth`)) ENGINE=InnoDB default CHARSET=utf8 AUTO_INCREMENT=1;"
    );

            
    SQL_TQuery(g_hDatabaseSQL_Callback_ErrorCheck,    "CREATE TABLE IF NOT EXISTS `vip_overrides` (\
                                                                            `user_id` INT(10) UNSIGNED NOT NULL, \
                                                                            `server_id` INT(10) UNSIGNED NOT NULL, \
                                                                            `group` VARCHAR(64) default NULL, \
                                                                            `expires` INT(10) UNSIGNED NOT NULL default '0', \
                                                                            PRIMARY KEY (`user_id`, `server_id`), \
                                                                            UNIQUE KEY `user_id` (`user_id`, `server_id`), \
                                                                            CONSTRAINT `vip_overrides_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `vip_users` (`id`)  ON DELETE CASCADE ON UPDATE CASCADE\
                                                                            ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
    );
        }
        else
        {
            
    SQL_TQuery(g_hDatabaseSQL_Callback_ErrorCheck,    "CREATE TABLE IF NOT EXISTS `vip_users` (\
                                                                            `id` INTEGER PRIMARY KEY AUTOINCREMENT, \
                                                                            `auth` VARCHAR(32) UNIQUE NULL default NULL, \
                                                                            `name` VARCHAR(64) NOT NULL default 'unknown', \
                                                                            `ip` VARCHAR(32) default NULL, \
                                                                            `auth_type` INTEGER UNSIGNED NOT NULL default '0', \
                                                                            `pass_key` VARCHAR(64) default NULL, \
                                                                            `password` VARCHAR(64) default NULL, \
                                                                            `group` VARCHAR(64) default NULL, \
                                                                            `expires` INTEGER UNSIGNED NOT NULL default '0');"
    );
        }


    Как перевести старых випов на новую випку -> Портирование VIP-игроков

    Подробнее об установке и настройке -> F.A.Q.

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Видео инструкция (Кликабельно)

    Все файлы сохраняйте в кодировке UTF-8 Без BOM Редактором notepad++


    Настраивается в addons/sourcemod/data/vip/info/:
    expired_info.txt - Файл с информацией о истекшем VIP-статусе
    no_access_info.txt - Файл с информацией об отсутствии VIP-статуса

    Зависит от sm_vip_info_show_mode
    Если равно 0:
    Код:
    Вывод будет происходить построчно в чат.
    Цвета:
    {DEFAULT} - золотой
    {LIGHTGREEN} - салатовый
    {GREEN} - зеленый
    HTML цвета, например: #FFFFAA
    Если равно 1:
    Код:
    Выводится будет построчно в меню.
    Если равно 2:
    Код:
    Необходимо просто указывать ссылку на страницу, которую необходимо открыть.
    Например:
    http://mysite.com/vip_noaccess.html

    Настраивается в addons/sourcemod/data/vip/cfg/sort_menu.ini
    Вписываете в нужно порядке уникальные имена ф-й и подменю.
    Пример:
    Код:
    HP
    Armor
    Money
    Speed
    
    Всё что не вписано в данный файл будет идти поле отсортированых пунктов в случайном порядке.

    В группах секции отсутствуют.
    Каждый ключ – это имя группы.
    Параметры в ней такие же как и в индивидуальных правах.

    Код:
    "VIP_GROUPS"
    {
        "vip1" // Имя группы
        {
            // Параметры
            "HP"            "120"    // Сколько хп будет при спавне
            "Armor"            "100"    // Сколько брони будет при спавне
            "Money"            "16000"    // Сколько денег будет при спавне
            "QuickDefuse"    "1"        // Включает опцию быстрого дефуза
            "Speed"            "1.3"    // Дает установленную скорость (1.0 - норма)
            "RegenHP"        "5"        // Сколько едениц хп в секунду будет восстанавливаться
            "RegenArmor"    "5"        // Сколько едениц брони в секунду будет восстанавливаться
        }
    
        "vip2" // Имя группы
        {
            // Параметры
            "HP"            "120"    // Сколько хп будет при спавне
            "Speed"            "1.3"    // Дает установленную скорость (1.0 - норма)
            "RegenHP"        "5"        // Сколько едениц хп в секунду будет восстанавливаться
            "RegenArmor"    "5"        // Сколько едениц брони в секунду будет восстанавливаться
        }
    } 

    Код:
    "TIMES"
    {
        "0"    // Время в секундах
        {
            "ru"    "Навсегда"    // Отображение в меню
            "en"    "Permanent"    // Отображение в меню
        }
    
        "3600"    // Время в секундах
        {
            "ru"    "1 Час"    // Отображение в меню
        }
    
        "86400"    // Время в секундах
        {
            "ru"    "1 Сутки"    // Отображение в меню
        }
    
        "604800"    // Время в секундах
        {
            "ru"    "1 Неделя"    // Отображение в меню
        }
    
        "2592000"    // Время в секундах
        {
            "ru"    "1 Месяц"    // Отображение в меню
        }
    
        "15552000"    // Время в секундах
        {
            "ru"    "6 Месяцев"    // Отображение в меню
        }
    }

    Для сортировки пунктов админ меню в addons/sourcemod/configs/adminmenu_sorting.txt добавьте
    Код:
        "vip_admin"
        {
            "item"        "add_vip"
            "item"        "edit_vip"
            "item"        "del_vip"
            "item"        "list_vip"
            "item"        "reload_vip_players"
            "item"        "reload_vip_cfg"
        }

    Все команды работают в чате через ![/B] и /

    Команды вызова VIP-меню:
    • vip
    • vipmenu
    • sm_vip
    • sm_vipmenu
    • мшз

    Команды перезагрузки списока VIP-игроков
    • sm_vip_reload
    • sm_reload_vip

    Команды перезагрузки конфигов
    • sm_vip_reload_cfg
    • sm_vip_cfg_reload
    • sm_reload_vip_cfg

    Команда для удаления VIP-игроков:
    sm_delvip <идентификатор>

    Индентификатором может быть: стим, ник, айпи, админ-флаги, админ-группа.

    Команда для добавления VIP-игроков:

    sm_addvip <identity type> <name|#userid|identity> [time] [group]

    <identity type> это метод идентификации: <steam>, <ip>, <name>, <flags>, <group>.
    <name|#userid|identity> это идентификатор ник или юзер айди если игрок на сервере, иначе либо стим/ип/ник либо админ-флаги/админ-группа.
    [time] - время в еденицах указанных в конфиге vip_core.cfg (Смотрите внимательно sm_vip_time_mode)
    [group] - VIP-группа.

    Берите все параметры в кавычки "

    СПИСОК МОДУЛЕЙ

    Changelog:
    Код:
    Обновление 2.0.0 DEV - 16.07.2015:
    Сделано удаление VIP-игроков консольной командой.
    Исправлена работа MySQL.
    Исправлены и оптимизированы запросы создания таблиц (спасибо Argonavt и Onotole).
    Проведено первичное тестирование всего сделанного.
    Исправлена ошибка Client 1 is not VIP (Спасибо September за тестирование).
    Мелкие коррекции кода.
    
    Обновление 2.0.0 DEV - 6.09.2015:
    Переработано добавление VIP-игроков. Теперь перед добавлением игрока он не создается повторно, а проверяется его сущевствование.
    Исправлены некоторые баги.
    Изменена структура бд.
    Изменен запрос выборки игрока.
    Для устранения путаницы в версию плагина вставлена дата обновления.
    Начал перерабатывать список VIP-игроков.
    
    Обновление 2.0.0 DEV - 25.09.2015:
    Полностью переведен на работу с SQL/MySQL
    Исправлены некоторые баги.
    Исправлена ошибка SQL_Callback_OnVIPClientAdded: Unknown column 'expires' in 'field list'
    Исправлена ошибка SQL_Callback_ErrorCheck: Duplicate key name 'auth'
    Переработан список VIP-игроков.
    Добавлено несколько нативов, исправлены старые.
    
    Обновление 2.0.0 DEV - 13.10.2015:
    Исправлено отсутствие сообщение при добавлении VIP-игрока
    Почистил код от не нужных переменных
    Исправлен перевод
    Исправлена работа некоторых нативов
    Исправлена работа переменной sm_vip_server_id
    Добавлены нативы:
    VIP_GetClientPassword
    VIP_SetClientPassword
    VIP_UnregisterFeature
    Отключен дебаг
    
    Обновление 2.0.0 DEV - 15.10.2015:
    Исправлен баг http://hlmod.ru/threads/%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-2-0-0.30261/page-7#post-216002
    Попытался исправить проблему с кодировкой.
    
    Обновление 2.0.0 R - 02.02.2016:
    Релиз
    Исправлены ошибки:
    [SM] Native "GetClientTeam" reported: Client 16 is not in game
    [SM] Native "PrintToChat" reported: Client index 0 is invalid (SQL_Callback_OnVIPClientAdded())
    

    Обо всех проблемах писать СЮДА.
    Все предложения по улучшению и идеи для модулей писать СЮДА.


    Благодарности:
    Хочу выразить огромную благодарность всем, кто меня вдохновлял и помогал тестировать.
    Отдельное спасибо:
    The Night Fury - за перевод на немецкий и исправление английского
    FrozDark, Reiko1231 - за помощь в решении ошибок и консультации
    Andy Freeman - за тестирование и перевод на финский.
    максимка27, hanson, Sam_Fisher, komashchenko, Александр Радаев, pokypka20, Razor - за тестирование
    Кого не написал - не обижайтесь, я искреннее благодарен, просто не всех сразу вспомнил и нашел.


    Для благодарностей:
    Многие подумают что я наглею, я не требую что либо мне платить, но я трачу много своего времени и сил на этот плагин. А мог бы потратить на приватные плагины, за которые получу плату. Поэтому если кто-то хочет выразить благодарность в материальном виде:

    [​IMG]

    R408894298752
    U503894224829


    [​IMG]

    41001661357845
     

    Вложения:

    Последнее редактирование: 3 мар 2016
    Samoletik1337, MOHAX, san911 и 13 другим нравится это.
Статус темы:
Закрыта.