Обновление 2.0.0

Тема в разделе "VIP", создана пользователем R1KO, 14 июл 2015.

?

Какие типы авторизации нужны

  1. Стим (можно не голосовать он 100 % остается)

    52,5%
  2. IP

    27,5%
  3. Ник

    27,1%
  4. Адмиг-флаги (Отдельным модулем)

    35,4%
  5. Адмиг-группы (Отдельным модулем)

    20,4%
Можно выбрать сразу несколько вариантов.
Статус темы:
Закрыта.
  1. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Версия 2.0.0 будет использовать 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-игроков

    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/forums/index.php?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 фев 2016
  2. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Вопрос №2 Нужно ли обновлять ник игрока в бд при каждом перезаходе или оставить постоянным (какой был при добавлении) ???
     
  3. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Вопрос №3
    В списке вип игроков (в админке) делать как было раньше:
    1. Стим
    2. ип
    3. ник
    При выборе - списки игроков.
    или сделать так:
    1. [STEAM] Игрок1
    2. [STEAM] Игрок2
    3. [IP] Игрок3
    4. [NAME] Игрок4
     
  4. SaInT.P

    SaInT.P

    Сообщения:
    1.270
    Симпатии:
    237
    Вопрос 1, Ответ,Может лучше все что выберут сделать отдельными модулями?
    Вопрос 2, Ответ , обновлять ник мне так кажется
    Вопрос 3, Ответ, лучше так
    1. [STEAM] Игрок1
    2. [STEAM] Игрок2
    3. [IP] Игрок3
    4. [NAME] Игрок4
     
  5. NiGaByte

    NiGaByte

    Сообщения:
    501
    Симпатии:
    84
    1) согласен с SaInT.P, каждую авторизацию на модули, захотел стим, подключил, захотел ник, подключил, и т.д.
    2) сделай квар, если я правильно понял, то обновление нужно если игрок например сменил ник, а авторизация установлена по стиму, то нужно, а если сервер делает авторизацию по нику, то наверное и обновление не нужно. (Ну чувствую что что-то, не да понял.)
    3) Всегда юзал admins.cfg, не пользовался меню, нафиг оно нужно, обнова выйдет, см слетит, поставишь снапшот, а там меню не работает. Другое дело если будет Web-страничка, со всеми причиндалами, но меню не как не хочу юзать.

    А вообще я третьего вопроса не понял, а точнее вот этого:
    Как так? Что это? Меню со списком игроков? Ну ок, тогда почему у них авторизация разная? nie rozumiem
     
  6. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Политика форума No steam = No support. Перестань разводить довольно дыбильные темы, Рико. Даже коню понятно, что следует делать авторизацию только через стим айди. Ну или скопируй с сорсмода и сделай стимайди, айпи и пароль+ник. Два варианта.
     
  7. NiGaByte

    NiGaByte

    Сообщения:
    501
    Симпатии:
    84
    gibs, No steam = No support вроде как отменили.
     
  8. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Ник обновляется только если авторизация по стиму/ип.

    Но есть раздел No-Steam. Я автор, и я имею полное право поддерживать все игры, котрые хочу, в том числе и в34. Не я виновен в том что она сущевствует, что в неё играют и на ней держат серверы. Просто потом начнут писать и просить сделать по ип и прочее.

    Оффтоп

    Скорее всего сделаю стим, а остальное модулями (прийдется продумать еще это...)

    А насчет обновления ника. Так удобно тем что когда игрок заходит под другим ником то в випке он будет уже под ним. Но некоторым лучше чтобы как в сб с админами. Добавил и этот ник остался за ним. Просто не знаю как будет всем удобно.

    А что насчет нового синтаксиса:
    PHP:
    BAILOPAN:
    It is no longer legal to store functions inside arraysThis will be fixed in a future releasebut we will need to introduce a new array type.
     
    Последнее редактирование: 14 июл 2015
  9. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.188
    Симпатии:
    412
    gibs, в правилах ясно написано:
    И где здесь обсуждение nosteam а? Покажи-ка мне пост.
     
  10. vaxa

    vaxa Rock Rulet!

    Сообщения:
    859
    Симпатии:
    102
    R1KO, может стоит подождать,пока какие нибудь умельцы портируют sm 1.7 для старухи?
     
  11. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    vaxa, и что мне это даст?
     
  12. SlavON

    SlavON

    Сообщения:
    418
    Симпатии:
    36
    А почему у них не может быть разной авторизации? По чём добавил по тому и авторизует.
     
  13. vaxa

    vaxa Rock Rulet!

    Сообщения:
    859
    Симпатии:
    102
    R1KO, писать плагины сразу под новый синтаксис,да бы не сидеть на старом =)
     
  14. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    vaxa, я не могу написать вип на новом т.к. он сам не позволяет. Там нельзя приравнивать значения к функциям. Поэтому я не могу даже скомпилить старый синтаксис новым компилятором с новыми функциями получения стима.
    Хотя там кажется варнинги но я очкую что будет работать не корректно.
     
  15. SlavON

    SlavON

    Сообщения:
    418
    Симпатии:
    36
    1. Думаю модули будут лучше. Я кроме стим ид не собираюсь юзать другую авторизацию, на кс го актуально как-то онли стим.
    2. Ну если я добавил по стим ид и ник человек поменял, то думаю конечно надо).
    3. Думаю так само то:
    1. [STEAM] Игрок1
    2. [STEAM] Игрок2
    3. [IP] Игрок3
    4. [NAME] Игрок4
    Если например модуль только стим ид, то просто список без тега.
     
  16. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    А что тут думать. Делаешь форвард какой-нибудь типа "OnClientAuthorized" и пушишь рефы.

    Тут политика твоя не совсем понятна. Если был релиз и это паблик версия, при чём с отдельной веткой на форуме, то где исходники? Ради интереса скачал какой-то модульный плагин - исходника не нашёл. Затем другой, и, прикинь, тоже самое.

    Какой смысл пользователям вообще использовать твой вип плагин, если есть такие же, но с открытыми исходниками как, к примеру, Stumm на ам?

    Оффтоп

    ЗЫ: не нарушай лицензию
     
  17. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Не ко всем модулям есть исходники (только к нескольким их нет) т.к. я не хочу выкладывать сырой код.

    И к ядру так же. Много комментариев для себя и прочей грязи в коде, которая висит, и удалить жалко и заюзать не выходит. Как всё доведу до ума тогда и выложу.
    Исходники же не скрыты прям вообще. Они есть у некоторых скриптеров.

    Я никого не завставляю ничего ставить и использовать.

    Тоесть?
     
    Последнее редактирование: 13 авг 2015
  18. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Если ты делаешь релиз, то какой такой сырой код?

    Ты спросил как сделать модульно авторизацию. Реф (англ. reference) означает ссылку, то-есть пушить в форвард переменные по ссылке, смотря как ты хранишь права в переменных.
    В принципе, всё и так уже придумано. Тот же сорсмод взять с ребилдом. Можно было бы тебе помочь и посоветовать больше, но в релизе исходников увы нету))
     
    Последнее редактирование модератором: 13 авг 2015
  19. R1KO

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

    Сообщения:
    5.972
    Симпатии:
    2.978
    Они не помогут т.к. вся эта часть переписывается.
     
  20. Argonavt

    Argonavt

    Сообщения:
    34
    Симпатии:
    8
    R1KO, а есть уже структура таблиц базы? ее можно посмотреть?
     
Статус темы:
Закрыта.