Zum Inhalt

Intercept für ArmA III

Intercept ist ein Programmier-Interface für ArmA 3, welches die Anbindung von C/C++-Erweiterungen mit direktem Zugriff auf die SQF-Routinen der Grafik-Engine (Real Virtuality oder RV Engine) erlaubt.

Installation von Intercept

Die Installation wurde unter Windows 11 mit Visual Studio 2019 durchgeführt. Ferner wird vorausgesetzt, dass die ArmA 3 Tools inklusive der Mikero's Tools installiert sind. Letztere findet man im Hauptmenü der ArmA 3 Tools unter Externals.

Als erste Anleitung diente die Beschreibung im Github Wiki.

  1. Download intercept-Code von GitHub als ZIP-File
  2. Entpacken des ZIP-Files in einen lokalen Ordner (hier: Intercept-Master-Projektordner)
  3. Öffnen von Visual Studio 2019
  4. Im Startdialog von VSD 2019 die Option "Lokalen Ordner öffnen" auswählen und das zuvor entpackte Verzeichnis angeben

VS 2019 startet CMake und konfiguriert das Projekt. Anschließend kann das Projekt kompiliert werden:

Hauptmenüzeile Erstellen Alle erstellen

Einrichtung des Intercept Cores

Zur Einrichtung der Schnittstelle zu ArmA 3 muss der Inhalt des Ordners ./addons/core aus dem Intercept-Master-Projektordner in ein PBO gepackt und ArmA 3 als AddOn bereitgestellt werden. Hierzu wird auf dem ArmA Projektverzeichnis P:/ (mit den Arma 3 Tools zu mounten) folgendes Verzeichnis eingerichtet:

z/intercept/rv/addons/core

Anschließend wird der Inhalt von ./addons/core aus dem Intercept-Master-Projektordner dorthin kopiert.

Nun kann mit dem dem Mikero-Tool "pboProject" der Source-Folder

/z/intercept/rv/addons/core

in das PBO "intercept_core.pbo" konvertiert und in folgendes ArmA 3-Installationsverzeichnis kopiert werden:

C:/Program Files (x86)/Steam/steamapps/common/Arma 3/@intercept/addons

Zusätzlich sind die Dateien "intecept_x64.dll" und "intercept_x64.pdb" aus dem Ordner ./build/win64/intercept des Intercept-Master-Projektordners noch an die folgende Stelle des ArmA 3-Installationsverzeichnisses zu kopieren:

C:/Program Files (x86)/Steam/steamapps/common/Arma 3/@intercept

Insgesamt ergibt sich damit folgende AddOn-Verzeichnisstruktur in der ArmA 3-Installation von Steam:

image

ArmA 3 Addon-Verzeichnis für Intercept Core

Erstes Beispiel für eine Client-Anwendung

Als Client wird hier das C/C++-Programmmodul bezeichnet, dass über die mittels Intercept Core bereitgestellte Schnittstelle auf die SQF-Funktionen von ArmA 3 zugreift. Dieses Programmmodul wird in Form einer Dynamic Link Library (DLL) bereitgestellt.

Zur Erstellung einer Intercept-Client-Anwendung wird in Visual Studio 2019 unter Neues Projekt erstellen als Projektvorlage "Dynamic Link Library (DLL)" ausgewählt. Anschließend ist ein Projektname, z.B. "intercept-client", und ein lokaler Projektordner anzugeben. Aktiviert man hier die Option:

"Platzieren Sie die Projektmappe und das Projektverzeichnis im selben Verzeichnis"

wird im angegebenen lokalen Ordner ein Unterverzeichnis mit dem Projektnamen zur Ablage der Projektdateien angelegt.