Haradirki.de

Fallen von Ravenholm: Gasfalle mit Feuer
Beispielmap: indextut42.zip

Anmerkung: Dieses Thema ist für fortgeschrittene Mapper und aufwärts gedacht. Hier wird mit Entities und Outputs um sich geworfen was das Zeug hält. Solltest du also noch Probleme mit diesen beiden Gebieten haben, solltest du dich mit diesem Thema noch nicht befassen.

In diesem Sicher hast du in Ravenholm auch diese Abschnitte geliebt, in denen man so richtig schön zündeln durfte, z.B. an diesem schicken "Scheiterhaufen". Genau diese Falle wollen wir nun nachbauen. Dafür ist jedoch schon einiges an Vorbereitung nötig, diese erkläre ich dir jetzt:

Hier habe ich folgendes gebaut:

  • den Gastank (models/props_citizen_tech/Firetrap_PropaneCanister01a.mdl) aus einem prop_static
  • die Gasleitung (models/props_citizen_tech/Firetrap_gashose01a.mdl) aus einem prop_static
  • das Ventil (models/props_pipes/valvewheel002.mdl) am Gastank aus einem prop_dynamic
  • die Halterung (models/props_citizen_tech/Firetrap_buttonpad.mdl) für den Elektroknopf aus einem prop_static
  • den Elektroknopf (/models/props_citizen_tech/Firetrap_button01a.mdl) aus einem prop_dynamic

Die Models befinden sich übrigens in dem Ordner "Citizen_tech" bzw. im "prop_pipes". Der Knopf und das Ventil sind deshalb als prop_dynamic eingebaut, weil wir die "Parent"-Keyvalue benötigen um diese mit Knöpfen zu verbinden.

Ich habe schon alle Entities in die "Arbeitsmap" gepackt, denn wir wollen uns hier nicht mit dem Setzen von Entities befassen sondern mit dem Aufbau einer solchen Falle. Dazu öffnest du am besten das Zip-File und öffnest die Map "indextut42.vmf" im Hammer Editor. Nun sollte es so aussehen:

Hier siehst du nun, was ausser dem optischen Grundlagen noch für die Falle nötig ist. Dazu gehören 2 x func_rot_button, 2 x logic_relay, 1x env_firesensor, 5x ambient_generic, 4x env_spark, 4x env_steam, 4x env_firesource, 1x light und jede Menge env_fire.

Fangen wir an. Beginnen wir mit dem Ventil für den Gastank. Dieses wird selektiert und beim Eintrag "Parent" den Namen "gasfalle_01_ventil_01". eingegben. Dann deselektierst du das Ventil. Nun erstellen wir 2 brushbasierende Entities, dazu benötigen wir die Texturen "toolsnodraw" und "toolsorigin". Zuerst erstellst du um das Ventil selbst den Nodraw-Brush, darunter mit den gleichen Maßen nur dicker dann den Origin-Brush. Nun selektierst du beide Brushs und machst sie zu einem "func_rot_button". Hier nimmst du folgende Einstellungen vor:

  • Keyvalue: "Name"
    Value: "gasfalle_01_ventil_01"
  • Keyvalue: "Speed"
    Value: "250"
  • Keyvalue: "Sound"
    Value: "Squicky"

bei den Flags aktivierst du:

[x] Not Solid
[x] Toggle
[x]use activates

Kommen wir nun zu den Outputs:

| OnIn | gasfalle_01_steam | Toggle | - | 0.00 | No |
| OnIn | gasfalle_01_relay_01 | Enable | - 0.00 | No |

|
OnIn | steam_sound | ToggleSound | - | 0.00 | No |
| OnOut | gasfalle_01_steam | Toggle | - | 0.00 | No |

| OnOut | gasfalle_01_relay_01 | Disable | - | 0.00 | No |

| OnOut | gasfalle_01_relay_02 | Trigger | - | 0.00 | No |

| OnOut | steam_sound | ToggleSound | - | 0.00 | No |

Nun sieht es so aus:

Nun erstellen wir wieder 2 Brushs, diesmal jedoch vor dem Knopf, der den Elektroeffekt ausslöst. Dazu selektieren wir diesen Knopf und geben beim Eintrag "Parent" den Namen "flamme_button" ein. Jetzt erstellen wir wieder 2 brushbasierende Entities, dazu benötigen wir die Texturen "toolsnodraw" und "toolsorigin". Dazu solltest du bedenken, dass wir nun mit der y-Achse arbeiten, denn der Brush soll sich ja zur Seite drehen. Zuerst erstellst du um den Knopf selbst den Nodraw-Brush, dahinter mit den gleichen Maßen nur dicker dann den Origin-Brush. Nun selektierst du beide Brushs und machst sie zu einem "func_rot_button". Hier nimmst du folgende Einstellungen vor:

  • Keyvalue: "Name":
    Value: "flamme_button"
  • Keyvalue: "Speed"
    Value: "180"
  • Keyvalue: "Sounds"
    Value: "None (Silent)"
  • Keyvalue: "Delay before Reset"
    Value: "1"
  • Keyvalue: "Distance"
    Value: "90"

nun bei den Flags:

[x] Not Solid
[x] y-Axis
[x]use activates

Kommen wir nun zu den Outputs:

| OnIn | flamme_button_sound | PlaySound | - | 0.00 | No |
| OnIn | gasfalle_spark | SparkOnce | - | 0.00 | No |
| OnIn | gasfalle_01_relay_01 | Trigger | - | 0.00 | No |

dann sieht es so aus:

Kommen wir nun zu den beiden Entities logic_relay. Ich arbeite zuerst mit dem, der sich näher an der Wand befindet. Hier geben wir folgende Keyvalues ein:

  • Keyvalue: "Name"
    Value: "gasfalle_01_relay_01"
  • Keyvalue: "Start Disabled"
    Value: "Yes"

kommen wir zu den Outputs:

| OnTrigger | gasfalle_01_starter | Enable | - | 0.00 | No |
| OnTrigger | gasfalle_01_relay_02 | Enable | - | 0.00 | No |

| OnTrigger | fire | Enable | - | 0.00 | No |

| OnTrigger | gasfalle_01_relay_01 | Disable - | 0.10 | No |

| OnTrigger | fire_light | TurnOn | - | 0.50 | No |

kommen wir gleich zum zweiten Entity logic_relay. Dieses ist nun weiter weg von der Wand als das erste. Nun geben wir die folgenden Keyvalues ein:

  • Keyvalue: "Name"
    Value: "gasfalle_01_relay_02"
  • Keyvalue: "Start Disabled"
    Value: "Yes"

kommen wir zu den Outputs:

| OnTrigger | gasfalle_01_starter | Disable | - | 0.00 | No |
| OnTrigger | fire_stopsound | PlaySound | - | 0.00 | No |
| OnTrigger | gasfalle_01_relay_02 | Disable | - | 0.00 | No |
| OnTrigger | fire | Extinguish | 1 | 0.20 | No |
| OnTrigger | fire_light | TurnOff | - | 0.35 | No |
| OnTrigger | fire | Disable | - | 1.20 | No |

Jetzt kommen wir zu dem Entity "env_firesensor". Hier geben wir folgende Keyvalues ein:

  • Keyvalue: "Name"
    Value: "firesensor"
  • Keyvalue: "Radius"
    Value: "50"
  • Keyvalue: "Heat Level"
    Value: "1"
  • Keyvalue: "Time at Level"
    Value: "0"

bei den Flags wählen wir:

[x] Start On

kommen wir zu den Outputs:

| OnHeatLevelEnd | gasfalle_01_sound | StopSound | - | 0.00 | No |
| OnHeatLevelStart | gasfalle_01_sound | PlaySound | - | 0.00 | No |

dann sieht es so aus:

Damit hätten wir nun den lustigen Teil hinter uns gebracht. Ab jetzt gibt es keine Outputs mehr, versprochen :-)

Kommen wir nun zu den Sounds. Wir benötigen einmal diesen Turm aus 3 ambient_generic, einen weiteren ambient_generic der in der Mitte zwischen dem Entity-Turm und dem Tank steht und einen weiteren ambient_generic, der sich in der nähe des Tanks befindet. Fangen wir mit dem obersten am Entity-Turm an. Hier legen wir folgende Keyvalues fest:

  • Keyvalue: "Name"
    Value: "fire_stopsound"
  • Keyvalue: "Sound"
    Value: "d1_town.FlameTrapExtinguish"
  • Keyvalue: "Max audible distance"
    Value: "400"

kommen wir zu den Flags:

[x] Start Silent
[x] Is NOT looped

diese Flags sollten zwar schon angekreuzt sein, jedoch solltest du diese immer abchecken, ob auch alles korrekt ist. Kommen wir gleich zum mittleren ambient_generic im Entity-Turm und legen auch hier folgende Keyvalues fest:

  • Keyvalue: "Name"
    Value: "gasfalle_01_sound"
  • Keyvalue: "Sound"
    Value: "d1_Town.LargeFireLoop"
  • Keyvalue: "Max audible distance"
    Value: "400"

kommen wir zu den Flags:

[x] Start Silent
[x] Is NOT looped

und beim untersten ambient_generic im Entity-Turm und legen wir diese Keyvalues fest:

  • Keyvalue: "Name"
    Value: "fire_startsound"
  • Keyvalue: "Sound"
    Value: "d1_Town.FlameTrapIgnite"
  • Keyvalue: "Max audible distance"
    Value: "400"

kommen wir zu den Flags:

[x] Start Silent
[x] Is NOT looped

kommen wir nun zu dem ambient_generic, der sich nahe am Tank befindet:

  • Keyvalue: "Name"
    Value: "flamme_button_sound"
  • Keyvalue: "Sound"
    Value: "Town.d1_town_01_lightswitch2"
  • Keyvalue: "Max audible distance"
    Value: "200"

kommen wir zu den Flags:

[x] Start Silent
[x] Is NOT looped

und nun zum letzten ambient_generic, der befindet sich zwischen Tank und Entity-Turm:

  • Keyvalue: "Name"
    Value: "steam_sound"
  • Keyvalue: "Sound"
    Value: "ambient/gas/steam_loop1.wav"
  • Keyvalue: "Max audible distance"
    Value: "100"

kommen wir zu den Flags:

[x] Start Silent
[x] Is NOT looped

erstellen wir nun das Licht. Dieses sollte sich über den späteren Flammen befinden, es soll nu ein wenig das "Ambiente" des Feuers mit ein wenig mehr gelben Feuerschein bereichern. Dazu geben wir dem Light folgende Keyvalue:

  • Keyvalue: "Name"
    Value: "fire_light"

und geben dem Licht noch eine gelbe Farbe. Bei den Flags aktivieren wir:

[x] Initially Dark

Nun benötigen wir natürlich einen Gaseffekt, wenn man das Ventil öffnet, aber nicht den Elektroknopf drückt. Dazu erstellen wir 4 env_steam Entities. Diese setze ich überall da hin, wo aus dem Rohr Öffnungen heraus ragen. Hier geben wir folgendes ein:

  • Keyvalue: "Name"
    Value: "gasfalle_01_steam"
  • Keyvalue: "Initial State"
    Value: "Off"
  • Keyvalue: "Particle Type"
    Value: "Heat Wave"
  • Keyvalue: "Spread Speed"
    Value: "15"
  • Keyvalue: "Speed"
    Value: "120"

und geben dem ganzen noch bei color eine gelbe Farbe. Nun solltest du überprüfen, ob die Richtung stimmt. Das größere Ende zeigt da hin, wo das Gas später austritt. Nun kannst du dieses Entity ganz einfach mit der "SHIFT"-Taste kopieren, denn wir wollen dass alle Entities gleich heissen. Das hat den Vorteil, dass wir über den einen Namen "gasfalle_01_steam" alle 4 Entities ansteuern können. Wenn jedes Entity einen eigenen Namen hätte, bräuchten wir noch viel mehr Outputs. Dazu aber jetzt mal ein Bild:

Kommen wir nun zu dem Elektro-Effekt. Dazu benötigen wir das Entity "env_spark". Hier geben wir folgende Keyvalues ein:

  • Keyvalue: "Name"
    Value: "gasfalle_spark"
  • Keyvalue: "Magnitude"
    Value: "Medium"
  • Keyvalue: "Spark Trail Length"
    Value: "Long"

auch dieses Entity kopierst du nun so oft, dass hinter jedem env_steam ein solches env_spark sitzt. Jetzt benötigen wir nur noch die Zünder, dann sind wir fast am Ende (des Tutorials). Dazu benötigen wir das Entity "env_firesource". Hier geben wir folgende Keyvalues ein:

  • Keyvalue: "Name"
    Value: "gasfalle_01_starter"
  • Keyvalue: "Radius"
    Value: "60"
  • Keyvalue: "Idensity"
    Value: "10"

so, nun fehlt uns nur noch das Feuer selbst. Dazu erstellen wir nun ein "env_fire": Hier geben wir folgende Keyvalues ein:

  • Keyvalue: "Name"
    Value: "fire"
  • Keyvalue" Start Disabled"
    Value: "Yes"
  • Keyvalue: "Duration"
    Value: "30"
  • Keyvalue: "Size"
    Value: "110"
  • Keyvalue: "Ignition Point"
    Value: "10"

bei den Flags musst du nun noch etwas aktivieren:

[x] Infinite Duration
[x] Smokeless

Nun kannst du das Entity nach herzenslust verteilen. Wenn du damit fertig bist, kannst du die Map abspeichern und gleich testen. Viel Spaß beim Fallen legen!

 

zurück zur Hauptseite

Half-Life 2 Hammer Tutorial, Copyright (c) 2005 Dirk "Haradirki" Marmann, erstellt mit Wordpad

Dieses Tutorial ist grundsätzlich Freeware und darf für den persönlichen Gebrauch weiterkopiert werden. Es darf allerdings NICHT ohne meine Einverständniss auf anderen Homepages als HTML-Datei oder zum Download angeboten werden. Es darf nichts hinzugefügt, verändert oder gelöscht werden. Weiterhin darf es nicht auf digitalen Medien, z.B. CD-Medien veröffentlicht werden, wenn ich nicht ausdrücklich meine Einverständniss dazu gegeben habe. Alle Rechte bleiben beim Autoren. Wird aus diesem Tutorial zitiert, währe ich sehr dankbar, wenn ihr dabei auf eine meiner beiden Homepages http://www.haradirki.de oder http://www.dead-in-bed.net hinweisst.

 

http://www.haradirki.de   http://www.dead-in-bed.net