Файл 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-пароль для удалённого управления сервером
breakable_multiplayer 1
decalfrequency 10
host_framerate 0
exec banned_ip.cfg // добавляем в данный файл banned_ip.cfg список забаненных по Steam ID
exec banned_user.cfg // добавляем в данный файл banned_user.cfg список забаненных по имени игрока
writeid // записываем SteamID игроков
writeip // записываем IP игроков
Убедитесь, что команда rcon_password не пуста или не является слишком простым паролем, так как подобрав ее, злоумышленник получает полный доступ к серверным командам.