ARMA 3 - MISSION EDITING & SCRIPTING Arma 3 - SOG Artillerie
Arma 3 - SOG Artillerie
Quelle: Gametwitter.de Forum | views: 1701

Eine weitere Idee zur Immersion bei Vietnam Missionen habe ich mich an ein weiteres Artillerie Skript gewagt. Meine Absicht ist es hier bei einem zufällig gewählten Spieler in etwas weiterer Distanz mit Artillerieeinschlägen auf Spannung zu halten.

Hierzu gewählt habe ich das Geschütz M101 (classname vn_b_army_static_m101_02 ) und habe mir die Munition dazu angeschaut. Benannt habe ich dieses Geschütz gun_1 und diese dann kopiert 2x noch mal platziert. So habe ich noch die Benennung gun_2 & gun_3 für die weiteren Geschütze automatisch erhalten.

Vorgaben an das Skript

Die Geschütze sollen in einer Umgebung von 200 -350m um den Spieler einschlagen

Die zufällig gewählte Spieler muss sich am Boden befinden

Es soll fast alle Munitionstypen zufällig nacheinander verschossen werden. In diesem Fall nur HE & Posphor

Gefeuert werden soll zufällig 3 oder 5 Salven

Auf die Beschussposition habe ich nochmal einen Radius von 120m gesetzt, dh. es könnte auch zu Nahbeschuss bekommen (Danger Close ;) )

Benannt habe ich das Skript "fireAt.sqf"

//[geschützname] execMV "fireAt.sqf"
if (!isServer) exitWith {};


private _randomTarget = selectRandom (allPlayers - entities "HeadlessClient_F");

if (isTouchingGround _randomTarget) then{
_gun = _this select 0;
_ammoType = _this select 1;
_rounds = selectRandom [3,5];

for "_i" from 0 to _rounds do
{
 sleep 3;
 _position = [ _randomTarget, 200, 350, 10, 0, 20, 0] call BIS_fnc_findSafePos;
 _pad = createVehicle ["Land_HelipadEmpty_F", _position, [], 0, "NONE"];
 _targetpos = (getpos _pad );
 _radius = 120;

  _firingPos = _targetpos getPos [_radius * sqrt random 1, random 360];
   //_Airburst = (getArtilleryAmmo [_gun] select 1);
   //_Splitter =(getArtilleryAmmo [_gun] select 2);
   _Phosphor = (getArtilleryAmmo [_gun] select 3);
   _HighExplosive = (getArtilleryAmmo [_gun] select 4);
   //_Smoke = (getArtilleryAmmo [_gun] select 5);
   //_Flare = (getArtilleryAmmo [_gun] select 6);
   
   _randAmmo = selectRandom[_Phosphor,_HighExplosive];
   _gun commandArtilleryFire [
   _firingPos,
   _randAmmo,
   1
   ];


   sleep 4+(random 4);
   deleteVehicle _pad;
};
_gun setVehicleAmmo 1;
};

Aufruf der Geschütze erfolgt hierbei über ein Trigger

[gun_1] execMV "fireAt.sqf"
[gun_2] execMV "fireAt.sqf"
[gun_3] execMV "fireAt.sqf"

Eine Kommentarfunktion ist in diesem Blog nicht vorgesehen.
Bei Problemen zum Skript bitte im Gametwitter.de Forum registieren und dort die Kommentarfunktion nutzen.