Last active
June 18, 2017 22:56
-
-
Save TheEagleByte/9ab3efbb96076f8281c4ecf0c297a342 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
COLOR 0B | |
TITLE Arma 3 Server Auto Restarter | |
SETLOCAL EnableExtensions enabledelayedexpansion | |
set EXE=arma3server_x64.exe | |
set /A restartCounter=0 | |
rem Change this to the amount of Minutes you want the server to restart each time. | |
Set minutesToRestart=240 | |
goto SelectServerType | |
:SelectServerType | |
cls | |
echo Arma 3 Server Launcher. | |
echo. | |
echo 1 - Default Server | |
echo. | |
set /P mod=Select Server Number: | |
if "%mod%"=="1" goto SetRestartTime | |
goto Server_Error | |
:Server_Error | |
cls | |
echo. | |
echo Invalid Server Code, Press Any Key To Enter Another One... | |
pause > NUL | |
goto SelectServerType | |
:SetRestartTime | |
cls | |
for /F "tokens=1-3 delims=:." %%a in ("%time%") do ( | |
set timeHour=%%a | |
set timeMinute=%%b | |
set timeSeconds=%%c | |
) | |
set cTime=%timeHour%:%timeMinute%:%timeSeconds% | |
set /A newTime=timeHour*60 + timeMinute + %minutesToRestart% | |
set /A timeHour=newTime/60, timeMinute=newTime%%60 | |
if %timeHour% gtr 23 set timeHour=0 | |
if %timeHour% lss 10 set timeHour=0%timeHour% | |
if %timeMinute% lss 10 set timeMinute=0%timeMinute% | |
set restartTime=%timeHour%:%timeMinute%:%timeSeconds% | |
echo The server was started at %cTime% and will auto restart at %restartTime%. | |
goto StartArma3Server | |
:StartArma3Server | |
echo Starting Arma 3 Server, The server has been restarted %restartCounter% times. | |
if "%mod%"=="1" start /b arma3server_x64.exe -port=2302 "-config=server\server.cfg" "-cfg=server\basic.cfg" -world=Altis -noSound -noSplash -noPause -loadMissionToMemory -autoInit -enableHT | |
timeout 10 >nul | |
goto CheckServerRunning | |
:CheckServerRunning | |
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto ServerFound | |
goto ServerNotFound | |
:ServerFound | |
for /F "tokens=1-3 delims=:." %%a in ("%time%") do ( | |
set timeHour=%%a | |
set timeMinute=%%b | |
set timeSeconds=%%c | |
) | |
set /A newTime=timeHour*60 + timeMinute | |
set /A timeHour=newTime/60, timeMinute=newTime%%60 | |
if %timeHour% gtr 23 set timeHour=0 | |
if %timeHour% lss 10 set timeHour=0%timeHour% | |
if %timeMinute% lss 10 set timeMinute=0%timeMinute% | |
set theCurrentTime=%timeHour%:%timeMinute%:%timeSeconds% | |
if %restartTime% LSS %theCurrentTime% goto KillRestartServer | |
timeout 10 >nul | |
goto CheckServerRunning | |
:ServerNotFound | |
echo server not found | |
timeout 5 >nul | |
goto SetRestartTime | |
:KillRestartServer | |
set /A restartCounter+=1 | |
echo Please wait while the server is restarted. | |
timeout 1 >nul | |
taskkill /F /IM %EXE% >nul | |
timeout 15 >nul | |
goto SetRestartTime |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment