Создаем CS:GO сервер с нуля.

Создаем CS:GO сервер с нуля.


Каждый начинающий серверостоитель хочет создать свой собственный сервер. И данная статья поможет вам разобраться во всем.

И так мы начнем:

1) Первое что необходимо сделать это скачать программу SteamCMD Update Tool
Внимание! У Вас нет прав для просмотра скрытого текста.


2) Извлеките содержимое в папку (Пример Windows: C:\SteamCmd\)
2.1) Откройте папку со SteamCmd и запустите:
  • Windows: steamcmd.exe
  • Linux: STEAMEXE=steamcmd ./steam.sh

Программа будет автоматически обновлена и будет выведена строка с надписью Steam>. Введите help для более подробной информации.

3) Необходимо залогиниться в аккаунт steam
steam>login username password

Пример: login admirativ amxmodmenu
  • admirativ - login
  • amxmodmenu - password


3.1) Если Вы получаете сообщение об ошибке Steam Guard, проверьте Ваш e-mail на на наличие письма с кодом доступа к аккаунту и выполните следующую команду (сделать это нужно только один раз):
set_steam_guard_code yourcodehere

Пример: set_steam_guard_code C7H7V3

4) Вы увидете сообщение о том, что Вы успешно вошли в свой аккаунт...

Загрузка CS:GO Dedicated Server

Описывает процесс установки и обновления выделенного сервера CS:GO. Эти шаги необходимо выполнять каждый раз, когда игра будет обновлена.
1) Если Вы выполнили предыдущие пункты правильно то при следущем заупуске, SteamCmd залогинится автоматически

2) В строке Steam> необходимо указать путь установки CS:GO Dedicated Server.
Примеры:
Абсолютный путь:
force_install_dir c:\csgo-ds\

На папку выше:
force_install_dir ..\csgo-ds\

В этой же папке:
force_install_dir .\csgo-ds\


3) Установка или обновление CS:GO.
Если Вы хотите установить или проверить целостность файлов сервера, необходимо выполнить команду:
app_update 740 validate

Если вы хотите просто обновить CS:GO Dedicated Server:
app_update 740


4) После завершения, введите quit для успешного завершения работы со стим серверами.

Автоматизация процесса обновления

Можно создавать сценарии для SteamCmd, чтобы автоматизировать процесс обновления.
1) Создайте файл в паке SteamCmd с названием update_csgo_ds.txt
2) Впишите команды для SteamCmd в файл, например:
// update_csgo_ds.txt
//
login user password
force_install_dir ../csgo_ds
app_update 740 validate
exit


3) Запустите SteamCmd с параметром +runscript. Пример:
SteamCmd +runscript update_csgo_ds.txt


Запуск сервера

Windows
Classic Casual:
srcds -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_allclassic +map de_dust2

Classic Competitive:
srcds -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_allclassic +map de_dust2

Arms Race:
srcds -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map de_dust2

Demolition:
srcds -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_dust2


Linux
Classic Casual:
./srcds_linux -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_allclassic +map de_dust2

Classic Competitive:
./srcds_linux -game csgo -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_allclassic +map de_dust2

Arms Race:
./srcds_linux -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup mg_armsrace +map de_dust2

Demolition:
./srcds_linux -game csgo -console -usercon +game_type 1 +game_mode 1 +mapgroup mg_demolition +map de_dust2


FAQ по настройке CS:GO

1) Настройка отображения никнеймов игроков (когда на них наведен прицел)
mp_playerid_hold "1" -- время в секундах, сколько будет отображать ник игрока, при наведении прицела
mp_playerid_delay "0"- задержка в секундах, перед тем как показать ник игрока
mp_playerid "0"- показывать или нет ник игрока. 0 - все ники, 1 - ники игроков из своей команды, 2 - не показывать ники
По умолчанию показывать не будет.

2) Необходимые порты для STEAM
Steam Client
  • UDP 27000 to 27015 inclusive (Game client traffic)
  • UDP 27015 to 27030 inclusive (Typically Matchmaking and HLTV)
  • TCP 27014 to 27050 inclusive (Steam downloads)
  • UDP 4380


Dedicated or Listen Servers
  • TCP 27015 (SRCDS Rcon port)


Steamworks P2P Networking and Steam Voice Chat
  • UDP 3478 (Outbound)
  • UDP 4379 (Outbound)
  • UDP 4380 (Outbound)


3) Настройка файрволла для LINUX
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 27000:27030 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p tcp -m tcp --dport 27014:27050 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 3478 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4379 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 1200 -j ACCEPT
root@server:~# /sbin/iptables -A INPUT -p udp -m udp --dport 4380 -j ACCEPT


4) Скрипт запуска для LINUX


4) Ошибка "server is enforcing consistency for this file..."
Это баг, используйте sv_consistency 0


5) Настройка отображения моделей
Настраиваются для каждой карты файлах типа de_dust2_se.kv (обычный текстовый файл без .txt)
Пример:

Можно скопировать из gamemodes.txt
"t_arms" "models/weapons/t_arms.mdl"
"ct_arms" "models/weapons/ct_arms_st6.mdl"

6) Настройка сервера gamemodes_server.txt
По умолчанию настройки хранятся в gamemodes.txt, однако Valve не рекомендует его редактировать, так как он периодически обновляется.
Для настроек сервера Valve предлагает переименовать имеющийся файл gamemodes_server.txt.example в gamemodes_server.txt и настроить соответственно.
Настройки в gamemodes_server.txt имеют преимущество перед настройками в gamemodes.txt
Если вы сделали изменения в gamemodes_server.txt, они вступят в силу только после полной перезагрузки сервера.
Простой пример gamemodes_server.txt


7) Как узнать, какие переменные доступны для настроек в server.cfg
Введите в консоль сервера команду
cvarlist log cvarlist.txt
Файл cvarlist.txt будет лежать в корне \csgo\
Т.е. сначала вы идете в эталонный gamemodes.txt, берете оттуда настройки для gamemodes_server.txt, а то, чего нет в gamemodes.txt, можно взять из cvarlist.txt и разместить в server.cfg.

8) Клиент не подключается к серверу
Клиент получает сообщение "Failed to get session data." Как правило, причина описана в консоли сервера.
Основная причина - неправильно настроен маплист, либо не обновлен сервер.
В строке запуска имеется некорректный пример mapgroup типа "mg_allclassics"
Поставьте mg_bomb либо другой существующий.
mg_bomb, mg_hostage, mg_dust, mg_bomb, mg_hostage, mg_armsrace, mg_demolition

9) Не работает параметр +maxplayers в командной строке
Это работало в ранней бете, а сейчас этот параметр располагается либо в gamemodes.txt либо в gamemodes_server.txt
Для текущей версии серверов есть параметр командной строки maxplayers_override, который перекрывает значения в любых конфигах.

10) Где настроить резервные слоты
В gamemodes_server.txt в разделе maps у каждой карты должен стоять параметр extraspectators

11) Запуск нескольких серверов из одной папки
Используйте параметр командной строки -Gamemodes_serverfile для указания других конфигов gamemodes_server.txt.

12) Куда делся мой MOTD (какие файлы нужно резервировать перед обновлением)
Он был перезаписан при обновлении сервера.
Перед обновлением нужно сохранить такие файлы:
  • gamemodes.txt
  • mapcycle.txt
  • maplist.txt
  • motd.txt
  • gamemode_casual.cfg (или gamemode_armsrace.cfg, gamemode_casual.cfg, gamemode_demolition.cfg в зависимости от того какие перенастраивал).


13) Как отключить автоматическую покупку брони
mp_free_armor 0

14) Как отключить камеру смерти
sv_disablefreezecam 1

15) Как отключить NO BLOCK
mp_solid_teammate 1

16) Как отключить встроенное голосование, вызываемое по ESQ,F1,F2
sv_allow_votes "0"

17) Пример настройки своей собственной группы карт в gamemodes_server.txt
В строке запуска укажите название своей группы +mapgroup mg_all
gamemodes_server.txt
В разделе настройки режима "mapgroupsMP"
закомменировать текущие (если вы их скопировали из gamemodes.txt), вставить

{"mg_all" "" }

В разделе групп карт "mapgroups"

"mg_all" // mapgroup definition
{
"name" "mg_all"
"maps"
{

"cs_office" ""
"cs_italy" ""
"de_dust2" ""
"de_train" ""
"de_inferno" ""
"de_dust" ""
"de_aztec" ""
"de_nuke" ""

}
}


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Комментариев 2

root Офлайн 18 ноября 2012 02:00
Отличная статья. Очень информативно!
flurik Офлайн 15 марта 2013 09:49
дошел до пункта Запуск сервера, и дальше не понимаю как его включить