In diesem Tutorial geht es geht um eine Schiebetür mit Glasscheibe. Man kann eine solche Schiebetür nur mit ein paar Tricks in Halflife bauen, da bekannterweise ein Brush nur zu einem Entity (entweder Schiebetür oder Glasscheibe) werden kann.
Vorweg ein paar Dinge: Eine komplette Glasscheibe als Schiebetür zu bauen, ist simpel, da Halflife das Entity func_door bereits mit den nötigen Attributen Render Mode, Render FX, FX Color und FX Amountausgestattet hat. Damit kann man aber nur eine simple Glasscheibe bauen, die als Schiebetür arbeitet.
Desweiteren hat Halflife die unangenehme Eigenschaft, den Spieler selbst an nur 1 Unit großen, überstehenden Kanten hängenbleiben zu lassen, wenn man ungünstig steht. Dieses Verhalten von Halflife hat mich in früheren Versionen meiner Glasschiebetür erheblich zum Grübeln gebracht. Warum, werden wir noch sehen.
Kommen wir also zum ersten Teil der Glasschiebetür: Wir bauen aus vier Blöcken einen Türrahmen und fügen die Enden r_speed gerecht zusammen:
Dann verkleinern wir das Grid soweit, daß wir die Glasscheibe mittig einpassen können.
Dabei sollten Ober- und Unterkante der Glasscheibe bündig an den Rahmen drangehen. Wichtig ist jetzt (um nicht mit sinnlosen Lip-Werten herumexperimentieren zu müssen), daß die Glasscheibe an beiden Seiten bis zum äußeren Rahmenrand erweitert wird.
Jetzt kann man in Bild 2 erkennen, daß vorne und hinten eine Gridbreite Platz zwischen der Glasscheibe und dem Rahmen ist. Der Rahmen, da er ja breiter ist als die Scheibe, entwickelt dadurch die anfangs erwähnte Kante, an der man hängenbleibt. Später, wenn die Schiebetür funktioniert, blockiert der Spieler dadurch den Rahmen (dieser bleibt stehen) und nur die Glasscheibe wird weggeschoben, was natürlich absolut irreal aussieht! Um das zu verhindern, müssen wir nun zwei weitere Blöcke im Format der Glasscheibe erstellen und diese vorne und hinten im Rahmen einsetzen:
Das erzeugt eine glatte Oberfläche, die bündig ist mit dem Rahmen. Sodann machen wir den Rahmen, die Glasscheibe und die beiden Blockierblöcke jeweils einzelnd zu func_door's:
Nun müssen wir nur noch die Attribute und Class-Flags setzen, damit die gesamte Schiebetür auch funktioniert.
Fangen wir beim Rahmen an:
Dann die Glassscheibe:
Zuletzt jeweils die beiden Antiblockier-Blöcke:
Und fertig ist unsere Glasschiebüre.
Hinweis: Diese Tür sollte man nicht per Berührung öffnen dürfen, da ansonsten nur der Rahmen und/oder einer der Antiblockier-Blöcke bewegt wird!
Besser man triggert die Schiebetür mit einem func_button oder einem trigger_multiple-Block. Als Target gibt man dann den Namen des Rahmens an (also z.B. schiebetuer1). Außerdem sollte man gerade bei einem trigger_multiple darauf achten, daß das Attribut Delay before reset mindestens 1 Sekunde größer ist als der Wert Delay before close der Tür-Entitys