123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- @echo off
- rem ----- Configuration -----
- rem Defines the server type (txt or sql).
- set SERVER_TYPE=txt
- rem Defines how long to wait before restarting (in seconds).
- set SLEEP_TIME=15
- rem Defines whether to run all servers in one window (yes or no).
- set SINGLE_WINDOW=no
- rem ----- ------------- -----
- :L_Init
- set this=%0
- if %SERVER_TYPE% == txt set suffix=
- if %SERVER_TYPE% == sql set suffix=_sql
- if %SINGLE_WINDOW% == yes set wndswitch=/B
- :L_Main
- set command=%1
- if "%command%" == "" goto L_DefaultAction
-
- if %command% == exec goto L_ExecServerExe
- if %command% == start goto L_StartServerExe
- if %command% == stop goto L_StopServerExe
- if %command% == restart echo "TODO"
- goto L_EOF
- :L_DefaultAction
- :L_StartServer
- call %this% start login-server%suffix%.exe
- call %this% start char-server%suffix%.exe
- call %this% start map-server%suffix%.exe
- goto L_EOF
- :L_StopServer
- call %this% stop login-server%suffix%.exe
- call %this% stop char-server%suffix%.exe
- call %this% stop map-server%suffix%.exe
- goto L_EOF
- :L_StartServerExe
- set filename=%2
- if "%filename%" == "" goto L_StartServer
- if exist %filename% goto L_HaveExe
- echo Cannot start '%filename%' because the file is missing!
- goto L_EOF
- :L_HaveExe
- echo Starting %filename%...
- start "%filename%" %wndswitch% %this% exec %filename%
- goto L_EOF
- :L_StopServerExe
- set filename=%2
- if "%filename%" == "" goto L_StopServer
- if exist %windir%\system32\taskkill.exe goto L_HaveTaskKill
- echo The 'stop' command is not available on your system.
- exit
- :L_HaveTaskKill
- rem CAUTION! This will kill all processes called %filename%.
- echo Stopping '%filename%'...
- taskkill /F /FI "WINDOWTITLE eq %filename% - %this% exec %filename%"
- taskkill /F /IM "%filename%"
- goto L_EOF
- :L_ExecServerExe
- %filename%
- echo .
- echo .
- echo Server exited, restarting in %SLEEP_TIME% seconds! Press CTRL+C to abort!
- ping.exe -n %SLEEP_TIME% 127.0.0.1 > nul
- goto L_ExecServerExe
- :L_EOF
|