Arm A 3 Editing Guide 26102013

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 77

DownloadArm A 3 Editing Guide - 26102013
Open PDF In BrowserView PDF
Über diesen Guide
Dieser Editing Guide entsteht in Anlehnung an den berühmten Guide von Mr. Murray. Dieser ist
jedoch leider ziemlich in die Jahre gekommen und alles andere als aktuell.
Außerdem sind mit ArmA 2 und besonders mit ArmA 3 viele neue Sachen hinzugekommen die es
damals bei Ersterscheinen des Ur-Editing Guide (ca.2008) nicht gab.
Daher soll diese komplette Neuschrift an diesem Punkt anknüpfen und besonders auf die
Neuerungen hinweisen. Trotzdem bleibt die Zielgruppe des Guides diejenigen die das MissionsEditing gerade erst erlernen wollen. Nebenher dient dieser Guide natürlich auch als Nachschlagewerk
für solche die schon die ersten Erfahrungen gesammelt haben. Ein paar Profi-Tipps von mir runden
die Sache ab sodass hoffentlich auch die Erfahrenen unter euch noch den einen oder anderen
nützlichen Tipp finden werden. 
Was möchte ich in diesem Guide anders machen? Ich werde versuchen stets meine eigene Meinung
oder meine Ansätze zu bestimmten Themen, als solche gekennzeichnet, mitunter zu bringen.
Außerdem werde ich versuchen neben dem technischen Handwerk des Missionsbaus auch den
zwischenmenschlichen Bereich mit einzubeziehen. Damit sind bestimmte Gedanken- und
Auftrittsmuster gemeint die man während des Schaffens seines eigenen Werkes beachten sollte um
die Mission stets spielbar und interessant für andere zu gestalten. Denn in den meisten Fällen
wünscht sich der Schöpfer doch dass andere sein Werk spielen und auch an diesem Freude haben.
Dabei versuche ich behilflich zu sein.
Im Folgenden erläutere ich kurz ein paar Symbole die Ihr immer wieder an verschiedenen Stellen in
diesem Nachschlagewerk finden werdet. Diese Symbole dienen der Übersicht und markieren
wichtige oder besondere Stellen.

Wichtig:

Neu:

Stilmittel:

markiert Stellen die einer besonderen Aufmerksamkeit bedürfen

markiert etwas was mit ArmA 3 hinzugekommen ist

besonders entscheidend für das Erscheinungsbild einer Mission

1

1.

Die Grundlagen des Editors und Editing

Dieses Kapitel wird euch die Grundlagen des Editors näher bringen. Nachdem Ihr dieses Kapitel
abgearbeitet habt, wisst ihr wie Ihr den Editor bedient und was die Symbole im Editor zu bedeuten
haben. Außerdem werden die Funktionen hinter den diversen Schaltflächen im Editor kurz erläutert.

1.1 Der Editor und seine Oberfläche
Der Editor kommt mit ArmA 3 auch mit einer komplett neuen Oberfläche daher und ist für die
Veteranen unter euch daher im ersten Moment vielleicht etwas ungewöhnlich gestaltet. Trotzdem ist
der Aufbau des Editors unter ArmA 3 wirklich übersichtlich und benutzerfreundlich.

Ganz oben in der grünen Spalte findet ihr den Dateinamen unter dem Ihr euer Projekt gespeichert
habt. Wurde das Projekt noch nicht gespeichert wird dies durch ein simples Sternchen (*) in der
linken oberen Ecke symbolisiert.
Gleich darunter befinden sich in dem schwarzen Balken eine ganze Reihe kleiner Buttons welche die
Grundfunktionen des Editors beherbergen. Laden, Speichern, Funktionsmanager und auch die
Missionsvorschau (Preview) sind hier beinhaltet.
In dem schwarzen Balken der am linken Bildschirmrand zu sehen ist sind schließlich die eigentlichen
Editing Funktionen untergebracht mit denen Ihr letztendlich eure Mission gestalten könnt. Auf jede
einzelne dieser Editing Funktionen wird im Folgenden noch genauer eingegangen.

2

Neu, Laden, Speichern, Speichern unter, Verbinden
Die Funktionen dieser Buttons sollten klar sein. Denkt immer mal wieder daran den Speicher Button
zu verwenden um Datenverlust und verlorener Kreativität vorzubeugen. Mit „Speichern unter“ könnt
ihr euch einen neuen Speicherzielpfad für eure Mission suchen. Der Standard Speicherpfad unter der
Verwendung von Windows 7 und auch Windows 8 ist unter folgendem Pfad zu finden:
C:\Users\name PC Konto\Documents\Arma 3 Alpha - Other Profiles\euerSpielerProfilName\MPMissions

Beachtet, dass wenn Ihr während Ihr euch im Multiplayer Editor befindet und auf „Vorschau“ (engl.
Preview) klickt die Mission automatisch gespeichert wird!
Das Verbinden (engl. Mergen) von Missionen kann sehr hilfreich und zeitsparend sein wenn ihr auf
die Verwendung von Vorlagen (engl. Templates) die Ihr euch selbst erstellt habt oder auf die aus der
Community zurückgreift. Ich persönlich mache oft Gebrauch von dieser Funktion da ich viel mit selbst
erstellten Templates arbeite.

Intel, Debug Console, Function & Config Viewer
Hinter dem Button „Intel“ verbirgt sich alles was an Umwelteinflüssen auf eure Mission einwirken
kann. Daher ist dieser Bereich ein sehr wichtiges Stilmittel für eure Mission und kann deren
Erscheinungsbild und Stimmung grundlegend beeinflussen.
Die anderen drei Buttons in diesem Bereich werden zu einem späteren Zeitpunkt genauer behandelt
und sind eher für den fortgeschrittenen Missionsbauer nützlich. Das Thema „Intel“ ist so
umfangreich, dass es in einem eigenen Abschnitt auf Seite xx behandelt wird.

Textur anzeigen, ID’s anzeigen
Sich die Geländetextur im Editor anzeigen zu lassen kann dann besonders nützlich sein, wenn es
darum geht Objekte im Editor auf einer bestimmten Fläche zu positionieren ohne ständig in die
Vorschau gehen zu müssen um zu prüfen wie das Objekt platziert wurde.

3

Lässt man sich die Gelände-ID’s anzeigen werden diese erst sichtbar wenn man im Editor tief genug
heran zoomt. Welchen Sinn haben diese ganzen Zahlen kann man sich jetzt fragen.

Jede Objekt-ID ist ein Objekt in der Welt von ArmA mit dem interagiert werden kann. Diese Objekte
können Häuser, Straßen, Bäume, Felsen oder Zäune sein. Die Engine hinter ArmA benutzt diese ID’s
um die KI (engl. AI) in der Welt agieren zu lassen. Wir können diese ID’s nutzen um feste
Gegenstände anzusprechen oder abzufragen.

Zum besseren Verständnis ein kleines Beispiel:
Ich möchte gerne ein Missionsziel festlegen. Ziel soll es sein einen Leuchtturm auf Stratis zu
zerstören. Wenn die Spieler dieses Ziel erreicht haben soll die Mission beendet werden. Dazu muss
ich jetzt den Leuchtturm der fest auf der Insel steht „abfragen“ können. Dazu schalte ich die ID’s auf
sichtbar und suche mir die ID des Leuchtturmes heraus. In meinem Fall ist das die ID 103049. Nun
platziere ich eine Game-Logic in der Nähe des Leuchtturmes und schreibe folgendes in die
Intialisierungszeile der Logik:

Lighthouse = position this nearestObject 103049;

Lighthouse stellt jetzt eine Variable dar dessen Namen ich mir selbst ausgedacht habe und man frei
bestimmen kann. Hinter der Variable Lighthouse steht jetzt der Leuchtturm als Objekt welchen ich
mit einem weiteren Auslöser (engl. Trigger) abfragen kann.

4

Zur Kontrolle könnt ihr einen
Trigger platzieren der ungefähr
so aussehen kann:
Ein Trigger mit Radioauslöser
BRAVO und einem Kommando in
der Aktivierung welches den
Schaden des genannten
Objektes, in dem Fall von
Lighthouse, auf 1 setzt.

Lighthouse setDamage 1;

Klickt auf Vorschau (engl. Preview) um in das Spiel zu gelangen. Drückt die Tasten in folgender
Reihenfolge für Radio-Code BRAVO: 0 – 0 – 2. Wenn alles funktioniert hat sieht das Ergebnis
folgendermaßen aus. 

Editor Layout
Mein liebster Button im Editor unter ArmA 3! Denn die alt Eingesessenen unter euch finden das neue
Design des Editors, auch wenn es mindestens genauso funktional sein mag wie jeher, vielleicht etwas
befremdlich. Daher ist es super das man mit einem einfachen Mausklick auf diesen Button das Design
wieder so herstellen kann wie man es von den Vorgängern seit OFP gewohnt ist. Eine klasse Sache –
jeder kann wählen und selbst bestimmen wie er mit dem Editor weiter arbeiten möchte.

5

1.2 Der Intel – Dialog
In dem Eingabefeld „Name“ gebt Ihr eurer Mission einen Namen. Mit diesem Namen wird eure
Mission später z.B. in der Missionsauswahl angezeigt oder als Name der laufenden Mission auf einem
Server im Multiplayer. Die Beschreibung sollte ein paar kurze und wesentliche Informationen zu der
Mission enthalten. Was Ihr hier angebt bleibt natürlich völlig eurem freien Willen überlassen. Ich
persönlich gebe hier gerne den Namen des Erstellers (also meinen Namen) und eine
Versionsnummer der Mission an. Das kann später äußerst nützlich sein um verschiedene
Missionsentwicklungsstadien auch noch unterscheiden zu können.
Die Angabe des Datums für eine Mission wird von vielen unterschätzt oder als unwichtig erachtet.
Das ist aber ein Fehler. Unter allen ArmA Teilen (auch OFP) wurden die Jahreszeiten simuliert. Das
hat sich auch jetzt nicht geändert. Was bedeutet das für euch?
Ganz einfach das ein Wintermonat in der Regel wesentlich kürzere Tage hat als ein Sommermonat.
Beachtet das also wenn ihr ein Datum auswählt. Beträgt die geplante Spielzeit einer Mission z.B. eine
Stunde und ihr wollt das die Mission während eines Sonnenunterganges stattfindet, schaut nicht nur
auf die Uhrzeit sondern auch auf das Datum damit der Spieler nicht plötzlich ohne Nachtsichtgerät im
dunklen stehen muss. Das ist ein Gamebreaker (Spielstopper)!
Neben der Länge eines Tages wird auch die Temperatur der Oberflächen simuliert. Das ist wichtig
wenn in der Mission Wärmesichtgeräte eine Rolle spielen sollen. Wird in der Wüste ein Wintermonat
gewählt und ihr schaut durch ein Wärmesichtgerät erscheint die gesamte Umgebung erst einmal
schwarz und ohne Kontur. Das ist so weil die Umgebung kalt ist und wird von sehr vielen
fälschlicherweise als Bug abgetan!
„Overcast“ beschreibt die Bewölkung des Himmels mit einem Wert zwischen 0 und 100, wobei 0 für
strahlenden Sonnenschein bei klarem Himmel steht. „Fog“, also Nebel ist jetzt selbsterklärend.

6

Seit ArmA 3 lässt sich nun auch der „Wind“ direkt im Intel Dialog beeinflussen. (Stärke und
Windböen) Leider wird bisher die Ballistik davon noch nicht beeinflusst und es bleibt bei einem
optischen und akustischen Effekt. Außerdem lässt sich die Höhe der Wellen steuern was zu einem
elementaren Stilmittel werden kann. Stellt euch vor ihr möchtet einen amphibischen Angriff in euer
Mission unterbringen. Ein Boot (z.B. Speedboat mit Minigun) soll vom Wasser kommend die Küste
unter Sperrfeuer nehmen. Für den Spieler ist jetzt der Wellengang bei der Zielerfassung ein
elementarer Unterschied im Schwierigkeitsgrad der Mission.
Wird „Lightning“ (Blitzen) selbst bestimmt, überschreibt dieser Parameter den „Overcast“ Wert und
setzt diesen auf 85. Der Sinn dahinter ist, dass es natürlich nur Blitzen kann wenn das entsprechende
Wetter dafür vorhanden ist. Den Regen kann man zum jetzigen Zeitpunkt leider noch nicht direkt in
diesem Dialog beeinflussen.
Im rechten Bereich des Dialoges befinden sich sämtliche Vorhersagewerte (engl. Forecasted) für die
diversen Wetterparameter die individuell und unabhängig von den Startwerten im linken Bereich
definiert werden können. Im unteren Bereich lässt sich jetzt auch noch die Zeit bis zum Erreichen des
Vorhersagewertes definieren. Diese neue Funktion finde ich persönlich besonders praktisch. Im
Ganzen finde ich das neue Wettersystem und die neuen Einstellmöglichkeiten die mit ArmA 3
gekommen sind sehr gelungen und hilfreich.
Die letzte Option die euch in dem Intel Dialog gegeben wird ist die Einstellung wie sich eine
unabhängige Partei zu euch oder euren Feinden verhalten wird. Die unabhängige Fraktion unter
ArmA 3 ist die griechische Armee. Und hier könnt ihr nun festlegen wie diese den anderen Fraktionen
gegenüber gesinnt sein wird.

7

1.3 Einheit platzieren
So fängt jede neue Mission an – zuerst wird eine erste Einheit platziert, nämlich der Spieler!
Wählt dieses Symbol (Einheit, engl. Unit) und macht einen Doppelklick mit der linken Maustaste auf
der Karte. Folgender Dialog öffnet sich der im ersten Moment erst mal recht unübersichtlich
erscheint da er sehr viele Einstellmöglichkeiten bietet. Mit einem einfachen Klick auf OK habt ihr
jedoch erst mal eure erste Einheit platziert.

Erst nachdem Ihr diesen ersten Schritt getan
habt könnt ihr in die Vorschau des Editors
wechseln. Und erst wenn eine erste Einheit als
Spieler erstellt wurde kann man „leere
Einheiten“ platzieren. Leere Einheiten können
leere Fahrzeuge oder andere statische Objekte
sein. Erst nachdem ein Spieler platziert wurde
wird die im folgenden Bild rot markierte Option
sichtbar!

8

Im Folgenden wird auf jeden der diversen Einstellmöglichkeiten im Einheiten Dialog kurz
eingegangen.

Seite
BLUFOR, OPFOR, INDIPENDENT, CIVILIAN
Ambient Life
Game Logic
Empty

-

stellt die spielbaren Seiten dar
Tierleben
eine Spiellogik
leere Fahrzeuge / Objekte aller Seiten

Fraktion
Hier befinden sich verschiedene Fraktionen / Armeetypen die sich aber innerhalb einer Seite
befinden (z.B. BLUFOR)

Klasse
Hier werden alle unter der vorher bestimmten Seite und Fraktion verfügbaren Klassen aufgelistet.
Mit Klassen sind hier die verschiedenen Einheiten- und Waffengattungen gemeint. (z.B. Men, Car,
Air, …)

Einheit
Alle Einheiten die sich innerhalb der vorher gewählten Klasse befinden sind hier zu finden.

Spezial
Keine – (engl. None) Wird diese Option gewählt kann eine platzierte Einheit wirklich frei platziert
werden ohne besondere Einflüsse.
Formation – (engl. Formation) Hier hingegen ist es etwas anders: Ist die Einheit die diese Option
erhält Mitglied einer Gruppe, wird diese egal wo sie platziert wurde, zu Spielbeginn bzw. Vorschau
direkt in die Formation des Gruppenführers gesetzt.
Fliegend – (engl. Fly) wird diese Option auf ein flugfähiges Objekt angewendet, befindet sich dieses
zu Missionsstart direkt fliegend in der Luft. Das funktioniert jedoch nur wenn das Objekt auch einen
Piloten hat. Auf Infanterie oder Fahrzeuge hat diese Option keinen Einfluss.
Im Laderaum – (engl. Cargo) Wird diese Option auf eine Infanterieeinheit vergeben befindet diese
sich direkt im Laderaum eines Fahrzeuges. Bedingung hierfür ist jedoch, dass sich eines der
Gruppenmitglieder bereits in dem Fahrzeug befindet und das Fahrzeug ausreichend Laderaum zur
Verfügung hat.

9

Kontrolle
Nicht spielbar – (engl. Non playable) ist sofort gewählt und steht für eine Einheit die direkt als KI
gesteuert wird bzw. sich selbst steuert
Spielbar – (engl. Playable) steht für eine Einheit die Optional gespielt werden kann und einen
Spielerslot in der Multiplayer-Lobby bietet oder die Möglichkeit auf einen Teamswitch im
Singleplayer oder Multiplayer bietet.
Spieler – (engl. Player) stellt den Standard Spieler-Slot dar, welcher immer benötigt wird und besetzt
sein sollte.

Fahrzeug abgeschlossen
Standard – (engl. Default) es wird keine besondere Einstellung getroffen, das Fahrzeug ist offen.
Diese Option hat ausschließlich auf Fahrzeuge einen Effekt.
Abgeschlossen – (engl. Locked) Das Fahrzeug ist für alle verschlossen und kann nicht verwendet
werden.
Offen – (engl. Unlocked) Das Fahrzeug ist offen und kann von jedem verwendet werden
Abgeschlossen für Spieler – (engl. Locked (Player)) das Fahrzeug ist nur für die Spieler verschlossen
und KI Soldaten können weiterhin das Fahrzeug verwenden.

Mit folgender Syntax kann ebenfalls der Fahrzeugstatus festgelegt oder im Laufe des Spieles
verändert werden. Diese Syntax kann in einem Script oder in der Initzeile des Fahrzeuges stehen.

Name lock true;

- Fahrzeug verschlossen

Name lock false;

- Fahrzeug offen

Wobei „Name“ das Fahrzeug als Variable darstellt. (alternativ wenn es in der Initzeile des Fahrzeuges
steht: „this“)

10

Rang vergeben
Der Dienstgrad einer Einheit ist dahingehend wichtig, dass die Einheit einer Gruppe mit dem
höchsten Rang auch automatisch der Gruppenführer wird. Nach dem eventuellen Ableben dieser
Einheit wird wiederum automatisch die Einheit mit dem nächsthöheren Rang zum Gruppenführer
ernannt.
Der Rang kann während des Spielverlaufes auch mit folgender Syntax geändert werden:

Name setRank „Captain“;

Info über Alter
Damit ist nicht das Alter der Einheit in Lebensjahren gemeint, sondern der Bekanntheitsgrad der
Einheit zu Spielbeginn. Umso „jünger“ die Einheit ist, desto mehr weiß der Gegner über dessen
aktuellen Status und Position.
Der Bekanntheitsgrad kann mit folgender Syntax geändert werden:

Name setTargetAge „5 MIN“;

Ausrichtung
Mit dem Azimut kann eine Einheit oder ein Objekt
gedreht werden. Dazu wird ein Winkelwert (einfache
Zahl zwischen 0 und 359) eingegeben.
Neu und sehr praktisch seit ArmA 3: Jetzt kann auch
bequem die Höhe einer Einheit oder eines Objektes bequem
im Editor angegeben werden. Dazu wird ein simpler Zahlenwert als Höhe (engl. Elevation), Angabe in
Meter, in das Eingabefeld getippt.

11

Eine weitere und bequemere Möglichkeit ein Objekt zu drehen ist es, das Objekt mit der Maus im
Editor zu markieren. Anschließend die Linke Shift-Taste gedrückt halten und erneut mit gedrückter
linker Maustaste und einer Mausbewegung das Objekt zu verdrehen.
Außerdem können Objekte und Einheiten mit folgender Syntax gedreht werden:

Name setDir 90;

- Einheit blickt nach Osten

Name, Initialisierung und Beschreibung
Name – der Name einer Einheit oder eines Objektes ist sein Name als Variable. Dieser Name muss
also nur vergeben werden wenn ihr diese Einheit oder dieses Objekt später „ansprechen“ oder
„abfragen“ möchtet. Dazu ein kleiner Exkurs in die Welt der Skripte:
In allen bisher gebrachten Syntaxbeispielen steht vor dem eigentlichen Befehl immer der Ersatz oder
Platzhalter „Name“. Dieser „Name“ stellt immer die Variable der Einheit oder des Objektes dar. Wollt
ihr einer Einheit also z.B. einen bestimmten Rang per Syntax zuweisen könnte das so bei euch
aussehen:

Der Name, also die Variable der Einheit ist hier: Alpha_Leader
Also ist die konkrete Syntax zum vergeben des Dienstgrades:

Alpha_Leader setRank „Major“;

Eine Alternative die gleiche Aufgabe, jedoch ohne die Vergabe einer eigenen Variable mit Hilfe einer
sogenannten „Magic Variable“ zeige ich euch im nächsten Beispiel…

12

Initialisierung- das Initialisierungsfeld eines Objektes oder einer Einheit dient zum Ausführen
bestimmter Befehle welche direkten Einfluss auf die Einheit oder das Objekt haben sollen. Einträge
die sich in der Initialisierung befinden werden direkt und unmittelbar nach dem Start einer Mission
ausgeführt. Außerdem werden hier ausgeführte Einträge global auf allen „Maschinen“ ausgeführt.
Mit Maschinen sind die beteiligten Lokalitäten in einem Spiel beschrieben. Im Falle einer Single
Player Mission seid das Ihr, also euer Rechner. Im Falle einer Multiplayer Mission die auf einem
echten Server läuft, seit das mindestens Ihr, der Server selbst und alle anderen Spieler auf dem
Server. Mehr dazu findet ihr im Kapitel Multiplayer/Lokalitäten. Auch ganze Skripte können hier
initialisiert, also gestartet werden.
Im Folgenden wieder ein Beispiel wie Ihr die Initialisierung nutzen könnt um einen Rang zu vergeben.
Jetzt jedoch ohne die Verwendung einer eigenen Variable ganz allein mit einer „Magic Variable“:

Was ist passiert? Es wird keine Variable vergeben. Außerdem wurde der Variablenname in dem
Initialisierungsfeld durch „this“ ausgetauscht. Dieses „this“ ist die magische Variable und beschreibt
„diese“ Einheit oder „dieses“ Objekt auf welche der Befehl „setRank“ eben angewendet werden soll.
Bitte beachtet – „this“ kann nur im Kontext mit dieser Einheit in dieser Initialisierung verwendet
werden und darf nicht mit einem „_this“ in Skripten verwechselt werden!!!

Beschreibung – die Beschreibung einer Einheit ist wichtig wenn die Einheit einen eigenen Namen
haben soll. Dieser Name ist jetzt wirklich nur ein ganz normaler Name und keine Variable. Das ist
dann hilfreich wenn Ihr diese Einheit als Spielbare Einheit definiert und diese in der Multiplayer
Lobby mit einem bestimmten Namen angezeigt werden soll.

Wie im Bild zu sehen wurde die Einheit als „Gruppenführer Alpha“ benannt. Dieser Eintrag wurde in
der Beschreibung der Einheit eingefügt.
13

Physischer Status
Fähigkeiten – (engl. Skill) beschreibt die Stärke einer Einheit und hat natürlich nur Einfluss auf von
der KI kontrollierte Einheiten. Die Fähigkeiten werden mit einer Zahl in einem Bereich zwischen 0 und
1 angegeben. Wobei 1 gleich 100% der Fähigkeiten entspricht oder ein nach ganz rechts
geschobenen Balken. Der „Skill“ kann auch mit folgender Syntax verändert werden:

Name setSkill 0.6;
Name setUnitAbility 0.6;

Eine weitere und professionellere Art und Weise die Fähigkeiten einer Einheit zu beeinflussen ist der
setSkill-Array Befehl.

Name setSkill [„aimingAccuracy“, 0.6];












aimingAccuracy
aimingShake
aimingSpeed
endurance
spotDistance
spotTime
courage
reloadSpeed
commanding
general

- Zielgenauigkeit
- Ziel verreißen
- Zielgeschwindigkeit zum Erfassen
- Ausdauer
- Erfassungsreichweite von Zielen
- Erfassungszeit / Reaktionszeit
- Mut (Fluchtverhalten)
- Nachladezeit
- Fähigkeiten als Kommandant
- generell, äquivalent mit normalen setSkill

Wie Ihr sehen könnt ist es damit möglich einzelne bestimmte Fähigkeiten einer Einheit zu fördern
oder zu schwächen. So könnt Ihr einem Scharfschützen wesentlich bessere Zielfähigkeiten verleihen
als einem gewöhnlichen Soldaten.
Anbei noch ein grober Richtwert welcher Skill in etwa welchem Schwierigkeitsgrad entspricht. Es gibt
nichts frustrierenderes als gegen eine große Horde von „Super-KI-Soldaten“ zu kämpfen weil der
Missionsbauer der Meinung war mit extremen Schwierigkeitsgrad die Spieltiefe steigern zu können.
Gebt diesem Punkt also eine besondere Aufmerksamkeit wenn ihr eine Mission entwickeln wollt.






Novice < 0.25
Rookie >= 0.25 und <= 0.45
Recruit > 0.45 und <= 0.65
Veteran > 0.65 und <= 0.85
Expert > 0.85
14

Gesundheit / Panzerung – (engl. Health/Armor) abhängig davon ob es sich um einen Infanteristen
oder ein Fahrzeug/Objekt handelt wird hier die Gesundheit bzw. der Status der Hülle beeinflusst. Der
Wert wird dabei wieder zwischen 0 und 1 gebildet, wobei 1 gleich 100% entspricht.

Name setDamage 1;

- 100% Schaden

Auch hier gibt es noch einen Befehl für die fortgeschrittene Beeinflussung des Schadens:

Name setHit [„motor“, 1];

Part

- Motor des Fahrzeuges defekt

Schadenswert von 0 bis 1

Es existiert eine riesige Palette an möglichen Parts die gewählt werden können. Einige können nur an
bestimmten Fahrzeugen, andere wieder nur an Infanteristen angewandt werden. Leider sind viele
der Parts nicht auf Englisch sondern auf Tschechisch benannt. Das vereinfacht die Suche nach dem
passenden Part nicht gerade. Im BI-Wiki existiert eine Translation-Table in der unter anderem auch
alle möglichen Hit-Parts gelistet sind. Probieren und Experimentieren ist hier der richtige Weg.
Translation Table: https://community.bistudio.com/wiki/Translations

Treibstoff – (engl. Fuel) setzt die Tankfüllung eines Fahrzeuges zum Missionsstart fest und hat
natürlich keinen Einfluss auf die Alkoholreserven des Spielers. Der Wert ist natürlich wieder zwischen
0 und 1 einstellbar. Auch hier kann ein Skriptbefehl das gleiche erledigen:

Name setFuel 0.2;

- der Fahrzeugtank ist zu 20% gefüllt

Neben dem Treibstofftank für den Eigenverbrauch kann ein Fahrzeug auch einen zweiten Tank zur
Versorgung anderer Fahrzeuge besitzen. Dies ist z.B. bei einem Supportfahrzeug wie dem TreibstoffLKW der Fall. Dieser Tank kann nur mit folgenden Skriptbefehlen und nicht direkt im Editor
angesprochen werden:

Name setFuelCargo 0.7;

- setzen der Füllmenge

getFuelCargo Name;

- Abfrage des Füllstatus
15

Munition – (engl. Ammunition) hier wird natürlich die Menge der mitgeführten Munition beeinflusst.
Es gibt jedoch diesmal keinen direkten Befehl der Infanteristen beeinflussen könnte. Wird der
Schieberegler nach links geschoben verringert sich daher nur die Anzahl der Magazine die die Einheit
mit sich führt. Bei Fahrzeugen verringert sich die Munitionsanteil über alle Waffensysteme
prozentual. Ein Support-LKW mit Munition bzw. dessen Munitionsvorrat kann folgender Maßen
bestimmt werden:

Name setAmmoCargo 0.7; - setzen der Füllmenge
getAmmoCargo Name;

- Abfrage des Füllstatus

Anwesenheitswahrscheinlichkeit – (engl. Propability of Presence) gibt die Wahrscheinlichkeit der
Anwesenheit einer Einheit zwischen 0 und 100% an und ist ein gutes Stilmittel um für
Abwechslungsreiche Missionen zu sorgen.

Anwesenheitsbedingung und Platzierungsradius – Der Platzierungsradius wird als Zahl in Meter
angegeben. Die Einheit oder das Objekt werden entsprechend zufällig innerhalb dieses Radius
platziert dessen Zentrum der aktuelle Standort der Einheit ist.
Die Anwesenheitsbedingung macht das was der Name schon sagt. Wenn die Bedingung in diesem
Feld „Wahr“ ist wird die Einheit erst platziert. Daher steht in diesem Feld auch immer Schlicht und
einfach „true“. Dieses „true“ bzw. die nötige Erfüllte Wahrheitsbedingung wird in der Skriptsprache
als sogenannter Boolean (Wahrheitswert) bezeichnet.
Was bedeutet das für uns? Es bedeutet in diesem Feld haben Zahlen nichts verloren. Es darf sich
ausschließlich ein Code der einen Bool zurück liefert (also Wahr o. Falsch / true or false) in diesem
Feld befinden!
Ein kleines Anwendungsbeispiel:
In aktuellen Missionen eigentlich nicht mehr anzutreffen war diese Art der Missionsgestaltung zu
OFP Zeiten noch Gang und Gebe. Es handelt sich also um einen Old-School Tipp. 

16

Was macht denn nun dieser in dem Bild gezeigte Code in der Anwesenheitswahrscheinlichkeit?
Nehmen wir den Code einmal genau unter die Lupe:

!cadetMode;

! (Ausrufezeichen)

cadetMode

Ist lediglich ein Kürzel für NOT,
es negiert also das Ergebnis des
darauf folgenden…

ist ein Skriptbefehl welcher uns
einen Boolean zurückgibt.
true – wenn sich der Spieler im
Kadett Modus befindet
false – wenn er sich im
Veteranenmodus befindet

Nochmal komplett:
NICHT (wenn im Kadett Modus dann WAHR sonst FALSCH)

Was?! Nicht wenn im Kadett Modus dann wahr sonst falsch?!
„Der trinkt doch“ denkt Ihr euch jetzt bestimmt. Das ist aber die einfachste Logik die es gibt. Denn
eine Maschine versteht das. Daher jetzt nochmal für die menschlichen Gedankengänge was da
passiert:
Die Abfrage macht nichts anderes außer zu prüfen in welchem Schwierigkeitsgrad der Spieler eben
das Spiel beginnt. Wurde die Schwierigkeitsstufe Kadett gewählt, so wird die Einheit in diesem
Beispiel sich nicht auf der Karte befinden. Warum? Die Abfrage „cadetMode“ liefert uns in dem Fall
ein „true“, jedoch wird dieses „true“ durch unser „!“ (Ausrufezeichen) was das gleiche bedeutet wie
„NOT“ ist negiert, also NICHT TRUE – nicht Wahr – also FALSCH. Wir erinnern uns – die Einheit wird
nur platziert wenn die Prüfung dieses Feldes ein „true“ ergibt.
Befindet sich der Spieler jedoch im Veteranen Modus oder höher wird die Einheit erstellt. Warum
könnt Ihr jetzt selber erklären. 
Die Bedingung der Anwesenheit kann mit der Wahrscheinlichkeit kombiniert werden. Dazu noch der
Platzierungsradius und ihr habt ein sehr simples aber extrem mächtiges Werkzeug um eine Mission
abwechslungsreich und damit interessant zu gestalten.

17

Classname im Editor auslesen
Da wären wir auch schon am Ende was das erstellen einer Einheit angeht. Ihr seht schon das man
allein mit dieser kleinen Aktion im Editor eine enorm große Auswahl an Optionen und
Einstellmöglichkeiten hat die einem dabei helfen eine Mission zu gestalten.
Eine kleine und sehr nützliche Sache, gerade für die Fortgeschrittenen unter euch, wäre da aber noch
zu nennen. Im oberen Bereich des Einheiten Dialogs findet ihr jetzt neben dem sogenannten „Display
Name“ auch den „Classname“ der eben selektierten Einheit. Das ist eine äußerst praktische Funktion
die einem das schnelle finden von passenden Classnames innerhalb des Editors ermöglicht. Bisher,
also in den Vorgängern von ArmA 3, war das nur mithilfe von Listen möglich die von der Community
online bereit gestellt wurden.

„Und wo ist der Nutzen?“ - fragen sich die Neulinge.
Der Classname einer Einheit oder eines Objektes ist der „Pfad“ bzw. der Objektname der benötigt
wird um die Einheit in Skripten zu nutzen. Man kann diesen Classname dann für bestimmte Abfragen
heran ziehen. Zum Beispiel um danach zu Fragen ob eine Einheit ein Sanitäter ist oder nicht.
Häufigstes Anwendungsbeispiel ist das Erstellen von Einheiten mit Hilfe von Skripten. Denn um eine
Einheit zu erstellen muss man natürlich angeben was für eine Einheit erstellt werden soll.

18

1.4 Gruppen erstellen
Diese Funktion bietet euch die Möglichkeit nicht nur einzelne Einheiten sondern gleich ganze
Gruppen von Einheiten zu platzieren. Das spart natürlich Zeit. Außerdem sind die hier vordefinierten
Gruppenverbände bereits militärisch logisch zusammen gestellt. Ihr müsst euch also nicht so sehr
darum kümmern ob die Gruppe die ihr haben wollt auch „militärisch korrekt“ ist.

Die Schaltflächen die Ihr hier findet sind euch mittlerweile bereits aus dem Einheiten Dialog vertraut.
Wählt eine Seite, eine Fraktion und eine Klasse. Mit Klasse wird hier die Waffengattung bzw. der
Heerestyp gemeint. Zur Auswahl steht z.B. Infanterie, Special Forces oder motorisierte Infanterie.
Anschließend könnt ihr euch für eine Gruppe unter „Einheiten“ entscheiden und platzieren.
Neben dem recht übersichtlichen Dialog bietet die Schaltfläche „Gruppe“ jedoch noch eine weitere
Steuerungsmöglichkeit im Editor. Denn es wird euch natürlich auch die Möglichkeit gegeben eine
Gruppe manuell zusammen zu stellen.
Platziert hierfür einfach mehrere einzelne Einheiten auf der Karte welche Ihr zu einer Gruppe
zusammenfassen möchtet. Stellt sicher dass die Schaltfläche „Gruppe“ aktiv ist. Jetzt könnt Ihr per
Klick mit der linken Maustaste auf eine der Einheiten und gedrückter Maustaste per Mausbewegung
die Einheiten miteinander verbinden. Ob eine Verbindung zustande gekommen ist erkennt Ihr an der
blauen Linie die jetzt zwischen den Einheiten existiert.

19

Wie auf dem Bild zu sehen habe ich vier Einheiten miteinander verbunden. Wenn alle 4 Einheiten
denselben Rang (Dienstgrad) verwenden, wird derjenige der Anführer auf den Ihr die Maus gezogen
habt. Wenn die Ränge unterschiedlich sind, wird derjenige der vier Soldaten mit dem höchsten Rang
zum Gruppenführer.
Genauso wie Ihr eine Gruppe manuell erstellt, könnt Ihr diese auch wieder manuell trennen. Zieht
dazu bei gedrückter Linker Maustaste die blaue Linie einfach ins Leere und der Soldat wird wieder
aus der Gruppe ausgegliedert.

20

1.5 Auslöser
Mit den sogenannten Auslösern (engl. Trigger) lässt sich nahezu alles realisieren was Ihr möchtet.
Diese Funktion ist daher die umfangreichste und wichtigste unter allen verfügbaren Schaltflächen im
Editor.
Mit dem Trigger lassen sich territoriale Bereiche auf Anwesenheit oder Abwesenheit bestimmter
Einheiten, Objekte oder ganzer Fraktionen prüfen. Genauso gut kann man damit aber auch alles
Erdenkliche in einer Trigger Area (Bereich) ansprechen und beeinflussen. Ein Trigger aktiviert oder
deaktiviert Skripte. Er kann Variablen verändern, ein Spiel beenden oder über die Schaltfläche
„Effekte“ Musik- Sound- und Texteinblendungen realisieren. Außerdem lassen sich mit dem Trigger
unkompliziert Aktionen über einen Funkspruch realisieren.

Timer – hiermit kann die Auslösung des Triggers verzögert werden. Der MIN / MID / MAX Wert ist
eine Zahl in Sekunden. Mit diesem Werkzeug könnt Ihr Dynamik in eure Mission bringen bzw. einen
Ablauf verzögern wenn dies benötigt wird.

21

Der Unterschied zwischen Countdown und Timer:
-

Der Countdown verzögert die Aktivierung des Triggers, also dessen Effekt oder Wirkung
Das Timeout hingegen ist die Zeit, in welcher permanent die Auslösebedingung gegeben sein
muss, erst dann wird der Trigger aktiviert

Name – steht hier wie auch bei den Einheiten für einen möglichen Variablennamen des Triggers.
Text – ist die Beschreibung oder unter der Verwendung des Funkauslösers der angezeigte
Funkspruch oder Funkbefehl.

Typ des Auslösers –
None (keine)
Guarded by OPFOR
Guarded by BLUFOR
Guarded by Independent
Switch
End #1 bis #6
Lose

Standard
Geschützt durch Osten
Geschützt durch Westen
Geschützt durch Widerstand
Schalten
beendet die Mission (6 mögliche Enden)
Ein weiterer End-Typ, Verlieren

Aktivierung durch – Wer oder Was kann den Trigger aktivieren?
OPFOR
BLUFOR
Independent (Widerstand)
Civilian (Zivilisten)
Game Logic (Spiellogik)
Anybody (Jeder)
Funk Alpha bis Juliet
Erobert durch BLUFOR
Erobert durch OPFOR
Erobert durch Independent

Art der Aktivierung – Wie wird der Trigger aktiviert, bezogen auf „Aktivierung durch“
Einfach / Mehrfach (engl. Once / Repeatedly): Mit der
Mehrfachen Auslösung wird der Trigger immer wenn die
Bedingung erneut erfüllt wurde aktiviert. Um die Bedingung
erneut zu erfüllen, muss die Bedingung zwischenzeitlich
unterbrochen worden sein!
Beachtet! Eine einfache Auslösung ist im Multiplayer nicht immer eine einfache – beachtet hierzu die
gesonderten Informationen im Multiplayer Kapitel auf Seite xx.
Die weiteren Schaltflächen wie Anwesend / nicht Anwesend (engl. Present / Not present) sind
selbsterklärend.
22

Die Bedingung – (engl. Condition) ein Wahrheitswert der den Trigger aktiviert
In diesem Fenster wird die Auslösebedingung definiert. Hierbei ist entscheidend, dass die Bedingung
„true“ oder „false“ liefert, also den Datentyp Boolean. (wurde bereits im Thema
Anwesenheitsbedingung, Seite 16, behandelt) Standardmäßig steht hier wenn Ihr einen Trigger
anlegt „this“ als Bedingung. Das „this“ Verweist auf die bereits bestehenden Parameter unter „Typ
des Auslösers“, „Aktivierung durch“ und „Art der Aktivierung“.
Die Bedingung lässt sich aber natürlich auch beliebig mit den vorherigen Parameter kombinieren. Mit
Hilfe der zur Verfügung stehenden Skriptbefehle die uns ArmA bietet kann mit einem Trigger so
ziemlich alles abgefragt werden was man sich vorstellen kann.
Wird hier eine Syntax eingegeben die nicht korrekt ist oder nicht dem Datentyp „Bool“ entspricht,
wird euch das mittels einer Warnmeldung mitgeteilt und Ihr könnt den Trigger nicht per Mausklick
auf OK vollenden bis der Fehler behoben wurde.

Aktivierung – (engl. Activation) Aktion die nach erfüllter Bedingung eintritt
In diesem Eingabefeld kann eine Aktion nach erfüllter Bedingung ausgeführt werden. Das ist in den
meisten Fällen das setzen bzw. verändern eines Variablenwertes. Dabei ist es diesmal unerheblich
um was für einen Datentyp es sich dabei handelt. Es muss aber nicht immer eine Variable sein. Es
kann z.B. auch ein Code ausgeführt werden. Oder gleich ein ganzen Skript oder eine Funktion
gestartet werden die wiederum alles Erdenkliche beinhalten kann.
Wird hier eine Syntax eingegeben die nicht korrekt ist wird euch das mittels einer Warnmeldung
mitgeteilt und Ihr könnt den Trigger nicht per Mausklick auf OK vollenden bis der Fehler behoben
wurde.
Im Folgenden sind Beispielhaft ein paar typische Syntaxbeispiele die in einer Aktivierung vorkommen
könnten dargestellt.
-

Eine Variable setzen bzw. Variablenwert ändern:

Geisel_befreit = true;

-

Einen Code ausführen:

this addAction [“Generator abschalten“,“scripts\generator.sqf“];

23

-

Ein Skript starten:

data = [this, geisel] execVM “scripts\hostage.sqf“;

Deaktivierung – (engl. Deactivation) Aktion die Ausgeführt wird wenn eine bereits erfüllte
Bedingung plötzlich nicht mehr erfüllt ist.
Dieses Feld bietet denselben Funktionsumfang wie die Aktivierung selbst, jedoch invertiert.

Das folgende Beispiel soll die Funktionen des Triggers noch einmal kurz anhand eines praktischen
Beispiels erläutern.

24

Was macht dieser Trigger denn nun?
Es handelt sich um einen „Area-Trigger“, er befindet sich also über einem definierten Gebiet und soll
über dieses Gebiet Informationen sammeln die ich auswerten möchte. In diesem Fall will ich wissen
ob sich noch Gegner in dem Gebiet befinden. Daher steht die „Aktivierung durch“ auf OPFOR.
Außerdem habe ich die Mehrfachaktivierung eingeschaltet und verwende neben dem
Aktivierungsbereich auch den Deaktivierungsbereich um mir eine Textmeldung auf dem Bildschirm
anzeigen zu lassen. (Befehl „hint“)
Die Bedingung lautet:

“Men“ countType thisList < 3

„Übersetzt“ bedeutet das: Zähle die definierten Einheiten (also OPFOR) des Typus „Men“ in diesem
Bereich.
Diese Anweisung alleine stellt jedoch keinen Rückgabewert des Datentyps „Bool“ dar sondern liefert
mir eine Zahl. Genauer gesagt die Anzahl der Infanterieeinheiten von OPFOR in diesem Gebiet. Daher
wird ein Vergleicher und eine weitere Zahl hinzugefügt. Jetzt kann der gezählte Wert mit einer
anderen Zahl, also der 3, verglichen werden. Das Gesamtergebnis der Bedingung liefert jetzt folglich
einen Bool, also „true“ oder „false“.
Im Falle das die Bedingung „true“ wird, sich also weniger als drei OPFOR Infanterieeinheiten in dem
Gebiet aufhalten, erscheint auf dem Bildschirm eine Textmeldung mit dem Inhalt: „weniger als 3
Gegner anwesend“, initialisiert durch den Code im Aktivierungsbereich. Laufen jetzt plötzlich wieder
mehr gegnerische Soldaten in das Gebiet wird die Deaktivierung initialisiert. Es erscheint also die
Textmeldung: „es befinden sich wieder mehr Gegner in dem Ort“.
Da der Trigger auf mehrfache Auslösung eingestellt wurde kann sich dieser Vorgang natürlich
wiederholen. Und wie lauten die Bedingungen dafür?
Das wisst Ihr bereits da dies bereits im Abschnitt
„Art der Aktivierung“ behandelt wurde.

25

Effekte mit einem Trigger – (engl. Effects)
Hinter dieser Schaltfläche verbergen sich diverse Möglichkeiten Musik, Sounds, Texte oder andere
grafische Ressourcen einfach einfügen und abspielen zu lassen. Die Effekte werden dann abgespielt
wenn auch der Trigger aktiviert wurde.
Die euch hier gebotenen Möglichkeiten werden meiner Meinung nach viel zu selten benutzt. Musik
oder Texteinblendungen können Stimmung aufbauen oder bestimmte Momente untermalen und
stellen ein essentielles Stilmittel dar.

1.6 Wegpunkte
Die Vergabe von Wegpunkten (engl. Waypoints) haucht den KI-Soldaten Leben ein oder zeigt den
Spielern wohin diese gehen sollen. Wegpunkte lassen sich einfach mit der Maus erstellen. Klickt auf
die Schaltfläche „Wegpunkte“, anschließend auf einen Soldaten oder ein Fahrzeug um dieses zu
markieren. Jetzt genügt ein Doppelklick mit der linken Maustaste auf einen Punkt auf der Karte um
an dieser Position einen Wegpunkt zu setzten. Es öffnet sich der Wegpunktdialog.

26

Und wie sollte es anders sein, wieder wird euch eine große Auswahl an Einstellungsmöglichkeiten
geboten mit denen Ihr das Verhalten des Wegpunktes bzw. der zugehörigen Einheit beeinflussen
könnt.
Mit den meisten der hier dargestellten Schaltflächen seid Ihr bereits aus vorherergehenden Kapiteln
vertraut. Daher möchte ich an dieser Stelle nur kurz auf die für den Wegpunktdialog spezifischen
Einstellungen näher eingehen.

Platzierungs- und Abschlussradius
Beide Angaben werden als Zahl in Metern ausgedrückt.
Der Platzierungsradius stellt eine Fläche um das
Zentrum des Wegpunktes dar, in dem sich bei
Missionsstart jetzt zufällig der Zielpunkt des Wegpunktes
befinden wird. Gibt man einer Einheit also einen Wegpunkt mit einem Platzierungsradius von 100
Metern, wird sich diese irgendwo im Radius von 100 Metern um den eigentlichen Standort des
Wegpunktes hinbewegen. Der Bereich wird euch durch eine gestrichelte Linie um den Wegpunkt
herum im Editor visualisiert.
Der Abschlussradius legt fest wie dicht die Einheit an dem Zielpunkt sein muss bis der Wegpunkt als
erreicht gilt. Diese Option ist besonders dann interessant wenn man Flugzeugen oder Helikoptern
einen Wegpunkt vergibt. Durch die Trägheit in der Bewegung kann es sein, dass der Spieler oder auch
die KI große Probleme dabei bekommt einen Wegpunkt bei großer Geschwindigkeit in der Luft zu
„treffen“. Daher bietet es sich immer an eine gewisse Tolleranz in Form des Abschlussradius für diese
Einheitentypen zu definieren.
Die Höhe eines Wegpunktes ist neu und erst seit ArmA 3 in den Einstellungen zu finden. Was vorher
nur mit Hilfe von Skripten realisiert werden konnte lässt sich nun ganz einfach im Editor erledigen.
Darüber hinaus erkennt der Wegpunkt bereits beim platzieren in welcher Höhe er sich befinden
muss. Wird der Wegpunkt z.B. über ein hohes begehbares Gebäude (z.B. Tower auf dem Flugfeld)
gelegt, befindet sich der Wegpunkt automatisch auf dem Niveau des höher gelegenen Raumes. Wird
jetzt zusätzlich eine Höhe definiert, addiert sich diese Höhe zu der automatisch vergebenen Höhe.
Mit negativen Einträgen lässt sich der Wegpunkt natürlich auch nach unten verschieben. Wird jetzt
noch ein Aktivierungsradius mit der Höhe kombiniert, kann man sich den Aktivierungsbereich wie
eine Kugel im Raum vorstellen durch welche die Einheit schreiten muss um den Wegpunkt zu
erreichen. Das ist besonders praktisch um z.B. Helikopter nicht nur Zweidimensional sondern
Dreidimensional zu führen. Achtung, dabei aber nicht denken das der Helikopter jetzt automatisch
auf diese Höhe fliegen wird!

27

Verhalten bei Wegpunkt
Diese vier Einstellungen beeinflussen
das Verhalten, die Aufmerksamkeit
und die Geschwindigkeit von KISoldaten bei ihren Bewegungen.
Jedoch erst nachdem der Wegpunkt in
dem die Einstellungen getroffen wurden auch abgearbeitet wurde! Besonders das Verhalten (engl.
Behavior) beeinflusst die Art und Weise wie sich die Einheit durch das Gelände bewegen wird und
wieviel Zeit sie dafür benötigt. Beispielsweise führt die Einstellung „Sicher“ (engl. Save) zu einer
gehenden Bewegung mit gesenkter Waffe, geradlinig von einem Punkt zum anderen. Das
Verhaltensmuster „Tarnung“ (engl. Stealth) führt hingegendazu das sich der Soldat geduckt von
Deckung zu Deckung bewegen wird um möglichst unerkannt zu bleiben. Dafür benötigt er dann
natürlich auch mehr Zeit.
Der Kampfmodus (engl. Combat Mode) kann auch mit folgender Syntax beeinflusst werden:

Name setCombatMode “RED“;

Die Formation (engl. Formation) kann auch mit folgender Syntax beeinflusst werden:

Name setFormation “COLUMN“;

Die Geschwindigkeit (engl. Speed) kann auch mit folgender Syntax beeinflusst werden:

Name setSpeed “FULL“;

Das Verhalten (engl. Behavior) kann auch mit folgender Syntax beeinflusst werden:

Name setBehaviour “STEALTH“;

28

Wegpunkte anzeigen
Diese Option ist dann interessant wenn
Ihr einem Spieler einen Wegpunkt
zuweisen wollt. Wählt Ihr hier aus das der Wegpunkt angezeigt wird bedeutet dies, dass der Spieler
mittels einer HUD-Marke den Wegpunkt im Gelände angezeigt bekommt. Ein kleiner Pfeil markiert
dann die Position. Außerdem wird die Distanz in Metern angezeigt. Wird ein Text unter
„Beschreibung“ eingegeben wird auch dieser zusätzlich zum Wegpunkt auf dem HUD angezeigt.
„Anzeigen im Kadettmodus“ führt dazu das die Anzeige vom eingestellten Schwierigkeitsgrad
abhängig gemacht wird.

Der Wegpunkt Typ
Der Typ des Wegpunktes stellt die wichtigste
Einstellmöglichkeit bei einem Wegpunkt dar. Der
Typ legt fest ob es sich um eine einfache
Bewegung handelt oder ob bei der Aktivierung
eine bestimmte Aktion ausgeführt werden soll.
Das kann z.B. das besteigen eines Trucks sein.
Einige Typen benötigen um die gewünschte Aktion
ausführen zu können zusätzliche Objekte mit
denen der Wegpunkt synchronisiert werden muss.
Das Thema „Synchronisieren“ wird im Abschnitt
1.7 auf Seite 32 noch näher erläutert.
Im folgenden möchte ich euch die wichtigsten Wegpunkttypen benennen und kurz ansprechen was
man mit diesem Typ anstellen kann. Genaue Anwendungsbeispiele werden euch dann im Kapitel xx
gezeigt.
Bewegen – (engl. Move) eine einfache Bewegung von A nach B
Einsteigen – (engl. Get In) Wegpunkt muss auf ein Fahrzeug zeigen, der Soldat steigt in dieses ein
sofern Plätze frei sind.
29

Suchen und Zerstören – (engl. Seek and Destroy) die Einheit bewegt sich zu dem Punkt und fängt an
für eine Weile die Umgebung abzusuchen. Dafür bewegt die Einheit sich auch frei. Hat sich die
Einheit davon überzeugt das keine Kontakte in der Umgebung sind gilt der Wegpunkt als
abgearbeitet.
Anschließen – (engl. Join) Wegpunkt muss auf ein Mitglied einer anderen Gruppe zeigen. Bei
erreichen des Mitgliedes tritt die Einheit dieser Gruppe bei.
Wiederholen – (engl. Cycle) erstellt eine Schleife um bestimmte Wegpunkte zu wiederholen. Siehe
hierzu auch „Patrouille erstellen“.

Patrouille erstellen
Das folgende Beispiel soll zeigen wie man eine Patroullie erstellt die in einer Endlosschleife
fortgeführt wird. Dazu wurden der Gruppe eine Reihe ganz normaler „Bewegen“ Wegpunkte
zugeteilt. Der letzte Wegpunkt in dieser Abfolge ist jedoch ein Wegpunkt vom Typ „Wiederholen“.
Eine schwarze Linie, hier rot eingekreist, zeigt auf den Wegpunkt der wiederholt werden soll. Die
Verbindung wird immer automatisch mit dem jeweils am nähesten gelegenen Wegpunkt der Gruppe
oder dem Gruppenführer aufgebaut. Achtet also darauf wohin die Verbindung zeigt wenn Ihr diesen
Wegpunkttyp verwendet.

30

Wegpunkt auf ein Gebäude
Ein weiterer Spezialfall den ich euch gerne näher bringen möchte. Wenn Ihr einen Wegpunkt genau
auf ein Gebäude setzt werden euch weitere Optionen in dem Wegpunktedialog angeboten. Achtet
beim erstellen des Wegpunktes darauf, das sich die Maus genau über einem Gebäude befindet. Das
ist der Fall wenn der Tooltipp des Mauszeigers den Namen des Gebäudes anzeigt.

Statt der Höhe des Wegpunktes erscheint im Dialog jetzt ein Dropdown welches euch die zur
Verfügung stehenden Positionen des begehbaren Gebäudes anzeigt. Die Positionen stellen in der
Regel taktische Schlüsselpositionen in einem Raum dar. Das kann z.B. eine Tür oder ein Fenster oder
auf dem Dach sein.
Weist einer Einheit KI-Soldaten einen solchen Wegpunkt zu und die Einheiten werden sich in das
Gebäude begeben und die jeweiligen Positionen besetzten. So ist es euch möglich ohne Skripte und
großen Aufwand ein Gebäude durch Soldaten besetzen zu lassen.
Wendet Ihr diesen Befehl auf eine ganze Gruppe an und stellt den Wegpunkttyp zusätzlich auf
„Bewachen“ werden die Einheiten das Gebäude teilweise besetzen und zusätzlich einen
Verteidigungsring mit Hilfe der Rundumsicherung um selbiges errichten.

31

1.7 Synchronisieren
Dieses Werkzeug wird oft unterschätzt zu wenig angewandt. Dabei hilft es schnell und übersichtlich
bestimmte Funktionen zu realisieren. Es können die verschiedensten Sachen miteinander
synchronisiert werden. So zum Beispiel Wegpunkten mit Wegpunkten oder Wegpunkte mit Triggern
oder Einheiten mit Modulen.
Im Folgenden wird die Synchronisation von verschiedenen Dingen anhand von Praxisbeispielen
aufgezeigt.

Wegpunkt mit Wegpunkt
Das folgende Beispiel isst ein unter Missionsbauern oft benötigter Ablauf: Ein Helikopter soll zu einer
bestimmten Landezone fliegen, dort landen, warten bis eine Gruppe eingestiegen ist und weiter
fliegen, z.B. um die Mission erfolgreich zu beenden.

Hier erhält der Helikopter einen Wegpunkt der genau auf einem in diesem Fall unsichtbaren Heli-H
(gelbes Fragezeichen) platziert wird. Der Typ steht auf „Einladen“ (engl. Load).
Die Einheit die den Helikopter besteigen soll erhält einen Wegpunkt neben der Landezone vom Typ
„Einsteigen“ (engl. Get In).
Jetzt werden die beiden Wegpunkte synchronisiert. Was macht diese Synchronisierung der beiden
Wegpunkte jetzt? Sie sorgt dafür, dass die Wegpunkte aufeinander zeitlich abgestimmt werden und
der Soldat dort wartet bis der Helikopter gelandet ist. Andersrum würde der Helikopter auf der
Landezone warten bis der Soldat eingestiegen ist. Erst wenn beide Einheiten ihren Wegpunkt
abgearbeitet haben geht es weiter. Der Helikopter steigt wieder auf und fliegt zum nächsten
Wegpunkt welcher dann z.B. wieder vom Typ „Transport entladen“ sein könnte.
Synchronisiert wird ganz einfach mit der Maus. Wählt „Synchronisieren“ (F5) aus und klickt auf den
Wegpunkt des Soldaten. Mit gedrückter Maustaste zieht ihr eine jetzt erscheinende blaue Linie auf
den Wegpunkt des Helikopters - fertig.
32

In diesem Beispiel wurde der Soldatenwegpunkt mit dem des Helikopters synchronisiert. Es macht in
einigen bestimmten Fällen einen enormen Unterschied von Wem nach Was die Synchronisierung
vorgenommen wird!

Wegpunkt mit Trigger
Schauen wir uns folgende Ausgangslage an:

Hier soll der Alpha-Squad einen Punkt mittels zweier Wegpunkte angreifen. Aber er soll am ersten
Wegpunkt darauf warten bis der Scharfschütze die Overwatch-Position erreicht hat um diesen dabei
zu unterstützen.
Der Trigger prüft dabei die Anwesenheit von BLUFOR in dem Gebiet. Wird der Trigger aktiviert wird
auch der Wegpunkt für die Abarbeitung von dem Alpha-Squad frei gegeben. Es ist also auch hier
möglich ohne weitere Variablen und Skripte einen koordinierten Angriff vorzubereiten.
Der Trigger welcher dem Alpha-Squad das Vorrücken erlaubt könnte genauso gut ein Funkauslöser
sein. Der Spieler könnte in Ruhe die Lage observieren und erst wenn er bereit ist mittels Radiosignal
(z.B. 0-0-1 Funk Alpha) dem Alpha-Squad den Befehl zum Angriff übermitteln.

33

Einheit mit Modul
Im folgenden Beispiel soll mittels der Support Module dem Spieler die Möglichkeit gegeben werden
CAS (Close Air Support) zur Unterstützung zu ordern. Dafür sieht der Aufbau dann wie im folgenden
Bild aus.

Der Spieler wird mit dem sogenannten „Support Requester Modul“ (Unterstützung anfordern)
synchronisiert. Anschließend wird ein beliebiges Support-Modul auf der Karte platziert. In meinem
Fall handelt es sich um das „Support Provider CAS (virtual)-Modul“. Dieses wird ebenfalls mit dem
„Support Requester Modul“ synchronisiert.
Anschließend kann der Spieler mittels der Tastenkombination 0-8-1 den CAS rufen. Achtet darauf,
dass sich das Provider-Modul etwas abseits befindet da an dieser Position die Helikopter erzeugt
werden.
Ähnliche Abläufe werden bei allen anderen Modulen benötigt. Mehr dazu gibt es unter 1.9 Module
auf Seite 39 zu lesen.

34

1.8 Markierungen
Markierungen sind natürlich ein wichtiges Stilmittel in jeder Mission. Erst mit den Markern wird dem
Spieler bildlich klar gemacht worum es in der Mission überhaupt geht. Die Marker können also
einfach nur einen für die Mission entscheidenden Ort markieren oder einen kompletten taktischen
Schlachtplan widerspiegeln.
Marker können ganze Flächen in diversen Farben eindecken oder aus bestimmten Symbolen
bestehen. Die Symbolpalette die uns ArmA anbietet ist gigantisch. Von einem simplen Punkt über
komplexe NATO Symbole bis hin zu Flaggen verschiedener Nationalitäten ist alles vorhanden.

Dabei sollte man sich dann auch gleich die Frage stellen welcher Typ von Markern für die eigene
Mission am geeignetsten ist. Erstellt ihr eben einen Guerillaauftrag und kämpft mit Milizen? Da
werden sich wohl kaum die NATO Symbole anbieten sondern wohl eher die „handschriftliche“
Symbolik.
Oft sieht man auch Missionen die von Markern so überschüttet sind, dass das wesentliche unter
dieser Flut von Informationen verloren geht. Weniger ist oft mehr! Bedenkt das bei der Vergabe von
Markern und überlegt was wirklich einer Markierung bedarf und was nicht.
35

Um einen Marker auf der Karte zu platzieren wählt ihr einfach „Markierungen“ (F6) aus und öffnet
das Menü mit einem Doppelklick auf der gewünschten Position in der Karte. Die verschiedenen
Bereiche in diesem Dialog (siehe vorh. Bild) sind selbsterklärend und euch bereits aus den bisher
kennengelernten Dialogen geläufig.
Oben links könnt ihr entscheiden ob ihr aus einem
der vielen Symbole wählen wollt oder lieber eine
rechteckige oder ellipsenförmige Fläche definiert.
Anschließend kann die Größe bzw. die Fläche und
Winkel definiert werden. Tipp: definiert den Winkel
erst wenn ihr wieder auf der Karte seit. Klickt dazu
einmal auf den Marker um ihn zu markieren.
Anschließend drückt und haltet die linke Shift-Taste
gedrückt. Wenn ihr jetzt noch die linke Maustaste
gedrückt haltet und die Maus dazu bewegt wird sich der
Marker drehen und ihr könnt ihn perfekt ausrichten.
Danach entscheidet man sich für ein Symbol und eine passenden Farbe. Habt ihr statt dem Symbol
eine Fläche gewählt könnt ihr hier unter diversen Flächenfüllmustern wählen.
Der Name eines Markers ist seine Variable mit der ihr
den Marker später, falls gewünscht, ansprechen bzw.
abfragen könnt. Der Name eines Markers kann nur
einmal vergeben werden.
Der Text wird euch auf der Karte neben dem Marker angezeigt und kann alles mögliche beinhalten
oder beschreiben.

Markierungen beeinflußen
Es ist möglich während des Spielverlaufes auf einen Marker Einfluß zu nehmen und sein
Erscheinungsbild zu ändern. Folgende Dinge können an einem Marker verändert werden:
-

Farbe, Winkel, Größe, Markertyp, Position, Text, Sichtbarkeit oder auch Löschen

also eigentlich alles.
Wozu ist das gut? Na klar – um den Fortschritt in euer Mission auch visuell hervorzuheben oder eine
Statusänderung kenntlich zu machen. Man könnte auch erst unsichtbare Marker im späteren
Missionsverlauf aufdecken wenn man den Spielern nicht vorher alles verraten möchte. Simpelstes
Anwendungsbeispiel ist wohl das färben eines roten Markers auf grün nachdem ein Missionsziel
erledigt wurde.
Im Folgenden ein paar Syntaxbeispiele wie man einen Marker beeinflussen kann. Um einen Marker
ansprechen zu können benötigt man seinen Namen. In den folgenden Beispielen ist der Markername
immer Marker_1.
36

Die Farbe eines Markers verändern:

“Marker_1“ setMarkerColor “ColorGreen“;
Die Ausrichtung eines Markers verändern:

“Marker_1“ setMarkerDir 45;
Die Größe eines Markers verändern:

“Marker_1“ setMarkerSize [5,20];
Den Typ eines Markers verändern, also sein Erscheinungsbild:

“Marker_1“ setMarkerTyp “Destroy“;
Die Position eines Markers beeinflußen:

“Marker_1“ setMarkerPos [x,y];
Koordinaten angeben (2D)

“Marker_1“ setMarkerPos getMarkerPos “Marker_2“;
Position auf einen anderen Marker beziehen

“Marker_1“ setMarkerPos getPos Heli1;
Position auf ein anderes Objekt beziehen

Den Text eines Markers verändern:

“Marker_1“ setMarkerText “neuer Plan“;
unsichtbar / sichtbar machen eines Markers: (0 ist unsichtbar – 1 ist voller Kontrast – 0.5 ist transparent)

“Marker_1“ setMarkerAlpha 0;

37

einen Marker komplett löschen:

deleteMarker “Marker_1“;

Von letzterem würde ich jedoch abraten wenn es nicht unbedingt sein muss. Soll ein Marker
verschwinden macht ihn lieber unsichtbar und vermeidet so undefinierte Variablen.

Weitere Anwendungsmöglichkeiten mit Markern
Lineal - Platziert ihr gerne Objekte besonders ordentlich? Ich schon, daher verwende ich z.B. einen
rechteckigen Marker als Lineal wenn ich Soldaten in Reihe und Glied ausrichten möchte. Außerdem
kann man damit super Abstände prüfen oder ausmessen da man ja die Größe eines Markers direkt
bestimmen kann.

dynamische Objektplatzierung – platziert mehrere Marker auf der Karte vom Typ „Leer“ (engl.
Empty). Diese Marker haben die Eigenschaft während des Spiels nicht sichtbar zu sein. Es würde
natürlich auch mit jedem anderen Markertyp funktionieren.

38

Platziert nun ein beliebiges Objekt auf der Karte und verbindet das Objekt als Gruppe (F2) mit den
drei Markern. Das ist zugegebener Maßen etwas umständlich weil die Marker nicht sichtbar sind
solange ihr euch nicht im Marker-Menü befindet.
Wenn ihr die Mission jetzt in der Vorschau startet wird sich das Fahrzeug an einer der drei
Markerpositionen befinden. Startet die Mission erneut und das Fahrzeug wird eventuell wieder auf
einer anderen Position sein. Der Standort wird unter den drei Markern also zufällig ausgewählt. Eine
extrem einfache Möglichkeit einen zufälligen Aufenthaltsort für ein Objekt zu generieren – und das
ganz ohne komplizierte Skripte.

1.9 Module
Module verfolgen das Ziel immer wiederkehrende oder besonders komplexe Aktionen zu
vereinfachen und mit wenigen Mausklicks durchführbar zu machen. Mit ArmA 3 sind es wesentlich
mehr Module geworden. Wobei viele von den neuen Modulen auch ganz einfache Aufgaben
übernehmen die ein erfahrener User mit Scriptkenntnissen auch mit einem Kommando erledigen
kann.
Beispiel: das „Set Callsign“ (Rufnamen vergeben) Modul soll euer Gruppe einen eigenen Rufnamen
zuweisen. Dafür muß das Modul platziert und konfiguriert und mit einer Gruppe synchronisiert
werden. Alternativ könnte man auch einfach folgende Kommandozeile in die Init des Gruppenführers
schreiben:

this setGroupID [“Wolf“];

Statt z.B. „Alpha-1-1“ ist der Rufname euer Gruppe jetzt „Wolf“. Für den der den Befehl kennt ist die
Variante mit dem Modul die eindeutig umständlichere Lösung.
Ein anderes Beispiel in dem sich ein Modul lohnt: Platziert das „Minefield“ Modul in einem beliebigen
Bereich um diesen zu verminen. Diverse Einstellungen innerhalb des Modules ermöglichen euch
Größe des Feldes, Anzahl der Minen und vieles mehr zu bestimmen. So lassen sich schnell große
Minenfelder anlegen für welche ihr sonst ewig im Editor hin und her klicken müßtet wenn ihr diese
händisch platzieren wollt. Zumal die Verteilung der Minen dann statisch wäre und nicht zufällig so
wie mit dem Modul.

39

Schauen wir uns wieder den Aufbau des Dialoges an. Ihr gelangt wie bei allen anderen Gruppen in
den Dialog indem ihr „Module“ (F7) auswählt und einen Doppelklick auf die gewünschte Position der
Karte durchführt.

Im oberen linken Bereich (1) wählt ihr das Modul aus welches ihr platzieren wollt. Zur besseren
Übersicht wurden die Module in verschiedene Kategorien eingeteilt.
Oben rechts (Bereich 2) könnt ihr alle grundlegenden Einstellungen vornehmen. Diese sind bei jedem
Modul gleich. Der Name stellt wieder die Variable des Moduls dar falls es später nochmal
„angesprochen“ werden soll. Die Funktion von Platzierungsradius, Anwesenheitsbedingung und
Anwesenheitswarscheinlichkeit kennen wir bereits von den Auslösern (engl. Trigger) und sind hier
identisch. Der Sinn und die Funktion von „Initialization“ und „Description“ bleibt mir in diesem Fall
leider verborgen.
Der 3. Bereich ist der interessanteste Bereich in diesem Dialog. Denn dieser bietet uns alle
spezifisches Parametierungen für das jeweils ausgewählte Modul. Das heißt, je nachdem welches
Modul ihr gerade bearbeitet, werden sich hier andere Setup-Optionen zeigen.
Ganz unscheinbar verbirgt sich am unteren Rand des Dialoges noch der Button „Show Info“. Klickt
darauf und euch wird mit einer kurzen Beschreibung und einem Bild versucht die Funktion des
Moduls zu beschreiben bzw. die nötigen Verknüpfungen erklärt und bildlich dargestellt.

40

Leider muß man sagen das es eben
nur versucht wird da diese
Beschreibungen oft sehr knapp
gehalten, unvollständig oder sogar
Fehler beinhalten. Das ist schade
denn der Ansatz ist ein recht
Guter.
Trotzdem empfehle ich den Blick
auf die Info denn bei manchen
Modulen, wie dem hier
beispielhaft dargestellten Modul,
kann man doch eine ganze Menge
entnehmen. Mit einem Klick auf
die verschiedenen Symbole auf
dem Bild werden sogar noch
detaillierte Informationen zu den
einzelnen verknüpften Markern,
Triggern und Objekten angezeigt.

Module im Multiplayer
Sämtliche Module funktionieren im Single Player wunderbar. Leider haben die Erfahrungen aus
früheren Teilen der ArmA Serie gezeigt, dass viele Module im Multiplayer nicht mehr korrekt
funktioniert haben oder sogar komplett ausgefallen sind.
Daher ist jedes Modul im Multiplayer mit Vorsicht zu genießen und dessen Funktion in der
Multiplayerumgebung zu testen bevor es tatsächlich eingesetzt werden sollte.
Jedes Modul welches mit einem Spielerobjekt verbunden (synchronisiert) werden muß macht in der
Regel spätestens dann Probleme wenn der Spieler gestorben ist, aber auch wieder respawnen soll.
Denn nach dem Respawn ist die Synchronisation zwischen dem Modul und dem Spieler verloren
gegangen. Die Verbindung wieder herzustellen, evtl. das Modul neu zu generieren und zu
initialisieren ist ein komplizierter Prozess der gutes Wissen über Lokalitäten im Multiplayer und über
Scripting bedarf.
„Feste“ Objekte die mit einem Modul agieren oder Module die komplett selbstständig arbeiten
stellen hingegen kaum Probleme dar.

41

2. Dateien und Missionsordner
Alles was euch im 1. Grundlagenkapitel erklärt wurde drehte sich um den Editor. Damit waren bisher
keine weiteren Dateien für eure Mission nötig. Doch damit ihr so richtig los legen könnt im Editing
bedarf es meistens noch etwas mehr als nur der Arbeit im Editor. Dann werden weitere Dateien nötig
die euren Missionsordner und damit die Mission mit Leben füllen. Außerdem sollte eure Mission
nach der Vollendung in eine .pbo Datei gepackt werden.
Dieses Kapitel wird euch alles rund um den Missionsordner und weitere Dateiformate in ArmA
erklären. Außerdem zeige ich euch ein paar nützliche Tools die euch dabei helfen werden die Dateien
zu erstellen und zu verwalten.
Hinweis: Alle hier angegebenen Pfade wurden unter Windows 7 aufgenommen. Die Pfade sollten
jedoch unter Vista und Windows 8 äquivalent sein. Selbiges gilt für die Verwendung von dargestellter
Software.

2.1

Speicherpfade

ArmA 3 legt nachdem ihr es das erste Mal gestartet habt eine ganze Menge an Dateien an die für
euch relevant sein können. Spätestens wenn euch Fehler beim Scripten passieren und ihr bei der
Fehlersuche nicht mehr weiter kommt, sollte man wissen wo man zu suchen hat. Denn ArmA hilft
euch bei der Fehlersuche – sofern man weiß welche Datei man öffnen muss und den Inhalt auch
deuten kann.

Das Spielerprofil

42

Der wohl wichtigste Bereich für euch befindet sich in den eigenen Dateien. Der Ordner „Arma 3“ wird
bei der Installation automatisch angelegt. Nachdem ihr im Spiel ein eigenes Profil mit Spielernamen
angelegt habt, wird auch der zweite Ordner, „Arma 3 – Other Profiles“ angelegt.
Der Pfad im Explorer lautet wiefolgt:
C:\Users\*euerPC*\Documents\Arma 3 - Other Profiles\*euerArmaName*
Wenn ihr diesen Ordner öffnet, findet ihr gleich eine ganze Reihe weiterer Ordner und auch noch
zwei Dateien. Im folgenden werden die Inhalte erläutert.

missions – Hier befinden sich alle Missionen die ihr im Singleplayer Editor angelegt habt. Immer
wenn ihr im Editor eine Mission zum ersten Mal speichert werdet ihr dazu aufgefordert der Mission,
also der Datei, einen Namen zu geben. Den Namen den ihr hier vergebt wird auch der Name des
Ordners sein. Hinweise zur Namensgebung findet ihr im Kapitel 3.1.
mpmissions – In diesem Ordner werden Missionsdateien abgelegt die ihr im Multiplayer Editor
angelegt habt. Das wird eher selten der Fall sein. Jedoch bietet es sich an, dass wenn man eine
Multiplayer Mission erstellt, man diese nachdem man die Arbeiten im Editor abgeschlossen hat, von
dem missions Ordner in den mpmissions Ordner kopiert. Dieser Vorgang ermöglicht euch das laden
der eben erstellten Mission im Multiplayer Bereich, in einer selbst gehosteten Umgebung ohne
weiteren Aufwand.
Saved – Ihr habt während eine Mission läuft gespeichert? Dann wird die Missionsdatei genau hier
abgelegt. Dabei unterteilt ArmA sauber in hauseigene und fremde Missionen. Achtung, dieser
unscheinbare Ordner kann mit der Zeit mehrere hundert Megabyte beanspruchen. Wenn ihr den
gesamten Ordner jedoch unkontrolliert löscht verschwinden natürlich auch alle eure Speicherstände.
Das kann besonders bei Kampagnen sehr ärgerlich sein. Spielt in diesem Ordner also nur rum wenn
ihr wißt was ihr tut.
UserSaved – fast genauso wie zuvor, aber nur manuell abgelegte Speicherslots.

43

***.Arma3Profile – In dieser Datei befinden sich alle Informationen über die Einstellungen die ihr im
Spiel für das jeweilige Spielerprofil festgelegt habt. Wer mit dem Inhalt umgehen kann, kann hier
genauso seine Settings beeinflussen wie über das Ingame Menü. Meistens findet man hier sogar
noch weiterführende Möglichkeiten um die Grafik des Spieles zu beeinflussen die so nicht in den
Videooptionen zu finden sind. Weiterführende Informationen und Diskussionen findet man meist
zuhauf in den hiesigen Community-Foren. Auch wenn ihr Probleme mit den Grafikeinstellungen habt
und Hilfe in einem etablierten Forum sucht, werdet ihr dort oft aufgefordert den Inhalt dieser Datei
zu posten. Profis können euch so viel leichter und unkompliziert helfen.
(deutsche Community Foren: Arma2Base.de / hx3.de)
***.vars.Arma3Profile – Der Inhalt dieser Datei ist nicht lesbar und für den normalen Nutzer
uninteressant

Das Installationsverzeichnis
Seit ArmA 3 besteht Steampflicht. Daher ist der Standardinstallationspfad in einen Unterordner von
Steam gesetzt sofern ihr bei der Installation oder in den Steam Settings nichts anderes angegeben
habt. In diesem Beispiel befindet sich Steam und somit auch ArmA 3 auf dem Laufwerk C.
ArmA 3 Installationspfad:
C:\Program Files (x86)\Steam\SteamApps\common\Arma 3

Hier werden Modifikationen und Addons abgelegt. Zu diesem Thema findet ihr mehr auf der Seite xx
unter dem Kapitel 9.1. An dieser Stelle reicht erst einmal die Information, dass ihr auch hier wieder
einen Missions und MPMissions Ordner findet.

44

Der Unterschied zu den Ordnern mit dem selben Namen im Spielerprofil ist, dass die hier abgelegten
Missionen nicht im Editor Browser erscheinen wenn ihr dort eine Mission laden wollt. Hier abgelegte
Missionen sollten im *.pbo Format sein und erscheinen dann im Ingame Spielmenü wenn dort eine
Mission gestartet werden soll.
Schwer zu erklären, Bilder beschreiben es besser!
Das Bild rechts zeigt den Inhalt des Missions Ordner. Darin
sind im Moment vier *.pbo’s abgelegt. Jede Datei stellt eine
Mission dar. Und diese werden dann wiederum im Ingame
Menü unter Scenarios dargestellt wie im Bild unten zu
sehen ist.

Reportdateien und Crash Reportes
Der dritte und letzte interessante Ort an dem euch ArmA 3 Dateien ab- und anlegt befindet sich
unter:
C:\Users\*euerPC*\AppData\Local\Arma 3
(Der Ordner AppData mit Inhalt ist aber nur sichtbar wenn im Datei Explorer “ Versteckte Dateien“
angezeigt werden.)
Hier „merkt“ sich ArmA alles was so während des Spiels passiert, besonders im Multiplayer.Wenn ihr
einen Server betretet um eine Mission zu spielen wird diese im Ordner MPMissionsCache abgelegt.
Auf dem Server befinden sich bestimmt auch noch andere Spieler. Benutzen diese Spieler eine
Squad-XML wird das darin enthaltene Clanlogo im Ordner squads abgespeichert. Benutzt der Spieler
auch noch eine modifizierte Face Datei wird diese im Ordner players angelegt. Der
SteamPreviewCache speichert z.B. Bilder von Missionsdateien die ihr euch aus dem Steam Workshop
organisiert habt.
45

Warum speichert ArmA diese ganzen Daten? Ganz einfach – es soll das laden von Dateien
beschleunigen. Denn jede Datei die hier abgelegt wurde muß beim nächsten Mal nicht mehr aus dem
Netz geladen werden sondern wird direkt von euer Festplatte bereitgestellt.
Wenn ihr das erste Mal eine Mission im Multiplayer spielt wird diese von dem Server, der die Mission
bereit stellt, an euch als Client (Spieler) übertragen. Ihr bekommt diesen Vorgang in Form einer
Statusbar mit die euch den Fortschritt und die Größe der Datei anzeigen. Betretet ihr einen anderen
Server auf dem die selbe Mission läuft ist dieser Ladevorgang nicht mehr nötig, da die Mission bereits
auf euer Festplatte vorhanden ist. Der Beitritt zum Spiel erfolgt jetzt also wesentlich schneller.
Oft ließt man in Foren auch: „Ich habe da eine Mission gespielt. Die war toll und ich will die auch
haben. Wo bekomme ich die her???“. Die Frage könnt ihr euch jetzt selbst beantworten. Denn die
Mission befindet sich bereits auf euer Festplatte im Ordner MPMissionsCache.

Viel wichtiger, für euch ist hier wohl aber die *.rpt Datei (Report-Datei).
Diese Datei wird einmal pro ArmA 3 Start angelegt. In dieser Datei werden dann ein paar
Grundlegende Informationen zum Spielstart abgelegt. Darin enthalten z.B. der Spielpfad, geladene
Dateien, Versionsnummer und vieles mehr. Außerdem werden hier Warnungen und
Fehlermeldungen abgelegt die während des Spieles auftreten. Das ist für euch dann besonders
wichtig wenn in euer Mission etwas nicht funktioniert und ihr nicht wisst wo der Fehler sein kann.
Dann hilft in 90% der Fälle der Inhalt der *.rpt weiter. Man muß den Inhalt nur lesen und verstehen
können. Und weil das so wichtig ist findet ihr sogar einen extra Abschnitt zu dieser Datei im Kapitel
9.4 auf der Seite xx in dem der Umgang mit dieser kostbaren Hilfe genauer erklärt wird.

46

2.2

Dateiformate unter ArmA

Im folgenden Abschnitt werden die am häufigsten verwendeten Dateiformate vorgestellt die für eine
komplette Mission relevant sind. Das unten gezeigte Bild zeigt einen vollständigen Missionsordner
der aufgeräumt und strukturiert ist. Die Benennung der Ordner ist dabei natürlich nur beispielhaft.
Die Namensgebung der im Folgenden aufgelisteten Dateien hingegen nicht. Diese müssen exakt
diesen Namen und diese Dateienden tragen. Außerdem müssen diese Dateien zwingend im
Hauptverzeichnis des Missionsordners liegen.






Description.ext
Init.sqf
Mission.sqm
Stringtable.xml
Debriefing.html

Die Ordner dienen der Übersicht und vereinfachen euch das Auffinden bestimmter Dateien in euer
Mission um einiges, wenn ihr später etwas ändern wollt.

*.pbo (Profiler Binary Output)
Das wohl wichtigste Dateiformat in (fast) allen Produkten von Bohemia Interactive und somit auch
von ArmA 3. Die .pbo’s sind Dateicontainer, vergleichbar mit einer „RAR“ oder „ZIP“ Datei. In einer
.pbo sind alle weiteren Dateien enthalten die für eine Mission benötigt werden. Auch die
Spieldateien selber sind in .pbo’s zusammen gefasst und gepackt. Details zum erstellen und öffnen
von .pbo’s findet ihr auf Seite 66 im Kapitel 2.7.

47

Die Stringtable
Die Stringtable ermöglicht es euch eine Mission mehrsprachig zu gestalten oder lange Textblöcke in
kurze definierte Wörter zu stecken. Das ist nützlich um in Scripten nicht den Überblick zu verlieren
oder wenn der selbe Text an verschiedenen Stellen wieder verwendet werden soll. Die Stringtable
kann in zwei unterschiedlichen Formaten verwendet werden. Entweder als stringtable.xml oder als
stringtable.csv.
Mehr Informationen sind auf Seite 68 im Kapitel 2.8 dazu enthalten.

Die init.sqf
Die init.sqf ist die Initialisierungsdatei für alle folgenden Scripte oder Funktionen die in der Mission
aufgerufen werden sollen. Die Init wird automatisch bei jedem Missionsstart für jeden Spieler und
den Server einmal ausgeführt. Daher werden hier auch alle zu verarbeitenden Variablen deklariert
um die Ausgangswerte und bestimmte Paramater zu bestimmen.

Die mission.sqm
Diese Textdatei enthält alle relevanten Informationen zu Einheiten, Objekten, Triggern, Markern,
Positionen usw. die durch speichern im Editor hier hinterlegt werden. Die Datei wird im folgenden
Kapitel ausführlich beschrieben.

Die description.ext
Hier werden entscheidende Missionsparamter gestellt und definiert die jede Mission benötigt. Auch
Ressorucen, gleich welcher Art, werden hier das erstemal definiert um diese später im Spielverlauf
oder in Scripten ansprechen zu können. Syntaxfehler in dieser Datei führen zum sofortigen CTD
(Crash to Desktop).
Die Datei wird ausführlich in den folgenden Kapiteln beschrieben.

48

2.3

Die Mission.sqm

Diese Datei beinhaltet alle wichtigen Informationen die in euer Mission enthalten sind und im Editor
angelegt wurden. Wenn ihr zum ersten Mal eine neue Mission im Editor speichert wird diese Datei
angelegt. Wenn ihr eine bereits vorhandene Mission editieren wollt und diese im Editor öffnet greift
ArmA auf diese Datei zurück. Enthalten sind alle Informationen zu Wegpunkten, Objekten, Markern,
Auslösern, Modulen und deren Parametern und Positionen. Theoretisch ist es möglich eine
komplette Mission ohne den Editor zu erstellen wenn man diese Datei manuell erstellen und
bearbeiten kann. Aber Vorsicht! Kleinste Syntax- und Formatfehler führen beim laden der Datei zum
Absturz des Spieles.
Im folgenden wird kurz der Umgang mit der Datei erklärt. Denn in manchen Situationen ist es
hilfreich zu wissen wie diese Datei aufgebaut ist um Änderungen vornehmen zu können.

Der Kopf – hier sind verwendete Addons (auch externe) eingetragen, der Missionsname, Wetter-,
Zeitdaten und alle anderen Informationen die auch im Bereich Intel (siehe Kapitel 1.2) konfiguriert
werden können.
Wenn man während dem editieren einer Mission
mit Addons arbeitet, kann es vorkommen das sich
diese Addons hier eintragen. Wenn diese aber
nicht zwingend für den Missionsbetrieb benötigt
werden ist der Eintrag unerwünscht und führt bei
anderen die eure Mission laden nur zu
Fehlermeldungen.
Profis kontrollieren daher vor dem
veröffentlichen einer Mission diese Einträge und
entfernen bei Bedarf unterwünschte Einträge.

addOns[]=
{
"A3_Characters_F_BLUFOR",
"a3_map_stratis",
"A3_Air_F_Heli_Light_01",
"a3_characters_f_beta",
"A3_Air_F_Beta_Heli_Transport_01"
};
addOnsAuto[]=
{
"A3_Characters_F_BLUFOR",
"A3_Air_F_Beta_Heli_Transport_01",
"a3_modules_f_multiplayer",
"A3_Air_F_Heli_Light_01",
"a3_map_stratis"
};
randomSeed=14579098;
class Intel
{
briefingName="Psychos Editing Guide Example";
overviewText="by Psychobastard";
startWeather=0.29999998;
startWind=0.099999994;
startWaves=0.099999994;
forecastWeather=0.29999998;
forecastWind=0.099999994;
forecastWaves=0.099999994;
forecastLightnings=0.099999994;
year=2035;
month=7;
day=6;
hour=8;
minute=0;
startFogBase=0.001;
forecastFogBase=0.001;
startFogDecay=0.0049999999;
forecastFogDecay=0.0049999999;
};

49

Gruppen – Jedes Objekt wird in
einer Gruppe als Klasse
dargestellt mit allem ihm
zugehörigen Informationen, wie
z.B. Wegpunkten oder
Synchronisierungen.
In diesem Beispiel ist class item0
eine Gruppe, bestehend aus einer
Infanterieeinheit der Seite
„WEST“. Außerdem sind dieser
Einheit zwei Wegpunkte
zugeordnet.

class Groups
{
items=11;
class Item0
{
side="WEST";
class Vehicles
{
items=1;
class Item0
{
position[]={1675.1456,5.5,5308.603};
id=0;
side="WEST";
vehicle="B_soldier_exp_F";
leader=1;
skill=0.60000002;
};
};
class Waypoints
{
items=2;
class Item0
{
position[]={1661.1971,5.5,5325.5718};
type="GETIN";
synchronizations[]={11};
class Effects
{
};
showWP="NEVER";
syncId=9;

Der Einheit werden hier die
Informationen über ihre Position
auf der Karte, der Klassenname,
die Fähigkeiten und die Definition
als Gruppenführer zugeschrieben.

};
class Item1
{
position[]={1849.3241,5.5099306,5417.2788};
synchronizations[]={12};
class Effects
{
};
showWP="NEVER";
syncId=10;
};
};

In der 3. Zeile steht items=11; - das sagt aus, dass sich in Summe 11 Gruppen auf der Karte befinden.
Möchte man manuell in der mission.sqm eine Gruppe hinzufügen oder löschen muss auch dieser
Wert angepasst werden. Sonst stürzt das Spiel ab. Das gleiche gilt für das entfernen oder hinzufügen
von Einheiten innerhalb der Gruppe.
Weitere Parameter können sein:
Class Item0
Presence
Position
Azimut
ID
Side
Vehicle
Player
Leader
Skill
Health
Ammo
Text
Init

Class Item0 ist Leader der Gruppe. Der dem Leader unterstellte Soldat ist Class Item1,
der nächste Class Item2 usw.
Wahrscheinlichkeit der Anwesenheit
Koordinaten des Spielers in der Anordnung X Z Y
Blickrichtung der Einheit (Wert definierbar von 0 bis 359)
ID der Einheit (fortlaufende Zahl)
Spielerseite („WEST“,“ EAST“, …)
Art der Einheit (classname)
Ist die Einheit ein Spieler bzw. Spielbar?
Gibt an, ob die Einheit ein Leader ist (Zahl 0 oder 1)
Fähigkeit der Einheit (Wert definierbar von 0 bis 1)
Gesundheitsstatus (Wert definierbar von 0 bis 1)
Munitionsstatus (Wert definierbar von 0 bis 1)
Name der Einheit (Text Variable)
Die Initzeile der Einheit (Angabe einer Syntax etc.)

50

Fahrzeuge – wie schon bei den Einheiten, jedoch
alle leeren Fahrzeuge. Es werden also alle Objekte
die keiner Gruppe angehörig sind zusammen
gefasst. Wenn ein Fahrzeug mit Besatzung einer
bestimmten Seite platziert wird, befindet sich
dieses ebenfalls unter den Gruppen-Klassen.

class Vehicles
{
items=5;
class Item0
{
position[]={1767.0123,5.5,5580.8853};
special="NONE";
id=20;
side="EMPTY";
vehicle="B_Heli_Light_01_F";
skill=0.60000002;
};
class Item1
{
position[]={1650.9839,5.5,5330.3569};
azimut=58.0508;
id=21;
side="EMPTY";
vehicle="Land_HelipadSquare_F";
leader=1;
skill=0.60000002;
};

Marker – die nächste Klasse sind die Marker.
Wieder werden alle Marker als items zusammen
gefasst und der Reihe nach mit den diversen
Informationen abgehandelt.

Auslöser – werden in der Klasse Sensors sortiert.

class Markers
{
items=3;
class Item0
{
position[]={5022.7563,208.86714,5932.1328};
name="marker";
text="Pos 1";
type="Empty";
a=1.5;
b=1.5;
angle=-1.11217;
};

class Sensors
{
items=2;
class Item0
{
position[]={2623.3413,138.68729,1624.3838};
activationBy="ANY";
interruptable=1;
age="UNKNOWN";
class Effects
{
};
synchronizations[]={2};
syncId=13;
};

Die gesammte mission.sqm macht auf den ersten Blick einen recht unübersichtlichen und
komplizierten Eindruck. Lasst euch aber davon nicht sofort abschrecken und lasst das
Funktionsprinzip und die Anordnung auf euch wirken. Es reicht vorerst aus das Grundprinzip zu
verstehen und was man mit der mission.sqm machen kann und was diese beinhaltet.
Das bearbeiten der mission.sqm ist nur für fortgeschrittene Nutzer zu empfehlen. Es wird auch
empfohlen sich vor dem bearbeiten dieser Datei eine Sicherungskopie anzulegen.
51

2.4

Die Description.ext

Diese Datei „beschreibt“, definiert also, die verschiedensten Dinge und Ressourcen die in der Mission
eine Rolle spielen sollen. Das können Bilder, Musik, Sounds oder eigene Text- und Grafikressourcen
sein.
Die wichtigsten Parameter und deren Funktion werden im folgenden vorgestellt. Außerdem wird
beispielhaft die Definition von einem Bild und einer Sounddatei dargestellt. Detaillierte
Informationen über die Definitionen in dieser Datei werden in den entsprechenden Abschnitten in
diesem Guide erklärt.
Eine vollständige Auflistung der möglichen Parameter der description.ext findet ihr im BIS-Wiki:
description.ext (https://community.bistudio.com/wiki/Description.ext)

onLoadName

Ist der angezeigte Name der Mission während des Ladebildschirm‘s
Beispiel:

overviewText

Kann eine kurze Beschreibung der Mission sein oder sonstige
Informationen liefern.
Beispiel:

author

onloadMission = “Go and arrest Igor!“;

Der Name des Authors. Wird der Parameter nicht definiert schreibt ArmA
einfach „made by: Community Author“.
Beispiel:

overviewPicture

onloadName = “Attack Igor“;

author = “Psychobastard“;

Der Pfad zu einem Bild welches während der Ladebildschirm dargestellt
wird angezeigt werden soll.
Beispiel:

loadScreen = “logo.paa“;

Und damit ihr auch versteht von was ich hier
eigentlich schreibe noch ein kleines Bild.
Aufgenommen während des ladens einer aus
der Community stammenden Mission.
Der Author dieser Mission hat genau diese
Bausteine in der description.ext verwendet
um das gezeigte Ergebnis zu erreichen.
Übrigens erhaltet ihr den selben Inhalt in
abgewandelter Darstellung auch in der
Scenarios-Übersicht.

52

Folgende Parameter sind nur für Multiplayer Missionen wichtig.
respawn

Wird als Zahl angegeben und regelt die Art des Respawns in einer
Mission. Folgende Arten sind möglich:








0 – kein Respawn
1 – Respawn als Schmetterling oder Vogel (freie Kamera)
2 – Instant Respawn (an Ort und Stelle nach dem Tod)
3 – in der Basis (benötigt entsprechende Marker)
o “respawn_west“
o “respawn_east“
o “respawn_civilian“
o “respawn_ guerilla“
4 – Respawn in ein KI Gruppenmitglied (wenn noch frei)
5 – Respawn in ein KI Seitenmitglied (wenn noch frei)

Für einen Fahrzeug Respawn wird ebenfalls ein Marker benötigt. Dieser
nennt sich dann “respawn_vehicle_west“ usw.
Beispiel:
respawnDelay

Gibt den Wert in Sekunden an bis ein Spieler wieder respawnt. Natürlich
nur sofern ein Respawn verfügbar ist.
Beispiel:

respawnVehicleDelay

respawnVehicleDelay = 20;

Wenn dieser Parameter auf 1 steht, werden alle spielbaren KI Slots in der
MP Lobby deaktiviert und damit auch die KI.
Beispiel:

header

respawnDelay = 20;

Gibt den Wert in Sekunden an bis ein Fahrzeug wieder respawnt.
Achtung! Dieser Parameter beeinflusst keine leeren Fahrzeuge.
Beispiel:

diabledAI

respawn = 3;

disabledAI = 1;

Definiert den Spieltyp der Mission welcher auch im Serverbrowser
angezeigt und filterbar ist. Der Parameter hilft anderen Spielern also eure
Mission zu finden. Folgende Typen sind seit ArmA 3 möglich:
Class
Unknown
Coop
DM
TDM
CTF
SC
CTI
RPG
Sandbox
Seize
Defend

Beispiel:

Name
Unknown
Cooperative Mission
Deathmatch
Team Deathmatch
Capture the Flag
Sector Control
Capture the Island
Role-Playing Game
Sandbox
Seize
Defend

disabledAI = 1;

Shortcut
Unknown
Co-op
DM
TDM
CTF
SC
CTI
RPG
Sandbox
Seize
Defend

53

Musik einbinden
Das folgende Beispiel definiert ein eigenes Musikstück welches in einer Mission abgespielt werden
soll. Dafür ist es natürlich erforderlich erstmal ein Musikstück zu haben. Wie eine eigene Sound- oder
Musikdatei auszusehen hat wird in Kapitel 2.6 beschrieben.
class CfgMusic
{
tracks[]={};
class intro_music
{
name = "AC/DC - Highway to Hell";
sound[] = {"\music\intro.ogg", db+0, 1.0};
};
class outro_music
{
name = "Helden wie Wir";
sound[] = {"\music\outro.ogg", db+10, 1.0};
};
};

Die Klasse CfgMusic umschließt mit seinen geschweiften Klammern die anderen Klassen, wobei
CfgMusic eine Hauseigene Config-Class von Bohemia ist. Diese kann also als gegeben angesehen
werden. Die beiden anderen Klassen intro_class und outro_class sind die Klassen die wir in Form
zweier Musikstücke definieren wollen.
Der name kann frei gewählt werden und stellt lediglich den angezeigten Namen des Titels dar
welcher in einem Auslöser unter Effekte angezeigt werden würde. Denn eine richtig definierte
Sound- oder Musikdatei wird dann auch dort dargestellt.
Unter sound wird dann der Pfad zu der Musikdatei definiert. Diese liegt in diesem Beispiel im
Missionsordner, Unterordner music mit dem Namen intro und outro und dem „.ogg“ Format. Die
anderen beiden Parameter, jeweils getrennt durch ein Komma, stellen die Lautstärke und den Pitch
(Tonhöhe) dar.
Wie wird die Musik jetzt abgespielt? Wie schon erwähnt könnte man die Musik jetzt über einen
Auslöser triggern da das Musikstück jetzt in den Effekten aufgelistet wird. Oder man benutzt
folgenden Scriptbefehl an beliebiger Stelle:

playMusic “intro_music“;
playMusic [“intro_music“, 60];  Musik hört nach 60 Sekunden auf

54

Noch ein letzter Hinweis zu allen Änderungen in der description.ext. Es handelt sich bei dieser Datei
um eine Art Config-Datei für eure Mission. Daher werden alle Änderungen erst wirksam nachdem ihr
die Mission einmal komplett neu geladen habt. Einfach auf „Vorschau“ klicken zeigt euch nicht die
Änderungen.
Achtet außerdem peinlich genau auf Syntaxfehler. Der kleinste Fehler führt zu einem CTD (Crash to
Desktop).

2.5

Scripte und deren Formate

Was ist überhaupt ein Script? Dieser Begriff wird in der Community fälschlicherweise für fast alles
benutzt was in einem Missionsordner liegt. Grob umschrieben ist ein Script ein Ablauf von
Kommandozeilen in einer bestimmten Reihenfolge.
Man kann im Moment wohl vier Formate aufzählen die in diese große Oberkategorie fallen:
-

.sqf
.sqs
.fsm
.hpp

Funktionen, Scripte, ähnlich c++
veraltetes Scriptformat
Script in Blockdarstellung
für Dialoge

Gleich vorab „.sqs“ wird hier nur der Vollständigkeit halber erwähnt. Dieses Format ist veraltet und
sollte nicht mehr verwendet werden. Es hat gegenüber den anderen Formaten nur Nachteile. Wer
sich mit .sqs auskennt der lernt auch schnell .sqf und .fsm zu nutzen. Alte .sqs Scripte können
meistens schnell und einfach in das .sqf Format übersetzt werden. Hilfreich hierfür ist folgende Seite:
SQS to SQF Conversation (http://community.bistudio.com/wiki/SQS_to_SQF_conversion)

Betrachten wir kurz die drei übrig gebliebenen Formate. Eine detaillierte Ausführung und der
Anwendung der Formate findet ihr im Kapitel 8 was sich ausschließlich mit dem Thema Scripten
beschäftigt.

.sqf Format
Das wichtigste und am häufigsten verwendete Format in ArmA ist SQF. Die Sprache ist ähnlich wie
c++ aufgebaut. Wer diese Sprache schon beherrscht wird es leicht haben mit .sqf umzugehen. SQF
wird meistens als Script verwendet, kann und soll aber eigentlich als Funktion verwendet werden.
Funktionen sind gegenüber Scripten bereits vorkompiliert und werden bei Bedarf blitzschnell
ausgeführt um Berechnungen oder Anweisungen durchzuführen und ein Ergebnis zurück zu geben.
Ein Script führt eine Folge von Befehlen aus, gibt aber in der Regel kein Ergebnis zurück.
55

Um SQF erstellen oder bearbeiten zu können benötigt man lediglich einen Texteditor. Wesentlich
effektiver und komfortabler ist aber die Verwendung spezieller Bearbeitungsprogramme wie z.B.
Notepad++. Dieses ist kostenlos und kann Scriptsprachen erkennen um diese dann besser lesbar mit
Hilfe von Farben darzustellen. Außerdem erkennt es Befehle und kann Hilfestellung zu diesen
anbieten oder sogar automatisch Befehle vervollständigen. Diese Eigenschaft wird Syntaxhighlight
genannt. Mehr dazu findet ihr im Abschnitt 2.9. Dort wird erklärt wie ihr Syntaxhighlight für SQF in
Notepad++ aktivieren könnt.
Beispiel von Syntaxhighlight in Notepad++ und einer SQF Datei:

Eine SQF Datei wird mit folgendem Befehl geöffnet:

[] execVM "meinScript.sqf";
aus einem anderen Script

nul = [] execVM "meinScript.sqf";
aus einem Trigger

myFunc = compile preprocessFileLineNumbers "meinScript.sqf";
Kompiliert als Funktion

call myFunc;
die Funktion „rufen“

56

.fsm Format
Eine FSM Datei eignet sich besonders gut um Schleifen (engl. Loops), also immer wieder kehrende
Abläufe abzuhandeln. Die meisten Missionsbauer scheuen sich davor dieses Dateiformat zu
verwenden. Ein Grund dafür könnte sein, dass ein richtiges Bearbeitungsprogramm für eine FSM
benötigt wird. Ein solches Programm stellt den Ablauf sehr schön übersichtlich und grafisch dar. Erst
beim Speichern wird dann eine Datei generiert die auch mit dem Texteditor geöffnet und bearbeitet
werden kann. Diese ist dann aber extrem unübersichtlich.
Auch hier hilft euch ein Blick
in den Abschnitt 2.9 weiter
in dem das
Bearbeitungsprogramm für
eine FSM vorgestellt wird.
Das folgende Bild zeigt eine
FSM als Textdatei – sehr
schlecht lesbar.
Diese FSM ist dann 70 Zeilen groß.
Und jetzt mal die gleiche Datei im speziellen
Bearbeitungsprogramm für FSM’s. 
Schön bunt und mit Pfeilen. Das Script erklärt sich jetzt fast von
alleine. Und genauso einfach wie es jetzt aussieht ist auch die
Bearbeitung und Erstellung dieser Dateien. Aber dieses Format hat
auch seine ganz speziellen Eigenschaften und Besonderheiten auf
die man achten muß. Details findet ihr im Kapitel 8.

Der Aufruf einer FSM ist fast identisch der einer SQF. Dieses Format
kann aber nicht kompiliert werden wie das SQF Format, es sind also
keine Funktionen möglich.

[] execFSM "removeNVG.fsm";

57

.hpp Format
Die Sprache in diesem Format ist identisch mit dem der description.ext. Daher kann die
description.ext auch den Inhalt dieser Dateien lesen und verarbeiten. Oft werden von
Missionsbauern daher .hpp Dateien in der description.ext verlinkt. Und warum die .hpp – diese
Dateien sind einfach viel besser lesbar.
Genutzt werden diese um Definitionen anzulegen und Dialoge zu erstellen. Dialoge sind z.B. Bildoder spezielle Textdarstellungen in Missionen. Dialoge sind auch eigens angelegte Fenster mit
Buttons wie z.B. der Artilleriedialog.

Eine HPP Datei wird im Gegensatz zu den anderen Formaten nicht direkt geöffnet sondern nur
„inkludiert“. Die Implementierung erfolgt stets in der description.ext und sonst nirgendwo.

#include "dialog/rscTitles.hpp";

Hier ein Beispielbild aus einer description.ext wie die Einbindung mehrer HPP’s aussieht:

58

2.6

Sound- und Bilddateien

Musik, Sounds und Bilder lassen eine Mission leben und ansehnlich werden. Die Verwendung dieser
optischen und akustischen Effekte ist daher im richtigen Moment und am richtigen Ort elementar für
eine gute Mission.

Bilder verwenden
Zugegeben, es wird einem nicht gerade leicht gemacht ein Bild in einer Mission zu verwenden. Man
muss bestimmte Formate verwenden und bestimmte Abmessungen einhalten. Das Format PAA
wurde aus pragmatischen Gründen gewählt, denn die Dateiperformance ist hier sehr hoch. ArmA
kann auch mit .jpg Dateien umgehen, jedoch hat dieses Format den entscheidenden Nachteil keine
Alphakanäle darstellen zu können. PAA ist daher immer priorisiert zu behandeln.
Das Format lässt sich mit TexView2 öffnen und auch in andere Formate (.png, .pga) umwandeln um
es mit gängigen Bildbearbeitungsprogrammen öffnen zu können. Das Erstellen einer PAA Datei ist
auch in umgekehrter Reihenfolge möglich. (siehe Abschnitt 2.9 für mehr Details)
Abhängig von der Verwendung des Bildes in der Mission können die Abmaße des Bildes entscheidend
für dessen Wiedergabe sein. Soll das Bild in einem Dialog oder in einem formatierten Text dargestellt
werden kann das Seitenverhältnis in der Regel frei gewählt werden. Soll das Bild jedoch z.B. als
Overview verwendet werden müssen bestimmte Seitenverhältnisse und Pixelbreiten eingehalten
werden. Zulässig sind dann nur noch Seitenverhältnisse von 1:1 oder 2:1 unter der Potenz von 64
Pixeln.
Zulässige Formate sind dann z.B.: 128x128, 256x128, 1024x512, 2048x1024 oder auch 256x512.

Darstellen von Bildern
Die einfachste Form der Darstellung kennt ihr bereits aus dem Abschnitt 2.4. Dort wird bereits ein
Bild als Loadscreen (Overview) geöffnet. Dabei wird immer der zu öffnende Pfad angegeben in dem
sich das Bild befindet. In diesem Beispiel liegt das Bild ordnungsgemäß aufgeräumt im
Missionsordner, Unterordner „pictures“.

loadScreen = "pictures\myOverview.paa";

Das folgende Beispiel zeigt einen kleinen Dialog welcher ein Bild definiert was dann dem Spieler
angezeigt werden soll nachdem die Mission begonnen hat. Dazu wird hier die Datei intro.hpp in die
description.ext „inkludiert“.

59

Initialisierung in der description.ext:

#include "dialog/intro.hpp";

Intro.hpp:
// ------------------------------------ Standard Definitions:
class RscStdText {
type=0;
idc=-1;
style=2;
colorBackground[]={0,0,0,0};
colorText[]={1,1,1,1};
font="TahomaB";
size=1;
};
class RscPicture {
access=0;
type=0;
idc=-1;
style=48;
colorBackground[]={0,0,0,0};
colorText[]={1,1,1,1};
font="TahomaB";
sizeEx = 0.023;
x = 0.0; y = 0.2;
w = 0.2; h = 0.2;
lineSpacing=0;
text="";
};

//---------------------------------- define a Dialog:
class RscTitles {
class intro_Title {
idd=-1;
movingEnable=0;
duration=12;
fadein=1;
name="Mission_Title";
controls[] = {Titelt1,Picture};
class Titelt1 : RscStdText {
text = "Welcome Soldier!";
colorText[] = {0.8, 0.9, 0.4, 1};
sizeEx = 0.07;
x = -0.1;
y = -0.6;
w = 1;
h = 1;
};
class Picture : RscPicture {
x = 0.05;
y = - 0.3;
w = 0.20; h = 0.2;
colorText[] = {1,1,1,0.7};

//green

text="pictures\psy_logo.paa";
sizeEx = 256;
};
};
};

60

Aufruf des Dialoges „intro_Title“ nach 3 Sekunden in der init.sqf:

sleep 3;
titleRsc [“intro_Title“,“PLAIN“] ;

Ergebnis ist ein Bild und ein kurzer Willkommenstext:

Das nächste Beispiel zeigt die Darstellung eines Bildes als aufgesetzte Objekttextur auf ein bereits
vorhandenes Objekt aus ArmA 3. Das funktioniert jedoch leider nicht mit allen Objekten. Folgender
Code wurde in die Init eines Schildes geschrieben:

this setObjectTexture [0, "pictures\psy_logo.paa"];

… und das Ergebnis:

61

Das letzte Beispiel zeigt wie wir das Bild auf einer Flagge darstellen können. Dazu wurde ein
Fahnenmast auf der Karte platziert mit folgendem Code in der Init:

this setFlagTexture "pictures\psy_logo.paa";

Und das Ergebnis ist unsere wehende Flagge im
Wind –dass lässt jedes ArmA Herz höher schlagen!
Bei Objekten und Flaggen spielt das
Seitenverhältnis übrigens keine Rolle. Ihr solltet
trotzdem „angemessene“ Seitenverhältnisse
wählen da das Bild sonst total verzerrt dargestellt
wird.

Sound- und Musikdateien
Bereits unter Kapitel 2.4 wurde darauf eingegangen wie Musik in einer Mission eingebunden wird.
Grundsätzlich wird zwischen Sounddateien und Musikdateien unterschieden. Der Unterschied macht
sich am meisten bemerkbar anhand der spezifischen Soundeinstellungen der Spieler in ihrem Profil.
Denn dort kann jeder Spieler die Musiklautstärke unabhängig von der Soundlautstärke einstellen.
Und das sollte man als Missionsdesigner wirklich ernst nehmen und berücksichtigen.
Das Format von Sound- und Musikdateien muss entweder als .wss, .wav oder als .ogg ausgeführt
sein. Das Format .WAV ist als Außenseiter zu betrachten da dieses Format wesentlich mehr
Speicherplatz belegt als die anderen beiden.
Programme die euch eine MP3-Datei in eines der beiden Formate wandeln können findet man im
Internet zuhauf. Dabei ist OGG das gängigere Format der beiden.

62

Die Definition von Sounddateien erfolgt wie auch schon bei der Musik. Unterschied ist hier statt
cfgMusic findet die Definition in der Klasse cfgSounds statt.
Sounds.hpp:
class CfgSounds
{
sounds[] = {};
class funk
{
// how the sound is referred to in the editor (e.g. trigger effects)

name = "Radio Request";
// filename, volume, pitch

sound[] = {"sounds\funk.ogg", 1, 1};
// subtitle delay in seconds, subtitle text

titles[] = {1, "*order Arty*"};
};
};

Zum Abspielen des Sounds wird jetzt der eben definierte classname funk verwendet. Es gibt eine
Vielzahl von Möglichkeiten einen Sound abzuspielen.

playSound "funk";

 einfach, ohne Effekte

player say3D "funk";

 3D-Sound von einer Quelle

playSound3D ["funk", player, false, getPos player, 1, 1, 0];
Syntax: playSound3D [filename, source, isInside, position, volume, frequency, distance];
Neuer Befehl seit Arma 3 – sehr nützlich da hier vorher viel gescriptet werden musste

Der Sound kann auch aus einem Trigger
heraus abgerufen werden. Unter
„Effekte“ tauchen die ebend efinierten
Sounds wieder auf und können dort
verwendet werden.

63

.cfgRadio
Eine besondere Form der Soundwiedergabe ist die Möglichkeit einen Sound als Funkspruch in
Kombination mit einer Textausgabe zu verwenden. Dieser Sound stellt dann meistens eine
Sprachaufzeichnung dar. Während die Stimme einen Funkspruch darstellt wird zeitgleich ein Text
ausgegeben der in der Regel nochmal visualisiert was die Stimme gerade sagt. Dieser Text kann dann
in der stringtable.csv Mehrsprachig definiert werden um so z.B. eine englische Stimme direkt ins
Deutsche zu übersetzen. Um diese Art der Soundwiedergabe zu verwenden zieht man sich die Klasse
cfgRadio heran.
z.B. in der description.ext:
class CfgRadio
{
sounds[] = {};
class RadioMsg1
{
name = "";
sound[] = {"\sounds\filename1.ogg", db-100, 1.0};
title = "I am ready for your orders.";
};
class RadioMsg2
{
name = "";
sound[] = {"\sounds\filename2", db-100, 1.0};
title = {$STR_RADIO_2};
};
};

Verwendung in der Mission:

[west, ”BASE”] sideRadio "RadioMsg1";

Entsprechend das Ergebnis:

Passend zu dem Text wird die definierte Sounddatei, in diesem Beispiel filename1.ogg genannt
abgespielt.

64

Pro-Tipp – Papa Bear:
Ihr seid alt? Ihr mögt keine Veränderungen denn alles ist gut so wie es war? Dann seid ihr wohl auch
OFP-Fans und steht total auf den Rufnamen „Papa Bear“ statt diesem neumodischen, seit Jahren in
der Verwendung befindlichen „Crossroad“. 
Folgender Code in der init.sqf generiert eine Logik die euch einen virtuellen Papa Bear generiert der
euch künftig über Chat neue Befehle zukommen lassen wird:

Der Aufruf des Radio-Chats sieht dann wie folgt aus:

hq_logic_papa sideRadio "RadioMsg1";

…und natürlich noch das Resultat:

Und schon könnt ihr wieder in der Vergangenheit leben. 

65

2.7

PBO-Dateien erstellen und entpacken

Das PBO-Format ist ein Containerformat wie RAR oder 7z. Jede Mission sollte nach ihrer
Fertigstellung als PBO gepackt werden bevor diese weiter verbreitet wird. Genauso wichtig ist es
auch PBO’s entpacken zu können.
Es gibt viele Möglichkeiten und Tools eine PBO zu packen/entpacken. Einige Leute erledigen das
angeblich immer noch über DOS Kommandos. In diesem Guide zeige ich wie man mit dem Tool cpbo
ein Kontextmenü nach Rechtsklick auf eine zu entpackende PBO oder einen zu packenden Ordner
erstellt.
Aber vorher noch kurz eine kleine Liste der im Umlauf befindlichen PBO-Helfer:

PBOView – leichte Bedienung, gute Oberfläche aber veraltet (kann nicht alle PBO’s entpacken)
Mikero’s Tools – sehr gutes Tool, jedoch für Laien schwer zu bedienen da DOS-basiert
BinPBO – Hauseigenes Tool von BIS, kann PBO’s nur packen nicht entpacken, wird benötigt um
PBO_s zu signieren da es Keys erstellen kann (nötig bei Addons/Mods)

Eliteness – ein sehr altes Tool welches Mikero’s DLL’s zum Arbeiten benötigt, kann dafür noch
weitaus mehr als nur Dateien packen/entpacken

Kegetys cpbo – einmal eingerichtet bietet dieses Tool eine sehr einfache und schnelle Bedienung

cpbo einrichten:
Download:

http://www.kegetys.fi/dl.php/tools07072010.zip

Entpackt die Datei und öffnet den Ordner cpbo.
Darin befindet sich die cpbo.exe.
Führt diese .exe mit Doppelklick aus.
Ein DOS-Fenster und eine Warnmeldung öffnet
sich. Bestätigt die Frage mit einem Klick auf „Ja“.

66

PBO Packen
Sucht den Missionsordner im Dateibrowser und macht einen Rechtsklick auf den Ordner. Jetzt sollte
sich ein neuer Shortcut in dem Dropdown-Menü von Windows eingetragen haben welcher euch die
Möglichkeit gibt den Ordner zu einer PBO-Datei zu packen. Die PBO Datei wird im selben Überordner
angelegt.

PBO entpacken
Auf dieselbe Art und Weise kann jetzt eine PBO entpackt werden. Dazu einfach per Rechtklick auf
eine PBO-Datei im Kontextmenü „unpack PBO“ wählen und der PBO-Container wandelt sich wieder
in einen Ordner.

67

2.8

Sonderformate

Die Stringtable
Die Stringtable ermöglicht es euch eine Mission mehrsprachig zu gestalten oder lange Textblöcke in
kurze definierte Wörter zu stecken. Das ist nützlich um in Scripten nicht den Überblick zu verlieren
oder wenn der selbe Text an verschiedenen Stellen wieder verwendet werden soll. Die Stringtable
kann in zwei unterschiedlichen Formaten verwendet werden. Entweder als stringtable.xml oder als
stringtable.csv.
Für welches Format ihr euch letztendlich entscheidet bleibt euch überlassen. Beide Formate haben
ihre Vor- und Nachteile. Ich selbst bevorzuge das .csv-Format da es übersichtlicher ist und weniger
Speicherplatz benötigt. Daher wird im folgenden auch nur das .csv Format in den Beispielen
betrachtet.
Windows schlägt zur Bearbeitung dieses
Formats Excel vor, bearbeitet die Datei
jedoch mit einem Texteditor. Beim
Speichern der Datei sollte man darauf
achten, dass die Datei UTF-8 formatiert
wird. Standardmäßig formatiert euch
Windows die Datei nämlich im ANSIFormat. In diesem Format können Ingame
aber kein ü,ö oder ä dargestellt werden. Um
die Formatierung zu ändern wählt „Speichern unter“ und wählt im Fenster unten rechts die
gewünschte Formatierung. (siehe Bild)
Der Aufbau einer .csv ist simpel. In der ersten Zeile werden die Sprachen der Reihenfolge nach
definiert. Das bedeutet ein Spieler der die deutsche Version des Spiels hat wird automatisch den
deutschen Text angezeigt bekommen und jemand mit der französischen Spielversion den
französischen Text. Ihr kennt nicht alle Sprachen? Kein Problem – nicht definierte Sprachen weichen
automatisch auf die erste definierte Sprache aus. Die erste Sprache sollte also immer Englisch sein!
LANGUAGE,English,German,Czech
Anschließend wird der Text sprachlich sortiert in der selben Reihenfolge niedergeschrieben. Vor dem
jeweiligen Text wird jedoch zuerst immer die Adresse definiert. Dabei erhält die Adresse immer ein
STR_ vor dem frei wählbaren Titel. In der Praxis sieht das wie folgt aus:
STR_Titel,“english example text“,“deutscher Beispieltext“
Aufrufen der Textadresse – es gibt drei verschiedene Methoden, wobei jeder Anwendungsbereich
seine eigene Methode benötigt. Grundsätzlich lautet die Adresse für den Aufruf jetzt STR_Titel.
Aufruf aus dem Editor, z.B. einem Trigger



@STR_Titel

Aufruf aus einer Config



$STR_Titel

Aufruf aus einer .sqf



localize “STR_Titel“;
68

Der Aufruf der Textadresse muss natürlich im Kontext
mit einem textfähigen „Baustein“ stehen. Soll z.B. ein
Wegpunkt benannt werden muss @STR_Titel in das
Description Textfeld geschrieben werden.

Wird der Aufruf mit Hilfe von localize in einem Script ausgeführt, sieht es in Kombination mit hint so
aus:

hint localize “STR_Titel“;

Und noch ein Beispiel für eine Config bzw. in dem Fall in der description.ext um den Missionsnamen
mehrsprachig darstellen zu können:

onLoadName $STR_Titel;

Will man innerhalb des Textes einen Zeilenumbruch vorgeben muss lediglich ein n/ an die
gewünschte Stelle geschrieben werden.

STR_Order,Deliver fast the packet to your bossn/Move out!
Auch das einbringen variabler Wörter, z.B. einem Namen ist möglich. Das %1 ist hierbei der
Platzhalter. Jeder weitere Platzhalter innerhalb des selben Strings würde fortlaufenden
nummeriert werden. (%2, %3, …)
STR_Order_Personal,Hey %1, you have to deliver something.
Dann der entsprechende Aufruf aus einem Script dazu:

hint format [localize "STR_Order_Personal",name player];

69

Lip-Dateien
Die Lip-Datei sorgt dafür dass sich die Lippen eines Charakters anfangen zu bewegen. Jede
Sounddatei die von einer Einheit mit Hilfe der Sprachausgabe (Befehl „say“) wieder gegeben wird
kann mit einer solchen .lip-Datei hinterlegt werden um die Bewegung der Lippen herbei zu führen.
Dazu muß die .lip Datei lediglich denselben Dateinamen tragen wie die
Sounddatei. Es sind keine weiteren befehle nötig um die Datei zustarten.
Sounddatei und Lipdatei sollten sich im selben Ordner befinden.
Beispielhaft zeigt das Bild die Sound- und Lipdateien mit gleicher
Namensgebung im Ordner der Sounddateien.

Der Inhalt einer Lipdatei ist im Textblock am rechten Seitenrand
dargestellt und ist sehr einfach gehalten. Frame = 0.040 ist ein konstanter
Wert der als gegeben betrachtet werden kann. Anschließend folgen viele
Zeilen die jeweils zwei Zahlen getrennt durch ein Komma darstellen.
Die erste Zahl ist die Zeit in Sekunden entsprechend der Abspieldauer der
Sounddatei beginnend bei 0. Die Lipdatei in diesem Beispiel ist also für
eine Sounddatei mit einer Spieldauer von 2,52 Sekunden ausgelegt. Die
Zahl hinter dem Komma gibt den Öffnungsgrad der Lippen an. 0 steht für
einen geschlossenen Mund und 7 für weit geöffnet. Der Öffnungsgrad der
Lippen kann also mit einem Wert zwischen 0 und 7 bestimmt werden.
Die letzte Zeile hat den Öffnungsgrad -1 zugewiesen bekommen. Das
bedeutet hier endet die Lipdatei.
 Syntax:

Zeit , Öffnungsgrad

So eine Lipdatei ist ein fantastisches Stilmittel, macht jedoch auch sehr
viel Schreibarbeit wenn man solche Dateien manuell erstellen will. Daher
hat BIS dem ambitionierten Missionsdesigner ein Tool beiseite gestellt
welches einem diese Arbeit abnehmen soll. In den BIS-Tools (nähere
Erläuterungen findet ihr im folgenden Kapitelabschnitt) existiert das Tool
Wave2Lip.
Um eine Lipdatei zu erstellen muss dafür lediglich eine OGG-Sounddatei
auf das Tool per Drag & Drop gezogen werden und im selben Ordner wird
eine Lipdatei generiert. Mit dem Tool also ein Kinderspiel und ein absolut
wichtiges Stilmittel wenn ihr Sprachdialoge in einer Mission verwenden
wollt.

frame = 0.040
0.000, 1
0.040, 3
0.080, 5
0.120, 1
0.280, 2
0.320, 1
0.360, 3
0.400, 1
0.480, 2
0.520, 3
0.600, 7
0.640, 1
0.680, 2
0.840, 1
0.880, 3
0.920, 1
1.000, 2
1.080, 1
1.160, 0
1.400, 1
1.440, 2
1.560, 3
1.600, 4
1.640, 5
1.680, 3
1.720, 2
1.760, 5
1.800, 4
1.840, 1
1.920, 2
2.000, 1
2.080, 0
2.120, 1
2.280, 2
2.320, 1
2.440, 0
2.520, -1

70

2.9

Nützliche Helfer

Wow, eine Menge Dateiformate und damit eine Menge Möglichkeiten eine Mission zu erstellen und
zu bearbeiten. Damit kommt aber auch die Frage auf wie man diese ganzen Dateiformate händeln
und verwalten soll. Prinzipiell ist es möglich jeder Dateiformat mit dem Texteditor der mit jeder
Windows Version geliefert wird zu öffnen und zu bearbeiten. Aber wie sieht das aus wenn man eine
SQF Datei mit mehreren hundert Zeilen im Texteditor öffnet? Richtig, einfach nur katastrophal
unübersichtlich und strukturlos. Noch viel schlimmer sieht es aus wenn man sich den Spaß macht und
eine FSM Datei im Texteditor betrachtet. Nahezu unmöglich solche Dateien händisch zu erstellen
oder zu bearbeiten.
Daher existieren natürlich viele Programme und Tools die einem hier die Arbeit erleichtern und für
eine einfache Bearbeitung sorgen. Die wichtigsten Tools, besonders für Addon Ersteller, liefert
Bohemia Interactive selbst. Das sind die unter dem Oberbegriff zusammen gefassten BI-Tools.
Neben den offiziellen BI-Tools existieren natürlich auch andere Programme welche nicht speziell für
Arma Entwickelt wurden sich aber hervorragend zum Editieren von Arma verwenden lassen. Dazu sei
gesagt dass jedes hier erwähntes und gesammeltes Tool als sogenannte Light- oder Free- Version im
World-Wide-Web zur Verfügung steht.
Zum vereinfachten Umgang und für eine bessere Übersicht werden im Rahmen dieses Editing Guides
aber trotzdem alle Programme und Tools in einem Packet gebündelt und zur Verfügung gestellt.
Daher noch ein wichtiger Hinweis: Bitte achte immer auf den Stand der letzten Aktualisierung des
Packet um stets die richtige Programmversion zu verwenden. Hier steht mit vollem Bewusstsein die
„richtige“ und nicht die „aktuellste“. Nicht immer ist die aktuellste Version auch die richtige Version!

Downloadpfad Arma 3 Editing Guide Tools:

Arma 3 Editing Guide Tools
(http://upload.g-g-c.de/tcb/files/Editing_Guide_Tools.7z)

Auf den folgenden Seiten wird kurz auf die Funktion der wichtigsten Tools eingegangen und deren
Installation erläutert. Die meisten Tools haben einen eigenen Installer welcher die Anwendung der
Tools einfach gestaltet.

71

Die BI-Tools
Die Installation aller BI-Tools wird über einen gemeinsamen Installer abgewickelt welcher im Umgang
selbsterklärend ist.

Inhalt:
Oxygen 2 – Modelle editieren und Animationen erstellen (nur für Addon-Maker)
Visitor 3 – Terrains und eigene Karten erstellen
TexView 2 – Texturen und Bilder konvertieren und ansehen
BinPBO – das Haustool um PBO’s zu erstellen und zu signieren (kann leider nichts entpacken)
Sound Tools – Wave2Lip und WavetoSSS (WSS) sind hier zu finden
FSMEditor – zum Erstellen, editieren und kompilieren von FSM Dateien

Notepad++
Dieser sehr gute Texteditor ist das wohl wichtigste Werkzeug für jeden Missionsbauer der auch
Scripte erstellen möchte. Notepad wird in den Guide Tools in zwei Versionen geliefert. Enthalten ist
die aktuelle Version und die alte Version 5.7. Dazu gleich mehr.
Die Installation wird wieder einfach mit einem Installer erledigt. Die Bedienung von Notepad
erscheint im ersten Moment als herausfordernd da einem hier viele Optionen und Möglichkeiten
geboten werden. Nach ein paar Stunden Eingewöhnungszeit sollte es aber jedem recht einfach fallen
mit dem Programm umzugehen. Hat man einmal die Vorteile dieses Editors erkannt will man ihn
garantiert nicht mehr missen.
Was leistet Notepad?  Syntaxhighlight für fast alle Programmiersprachen, Projektverwaltung,
Einschübe erstellen, Makros ausführen, Codierungen, Auto-Completition, Hilfe-Popups,
Schlagwortsuche, …. Die Liste kann ewig weitergeführt werden.

72

Leider beinhaltet Notepad nicht von Haus aus Syntaxhighlights für SQF Scripts. Daher muss an dieser
Stelle mit Plug-Ins nachgeholfen werden. Zwei verschiedene Plug-Ins sind in den Guide Tools
enthalten. Und jetzt die Erklärung warum auch zwei unterschiedliche Versionen von Notepad selbst
geliefert werden. Denn jedes der beiden Plug-Ins kann nur mit der entsprechend passenden Version
arbeiten. Die Plug-Ins wurden in der Ordnerstruktur schon der jeweiligen Version zugeordnet.
Welche Version man benutzt hängt wohl von der persönlichen Vorliebe ab wie sich die
Farbgestaltung der Highlights darstellt. Die aktuelle Notepad Version mit dem dazugehörigen Plug-In
hat einen großen Vorteil gegenüber der alten Version 5.7 mit dem entsprechenden Plug-In:
Die neue Version ist sehr gut gepflegt und auf dem neuesten Stand in Bezug auf die ScriptKommandos unter Arma 3. Denn neue Kommandos erkennt Notepad nur wenn diese auch von
jemand eingearbeitet werden. An dieser Stelle engagiert sich das Community Mitglied
„GossamerSolid“ sehr stark und pflegt dieses Plug-In regelmäßig.
Das „alte“ Plug-In mit der alten Notepad Version ist im Ursprung von dem Community Mitglied
„Kegetys“ erstellt worden und wurde das letzte mal im Jahr 2009 aktualisiert. Daher ist diese Version
nicht perfekt gepflegt. Das Plug-In wurde daher von mir nach dem Erscheinen von Arma 3 selber
aktualisiert. Jedoch ist es trotzdem nicht 100% vollständig. Dieses Plug-In pflege ich aus ganz
pragmatischen Gründen: Ich verwende es selber! Und weil ich dies seit Jahren so handhabe möchte
ich mich nicht auf eine andere Farbgebung einlassen. 
Nach objektiver Betrachtung sollte dem aktuellen Plug-In von „GossamerSolid“ an dieser Stelle aber
der Vortritt gewährt werden. Daher wird hier kurz beschrieben wie dieses Plug-In zu installieren ist.
Installation:
1.
2.
3.
4.
5.

Öffne Notepad++ 6.3 oder höher
Klick im Menü auf „Language“  „Define your own Language“  „Import“
Importiere die Datei „syntaxhighlighting/SQF.xml“ (Speicherort der Guide Tools)
Starte Notepad++ erneut
Öffne eine SQF Datei, diese ist jetzt farbig profiliert

Weiterführende Informationen sind in der Readme des Plug-Ins zu finden.

Total Commander
Dieses Programm ist nichts anderes als ein verbesserter Windows Explorer. Mit dem Tool lassen sich
zwei Fenster parallel öffnen und die Dateien darin verwalten. Außerdem können Schlagwörter
innerhalb ganzer Ordnerstrukturen gesucht werden. Der Suchbegriff wird dann aber nicht nur in den
enthaltenen Dateinamen sondern auch in deren Inhalt gesucht. Eine unschlagbar hilfreiche Funktion
zum Aufspüren von Variablen in komplexen Dateigebilden. Darüber hinaus kann dieses Tool auch als
FTP-Client verwendet werden und bringt eigene ZIP-Utilities mit sich.
Die Installation lässt sich über den Installer einfach und schnell realisieren.

73

Soundtools
Die Soundtools sind eine kleine Sammlung von nützlichen Helfern welche Soundformate
konvertieren können oder die Sounddatei selbst bearbeiten können.
Inhalt:
dbPowerAmp – konvertiert MP3 zu WAV und bietet diverse Kompressionsraten
Power Sound Editor – kann WAV Dateien bearbeiten (Fadeout, Fadein, div. Effekte, Schneiden)
OFP Sound Lab – kann WAV in OGG und/oder WSS wandeln und erstellt LIP-Dateien
Die Kombination dieser drei Helfer macht alles möglich was man benötigt um selber Sounds und
Musik für eine Mission zusammenstellen zu können. Leider ist mir kein Programm bekannt welches
alle Aufgaben gemeinsam bewältigen kann und als Freeware zu haben ist.

Weitere Programme
Hier sammeln sich weitere kleine „Nice to Have“ Tools. Keines davon ist wirklich entscheidend, wird
dem ein oder anderem aber extrem weiter helfen.
Inhalt:
CompareIt – vergleich zwei Dateien miteinander und zeigt die unterschiede
SynchronizeIt – synchronisiert Dateien miteinander
PAA Plug-In – damit lassen sich Bilder im PAA Format auch in Photoshop öffnen
Kegetys Tools – ein Schatz für sich!
SQF Editor – Plug-Ins für Notepad zu umständlich? Dann friss das!
Farbtabelle – mischt jede Farbe und gibt den Farbcode aus (HTML, RGB, HEX, ARMA)

Der Nutzen und die Verwendung dieser Tools sollte sich jedem nach Bedarf selber erschließen. 

Aufruf: Du kennst einen weiteren Nützlichen Helfer der hier nicht aufgeführt wurde dir aber schon
oft „das Leben“ gerettet hat? Feedback ist immer willkommen und die Liste der Helfer ist nie
vollständig. Zögere also nicht und lasse andere an deinem Wissen teilhaben. Eine kurze Info an den
Autor reicht und die Liste wird bei entsprechender Zweckmäßigkeit erweitert.

74

3. Eine eigene Mission erstellen
Vorwort und Denkanstoß
Gehörst du zu den aufmerksamen Lesern die bis an diese Stelle alles gelesen haben und nebenbei die
Dinge die beschrieben wurden selber ausprobiert haben? Dann hast du bis hier hin schon einmal
alles richtig gemacht.
Die ersten beiden Kapitel waren eher handwerklicher und technischer Natur. Nachdem die
Werkzeuge verteilt wurden und die Baustelle definiert ist soll dieses Kapitel dem ambitionierten
Missionsbauer dabei helfen eine Richtung zu finden. Außerdem soll es dazu anregen darüber
nachzudenken was für eine gute Mission wichtig ist und was zu beachten ist.
Hier wird der Versuch gewagt anhand von schlechten Beispielen zu zeigen wie es nicht laufen sollte.
Im Gegenzug werden Aspekte ausgeleuchtet über die man sich als Missionsdesigner Gedanken
machen sollte. Täglich erscheinen neue Missionen aus der Community. Leider sind 95% davon
schlecht organisiert, nicht durchführbar oder schlicht weg durchgehend fehlerhaft, was das Spielen
teilweise völlig unmöglich macht.
Was macht eine gute Mission eigentlich aus? Diese Frage sollte man sich stellen bevor man mit der
Arbeit beginnt. Eine gute Mission sollte in aller erster Linie originell sein! Die Einzigartigkeit ist es
welche eine gute Mission ausmacht. Dieser Zustand wird nur durch gute Ideen hervor gebracht. Erst
in zweiter Linie spielt die technische Umsetzung eine Rolle. Wenn man seine Gedanken mal quer
durch diese besagten 95% ziehen lässt, kann man ein simples Muster erkennen. Eigentlich hat fast
jede Mission andere Missionsziele und damit auch eigentlich andere Aufgaben.
Ich persönlich behaupte jetzt aber dass jede Mission dieselben zwei Missionsziele hat, die da lauten:

„Alle erschießen und alles in die Luft jagen!“
Das ist stark verallgemeinert, trifft aber wie ich finde genau den Punkt. Was soll damit ausgedrückt
werden? Dass die meisten Missionen alles andere als originell sind, weil man immer und immer
wieder dieselben Aufgaben und damit dieselben Handlungen durchführt. Gesellt sich jetzt noch eine
schlechte technische Umsetzung dazu oder sonst ein negativer Faktor macht sich unter den Spielern
schnell Frust breit. Und das war bestimmt nicht das Ziel des Missionsbauers gewesen als er seine
Idee umsetzte.
Jetzt kommt vielleicht der Gedanke auf was man denn sonst in einer Militärsimulation machen soll.
Natürlich werden auch weiterhin alle Missionen Gegner beinhalten auf die geschossen wird.
Eventuell verteidigen diese auch eben eine Radarstation die gesprengt werden soll. Das „Wie“ ist
aber der entscheidende Unterschied welche eine Mission originell oder langweilig werden lässt.
„Starte in Basis Z und gehe von Punkt A nach B um alles was sich dir in den Weg stellt platt zu
machen, dafür bekommst du alle Waffen des Spiels mit unendlich Munition und Leben sowieso, zur
Verfügung gestellt.“ Ist wie man es nicht machen sollte.
Und wie könnte das jetzt aussehen um denselben Auftrag interessant zu gestalten?
75

Zum Beispiel durch die Begrenzung der Leben des Spielers. Gibt es keinen Respawn überlegt sich der
Spieler vorher zweimal was genau sein nächster Schritt sein wird statt blind über eine offene Fläche
zu laufen. Begrenze Munition oder Waffenauswahl ist ebenso ein simples Stilmittel um den Spieler in
bestimmte Situationen oder Handlungsmuster zu zwingen die nicht dem einfachsten und damit dem
geradlinigsten Weg entsprechen.
Das Beispiel zeigte jetzt zwei ganz einfache Stilmittel auf die jeder umsetzen kann ohne viel über das
Editing wissen zu müssen oder über einen reichhaltigen Erfahrungsschatz verfügen zu müssen. Und
trotzdem würde die Mission völlig anders verlaufen und ein komplett anderes Spielgefühl hervor
bringen. Und das Beispiel war ja nun wirklich alles andere als originell. Trotzdem werden schon
alleine diese beiden Aspekte, ich nenne sie gerne Stilmittel, in kaum einer Mission angewendet.

„Weniger ist oft mehr.“
Das sollte man sich besonders beim Erstellen von Mission oft zu Herzen nehmen. Es entsteht oft der
Eindruck, dass ein großer Anteil der Missionsbauer in der Community die Auffassung oder das
Denken vertritt, dass eine Mission umso besser ist umso mehr Fahrzeuge sich auf dem Stützpunkt
befinden. Gespart wird in der Regel auch nie an Waffen, Ausrüstung und sonstigen Gegenständen.
Nicht selten kommt es vor das da dann mehrere Tausend (!) Sandsäcke verbaut wurden. An
diejenigen die so etwas bauen ein Appel: Denkt bitte daran das die Sandsäcke allein eine Mission
nicht schöner machen sondern höchstens den Grafikspeicher der Spieler schön belasten.
Gut zu sehen ist die Bauwut und der Hang zum Überfluss auch immer an Missionen die in ihrem
Originalzustand sehr gut gelungen sind, daher auch sehr beliebt in der Community, dann aber von
anderen Spielern „verbessert“ werden weil diese der Meinung sind das da noch 20 schwere Panzer
und 10 Kampfhubschrauber in der Basis gefehlt haben. Auch an diese „Verschlimmbesserer“ ein
Appel: Der ursprüngliche Missionsdesigner hat eine gute Mission gebaut und sich das Design, worin
enthalten auch die eigenen Kampfkraft der Truppe ist, etwas gedacht oder es sogar in vielen Stunden
des Testens genau ausbalanciert. Also verändert doch bitte nicht das gesamte Missionslayout.
Dass hier nicht übertrieben wird kann man täglich im Serverbrowser sehen. Denn in der Regel ist
keine „Insurgency“ oder „Domination“ zu sehen die nicht völlig verkrautet wurde. Daher soll die
harsche Kritik an der herrschenden Kultur der Missionen nicht ungerechtfertigt erscheinen oder
beleidigen. Die Kritik soll den angehenden Missionsbauern unter euch nur als Denkanstoß dienen
und dazu animieren einen gewissen Weitblick zu bilden wenn es darum geht was eine Mission
ausmacht.
Die folgenden Abschnitte in diesem Kapitel werden den dafür stecken und die Ecken markieren die
so oft vernachlässigt werden.

76

3.1

Missionsname und Beschreibung

Blablabla…

77



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : Yes
Author                          : Norman
Create Date                     : 2013:10:26 16:20:59+02:00
Modify Date                     : 2016:02:04 16:28:41+01:00
Language                        : de-DE
Tagged PDF                      : Yes
XMP Toolkit                     : Adobe XMP Core 5.6-c015 81.157285, 2014/12/12-00:43:15
Format                          : application/pdf
Creator                         : Norman
Creator Tool                    : Microsoft® Word 2010
Metadata Date                   : 2016:02:04 16:28:41+01:00
Producer                        : Microsoft® Word 2010
Document ID                     : uuid:bbad7fd7-28b4-480f-b491-41e263662881
Instance ID                     : uuid:c8088a1d-df3c-48e8-b407-4eccef8c80e6
Page Count                      : 77
EXIF Metadata provided by EXIF.tools

Navigation menu