CfgSounds
Die meisten Befehle benötigen eine config für die zu benutzenden Sounds. Diese fügst du in deine description.ext
ein. Sie darf wie jede Cfg nur einmal existieren.
Beispiel:
class CfgSounds{
sounds[] = {};
class wolf1{
// Name des Sounds in Triggerauswahl
name = "my_wolf_sound";
//Pfad des Sounds (relativ zu Missionspfad), Lautstärke, Pitch, Reichweite des Sounds in Meter
sound[] = {"fx\wolf1.ogg", 1, 1, 100};
// Verzögerung des Untertitels, Untertitel
titles[] = {1, "*wolf growls*"};
};
};
Da dies die description.ext
sehr schnell aufbläht, kann man auch die Klassen in einzelnen .hpp-Dateien definieren und sie in der description.ext
lediglich inkludieren, wodurch man sich Platz spart.
class CfgSounds
{
sounds[] = {};
#include "Sounds\wolfSounds.hpp"
};
Wie üblich gilt: Inkludierte Dateien, die nicht existieren oder falsch benannt sind, werden Arma abstürzen lassen.
playSound
Lokaler Aufruf des Sounds, der in CfgSounds definiert wurde:
playSound "wolf1"
playSound "Beispiel"
playSound3D
Der folgende Aufruf ist etwas komplizierter und erfordert keine CfgSounds. Dafür müsst ihr euch in der Ordnernavigation etwas rantasten.
_soundPfad = (str missionConfigFile) select [0, (count str missionConfigFile)-15];
_soundToPlay = _soundPfad + "sounds\IrgendEineOOGImOrdnerSounds.ogg";
_sourceObject = Lautsprecher_1;
playSound3D [_soundToPlay, _sourceObject, false, getPos _sourceObject, 10, 1, 500];
Die Parameter des globalen Befehls sind:
-
- Pfad zum Sound, der abgespielt werden soll
-
- Quelle des Sounds
-
- Wahrheitswert, ob die Quelle „innen“ ist
-
- Position, von der der Sound kommen soll (überschreibt 2.)
-
- Lautstärke (Volume)
-
- Tonhöhe (Pitch)
-
- Maximale Reichweite (Maximal heißt dabei NICHT mehr zu hören. 60% sind angeraten)
say3D
from say3D [sound, maxDistance, pitch];
Der Vorteil von say3D ist, wenn es auch lokal ist, dass es beim Tod der Quelle deaktiviert wird und die Entfernung zwischen Spieler und Quelle in Betracht zieht.
_zufälligerLautsprecher say3D ["wolf1", 100, 1];
Da der ganze Befehl lokal ist, wird dafür remoteExec benötigt, wenn der Sound bei allen Spielern wiedergegeben werden soll. Ein Beispiel sähe so aus:
[_zufälligerLautsprecher, ["wolf1",100,1]] remoteExec ["say3D", -2, true];
Die -2 heißt, dass der Server keinen Sound hat. Beim Testen auf eurem Rechner seid ihr der Server