Arma 3 - Find closest player to marker

  • Sorry, wenn ich mich hier eine englische Überschrift zum Thema verwende, jedoch finde ich es so angenehmer als es in Deutsch zu umschreiben.

    In dem heutigen Beispiel geht es darum den Spieler zu finden, welcher zu einem bestimmten Marker am dichtesten sich befindet, um dann entsprechend in seine Richtung bzw. Position Feindkräfte zu entsenden.


    Um sicherzustellen, das hierzu auch Bodeneinheiten als Ziel gewählt werden, überprüfe ich im Skript auch, ob sich der Spieler am Boden befindet. Des Weiteren überprüfe ich aus Performancegründen, die Feindanzahl bevor das Skript durchläuft. In der Regel gibt es in meinen Mission nicht mehr als 50-70 Gegner, daher die Begrenzung im Skript auf 60 Einheiten.


    Aufgerufen wird das Skript als Funktionsaufruf, welcher den "Markernamen" an die Funktion übergibt. Der Aufruf kann als Bestandteil eines Skripts, über einen Trigger oder für einen Admin über die Console aufgerufen werden.


    Der Aufruf sieht wie folgt dann aus:

    Code
    1. ["markername"]spawn GTcallEnemyAttackGroup;


    Eingebunden wird das Skript in der initServer.sqf

    Code
    1. call compile preprocessFileLineNumbers "GTscripts\GTcallEnemyAttackGroup.sqf";


    Der Gesamtaufbau des Skript stellt sich dann so da:




    Ps: Das Skript ist auf Gruppen aus dem GM Mod ausgerichtet. Die Zeilen

    Code
    1.   _group = ["gm_gc_army_infantry_squad_str","gm_gc_army_sf_infantry_specops_str","gm_gc_army_infantry_squad_str"] call BIS_fnc_selectRandom;
    2.   _eastgrp = [_startPos,EAST, (configfile >> "CfgGroups" >> "East" >> "gm_gc_army" >> "gm_infantry_80" >> _group)] call BIS_fnc_spawnGroup;

    müssten dann auf Euer Feindbild abgeändert werden. Diese findet ihr im "Configviewer" und CfgGroups des Arma Editors.