Community-Tutorials (Source)

Zivile Überwachung

So, auf zum nächsten Tutorial.
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.

Diesmal möchte ich euch die Zivile Überwachung von City17 näher bringen. Jeder, der Half Life2 gespielt hat, kennt sie.
Endergebnis: http://www.youtube.com/watch?v=TV7KJvpsJ-Y

Zu behandelnde Themen:

- Türblocker
- Überwachungskameras
- Scanner zur Zivilen Überwachung
- Metrocops mit Schutzarealn

Part 1: Türblocker

averis014.jpg

Zu erst braucht wir eine Tür oder einen Brush mit einer Tür-Textur. Davor setzen wir ein "prop_dynamic" (models/props_combine/combine_lock01.mdl).
Jetzt noch ein Brush mit der nodraw-Textur, den wir zu einem "func_door" machen.

averis015.jpg

Als "Locked Sound" "combine.door_lock".
Und Folgende Flags:
x Passable
x Use Opens
x Touch Opens
x Starts Locked

War eigentlich gar nicht schwer, und tut seinen Dienst.

Part 2: Überwachungskameras

averis016.jpg

Auch die Kameras sind wirklich nicht schwer. Zuerst setzten wir ein "npc_combine_camera" und geben ihm den Namen "camera1".
Wir könnten auch noch den Radius ändern, aber das kommt auf die Map an.
Folgende Flags:
x Always Become Angry On New Enemy

Damit die Kamera auch weiß, wer ihre "Feinde" sind, brauchen wir noch 1 "ai_relationship" mit folgenden Eigenschaften:
Subjects: "npc_combine_camera" // Also alle Kamera´s auf der Map, ihr könnt variabel auch einzelne Namen eingeben
Targets: "!player" // Ich hab 2 ai_relationships gesetzt und beim zweiten noch "npc_citizen" eingesetzt, sodass auch die Bürger betroffen sind.
Disposition: "Hate"
Start Active: "Yes"

Das wars eigentlich schon, ihr könntet jetzt noch bei den Flags "Ignore Enemys" einstellen und scripten, ist aber eigentlich nicht nötig.

Part 3: Scanner zur Zivilen Überwachung

averis017.jpg

Zuerst setzen wir ein "npc_cscanner" und stellen Folgendes ein:
Name: "scanner"
SpotlightLenght: "500" // Länge des Lichtstrahls
SpotlightWidth: "50" // Breite des Lichtstrahls
Should inspect: "Yes"
Only Inspect Players: "No"
Never Inspect Players "No"

Ihr könnt dem Scanner jetzt eine Flugbahn definieren. Setzt dazu einfach ein paar "path_corner", geb ihnen Namen und fügt bei "Next stop target" jeweils
den Namen des nächsten "path_corner´s" ein. Dann tragt ihr beim Scanner bei "Target Path Corner" den Namen des ersten "path_corners" ein.
Ich hab jetzt beim letzten "path_corner" noch ein Output geaddet:
OnPass | scanner | SetFollowTarget | !player | 0.00 | Yes

Ich hab noch ein "ai_relationship" gesetzt mit den Einstellungen wie bei der Kamera.
Wichtig: Damit der Scanner sich orientieren kann, ist es gut, wenn ihr noch ein paar "info_node_air´s" setzen würdet.

Part 4: Metrocops mit Schutzareal

averis018.jpg

Wer kennt sie nicht, die Metrocop´s die einen die ganze Zeit herumschupsen.
Als erstes hab ich 2 "npc_metropolice" gesetzt und ihnen den Namen "police01" gegeben. Stellt als "Weapon" entweder "Stun Stick" oder "Nothing" ein.
Folgende Flags:
x Allowed to respond to thrown objects
x Don´t drop weapons

Als nächstes setzt ihr ein "ai_goal_police" in die Mitte zwischen die Combine´s mit dem Namen "ai_goal_police01", dem Radius "180" und dem Target "!player"
Folgende Flags:
x Do not leave post

Wichtig ist jetzt noch ein Brush mit der Trigger-Textur, den wir zu einem "trigger_multiple" machen.
Folgende Outputs:
OnStartTouch | police01 | SetPoliceGoal | ai_police_goal01 | 0.00 | No

Jetzt noch ein "env_global" mit folgenden Einstellungen:
Initial State: "on"
Global State to Set: "Gordon pre-criminal"

und folgenden Flags:
x Set Inital State

Durch das "ai_police_goal" und das "env_global" ersparen wir uns "ai_relationships", da das "env_global" die feindliche Handlung der Combine´s überschreibt.

Bauen wir noch einen Blend-Effekt und eine Teleportation mit ein:

averis019.jpg

Setzt wie gehabt zwei Combine´s mit Namen "police02; police03" und gebt ihnen "Stun Stick´s" Beim "police03" stellt ihr unter den Flags noch "Wait for Script" ein.
Als nächstes platzieren wir vor ein "info_node_hint" vor den Füßen des ersten mit folgenden Einstellungen:
Minimum State: "Idle"
Maximum State: "Combat"

averis020.jpg

Jetzt ziehen wir einen Brush mit Trigger-Textur über die Combine´s, das "info_node_hint" und noch ein bisschen größer. Diesen machen wir zu einem "trigger_multiple".
Folgende Flags:
x Clients

Folgende Output´s:
OnStartTouch | ai_goal_police02 | EnableKnockOut | | 0.00 | No
OnEndTouch | ai_goal_police02 | DisableKnockOut | 0.00 | No

Wie auf obigem Bild zu erkennen kommen jetzt 3 Trigger-Textur-Brushs, die zu EINEM "trigger_once" gemacht werden.
Folgende Flags:
x Clients

Folgende Output´s:
OnStartTouch | police02 | SetPoliceGoal | | 0.00 | No

Dieser Trigger bewirkt also die Aktivierung des "ai_goal_police".

Nun ziehen wir noch einen großen Trigger über die ganze Szene und machen ihn zu einem "trigger_teleport" mit folgenden Einstellungen:
Name: "knockout_trigger_2"
Start Disabled: "Yes"
Remote Destination: "knockout2"

Folgende Flags:
x Clients

Folgende Outputs:
OnStartTouch | knockout_fade | Fade | | 2.00 | No

Die soeben genannten Entity´s müssen jetzt erst mal gesetzt werden.

averis021.jpg

Ein "env_fade" mit folgenden Einstellungen:
Name: "knockout_fade"
Duration: "1"
Hold Fade: "0"
Fade Alpha: "255"
Fade Color: "255 255 255"

folgende Flags:
x Fade From

und ein "info_teleport_destination" mit folgenden Einstellungen:
Name: "knockout2"

Ich hoffe es hat euch gefallen und ihr konntet etwas damit anfangen.
Av3ris

Beispiel-Map