Иконка ресурса

Players Country Checker 1.1

MODER DEV

Участник
Сообщения
10
Реакции
7
  • Автор ресурса
  • #1
MODER DEV добавил(а) новый ресурс:

Players Country Checker - контроль доступа на сервер по странам

Плагин помогает администраторам игровых серверов ограничивать вход игроков в зависимости от их страны.

Основные функции:
Геофильтрация – автоматически определяет страну игрока по IP и проверяет доступ.
Вайтлист SteamID – Список STEAM ID которые не проверяются плагином.
Автокик – игроки из запрещённых стран не заходят на сервер.

Конфиги:
Список стран: addons/sourcemod/data/Players_Country_Checker/allowed_countries.txt
Белый лист ...

Узнать больше об этом ресурсе...
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,524
Реакции
4,985
когда-то что-то подобное на AM видел, емнип

OnPluginEnd() в плагине не нужно (хэндлы SM удаляет автоматически при выгрузке плагина, который их создал).

Вместо OnClientPutInServer() лучше всё же использовать OnClientAuthorized() (и тогда таймер не нужно будет вызывать).
Сообщения автоматически склеены:

Ну и проверка IsFakeClient() в таймере без надобности: игрок не может стать ботом без изменения UserId.
Сообщения автоматически склеены:

Ну и при проверке кода страны надо бы ещё проверить не был ли игрок в одной локалке с сервером (тогда его код страны тоже нельзя получить ^_^).
Сообщения автоматически склеены:

И ещё, для хранения IP достаточно переменной в 16 ячеек: 4 блока по 3 цифры, три точки и 0 для завершения строки. =)
Сообщения автоматически склеены:

Кроме того натив GetClientIP() обрезает порт по умолчанию:
C-подобный:
/**
 * Retrieves a client's IP address.
 *
 * @param client        Player index.
 * @param ip            Buffer to store the client's ip address.
 * @param maxlen        Maximum length of string buffer (includes NULL terminator).
 * @param remport       Remove client's port from the ip string (true by default).
 * @return              True on success, false otherwise.
 * @error               If the client is not connected or the index is invalid.
 */
native bool GetClientIP(int client, char[] ip, int maxlen, bool remport=true);
 
Последнее редактирование:
Сверху Снизу