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.
- Download intercept-Code von GitHub als ZIP-File
- Entpacken des ZIP-Files in einen lokalen Ordner (hier: Intercept-Master-Projektordner)
- Öffnen von Visual Studio 2019
- 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:
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.