Inhaltsverzeichnis

Eine selbst schaltende Ampel

Habt ihr euch auch gefragt wie eine selbst schaltende Ampel àla cs_assault funktioniert? Hier soll nun erklärt werden wie es geht.

Ampelmast

Als erstes setzen wir die 2 Ampelmasten per prop_static. Als Model nehmen wir: props/cs_assault/stoplight.mdl

Lampen

Der Lichteffekt der Ampel wird per env_sprite gemacht. 3 Sprites pro Ampel für Rot, Gelb und Grün, die jeweils passend vor den Ampelmasten positioniert werden.

Die env_sprites bekommen folgende Einstellungen, dabei enden die Namen der Sprites der einen Ampel auf 1 und die der anderen auf 2. Die Einstellugen aller 6 Sprites unterscheiden sich nur in Name und FX Color, allen gemeinsam sind diese Werte:


Hier die Werte, die für jedes Sprite anders sind:

Ampel 1

Rot

Gelb

Grün

Ampel 2

Rot

Gelb

Grün

Steuerung

Lampen

Für die Ansteuerung der einzelnen Ampelphasen wird als erstes für jedes env_sprite ein logic_relay gebraucht, das jeweils ein Sprite einschaltet und die anderen beiden aus. Am besten plaziert man die logic_relays jeweils neben das dazugehörige env_sprites.

Ampel 1

Rot
Output Target Entity Target Input
OnTrigger sprite_red1 ShowSprite
OnTrigger sprite_yellow1 HideSprite
OnTrigger sprite_green1 HideSprite


Gelb
Output Target Entity Target Input
OnTrigger sprite_red1 HideSprite
OnTrigger sprite_yellow1 ShowSprite
OnTrigger sprite_green1 HideSprite


Grün
Output Target Entity Target Input
OnTrigger sprite_red1 HideSprite
OnTrigger sprite_yellow1 HideSprite
OnTrigger sprite_green1 ShowSprite


Ampel 2

Rot
Output Target Entity Target Input
OnTrigger sprite_red2 ShowSprite
OnTrigger sprite_yellow2 HideSprite
OnTrigger sprite_green2 HideSprite


Gelb
Output Target Entity Target Input
OnTrigger sprite_red2 HideSprite
OnTrigger sprite_yellow2 ShowSprite
OnTrigger sprite_green2 HideSprite


Grün
Output Target Entity Target Input
OnTrigger sprite_red2 HideSprite
OnTrigger sprite_yellow2 HideSprite
OnTrigger sprite_green2 ShowSprite


Phasen

Als nächstes setzen wir 3 logic_relays, die die miteinander gekoppelten Phasen der beiden Ampeln schalten, also z.B. Ampel 1: Grün und Ampel 2: Rot usw.

Ampel 1: Grün - Ampel 2: Rot

Output Target Entity Target Input
OnTrigger set_green1 Trigger
OnTrigger set_red2 Trigger


Ampel 1: Rot - Ampel 2: Grün

Output Target Entity Target Input
OnTrigger set_red1 Trigger
OnTrigger set_green2 Trigger


Ampel 1: Gelb - Ampel 2: Gelb

Output Target Entity Target Input
OnTrigger set_yellow1 Trigger
OnTrigger set_yellow2 Trigger


Ablauf

Um den Ablauf der einzelne Ampelphasen zu steueren brauchen wir ein weiteres logic_relay:

Output Target Entity Target Input Delay
OnTrigger set_green1_and_red2 Trigger 0
OnTrigger set_yellow1_and_yellow2 Trigger 35
OnTrigger set_red1_and_green2 Trigger 40
OnTrigger set_yellow1_and_yellow2 Trigger 75


Damit die einzelne Phasen nicht nur einmal durchlaufen brauchen wir noch einen logic_timer.

^ Output ^ Target Entity ^ Target Input ^

OnTimer synch Trigger


Zu guter letzt kommt noch ein logic_auto, damit das Ganze auch initial getriggert wird.

Output Target Entity Target Input Delay
OnMapSpawn timer FireTimer 1


Erklärung

Beim Mapspawn wird das logic_auto aktiviert und dann eine Ampeln rot und die andere grün. Nach 35sec werden beide gelb. Nach weiteren 5sec ist dann eine Ampeln rot und die andere grün, aber anderes herum als beim ersten mal. Als letztes werden beide wieder für 5sec gelb beschaltet und der Zyklus beginnt von vorne.

Diese Version der Ansteuerung fehlt noch die Rot-Gelb-Phase.