SpielzeitManager bietet die Möglichkeit, benutzerdefinierte Skripte nach oder vor dem Spielen eines Spieles, auszuführen. Du kannst beispielsweise ein eigenes Skript schreiben, welches Screenshots aus dem Spiel umbenennt, verschiebt oder sogar Backups deiner Speicherstände erstellt.
Auf dieser Seite
Damit die Funktion der Skripte aktiviert wird, müssen zunächst in den Einstellungen die erweiterten Funktionen aktiviert werden. Das geht unter „Extras“ → „Einstellungen“ → „Allgemein“:
Anschließend taucht im Hauptfenster unter dem Menüpunkt Spiel der neue Punkt „Skript“ auf:
Es öffnet sich schließlich der entsprechende Dialog:
Es gibt zwei Arten von Skripten, die hier eingestellt werden können: „Vor dem Spielen“ und „Nach dem Spielen“. Das Skript „Vor dem Spielen“ wird ausgeführt, wenn ein Spiel über den SpielzeitManager gestartet wird. Optional kann SpielzeitManager das eigentliche Starten des Spiels hinauszögern, bis das Skript fertig ausgeführt ist. Das Skript „Nach dem Spielen“ wird ausgeführt, wenn das Spiel beendet wurde.
Beispielskript: Fraps-Screenshots umbenennen
Während ich Computerspiele spiele, nehme ich gerne Screenshots auf. Diese Screenshots nehme ich in der Regel mit dem Tool Fraps auf. Fraps benennt die Screenshots standardmäßig nach folgendem Schema:
Spieltitel Zeitstempel.Extension
Da der Spieltitel nicht immer meinen Wünschen entspricht, habe ich ein Skript geschrieben, welches den Spieltitel nach meiner Spielsitzung automatisch nach meinen Wünschen anpasst. Im folgendem Beispiel wird der Spieltitel Oblivion durch den Spieltitel Nehrim ersetzt. In meinem Beispiel wird also „oblivion 2016-03-09 19-34-10-81.png“ in „nehrim 2016-03-09 19-34-10-81.png“ umbenannt. Der Zeitstempel bleibt natürlich unangetastet.
@echo off
REM Copyright by Nocksoft
REM http://www.nocksoft.de
REM - - - - - - - - - - - - - - - - - -
REM Erstellt von: Rafael Nockmann
REM Aktualisiert: 10.03.2016
REM Beschreibung:
REM Benennt Dateien nach bestimmten Kriterien um.
REM ##############################################################################################
setlocal EnableDelayedExpansion
rem START Optionen
rem Anfangspunkt der Suche.
set path=D:\Bilder\Screenshots\Fraps
rem Alter und neuer Teilstring des Dateinamens.
set oldSubstring=oblivion
set newSubString=nehrim
rem Es werden nur Dateien berücksichtigt, die mindestens n Tage alt sind. Beispiel: -5
rem Es werden nur Dateien ab dem dd.mm.yyyy berücksichtigt. Beispiel: 09.03.2016
set days=%date%
rem Gibt an, ob auch in Unterordnern gesucht werden soll.
set recursive=false
rem Logdatei.
set logFile=D:\Software\Games\spielzeitmanagerscripts\nehrim_renameScreenshots.cmd.log
rem ENDE Optionen
if /i %recursive%==true (
set recursive=-s
) else (
set recursive=
)
for /f "delims=" %%i in ('C:\Windows\System32\forfiles -p %path% %recursive% -m *%oldSubstring%*.* -d %days% -c "cmd /c echo @path"') do (
set file=%%i
set newFileName="!file:%oldSubstring%=%newSubString%!"
rem Dateinamen aus Dateipfad ermitteln
for /f "delims=" %%f in (!newFileName!) do (
set newFileName=%%~nxf
)
ren !file! "!newFileName!"
set timestamp=%date% %time:~0,8%
set output=!timestamp!: !file! wurde in "!newFileName!" umbenannt.
echo !output!
echo !output! >> %logFile%
)
echo Der Vorgang wurde erfolgreich abgeschlossen.
echo. >> %logFile%
pause
Dieses Skript benennt nur Screenshots vom aktuellen Tag um. Um das Skript zu verwenden, müssen mindestens folgende Dinge an die eigene Umgebung angepasst werden:
- path: Hier ist der Pfad anzugeben, in dem die Screenshots liegen. Enthält der Pfad Leerzeichen, ist er dringend in Anführungszeichen zu setzen. Der Pfad darf keinen abschließenden Backslash enthalten.
- oldSubstring: Alter Spieltitel.
- newSubstring: Neuer Spieltitel.
- logFile: Pfad zur Logdatei. Enthält der Pfad Leerzeichen, ist er dringend in Anführungszeichen zu setzen.
Anschließend kann das Skript in einem beliebigen Texteditor als Batchdatei (*.cmd) gespeichert und in SpielzeitManager dem entsprechenden Spiel hinzugefügt werden.
Beispielskript: Spielstände automatisch sichern
(Fast) jeder Spieler kennt es: Ein Spielstand ist kaputt und lässt sich nicht mehr laden oder man hat im Spiel eine falsche Entscheidung getroffen und den entsprechenden Spielstand überschrieben. Um für diesen Fall gewappnet zu sein, zeige ich ein Skript, welches nach jedem Spielen ein neues Backup der Spielstände anlegt. Damit die Festplatte nicht explodiert, werden Backups, die älter als n Tage alt sind, gelöscht. Das Skript setzt ein installiertes 7-Zip im folgenden Pfad voraus: C:\Program Files\7-Zip\
7z.exe.
@echo off
REM Copyright by Nocksoft
REM http://www.nocksoft.de
REM - - - - - - - - - - - - - - - - - -
REM Erstellt von: Rafael Nockmann
REM Aktualisiert: 12.03.2016
REM Beschreibung:
REM Legt Backups der Spielstände an.
REM ##############################################################################################
setlocal EnableDelayedExpansion
rem START Optionen
rem Speicherort zu dem Spielstand.
set sourcePath="C:\Users\rafae\Documents\Stronghold Crusader 2\"
rem Zielspeicherort für Backup
set targetPath=D:\Backups\Savegames\Stronghold Crusader 2\
set targetPathToClean="D:\Backups\Savegames\Stronghold Crusader 2"
rem Logdatei.
set logFile=D:\Software\Games\spielzeitmanagerscripts\strongholdcrusader2_backupSavegame.cmd.log
rem Es werden nur Dateien berücksichtigt, die mindestens n Tage alt sind. Beispiel: 10
set days=10
rem ENDE Optionen
set timestamp=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%%time:~3,2%
set backupFile=backup_%timestamp%.zip
set fullBackupPath="%targetPath%%backupFile%"
"C:\Program Files\7-Zip\7z.exe" a %fullBackupPath% %sourcePath%
set timestamp=%date% %time:~0,8%
set output=%timestamp%: Backup wurde erfolgreich erstellt: %fullBackupPath%
echo %output%
echo %output% >> %logFile%
echo Backup erfolgreich erstellt.
for /f "delims=" %%i in ('C:\Windows\System32\forfiles -p %targetPathToClean% -m *.zip -d -%days% -c "cmd /c echo @path"') do (
set file=%%i
del !file!
set timestamp=%date% %time:~0,8%
set output=!timestamp!: Die Datei !file! wurde erfolgreich gelöscht.
echo !output!
echo !output! >> %logFile%
)
echo Alte Backups erfolgreich gelöscht.
pause
Dieses Skript legt nach jeder Spielsitzung ein Backup der Spielstände an. Um das Skript zu verwenden, müssen folgende Dinge an die eigene Umgebung angepasst werden:
- sourcePath: Hier ist der Pfad anzugeben, in dem die Spielstände liegen. Enthält der Pfad Leerzeichen, ist er dringend in Anführungszeichen zu setzen. Der Pfad muss einen abschließenden Backslash enthalten.
- targetPath: Enthält den Pfad zu den Backups. Der Pfad muss einen abschließenden Backslash enthalten.
- targetPathToClean: Enthält den Pfad zu den Backups. Der Pfad darf keinen abschließenden Backslash enthalten.
- logFile: Pfad zur Logdatei. Enthält der Pfad Leerzeichen, ist er dringend in Anführungszeichen zu setzen.
- days: Bestimmt die Anzahl an Tage. Backups die älter als dieser Wert sind, werden gelöscht.
Anschließend kann das Skript in einem beliebigen Texteditor als Batchdatei (*.cmd) gespeichert und in SpielzeitManager dem entsprechenden Spiel hinzugefügt werden.