Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.12.2007, 06:56
Orbis



Guten Morgen,
ich habe ein Problem mit meinem Aufzug und brauche eure Hilfe. Auch das Tutorial und die SuFu konnte mich da nicht viel weiter bringen. Und bei den Mentoren wüsste ich nicht, wen ich anschreiben sollte.
Der Aufzug soll in insgesamt 10 Etagen fahren. In jeder Etage befindet sich am Eingang zum Aufzug eine Tür, die sich natürlich öffnen sollte, wenn der Aufzug dort hält. Der Aufzug hat auch noch eine Tür, die sich ebenfalls öffnen sollte, wenn der Aufzug hält. Soweit kein Problem für mich.

Aber jetzt kommen die Schwierigkeiten:
1. Der Aufzug soll erst starten, wenn die Tür im Aufzug und die Tür in der Etage wieder geschlossen ist.
2. Da der Aufzug in einer Map für den Zombie-Mod sein soll, sollte es nicht möglich sein, den Aufzug so zu steuern, dass ein oder mehrere Spieler immer zwischen 2 Etagen fahren, ohne dass sich die Türen öffnen. Hab mir da zwar schon was überlegt, aber mit der Umsetzung hapert es ein wenig.

Und zwar sollte der erste gedrückte Button zum "Primär-Ziel" werden. Alle weiteren gedrückten Knöpfe sollten dann erstmal im Hintergrund bleiben, bis das Primär-Ziel erreicht oder der Aufzug am Stockwerk vorbeikommt. Wenn der Aufzug dort vorbeikommt, soll er dort dann einen kurzen zwischenstop machen, damit die Spieler dort ein- bzw. aussteigen können. Sobald das Primär-Ziel erreicht wurde, sollte der am frühesten gedrückte Button, der noch nicht abgefahren wurde, zum nächsten Primär-Ziel werden und alles fängt wieder von vorne an.

Um es etwas zu verdeutlichen, was ich vorhabe, kommt jetzt ein Beispiel:

Beispiel:
1. Aufzug steht auf der 7. Etage
2. Der Button für die 3. Etage wird gedrückt.
3. Der Aufzug macht sich auf den Weg zur 3. Etage (3. Etage wird zum Primär-Ziel)
4. Der Button für die 4. Etage wird gedrückt
5. Der Button für die 8. Etage wird gedrückt
6. Der Button für die 1. Etage wird gedrückt
7. Der Aufzug hält an der 4. Etage, öffnet die Türen, schließt die Türen, macht sich wieder auf den Weg zur 3. Etage
8. Der Button für die 5. Etage wird gedrückt
9. Der Aufzug erreicht die 3. Etage, öffnet die Türen, schließt die Türen, macht sich auf den Weg zur 8. Etage (8. Etage wird zum Primär-Ziel)
10. Der Aufzug hält an der 5. Etage, öffnet die Türen, schließt die Türen, macht sich wieder auf den Weg zur 8. Etage
11. Der Aufzug erreicht die 8. Etage, öffnet die Türen, schließt die Türen, macht sich auf den Weg zur 1. Etage (1. Etage wird zum Primär-Ziel)
12. Der Aufzug überquert die 6. Etage
13. Der Button für die 6. Etage wird gedrückt
14. Der Aufzug erreicht die 1. Etage, öffnet die Türen, schließt die Türen, macht sich auf den Weg zur 6. Etage (6. Etage wird zum Primär-Ziel)

Ich hoffe, ich konnte es einigermaßen deutlich erklären.

Gruß,
Orbis

--


Dieser Beitrag wurde am 09.12.2007 um 06:57 von Orbis bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
11.12.2007, 14:46
Orbis



OK... ist warscheinlich doch etwas zu kompliziert erklärt.
Nunja... ich bin auch schon selbst etwas weiter gekommen.
Problem 1 habe ich mit einem math_counter gelöst. Jede FullyClosed Tür erhöht den Wert des math_counters um 1. Der Fahrstuhl (oder besser gesagt, der logic_compare im Fahrstuhl) wird erst aktiviert, sobald der math_counter den MaxValue (Anzahl der Türen) erreicht. Ich frage mich, warum keiner von euch Pros auf die Lösung gekommen ist.
Problem 2 ist auch schon fast gelöst. Mein einziges Problem ist nur noch, dass ich nicht weiß, wie ich die Reihenfolge der Tastendrücke speichern und wieder aufrufen kann. Eine Möglichkeit könnte sein, dass ich 10 math_counter einbaue (für jede Etage einen). Jedes mal wenn ich dann einen Button im Aufzug oder auf einer Etage drücke, prüft er, ob bereits ein button gedrückt wurde, der für diese Etage zuständig ist. Wenn ja, wird der Knopfdruck ignoriert. Wenn nein, sollte der erste math_counter geprüft werden, ob er schon einen Etagen-Wert enthält. Wenn ja, wird der 2. math_counter geprüft (usw). Wenn nicht, bekommt der math_counter den Wert der Etage zugewiesen.
So weit wieder kein Problem Das Problem taucht für mich erst auf, wenn einer der Werte weitergegeben werden soll. Also z.B. wenn ich ein Ziel erreiche, müsste dann der Wert des entsprechenden math_counters mit dem Wert des Nachfolgenden math_counters überschrieben werden.

Hier eine Demonstration, wie sich die math_counter im oberen Beispiel verhalten sollen:

1. [Alle math_counter sind "leer"]
2. [1. math_counter bekommt Wert 3]
3. nix neues passiert
4. [2. math_counter bekommt Wert 4]
5. [3. math_counter bekommt Wert 8]
6. [4. math_counter bekommt Wert 1]
7. [2. math_counter bekommt den Wert vom 3. math_counter] [3. math_counter bekommt den Wert vom 4. math_counter] [4. math_counter wird "leer"]
8. [4. math_counter bekommt Wert 5]
9. [1. math_counter bekommt den Wert vom 2. math_counter und überträgt diesen an einen logic_compare] [2. math_counter bekommt den Wert vom 3. math_counter] [3. math_counter bekommt den Wert vom 4. math_counter] [4. math_couner wird "leer"]
[...]

Das übertragen des Wertes von "Value" eines math_counters auf andere Entities müsste doch irgendwie möglich sein, oder?

--


Dieser Beitrag wurde am 11.12.2007 um 14:46 von Orbis bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
11.12.2007, 18:15
McScore



Ich habe mir aus Faulheit deine Fragen noch nicht durchgelesen, doch zu deiner letzten habe ich eine unbefriedigende Antwort: Nein, leider nicht wirklich. Richman hat sich da auch schon drüber den Kopf zerbrochen. Man kann sich meist mit logic_case's Helfen, wenn das auch _sehr_ kompliziert werden kann.

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42

zum Seitenanfang zum Seitenende Profil || Suche
003
12.12.2007, 19:45
mappper_cfg



hi
ich habe so einen aufzug mal gebaut allerding noch ein bisschen aufwändiger (15Etagen + lichtanzeige in jedenm stockwerk + aufzug wo sich der aufzug gerade befindet)
ich habe mich damals an diesem tuturial orientiert
http://www.haradirki.de/hl2/indextut38.htm
und dieses dann ausgeweitet

--


Dieser Beitrag wurde am 12.12.2007 um 19:46 von mappper_cfg bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
12.12.2007, 23:04
Orbis



Das Tutorial kenn ich bereits. Hab mit den Haradirki-Tutorials die Grundlagen des Mappens gelernt. Ich habe es auch schon versucht, den Fahrstuhl im Tut auf 10 Etagen zu erweitern, jedoch ist mir das völlig misslungen. Die Türen sind ständig auf und wieder zu gegangen, die äußeren Knöpfe haben scheinbar nichts gebracht und wenn ich einen der Buttons im Fahrstuhl gedrückt habe, ist der Fahrstuhl kurz in den 2. Stock und direkt danach wieder in den 1. Stock zurückgefahren.

Naja... seitdem versuche ich halt meine eigene Idee umzusetzen.

--

zum Seitenanfang zum Seitenende Profil || Suche
005
13.12.2007, 16:35
mappper_cfg



ich habe das tutorial auch nicht zu 100% verstanden bin dann aber damals durch selber nachdenken auf die lösung gekommen aber die haradirki tutorials sind gut da hab ich eigentlich auch mappen gelernt (für HL2+mods) ich kann mal nachkucken wie ich das gemacht hab welcher button welches logic_... enity steuert hab aber grad keine zeit kann am wochenende mal nachschauen und dann hier schreiben wie ich das gemacht hab

--

zum Seitenanfang zum Seitenende Profil || Suche
006
14.12.2007, 14:41
mappper_cfg



ich hab mal meine "fertige" map (letzte version der map hab aufgehört weiterzumachen da die map vom gameplay schlecht ist) hochgeladen hier kannst du den aufug ingame anschauen (ist eine cs:s map) wenn du wissen wie die map funktioniert frag dann an konkreter stelle nach ich verste die ganzen autputs auch nichtmehr hab vergessen wie ich alles genau gemacht hab aber das zentrale enity ist ein logic_compare die buttons setzen die "SetCompareValue" augf die zahl des gewünschten stockwerks in jedem stock muss ein button sein der diese variable auf sein stockwert setzt um den aufzug zu rufen die pathtracks senden ihr Stockwerk bei der flag "OnPass" auf den wert ihrer possition an "SetValue" des logic_compare und bei den buttons und pathtracks muss 0,1(bei button) 0,5(bei strecke) danach an das logic_compare der befehl "Compare" gesendet werden kann sein dass du die zeit verändern musst aber auf jeden fall min 0,1 s später bei gleichzeitig geht es nicht ich hab die verzögerung bei 0,5 da ich die werte überall so angepasst habe dass der aufzug bei mir genau in der mitte des stockwerkes stehen bleibt und man eben hineinlaufen kann das logic_compare vergleicht dann wenn es "Compare"d wird

--


Dieser Beitrag wurde am 14.12.2007 um 14:47 von mappper_cfg bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
14.12.2007, 14:46
mappper_cfg



die 2 variablen "OnEqual" muss bei outputs dann stop stehen und be greatherthan und on less than "startforeward" oder "startbackward" ausprobieren wierum er richtig fährt dass wars dann eigentlich dass der aufzug fährt allerdings ohne türen wenn du zu den türen noch ne konkrete frage hast dann frag mich
die einzigen enitys die du brauchst sind
logic_compare und
logic_branch
bzw logic_brach hab ich nur verwendet um alle türen zu nicht überall einzeln in die outputs schreiben zu müssen sondern immer nur dieses logic_branch aufzurufen

edit:
ich hab den link ganz vergessen:
http://rapidshare.com/files/76503817/de_Hochhaus-Aufzug.bsp.html

--


Dieser Beitrag wurde am 14.12.2007 um 14:49 von mappper_cfg bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
20.12.2007, 22:49
Orbis



Erstmal vielen Dank für deine Mühe, mir die Map zukommen zu lassen. Jedoch musste ich leider feststellen, dass der Aufzug nicht gerade hilfreich für mich ist. Mein größtes (bzw. noch einziges) Problem ist es, den Aufzug so hinzukriegen, dass er die Reihenfolge der Tastendrücke wie oben beschrieben abfährt. Und ich denke, dass ich da grad eben auf einen Gedanken gekommen bin, wie ich es mithilfe "einiger" logic_branches, logic_cases und math_counters hinbekommen könnte.
Danke nochmal an alle Beteiligten für eure Mühe.

Gruß,
Orbis

--

zum Seitenanfang zum Seitenende Profil || Suche