[=]Barney[=]
27. Juli 2006, 17:15
also ich hab mir genau nach diesem tutorial hier (http://www.mapping-tutorials.de/forum/showthread.php?t=4962&highlight=aufzug)
mein aufzug gebaut aber die buttons funzen bei mir net(auch die buttons die im jedem stockwerk sind funzen net ??!?!
Was meint man mit den Parametern --> Wo der aufzug steht
-->Wo der Aufzug hin soll(muss ich dann die zahl des stockwerks eintragen?)
Ich hab nur Zwei Stockwerke(Oben ist dass 2. und unten ist dass 1.).Der Aufzug soll im 2.Stockwerk Starten und zum 1.Stockwerk fahren.Wenn er dann unten ist soll er wieder zum 2.Stockwerk hin(Per Button im Aufzug)
Phantomerc
27. Juli 2006, 18:01
Hast du denn auch Logic_compare oder wie das heisst gesetzt?
Hier etwas von www.thewall.de
Der Aufzug
Als erstes benötigen wir ein Gebäude mit mehreren Ebenen und eine Aufzugskabine. Die Kabine wird dann zu einem func_tracktrain. Folgende Einstellungen sind nötig:
* Name: Lift (Der Name, mit dem ihr den Lift später ansprecht)
* First stop target: Stock2 (Der path_track, an dem der Lift starten soll)
* Height above track: 0 (Wie hoch soll der Aufzug über einem path_track schweben. Mein Aufzug ist exakt ausgerichtet, also 0 units über dem path_track)
Flags:
* No Pitch (Der Aufzug soll sich nicht drehen)
* No User Control (Der Aufzug soll nicht wie z.B. ein Zug aus HalfLife 1 steuerbar sein)
Folgendes solltet Ihr setzen, müsst aber nicht:
* Damage on crush: 50 (Wenn ein Spieler den Lift blockiert, kriegt er diesen Schaden)
* Move Sound: doors/garage_move1.wav (Mir hat dieser Sound am besten gefallen)
Als nächstes erstellen wir (in meinem Fall sind es 4 Stockwerke) 4 path_track’s. Diese müssen die folgenden Einstellugen haben:
* Name: Stock1 (Die einzelnen path_track’s werden durchnumeriert wie die Stockwerke)
* Next stop traget: Stock2 (Gebt jeweils den nächsten path_track an. Der letzte hat keinen weiteren Stop.)
Wenn Ihr fertig seid, sollte es ungefähr so aussehen:
http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/1.jpg
Wo ist der Aufzug?
Sobald die path_track’s erstellt sind, benötigen wir den logic_compare. Dieser wird dafür zuständig sein, dem Aufzug zu sagen, ob er noch weiterfahren soll oder ob er in einem bestimmten Stockwerk stehenbleiben soll. Einstellungen:
* Name: LogicCompare (Der Name, mit dem der logic_compare referenziert wird)
* Initial value: 2 (Das Initial value verwenden wir immer, um festzustellen, wo der Aufzug sich gerade befindet. Am Anfang soll dieser im zweiten Stock starten.)
* Compare value: 2 (Das Compare value wird immer verwendet, um festzustellen, wo der Aufzug hin soll. Am Anfang soll dieser im zweiten Stock starten und bleiben.)
Das logic_compare wird jetzt immer getriggert (bzw. eigentlich “compared”), um den Aufzug nach oben oder unten fahren zu lassen oder um stehen zu bleiben. Das heisst, wir tragen unter Outputs folgendes ein:
* OnEqualTo - Lift - Stop - 0.00 (Wenn die Werte “Wo bin ich” und “Wo soll ich hin” also gleich sind, bleibt der Aufzug namens “Lift” stehen, und zwar sofort)
* OnGreaterThan - Lift - StartBackward - 0.00 (Wenn der Wert “Wo bin ich” grösser ist als der Wert “Wo soll ich hin”, dann muss der Aufzug namens “Lift” nach unten fahren, und zwar sofort)
* OnLessThan - Lift - StartForward - 0.00 (Wenn der Wert “Wo bin ich” kleiner ist als der Wert “Wo soll ich hin”, dann muss der Aufzug namens “Lift” nach oben fahren, und zwar sofort)
Der logic_compare muss nun getriggert werden. Dies muss auf zwei Arten passieren:
1. Der Aufzug fährt bereits und wird von jedem path_track an dem er vorbeifährt getriggert
2. Der Aufzug steht momentan und wird durch einen Spieler anhand eines Buttons getriggert
Vorbeifahrender Aufzug
Also wieder zu den path_track’s, diese bekommen nun folgende Outputs:
* OnPass - LogicCompare - SetValue “1” - 0.00 (Sobald der Aufzug vorbeifährt, wird der Wert des aktuellen Stockwerks in den LogicCompare Value “InitialValue” geschrieben)
* OnPass - LogicCompare - Compare - 0.01 (0,01 Sekunden danach wird der LogicCompare getriggert, d.h. compared)
http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/2.jpg http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/3.jpg
Wenn der Aufzug also z.B. in Stockwerk 3 vorbeifährt, weiss der locig_compare, in welchem Stockwerk wir uns befinden und kann dementsprechend entscheiden, was der Aufzug tun soll.
Damit der logic_compare aber wirklich weiss, was der Aufzug tun soll, muss er noch wissen, wo der Aufzug hin soll. Dies wiederum teilen wir dem locig_compare über func_button’s im Aufzug und in jedem Stockwerk mit.
Die Aufzug-Schick-Schalter
Als erstes erstellen wir die Schalter im Aufzug, mit denen wir den Aufzug in die verschiedenen Stockwerke schicken können. Diese erzeugen wir im Aufzug an einer Aufzugwand und machen diese zum func_button. Das ganze könnte so aussehen:
http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/4.jpg
Nehmt aber nicht wie hier die SpriteTexturen für die Zahlen, sondern macht euch
* Name: ButS1Go (Der Name des Buttons. Ich habe meine Buttons nach dem Schema “But”-Stockwerk-Funktion benannt)
* Parent: Lift (Dies ist nötig, um den Button immer mit dem Aufzug fahren zu lassen)
Flags:
* Don’t Move (Wenn der Button nicht in der Wand verschwinden soll, klickt dies einfach an)
* Use activates (Der Button kann nur über den Use-Knopf getriggert werden)
Outputs:
* OnPressed - LogicCompare - SetCompareValue “1” - 0.00 (Sobald der Button gedrückt wird, wird der Wert des Stockwerks in das wir fahren wollen in den LogicCompare Value “CompareValue” geschrieben)
* OnPressed - LogicCompare - Compare - 0.01 (0,01 Sekunden danach wird der LogicCompare getriggert, d.h. compared)
Achtung: Es gibt noch einen Input "SetValueCompare", der aber
http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/5.jpg
Dadurch fährt der Aufzug los, sobald wir den Knopf im Aufzug drücken. Der logic_compare sorgt dabei immer dafür, das wir im richtigen Stockwerk anhalten. Nun müssen wir nur noch entsprechende Buttons im Aufzug für die restlichen Stockwerke erstellen und mit den gleichen Werten wie oben versehen (natürlich mit den anderen Stockwerknummern). Nun können wir in jedes Stockwerk fahren.
Die Stockwerk-Ruf-Schalter
Danach möchten wir den aufzug natürlich auch aus jedem Stockwerk rufen können. Die Buttons haben dabei aber das gleiche Output-Schema wie die Aufzug-Schick-Schalter. Also erstellen wir in jedem Stockwerk einen Schalter, der den Aufzug ruft. Erstellt einfach einen Brush, belegt ihn mit einer Knopf-ähnlichen Textur und macht diesen Brush zum func_button mit folgenden Einstellungen:
* Name: ButS1Call (Der Name des Buttons. Ich habe meine Buttons nach dem Schema “But”-Stockwerk-Funktion benannt)
Flags:
* Don’t Move (Wenn der Button nicht in der Wand verschwinden soll, klickt dies einfach an)
* Use activates (Der Button kann nur über den Use-Knopf getriggert werden)
Outputs:
* OnPressed - LogicCompare - SetCompareValue “1” - 0.00 (Sobald der Button gedrückt wird, wird der Wert des aktuellen Stockwerks in den LogicCompare Value “CompareValue” geschrieben)
* OnPressed - LogicCompare - Compare - 0.01 (0,01 Sekunden danach wird der LogicCompare getriggert, d.h. compared)
Türen und ähnliches
Durch diese Konstruktion kann man relativ einfach auch beim drücken des Knopfes im Aufzug eine Fahrstuhltür schliessen und beim “OnEqual” des logic_compare wieder öffnen. Lasst euch einfach etwas einfallen.
Bekannte Probleme
Zwei Probleme sind mir bekannt:
1. Der Fahrstuhl ruckelt beim fahren sehr stark. Dies sieht aber nur so aus, wenn man sich IM Fahrstuhl befindet, von aussen sieht die Fahrt schön “weich” aus. Leider hilft auch ein ändern der Geschwindigkeit nicht wirklich.
2. Der Fahrstuhl hält in den Stockwerken nicht perfekt, da anscheinend die path_track’s in dem Moment getriggert werden, in dem der Aufzug auf den unteren Teil des path_track’s trifft. Da es bis zum logic_compare 0.01 Sekunden dauert, hält der Aufzug nicht direkt in der Mitte an.
Hier (http://www.thewall.de/content/media/half-life_2/tutorials/fahrstuehle/lift.zip)könnt ihr eine Beispielmap downloaden, in der das gesamte Tutorial aufgebaut ist.
Methode 2: Türen-Fahrstuhl
Um dem Fahrstuhl noch Türen hinzuzufügen, reicht es völlig aus, wenn man die Türen als func_door einfach per “Parent” Eintrag an den Fahrstuhl bindet. So muss man sie nur noch beim Anhalten öffnen, und bei Abfahren wieder schliessen.
Jetzt musst du es nur noch in deine Daten umändern, oder es mit ins tut von MT übertragen.^^
[=]Barney[=]
27. Juli 2006, 20:56
wie kann ich eine textur selbst erstellen :
Nehmt aber nicht wie hier die SpriteTexturen für die Zahlen, sondern macht euch
eine passende eigene Textur, da die Sprites auf Brushes zu visuellen Fehlern führen
(man sieht den Sprite durch alle Mauern durch).
ansonste werds ma ausprobireren thx
Prob !:mad: :Mein Fahrstuhl steht schief Was Nun ?
(alles andere funzt super)
PS: Dein Spruch is Geil unter deinem Beitrag
Chicken Yard
20. September 2006, 17:53
2. Der Fahrstuhl hält in den Stockwerken nicht perfekt, da anscheinend die path_track’s in dem Moment getriggert werden, in dem der Aufzug auf den unteren Teil des path_track’s trifft. Da es bis zum logic_compare 0.01 Sekunden dauert, hält der Aufzug nicht direkt in der Mitte an.
Ich hab jetzt schon ganz lange rumgesucht, bis ich diesen Eintrag hier endlich gefunden habe.
Ich will eine Map bauen, wo es darauf ankommt, daß alle tracktrains (5 St.) an einer Position pixelgenau (ok Tolleranz evtl. 16 Pixel) stoppen.
Bin schon verzweifelt, ob ich was falsch mache, aber anscheinend kann ich das, was ich vor hatte, in die Tonne treten. Mmmmuuuääääh.
Ich will das z.B. 2 tracktrains aus entgegengesetzten Richtungen kommen und neben einander stehen bleiben, so daß sich durch die richtig platzierten Öffnungen ein Durchgang zwischen ihnen ergibt. Die tracktrains stehen aber nie richtig und dann muß man immer den Button 2-5 Mal drücken, damit der tracktrain überhaupt weiter fährt, da er immer vom aktuellen path_track getriggert wird.
Fighting_X
17. April 2007, 20:18
ich hab das problem (2. stockwerke )wenn ich im ersten losfahre und oben bin fährt er gleich wieder runter wenn ich oben starte genau anders rum
vBulletin® v4.2.3, Copyright ©2000-2021, Jelsoft Enterprises Ltd.