Pl/SteamCMD: Difference between revisions

From Valve Developer Community
< Pl
Jump to navigation Jump to search
m (Added Russian page link)
m (Nesciuse moved page SteamCMD:pl to Pl/SteamCMD over redirect: -Language prefixes)
 
(21 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=SteamCMD|SteamCMD}}
|en=SteamCMD
'''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 [http://store.steampowered.com/news/5856/ nowym systemem zawartości] zwanym [[SteamPipe:pl|SteamPipe]]. Docelowo wszystkie gry będą używać tej metody, zamiast [[HLDSUpdateTool]].
|ru=SteamCMD:ru
}}
'''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 [http://store.steampowered.com/news/5856/ nowym systemem zawartości] zwanym [[SteamPipe]]. Docelowo wszystkie gry będą używać tej metody, zamiast [[HLDSUpdateTool]].


== Pobieranie i uruchomienie SteamCMD==
== Pobieranie i uruchomienie SteamCMD==


1. Pobieranie SteamCMD Update Tool
1. Pobieranie SteamCMD Update Tool
:* [http://media.steampowered.com/client/steamcmd_win32.zip Instalator Windows]
:* [http://media.steampowered.com/installer/steamcmd.zip Instalator Windows]
:* Linuks: wpisz <code>wget http://media.steampowered.com/client/steamcmd_linux.tar.gz</code>
:* Linuks: wpisz <code>wget http://media.steampowered.com/client/steamcmd_linux.tar.gz</code>
:: Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacz [[#biblioteki 32-bitowe na systemach Linuks 64-bit|tutaj]] jak to zrobić.
:: Jeśli posiadasz 64-bitową dystrybucję Linuksa najprawdopodobniej zaistnieje potrzeba instalacja dodatkowych bibliotek w wersji 32bit. Zobacz [[#biblioteki 32-bitowe na systemach Linuks 64-bit|tutaj]] jak to zrobić.
Line 17: Line 14:
: Otwórz wiersz poleceń i uruchom SteamCmd
: Otwórz wiersz poleceń i uruchom SteamCmd
:* Windows: wpisz <code>steamcmd</code>
:* Windows: wpisz <code>steamcmd</code>
:* Linuks: wpisz <code>./steam.sh</code>
:* Linuks: wpisz <code>./steamcmd.sh</code>
''Aplikacja zaktualizuje się automatycznie i wyświetli coś takiego <code>Steam></code>. Wpisz <code>help</code>, aby uzyskać więcej informacji.''
''Aplikacja zaktualizuje się automatycznie i wyświetli coś takiego <code>Steam></code>. Wpisz <code>help</code>, aby uzyskać więcej informacji.''


Line 53: Line 50:


{|
{|
|-
|-
! Serwer
! Serwer
! scope="col" style="width: 7em" | ID
! scope="col" style="width: 7em" | ID
! Dodatkowe opcje linii komend
! Dodatkowe opcje linii komend
|-
|-
| Half-Life Dedicated Server for Half-Life: Deathmatch and Counter-Strike
| 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
| 90
 
| +app_set_config "90 mod ricochet"
|-
|-
| Counter-Strike: Condition Zero Dedicated Server
| [[Team Fortress Classic]] dedicated server
| 90
| 90
| +app_set_config 90 mod czero
| +app_set_config "90 mod tfc"
 
|-
|-
| Counter-Strike: Global Offensive Dedicated Server
| [[Counter-Strike: Global Offensive]] dedicated server
| 740
| 740
|-
|-
| Nuclear Dawn Dedicated Server
| [[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
| 111710
|-
|-
| Red Orchestra Dedicated Server
| [[Red Orchestra: Ostfront 41-45]] Windows dedicated server
| 223240
| 223240
|-
|-
| Red Orchestra 2: Heroes of Stalingrad Dedicated Server
| [[Red Orchestra: Ostfront 41-45]] Linux dedicated server
| 223250
|-
| [[Red Orchestra 2: Heroes of Stalingrad]] oraz [[Rising Storm]] Windows dedicated server
| 212542
| 212542
|-
|-
| Killing Floor Dedicated Server
| [[Killing Floor]] Windows dedicated server
| 215350
| 215350
|-
|-
| Team Fortress 2 Dedicated Server Beta
| [[Killing Floor]] Linux dedicated server
| 229830
| 215360
 
|-
|-
| '''Poniższe nie są jeszcze obsługiwane (lista do użytku w przyszłości)'''
| [[Left 4 Dead 2]] dedicated server
 
| 222860
|-
|-
| TF2 dedicated server  
| [[Team Fortress 2]] dedicated server
| 232250
| 232250
|-
|-
| DoD:S dedicated server  
| [[Day of Defeat: Source]] dedicated server
| 232290  
| 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
|-
|-
| CS:S dedicated server  
| [[Half-Life Deathmatch: Source]] dedicated server
| 232330
| 255470
 
|-
|-
| HL2:DM dedicated server  
| [[Pirates, Vikings, and Knights II]] dedicated server
| 232370
| 17575
 
|}
|}
{{Tip| Aby zainstalować wiele modyfikacji na raz należy oddzielić ich nazwy przecinkami, np. <code>+app_set_config 90 mod czero,dod</code>.}}


== Automatyzacja SteamCMD ==
== Automatyzacja SteamCMD ==
Line 136: Line 170:
  steamcmd +runscript csgo_ds.txt
  steamcmd +runscript csgo_ds.txt


== Przykładowy skrypt dla Windows ==
== Instalacja miedzy-platformowa ==
<syntaxhighlight>
::=======================::
:: SteamCMD Guardian 1.1 ::
::      ckynick254      ::
::=======================::
set programname=SteamCMD Guardian 1.1
::=======================::
::  SET YOUR VARIABLES!  ::
::=======================::
set servername=
set username=
set password=
::=======================::
::      Your folder      ::
::    Replace after =    ::
::=======================::
set runcmd=E:\Games\
 
::=======================::
::  End of variables    ::
::=======================::


:: This will keep the window clean and easy to read
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 <code>@sSteamCmdForcePlatformType</code> (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:
@ECHO off


:: Sets the title of the window
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
title %programname% - %servername%


:: Clears the window incase there is anything there
lub poniższego skryptu:
cls
COLOR 1f
CD %runcmd%


:: Prints to the window what we are doing
<syntaxhighlight>
ECHO %programname% has been started!
@ShutdownOnFailedCommand 1
:start
@NoPromptForPassword 1
ECHO.
@sSteamCmdForcePlatformType windows
ECHO.
login anonymous
ECHO  ##############################################################
force_install_dir ../csgo_ds
ECHO  #                    Dedicated Server                        #
app_update 740 validate
ECHO  # 1 - Half-Life: Deathmatch and Counter-Strike              #
quit
ECHO  # 2 - Counter-Strike: Global Offensive                      #
</syntaxhighlight>
ECHO  # 3 - Nuclear Dawn Dedicated Server                          #
ECHO  # 4 - Red Orchestra Dedicated Server                        #
ECHO  # 5 - Red Orchestra 2: Heroes of Stalingrad Dedicated Server #
ECHO  # 6 - Killing Floor Dedicated Server                        #
ECHO  # 7 - Team Fortress 2 Dedicated Server Beta                  #
ECHO  # 8 - HELP!                                                  #
ECHO  # 9 - Exit                                                  #
ECHO  ##############################################################
ECHO.
ECHO.


:: Delete variable %A%
Zmienna może przyjąć następujące wartości: <code>windows</code>, <code>macos</code> oraz <code>linux</code>.
SET "A="
SET /P A=Set Your Choice And Press Enter:
ECHO Loading .........
IF "%A%"=="1" set app=90
IF "%A%"=="2" set app=740
IF "%A%"=="3" set app=111710
IF "%A%"=="4" set app=223240
IF "%A%"=="5" set app=212542
IF "%A%"=="6" set app=215350
IF "%A%"=="7" set app=229830
IF "%A%"=="8" ECHO.
IF "%A%"=="8" ECHO https://developer.valvesoftware.com/wiki/SteamCMD
IF "%A%"=="8" ECHO.
IF "%A%"=="8" PAUSE
IF "%A%"=="8" goto start
IF "%A%"=="9" EXIT


:: This is a return point in case the server crashes or is closed
== Przykładowy skrypt dla Windows ==
:restart
Przejrzyj i pobierz: http://pastebin.com/BRUbsGQh
ECHO.
ECHO (%date%)(%time%) %servername% is now ONLINE
ECHO Watching %servername% for crashes...
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) %servername% is now ONLINE
>> "%servername%.log" ECHO (%date%)(%time%) Watching %servername% for crashes...
 
::Start the actual update window
start /wait steamcmd +login %username% %password% +force_install_dir %runcmd%\%app%Server\ +app_update %app% validate
ECHO (%time%) WARNING: srcds closed or crashed, restarting.
ECHO.
ECHO (%date%)(%time%) Crash or Close detected!
ECHO %servername% is now restarting...
>> "%servername%.log" ECHO.
>> "%servername%.log" ECHO (%date%)(%time%) Crash or Close detected!
>> "%servername%.log" ECHO (%date%)(%time%) %servername% is now restarting...


::Server crashed or closed, so we point it to the return point to start the server again
== Przykładowy skrypt dla Linuksa ==
GOTO restart
Przejrzyj i pobierz: http://pastebin.com/hcpMpmaZ
</syntaxhighlight>


= Znane problemy =
= Znane problemy =
== Mogę pobrać i zaktualizować serwer, lecz serwer nie chce wystartować ==
Najczęstsze przyczyny:
* Linuks: Niektóre gry na pewnych dystrybucjach mają problemy z WIELKIMI literami w nazwach plików.


== biblioteki 32-bitowe na systemach Linuks 64-bit ==
== biblioteki 32-bitowe na systemach Linuks 64-bit ==
Line 246: Line 207:
Rozwiązanie jest zależne od dystrybucji:
Rozwiązanie jest zależne od dystrybucji:


=== Debian i pochodne (Ubuntu, Mint) ===
=== Debian i pochodne (Mint) ===


<code>sudo apt-get install ia32-libs</code>
<code>sudo apt-get install ia32-libs</code>
=== 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) ===
=== RedHat i pochodne (RHEL, Fedora, CentOS) ===
Line 258: Line 235:


<code>pacman -S lib32-gcc-libs</code>
<code>pacman -S lib32-gcc-libs</code>
== Nieudane pobieranie ==
Na systemach Windows pobieranie może się nie powieść, gdy ustawienia proxy nie są ustawione na automatyczne.


== Login Failure: No Connection ==
== Login Failure: No Connection ==
Line 271: Line 244:
</syntaxhighlight>
</syntaxhighlight>
Lista wymaganych portów znajduje się tutaj: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
Lista wymaganych portów znajduje się tutaj: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
{{Uncategorized|date=January 2024}}

Latest revision as of 20:53, 10 July 2024

English (en)Deutsch (de)Español (es)Français (fr)한국어 (ko)Nederlands (nl)Polski (pl)Português do Brasil (pt-br)Русский (ru)Türkçe (tr)中文 (zh)Translate (Translate)

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.pngUwaga: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.pngUwaga: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.pngBłąd: Na niektórych dystrybucjach ścieżka nie może zawierać WIELKICH liter - zobacz #Znane problemy  [todo tested in ?]
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.pngTemplate:Dictionary/Tip/pl: 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 Wikipedia icon categories. Please help out by Wikipedia icon adding categories.
January 2024