[SOURCE] Aufzug, der in einem beliebigem Stockwerk hält
Hier werde ich euch zeigen, wie man einen realen Aufzug (der von jedem Stockwerk aus gerufen werden kann und der nach Wunsch in jedes Stockwerk fährt) macht! Ich selbst habe den größten Teil von einer anderen Internetseite, die ich leider nimmer weiß (und auch nicht in die Favoriten gespeichert habe). Aber da es bei Mapping-Tutorial noch kein TuT dafür gibt, werde ich mir die Mühe machen und mein erstes TuT erstellen . Seid also nicht soooooooo streng mit mir
Als erstes bauen wir ein kleines Gebäude mit 5 Stockwerken und einen kleinen Aufzugsschacht. Das könnte ungefähr wie folgt aussehen:
Ich habe noch eine Leiter mit reingebaut, so dass man auch mal hoch laufen und den Aufzug von oben holen kann!
Als nächstes setzen wir in jedes Stockwert (also 5 stück) ein Entity mit folgenden Eigenschaften in den Aufzugsschacht (direkt in der Mitte):
Class: path_track
Name: Frei wählbar [ich nenne es für das erste Stockwerk 1.stock_path, für das 2. 2.stock_path, usw.]
Next Stop Target: Hier wird das nächste Ziel angewählt. Im letzten Stock bleibt dieses dann leer [also bei "1.stock_path habe ich bei "Next Stop Target" "2.stock_path]
Nun bauen wir uns aus Brushs einen Aufzug. Der Aufzug sieht bei mir so aus:
Das ist der Aufzug mit dem "path_track" in der Mitte
Sobald alle Teile fertig sind, makieren wir diese, klicken auf die rechte Maustaste (im x/y, x/z oder y/z - Fenster) und wählen den Eintrag "Tie to Entity" aus.
Bei "Class" wählen wir "func_tracktrain" (nicht zu verwechseln mit "func_tanktrain"). Dann nehmen wir folgende Einstellungen vor:
Name: Frei wählbar [bei mir heißt er "Aufzug"]
First Stop Target: Der "path_track", an dem der Aufzug starten soll [in meinem Bsp. ist das das erste Stockwerk, also 1.stock_path]
Height above track: Wie hoch der Aufzug über dem "path_track" schweben soll [bei mir 0, da er exakt ausgerichtet ist]
Registerkarte FLAGS --->aktiviert:
No Pitch: Aufzug soll sich nicht drehen
No User Control: Aufzug sollte nicht steuerbar sein (von der ferne oder so)
optional Einstellbar
Damage on crush: Bei blocken des Aufzuges wird dem Spieler den hier eingestellten Wert an Schaden zugetragen [in meinem Fall soll er gleich sterben, also 100 (oder noch besser, 200)]
Move Sound: Der Sound, der beim bewegen abgespielt werden soll.
Speed: Gibt die Fahrgeschwindigkeit des Aufzuges an.
Jetzt kommen wir zum wichtigsten! Das "logic_compare"-Entity. Setzt es irgendwo in eure Map rein (am besten in das Stockwerk, in dem der Aufzug am Anfang steht. So hab ich es jedenfalls gemacht). Dies bekommt folgende Einstellungen:
Name: Frei wählbar [bei mir heißt es "LogicCompare")
Initial Value: Dies stellt fest, wo sich unser Aufzug gerade befindet [in meiner Map ist er im ersten Stock, also den Wert "1"]
Compare Value: Das Value wird verwendet, um festzustellen, wo der Aufzug hin soll [bei mir steht er am Anfang am ersten Stockwerk, also den Wert "1"]
Bei der Registerkarte OUTPUTS nehmen wir folgende Einstellungen vor:
OnEqualTo = Wert "Wo ist der Aufzug" = Wert "Wo will ich hin"
OnGreaterThan = Wert "Wo ist der Aufzug" > Wert "Wo will ich hin"
OnLessThan = Wert "Wo ist der Aufzug" < Wert "Wo will ich hin"
So, nun gehen wir wieder zu den "path_tracks" und gehen da auch zur Registerkarte OUTPUTS. Dort nehmen wir folgendes an Einstellungen vor:
Damit sagen wir dem "Logic_Compare", wo sich unser Aufzug befindet, in dem wir den Wert (1, siehe Bild [ist bei mir die Einstellung für den path_track "1.stock_path"]) in "SetValue" schreiben
Jetzt kommen wir zu den Buttons. Erstmal zu denen, die sich im Aufzug befinden. Erstellt 5 Buttons im Aufzug. Das könnte etwa so aussehen:
Macht jeden Button zu einem Entity "func_button". Nehmt dann der Reihe nach folgende Einstellungen vor (ich mach hier wieder nur das für Button 1.]:
Name: Frei wählbar [bei mir heißt der Button "1.stock_gehen"]
Parent: Da sie mit dem Aufzug mitfahren sollen, sollte der Aufzug hier ausgewählt werden [in meinem Fall also "Aufzug"]
Registerkarte FLAGS ---> aktiviert
Use Activates: Zum drücken der "E-Taste" (Standarteinstellung bei CSS), um den Button zu drücken
Registerkarte OUTPUTS
OUTPUTS vom Button "1.stock_gehen"
optional Einstellbar
Registerkarte FLAGS ---> aktiviert
Don't Move: Button bewegt sich nicht
Und nun zu den Buttons, die sich in jedem Stockwerk befinden! Die Einstellungen sind identisch mit den Buttons im Aufzug. Einziger unterschied ist der Name und Parent. [als Name hab ich "1.stock_rufen" genommen und Parent muß leer sein, da die Buttons nirgendwo mitfahren sollen]
OUTPUTS vom Button "1.stock_rufen"
So, das wars dann auch schon. Hier ein Bild von der Registerkarte INPUTS vom "Logic_Compare":
Nun sollte euer Aufzug Betriebsbereit sein :-)! Ich hoffe, ihr habt es verstanden!
Ein paar Probleme gibt es leider! Das eine ist, das der Aufzug beim hochfahren (wenn man drin steht) etwas ruckelt (von aussen ist es normal). Aber das ist ja auch bei einfachen Aufzügen. Dann, das der Aufzug nicht 100% mit dem Boden abschließt. Da muß man einfach die "path_tracks" hoch/runter verschieben (das hängt auch mit der Geschwindigkeit zusammen! Je langsamer der Aufzug, desto eher schließt er mit dem Boden ab). Am schlimmsten ist es am Start des Aufzuges (also wenn z.B. das erste Stockwerk der Start ist). Ist der Aufzug mal gefahren und man fährt an den Startplatz zurück [in meinem Fall das 1. Stockwerk], hebt der Aufzug ziemlich vom Boden ab. Da wäre die Lösung evtl. die, das man einen extra "path_track" für den Startplatz macht. Bin aber noch nicht zum ausprobieren gekommen! So, nun viel Spaß beim rumprobieren.
MfG
DJ Flyer
P.S. Momentan denk ich auch darüber nach, wie man es am einfachsten Umsetzen kann, das eine Tür vom Aufzug erst dann aufgeht, wenn der Aufzug steht. Hab da schon mal rumprobiert, aber bisher ohne Erfolg. Sollte es jemand schaffen, wäre ich dankbar, wenn ich es erfahren würde.