====== assault ====== Das Assault-System besteht aus 3 Komponenten: * ai_goal_assault (1 pro Assault-Funktion) * Pro NPC je ein [[half-life_2:entities:assault#assault_rallypoint|assault_rallypoint]] * Eine beliebige Anzahl von [[half-life_2:entities:assault:#assault_assaultpoint|Assault_assaultpoints]] Das NPC folgt dabei einer vorgegebene Route, ähnlich wie bei einem [[half-life_2:entities:path_corner]]. Im Gegensatz zum path_corner ist das Assault-System aber speziell für Kampfsituationen entworfen worden. Hier werden alle Komponenten ausführlich erklärt: ===== Auslöser ===== Assaults können auf verschiedene Weisen getriggert werden: - Das ai_goal_assault wird mit einem ''Activate''-Input aktiviert und sendet die Beteiligten zu den angegebenen assault_rallypoints. - Das ai_goal_assault wird mit **Start Active** so eingestellt, dass es zu Beginn den Assault auslöst, wenn die Map geladen wird. Der Ablauf des Assaults ist gleich wie bei **1.)** ===== Erklärungen der einzelnen Entities ===== Hier werden nur die wichtigsten Angaben der Entities, die für den Assault wichtig sind, erklärt. Alle anderen Angaben sind bekannte Angaben oder wurden woanders bereits erklärt. ==== ai_goal_assault ==== Das ai_goal_assault gibt an, welche NPCs am Assault beteiligt sind und löst den Assault aus, wenn die Bedingungen dafür erfüllt sind. Das Entity muss aktiv sein (-> ''Activate''-Input / **Start Active**) === Properties === * **[[half-life_2:entities:eigenschaften:targetname|Name]]** * **Actor(s) to affect** - Die betroffenen NPCs. * **Rally Point Set** - Ursprungsname aller Rally_Points. Mit einem Wildcard (**''*''**) hinter dem Urpsrungsname werden alle Rally_Points mit dem gleichen Beginn ausgewählt. * **Search Type** - Wie nach dem Zielnamen gesucht werden soll. * Entity Name * Classname * **Start Active** * No * Yes * **Assault Cue** * Entity System Input * Gunfire * Don't wait for a cue. * **Ralley Point Selection Method** * Prioriy, Distance (default) * Random === Inputs === * **[[half-life_2:entities:eigenschaften:io#activate|Activate]]** - Zusätzlich werden alle betroffenen NPCs zu einem ausgewählten assault_rallypoint geschickt. An diesem Punkt warten sie dann auf **Assault Cue**. * **[[half-life_2:entities:eigenschaften:io#addoutput|AddOutput]]** * **BeginAssault** - Wenn das Entity aktiv ist und **Assault Cue** auf ''Entity System Input'' FIXME, wird der eigentliche Assault ausgelöst. Die betroffenen NPCs gehen nun vom Rally-Point zu den Assault-Points. * **[[half-life_2:entities:eigenschaften:io#deactivate|Deactivate]]** * **[[half-life_2:entities:eigenschaften:io#fireuser|FireUser*]]** * **[[half-life_2:entities:eigenschaften:io#kill|Kill]]** * **[[half-life_2:entities:eigenschaften:parent#inputs_outputs|KillHierarchy]]** === Outputs === * **[[half-life_2:entities:eigenschaften:io#onuser|OnUser*]]** ==== assault_rallypoint ==== === Properties === * **Assault Point** - Zielentity (assault_assaultpoint), das angesteuert wird, sobald der Assault begonnen hat. * **Assault Delay** - Standard: 0 - Wartezeit nach dem Kommando, dass der Assault beginnt und dem eigentlichem Beginn. * **Rally Sequence** - Überschreibt die normale Warteanimation des NPCs mit einer Anderen. * **Priority** - Standard: 1 - Wichtigere Rally-Points werden zuerst ausgewählt. === Inputs === * ** [[half-life_2:entities:eigenschaften:io#kill|Kill]] ** * ** [[half-life_2:entities:eigenschaften:io#KillHierarchy|KillHierarchy]] ** * ** [[half-life_2:entities:eigenschaften:io#AddOutput|AddOutput]] ** * ** [[half-life_2:entities:eigenschaften:io#FireUser|FireUser*]] ** * ** [[half-life_2:entities:eigenschaften:parent]]** === Outputs === * **OnArrival** - Gefeuert wenn ein NPC den Rally_Point erreicht. * **[[half-life_2:entities:eigenschaften:io#onuser|OnUser*]]** ==== assault_assaultpoint ==== Dieses Entity gibt an, wo die NPCs hingehen sollen, sobald der Assault begonnen hat. Die Anzahl der assault_assaultpoints pro System ist unbegrenzt. === Properties === * **Assault Hint Group** - Bindet NPCs in dem Angriff zu dieser Gruppe. * **Assault time out** - Wie lange an diesem Punkt gewartet werden soll, bevor weitergelaufen wird. * **Clear on contact with enemies** - (''Yes/No'') - Sollen Gegner auf dem Weg zu dem Assaultpoint attackiert werden? * Allow diversion: (''Yes/No'') * Wenn auf ''Yes'' gesetzt, werden die NPCs jeden Gegner jagen und töten, es sei denn sie geraten aus der Sichtweite. * Wenn auf ''No'' gesetzt, werden die NPCs ohne Halt zu dem nächsten Punkt bewegen; sie attackieren die Gegner zwar, jagen sie aber nicht. * **Never Timeout** - Zwingt die NPCs diesen Punkt **auf jeden Fall** zu erreichen - ohne Zwischenhalte. === Flags === * **Clear this point on arrival** - Nach dem Erreichen dieses Punktes wird sofort weitergelaufen, egal welche Gegebenheiten vorliegen. === Inputs === * ** [[half-life_2:entities:eigenschaften:io#kill|Kill]] ** * ** [[half-life_2:entities:eigenschaften:io#KillHierarchy|KillHierarchy]] ** * ** [[half-life_2:entities:eigenschaften:io#AddOutput|AddOutput]] ** * ** [[half-life_2:entities:eigenschaften:io#FireUser|FireUser*]] ** * ** [[half-life_2:entities:eigenschaften:parent]]** * **SetClearOnContact** - Ändert den Wert **Clear on Contact with enemies** (Eingabe: ''1/0'' bzw ''Yes/No'') * **SetAllowDiversion** - Ändert den Wert **Allow diversion** (Eingabe: ''1/0'' bzw ''Yes/No'') * **SetForceClear** - Ändert den Wert **Force Clear** (Eingabe: ''1/0'' bzw ''Yes/No''). Wenn Ja, räumen NPCs den Assault Point unverzüglich. === Outputs === * **OnArrival** - Gefeuert wenn ein NPC den Punkt erreicht. * **OnAssaultClear** - Gefeuert wenn der Punkt geräumt wurde (Keine Gegner mehr in Sichtweite) * **[[half-life_2:entities:eigenschaften:io#onuser|OnUser*]] **