Hallo zusammen,
ich hoste mehrere DayZ Server (Mod von Arma 2) und habe mir ein Autoit Script geschrieben was diese zu bestimmten Zeiten restarten soll. Dafür habe ich mir hier aus verschiedenen Threads zusammengesucht was ich so brauchte. Es sieht jetzt so aus:
Spoiler anzeigen
While 1 $sTime = _Time(2) & ":" & @SEC Select Case $sTime = "02:00:00" _restart3() Case $sTime = "04:00:00" _restart2() Case $sTime = "06:00:00" _restart1() Case $sTime = "08:00:00" _restart3() Case $sTime = "10:00:00" _restart2() Case $sTime = "12:00:00" _restart1() Case $sTime = "14:00:00" _restart3() Case $sTime = "16:00:00" _restart2() Case $sTime = "18:00:00" _restart1() Case $sTime = "20:00:00" _restart3() Case $sTime = "22:00:00" _restart2() Case $sTime = "00:00:00" _restart1() EndSelect Sleep(50)WEnd
Func _Time($pre) If $pre = 1 Then Return @HOUR ElseIf $pre = 2 Then Return @HOUR & ":" & @MIN ElseIf $pre = 3 Then Return @Hour & ":" & @Min & ":" & @SEC EndIfEndFunc ;==>_Time($pre)
Func _restart1() ToolTip("Sons Of Anarchy #1 wird neugestartet", 0, 0) Sleep(2000) ; Sleep to give tooltip time to display WinClose("ArmA 2 OA Console version 1.62 : port 2302", "") Sleep (30000) Run("C:\SERVER\DE 2471\arma 2 operation arrowhead\DE 2471.bat", "")EndFunc
Func _restart2() ToolTip("Sons Of Anarchy #2 wird neugestartet", 0, 0) Sleep(2000) ; Sleep to give tooltip time to display WinClose("ArmA 2 OA Console version 1.62 : port 2308", "") Sleep (30000) Run("C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #2 Chernarus Server\dayz_server.bat", "")EndFunc
Func _restart3() ToolTip("Sons Of Anarchy #3 wird neugestartet", 0, 0) Sleep(2000) ; Sleep to give tooltip time to display WinClose("ArmA 2 OA Console version 1.62 : port 2309", "") Sleep (30000) Run("C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #3 Lingor Island Server\dayz_lingor_server.bat", "")EndFunc
Könnt ihr dort einen Fehler finden?
Mein Problem dabei ist nämlich folgendes:
Da es mehrere Server sind die über eine gleichnamige .exe laufen muss ich die Serverfenster per Fensternamen killen. Die .bat startet jeweils den Server, dabei wird die MySql Datenbank gestartet und der Server an sich.
Nehme ich nur diesen Script Fetzen
[autoit]WinClose("ArmA 2 OA Console version 1.62 : port 2309", "") Sleep (30000) Run("C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #3 Lingor Island Server\dayz_lingor_server.bat", "")
[/autoit]Funktioniert der manuelle restart per Autoit Script. Wenn ich das gesamte Script nutze, bekomme ich immer folgende Fehlermeldung:
[Blockierte Grafik: http://i50.tinypic.com/dm8r4y.png]
Die .bat sieht übrigens so aus falls es notwendig ist:
Spoiler anzeigen
@echo off@start server_setup\xampp\mysql\bin\mysqld.exe --defaults-file=server_setup\xampp\mysql\bin\my.iniclsecho "Please wait...Loading"ping -n 10 127.0.0.1>nulserver_setup\perl\bin\perl -w vehicles.pl --cleanup --world chernarus 1 dayz MYSQLID MYSQLPWstart BEC\Runmecls"Expansion\beta\arma2oaserver.exe" -port=2308 "-config=Saintly\config.cfg" "-cfg=Saintly\basic.cfg" "-profiles=Saintly" -name=Saintly "-mod=@DayZ;@Saintly;" -cpuCount=4 -maxMem=1578 -exThreads=7cd server_setup\xampp & mysql_stop.bat
Die .bat und alles andere funktioniert wie gesagt wenn ich per Script fetzen manuell restarte oder selbst per Hand das Fenster schließe und die .bat starte wunderbar. Nur mit dem großen Script oben nicht. Ich hoffe jemand hat eine Idee!
Vielen Dank im Voraus
Mfg kikyou2
Edit:
Es funktioniert mittlerweile und ich möchte euch die Lösung nicht vorenthalten
In der .bat musste noch
eingetragen werden damit er die Verzeichnisse richtig findet. Jetzt klappt alles wunderbar!
-----------------
Hat sonst evtl. noch jemand Verbesserungsvorschläge für das Script?