Q: Как использовать AdminMOD?
A: Основная команда
setinfo "pw-whatever" "yourpasswordhere"
Параметры "pw-whatever" (ключ сервера) и "yourpasswordhere" (пароль) вам должен был дать админ сервера.
Строка "setinfo" устанавливает пароль доступа к Admin Mod. Это надо сделать ДО того, как вы зайдете на сервер, иначе у вас ничего не получится. Ваш ник резервируется исходя из этой информации. На сервере нет свободных слотов, а к зарезервированному без пароля доступ получить нельзя. Что для этого надо сделать?
Метод №1: Добавьте это строку в ваш autoexec.cfg в папке /CStrike (откройте autoexec.cfg любым текстовым редактором и в конце добавьте ТОЧНО ТАКУЮ строку, которую вам дал админ сервера). Теперь эта строка будет автоматически вводиться, когда вы будете заходить на сервер.
Метод №2: Создайте текстовый файл и назовите его как-нибудь, типа adminpass.cfg. В нем может содержаться следующее:
setinfo "pw-whatever" "yourpasswordhere"
developer 1
echo AdminMod password has been accepted
developer 0
Сохраните этот файл в папке /CStrike. А теперь откройте ваш autoexec.cfg в той же папке и добавьте:
exec adminpass.cfg
Вы можете спросить, зачем создавать еще один конфиг? На этот счет есть объяснения из области безопасности: Когда вы заходите на сервер с Admin Mod’ом, он принимает пароль, а затем выкидывает информацию о нем из вашего окружения, чтобы она не была видна некоторым злонамеренным игрокам, которые могут, к примеру, создать демку вашей игры, открыть ее в текстовом редакторе и увидеть такую строку:
setinfo "pw-whatever" "yourpasswordhere"
Если же вы находитесь на сервере, на котором не запущен Admin Mod, эта строка не выкидывается и остается в вашем окружении. Кто-нибудь может записать демку, как описано выше, и, открыв ее текстовым редактором, получить пароль. Или админ этого сервера введет:
rcon user
При этом он увидит строку setinfo "pw-whatever" "yourpasswordhere". А зная ее, на сервере, на котором вы являетесь админом, можно запросто делать все, что угодно, а это сильно подпортит вам репутацию.
Как этого избежать? Есть, по крайней мере, два варианта. Оба они подразумевают наличие строки setinfo "pw-barracks" "yourpasswordhere" в отдельном конфиге (как было предложено выше), а не в autoexec.cfg:
Метод №1: Перед тем, как соединяться с сервером, который вы собираетесь администрировать, наберите в консоли
exec adminpass.cfg
а только потом соединяйтесь. Вы получаете доступ, а информация с паролем выкидывается из окружения. Если вы соединяетесь с другим сервером, просто не набирайте "exec adminpass.cfg".
Метод №1: Если вы пользуетесь программой GameSpy, можно связать файл adminpass.cfg с сервером, который вы администрируете и тогда он будет выполняться, только если вы соединяетесь именно с этим сервером. Для этого:
- Вызовите список серверов;
- Правый клик на названии вашего сервера с Admin Mod’ом;
- Выберите меню "Properties";
- В поле рядом с "Custom CFG:" введите "adminpass.cfg" (без кавычек!);
- Нажмите "OK".
Теперь каждый раз, когда вы будете соединяться с вашим сервером через GameSpy, будет выполняться adminpass.cfg и таким образом вы будете получать доступ.
--------------------------------------------------------------------------------
Q: Как вводить клиентский пароль?
A: Итак, ниже подразумевается две вещи. Во-первых, ваш пароль "somePassWord", и вам надо изменить его на тот, который вам даст админ сервера. Во-вторых, пароль "password-key" использует сервер. А "pw-admin" - это ключ, и вы заменяете его на то, что даст вам админ сервера. Добавьте следующие строки в ваш autoexec.cfg в папке /Cstrike на клиентской машине:
setinfo "pw-admin" "somePassWord"
setinfo "rconpassword" "dummyentry"
Если файла autoexec.cfg еще нет, создайте его.Теперь все должно быть так, как надо. Уже в игре вы вводите пароль админа:
admin_password "somePassWord"
Если вы отсоединитесь от сервера, а потом снова захотите соединиться, введите в консоли либо:
setinfo "pw-admin" "somePassWord"
либо
exec autoexec.cfg
--------------------------------------------------------------------------------
Q: Как удалить Admin Mod?
A: Откройте файл liblist.gam (в папке /CStrike) и измените:
gamedll "dlls\admin.dll"
на
gamedll "dlls\mp.dll"
--------------------------------------------------------------------------------
Q: Как зарезервировать название моего клана?
A: Вам придется использовать "regexp". Это специальный метод работы со строками, где используется шаблоны, определяемые особыми знаками.
Теперь о самом методе защиты. Все, что надо сделать - это определить каждого юзера с осбыми правами доступа, тем самым ограничивая доступ к названию клана. Файл пользователя разбирается снизу вверх, поэтому, чтобы зарезервировать, к примеру, клан [CLA], в файле users.ini должно быть следующее:
\[CLA\]:pass:16384
\[CLA\]Bob:pass2:66535
Обратите внимание на символы "\". Они позволяют использовать специальные символы "[" и "]", которые являются значимыми в regexp. Так regexp воспринимает их как обычные символы. В этом файле юзер "[CLA]Bob" получает доступ уровня 65535 (все команды скрипта по умолчанию), а все остальные в клане не имеют доступа через Admin Mod (только резервация названия клана). Для того, чтобы все это работало, надо включить regexp следующей строкой:
use_regex 1
в файле server.cfg.
Таким образом, все должны вводить пароль (в этом примере - "pass") для того, чтобы иметь возможность использовать это название клана в своем нике на сервере. Смотрите также пункт "Как вводить клиентский пароль?".
--------------------------------------------------------------------------------
Q: Я не могу зайти на сервер с Admin Mod 2.09! Постоянно выскакивают сообщения "Bad Nick info".
A: В версии 2.09 есть глюк, который не позволяет юзерам с уровнем доступа 16384 (и другими) заходить на сервер. Добавьте 16384 в их текущий уровень доступа и все будет в порядке.
--------------------------------------------------------------------------------
Q: Через каждые 30 минут все, кто перечислен в users.ini, вываливаются с сервера!
A: Это ошибка "password_timeout". Просто все подсоединились к серверу одновременно (при смене карты), что установило их "password_timeout" на одно и то же время. Потом, через 30 минут (1800 секунд, значение "password_timeout" по умолчанию) их пароли стали недействительными, проверка ника не подтвердилась и их выкинуло. Есть два способа разобраться с этой проблемой:
Метод №1: Ввести пароль командой admin_password ДО истечения 30 минут.
Метод №2: Увеличить значение password_timeout до, к примеру, 5-ти часов, чтобы их пароль был действительным, пока они играют на сервере.
--------------------------------------------------------------------------------
Q: Я задал пароли, но не могу зайти на сервер!
A: Просто разберитесь с конфигами, загрузите их на сервер и подождите смены карты. При смене карты все конфиги перезагружаются (это можно сделать и командой admin_reload).
--------------------------------------------------------------------------------
Q: Почему на моем сервере не работают функции, основанные на execclient()?
A: В файл server.cfg добавьте строчку:
allow_client_exec 1
Тогда клиенты будут видеть значение этой переменной и смогут решить, играть на вашем сервере или нет.
--------------------------------------------------------------------------------
Q: Мои пароли не работают с версией 2.09!
A: Надо перезапустить "make_pass" для каждого пароля. В версии 2.09 изменены методы шифрования имен пользователей. Теперь различаются имена и пароли, введенные большими и маленькими буквами (только при использовании зашифрованных паролей, в противном случае это не важно).
--------------------------------------------------------------------------------
Q: Как резервировать ники в версиях 2.09+?
A: В версии 2.09 и более поздих файлы nicks и users.ini были преобразованы в один файл. Для резервирования ника добавьте юзера в файл users.ini с уровнем доступа 16384. На пример команда:
alfred:bob:16384
зарезервирует имя alfred с паролем bob. Количество юзеров в users.ini может быль любым (конечно, оно не должно превышать объем вашей оперативной памяти, но на 2 миллиона пользователей вряд ли можно рассчитывать :)).
--------------------------------------------------------------------------------
Q: У меня есть клевый скрипт, использующий операции чтения/записи файлов, но он не работает!
A: Для операций чтения/записи в файле server.cfg надо прописать:
file_access_read 1
file_access_write 1
--------------------------------------------------------------------------------
Q: Мой пароль больше не работает!
A: Версия 2.08 изменила метод setinfo на противоположный. Однако, вы можете вводить пароль используя "admin_password" (как и в 2.07).
--------------------------------------------------------------------------------
Q: Я установил Admin Mod так, как вы сказали, но он падает каждый раз, когда кто-нибудь пытается войти в команду (уже после присоединения)!
A: В вашем server.cfg просто обязаны быть такие строки (или в listenserver.cfg для listen-серверов):
script_file "cstrike/dlls/admin_win32.amx" //если сервер под Win32
script_file "cstrike/dlls/admin_linux.amx" //если сервер под Linux
help_file "admin_help.cfg"
--------------------------------------------------------------------------------
Q: Все равно не работает!
A: Проделайте еще раз следующее:
- Перечитайте это руководство;
- Если игра загружается, введите "admin_help" в консоли и посмотрите, что будет;
- Если игра не грузится, посмотрите лог и выясните, почему;
- Чтобы включить ведение лога, добавьте строку "log on" в файле Valve/autoexec.cfg
- Ну что, ничего не помогает? Спросите в форуме, там много умных :)
--------------------------------------------------------------------------------
Q: Как ввести пароль, чтобы получить доступ к командам админа?
A: Введите:
admin_password "password"
где "password" - ваш пароль. Ники не требуют пароля, они основаны на WonID.
--------------------------------------------------------------------------------
Q: Почему пароль не работает с Win32?
A: Потому что Win32 использует незашифрованные пароли в файлах юзеров и ников (т.е. не надо использовать "make_pass", просто пропишите пароль в файле).
--------------------------------------------------------------------------------
Q: Почему пароль не работает во FreeBSD?
A: Это вполне возможно, потому что во FreeBSD встроен кривой Perl. Вот что вам нужно:
- Утяните perl-RPM из дистрибутива RedHat 5.2 (так как FreeBSD Linux-Compat основан именно на нем). Можно взять, например, из Linux-Mandrake 5.3 (наиболее похож на RedHat 5.2). Файл называется "perl-5.004m4-1.i386.rpm" (возможно, один в один с RedHat 5.2)
- Установите его при помощи RPM, как вызов в /compat/linux/bin/rpm или как программа в /usr/local/bin во FreeBSD, хотя не известно, что получится вторым методом: "/compat/linux/bin/rpm -Uvh perl-5.004m4-1.i386.rpm"
- Запустите makepass: "/compat/linux/usr/bin/perl makepass name pass". Можно изменить первую строчку make_pass скрипта, чтобы установить правильный вызов Perl, например, "./make_pass name pass" (точку в начале не забудьте :)).
Очень важно, чтобы Perl вызывался из ветки "/compat/linux", вместо стандартного FreeBSD-perl, который использует неверный вывод. RPM также следует запускать из "/compat/linux", так как "/usr/local/bin/rpm" не может установить RPM в ветку "/compat/linux", даже перезаписав установленный FreeBSD-Perl.
--------------------------------------------------------------------------------
Q: Почему мой nick password не работает под win95?
A: Апгрейдьтесь до версии 0.75 или выше.
--------------------------------------------------------------------------------
Q: Почему мой сервер падает сразу после загрузки?
A: Так обычно бывает, потому что он пытается загрузить не тот dll. Во-первых, удалите любые файлы admin.ini в папке HalfLife и во всех вложенных папках. Если лучше не стало, поместите файл "admin.ini" в папку /CStrike и пропишите в нем:
dlls\mp.dll //если сервер под Win32
dlls\mp.so //если сервер под Linux
--------------------------------------------------------------------------------
Q: Как работают зарезервированные слоты?
A: Они пускают на сервер только "maxplayers-reserve_slots", если это действующий юзер с зарезервированным флагом (32768). Это позволит ему использовать "admin_kick" и расчистить