Willkommen zu meinem ersten Tutorial. In diesem Tutorial zeige ich euch, wie ihr Fastzombies Gegenstände (z.B. Häuserwände) hochklettern
lassen könnt. Wenn ihr den HL2: SP durchgespielt habt, solltet ihr dieses Szenario aus Ravenholm kennen.

Leider funktioniert es nur mit npc_fastzombies. Npc_citizen haben zwar auch eine Kletteranimation, aber sie weigern sich sie auch zu nutzen.:(
Vorraussetzungen für dieses Tutorial:
- Ihr solltet auf jeden Fall Grundkenntnisse des mappens besitzen
- Ihr solltet die Tutorials von Fragpoint gelesen haben.
Los geht's:
Als erstes braucht ihr natürlich einen Raum, ein info_player_start, ein light_environment und irgendwas, wo die NPC's hochklettern sollen. Es darf kein Entity oder Model sein. Fastzombies können nur an Brushs hochklettern.

Also, jetzt können wir endlich anfangen. Erstmal solltet ihr alle Flächen, die für die fastzombies begehbar sein sollen, mit info_node's abdecken. Diese dienen als Orientierungshilfe für NPC's. Am besten erstellt ihr die info_node's immer mit einem Abstand von etwa 128 Units.

Als nächstes erstellt ihr ein npc_fastzombie. Geht in die Einstellungen und vergebt einen beliebigen Namen. In meinem Beispiel habe ich ihn einfach "fastzombies" genannt. Dann schreibt bei "Squad Name" auch einen Namen eurer Wahl rein. Z.B. einfach "Squad1".

NPC's, die den selben Squad Namen haben, können miteinander "kommunizieren". D.H. sie können Informationen über den Standpunkt des Gegners austauschen, und können sich gegenseitig schützen.
Die restlichen Einstellungen könnt ihr so belassen, wie sie sind. In meinem Besipiel soll immer, wenn ein fastzombie getötet wird, ein neuer gespawnt werden. Dazu muss man ein npc_template_maker erstellen, und folgende Einstellungen vornehmen:
Name: fastzombies_maker
Start Disabled: Yes (Da ich nicht will, dass die Fastzombies von Anfang an gespawnt werden)
Num. of NPCs: 50 (Insgesamt sollen 50 NPCs gespawnt werden)
Frequency: -1 (Gibt die Zeit an, die vergehen soll, bevor ein neuer NPC gespawnt wird. Bei -1 wird immer dann ein NPC gespawnt, wenn der letzte gestorben ist.)
Max Live NPCs: 1 (Gibt die maximale Anzahl der fastzombies an, die zu einer Zeit gespawnt sein dürfen)
Name of template NPC: fastzombies (Gibt den Namen des fastzombies an, von dem die 50 Klone erstellt werden sollen)
Wir erstellen Außerdem noch diesen Output:
My output named: OnSpawnNPC (Wenn ein fastzombie gespawnt wurde...)
Targets entities named: schedule (...wird "schedule" (Dazu kommen wir später)...)
Via this input: (...gestartet)
Die Flags könnt ihr so lassen wie sie sind.
Da ich, wie ich ja bereits erwähnt hatte, nicht möchte, dass die NPCs von Anfang an gespawnt werden, brauche ich natürlich noch einen Auslöser. In meinem Fall ist es ein ganz normaler func_button mit den folgenden Einstellungen:
Delay Before Reset (-1 stay): -1 (Gibt die Zeit an, die vergehen soll, bevor der Knopf nochmals gedrückt werden kann. Da er in meinem Fall nur einmal gedrückt werden soll, muss dort -1 stehen)
Der Rest ist eigentlich unwichtig. In den Flags solltet ihr noch "Don't Move" aktivieren, wenn ihr nicht wollt, dass sich der Knopf beim drücken bewegt. Kommen wir nun zu den Outputs:

My output named: OnPressed (Wenn der Knopf gedrückt wird,...)
Targets entities named: fastzombies_maker (...soll der "fastzombies_maker"...)
Via this input: Enable (...aktiviert weden...)
After a delay in seconds of: 3 (...aber erst wenn 3 Sekunden vergangen sind)
Als nächstes braucht ihr zwei info_node_climbs. Das erste muss auf den Boden, an den Startpunkt, wo die fastzombies anfangen sollen zu klettern, und das andere muss an den Endpunkt. Wichtig ist dabei, das der gelbe Strich, der in der Top-Ansicht zu sehen ist, in die Richtung der Wand zeigt. In den Einstellungen müsst ihr nur "Minimum State" auf "Alert" setzen.
Als nächstes braucht ihr ein info_node_link. Dort stellt ihr folgende Einstellungen ein:
Start node ID: 176 (Hier müsst ihr die ID des Endpunktes (Nicht Startpunkt!) angeben. Klickt dazu einfach auf die Pinzette und dann in der 3D-Ansicht auf den Endpunkt)
End node ID: 177 (ID des Startpunktes)
Initial State: On (Bei mir sollen die fastzombies von Anfang an hier hochklettern können, also muss es auf "On" stehen.)

Die Flags sind unwichtig. Nun könnten die fastzombies eigentlich schon an dieser Stelle hochklettern. Nur haben sie noch keinen Grund dazu. Die fastzombies wissen ja nicht, ob sich der Spieler oben befindet, oder nicht. Dieses Problem lösen wir ganz einfach mit einem npc_enemyfinder.
Erstellt also ein npc_enemyfinder mit folgenden Einstellungen:
Name: Enemyfinder
Squad Name: Squad1 (Dadurch tauscht der Enemyfinder Informationen mit den fastzombies aus)
FieldOfView: -1 (Da der NPC eine unendliche Sichtweite besitzen soll, muss es auf -1 gestellt werden)
StartOn: Yes (Je nachdem, ob ihr wollt, dass der Enemyfinder von Anfang an verfügbar ist, oder erst per Input, müsst ihr dies auf yes oder no stellen.)
In den Flags müsst ihr jetzt noch "Check Visibility" und "Fall to ground" deaktivieren.
Leider sind fastzombies ziemlich dumm. Sie wissen jetzt zwar, wo sich der Spieler befindet, schauen sich aber lieber erstmal nach einem anderen Weg um, bevor sie zu klettern beginnen.
Deswegen setzen wir jetzt noch ein aiscripted_schedule an den Endpunkt der Kletterstrecke und nehmen diese Einstellungen vor:
Name: schedule
Target NPC: fastzombies
AI state to set: Set state to ALERT
Schedule to run: Run to Goal Entity
Interruptability: Death
Goal Entity: schedule
Sobald nun ein fastzombie gespawnt wird, rennt er zum aiscripted_schedule. Dann wird ihm vom npc_enemyfinder der Standpunkt des Spielers übermittelt. Sollte der Spieler sich nun oben auf dem Brush befinden, wird der fastzombie dorthin klettern.

So, und nun wünsche ich noch viel Spaß. ;)
Beispielmap könnt ihr hier herunterladen.
MfG,
Silver