Basierend auf das Skript Find closest player to marker habe ich begonnen ein anderes Artillerie Skript zu modifizieren, so das um einen Spieler, der sich am dichtesten an einem Marker befindet, hier und da Einschläge nicht nur um ihn herum detonieren, sondern trägt doch sehr zur Atmosphäre bei .
Für die Bereiche der Sounduntermalung existieren 7 Sounds.
- 6 verschiedene Heultöne zur Artilleriebeschuss, bevor diese einschlagen
- 1 Granatwerfer Abschussgeräusch
Diese werden im Skript zufällig je Beschuss zur Untermalung ausgewählt.
Ist ganz nice anzuschauen, wenn die Spieler sich auf einmal blitzartig in Deckung schmeißen .
Getroffen werden können alle Spieler bis auf den Spieler, der sich am nächsten am Marker befindet! Außer er rennt da rein
Positioniert werden müssen 2 Gamelogics (benannt Variablenname Abschuss und die andere Trefferzone)
+ der Marker um den es sich handelt.
Hierbei ist es egal, wo sich der Marker befindet, es wird der Spieler ausgewählt der am dichtesten dran ist.
Das Skript sieht wie folgt aus:
QuoteDisplay More// ["markername", Geschossanzahl] execVM "GTscripts\GT_artySim.sqf";
if (!isServer) exitWith {};
private _marker = _this select 0;
private _markerPos = getMarkerPos _marker;
private _splash = _this select 1;
private _playerList = allPlayers apply {[_markerPos distanceSqr _x, _x]};
_playerList sort true;
private _closestPlayer = (_playerList select 0) param [1, objNull];
_shellType = [_this, 3, "Sh_82mm_AMOS", [""]] call BIS_fnc_param;
for "_index" from 1 to _splash do {
_shell = "Sh_82mm_AMOS";
_hitzone = [(getPos _closestPlayer) , 100, 150, 10, 0, 20, 0] call BIS_fnc_findSafePos;
[AbschussBlitz , "abschuss", 3000] call CBA_fnc_globalSay3d;
sleep 2;
Trefferzone setPos _hitzone ;
_sounds = ["shell1","shell2","shell3","shell4","shell5","shell6"] call bis_fnc_selectrandom;
[Trefferzone , _sounds, 300] call CBA_fnc_globalSay3d;
_shell = _shellType createVehicle (getPos Trefferzone);
_shell setPos (getPos Trefferzone);
sleep 0.5;
_shell setVelocity [0,0,-200];
sleep 1;
"ILLUM" createVehicle (getPos Trefferzone);
sleep (1 + (random 10));
};
Der Aufruf erfolgt dann per Trigger, auch über Console möglich oder wie immer ihr Eure Mission dazu gestaltet.
Anbei sind die besagten Soundfiles am Originalthread als Download!
Diese müssen natürlich in der Description.ext defindert sein, zB. so:
- class CfgSounds {
- sounds[] = {shell1,shell2,shell3,shell4,shell5,shell6,abschuss};
- class shell1 {name="shell1";sound[]={"sounds\shell1.ogg",db+20, 1, 250};titles[]={0,""};};
- class shell2 {name="shell2";sound[]={"sounds\shell2.ogg",db+20, 1, 250};titles[]={0,""};};
- class shell3 {name="shell3";sound[]={"sounds\shell3.ogg",db+20, 1, 250};titles[]={0,""};};
- class shell4 {name="shell4";sound[]={"sounds\shell4.ogg",db+20, 1, 250};titles[]={0,""};};
- class shell5 {name="shell5";sound[]={"sounds\shell5.ogg",db+20, 1, 250};titles[]={0,""};};
- class shell6 {name="shell6";sound[]={"sounds\shell6.ogg",db+20, 1, 250};titles[]={0,""};};
- class abschuss {name="abschuss";sound[]={"sounds\abschuss.ogg",db+20,1,3500};titles[]={0,""};};
- };