Mit freundlicher Genehmigung von www.sandbox.6x.to (von dort stammt dieses Tutorial).
Gegenstaende benutzen
- Alarmknopf (fuer Spieler) |
- Fahrstuhl (Grundprinzip) - Fahrstuhl (mit Tueren) |
- Leiter einbinden |
- Licht mit Schalter bedienen |
- Objekte mit einer Kette verbinden |
- Seilbahn einbinden |
- Tueren allgemein - Tuer mit Karte oeffnen |
Alarmknopf (fuer Spieler)
mit Ein-/Ausschalter, optischer & akustische Ausloesung
Voraussetzungen:
Alarmknopf = | [Archetype Entity] - [Doors_and_switches] - [Switches] - [AlarmSwitch] |
Blinklicht = | [Archetype Entity] - [Doors_and_switches] - [Switches] - [AlarmSwitchLight] |
Lautsprecher = | [SimpleEntity] - [outdoor] - [merc_structures] - [speaker] - [speaker] |
Soundspot = | [Sound] - [Soundspot] |
2 Ausloeser = | [Entity] - [Trigger] - [ProximityTrigger] |
Ausfuehrung:
Als erstes werfen wir einen Blick in [Objects] - [Archetype Entity]. Habe wir dort noch nichts bzw. nicht den Ordner [Doors_and_switches], dann muessen wir ueber den Menuepunkt [Window] - [Show Data Base View] im Feld [Entity Library] die Datei [Doors_and_switches] oeffnen. Nun sollten wir den Ordner auch unter [Archetype Entity] haben.
Wir benoetigen eine flaeche, an der wir den Alarmknopf anbringen wollen. Wir nehmen einfach eine freie Wand (z.B. [Brush] - [Buildings] - [m03] - [fort_ruin] - [fruin_tunnel_big_wall01]).
Wir platzieren den Knopf an der Wand und setzen auch gleich das Blinklicht davor. Das Licht sollte mit dem oben dicken Teil direkt am roten Button des Schalters anliegen.
Sorgt fuer einen schoenen leuchtenden Button.
Nun setzen wir noch den Lautsprecher etwas oberhalb des Alarmschalters. Schon haben wir die Optik erschaffen. Wir benoetigen nun noch den Soundspot vor dem Lautsprecher.
In [SoundSpot Properties] oeffnen wir unter [Source] die Datei [alarm1.wav]. Diese befindet sich in den Orndern 'sounds/building'.
Kommen wir nun zur Steuerung des Ganzen:
Wir brauchen zwei Trigger/Ausloeser. Jeweils um den Alarm ein- bzw. auszuschalten.
Wir setzen beide Trigger um den Schalter herum. Jedoch sollten wir darauf achten, dass beide Ausloeser nicht direkt uebereinander liegen, sonst wird es schwer, sie wieder auszuwaehlen. Weiterhin sollten wir ihre Reichweite verkleinern. Dazu unter [Entity Properties] die Werte [DimX], [DimY] und [DimZ] auf 1 setzen. Dann koennte das Ganze in etwa so aussehen:
Bei beide Ausloesern stellen wir unter [Entity Properties] die Option [ActivateWithUseButton] auf [True]. Beim 2. Ausloeser unbedingt noch [Enabled] auf [False]! Dieser Schalter muss ausgeschaltet sein, da sich die Ausloeser gegenseitig ein- und ausschalten.
Kuemmern wir uns um den 1. Ausloeser: [Input/Output Events]:
[OnEnter] = | Dynamisches Licht auf [Enable] SoundSpot auf [Play] 2. Ausloeser auf [Enable] 1. Ausloeser auf [Disable] |
Im 2. Ausloeser muessen wir nun alles wieder rueckgaengig machen:
[OnEnter] = | Dynamisches Licht auf [Disable] SoundSpot auf [Stop] 1. Ausloeser auf [Enable] 2. Ausloeser auf [Disable] |
Damit sollte der Alarmknopf funktionieren!
Hinweis:
- Der Alarmknopf kann in dieser Variante nicht gleich wieder ausgeschaltet werden, da dazu der Ausloeser/Trigger neu betreten werden muss. Ein Schritt zurueck und wieder vor, und alles funzt.
Fahrstuhl (Grundprinzip)
funktionstuechtiger Fahrstuhl ohne Tueren
Voraussetzungen:
Fahrstuhl = | [Entity] - [Elevators] - [AutomaticElevator] |
2 Ausloeser = | [Entity] - [Trigger] - [ProximityTrigger] |
Ausfuehrung:
Wir nehmen den Fahrstuhl und setzen ihn an die ungefaehre Position. Nun waehlen wir das Modell fuer den Fahrstuhl aus, da wir bisher nur eine recht eigenartiges Gebilde haben. Ueber [Entity Properties] - [Model] waehlen wir die Datei [lift_3x3x3m_b.cfg].
Folgende Optionen sollte nun auch gleich ausgeschaltet werden: [Entity Properties] - [Automatic].
Nun hat der Fahrstuhl eine Form und wir koennen ihn positionieren.
Der Fahrstuhl besitzt in der einen Ecke einen Schalter. Dort setzen wir nun den ersten [Proximity Trigger] herum. Zur besseren Uebersicht und damit man den Schalter nicht von ausserhalb betaetigen kann, sollte die Reichweite der Triggers ueber die Optionen [Proximity Trigger] - [DimX], [DimY] bzw. [DimZ] auf 1 oder 2 gesetzt werden.
Unter [Proximity Trigger] - [Input/Output Events:] - [On Enter] verknuepfen wir den Trigger mit dem Fahrstuhl und geben als Ereignis [Open] an. Das sollte dann in etwa so aussehen:
Im Bild wird faelschlicherweise 'Aktivate' angezeigt!
Wenn der Trigger gerade ausgewaehlt ist, dann koennen wir gleich unter [Entity Properties] die Option [ActivateWithUseButton] aktivierten und mit [Ctrl]-[C] den Trigger clonen. Diesen 2. Trigger schieben wir nach oben, wo der Fahrstuhl halten soll, damit wir von dort aus auch wieder nach unten fahren koennen.
Im oberen Trigger muessen wir unter [Proximityy Trigger] - [Input/Output Events:] das Ereignis [Close] einstellen.
Jetzt folgt ein wenig experimentieren: Wir hoch soll/muss/darf der Fahrstuhl fahren? Der Wert wird unter [Elevator] - [Entity Properties] - [Direction] - [Z] des Fahrstuhls eingetragen. Falls die Hoehe bereits bekannt ist und beim Erstellen der Karte der Wert [Meters Per Unit] auf '2' gestellt wurde, dann die Hoehe halbieren und eintragen.
Am Ende sollte das Ganze in etwa so aussehen:
Auch hier wurden die Verbindungen zum Fahrstuhl
nicht aktualisiert und zeigen falsche Ereignisse an!
Nun haben wir einen Fahrstuhl mit 2 Ausloesern und koennen zur Sicherheit ueber den Menuepunkt [Tools] die Option [Reloads Scripts] ausfuehren, um die ganze Sache zu aktualisieren und dann auszuprobieren.
Fahrstuhl (mit Tueren)
funktionstuechtiger Fahrstuhl mit Tueren
Dank ersteinmal an 'Moredread' aus dem Forum fuer seine Hilfe. Meine Selbstversuch ist irgendwie klaeglich gescheitert. Aber aus beidem ein bissl und es funzt.
Voraussetzungen:
Fahrstuhl = | [Entity] - [Elevators] - [AutomaticElevator] |
4 Ausloeser = | [Entity] - [Trigger] - [ProximityTrigger] |
2 Tueren = | [Entity] - [Doors] - [AutomaticDoor] |
Ausfuehrung:
Wir bauen den Fahrstuhl wie oben beim Grundprinzip angegeben mit den beiden Ausloesern im Fahrstuhl.
Wer moechte kann sich nun noch einen kleinen Schacht um den Fahrstuhl bauen. Zum reinen Verstaendnis der Arbeitsweise sollte jedoch daraufverzichtet werden...
Danach setzen wir die Fahrstuhltueren vor den Ein-/Ausgang. Wir benennen die Tueren entsprechend ihrem Standort: 'door_top' (oben) und 'door_bottom' (unten). Bei beiden Tueren nehmen wir unter [Entity Properties] die Optionen [Automatic], [CloseTimer] und [Enable] heraus. Damit oeffnen/schliessen die Tueren nicht automatisch und der Spieler kann sie nicht von sich aus steuern.
Mit etwas Abstand kommen dann die Schalter neben die Tueren. Dort bauen wir noch die Ausloeser herum und benennen sie wie folgt: 'switch_top' (oben) und switch_bottom' (unten).
Die Reichweite der Ausloeser unbedingt anpassen ([DimX], [DimY] bzw. [DimZ] auf 1) und die Option [ActivateWithUseButton] aktivierten.
Die bereits bestehenden Ausloeser im Inneren des Fahrstuhls benennen wir: 'switch_down' (oben) und 'switch_up' (unten). Den Fahrstuhl selbst 'elevator'.
Folgende [Input/Output Events] sind fuer den Fahrstuhl von Bedeutung:
Open = | Der Fahrstuhl faehrt nach oben und loest dort das [Opened]-Event aus. |
Opened = | Der Fahrstuhl ist oben angekommen. |
Close = | Der Fahrstuhl faehrt nach unten und loest dort das [Closed]-Event aus. |
Closed = | Der Fahrstuhl ist unten angekommen. |
Nun steht das Grundgeruest und wir werden nun alle [Input/Output Events] koordinieren:
'switch_bottom' - [OnEnter] = | elevator [Close] |
Bedeutet, der Fahrstuhl wird nach unten geschickt (unabhaengig vom Standort) und loest das [Closed]-Event aus. | |
'switch_top' - [OnEnter] = | elevator [Open] |
Bedeutet, der Fahrstuhl wird nach oben geschickt (unabhaengig vom Standort) und loest das [Opened]-Event aus. | |
'switch_up' - [OnEnter] = | elevator [Open] |
Bedeutet, der Fahstuhl wird nach oben geschickt. | |
'switch_down' - [OnEnter] = | elevator [Close] |
Bedeutet, der Fahstuhl wird nach unten geschickt. | |
'elevator' - [OnOpen] = | door_bottom [Close] |
'elevator' - [OnOpened] = | door_top [Open] |
'elevator' - [OnClose] = | door_top [Close] |
'elevator' - [OnClosed] = | door_bottom [Open] |
Bedeutet, je nach Ereignis werden die entsprechenden Tueren geschlossen oder geoeffnet. |
Nun wird es ernst, denn das Ganze sollte jetzt funktionieren!? Zur Sicherheit einmal [Reload Scripts] im Menue ausfuehren und dann ab ins Spiel.
Leiter einbinden
Voraussetzungen:
Leiter = | [Entity] - [Elevators] - [Ladder] |
Etwas zum Hochklettern = | z.B. [SimpleEntity] - [Outdoor] - [towers] - [coa_sniper_tower] |
Ausfuehrung:
Den Turm an die entsprechende Stelle platzieren. Danach die Leiter, ohne auf ihr aeusseres zu achten ungefaehr aufstellen.
Sollte die Leiter bereits die entsprechende Laenge habe, ist Feintuning angesagt.
Sollte es eine andere Leiter sein, oder passt es mit der Laenge nicht, dann bei der Leiter unter [Entity Properties] - [LadderCGF] einen anderen Typ Leiter laden und ausrichten.
Tipp:
- Sollte eine Leiter das richtige Aussehen haben, aber zu lang sein, dann einfach in den Boden rammen, so dass sie die entsprechende Laenge herausragt.
Licht mit Schalter bedienen
mit wackelnder Lampe
Voraussetzungen:
Licht = | [Entity] - [Lichts] - [DynamicLight] |
Schalter = | [SimpleEntity] - [indoor] - [consoles] - [liftswitch_hightech] - [liftswitchhtanim] |
2 Ausloeser = | [Entity] - [Trigger] - [ProximityTrigger] |
Wir benoetigen fuer einen effektvollen Umgang mit der Lampe natuerlich eine eindrucksvolle Athmosphaere. Wir sollten also ein Nachtlevel einrichten oder das Ganze in einem Innenlevel benutzen.
Bei der Benutzung von Haeusern im Aussenbereich, kann es zu Problemen kommen, wenn das Licht zu weit scheint und ausserhalb des Hauses den Boden beleuchtet.
Ausfuehrung:
Beginnen wir mit dem schwierigsten Teil: Die Lampe selbst.
Sie zu finden und in die Karte einzufuegen ist dabei noch der leichteste Teil. Nun muessen wir in den Einstellungen wuehlen und bei der Option [lighttype] eine '2' eingeben. Damit haengt schonmal ploetzlich eine Lampe an dem Licht.
Ohne jetzt wie wild die Lampe zu drehen, fuehren wir [Reaload Scripts] aus! Nun sollte die Lampe senkrecht zu Boden haengen, wie es sich gehoert.
Um jetzt auch noch das effektvolle Licht des Gitters zu erzeugen, muessen wir noch folgende Einstellungen im Licht setzen:
CastShadowVolume = | 'True' |
CastShadowMaps = | 'False' |
RecvShadowMaps = | 'False' |
DiffuseMultiplier = | '5' sorgt vorerst fuer ein helles Licht. |
OuterRadius = | '10' oder mehr. Entsprechend der Raumgroesse. Vorerst so gross, dass wir evtl Veraenderungen auch beobachten koennen. |
ProjectorFov = | '140' |
ProjectorTexture = | textures/lights/light_ps_stripes11.dds |
lightShader = | Flare_From_Light |
shakeAmount = | '0.09' |
shakeRefreshTime = | '1.01' |
Bei zwei Lichtern darauf achten, dass die [shake...]-Einstellungen
unterschiedliche Werte haben, sonst schwingen beide gleich.
Damit haben wir ersteinmal das Licht erschaffen, wie es im Level 'Training' gleich zu beginn erscheint. Nur, dass es nicht so aufdringlich wackelt.
Nun erstellen wir dazu passend einen Lichtschalter. Im Gegensatz zu den Schaltern bei den Tueren, nutzen wir hier die Moeglichkeit, bei einem Schalter die Animation mit einzubinden.
Wir setzen den Schalter an die Wand, so dass er im Spiel erreichbar ist.
Darueber setzen wir versetzt zwei Ausloeser:
So koennen wir alles bequem erreichen und verknuepfen.
Bei beiden Ausloesern aktivieren wir die Option [ActivateWithUseButton]. Einer der beiden Ausloeser muss auch von Anfang an, deaktiviert werden ([Enable] = False).
Beginnen wir mit dem aktivierten Ausloeser und verknuepfen ihn ueber [Input/Output-Events] und [Pick New] wie folgt:
[OnEnter] = | Dynamisches Licht [Enable] Schalter [StartAnimation] der andere Ausloeser [Enable] dieser Ausloeser [Disable] |
Damit haben wir nun das Licht eingeschaltet und muessen nun noch den Ausschalter konfigurieren:
[OnEnter] = | Dynamisches Licht [Disable] Schalter [StopAnimation] der andere Ausloeser [Enable] dieser Ausloeser [Disable] |
Damit sollte das Ein- und Ausschalten funktionieren.
Wir duerfen nun nicht vergessen, dass Licht zu deaktivieren ([Aktive] = False), damit das Einschalten ueberhaupt erst funktionieren kann. Weiterhin schieben wir nun zum Abschluss die Ausloeser korrekt ueber den Schalter.
Falls es nun noch nicht ueber [Strg]-[G] funktioniert, dann einmal [Reload Scripts] ausfuehren. Nun solltes aber...!?
Hinweis:
- fuer das Licht auf Gegenstaende im Raum gibt es mehrere Einstellungen, je nachdem, ob sie weitere Schatten werfen sollen. Da diese Funktionen noch recht unerforscht sind, empfehle ich die 'Try & Error'-Methode.
- Der Bereich um den Schalter/Ausloeser muss kurz verlassen werden, um ihn erneut ausloesen zu koennen. Mir ist leider eine andere Methode bekannt.
Objekte mit einer Kette verbinden
Voraussetzungen:
2 Gegenstaende = | z. B. [Entity] - [Vehicle] - [Boat] |
realistische Kette = | [Entity] - [Other] - [ChainSwing] |
Anhand von zwei Booten soll verdeutlicht werden, wie Gegenstaende miteinander verbunden werden koennen.
Ausfuehrung:
Wir erstellen zuerst nur das eine Boot und setzen es an die gewuenschte Position.
Nun nehmen wir die Kette und legen sie mit einem Ende an das hintere Ende es Bootes:
evtl auch ein Stueck hoeher...
Nun klonen wir das erste Boot oder erstellen einfach ein zweites. Wir setzen dies nun mit der Frontseite hinten dran, so dass es schon aussieht, als wuerde das eine Boot das andere ziehen.
Nun muessen wir beide Boote noch in den [Entity Properties] des Kette eintragen:
AttachTo = | Name des ersten Bootes |
AttachToUp = | Name des zweiten Bootes |
Mit [Strg]-[G] oder [Switch To Game] ausprobieren. Ggf [Raload Scripts] ausfuehren.
Hinweis:
- Das Verketten funktioniert nicht mit Allem und Jedem. Z.B. sind Hubschrauber untauglich fuer diese Methode.
Seilbahn einbinden
Voraussetzungen:
Seilbahnsitz = | [Entity] - [Elevators] - [FlyingFox] |
TagPoint = | [TagPoint] - [TagPoint] |
Kabel = | [Brush] - [buildings] - [m03] - [compound_area] - [flyingfox_cable_xxm] |
Ausfuehrung:
Wer jetzt denkt, es wird kompliziert, der irrt! Lediglich das Ausrichten ist ein wenig fummelig.
Wir sollten zuerst das Kabel einbauen. Der Schnick-Schnack drumherum (wo das Kabel jeweils endet und so) kann spaeter von jedem selbst erschaffen werden.
Das Kabel gibt es in diversen Laengen, evtl. muessen wir es aber auch ein wenig mit [Scale] strecken/kuerzen
Jetzt beginnt die Fummelarbeit, dass Sitzstueck mit dem Kabel ausrichten... Viel Spass!
Es sollte in etwa so aussehen:
Nun folgt noch der [TagPoint]. Dieser stellt den Endpunktdar. Das Seil sollte am Ende durch den [TagPoint] gehen, damit der Sitz nicht vom Kabel abweicht.
Nun folgt die Benennung: Der Namen des [TagPoint]'s wird in [FlyingFox] - [Entity Properties] - [destination] eingetragen, damit der Sitz weiss, wohin er ueberhaupt rutschen soll.
Bevor das Ganze nun richtig funktionieren kann, sollte wir ueber den Menue-Punkt [Tools] - [Reload Scripts] ausfuehren. Spassenshalber koennen wir ja einmal vor dem 'Reloaden' den Sitz ausprobieren. Wir sollten irgendwohin 'fliegen', aber nicht zum Zielpunkt.
Hinweis:
Der gelbe Pfeil am [TagPoint] gibt dir Richtung an, in die man nach der Landung guckt.
Tueren allgemein
Tueren gibt es grundsaetzlich in drei Varianten. Diese sind im [RollupBar] unter [Objects] - [Entity] - [Doors] zu finden:
AutomaticDoor = | Ist eine doppelfluegige, sich zu Seite oeffnende Tuer |
AutomaticDoor1Piece = | Ist eine Tuer, die sich nach oben oeffnet. |
Door = | Ist eine aufschwingende Tuer, wie im eigenen Haushalt. |
Alle Tueren bieten bestimmt Grundeinstellungen, die auf ihre Anwendung Einfluss nehmen. Beispiele waeren:
Automatic = | Gibt an, ob sich die Tuer automatsich oeffnet oder manuell geoeffnet werden muss. |
CloseDelay = | Gibt die Zeit an, nach der sich die Tuer wieder schliesst. |
Enable = | Gibt an, ob durch eine Spielfigur ueberhaupt Einfluss auf die Tuer genommen werden kann. |
Andere Einstellungen sind nur speziell fuer bestimmt Tueren. Nicht jede Tuer bietet [TextInstruction] fuer einen kleinen Hinweistext zur Benutzung der Tuer oder einen Schalter fuer das Ausschalten von [CloseDelay].
Es gibt auch bereits viele fertige Tueren, die problemlos eingesetzt werden koennen. Ueber [DataBaseView] koennen im Bereich [Entity Library] aus der Datei 'Doors_and_switches.xml' diverse Tueren in die eigene Karte importiert werden. Ist diese Datei geladen, stehen die Objekte daraus im [RollupBar] unter [Archetype Entity] zur Verfuegung und koennen wie jedes andere Objekt in die Karte eingefuegt werden.
Ich habe ein kleines Tutorial erstellt, in dem 5 verschiedene Typen von Tueren gezeigt werden. Die schwierigste Tuer (per Karte zu oeffnen) werde ich demnaechst ausfuehrliche hier beschreiben.
Tuer mit Karte oeffnen
Voraussetzungen:
Tuer = | [Objects] - [Entity] - [Doors] - [AutomaticDoor] |
2 rote Schalter = | [Simple Entity] - [indoor] - [consoles] - [console_door_closed] |
2 gruene Schalter = | [Simple Entity] - [indoor] - [consoles] - [console_door_open] |
Ausloeser = | [Objects] - [Entity] - [Trigger] - [ProximityKeyTrigger] |
KeyCard = | [Objects] - [Entity] - [Pickups] - [KeyCard1] |
Ausfuehrung:
Wir stellen die Tuer auf die Karte. Es waere sehr hilfreich, wenn neben der Tuer auch schon eine Wand vorhanden ist, damit wir darauf die Schalter platzieren koennen. Die Tuer wird unter [Entity Properties] folgendermassen eingestellt:
Automaic = | False |
Enable = | False |
Nun setzen wir die beiden roten Schalter an die Wand. Es sollte auf jeder Seite der Wand ein Schalter liegen, damit man auch von beiden Seiten die Tuer oeffnen kann. Direkt daneben, platzieren wir die gruenen Schalter:
So koennen wir noch bequem die Schalter verbinden
Die beiden gruenen Schalter werden unter [SimpleEntity Properties] - [HiddenInGame] auf [True] gestellt. Damit werden diese Schalter am Anfang nicht zu sehen sein.
Jetzt folgt der Ausloeser.
Dieser wird noch oberhalb der Schalter platziert, damit wir alles Objekte noch problemlos erreichen koennen. Die groesse des Ausloesers (die Werte [DimX], [DimY] und [DimZ]) kommen grundsaetzlich auf '1', jedoch wird der Wert der Achse mit den gegenueberliegenden, gleichffarbigen Schaltern auf 2 gesetzt. Damit sollte er laenglich sein, um auf beiden Seiten gleichzeitig zu erscheinen:
Der Ausloeser ist oberhalb der roten Schalter.
Beim Ausloeser muessen wir unter [Entity Properties] noch folgende Einstellungen vornehmen:
ActivateWithUseButtom = | True |
KeepKeycardAfterUse = | True |
NeededKey = | 1 |
Nun muessen wir die ganzen Objekte miteinander verbinden:
'Ausloeser' - [OnEnter] = | Tuer [Open] |
die Tuer soll geoeffnet werden | |
1. roter Schalter [Hide] | |
der 1. rote Schalter wird unsichtbar | |
1. gruener Schalter [UnHide] | |
der 1. gruene Schalter wird sichtbar | |
2. roter Schalter [Hide] | |
der 2. rote Schalter wird unsichtbar | |
2. gruener Schalter [UnHide] | |
der 2. gruene Schalter wird sichtbar | |
'Tuer' - [On Closed] = | 1. gruener Schalter [Hide] |
der 1. gruene Schalter wird unsichtbar | |
1. roter Schalter [UnHide] | |
der 1. rote Schalter wird sichtbar | |
2. gruener Schalter [Hide] | |
der 2. gruene Schalter wird unsichtbar | |
2. roter Schalter [UnHide] | |
der 2. rote Schalter wird sichtbar |
Dies sieht sehr kompliziert aus, bringt jedoch den verblueffenden Effekt, dass sich beim Freischalten der Tuer, die Farbe und der Text des Schalters aendert.
Nun brauchen wir die KeyCard.
Diese niemals auf dem Boden ablegen! Dies kann im Spiel zu Fehlern fuehren! Also irgendso ein Tisch oder aehnliches her, damit wir die KeyCard darauf ablegen koennen. Dabei achten wir darauf, dass die Karte minimal ueber dem Tisch schwebt, damit sie nicht durch den Tisch faellt. In den [Entity Properties] der KeyCard muessen wir noch die oben vergebene Nummer eingeben: [KeyNumber] = '1'.
Sollten wir nun alles richtig gemacht haben, so sollte uns nichts mehr im Wege stehen, das ganze auszuprobieren. Schnell noch die Objekte uebereinander gestapelt:
Der gruene und der rote Schalter liegen uebereinander!
Und nun koennen wir mit [Strg]-[G] oder [Game] - [Switch To Game] das Ganze mal ausprobieren.