Pl/SteamCMD: Difference between revisions

From Valve Developer Community
< Pl
Jump to navigation Jump to search
(update)
Line 5: Line 5:


1. Pobieranie SteamCMD Update Tool
1. Pobieranie SteamCMD Update Tool
:* [http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.zip Instalator Windows]
:* [http://media.steampowered.com/client/steamcmd_win32.zip Instalator Windows]
:* Linuks: wpisz <code>wget http://blog.counter-strike.net/wp-content/uploads//2012/04/steamcmd.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ć.
2. Wypakuj gdzieś na dysk zawartość pobranego archiwum
2. Wypakuj gdzieś na dysk zawartość pobranego archiwum
: {{Note|Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie [[HLDSUpdateTool]]. }}
: {{Note|Nie wypakowuj zawartości archiwum w miejsce, gdzie masz już zainstalowanego klienta Steam lub narzędzie [[HLDSUpdateTool]]. }}
:* Linuks: wpisz <code>tar xvfz steamcmd.tar.gz</code>
:* Linuks: wpisz <code>tar xvfz steamcmd_linux.tar.gz</code>
3. Uruchomienie SteamCMD po raz pierwszy
3. Uruchomienie SteamCMD po raz pierwszy
: 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>./steam.sh</code>
:: Jeśli nie działa spróbuj wpisać <code>STEAMEXE=steamcmd ./steam.sh</code>
:: Jeśli to także nie działa i spróbuj otworzyć plik w edytorze tekstu i zmienić 60 linię, aby wyglądała następująco: <code>${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE}cmd "$@"</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.''


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
Do pobrania niektórych gier niezbędne będzie zalogowanie się na swoje konto Steam
{{Note|Należy się wcześniej wylogować ze swojego klienta Steam.}}
{{Note|Należy się wcześniej wylogować ze swojego klienta Steam.}}
<syntaxhighlight>login <nazwaużytkownika> <hasło></syntaxhighlight>
login <nazwa użytkownika>
Jeśli wystąpi błąd związany z Steam Guard error należy sprawdzić email przypisany do konta i użyć kodu w następujący sposób (czynność tą wystarczy wykonać tylko raz na danym komputerze):
 
<syntaxhighlight>login <nazwaużytkownika> <hasło> <kod steam guard></syntaxhighlight>
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 się teraz wyświetlić komunikat o poprawnym zalogowaniu na konto.
 
Powinien teraz wyświetlić się komunikat o poprawnym zalogowaniu na konto.


== Pobieranie serwerów ==
== Pobieranie serwerów ==
: Example: install and validate beta version of HLDS:
app_update 90 -beta "Beta" validate
3. Once finished, type <code>quit</code> to properly log off of the Steam servers.


1. Uruchom SteamCMD i ustaw folder, gdzie ma się pobrać serwer. (Uwaga: użyj odpowiednich ukośników dla Windowsa '\' i Linuksa '/')
1. Uruchom SteamCMD i ustaw folder, gdzie ma się pobrać serwer. (Uwaga: użyj odpowiednich ukośników dla Windowsa '\' i Linuksa '/')
: <syntaxhighlight>force_install_dir <ścieżka></syntaxhighlight>
force_install_dir <path>
: {{Bug| Na niektórych dystrybucjach ścieżka nie może zawierać WIELKICH liter - zobacz [[#Znane problemy]]}}
: {{Bug| Na niektórych dystrybucjach ścieżka nie może zawierać WIELKICH liter - zobacz [[#Znane problemy]]}}
: Przykład:
: Przykład: instalacja cs_go w aktualnej ścieżce:
:* Instalacja cs_go w aktualnej ścieżce:
force_install_dir ./cs_go/
:: <syntaxhighlight>force_install_dir ./cs_go/</syntaxhighlight>


2. Instalacja i aktualizacja serwerów. Do sprawdzenia poprawności plików należy użyć komendy <code>validate</code>.
2. Instalacja i aktualizacja serwerów. <app_id> oznacza [[Steam Application IDs|ID aplikacji Steam]]. Do sprawdzenia poprawności plików należy użyć komendy <code>validate</code>. Aby uczestniczyć w becie, należy dodać do komendy parametr <code>-beta "Beta"</code>.
: <syntaxhighlight>app_update <id_aplikacji></syntaxhighlight>
app_update <app_id>
: Przykład:
: Przykład: instalacja i weryfikacja poprawności plików CS:GO:
:* Do instalacji i weryfikacji poprawności plików CS:GO:
app_update 740 validate
:: <syntaxhighlight>app_update 740 validate</syntaxhighlight>
: 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 <code>quit</code>.
3. W celu poprawnego zamknięcia programu i wylogowania się z serwerów Steam należy użyć komendy <code>quit</code>.
=== Wspierane serwery ===
Lista serwerów, które wymagają steamcmd, aby je zainstalować.
{|
|-
! scope="col" style="width: 7em" | ID
! Serwer
|-
! scope="row" | 90
| Half-Life Dedicated Server for Half-Life: Deathmatch and Counter-Strike
|-
! scope="row" | 740
| Counter-Strike: Global Offensive Dedicated Server
|-
! scope="row" | 111710
| Nuclear Dawn Dedicated Server
|-
! scope="row" | 223240
| Red Orchestra Dedicated Server
|-
! scope="row" | 212542
| Red Orchestra 2: Heroes of Stalingrad Dedicated Server
|-
! scope="row" | 215350
| Killing Floor Dedicated Server
|-
! scope="row" | 229830
| Team Fortress 2 Dedicated Server Beta
|}


== Automatyzacja SteamCMD ==
== Automatyzacja SteamCMD ==
Line 48: Line 97:
Są dwa sposoby za zautomatyzowanie SteamCMD.
Są dwa sposoby za zautomatyzowanie SteamCMD.


1. Dodawanie komend z wiersza poleceń. Przykład:
1. Dodawanie komend z wiersza poleceń. Przykłady:
: <syntaxhighlight>SteamCMD +login użytkownik hasło +force_install_dir ../csgo_ds +app_update 740 validate</syntaxhighlight>
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.
2. Stworzenie skryptu.
Line 63: Line 114:


: b. Uruchamianie SteamCMD z opcją czytania skryptu <code>+runscript</code>. Przykład:
: b. Uruchamianie SteamCMD z opcją czytania skryptu <code>+runscript</code>. Przykład:
:: <syntaxhighlight>SteamCMD +runscript csgo_ds.txt</syntaxhighlight>
steamcmd +runscript csgo_ds.txt


=== Ochrona danych logowania przy użyciu pgp na Linuksie ===
== Przykładowy plik wsadowy dla Windows ==
Stwórz swój skrypt logujący, tak jak pokazuje przykład, a następnie zapisz go jako ''update_csgo_ds.txt''. Należy zaszyfrować plik tekstowy przy użyciu symetrycznego (odwracalnego) szyfrowania:
<syntaxhighlight>
<syntaxhighlight>
gpg -c --force-mdc update_csgo_ds.txt
::=======================::
# wpisz swoje hasło
:: SteamCMD Guardian 1.1 ::
# zostanie utworzony zaszyfrowany plik update_csgo_ds.txt.gpg
::      ckynick254      ::
# usuń oryginalny plik
::=======================::
# rm update_csgo_ds.txt
set programname=SteamCMD Guardian 1.1
</syntaxhighlight>
::=======================::
Deszyfracje można sprawdzić za pomocą:
::  SET YOUR VARIABLES!  ::
<syntaxhighlight>
::=======================::
gpg -d update_csgo_ds.txt.gpg
set servername=
# wpisz swoje hasło
set username=
# tekst zostanie wyświetlony, gdy hasło będzie wpisane poprawnie
set password=
</syntaxhighlight>
::=======================::
Gdy wszystko będzie ok, poniższy skrypcik przekieruje odszyfrowane hasło bezpośrednio do steam.sh:
::      Your folder      ::
<syntaxhighlight lang="bash">
::    Replace after =    ::
#!/bin/sh
::=======================::
read -p "Wprowadź hasło: " -s pass
set runcmd=E:\Games\
gpg --passphrase $pass -d login.gpg 2>/dev/null | STEAMEXE=steamcmd ./steam.sh
 
pass=""
::=======================::
::  End of variables    ::
::=======================::
 
:: This will keep the window clean and easy to read
@ECHO off
 
:: Sets the title of the window
title %programname% - %servername%
 
:: Clears the window incase there is anything there
cls
COLOR 1f
CD %runcmd%
 
:: Prints to the window what we are doing
ECHO %programname% has been started!
:start
ECHO.
ECHO.
ECHO  ##############################################################
ECHO  #                    Dedicated Server                        #
ECHO  # 1 - Half-Life: Deathmatch and Counter-Strike              #
ECHO  # 2 - Counter-Strike: Global Offensive                      #
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%
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
:restart
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
GOTO restart
</syntaxhighlight>
</syntaxhighlight>


Line 103: Line 226:
Rozwiązanie jest zależne od dystrybucji:
Rozwiązanie jest zależne od dystrybucji:


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


<code>sudo apt-get install ia32-libs</code>
<code>sudo apt-get install ia32-libs</code>


=== CentOS ===
=== RedHat i pochodne (RHEL, Fedora, CentOS) ===
 
<code>yum install glibc.i686 libstdc++.i686</code>
 
=== Arch Linux ===
Nie zapomnij wpierw włączyć [https://wiki.archlinux.org/index.php/Multilib repozytorium multilib].


<code>sudo yum install glibc.i686 libstdc++.i686</code>
<code>pacman -S lib32-gcc-libs</code>


== Nieudane pobieranie ==
== Nieudane pobieranie ==

Revision as of 15:52, 20 February 2013

Template:Otherlang2 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 na Steam. 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 ./steam.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

Example: install and validate beta version of HLDS:
app_update 90 -beta "Beta" validate

3. Once finished, type quit to properly log off of the Steam servers.


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ć.

ID Serwer
90 Half-Life Dedicated Server for Half-Life: Deathmatch and Counter-Strike
740 Counter-Strike: Global Offensive Dedicated Server
111710 Nuclear Dawn Dedicated Server
223240 Red Orchestra Dedicated Server
212542 Red Orchestra 2: Heroes of Stalingrad Dedicated Server
215350 Killing Floor Dedicated Server
229830 Team Fortress 2 Dedicated Server Beta


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

Przykładowy plik wsadowy dla Windows

::=======================::
:: 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
@ECHO off

:: Sets the title of the window
title %programname% - %servername%

:: Clears the window incase there is anything there
cls
COLOR 1f
CD %runcmd%

:: Prints to the window what we are doing
ECHO %programname% has been started!
:start
ECHO.
ECHO.
ECHO   ##############################################################
ECHO   #                    Dedicated Server                        #
ECHO   # 1 - Half-Life: Deathmatch and Counter-Strike               #
ECHO   # 2 - Counter-Strike: Global Offensive                       #
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%
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
:restart
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
GOTO restart

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

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 (Ubuntu, Mint)

sudo apt-get install ia32-libs

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

Nieudane pobieranie

Na systemach Windows pobieranie może się nie powieść, gdy ustawienia proxy nie są ustawione na automatyczne.

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