Файл server.cfg необходим для настройки сервера и игрового процесса. Именно в нем определяются все серверные игровые параметры и команды. Порой, можно обойтись без некоторых плагинов, используя команды данного конфигурационного файла. Мы постараемся рассмотреть наиболее важные моменты этого файла.
1. Пишем логи
Первое что надо сделать пр настройке сервера - это ведение логов. Добавим в server.cfg следующие команды: log on // вести лог сервера sv_logbans 1 // записывать в лог баны sv_logecho 1 // показывать информацию из логов сервера в консоль(сервера) sv_logfile 1 // записывать логи сервера в файлы sv_log_onefile 0 // ... в один файл mp_logmessages 1 // писать в лог чат игроков для последующих разборок mp_logdetail 3 // записывать в лог повреждения от: 0 - выключено; 1 - противников; 2 - своих; 3 - и от противников и от своих.
После этого сервер начнет писать все происходящие действия на сервере в папку \cstrike\logs.
2. Управление ботами
Блок команд ниже позволит вам контролировать поведение ботов не сервере:
bot_allow_grenades 0 // разрешить ботам использовать гранаты bot_allow_machine_guns 0 // разрешить ботам использовать пулемёты bot_allow_pistols 0 // разрешить ботам использовать пистолеты bot_allow_rifles 0 // разрешить ботам использовать винтовки bot_allow_shotguns 0 // разрешить ботам использовать дробовики bot_allow_snipers 0 // разрешить ботам использовать снайперские винтовки bot_allow_sub_machine_guns 0 // разрешить ботам использовать мини-пулемёты
3. Управление игроками
Далее идут команды управления поведением игрока на карте
mp_allowNPCs 1 // разрешить NPC на сервере mp_allowspectators 1 // разрешить игрокам после смерти наблюдать за чужими игроками mp_autocrosshair 0 // разрешить автоприцеливание mp_autokick 0 // разрешить автокик за убийство игроков своей команды? mp_autoteambalance 1 // разрешить автоматическую балансировку команд mp_buytime 0.5 // время покупки в минутах mp_c4timer 35 // время таймера бомбы mp_chattime 10 // время, в течении которого игроки смогут разговаривать между собой после окончания текущей карты mp_decals 200 // Колличество разрешённых декалей (спреи, пятна крови, пулевые отверстия) mp_fadetoblack 0 // после смерти экран становится чёрным, не давая игроку смотреть за другими игроками в режиме спектатора mp_falldamage 1 // урон от падения mp_flashlight 1 // разрешить фонарик mp_forcecamera 1 // разрешить переключения камер в режиме спектатора mp_forcechasecam 1 // после смерти игрок может следить только за своей командой mp_forcerespawn 1 // команда для Half-Life 2: Deathmatch. Игрок появляется сразу после смерти mp_fraglimit 0 // максимальное колличество фрагов, при достижении которого определённым игроком карта сменится на следующую mp_freezetime 5 // начальный отсчёт времени в начале каждого раунда(для покупки), в секундах mp_footsteps 1 // слышимость звуков шагов mp_friendlyfire 1 // возможность атаковать своих mp_hostagepenalty 0 // кикает террориста при убийстве заданного лимита заложников mp_limitteams 1 // максимальное количество превышения игроков одной команды над другой (от 1 и до бесконечности ) mp_mapvoteratio 0.51 // для смены карты нужно 51% голосов mp_maxrounds 0 // максимальное количество раундов, при достижении которого игра на карте будет считаться законченной mp_playerid 1 // контролирует информацию которую игрок видет на панели статуса: 0 все имена; 1 только имена игроков своей команды; 2 без имён mp_spawnprotectiontime 10 // кикает игроков которые убивают членов своей команды в течении # секунд после перезапуска раунда mp_roundtime 3 // длина раунда в минутах mp_startmoney 800 // колличество начальных денег у игроков mp_teamplay 0 // команда для Half-Life 2: Deathmatch. Игра по командам(Альянс и повстанцы) mp_timelimit 30 // ограничение по времени на карту, в минутах mp_tkpunish 0 // в следующем раунде убить того, кто убил игрока своей команды mp_weaponstay 0 // команда для Half-Life 2: Deathmatch. После подбирания оружия оно остаётся на месте.(относится только к оружию заранее расположенному на карте разработчиками) mp_winlimit 0 // количество выигрышей одной команды при достижении которого игра на карте считается законченной
4. Управление сервером
Ниже идет описание команд ,контролирующих сам сервер: sv_airaccelerate 10 // определяет ускорение игрока, когда он находится в воздухе(например падает) sv_allowdownload 1 // разрешить загрузку с сервера(например карт) sv_allowupload 1 // разрешить закачку файлов (например decals, спрей-логи, карты) на сервер sv_alltalk 0 // разрешить всем слышать переговоры друг друга по микрофону, вне зависимости от команды (даже мертвые) sv_cheats 0 // разрешить игровые читы на сервере (пример: noclip) sv_consistency 1 // предписывает ли сервер последовательность файла для критических файлов sv_contact your@email.ru // e-mail администратора сервера sv_enableoldqueries 1 // разрешить поддержку старого стиля (Half-life 1) серверных запросов sv_footsteps 1 // использовать звук шагов при передвижении игрока sv_friction 4 // коэффициент трения в игре sv_gravity 800 // гравитация в игре sv_language 0 // Устанавливает язык sv_maxspectators 8 // Максимальное кол-во спектаторов sv_maxspeed 320 // максимальная скорость игрока sv_minupdaterate 10 // минимальное колличество обновлений(колличество пакетов) которое разрешено на сервере sv_pausable 0 // разрешить ставить паузу во время игры sv_password 0 // Пароль для входа на сервер sv_rcon_banpenalty 15 // колличество минут на которое банится игрок пытавшийся подобрать rcon-пароль к серверу sv_rcon_maxfailures 5 // максимальное колличество попыток при наборе rcon-пароля, после истечения которых игрок будет забанен sv_rcon_minfailures 5 // колличество попыток при наборе rcon-пароля во время заданное sv_rcon_minfailuretime, после истечения которых игрок будет забанен sv_rcon_minfailuretime 30 // колличество секунд для определения неверной rcon-аутенфикации sv_specaccelerate 5 // ускорение при передвижения в режиме spectator sv_specnoclip 1 // игрок в режиме spectator может пролетать через стены и объекты sv_specspeed 3 // скорость передвижения в режиме spectator sv_spectalk 1 // участие спектаторов в общем чате sv_stats 1 // собирать статистику использования процессора sv_stepsize 18 // длинна шага в юнитах sv_stopspeed 75 // минимальная скорость остановки на поверхности sv_timeout 30 // если сервер не получает отклика от клиента в течении # секунд, клиент отключается от сервера sv_voiceenable 1 // разрешить использование микрофона
Рейты, лагокомпенсация:
Сейчас выщитываем сами рейты. "скорость интернета" умножаем на 128 и делим на кол-во игроков на которое хотите свой сервер. У меня так: 2000x128:32=8000. Это значение записываем в sv_maxrate
Теперь sv_maxrate делим на 200. У меня так: 8000:200=40. Это значение записываем в sv_maxupdaterate.
С помщью программы Half-Life Server Rates можно вычислить оптимальные рейты под вашу машину, инет на необходимое кол-во человек. sys_ticrate 10000 rate 3000 // максимальный предел байт в секунду который СЕРВЕР может послать клиенту // rate = cl_updaterate * 175 cl_rate 2500 //максимальный предел байт в секунду который КЛИЕНТ может послать на сервер cl_cmdrate 30 // число раз в секунду которое КЛИЕНТ информирует сервер о своих действиях. cl_updaterate 20 // сколько раз в секунду СЕРВЕР говорит клиенту что происходит на карте. sv_maxupdaterate 40 // ограничивает частоту обновлений сервера. Чем выше значение,тем больше пакетов будет послано клиентам (зависит от sv_maxrate и также считается по формуле ) sv_minrate 3000 // минимальное колличество байт в секунду, которое может быть передано сервером (0 == без ограничения) sv_maxrate 8000 // максимальное колличество байт в секунду, которое может быть передано сервером(0 == без ограничения) sv_unlag 1 // лагокомпенсация sv_maxunlag 1 // максимальная лагокомпенсация, в секунду
5. Другие команды
Далее идут прочие команды, не вошедшие в группы:
hostname "Dedicated Server" // задаём имя сервера rcon_password "password" // задать rcon-пароль для удалённого управления сервером
exec banned_ip.cfg // добавляем в данный файл banned_ip.cfg список забаненных по Steam ID exec banned_user.cfg // добавляем в данный файл banned_user.cfg список забаненных по имени игрока
writeid // записываем SteamID игроков writeip // записываем IP игроков
Убедитесь, что команда rcon_password не пуста или не является слишком простым паролем, так как подобрав ее, злоумышленник получает полный доступ к серверным командам.