... | ... | @@ -2,21 +2,50 @@ |
|
|
|
|
|
> "EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus." - **André Kostolany**
|
|
|
|
|
|
## Das Wiki
|
|
|
|
|
|
Das Wiki zu den W-Functions ist in zwei Bereiche geteilt, die ihr über das Menüband am rechten Bildschirmrand auswählen könnt.
|
|
|
|
|
|
Unter **_Functions_** findet ihr Dokumentation und Nutzungsbeispiele zu allen Endnutzerfunktionen der W-Functions
|
|
|
Unter **_Functions_** findet ihr Dokumentation und Nutzungsbeispiele zu allen Endnutzerfunktionen der W-Functions.
|
|
|
|
|
|
Unter **_Systems_** folgen Erklärungen zu einzelnen Systemen und wie diese verwendet werden können/sollten. Dabei werden Zusammenhänge erklärt, welche aus der reinen Dokumentation vielleicht nicht direkt hervorgehen.
|
|
|
|
|
|
**Bitte beachte, dass die Sidebar rechts nicht alle Pages anzeigt. Für eine Gesamtübersicht klicke entweder [HIER](https://gitlab.gruppe-w.de/Miller/w_fnc/-/wikis/pages), oder in der Sidebar auf "View All Pages"**
|
|
|
|
|
|
_____________________________________
|
|
|
## Motivation
|
|
|
|
|
|
In selbstgebauten Missionen für Arma 3 ist ein flüssiges Spielerlebnis wichtig für die Immersion.
|
|
|
Jedoch beansprucht aktive KI den Server sehr.
|
|
|
Daher bedeutet gutes Missionsdesign unter Anderem, dass stets nur die KI gespawnt wird, die für den Spieler zum aktuellen Zeitpunkt auch tatsächlich 'relevant' ist.
|
|
|
Das Spawnen in Abhängigkeit solcher Bedingungen ist am einfachsten über [Trigger](https://community.bistudio.com/wiki/Eden_Editor:_Trigger) umzusetzen.
|
|
|
Leider erfordert dieser Ansatz in der Regel gute [SQF](https://community.bistudio.com/wiki/SQF_Syntax)-Kenntnisse und ist deutlich aufwändiger als der sehr leistungshungrige Ansatz, die KI einfach im Editor vorzuplatzieren.
|
|
|
Jetzt kommen die W_FNC ins Spiel:
|
|
|
sie verstecken das komplizierte Klein-Klein des 'normalen' Skriptens (bspw. Lernen der Befehle, Lokalitäten, korrekte Reihenfolge der Waypoints bei komplizierten Aufgaben wie Fahrzeugboarding/Transport) und reduzieren es so auf das Ausfüllen von ein paar wenigen Funktionen.
|
|
|
Dadurch ermöglichen die W_FNC auch unerfahrenen Skriptern sehr dynamische Missionen mit potentiell beliebig viel KI und einer großen Reduktion des technischen Fehlerrisikos.
|
|
|
|
|
|
## Allgemeines Prinzip
|
|
|
|
|
|
Die Nutzung der W_FNC geschieht in zwei grundlegenden Abschnitten.
|
|
|
Zuerst findet die Registrierung aller Eigenschaften für die KI statt, die im weiteren Verlauf des Missionsbaus in der Regel selten, oder garnicht mehr geändert werden (siehe dazu unter **_Functions_** das Kapitel **_1_Einrichten_**).
|
|
|
Dazu gehören bspw. Aspekte wie die Sprache der KI, die zugehörige Seite, ihre Skill-Werte und Ähnliches, was die allgemeine Fraktion betrifft.
|
|
|
Durch diesen ersten Abschnitt, das einmalige Einrichten, wird der zweite Abschnitt, die reguläre Verwendung zum dynamischen Spawnen erst so richtig einfach.
|
|
|
Im einfachsten Fall muss so nur noch ein Name, Spawn-Positionen und die Gruppenstruktur eingefügt werden, um einen dynamischen Spawn auszuführen.
|
|
|
Die verfügbaren Funktionen dazu finden sich unter **_Functions_** im Kapitel **_2_Verwenden_** und für zahlreiche Beispiele ist die gut gepflegte [Demo-Mission](https://gitlab.gruppe-w.de/Felix/w_fnc_tech_demo) sehr zu empfehlen!
|
|
|
|
|
|
## W-Functions Demo Mission
|
|
|
|
|
|
Für eine umfangreiche Übersicht anhand zahlreicher Beispiele ist die gut gepflegte [Demo-Mission](https://gitlab.gruppe-w.de/Felix/w_fnc_tech_demo) sehr zu empfehlen!
|
|
|
Ladet diese Mission im Editor und lest die Kommentare auf der Karte, um zu erfahren, wie die Beispiele funktionieren.
|
|
|
Außerdem schadet ein Blick in die `initServer.sqf` der Demo-Mission nicht, falls ihr auf eigene Faust erkunden wollt, wie alles funktioniert.
|
|
|
|
|
|
|
|
|
## W-Functions in eine Mission einbinden
|
|
|
|
|
|
- Lade dir den neuesten [Release](https://gitlab.gruppe-w.de/Miller/w_fnc/-/releases) herunter
|
|
|
- Kopiere den Ordner **`W_fnc`** und die Datei **`CfgWFNC.hpp`** in den Missionsordner
|
|
|
- Füge in der **`description.ext`** folgendes hinzu:
|
|
|
### Methode 1: Von Grund Auf
|
|
|
|
|
|
1. Lade dir den neuesten [Release](https://gitlab.gruppe-w.de/Miller/w_fnc/-/releases) herunter
|
|
|
2. Kopiere den Ordner **`W_fnc`** und die Datei **`CfgWFNC.hpp`** in den Missionsordner
|
|
|
3. Füge in der **`description.ext`** folgendes hinzu:
|
|
|
```sqf
|
|
|
#include "CfgWFNC.hpp"
|
|
|
|
... | ... | @@ -25,7 +54,7 @@ class CfgFunctions { |
|
|
};
|
|
|
```
|
|
|
(Beachte, dass die **`class CfgFunctions`** in der **`description.ext`** nur **EINMAL** aufgerufen werden darf!)
|
|
|
- Füge in der **`CfgLoadouts.hpp`** folgendes hinzu:
|
|
|
4. Füge in der **`CfgLoadouts.hpp`** folgendes hinzu:
|
|
|
```sqf
|
|
|
class CfgLoadouts {
|
|
|
//include MIL_AI Loadouts
|
... | ... | @@ -34,6 +63,20 @@ class CfgLoadouts { |
|
|
```
|
|
|
(Beachte, dass die **`class CfgLoadouts`** in der **`CfgLoadouts.hpp`** nur **EINMAL** aufgerufen werden darf!)
|
|
|
|
|
|
## W-Functions Demo Mission
|
|
|
An dieser Stelle sind die Funktionen für dich erreichbar und nutzbar.
|
|
|
Das vollständige Einrichten, bis die Spawn-Funktionen in ihrer vorgesehenen Funktion verwendet werden können, erfordert weitere Schritte in der `initServer.sqf`:
|
|
|
|
|
|
5. füge [Fraktionen](./Functions/1_Einrichten/GrpW_spawn_fnc_addFactionConstantsPreset.md) hinzu
|
|
|
6. füge [Gruppenkonfigurationen](./Functions/1_Einrichten/GrpW_spawn_fnc_addGroupPreset.md) hinzu
|
|
|
7. definiere deine [Skills](./Functions/1_Einrichten/GrpW_spawn_fnc_addSkillPreset)
|
|
|
|
|
|
|
|
|
Für eine umfangreiche Übersicht anhand zahlreicher Beispiele ist die gut gepflegte [Demo-Mission](https://gitlab.gruppe-w.de/Felix/w_fnc_tech_demo) sehr zu empfehlen! |
|
|
\ No newline at end of file |
|
|
### Methode 2: Copy & Paste
|
|
|
In dieser Variante ist auch die Einrichtung enthalten, so dass diese nur noch auf die eigenen Wünsche angepasst werden muss.
|
|
|
1. Falls du in deine `description.ext` schon bearbeitet hast, sichere sie.
|
|
|
2. Lade die [Demo-Mission](https://gitlab.gruppe-w.de/Felix/w_fnc_tech_demo) herunter
|
|
|
3. Öffne den Ordner der Demo-Mission und kopiere Alles außer `mission.sqm` in den eigenen Missionsordner
|
|
|
4. Öffne die Demo-Mission im Editor und gehe auf die Karte.
|
|
|
5. Markiere und Kopiere (strg+c) _respawn_west_ , _HC_, _Spectators_, _Zeus_ und die _W-Flagge_, die den W_tech_support enthält (die Objekte sind mit einem Kommentar auf der Karte markiert)
|
|
|
6. Lade wieder deine eigene Mission und platziere die kopierten Objekte (strg+v)
|
|
|
7. Gehe in deinen Missionsordner, öffne die neue, kopierte `description.ext` (die Schaltzentrale deiner Misison) und passe ganz oben die Beschreibung wieder auf deine Mission an. (lösche deine Sicherung) |