BlockProfileSteam

Ядро плагина BlockProfileSteam 6.4.4

Версия Дата выпуска Скачивания Оценка  
6.4.4 195 1.00 звёзд 1 оценок Скачать
5.2.1 31 0.00 звёзд 0 оценок Скачать
5.1.3 77 0.00 звёзд 0 оценок Скачать
Добавил каталоги: Configs и Mysql

Configs:
Упрошенный, и легко используемый.
Настройки в Конфигурации


Mysql:
Усложненный, но универсальный для проектов.
Настройки в базе данных.


Также, немного упростил код.
Простое добавление IsValidClient(int iClient) :)
Прощу прощение за то что я долго не выкладывал фикс к плагину,
Я был очень занят учебой, своими серверами, и с сайтом.
Я пофиксил базу данных плагина, а точнее способность его создавать.
Немного очистил код.

Хотел уточнить по поводу ваших комментарии в обсуждении плагина:
1 | Невозможно сразу проверить, работает ли проверка на скрытность профиля
Так как Steam не сразу обновляет свои базы данных. Максимум дня 2 нужно для обновлении
И плагин не будет вас кикать если у вас есть администратор, хоть по времени хоть на скрытность профиля

2 | Комментарии: Dreizehnt

1580422636376.png

Если вы имеете в виду когда проверяется Основная группа, отвечаю: s нужен для того чтобы
KeyValue не считал его как int так как ID группы может быть намного выше придела int где то в районе 2.000.000.000
А в остальном спасибо за замечание что то исправил, конфигурацию добавлю.
А точнее сделаю отдельный плагин. Плагин будет в будущем находится в одной папке с надписью KeyValue
И Mysql

3 | Комментарии: Junkes
1580422960202.png

Ответ: Возможно :)
Добавлю.

4 | Комментарии: ExiteE
1580423061949.png

Ответ: Пока что вручную, позже добавлю команду для добавлении игрока в Белый лист.

5 | Комментарии: Джускаси
1580423236301.png

Ответ: Прочитай с самого начала.
  • Мне нравится
Реакции: ExiteE и Dreizehnt
Маленький фикс в проверки гл.группы игрока,
Оффтоп
Пофиксил ошибку при запуске плагина,
Которую вызывал бот, и сам сервер.

Немного переделал натив BP_GetPrimaryGroup
Чтобы получать Главные группы в профиле, пришлось добавить
В начало цифр букву - s
Так как KV Считает GroupID за Int и выдает максимальное значение - 2 147 483 647

Для одного модуля для данного плагина добавил переменную - sm_bp_groupid
В данном плагине она не требуется.
Если указанная переменная sm_bp_groupid будет совпадать с гл.группой игрока.
То он вернет sXXXXXXXXXXXXXX - Где XXXXXXXXXXXXXX Это GroupID
Простите за такой костыль, если есть идеи, я вас слушаю.
Полностью убрал зависимость от VIP_Core
Позже добавлю отдельно плагин, с участием VIP_Core

Добавил время анти проверки, с-до
И к нему, будет ли включена эта система.

Также добавил пару нативов для будущих модулей
Которые будут предоставлять доступ на сервер
Те же самые LevelRank Keys VIP LK и прочее.
Много есть идей, долго реализовывать.

Вот кстати сами нативы:

C-подобный:
/*  [   Проверяет, какая группа в профиле избранная ]                               */
native int BP_GetPrimaryGroup(int iClient, const char[] idgroup);

/*
    [   Разрешить игроку зайти без проверки ]                             
    Параметр: iClient - Игрок
    Нужно вызывать с помощью [ void OnClientPostAdminCheck() ]
*/
native int BP_GiveAccessProfile(int iClient);


Так же обновите базу данных вот этим запросом:
SQL:
ALTER TABLE blockprofile_config
ADD COLUMN `timeaccess` INTEGER NOT NULL default '1' AFTER `appid`,
ADD COLUMN `timeofffrom` VARCHAR(128) NOT NULL default '6' AFTER `timeaccess`,
ADD COLUMN `timeoffto` VARCHAR(128) NOT NULL default '12' AFTER `timeofffrom`;

Добавлены команды для настройки времени и его работы:
1 | sm_bp_timeaccess - 1 Активно, 0 Неактивно
2 | sm_bp_timefrom - С какого времени можно заходить - От 0 до 23
3 | sm_bp_timeto - До какого времени можно заходить - От 0 до 23
1 | Немного изменил и пофиксил код,
2 | Подготовил плагин к использованию им другими плагинами.
3 | Добавил файл для быстрой манипуляции с переводом - BlockProfileSteam.phrases,
4 | Добавил 2 натива:

C-подобный:
/*    [     Добавляет определенного игрока в базу данных антипроверки ]  */

native int BP_AddUserAccessList(int iClient);

/*  [   Есть ли игрок в базе данных антипроверки? - Да, вернет true, нет false ] */

native bool BP_IsCheckAccess(int iClient);
Так же обязательно выполните запрос Mysql:
SQL:
ALTER TABLE blockprofile_player DROP COLUMN access;

И я заметил что у некоторых есть проблемы с настройкой плагина,
Вот вам рекомендованные настройки:

C-подобный:
sm_bp_active 1
sm_bp_lvlsteam 0
sm_bp_numvacmax 3
sm_bp_numplaying 100
sm_bp_numlastban 300
sm_bp_createprofile 100
sm_bp_stats 3
Пофиксил тему с VAC, если у игрока нету VAC
То плагин считал что ему выдали вак, и считал его дни с момента VAC

Так же я выяснил, что если у игрока лвл равен нулю
Или аккаунт не активен - Нет купленных игр на 500 (Вроде) рублей.
То вся информация о играх на его аккаунте будет равна нулю.

Так же обновите свою базу данных вот этим запросом:

SQL:
ALTER TABLE blockprofile_config
ADD COLUMN `lvlsteam` INTEGER NOT NULL default '6' AFTER `appid`;

Добавил команды для более удобной настройки:

C-подобный:
1 | sm_bp_active - 1 Кикать, 0 Нечего не делать
2 | sm_bp_appid - ID Игры
3 | sm_bp_lvlsteam - Минимальный LVL для допуска
4 | sm_bp_numvacmax - Максимальное количество VACBans
5 | sm_bp_numplaying - Минимальное количество часов требуемого для входа на сервер
6 | sm_bp_numlastban - Минимальное количество дней с последнего VACBan
7 | sm_bp_createprofile - Минимальное количество дней с создания аккаунта
8 | sm_bp_stats - 1 Скрыт, 2 Скрыт , 3 Открытый
9 | sm_bp_token - Ваш токен

И добавил новый натив LVLSteam:

C-подобный:
/*  [   Вернет: LVL Профиля стима игрока ]  */
native int BP_GetLVLSteam(int iClient);
Вроде решил проблему с скрытым профилем.
Пофиксил проблему - Скрытый профиль
Пофиксил проблему - VIP

Добавил новые Native-вы


C-подобный:
/*  [   Отправка запроса: Сколько наиграл клиент в указаной вами игре - appid ]     */
native int BP_SendCallPlayingGameAppId(int iClient, const char[] appid);
/*  [   Получение запроса: Сколько наиграл клиент в указаной вами игре - appid ]       */
native int BP_GetCallPlayingGameAppId(int iClient, const char[] timeminute);

/*   
    [    Одним нативом получаем сколько наиграл игрок в опр.игре ]                   
    Параметр: appid - ID Игры
    Параметр: time - Количество минут
    Используйте поочередно.

    Пример:

    public Action test(iClient, args)
    {
        char s1[64];
        char s2[64];
        BP_GetFullInfoPlayingGame(iClient, "730", s1);
        PrintToConsole(s1);
        BP_GetFullInfoPlayingGame(iClient, "4000", s2);
        PrintToConsole(s2);
    }
*/
native int BP_GetFullInfoPlayingGame(int iClient, const char[] appid, const char[] time);
Сверху Снизу