CS:GO Dedicated Server Update

  • Guten Morgen zusammen,

    ich lasse Privat auf einem Windows Server 2012 einen CS:GO
    Server laufen. Da gibt es nur das Problem das sobald Steam ein Update für CS:GO
    rausbringt dieses nicht automatisch eingespielt wird der Server nur folgende
    Meldung rausbringt "Your server is out of date. Please update and restart."
    Da habe ich mir gedacht das kann man bestimmt mit einem
    Script machen, dass man den Server nicht immer von Hand kontrollieren muss und
    gegebenen falls Updaten.
    Ich habe das ganze mal so Probiert

    [autoit]

    While 1While 2
    If NOT
    ProcessExists("srcds.exe") Then

    [/autoit][autoit][/autoit][autoit]

    RunAs ("USER", "DOMAIN","PW", "4", "C:\HLServer\csgo\srcds.exe -game csgo -console -usercon +game_type 1 +game_mode 0 +mapgroup GunGame +map ar_monastery -maxplayers_override 16")

    [/autoit][autoit][/autoit][autoit]

    Sleep(6500)

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Sleep(500)

    [/autoit][autoit][/autoit][autoit]

    Wend

    [/autoit][autoit][/autoit][autoit]

    While 3

    [/autoit][autoit][/autoit][autoit]

    $text =
    WinGetText("RAUON-GunGame", "")

    [/autoit][autoit][/autoit][autoit]

    If
    StringInStr($text, "Your server is out of date. Please update and restart.",1) Then

    [/autoit][autoit][/autoit][autoit]

    ExitLoop

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Sleep(500)

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit]

    WinClose("RAUON-GunGame","")

    [/autoit][autoit][/autoit][autoit]

    Sleep(3000)

    [/autoit][autoit][/autoit][autoit]

    RunAs ("USER", "DOMAIN", "PW", "4", "C:\HLServer\Steamcmd\steamcmd.exe")

    [/autoit][autoit][/autoit][autoit]

    Sleep(30000)

    [/autoit][autoit][/autoit][autoit]

    Send("login USER PW")

    [/autoit][autoit][/autoit][autoit]

    Send("{Enter}")

    [/autoit][autoit][/autoit][autoit]

    Sleep(30000)

    [/autoit][autoit][/autoit][autoit]

    Send("force_install_dir ../csgo")

    [/autoit][autoit][/autoit][autoit]

    Send("{Enter}")

    [/autoit][autoit][/autoit][autoit]

    Sleep(30000)

    [/autoit][autoit][/autoit][autoit]

    Send("app_update 740")

    [/autoit][autoit][/autoit][autoit]

    Send("{Enter}")

    [/autoit][autoit][/autoit][autoit]

    Sleep(300000)

    [/autoit][autoit][/autoit][autoit]

    Send("Exit")

    [/autoit][autoit][/autoit][autoit]

    Send("{Enter}")

    [/autoit][autoit][/autoit][autoit]

    Sleep(30000)

    [/autoit][autoit][/autoit][autoit]

    While 4

    [/autoit][autoit][/autoit][autoit]

    If NOT
    ProcessExists("steamcmd.exe") Then

    [/autoit][autoit][/autoit][autoit]

    ExitLoop

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Sleep(500)

    [/autoit][autoit][/autoit][autoit]

    Wend

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit]

    Sleep(1000)

    [/autoit][autoit][/autoit][autoit][/autoit]

    Allerdings
    funktioniert dies so nicht :)
    Er startet mir den Server aber das war es auch schon, ich denke ja dass er das Consolen Fenster nicht richtig ausliest.

    Würde mich über Hilfe sehr freuen.

    Schon mal vielen Dank im Voraus


    MFG
    Marvin

  • Hallo Chip,
    danke für die Antwort, aber wenn ich das nicht falsch verstehe macht der das so ja auch nicht auf dauer Automatisch, wenn doch dann Steam ein Update bringt habe ich ja wieder nur die Message das da stehen der Server ist out of Date und macht nicht selbständig das update.

  • Hallo,

    ich habe jetzt mal was gegoogelt und wenn ich das richtig verstehe wird mein Problem dadrin liegen, dass man Text nicht so einfach aus ner CMD (Console) auslesen kann, oder habe ich da was falsch verstanden?
    Gibt es den eine Lösung dafür oder werde ich das so nicht ans Laufen bekommen?

    Gruß
    Marvin

  • Du kannst mit den Befehlen

    [autoit]

    StdoutRead
    StdinWrite

    [/autoit]


    auf Konsolenausgaben zugreifen. Kannst ja mal ein bisschen rumprobieren. ;)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

  • HI General Kaboom,

    wo genau ist den dein Problem?

    EDIT:
    "Habe dir mal eine PN mit einer Schritt für Schritt Anleitung fürs Installieren geschickt, hoffe hilft dir weiter"

    Hi Nathax,

    danke für die Antwort. Ein Freund der sich jetzt nicht mit AutoIT auskennt meinte es müsste grundsätzlich so gehen

    [autoit]

    While
    $pid=run

    [/autoit][autoit][/autoit][autoit]


    $text = StdoutRead($pid)

    [/autoit][autoit][/autoit][autoit]


    If StringInStr($text, "Your server is out of date. Please update and
    restart.",1) Then

    [/autoit][autoit][/autoit][autoit]


    ExitLoop

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit]


    nur ist mein Problem jetzt das AutoIT wohl mit run nichts anfangen kann.
    Ziel ist es ja alle Laufende Prozesse nach den Text zu durchsuchen, könnte mir eine vielleicht helfen was ich bei AutoIT anstatt $pid=run schreiben muss damit alle Prozesse abgeklappert werden.

    Gruß
    Marvin

    Einmal editiert, zuletzt von McRau (22. Februar 2013 um 09:42)