Установка SRCDS при помощи нового стандарта — SteamPipe » Counter-strike Source портал sourceplay.ru
Counter-strike Source портал
 

Установка SRCDS при помощи нового стандарта — SteamPipe

Предварительная конфигурация


 Убеждаемся, что у нас хватит ресурсов (ulimit -a, -n должен быть не менее 2048).

Если всё в порядке, то разберёмся с системой: если она у вас 64-разрядная, то качаем библиотеки 32-разрядных Linux-систем:


Загрузка SteamCMD


Теперь, когда всё готово, начнём загрузку.
Сначала создайте папку чтобы не мусорить и зайдите в неё:

[quote]

mkdir cmd 
cd cmd


[/quote]

 

Наша папка называется "cmd"

Теперь скачайте архив со SteamCMD:

[quote]

wget https://media.steampowered.com/client/steamcmd_linux.tar.gz

[/quote]

Разархивируйте:
   

[quote]

tar xvfz steamcmd_linux.tar.gz

[/quote]

*по желанию: можно удалить архив: rm steamcmd_linux.tar.gz

Задайте разрешение на запуск всем файлам:

   

[quote]

chmod +x *

[/quote]

 

А теперь начнём главное — запуск steamcmd.

наберите:

[quote]

./steamcmd.sh

[/quote]

и ждите, пока процесс скачивания не завершится. После вы увидите строку-приглашение: "Steam> ".

Вот теперь начинаем веселиться.

Загрузка сервера


Итак, мы видим перед собой "Steam>". В принципе, мы можем выйти, что нам и нужно (толку сидеть в steamcmd попросту нет), а значит, набираем команду:

[quote]

quit

[/quote]

Теперь перейдём непосредственно к выбору интересующего нас сервера:

Например, устанавливать будем Team Fortress 2.

Всё ещё находясь в директории cmd/ вводим команду:

[quote]

./steamcmd.sh +login anonymous +force_install_dir ../tf2_server +app_update 232250 +quit

[/quote]

*совет: можно создать файл-shell для автозапуска строки выше.
*предупреждение: две точки перед именем папки (../tf2_server) показывают, что мы создадим эту папку на уровень выше и скачаем сервер туда!.
Консоль покажет нам процесс загрузки (очень быстро, надо сказать), после чего ответит:

[quote]

App <ID> installed!

[/quote]

Если же вы хотите скачать, скажем, CS: Source, то вместо 232250 в строке нужно указать 232330.

Всё, сервер мы скачали. Только вот что же делать с настройками? Всё просто — Valve немного изменили систему, так что mapcycle.txt, motd.txt и motd_text.txt лежат в папке /cfg/.
Начнём настройку сервера.

 

Базовая настройка и запуск сервера
Сервер запускается так же, как и раньше:

[quote]

screen -AmS имя_скрина_моего_сервера ./srcds_run +ваши_параметры

[/quote]

 

Server.cfg можно не менять, если был ранее уже настроенный — всё прекрасно работает, просто положите его в папку cfg/.

При запуске сервера мы увидим много информации о добавлении VPK-файлов. Всё хорошо, дышим ровно — так и надо.
Если вы сделали всё так, как написано выше, то ошибок не должно возникнуть.

Ну вот, базово всё готово. Но мы же не сможем без админки, верно?

 

Установка SourceMod

Я не буду рассказывать Вам о том, как настраивать и устанавливать SourceMod. Просто загрузите папку /addons/ и /cfg/ прямиком в директорию /tf/ и настройте metamod.vdf (всё так же, как и раньше). НО есть проблема: SM не будет работать, а вот MetaMod будет.
Исправляем:

[quote]

cd папка_с_моим_сервером/тип_игры/addons/metamod
nano metaplugins.ini


[/quote]

Здесь вам нужно убрать символ ";" (точка и запятая) напротив строки, содержащей следующее:

[quote]

sm addons/sourcemod/bin/sourcemod_mm

[/quote]

*предупреждение: папка_с_моим_сервером — та папка, которую мы указали при скачивании (в нашем случе это "tf2_server"), а тип_игры — подпапка с файлами в ней (в нашем случае это "tf".)

Сохраните и запустите сервер. Теперь SourceMod должен работать корректно. Разве что nextmap будет барахлить — он не видит файла карт-листа.

Вот и всё, сервер снова работает (или только-только появился). 

_______________________________________________________________________________________________________________________________________

 

Автоматизация SteamCMD

 

Есть два варианта автоматизации SteamCMD. (замените steamcmd на ./steamcmd.sh для Linux)

1. Добавление команд в строку запуска.

Примеры:

[quote]


steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 validate +quit


[/quote]

2. Создание скрипта

 

a. Создайте текстовый файл с последовательностью команд для SteamCMD

[quote]


// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //Установите 0 для обновления нескольких серверов за раз
@NoPromptForPassword 1
login <username> <password>
//для загрузки серверов, не требующих авторизации
//login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit


[/quote]

b. Запустите SteamCMD с параметром +runscript

Пример:

 

[quote]

steamcmd +runscript csgo_ds.txt

[/quote]

 

_______________________________________________________________________________________________________________________________________

 

Известные проблемы

 

Я могу загрузить или обновить сервер через SteamCMD, но сервер не запускается

 

Известные причины:

Linux: Некоторые игры имеют проблемы с регистром в названиях папок/файлов.

Ошибка отсутствия библиотек SteamCMD в директории steam

 

В консоле сервера такая ошибка выглядит так:

 

[quote]

steamclient.so: cannot open shared object file: No such file or directory

[/quote]

Для начал проверяем существует ли директория steam.

[quote]

cd /home/alliance/.steam

[/quote]

Если директория отсутствует, то создаем ее.

[quote]

mkdir /home/alliance/.steam

[/quote]

Теперь создаем «символьную» ссылку к библиотекам SteamCMD.

[quote]

ln -s /home/alliance/srcds/steamcmd/linux32 /home/alliance/.steam/sdk32

[/quote]

 Примечание:  В вашем случае, пути к директориям будут различаться!

32-битные библиотеки на 64-битных дистрибутивах Linux

 

Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии.

Обычно такая ошибка выглядит так:

[quote]

steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

[/quote]

Решения специфичны для различных дистрибутивов:

Если вы получаете ошибку

 

[quote]


The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
E: Unable to correct problems, you have held broken packages.


[/quote]

Сделайте следующее:

[quote]


dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs


[/quote]

(Если нужно, добавьте sudo)

 

 

Не забудьте вначале включить репозиторий Multilib.

 

Ошибки загрузки

 

В Linux пользователь может получить ошибку при старте, связанную с ulimit (no permission/can not open file). Для корректной работы steamcmd требуется установка параметра следующим образом: ulimit -n 2048. Хотя в shell-скрипте имеется строка, отвечающая за изменение ulimit, в некоторых системах администратором может быть запрещено изменение параметра пользователем, не имеющим root-привилегий. Перед запуском проверьте параметры ulimit следующим образом: ulimit -a. В ответе терминала нужно найти следующую строку:

 

[quote]


open files                      (-n) 1024
Здесь значение 1024 — значение uname -n.
Login Failure: No Connection


[/quote]

 

Так же вы можете получить ошибку "Login Failure: No Connection". Она связана с отсутствующими правилами iptables. Необходимо прописать например

[quote]
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
[/quote]

Вот,собственно, и все! Удачи с настройкой сервера!  smile

  • Просмотров: 4 886

Добавление комментария

Переместиться наверх
Sourceplay.ru © Matysh 2008-2023
Разработка сайта: web.justbusiness.studio
  • Яндекс.Метрика