Добавил каталоги: Configs и Mysql
Configs:
Упрошенный, и легко используемый.
Настройки в Конфигурации
Mysql:
Усложненный, но универсальный для проектов.
Настройки в базе данных.
Также, немного упростил код.
Прощу прощение за то что я долго не выкладывал фикс к плагину,
Я был очень занят учебой, своими серверами, и с сайтом.
Я пофиксил базу данных плагина, а точнее способность его создавать.
Немного очистил код.
Хотел уточнить по поводу ваших комментарии в обсуждении плагина:
1 | Невозможно сразу проверить, работает ли проверка на скрытность профиля
Так как Steam не сразу обновляет свои базы данных. Максимум дня 2 нужно для обновлении
И плагин не будет вас кикать если у вас есть администратор, хоть по времени хоть на скрытность профиля
2 | Комментарии: Dreizehnt
![]()
Если вы имеете в виду когда проверяется Основная группа, отвечаю: s нужен для того чтобы
KeyValue не считал его как int так как ID группы может быть намного выше придела int где то в районе 2.000.000.000
А в остальном спасибо за замечание что то исправил, конфигурацию добавлю.
А точнее сделаю отдельный плагин. Плагин будет в будущем находится в одной папке с надписью KeyValue
И Mysql
3 | Комментарии: Junkes
![]()
Ответ: Возможно :)
Добавлю.
4 | Комментарии: ExiteE
![]()
Ответ: Пока что вручную, позже добавлю команду для добавлении игрока в Белый лист.
5 | Комментарии: Джускаси
![]()
Ответ: Прочитай с самого начала.
Маленький фикс в проверки гл.группы игрока,
ОффтопАдминистраторы простите что так много обновлении дела)
Пофиксил ошибку при запуске плагина,
Которую вызывал бот, и сам сервер.
Немного переделал натив 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 натива:
Так же обязательно выполните запрос Mysql:C-подобный:/* [ Добавляет определенного игрока в базу данных антипроверки ] */ native int BP_AddUserAccessList(int iClient); /* [ Есть ли игрок в базе данных антипроверки? - Да, вернет true, нет false ] */ native bool BP_IsCheckAccess(int iClient);
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);