Wer bereits weiß, was eine Batch-Datei ist, darf dieses Kapitel gerne überspringen ;-)
Eine Batch-Datei ist eine normale Textdatei, die mit der Bezeichnung .bat oder .cmd (bei Windows 2000 oder XP) endet (z.b. compile.bat).
In dieser Datei sind einige Windows-Befehle enthalten.
Wenn man die Datei startet, werden die Befehle nacheinander abgearbeitet.
Dies verbraucht natürlich viel weniger Systemresourcen, als wenn der Valve Hammer Editor und der Compile gleichzeitig berechnet werden müssen.
So spürt man gerade bei größeren Maps einen Unterschied, der schon mal eine Stunde im Gegensatz zu einem normalen Compile ausmachen dürfte (Natürlich zu unserem Vorteil ;-) ).
Zum Erstellen der Datei benutzt man am besten Notepad. Ein anderer reiner Text-Editor kann jedoch auch zum Erstellen der Datei verwendet werden. Das Wichtigste sind eigentlich nur folgende Befehle:
C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vbsp.exe %1
C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vvis.exe %1
C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\vrad.exe %1
Erklärung:
bvsp.exe, vvis.exe und vrad.exe sind die Programme, die die .vmf zur .bsp umwandeln. %1 wird später an die Batch-Datei übergeben und enthält den Dateinamen der Map. So sieht also eine einfach Batch-Datei aus.
Anschließend speichern wir die Datei noch als compile.bat (aufpassen, dass beim Speichern in der Auswahlliste nicht .txt gewählt ist) in dem Verzeichnis, in dem sich die zu Compilende .vmf-Datei befindet, ab.
Die Datei wäre erstellt, jetzt muss nur noch der Mapname übergeben werden.
Hierzu gibt es mehrere Möglichkeiten, 2 davon möchte ich hier genauer erklären.
Hierzu muss man im Explorer in den Ordner gehen, in dem sich die .bat- und die .vmf-Dateien befinden. Anschließend klickt man die .vmf-Datei einmal an und zieht die Datei (bei gedrückter Maustaste) auf die .bat-Datei. Nachdem man die Maustaste losgelassen hat, sollte sich ein Fenster öffnen, in dem der Fortschritt des Compiles angezeigt wird.
Ich verwende diese Methode immer, da meine compile.bat in einem anderen Verzeichnis als die .vmf-Dateien liegt. Erstelle in einem Verzeichnis deiner Wahl eine Verknüpfung mit der compile.bat. Nun musst du in die Eigenschaften der Verknüpfung gehen und das Ziel anpassen. Hinter dem „compile.bat“ muss noch der Mapname angehängt werden.
Beispiel für den Eintrag bei „Ziel“:
C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk_content\hl2mp\compile.bat dm_testmap.vmf
Diese Verknüfung kann nun mit einem Doppelklick gestartet werden und die Map wird compiled.
Die oben angegebene compile.bat ist wirklich sehr einfach. Sie wandelt nur die Map um, ohne die .bsp in das richtige Verzeichnis zu kopieren oder andere Dinge zu machen. Deshalb habe ich hier meine eigene compile.bat angegeben, die wesentlich komplexer ist und eigentlich alles automatisch macht. Das Blaue ist der Code, kursiver Text ist die Erklärung zu dem entsprechenden Schritt.
Achtung: Die Befehle können je nach Windows-Version anders lauten! Ich habe hier Windows XP Media Center Edition und bei mir funktionieren alle Befehle. Wenn man eine Dos-Box öffnet und „HELP“ eingibt, erhält man eine Liste aller Befehle und deren Erklärung.
%echo off
Ausgabe der ausgeführten Befehle abshalten
cls
aktuellen Bildschirminhalt löschen
echo =======================
echo compile of %~n1
echo =======================
echo.
Hier wird eine Überschrift ausgegeben.
%~n1 enthält den Namen der übergebenen Map (z.B. dm_testmap)
cd C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk_content\hl2mp\mapsrc\
wechselt ins Verzeichnis, in dem die .vmf und die .bat-Dateien liegen
del %~n1.log
löscht die alte Log-Datei
SET toolpath=C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\sourcesdk\bin\
SET gamepath=C:\Programme\Valve\Steam\SteamApps\<eMail-Adresse>\half-life 2 deathmatch\hl2mp\maps\
Hier werden zwei Pfade gesetzt.
toolpath ist der Pfad, in dem vbsp.exe etc. liegen
gamepath ist der Pfad, in den die fertige .bsp kopiert werden soll
echo.
title working: bsp
ändert den Titel des Fensters in „working: bsp“
%toolpath%vbsp.exe %1
Hier wird bvsp.exe aufgerufen. Mit %toolpath% kann man auf den oben angegebenen Pfad zurückgreifen
%1 enthält den angegebenen Namen der Map + Dateiendung (also z.B. dm_testmap.vmf)
echo ==============================================
title working: vis
Hier wird zusätzlich noch ein Parameter an vvis.exe übergeben.
Es ist darauf zu achten, dass Parameter vor dem Mapnamen angegeben werden
%toolpath%vvis.exe -v %1
echo ==============================================
title working: rad
%toolpath%vrad.exe -bounce 0 -v %1
echo delete unnecessary files
echo.
del %~n1.prt
löscht die <Mapname>.prt-Datei
echo copying files
echo.
copy %~n1.bsp %gamepath%%~n1.bsp
kopiert die <Mapname>.bsp an die richtige Stelle im Mod-Verzeichnis
SET gamepath=
SET toolpath=
Die angegebenen Pfade werden nicht mehr benötigt, also werden die Defninitionen hier zurückgesetzt
title finished compile of %~n1
pause
Da evtl. Fehler erscheinen können, schließt sich das Fenster erst, wenn eine Taste gedrückt wurde
So, das war's. Ich hoffe, ich konnte euch den Batch-Compile erklären.