15.05.2014 um 18:20
Anonymer Benutzer
Anonymer Benutzer
ForenprofiLaborratte
Eine ArmA-3 Modifikation für Gruppe W erstellt
Beiträge: 1694
Registriert am: 20.01.13
Achtung! Es ist eine neue FUPS Version rausgekommen, diese wird nicht mehr unterstützt. Ihr findet die neue Version hier!
[img]http://picload.org/image/lcrlllp/fupshintergrundschatten.png[/img] is not a valid Image.
------------------------------------------------------
Inhalt
------------------------------------------------------
1.0 Einleitung
2.0 Funktionen
3.0 Einbetten
4.0 Verwenden
5.0 Download & Changelog
------------------------------------------------------
Einleitung
------------------------------------------------------
Nun, was ist FUPS? FUPS ist meine Version von Kronzkys berühmt, berüchtigtem Urban Patrol Script, kurz UPS, besser bekannt in der überarbeiteten Version von Monsada, die sich UPSMON nennt.
Ich hatte ein paar Probleme mit UPSMON. Erstens waren alle Portierungen, die ich auf ArmA 3 fand stark fehlerbehaftet, zweitens war das System in meinen Augen zu eng, ich hatte nicht genug Freiraum, um das umzusetzen, was ich umsetzen wollte. Deswegen habe ich mich an meine eigene Version gesetzt.
------------------------------------------------------
Funktionen
------------------------------------------------------
FUPS bietet im Moment folgende wichtigeren Funktionen:
- Natürlich das ganz normale UPS.sqf mit ein paar veränderten Parametern (s. fn_fups.sqf)
- Die Möglichkeit, KI einen Gegenangriff starten zu lassen
- Die Möglichkeit, als Template gespeicherte Einheiten zu spawnen und mit FUPS zu initialisieren
------------------------------------------------------
Einbetten
------------------------------------------------------
Ladet euch den Ordner FUPS herunter, verschiebt ihn in euren Missionsordner und schreibt folgendes in eure description.ext:
class CfgFunctions {
#include "FUPS\CfgFunctions.hpp"
};
Jetzt könnt ihr FUPS verwenden!
------------------------------------------------------
Verwenden
------------------------------------------------------
FETT_fnc_fups
Möchtet ihr einfach Einheiten via FUPS initialisieren, geht ihr folgendermaßen vor:
Ihr platziert eine Gruppe KI im Editor.
In die Init-Zeile des Groupleades schreibt ihr nun:
[this,"MARKERNAME"] spawn FETT_fnc_fups
Alle groß geschriebenen Wörter, müssen natürlich durch entsprechende Parameter ersetzt werden. Dabei gibt der Marker das Gebiet an, in dem die KI patroullieren wird.
Innerhalb des Arrays ( [ ... ] ) könnt ihr noch weitere Parameter hinzufügen. Mögliche Paramter findet ihr in der Datei fn_fups.sqf. Alle Parameter müssen als String also mit "" angegeben werden.
FETT_fnc_fupsAttack
Bitte beachten: KI Einheiten, die mit FUPS initialisiert wurden, helfen sich immer gegenseitig, wenn sie innerhalb der Sharedist sind. Das ist eine normale Funktion von UPS. Dieses Script ist eher für großangelegtere Angriffe gedacht und nicht für den normalen Kampf.
Dieses Script lässt eine beliebige Anzahl von mit FUPS und dem Parameter "REINFORCEMENT:" initialisierten KI Gruppen eine bestimme Position angreifen.
Sie werden dort hingehen, 10 Minuten durch das Gebiet patroullieren und wenn sie dann keinen Gegner gefunden haben, zu ihrem ursprünglichen Verhalten zurückkehren.
Haben sie Gegner gefunden, bekämpfen sie den solange, bis er tot ist oder sie ihn verloren haben. Dann warten sie wieder 10 Minuten und kehren zu ihrem Ursprung zurück.
Ihr ruft das Script foglendermaßen auf:
_marker = [ ( [ OBJEKTE ] / MARKER ), [ REINFORCEMENTS ], SEITE, TRUE, TRUE] call FETT_fnc_fupsAttack;
Im ersten Parameter ( [ OBJEKTE ] / MARKER ) gebt ihr in einem Array an, welche Objekte angegriffen werden sollen. Ich verwende dieses Script gerne in Triggern, die dann thislist als ersten Parameter an das Script geben, also die Liste aller Einheiten, die den Trigger ausgelöst haben.
Alternativ könnt ihr aber auch bereits existierende Marker angreifen lassen, indem ihr einfach anstelle des Arrays den Markernamen als String angebt.
REINFORCEMENTS gibt alle Nummern von Reinforcement Templates an, die diese Position angreifen sollen. Z.B.: [1,3,5]. Es werden nun alle Einheiten, die zu diesen Templates gehören, den Angriff durchführen.
Um Einheiten als Reinforcements zu initialisieren, müsst ihr in der FUPS Initialisierung folgende Parameter ergänzen:
"reinforcement:",[1,2,3]
Dabei geben die Zahlen die Reinforcement Gruppen an, zu denen die Einheit gehört. Eine Einheit kann also mehreren Reinforcement Gruppen angehören. Einer Reinforcement Gruppe können ungekehrt aber auch mehrere Einheiten angehören.
SEITE gibt an, von welcher Seite die Einheiten geschickt wollen. Diese Varaible muss als String angegeben werden. Mögliche Optionen sind:
"west"
"east"
"guer"
TRUE als vierter Parameter ist optional. Setzt ihr am Ende true wird die Einheit ungeachtet irgendwelcher Kontrollen, z.B. weil sie schon mit einem Angriff beschäftigt ist, diesen Angriff durchführen.
Der letzte Parameter, wieder TRUE, ist ebenfalls optional. Setzt man diesen auf true, bleiben die Einheiten in dem Gebiet, das sie angegriffen haben. Lässt man ihn weg, ist er auf false gesetzt.
Der Rückgabewert, in diesem Falle _marker gibt euch den neu entstandenen Marker, mit dem alle angreifenden Einheiten initialisiert wurden.
FETT_fnc_fupsSpawn
Mithilfe dieser Funktion könnt ihr während einer Mission Einheiten spawnen lassen. Dies geschieht über folgenden Script-Aufruf:
_einheiten = [POSITION, MARKER, ARRAY / OBJEKT , PARAMS,TRUE] call FETT_fnc_fupsSpawn
Der Parameter POSITION bestimmt, wo die Einheiten gespawnt werden sollen.
Der Parameter MARKER bestimmt, auf welchen Marker die neu gespawnten Einheiten initialisiert werden sollen.
Der Parameter ARRAY bestimmt, welche Templates gespawnt werden sollen.
Was welches Template ist, wird durch den Parameter "template:",X in der FUPS Initialisierung festgelegt. D.h., dass die Gruppe, die mit "template:",3 initialisiert wird, gespawnt wird, wenn man in dem Array eine 3 mit angibt.
Man kann mehrere Templates in dem Array angeben, man kann die gleichen Templates mehrfach angeben, sie werden dann so oft gespawnt, wie ihr das Template angegeben habt.
Eine Möglichkeit ist z.B.: [2,2,4,5]
Hier wird das Template 2 zwei Mal gespawnt und jeweils ein Mal die Templates 4 und 5.
Gebt ihr anstelle eines Arrays ein Objekt an, wird dessen Gruppe in ihrem aktuellen Zustand geklont.
Der optionale Parameter PARAMS ist ein Array, in dem ihr eventuelle Parameter angebt, mit der die gespawnten Gruppen zusätzlich initialisiert werden. Z.B.: ["nofollow"].
Der zweite optionale Parameter TRUE gibt an, ob die Gruppe mit FUPS initialisiert werden soll (true und Standard) oder eben nicht.
Der Rückgabewert, den ich hier _einheiten genannt habe, gibt euch ein Array mit den neuen Groupleaders.
------------------------------------------------------
Download & Changelog
------------------------------------------------------
Download v1.2.91:
Klicken zum Download
v1.0.2:
- Release Version
v1.0.3:
- Neuer Parameter zu FETT_fnc_fupsAttack hinzugefügt, Einheiten können im angegriffenen Gebiet bleiben.
v1.0.4:
- FETT_fnc_fupsAttack kann nun auch einen bereits fertigen Marker angreifen lassen.
v1.0.5
- Verschiedene Skriptverbesserungen, die Fehlerquellen ausschalten und die Skripte sicherer machen
v1.0.6
- Wichtige Skriptverbesserung, um Fehler mit "reinforcement:" zu beheben!
v1.0.7
- Fehler in den "reinforcement:" behoben
v1.1.0
- Parameter "minenemies:" entfernt
- Parameter "noname" entfernt, "named" wieder hinzugefügt, damit wird es unnötig, Einheiten und das FUPS Script zu bennen, s. den neuen Funktionsaufruf
- Parameter "delete:" entfernt, ArmA 3 bietet diese Funktionen bereits
- Standard Paramter auf "notrigger" gesetzt (anstelle von "silenttrigger")
- FETT_fnc_fupsAttack kann nicht mehr Positionen angreifen lassen
- Sehr viele Perofrmanceverbesserungen, sowie eine verbesserte Verwendung von den Reinforcements, die jetzt direkt in FUPS.sqf gesteuert werden, dadurch wird das Einheitenverhalten besser
v1.1.1
- Hotfix
v1.2.2
- FETT_fnc_fupsSpawn gibt den neu gespawneten Einheiten keine Namen mehr.
- FETT_fnc_fupsSpawn hat jetzt einen neuen Parameter, der festlegt, ob die Gruppe mit FUPS initialisiert wird oder nicht. Der Parameter ist optional.
- FETT_fnc_fupsSpawn kann auch mit einem Gruppenmitglied anstelle eines Arrays aus Template Nummern eine Gruppe in ihrem jetzigen Zustand klonen. Jetziger Zustand bezieht sich auf die Anzahl lebender Gruppenmitglieder.
- Ansonsten habe ich FUPS_spawn stark optimiert und die normale FETT_fnc_fups auf spawnende Einheiten optimiert. Auch kann man jetzt wieder die Funktion, Klone zu erstellen, benutzen. Dies stellt man über die Parameter "min:" und "max:" ein.
- Kleine Performanceverbesserungen sind ebenfalls drin.
v1.2.3.
- Hotfix
v1.2.4
- Hotfix in FETT_fnc_fupsSpawn
v1.2.5
- Hotfix in FETT_fnc_fupsAttack
v1.2.6
- Reinforcements haben eine kleine Veränderung in der Technik, was sie sicherer macht und ein wenig Performance spart.
v1.2.7
- Generelle KI Verhaltensverbesserungen
v1.2.9
- FUPS funktioniert wieder für Zivilisten
v1.2.91
- Bugfix für falsche Initialisierung von Freund-/Feinvariablen von KI.
Bearbeitet von Anonymer Benutzer am 07.10.2015 um 11:39