Шаг 1-Устанавливаем серверную часть
(Пожалуйста удостоверьтесь, что на ваш клиент CoD поставлены все нужные патчи и обновлена версия Punkbuster)
- Откройте папку C:/Program Files/Activision (или другую, если у вас Call of Duty установлен в другую папку) и скопируйте папку “Call Of Duty 4 – Modern Warfare” на рабочий стол (или в любую другую, где будет хранится ваш сервер).
Чтобы не было путаницы, переименуйте папку в “cod4”.
- Откройте папку “cod4” и удалите только эти каталоги: “Docs”, “Players”, “main/save” (это позволит сэкономить нам около 1.25GB места на жестком диске)
- Откройте папку “main/video” и удалите все файлы, КРОМЕ “zakhaev_escape.bik” (он нужен для обновления сервера)
- Откройте папку “pb” и удалите все внутри!
ВНИМАНИЕ! Будьте внимательны и бдительны! Ни в коем случае не нарушайте структуру папок в вашем каталоге “cod4”.
Шаг 2-Установка Punkbuster
Теперь я попытаюсь объяснить вам, как нужно установить Punkbuster на ваш сервер.
- Создайте папку “pbsetup” на вашем рабочем столе (не обязательно в папке “cod4”)
- Скачайте программу “[url=http://www.evenbalance.com/index.php?
pagebsetup.php]pbsetup.exe[/url]”
- Запустите “pbsetup.exe” и нажмите “Add a Game”. Выберите “CoD4”. Укажите путь к вашей папке “cod4”. Выберите в списке ваш CoD4 сервер и нажмите “Check For Updates” (на некоторое время программа зависнет, но не волнуйтесь, она скачивает нужные файлы и как либо воздействовать на нее или папку “cod4” в это время не стоит). После того, как punkbuster обновился нам нужно установить скрипты проверки запрещенных программ, а также подключить базы данных забанненых игроков, но мы займемся этим позже.
[size=13]Шаг 3[/size]-Копируем игровые файлы
- Если вы хотите создать несколько серверов, то крайне советую сделать резервную копию вашей папки “cod4” сейчас. В данный момент, она представляет собой основу для любого CoD4 сервера, которую можно довести до любого состояния.
Шаг 4– Создаем ярлык для быстрого запуска сервера
- Открываем папку “cod4”
- Правой кнопкой мыши на файл “iw3mp.exe”. Выберите “Создать ярлык”. Перетащите созданный ярлычок на рабочий стол.
- Кликните правой кнопкой мышки на ярлыке и выберите “Свойства”
- Найдите поле “Объект”, там должно быть написано “ccod4iw3mp.exe”
- Добавьте в конец этой строчки нижеприведенные команды, при этом ни в коем случае не повредите ничего, что написано ранее:
+set dedicated 2 +set net_ip xxx.xxx.xxx.xxx +set net_port 28960 +set sv_maxclients 32 +set sv_punkbuster "1" +exec server.cfg +map_rotate
(xxx.xxx.xxx.xxx – это ip-адрес вашего сервера)
Примечание: Убедитесь, что между iw3mp.exe” и +set dedicated 2 есть пробел
Примечание: Замените xxx.xxx.xxx.xxx на ip-адрес вашего сервера
Примечание: Замените параметр sv_maxclients 32 на любой другой, если вы хотите, чтобы максимальное количество игроков было больше или меньше 32.
Шаг 4– Настройка файла server.cfg
Настройка конфигурационного файла для сервера – очень важный момент. В Интернете вы найдете достаточно много вариантов этого файла. Учтите, что среди них есть как правильные, так и не правильные. Учтите также, что если вы будете использовать в своем server.cfg определенные переменные, то ваш сервер перестанет быть “РАНГОВЫМ” (RANKER) сервером.
Я приведу пример РАНГОВОГО (RANKED) server.cfg.
Не забудьте обязательно поменять rcon пароль и положить server.cfg в папку “cod4/main”.
Шаг 6– Запуск и подключение к серверу
Чтобы запустить ваш сервер, достаточно будет два раза кликнуть на его ярлыке на рабочем столе.
После этого сервер должен стартовать без проблем, если вы, конечно, не допустили ошибок в его конфигурации. Подождите 15-30 минут, чтобы он появился в списке серверов в вашем клиенте. Если вы не хотите ждать, подключитесь к серверу через консоль клиента (connect xxx.xxx.xxx.xx:yyyy, где xxx – ip-адрес, а yyyy – порт, скорее всего у вас он будет 28960).
Управление сервером:
[spoiler]Управлять игровым сервером можно 3 основными способами:
1. Путем использования программ удаленного администрирования типа: CoD RconTool - наличие rcon пароля необходимо.
2. Путем прямого ввода rcon команд через консоль непосредственно в игре (открывается кнопочкой ` или Shift+` ) подразумевает наличие rcon пароля от сервера.
3. Путем прямого ввода через консоль команд класса PB_rcon, подразумевает возможность управления сервером в отсутствии пароля rcon, но при наличии установленных администратором сервера Power_points для вашего гуида.
Я рассмотрю второй и третий случай, так как у всех этих программ есть один существенный недостаток - невозможность управления сервером непосредственно из игры.Т.е. если вы админите чью-то игру надо будет постоянно нажимать Alt+Tab для временного выхода из игры и ввода нужной команды, тем самым теряя контроль над происходящим на сервере, ну и я не говорю о том что будет если при подобных манипуляциях игра просто повиснет (а это бывает частенько), плюс потеря времени и т.п.
Поэтому мой Вам искренний совет если хотите продвинутся в администрировании и быть нормальным админом не вызывающим нареканий у игроков (народа очень язвительного и нервного на этот счет) учитесь пользоваться rcon командами из консоли находясь непосредственно в игре.
Прямое управление сервером через консоль в игре
1)
Очень многие знают как вызвать игровую консоль находясь непосредственно на игровом сервере, делается это кнопочкой ` (тильда), можно раскрыть расширенную консоль нажав Shift+`.
Управление сервером производится набором rcon команд вводимыми последовательно в консоль.
Для доступа к управлению сервером вы должны иметь rcon пароль, который прописывается в основном конфиг-файле сервера при его настройке командой
Set rcon_password "…" где в кавычках указывается непосредственно пароль.
Для активации вас как администратора необходимо сначала пройти процедуру активации rcon пароля, делается это один раз в начале каждого сеанса вашей работы на сервере.
После коннекта находясь в игре вызываем консоль нажав ` и пишем
/rcon login … пароль вводится без кавычек, нажимаем enter.
Если пароль введен правильно, вы можете вводить rcon команды. Синтаксис устроен так что каждая rcon команда начинается как /rcon …….
Рассмотрим подробно rcon команды которые вам понадобятся.
/rcon g_password пароль устанавливает пароль для доступа на сервер
Если вы хотите снять пароль, укажите просто пустую строчку, /rcon g_password “”
Кавычки именно в этом случае обязательны.
/rcon status показывает список играющих на сервере что-то типа
num score ping guid name lastmsg address qport rate
--- ----- ---- ------ --------------- ------- --------------------- ----- -----
1 21 37 514524 dimon()rus^7 50 87.237.ххх.ххх:28960 2968 25000
В принципе все понятно номер игрока, счет, гуид, имя, адрес, порт, рэйт.
В данном случае мы имеем “игровые” гуиды игроков, которые отличаются от PB guid (гуид присвоенный панкбастером).
/rcon say траблабалалала
выводит строчку в игре типа сonsole: траблабалалала и все играющие понимают что вещает админ
/rcon g_gametype sd(или dm,dom,war,sab,koth) выбираем режим игры, после выбора режима надо либо перезапустить текущую карту, либо загрузить другую, только после этого происходит смена режима.
/rcon map имя карты - загружает на сервере выбранную карту
mp_showdown
mp_bloc
mp_bog
mp_cargoship
mp_citystreets
mp_convoy
mp_countdown
mp_crash
mp_crossfire
mp_farm
mp_overgrown
m p_pipeline
mp_backlot
mp_strike
mp_vacant"
/rcon map_rotate загружает следующую в ротации карту, ротация прописывается в конфиг-файле сервера командой sv_maprotate.
/rcon map_restart перезагружает текущую карту на сервере
/rcon fast_restart перезапускает карты без перезагрузки (просто обнуляется счетчик очков) наиболее часто встречающаяся команда на кланварах.
Далее описываются команды для бана и кика предоставляемые rcon сервисом самой игры, я не рекомендую вам их использовать по двум причинам
1. невозможность просмотреть банлист без ftp дроступа.
2. бан происходит по игровому гуиду, который изменить для знающего человека не составит особого труда.
Панкбастер предоставляет для этого куда более надежные и гибкие средства используйте его и проблем не будет.
В общеобразовательном плане:
/rcon onlykick имя кикает игрока с указанным именем, коды цветов, если ник цветной при этом указывать не надо.
/rcon kick имя кикает игрока, с указанным именем. Коды цветов указывать надо.
/rcon kick all кикает всех игроков.
/rcon onlykick all аналогично.
/rcon clientkick номер кикает игрока, играющего под указанным номером (узнать можно командой /rcon status см. выше).
/rcon banUser имя банит игрока с указанным именем. Гуид заносится в ban.txt
/rcon banClient номер банит игрока под указанным номером (узнать можно командой /rcon status см. выше). Гуид заносится в ban.txt
/rcon tempBanUser имя кикает и временно банит игрока с указанным именем на время указанное в переменной sv_kickbantime.Гуид никуда при этом не записывается. Так сказать легкая карательная мера.
/rcon tempBanClient номер кикает и временно банит игрока с указанным номером на время указанное в переменной .Гуид никуда при этом не записывается. Так сказать легкая карательная мера.
/rcon unbanuser имя разбанивает игрока с указанным именем.
Так же с помощью rcon команд можно изменять любые dvar переменные прописанные в конфиг файле сервера,но если настройки самого провайдера который предоставил вам игровой сервер не позволяют перезаписывать без ftp доступа файлы находящиеся в игровой директории, все эти изменения коснутся только текущего сеанса игры, и в случае падения сервера или его перезапуска все вернется на круги своя т.е. к config.cfg который запускается при загрузке самой игры.
Рекомендую проэксперементировать для начала, что бы потом не обламаться. Делается это командой
/rcon writeconfig имя конфигфайла.
2)
Управление сервером через Панкбастер
На самом деле эта античитерская программа предоставляет админу очень гибкое средство для управления сервером, включая возможность раздачи прав на определенные команды другим людям без выдачи rcon пароля.
Итак по порядку (все команды приведены в синтаксисе для консоли, если вы используете HLSW rcon перед каждой командой писать не надо).
/rcon pb_sv_plist результат очень похож на результат команды /rcon status
player List:
[Slot #] [GUID] [Address] [Status] [Power] [Auth Rate] [Recent SS] [O/S] [Name]
3 e69e05b2*****3abb7e8f40*****(VALID) 87.240.15.5:28960 OK 0 3.2 1 (W)
4 111b5e469*****68b91761499a*****(VALID) 195.230.70.226:28960 OK 0 3.1 1 (W)
Только в данном случае мы имеем номер слота (не совпадает с номером id, команды /rcon status), PB guid (не путать с гуидом выдаваемым /rcon status), ip адрес, отчет по произведенным скриншотам, имя ну и т.п.
/rcon pb_sv_ver выводит текущую версию панкбастера (иногда бывает полезно знать)
/rcon pb_sv_GuidRelax значение (0-7) определяет поведение пакбастера при неопознанных гуидах
0 кикает за все
1 не кикает за неопознанный или неверный гуид
2 не кикает за неверный или неправильный ip адрес
3 = 1 и 2 вместе
4 не кикает за dublicate guid
5 =4 и 1 вместе
6 =2 и 4 вместе
7 = 4 и 3 и 1 вместе
/rcon pb_sv_ban имя (или номер слота) “пояснение 1” | “пояснение 2“
Банит игрока с указанным именем или с указанным номером слота выводимым с помощью /rcon pb_sv_plist, записывает его в файл pbbans.dat находящегося в директории pb, пояснение 1 выводится на экран игроку после того как его кикает с сервака, можно написать что угодно типа “hvatit 4iterit yblydok”, пояснение 2 записывается в файл pbbans.dat после данных (имя, pb_guid) игрока.
/rcon pb_sv_banguid гуид ip “имя” “пояснение”
записывает в файл pbbans.dat данные об игроке причем не важно находится ли в данный момент игрок на сервере или нет.
/rcon pb_sv_banload имяфайла
загружает в оперативную память банлист с указанным именем, если имя пустое загружается файл pbbans.dat
/rcon pb_sv_banlist текст поиска
выводит в консоль содержание файла pbbans.dat если указать текст будет выводить только строчки содержащие данный текст.
/rcon pb_sv_unban номер
выводит из банлиста игрока с указанным номером (номера показывает команда /rcon pb_sv_banlist) после этого необходимо воспользоваться командой /rcon pb_sv_updbanfile что бы изменения прописались в файл pbbans.dat
/rcon pb_sv_unbanguid гуид
команда аналогична предыдущей только указывается pb_guid после этого необходимо воспользоваться командой /rcon pb_sv_updbanfile что бы изменения прописались в файл pbbans.dat
/rcon pb_sv_reban номер
возвращает игрока с указанным номером в банлист ошибочно удаленного из него командой /rcon pb_sv_unban после этого необходимо воспользоваться командой /rcon pb_sv_updbanfile что бы изменения прописались в файл pbbans.dat
/rcon pb_sv_updbanfile
обновляет файл pbbans.dat записывая в него последние изменения после команд Reban и Unban
/rcon pb_sv_autoupdban 1 или 0
эта переменная устанавливает соответствие на автоматическое изменение файла pbbans.dat при любых изменениях банлиста находящегося в памяти панкбастера во время работы сервера (что бы каждый раз не писать /rcon pb_sv_updbanfile)
/rcon pb_sv_kick имя кол-воминут “пояснение 1” | “пояснение 2”
кикает с сервера игрока с указанным именем на указанное кол-во времени (если не указать время игрок будет забанен до рестарта сервера), информация не записывается в файл pbbans.dat, но ее можно просмотреть по команде /rcon pb_sv_banlist
3)
Управление сервером в отсутствии rcon пароля или что такое PowerPoints .
Т.к. практически все знают или слышали ,что при помощи команд класса /Pb_rcon и системы PB Player Power можно управлять сервером в отсутствии rcon пароля.
Для этого необходимо чтобы администратор имеющий ftp доступ к серверу или rcon пароль проделал следующие манипуляции:
1. определил rcon команды и кол-во поинтов необходимых игроку для доступа к ним при помощи команд:
/pb_sv_rlist
выводит в консоль разрешенные pb_rcon префиксы, с указанием необходимого кол-во поинтов, для использования той или иной команды.
/pb_sv_rcon кол-вопоинтов префикс
добавляет новую команду в pb_rcon лист и устанавливает необходимое кол-во поинтов для ее использования
Данные команды и префиксы записываются в файл pbrcon.dat находящийся в директории pb на сервере и который в принципе можно редактировать вручную .
Давайте например попробуем прописать наиболее необходимые rcon команды, я бы сделал это так
/pb_sv_rcon 25 status
/pb_sv_rcon 25 pb_sv_plist
/pb_sv_rcon 25 map_rotate
/pb_sv_rcon 50 g_gametype
/pb_sv_rcon 50 map_restart
/pb_sv_rcon 50 fast_restart
/pb_sv_rcon 50 sv_pam
/pb_sv_rcon 50 pam_mode
/pb_sv_rcon 75 g_password
/pb_sv_rcon 100 pb_sv_
Теперь игрок имеющий 25 поинтов сможет как минимум сделать скриншоты гуидов играющих и поменять карту в ротации.
Игрок имеющий 50 поинтов сможет сделать тоже что и игрок с 25 поинтами но еще сможет менять режимы игры, карты, делать рестарты и изменять режимы пам мода.
Игрок имеющий 75 поинтов еще сможет менять пароль на сервере.
Ну а игрок имеющий 100 поинтов почти всемогущен при помощи полного доступа к командам класса pb_sv_
2. После того как мы прописали команды и поинты необходимые для их использования назначим игроков и раздадим им поинты в соответствии с их правами.
/pb_sv_powerguid гуид кол-вопоинтов имяигрока (необязательно)
с помощью этой команды администратор сервера может добавить игрока в базу сервера PB Player Power на управление посредством pb_rcon без непосредственного подсоединения игрока к серверу (т.е. в отсутствии игрока на сервере) присвоив ему необходимое кол-во поинтов
/pb_sv_power номер кол-вопоинтов
добавляет игрока с указанным номером находящегося на сервере в базу игроков PB Player Power допущенных к команде /pb_rcon и устанавливает определенное кол-во поинтов.
/pb_sv_powerlist
выводит в консоль перечень игроков занесенных в PB Player Power базу с указанием текущего кол-ва поинтов и номеров.
Игроки которым мы назначили права будут записаны в файл pbpower.dat находящийся в директории pb сервера и который при желании можно отредактировать вручную.
Как управлять сервером при помощи Power Points
Синтаксис написания команд следующий:
/pb_rcon рконкоманда-зарегестрированная в rlist
Ну т.е. при смене карты пишем
/pb_rcon map mp_toujane
Смена режима игры
/pb_rcon g_gametype dm
/pb_rcon fast_restart
И далее в том же духе.
Console при этом будет писать, что типа игрок такой-то при помощи команды
Pb_rcon изменил тип игры (или карту, или кикнул кого-то).
Вообщем все официально, народ видит кто им жизнь портит.
У системы PB Player Power есть еще одна интересная особенность своеобразная альтернатива голосованию на удаление игрока из игры. Действует это примерно следующим образом:
/pb_sv_powerkicklen минуты
указывает кол-во минут (по умолчанию 5) на которые игрок может быть кикнут при помощи команды pb_kick
/pb_sv_powerdef кол-вопоинтов
устанавливает какое кол-во поинтов будут иметь игроки не входящие в базу PB Player Power
/pb_sv_powermin кол-вопоинтов
устанавливает кол-во поинтов (по умолчанию 99) при наборе которых игрок будет выкинут с сервера.
Например, у нас на сервере выставлены следующие значения.
/pb_sv_powerdef 1
/pb_sv_powermin 10
Игрок даже не занесенный в базу PB Player Power и набирающий в консоли
/pb_power
увидит следующее (пример)
[09.10.2006 01:28:11] Power Kicking Enabled: [Slot #] [Power] [Points Against] [GUID] [Name]<
1 1 0/10 xxxxxxxx(-) Kirka
2 1 0/10 xxxxxxxx(-) CoolBananas
3 1 0/10 xxxxxxxx(-) ESLIOTE
4 1 0/10 xxxxxxxx(-) DevenTERROR_NL
5 1 0/10 xxxxxxxx(-) mick
6 1 0/10 xxxxxxxx(-) Jack
7 1 0/10 xxxxxxxx(-) =KERPO= $3oiwa
8 1 0/10 xxxxxxxx(-) Chellow
9 1 0/10 xxxxxxxx(-) =$1KERPO= $1Haba
10 1 0/10 xxxxxxxx(-) Kansa
13 1 0/10 xxxxxxxx(-) Crusader D.P.W.W.
15 1 0/10xxxxxxxx(-) *KiLLa_CH*
End of Power List (12 Players)
Например мы хотим кикнуть игрока 6 Jack.
Любой из игроков ну например Kirka набирает у себя в консоле
/pb_kick 6 и видит следующее
[09.10.2006 01:29:35] Kick Vote (1 point) against slot #6 (Jack) from Kirka
Предположим еще 3 игрока также проголосуют за кик #6
[09.10.2005 01:29:54] Kick Vote (1 point) against slot #6 (Jack) from CoolBananas
[09.10.2005 01:30:10] Kick Vote (1 point) against slot #6 (Jack) from =KERPO= oiwa
[09.10.2005 01:30:36] Kick Vote (1 point) against slot #6 (Jack) from =KERPO= Haba
Добавив тем самым еще 3 поинта.
Теперь если мы наберем в консоле /pb_power мы увидим примерно следующее
09.10.2005 01:32:05] Power Kicking Enabled: [Slot #] [Power] [Points Against] [GUID] [Name]
1 1 0/10 xxxxxxxx(-) Kirka
2 1 0/10 xxxxxxxx(-) CoolBananas
3 1 0/10 xxxxxxxx(-) ESLIOTE
4 1 0/10 xxxxxxxx(-) DevenTERROR_NL
5 1 0/10 xxxxxxxx(-) mick
6 1 4/10 xxxxxxxx(-) Jack
7 1 0/10 xxxxxxxx(-) =KERPO= oiwa
9 1 0/10 xxxxxxxx(-) =KERPO= Haba
10 1 0/10 xxxxxxxx(-) Kansa
11 1 0/10 xxxxxxxx(-) LGB Steffpouye
12 1 0/10 xxxxxxxx(-) Crusader D.P.W.W.
15 1 0/10 xxxxxxxx(-) *KiLLa_CH*
End of Power List (12 Players)
Таким образом Мр. Jack набрал 4 поинта из 10 возможных как только он наберет 10 его кикнет с сервера на 5 минут.
[size=8]Бинды
Очень надоедает набивать одно и тоже в консоле по многу раз.
Тем более что команды в основном однотипные.
На помощь как всегда в таких случаях приходят бинды.
Забиндить можно в своем конфиге любую rcon команду или последовательность таковых.
Ну например кусочек конфига:
bind Y "rcon login ******"
bind U "rcon fast_restart"
bind I "rcon g_gametype tdm;wait 150;rcon fast_restart"
bind O "rcon g_gametype dm;wait 150;rcon fast_restart"
bind P "rcon g_gametype sd;wait 150;rcon fast_restart"
bind H "rcon map aim_buddha2"
bind K "rcon map mp_hawkeyeaim"
bind L "rcon map wawa_3daim"
bind G "rcon sv_pam 0;wait 150;rcon pam_mode cb;wait 150;rcon sv_pam 1;wait 150;rcon fast_restart"
bind ' "rcon scr_killcam 1"
bind N "rcon status"
bind M "rcon pb_sv_plist"
bind , "condump konsole.txt"