Leaks:
Beispielmap: leakmap.vmf
Woran merke ich, dass ich ein Leak in der Map habe?
Das ist die bekannteste Fehlermeldung, die es gibt.Wenn ihr ein Leak in der Map habt kann das ziemlich viele Ursachen haben. Zunächst jedoch die Frage, was ist eigentlich ein Leak? Ein Leak ist im Prinzip ein Loch, welches dem Spieler (zumindest theoretisch) ermöglicht, aus der Map in den Void zu fallen. Um dies zu verhindern, kommt beim compilen dann die Fehlermeldung
***** leaked *****
Entity XXX (128 128 128) leaked!
Diese Fehlermeldung kommt im Compile-Fenster, sie sieht so aus:
Hier nocheinmal genauer:
Hier habe ich dir in dem eckigen roten Kasten die Fehlermeldung markiert. Diese Fehlermeldung ist immer ganz am Anfang des ganzen Textes im Fenster, wie ihr am Scrollbalken an der Seite sehen könnt. Wenn ihr nicht den ganzen Text nach dem Wort leaked absuchen wollt, könnt ihr auch einfach auf "Copy to clipboard" klicken, ein Schreibprogramm eurer Wahl öffnen und dort auf "Einfügen" klicken. Nun wird der Text eingefügt und ihr könnt ganz bequem mit der Volltextsuche nach dem Wort "leak" suchen.
Wie entferne ich ein Leak?
Nun zur Frage, wie man ein Leak suchen kann. Denn Maps sind meist recht groß und es ist eine ganz schön harte Arbeit, selbst nach dem Leak zu suchen. Jedoch gibt es im Hammer Editor eine sehr nützliche Funktion, die einem genau das abnimmt. Diese Funktion lautet "pointfile". Unter pointfile versteht man eine Datei, in der der Weg vom Entity zum Leak gespeichert ist. Diese Funktion findet ihr beim Menüpunkt "Map" -> "Load pointfile":

Im Bild kannst du übrigens gut das Leak sehen, in der Wand ist ein großes Loch zu sehen. Hier nochmal genauer:
Nun wird gefragt, ob das Pointfile geladen werden soll:
Hier auch noch einmal genauer:
Klickst du jetzt auf "Ja", so wird unser Pointfile geladen. Nun sieht es so aus:
Der Hammer Editor "merkt" sich immer den Weg vom nächsten Entity bis zum Leak. Dieser Weg wird durch einen roten Strich gekennzeichnet. In unserem Fall ist das Light Entity dem Leak am Nächsten. Deswegen wird auch der Fehler "Entity Light (128 128 128) is leaked!" angezeigt. Dies kann also jedes Entity sein, es muss nur nah genug am Leak liegen.
WICHTIG: Unter Umständen kann der rote Strich sehr klein bis garnicht vorhanden sein. Nämlich dann, wenn das Entity selbst im Void liegt, dann ist der Weg vom Entity zum Void gleich 0, daher wird auch kein roter Strich dargestellt.
Wenn man nun das Leak geschlossen hat, in dem man entweder eine neue Wand dort hingebaut hat oder auch einen anderen Brush so verlängert hat, dass er die Map schliesst, haben wir ein kleines Problem. Das Leak ist weg, jedoch wird der rote Strich immernoch dargestellt. Auch nach dem speichern der Map verschwindet dieser nicht. Daher müssen wir beim Menüpunkt "Map" noch "Unload Pointfile" wählen:

Nun ist das Leak weg und der nervige Strich auch. Jetzt kann man ungestört weiter mappen.
Wie kann es noch zu einem Leak kommen?
Es gibt viele Möglichkeiten, wieso ein Leak auftreten kann. In der Beispielmap habe ich dir mal ein paar Räume erstellt und in JEDEM Raum befindet sich ein Leak. Hier die Leaks, die ich in die Map eingebaut habe:
- Es befindet sich ein Entity ausserhalb der Map im Void. Hier hast du entweder die Möglichkeit das Entity zu löschen oder einen Raum drumherum bauen.
- Es befindet sich ein Spalt zwischen 2 Brushs. Das kommt besonders häufig vor, wenn man in einem kleinen Grid arbeitet und dann weiter in einem großen Grid arbeitet. Dann passen die Brushs teilweise nicht genau aneinander. In der Map ist der Spalt etwas übertrieben groß.
- Unter einem Wasser Brush befindet sich kein Boden. Es ist eigentlich nur ein Leichtsinnsfehler, aber er ist schwer zu entdecken. Daher am besten zuerst das Wasserbecken bauen und dann erst das Wasser. Dann tritt dieser Fehler nicht auf.
- Unter einem Displacement befindet sich kein Brush mehr. Displacements zählen zwar nicht als Entity, aber sie dichten die Map auch nicht ab so wie World Brushs es tun. Daher untendran noch einen Brush zum abdichten setzen.
- Ein func_detail befindet sich an der Grenze zum Void. Ebenso wie Displacements dichten auch Entities die Map nicht ab. Zwar sieht die Decke aus wie ein normaler Brush, jedoch ist es ein func_detail. Hier musst du wirklich aufpassen, dass alle func_details sich innerhalb der Map befinden.