Community-Tutorials (Source)

Batterieanlage (Einrastende prop_physics)

In diesem Tutorial möchte ich zeigen, wie sich komplexere Einrichtungen mit den einrastenden prop_physics installieren lassen.
Endergebnis: http://www.youtube.com/watch?v=ANs2eHwDaOw

Vorab:
Die geschriebenen Tutorials wurden von mir Av3ris selbst geschrieben und werden hier auf www.Mapping-Tutorials.de veröffentlicht. Keine Inhalte wurden aus anderen Quellen kopiert. Das anderweitige veröffentlichen oder kopieren der Tutorials oder Teilen dieser ist, ohne mit mir in Absprache zu treten, verboten.

Ihr solltet euch zuerst dieses Tutorials hier anschaun:
http://www.mapping-tutorials.de/forum/showthread.php?t=12018 // Einrastende prop_physics
http://www.mapping-tutorials.de/forum/showthread.php?t=10991 // env_sprite
http://www.mapping-tutorials.de/forum/showthread.php?t=6690 // env_spark
und Natürlich die Fragpoint- oder die Haradirki Grund-Tutorials
Alles was jetzt kommt, basiert darauf.

Batterie-Slots

Die ganzen prop_dynamics und das Drum-herum könnt ihr euch dann aus meiner Beispielmap ziehen. So sieht die Einrichtung fertig aus:

averis005.jpg

prop_physics
Zuerst brauchen wir die 3 Batterien.

averis006.jpg

Also setzt 3 prop_physics (models/Items/car_battery01.mdl) und gebt ihnen die Namen "battery1; battery2; battery3" Haltet die Namensform unbedingt ein, das wird später noch wichtig.
Folgende Flags:
x Enable motion on Physcannon grab
x Not affected by rotor wash

info_target
Als nächstes platzieren wir 3 info_targets, das Ziel wo die Batterie später landen wird.

averis008.jpg

Name: "battery1_aim; battery2_aim; battery3_aim"

env_spark
Fahren wir mit den Funken fort. Also platzieren wir knapp über den info_targets 3 env_sparks.

averis009.jpg

Name: "battery1_spark; battery2_spark; battery3_spark"

und bei den Flags:
x Directional

filter_activator_name
Als nächstes platzieren wir 1 filter_activator_name.

averis010.jpg

Name: "battery_filter"
Filter mode: "Allow entities that match criteria"
Filter Name: "battery*" // der Stern dahinter bedeutet, alle die mit "battery" beginnen. Also können wir jedes physic, das mit "battery" beginnt, einsetzen. Er wird es auch Rot anstreichen, aber das ist egal.

math_counter
Es folgt ein math_counter.
Name: "battery_counter"
Initial Value: "0"
Minimum Legal Value: "0"
Maximum Legal Value: "3"

ambient_generic
Ok, jetzt 2 ambient_generics für den Sound.

averis013.jpg

Nummer 1:
Name: "battery_sound_out"
Sound Name: "Buttons.snd9"

Flags:
x Start Silent
x Is NOT Looped

Nummer 2:
Name: "battery_sound_in"
Sound Name: "Buttons.snd5"

Flags:
x Start Silent
x Is NOT Looped

env_sprite
Jetzt noch je Station 2 env_sprites:

averis011.jpg

Der Linke von Beiden:
Name: "battery1_sprite_red; battery2_sprite_red; battery3_sprite_red"
Render Mode: "World Space Glow"
FX Color (R G B): "255 0 0"
Sprite Name: "materials/Sprites/flare1.vmt"
Scale: ".1"

und folgende Flags:
x Start On

Der Rechte von Beiden:
Name: "battery1_sprite_green; battery2_sprite_green; battery3_sprite_green"
Render Mode: "World Space Glow"
FX Color (R G B): "0 255 0"
Sprite Name: "materials/Sprites/flare1.vmt"
Scale: ".1"

Keine Flags markieren.

logic_relay
Wichtig sind auch die 3 logic_relays, die wir jetzt noch über den einzelnen Stationen platzieren müssen.

averis012.jpg

Name: "battery_relay_1; battery_relay_2; battery_relay_3"

Folgende Outputs:

OnTrigger |battery_counter |Substract |1 |0.00
OnTrigger |battery_sound_out |PlaySound | |0.00
OnTrigger |batteryX_sprite_red |ShowSprite | |0.00
OnTrigger |batteryX_sprite_green |HideSprite | |0.00
OnTrigger |battery_trigger_X |Disable | |1.00

trigger_teleport
Gut, als nächstes zum Herzstück der Anlage. Wir brauchen 3 Brushs mit der Trigger-Textur und machen jeden einzelnen zum trigger_teleport.

averis007.jpg

Folgende Properties:

Name: "battery_trigger_1; battery_trigger_2; battery_trigger_3"
Filter Name: "battery_filter"
Remote Destination: "battery1_aim; battery2_aim; battery3_aim"

Folgende Flags:

x Pushables
x Physics Objects

und folgende Outputs:

OnStartTouch |!activator |AddOutput |OnPhysGunPickup !self:enableshadow::0:1 |0.00
OnStartTouch |!activator |DisableShadow | |0.00
OnStartTouch |!activator |ForceDrop | |0.00
OnStartTouch |!activator |DisableMotion | |0.00
OnStartTouch |battery_trigger_1 |Disable | |0.00
OnStartTouch |!activator |AddOutput |OnPhysGunPickup battery_relay_1:Trigger::0:1 |0.00
OnStartTouch |battery1_spark |SparkOnce | |0.10
OnStartTouch |battery_sound_in |PlaySound | |0.10
OnStartTouch |battery_counter |Add |1 |0.10
OnStartTouch |battery1_sprite_green |ShowSprite | |0.10
OnStartTouch |battery1_sprite_red |HideSprite | |0.10

Jetzt leuchtet das rote Licht auf, wenn keine Batterie im Gerät ist, falls doch, leuchtet das Grüne.
Wenn ihr einen Effekt erzielen wollt, dann müsst ihr jetzt noch ein Output im math_counter adden.
Bei mir schaut das so aus:

OnHitMax |steam |TurnOn | | |2.00

Ich hoffe es hat euch gefallen und ihr wisst etwas damit anzufangen.
Av3ris

Beispiel-Map