Регистрация ника через web Описания:
Система призвана реализовать полноценную идентификацию игроков. Основной и уникальный идентификатор это ник игрока.
Система основана на связке модифицированного форума punBB и amxx плагина посредством SQL.
Благодаря тому что система позволяет однозначно идентифицировать игрока, появляеться возможность борьбы с читерством на новом уровне.
Система заменяет базовый плагин admin.amxx и команды бана из admincmd.amxx.
Главный плагин системы, userreg.amxx, должен быть подключен вместо admin.amxx.
Основные возможности системы:
управление админами на основе групп форума
управление регистрацией пользователей на основе сетей
возможность игры без регистрации из доверяемых сетей до первого наказания
обязательная регистрация из запрещенных сетей
уровни серверов и игроков, игра только если уровень игрока не ниже уровня сервера
кроме бана реализованы 5 вариантов гага
выполнение серверо-зависимого конфига на клиенте
и еще много других фич..
Теперь подробнее…
В системе имеються 2 списка сетей, содержащий адрес и маску. Один список определяет сети из которых регистрация обязательна в любом случае (как правило сети с динамическим адресом). Во втором списке сети, игра из которых разрешена без регистрации (как правило внутренняя сеть провайдра со статической адресацией). Игроки адрес которых не входит ни в одну из сетей могут играть только на серверах без обязательной регистрации.
Понятие уровня
Уровень игрока - субъективная величина отражающая уровень доверия к нему сообщества игроков, или уровень скила на конкретных серверах. Этот уровень выдаеться только вручную админами на форуме. И зависит только от их личного мнения. По идее будет выдаваться голосованием игроков или админов, или после рекомендаций игроков с более высоким уровнем. Влияет на доступ к серверам. По умолчанию у всех 0 уровень.
Соответственно каждый сервер имеет свой уровень. Коннектиться к нему могут только игроки с уровнем таким же или выше. По умолчанию 0.
Такая система позволит разгрузить нагруженные мясные сервера и сделать игру более сбалансированной. Уровень игроков имеющих доступ на сервер будет более менее одинаков. И будет стимул повышать свой скилл, чтобы играть на серверах более высокого уровня.
Режимы
В зависимости от режима работы сервера, система по разному будет предоставлять доступ незарегистрированным/незалогиненным и забаненным игрокам.
Самый простой режим
amx_mode 2 - сервер в режиме обязательной регистрации,
играть на нем смогут только залогинившиеся игроки, или игроки из разрешенной сети.
Дефолтный режим
amx_mode 1 - сервер со свободным доступом
самый сложный режим работы, при котором на сервер из запрещенных сетей могут заходить только зарегистрированные игроки. Все остальные имеют свободный доступ. В этом режиме к незалогинившимся могут применяться различные меры пресечения (приписка к нику, черный экран в режиме спектатора, напоминание о регистрации, принудительный гаг и т.п.)
Свободный режим
amx_mode 0 - он мало чем отличаеться от дефолтного, разве что действия с незарегистрированными производиться не будут.
В этом режиме возможно следуещее: если поставить уровень сервера меньше дефолтного нуля, то на сервер получат доступ абсолютно все. И из запрещенных сетей и забаненные. Также некоторым нерадивым игрокам можно ставить уровень -1, тогда они смогут играть только на таком, “забаненном”, сервере На таком сервере по идее, вообще можно отключить чат из-за матюкальщиков, поставить все возможные античиты и включить очень жесткие автоматические наказания за тим-килл, в идеале вообще DM FFA поставить. И пусть играют те, кто на нормальных серверах не умеет себя вести. (наболело просто)
Регистрация
Возможна регистрация одного ника с одного почтового адреса, не более. Ник должен содержать алфавитно-цифровые символы. Ник типа ‘}%:?:%{’ зарегистрировать не получиться Длина ника не может быть меньше 3 символов. Ник должен начинаться и оканчиваться буквой или цифрой. Естественно ники из символов русского или другого национального алфавита также не допустимы.
Добавлено (29.01.2009, 16:06)
---------------------------------------------
После регистрации для игры на серверах необходимо прописать в конфиге чтото типа такого:
setinfo “_pw” “пароль на форуме”
Самое важное это пароль. Именно он будет использоваться для идентификации при входе любым методом. Если вы разрешили как дополнительную аутентификацию работу по IP или STEAM, то после того как вы корректно вошли под именем и с правильным паролем ваш адрес или идентификатор будут сохранены в базе. Теперь вы можете поменять ник, система проидентифицирует вас по IP или стиму. Если у вас сменился IP, вам достаточно залогиниться под своим именем с нового адреса, а дальше вы можете играть под любым ником.
Кланы
Клановый тег как приписка к нику будет воспринят системой только если он в системе зарегистрирован. Если система знает о клане, то она при идентификации будет его отбрасывать. Разделителем между ником и командным тегом должен быть любой НЕ алфавитно-цифровой символ. В клановом теге желательно иметь не меньше 2-3 алфавитно-цифровых символов.
Баны
В зависимости от того зарегистрирован ли игрок или нет, бан делает следующее:
Если игрок зарегистрирован он просто баниться и кикаеться. Делаеться запись в журнале банов.
Если игрок не зарегистрирован, значит он из разрешенной сети или на сервере со свободным доступом. В таком случае информация о нем никуда не заноситься. Делаеться запись в списке банов. И игрок кикаеться.
Во всех предыдущих случаях IP игрока заноситься в базу запрещенных сетей. То есть если он был из разрешенной сети, то теперь он из запрещенной, и ему для игры необходимо зарегистрироваться.
С одной стороны это дает ему второй шанс. Но для нас куда важнее то, что даже если у него динамический адрес, мы все одно получаем в базу запрещенных адресов IP этого субъекта. Если таких адресов из одной подсети накапливаеться много, то и читаков из такой сети будет меньше. Админ же в ручном режиме может заменить их всех на один адрес сети с более короткой маской. Конечно этот процесс можно и автоматизировать, но это наверно на будущее.
amx_ban <nick or #userid or IP or STEAM_ID> <time> [reason]
система будет искать игрока по любому из параметров.
Гаги
гагов 5 модификаций:
amx_gag - say say_team
amx_gags - say
amx_gagt - say_team
amx_gagv - voice
amx_gaga - voice say say_team
гаги также как и баны будут сохранены в базу, и можно загагать злостного матюкальщика на полгодика к примеру.
amx_gag <nick or #userid or IP or STEAM_ID> [time] [reason]
причина просто для истории, не обязательна.
если же не указать время, то гаг будет дан только до конца этой карты. в базу он не будет сохранен, даже для зарегистрированных пользователей.
И для бана и для гага запись IP адреса игрока в список запрещенных сетей будет произведена только если время наказания указать выше определенного лимита. За мелкие наказания не вижу смысла банить IP какогото нормального клуба или провайдера.
В принципе по главному функционалу все описал.Надеюсь главная цель, усложнить жизнь читерам будет достигнута. Если игрок доигрался с читами до какогото уровня, пускай хоть до первого, и попался, то есть был забанен навсегда, то для того чтобы снова играть под левым ником, ему прийдеться как минимум заиметь мыло, ник, возможно аську, он то с игроками наверно познакомился. И чтобы играть на тех же серверах с высоким скилом, ему по новой прийдеться завоевывать авторитет у игроков, при этом не выдав себя. А если у него статический IP то и его прийдеться сменить, чтобы не быть узнанным. Короче жизнь усложниться многократно.
Добавлено (29.01.2009, 16:06)
---------------------------------------------
Теперь опишу немного фичи которые уже реализовал и которые собираюсь. И опишу немного потенциал системы.
Показ реального имени игрока - при входе игрока, который залогинился по IP, в админку с помощью amx_chat выводиться инфа о реальном нике игрока с форума. Если будет необходимо, добавлю любую информацию об игроке для админов, IP, уровень, рейтинг, все что потребуеться.
Серверо-специфичные конфиги, это пользовательский конфиг предназначенный для определенного сервера. Имеет вид IP.cfg и IP-port.cfg. То есть если вы играете на сервере 192.168.10.56:27016 на котором установлена эта система, то она вызовет на выполнение сначала конфиг 192_168_10_56.cfg, а потом 192_168_10_56-27016.cfg. В основном предназначено для прописывания паролей на сервер, а также для указания специфичных для сервера настроек, биндов и т.д. Выполняеться перед каждой проверкой логина пароля. Возможно стоит сделать одноразово, только при входе на сервер. Насколько востребовано такое будет я не знаю, но идея появилась, а реализация там всего в 5 строк
FadeToBlack черный эран мертвым и спектаторам если есть игроки с одинаковым IP. Возможно добавлю к базе сетей дополнительное поле, в зависимости от которого и будет вешаться черный экран. Настраиваеться. Может быть вообще отключена при компиляции.
gamename - переменная которая определяет что будет выодиться в списке серверов в качестве имени игры. Просто понравилась фича Правда использует модуль fakemeta. Отключаеться по необходимости при компиляции.
Так как я все равно храню много инфы об играющих, то реализация функционала плагина reconnect_feathures дело техники. Тем более я его все равно с пол года назад для себя переделывал. Это думаю включу обязательно. Будет гибко настраиваться.
Полная локализация с языковым файлом. Пока даже не начинал. Буду делать,
Что еще необходимо реализовать до конца, это более широкий и гибкий функционал админа через меню в самой контре и что более востребовано, на форуме. Сейчас, управление админами как группами форума вполне закончено. Хочу реализовать полноценное управление банами, своими, чужими и т.д. Списки сетей пока только выводяться, работа с ними не доделана.
Насколько необходима защита клановых тегов паролями тоже не понятно. Но это на будущее можно и сделать.
У меня уже сейчас есть переделанный работающий плагин резервных слотов, который намного гибче стандартного. К примеру он учитывает реально находящихся админов на сервере и отдает им резервные слоты, при вычислении пускать игрока или сделать ему редирект на следующий сервер.
Также редирект возможен как замена простому кику. Если игрок из запрещенной сети пытаеться зайти на закрытый сервер его не кикает, а просто редиректит на открытый сервер, или если у игрока недостаточный уровень, то он может быть автоматоически отправлен на сервер с более низким уровнем.
Учитывая что есть база, форум и т.д. возможностей открываеться море. К примеру хранение пользовательского конфига в базе. Человек приходит в клуб заходит к нам на сервак, и у него на клиенте автоматом выполняеться его конфиг. И он в клубе никому не мешает и не оставляет следов, и играть может со своими настройками откуда угодно.
Полное упрвление серверными настройками из вебинтерфеса с форума. Некоторые параметры касающиеся самого плагина уже сейчас храняться в базе и беруться оттуда. Можно сделать очень мощный веб-конфигуратор для серверов. Вообще предлагайте любые варианты, а мы обсудим их необходимось и возможность реализации.