SteamCMD

From Valve Developer Community
Jump to: navigation, search
English (en)español (es)français (fr)Nederlands (nl)polski (pl)português do Brasil (pt-br)русский (ru)Türkçe (tr)中文 (zh)한국어 (ko)
... Icon-Important.png

Steam Console Client lub SteamCMD jest nowym narzędziem do instalacji i aktualizacji serwerów dedykowanych, przy użyciu wiersza poleceń. Narzędzie działa tylko z grami, które działają z nowym systemem zawartości zwanym SteamPipe. Docelowo wszystkie gry będą używać tej metody, zamiast HLDSUpdateTool.

Pobieranie i uruchomienie SteamCMD

1. Pobieranie SteamCMD Update Tool

Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacz tutaj jak to zrobić.

2. Wypakuj gdzieś na dysk zawartość pobranego archiwum

Note.pngNote:Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie HLDSUpdateTool.
  • Linuks: wpisz tar xvfz steamcmd_linux.tar.gz

3. Uruchomienie SteamCMD po raz pierwszy

Otwórz wiersz poleceń i uruchom SteamCmd
  • Windows: wpisz steamcmd
  • Linuks: wpisz ./steamcmd.sh

Aplikacja zaktualizuje się automatycznie i wyświetli coś takiego Steam>. Wpisz help, aby uzyskać więcej informacji.

Aby pobrać większość serwerów można zalogować się anonimowo

login anonymous

Do pobrania niektórych gier niezbędne będzie zalogowanie się na swoje konto Steam

Note.pngNote:Należy się wcześniej wylogować ze swojego klienta Steam.
login <nazwa użytkownika>

Wpisz swoje hasło. W następnej kolejności sprawdź swoją skrzynkę email, powinna znajdować się tak wiadomość z kodem Steam Guard, który należy wpisać (czynność ta jest jednokrotna dla każdego komputera).

Powinien teraz wyświetlić się komunikat o poprawnym zalogowaniu na konto.

Pobieranie serwerów

1. Uruchom SteamCMD i ustaw folder, gdzie ma się pobrać serwer. (Uwaga: użyj odpowiednich ukośników dla Windowsa '\' i Linuksa '/')

force_install_dir <path>
Icon-Bug.pngBug:Na niektórych dystrybucjach ścieżka nie może zawierać WIELKICH liter - zobacz #Znane problemy
Przykład: instalacja cs_go w aktualnej ścieżce:
force_install_dir ./cs_go/

2. Instalacja i aktualizacja serwerów. <app_id> oznacza ID aplikacji Steam. Do sprawdzenia poprawności plików należy użyć komendy validate. Aby uczestniczyć w becie, należy dodać do komendy parametr -beta "Beta".

app_update <app_id>
Przykład: instalacja i weryfikacja poprawności plików CS:GO:
app_update 740 validate
Przykład: instalacja i weryfikacja poprawności plików wersji beta HLDS:
app_update "90 -beta beta" validate

3. W celu poprawnego zamknięcia programu i wylogowania się z serwerów Steam należy użyć komendy quit.

Wspierane serwery

Lista serwerów, które wymagają steamcmd, aby je zainstalować.

Serwer ID Dodatkowe opcje linii komend
HLDS dla Half-Life oraz Counter-Strike 1.6 90
Counter-Strike: Condition Zero dedicated server 90 +app_set_config "90 mod czero"
Deathmatch Classic dedicated server 90 +app_set_config "90 mod dmc"
Day of Defeat dedicated server 90 +app_set_config "90 mod dod"
Half-Life: Opposing Force dedicated server 90 +app_set_config "90 mod gearbox"
Ricochet dedicated server 90 +app_set_config "90 mod ricochet"
Team Fortress Classic dedicated server 90 +app_set_config "90 mod tfc"
Counter-Strike: Global Offensive dedicated server 740
The Ship dedicated server 2403
Garry's Mod dedicated server 4020
Natural Selection 2 dedicated server 4940
Serious Sam 3 dedicated server 41080
Nuclear Dawn dedicated server 111710
Red Orchestra: Ostfront 41-45 Windows dedicated server 223240
Red Orchestra: Ostfront 41-45 Linux dedicated server 223250
Red Orchestra 2: Heroes of Stalingrad oraz Rising Storm Windows dedicated server 212542
Killing Floor Windows dedicated server 215350
Killing Floor Linux dedicated server 215360
Left 4 Dead 2 dedicated server 222860
Team Fortress 2 dedicated server 232250
Day of Defeat: Source dedicated server 232290
Counter-Strike: Source dedicated server 232330
Half-Life 2: Deathmatch dedicated server 232370
Blade Symphony Beta dedicated server 228780
Source SDK Base 2006 MP dedicated server (np. Fortress Forever) 205
Source SDK Base 2013 MP dedicated server 244310
Half-Life Deathmatch: Source dedicated server 255470
Pirates, Vikings, and Knights II dedicated server 17575
Tip.pngTip: Aby zainstalować wiele modyfikacji na raz należy oddzielić ich nazwy przecinkami, np. +app_set_config 90 mod czero,dod.

Automatyzacja SteamCMD

Są dwa sposoby za zautomatyzowanie SteamCMD.

1. Dodawanie komend z wiersza poleceń. Przykłady:

steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
steamcmd +login <uzytkownik> <haslo> +force_install_dir c:\KFServer\ +app_update 215350 validate +quit

2. Stworzenie skryptu.

a. Umieszczenie komend SteamCMD w pliku tekstowym. Przykład:
// update_csgo_ds.txt
//
login uzytkownik hasło
force_install_dir ../csgo_ds
app_update 740 validate
exit
b. Uruchamianie SteamCMD z opcją czytania skryptu +runscript. Przykład:
steamcmd +runscript csgo_ds.txt

Instalacja miedzy-platformowa

Dzięki zastosowaniu SteamCMD możliwe jest pobranie plików serwera na inną platformę, niż tą, na której aktualnie pracujemy. Jest to możliwe dzięki użyciu zmiennej @sSteamCmdForcePlatformType (tak, na początku zmiennej znajdują się dwie literki "s"). Dla przykładu, aby pobrać serwer dedykowany CSGO dla platformy Windows działając na Linuksie należy użyć następującej komendy:

./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit

lub poniższego skryptu:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit

Zmienna może przyjąć następujące wartości: windows, macos oraz linux.

Przykładowy skrypt dla Windows

Przejrzyj i pobierz: http://pastebin.com/BRUbsGQh

Przykładowy skrypt dla Linuksa

Przejrzyj i pobierz: http://pastebin.com/hcpMpmaZ

Znane problemy

biblioteki 32-bitowe na systemach Linuks 64-bit

steamcmd jest aplikacją 32-bitową, także wymaga pewnych 32-bitowych bibliotek do działania, pomimo, że są już zainstalowane ich 64-bitowe odpowiedniki.

Błąd ten wygląda mniej więcej tak:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Rozwiązanie jest zależne od dystrybucji:

Debian i pochodne (Mint)

sudo apt-get install ia32-libs

Ubuntu 14.04 i wyżej:

sudo dpkg --add-architecture i386

sudo apt-get update

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

Ubuntu 12.04

echo "foreign-architecture i386" > /etc/dpkg/dpkg.cfg.d/multiarch

sudo apt-get update

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

RedHat i pochodne (RHEL, Fedora, CentOS)

yum install glibc.i686 libstdc++.i686

Arch Linux

Nie zapomnij wpierw włączyć repozytorium multilib.

pacman -S lib32-gcc-libs

Login Failure: No Connection

Na serwerach linuksowych można doświadczyć następującego problemu "Login Failure: No Connection". Problem jest związany z brakującymi wpisami w iptables. Należy dodać coś podobnego:

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

Lista wymaganych portów znajduje się tutaj: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english

Wikipedia - Letter.png
This article has not been added to any content categories. Please help out by adding categories.
January 2024