Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 05.06.2011, 08:34   #1 (permalink)
Newbie
 
Benutzerbild von Deep Five-9te
 
Registriert seit: 08.08.2010
Ort: Naumburg/Saale
Alter: 56
Beiträge: 16
Standard Das leidige Thema Sound mal wieder

Was ich bisher getan habe.......
1.In der "description.ext" eigene Sound´s definiert:

class CfgSounds {
sounds[] = {
Wakeup,Heli,Heli1,Heli2

class Wakeup {name="Wakeup";sound[]={"\sounds\Wakeup.ogg",db+20,1.0};titles[] = {};};
class Heli {name="Heli";sound[]={"\sounds\Heli.ogg",db+15,1.0};titles[] = {};};
class Heli1 {name="Heli1";sound[]={"\sounds\Heli1.ogg",db+15,1.0};titles[] = {};};
class Heli2 {name="Heli2";sound[]={"\sounds\Heli2.ogg",db+15,1.0};titles[] = {};};

2.Eigene Sounds im Ordner "sounds" eingefügt:
Wakeup.ogg,Heli.ogg,Heli1.ogg,Heli2.ogg
(im Format 44100Hz,36kbps,mono)

3.Mit dem Editor in der Mission Auslöser plaziert:
Bsp.1:

class Item22
{
position[]={4729.8218,339,10339.498};
a=5;
b=5;
angle=57.512001;
rectangular=1;
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="mhq1";
expCond="! isNull driver xvec1";
expActiv="xvec1 say Wakeup; mhq1 setPos getPos xvec1";
class Effects
{
voice="Wakeup";
};
};

Bsp.2:

class Item23
{
position[]={4690.1602,339,10278.343};
a=10;
b=10;
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="sound";
expCond="! isNull driver ch1";
expActiv="ch1 say Heli; sound setPos getPos ch1";
class Effects
{
voice="Heli";
};
};

Erklärung zu den Beispielen:
mhq1=Name des Auslösers für MHQ Nummer 1
xvec1=Name MHQ Nummer 1
sound=Name Auslöser für Helikopter Nummer 1
ch1=Helikopter Nummer 1
Bedingung des Auslösers=! isNull driver xvec1,! isNull driver ch1 (ein Fahrer muss im MHQ oder dem Helikopter sitzen)
bei Aktivierung=ch1 say Heli,xvec1 say Wakeup (ch1 sagt Sound "Heli.ogg",xvec1 sagt "Wakeup.ogg")
bei Aktivierung=sound setPos getPos ch1,mhq1 setPos getPos xvec1 (Auslöser wandert mit Helikopter oder MHQ mit)

Was ich gerne noch haben möchte:
1.
Der Sound soll gestoppt werden,wenn der Pilot oder Fahrer aus dem Fahrzeug/Helikopter steigt
und erst wieder starten,wenn diese Positionen wieder eingenommen werden.
2.
Der Sound ist zu lange für andere Mitspieler zu hören,wenn der Heli oder das MHQ sich von ihnen entfernt.
So,wie es jetzt ist,kann man den Sound die halbe Karte über hören und der Sound verschiebt sich in der Tonhöhe und
Abspielgeschwindigkeit.(say2D,say3D....??????????? )
Die hörbarkeit dürfte höchstens 20-50 Meter betragen.
3.
Das Ganze läuft momentan über das "automatisierte Verfahren" bei den Auslösern (activationBy="WEST").
Ich denke auch an ein Manuelles aktivieren nach (activationBy="ALPHA").
Das sollte aber nicht das Problem sein.

Auf einen Nenner gebracht:
Wenn mir jemand sagt,was bei "bei Deaktivierung" bei den Auslösern rein muss,um den Sound zu beenden
wenn der "Driver" ausgestiegen ist und wie ich den Sound in seiner Hörbarkeit auf 20-50 Meter bekomme,
währe ich euch sehr Dankbar.
Wenn sich einige "Profis" unter euch wundern,weil ich wahrscheinlich etwas Umständlich an die Sache heran gegangen bin,
dann muss ich leider sagen:
"Ich kann es nicht anders"

Eine Bitte zum Schluß:
Keine Vorschläge für Scripte,es sei denn,ihr macht euch die Mühe,mir ein fertiges Script zu liefern.
Scripte sind "Bohemiahische Dörfer" für mich.
Besten Dank im Voraus
Michael
Deep Five-9te ist offline   Mit Zitat antworten
Alt 05.06.2011, 09:51   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Schau in diesem Thread nach: Sound auf "Knopfdruck"?

Anzumerken ist noch, dass es ohne Skript nicht gehen wird, weil der Sound vor seinem Ende nur abgestellt werden kann wenn man das aufrufende Objekt löscht.

Wie z.B. in diesem Skript, welches in einem der Beispiele aus obigem Link verwendet wird und für den Sound ein zusätzliches unsichtbares Objekt verwendet.

Code:
// Aufruf Lokal | Vienna 11.01.2011
//
// Radio schaltet automatisch beim Einsteigen in ein Fahrzeug ein und beim Verlassen aus.
//
// 1. Aufruf schaltet Radio ein. Nächster Aufruf schaltet aus. usw.
//
// Aufruf:  temp = ["Soundname",Soundlänge]] execVM "Sound.sqf";
//
// Beispiel: temp = ["MeinSound",127] execVM "Sounds\Sound.sqf";
//  Wichtig, im 2. Übergabewert die Soundlänge eingeben (hier 127 Sekunden)! 
//
// In der description.ext ist die Klasse für den Sound einzufügen.

// Lokale Variable
 private ["_s","_l","_r","_t"];

// _s: Soundname aus dem Parameter in der Aktion laden
 _s = _this select 0;
 
// _l: Länge des Musikstücks (darf nicht viel kürzer sein, sonst Überschneidung)
 _l = _this select 1;
 
//Endlosschleife
while {true} do 
 {
  if (player != vehicle player AND alive player) then // Spieler in einem Fahrzeug
   {  
   
    // _r: unsichtbares Objekt
    _r = "HeliHEmpty" createVehicle getPos player;
    // Hauptschleife Sound starten (Wiederholung bis abgeschaltet wird)
    while {player != vehicle player AND alive player} do
     {
      // Sound starten
      _r say _s;
      // _t: nach Zeitablauf Sound neu starten
      _t = time + _l - 5;
      // Warteschleife bis Soundende und "Radio" dem Objekt _r nachsetzen
      while {_t > time AND player != vehicle player AND alive player} do 
       {
        _r setPos getPos player;
        sleep 1
       }
     };
     sleep 1; 
     deleteVehicle _r
   }; 
  sleep 1 
 }

Geändert von Vienna (05.06.2011 um 11:19 Uhr).
Vienna ist offline   Mit Zitat antworten
Alt 05.06.2011, 14:41   #3 (permalink)
Newbie
 
Benutzerbild von Deep Five-9te
 
Registriert seit: 08.08.2010
Ort: Naumburg/Saale
Alter: 56
Beiträge: 16
Standard

Ich habe mir deine Beispiele schon vor deinem Edit angesehen.
Ich habe die Mission so umgebaut,dass der Sound per Action-Menü
aufgerufen wird.

Stand der Dinge:
3 Helikopter,je einen eigenen Sound.
Text geändert in:
"Radio on/off Heli No.1"
"Radio on/off Heli No.2"
"Radio on/off Heli No.3"
Das Radio-Script vervielfältigt zu Radio.sqf,Radio1.sqf und Radio2.sqf
Also je ein Script pro Heli und Sound.
Nur Sicherheitshalber,k.a. ob auch eins gereicht hätte.
Sekundenangaben aus init den Sounds angepasst.

Testlauf:
Soweit,sogut.
Mit "Radio on/off Heli No.1" den Sound von Heli 1 abspielen lassen,
zu Heli 2 gehen und dort das gleiche machen.
Sound von Heli1 geht aus.

Nicht so schlimm,damit kann ich leben.
Die 3 Helis sind übrigends die Lift-Helis aus der Domination!!!!!!!!!!

KI in den Heli setzen,Sound an machen und über die Main-Mission fliegen lassen.
Heli wird abgeschossen und zerstört.
Heli respawnt in der Base und weigert sich,den Action-Menü Eintrag zu zeigen.
Kein Sound mehr möglich.


Das Script und die Beispiele sind nicht für den MP gedacht,oder?

Nun schaue ich mir mal deinen Edit an und werde sehen,
was ich damit los reißen kann.
Aber nicht mehr heute.
Mir Qualmt schon der Schädel.
Nächstes WE ist wieder Bastelzeit.
Dann melde ich mich wieder.

Besten Dank

Michael
Deep Five-9te ist offline   Mit Zitat antworten
Alt 06.06.2011, 09:46   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Du hast vermutlich das unten angeführte Skript verwendet, mit dem man das Radio über Aktionsmenü ein- und ausschalten kann. Den Kommentar am Beginn habe ich etwas abgeändert.

Dieses Skript verwendet mehrmals ein globale Variable (fett dargestellt), in der gespeichert ist ob der Radio ein oder aus ist.

Wenn du mehrere Fahrzeug mit dem Radio ausstatten willst, dann musst du Skripts mit verschiedenen Namen verwenden, von denen in jedem Skript diese globale Variable einen anderen Namen hat. z.B. eine Zahl hinten anfügen ViennasRadio1 Diese Änderung muss unbedingt im jeweiligen Skript an jeder Stelle gleich geändert werden!

Für einen Respawn ist die Aktion nach createVehicle so anzuführen (dabei auf den jeweiligen Skriptnamen achten):
Code:
 _veh = "AH1Z" createVehicle position Player;
 _veh setVehicleInit ' temp = this addAction ["*** Radio ein- oder ausschalten ***","Sounds\Radio.sqf",["BlackAttack",127],-1,false,true,""] ';
 processInitCommands;
Im Mehrspielermodus ist das aber nicht synchronisiert, weil der say Befehl nur lokal ist. Da muss jeder Spieler den Radio separat ein- und ausschalten. Es hört also nur der Spieler den Sound der ihn jeweils eingeschalten hat. Das zu synchronisieren wäre sehr aufwendig.

Ein im Mehrspielermodus funktionierendes Beispiel findest du im Anhang. Allerdings wird der Sound automatisch ein- und ausgeschalten, abhängig davon ob ein Driver im Fahrzeug ist. Dafür kommt man mit einem Skript für alle Fahrzeuge aus, weil keine globale Variable verwendet wird. Unterschiedliche Soundnamen sind dabei möglich und werden als Parameter übergeben. Der Sound ist in der Umgebung der Fahrzeuge von allen Spielern zu hören. Eine "Bedienungsanleitung" findest du im Kommentar oben im Skripts vom Download.

Radio.sqf
Code:
/* Aufruf Lokal | Vienna 30.12.2010

 Radio über Aktionsmenü ein- und ausschalten

 1. Aufruf schaltet Radio ein. Nächster Aufruf schaltet aus. usw.

 Aufruf in der Initialisierung eines Objekt:  temp = this addAction ["Aktionstext","Dateiname",["Soundname",Soundlänge],-1,false,true,""]
   Wichtig! Im 2. Übergabewert Soundlänge die Abspieldauer des Sounds eingeben (im Beispiel 127 Sekunden)!

 Beispiel 1: temp = this addAction ["*** Radio ein- oder ausschalten ***","Sounds\Radio.sqf",["BlackAttack",127],-1,false,true,""]
 
 Beispiel 2: Für Vehicle welche mit createVehicle erstellt werden
    _veh = "AH1Z" createVehicle position Player;
    _veh setVehicleInit ' temp = this addAction ["*** Radio ein- oder ausschalten ***","Sounds\Radio.sqf",["BlackAttack",127],-1,false,true,""] ';
    processInitCommands;    

In der description.ext ist die Klasse für den Sound einzufügen.
*/

// Lokale Variable
  private ["_o","_s","_l","_r","_t"];

//globale Variable beim ersten Aufruf für Radio Kontrolle initialisieren.
  if (isNil "ViennasRadio") then {ViennasRadio = false};


// _o: Objekt welches den Sound abgibt
  _o = _this select 0;

// _s: Soundname aus dem Parameter in der Aktion laden
  _s = (_this select 3) select 0;
  
// _l: Länge des Musikstücks (darf nicht viel kürzer sein, sonst Überschneidung)
  _l = (_this select 3) select 1;
 
 
//Wenn aufrufendes Objekt zerstört, dann Aktion entfernen
 if (!alive _o) exitWith {player groupChat "---- Radio nicht mehr betriebsbereit! ----"; _o removeAction (_this select 2)};


// Radio einschalten wenn ViennasRadio false und ausschalten wenn ViennasRadio true
///////////////////////////////////////////////////////////////////////////////////

  if (!ViennasRadio) then //Radio erstellen (Radio einschalten)
    {
      ViennasRadio = true;
      // _r: unsichtbares Objekt
      _r = "HeliHEmpty" createVehicle getPos _o;
      // Hauptschleife Sound starten (Wiederholung bis abgeschaltet wird)
      while {ViennasRadio AND alive _o} do
        {
          // Sound starten
          _r say _s;
          // _t: nach Zeitablauf Sound neu starten
          _t = time + _l - 5;
          // Warteschleife bis Soundende und "Radio" dem Objekt _o nachsetzen
          while {_t > time AND ViennasRadio AND alive _o} do 
            {
              _r setPos position _o;
              sleep 0.5
            }
        };
      deleteVehicle _r
  }
else // vorherigen Radioskriptaufruf beenden (Radio ausschalten)
  {
    ViennasRadio = false;
Angehängte Dateien
Dateityp: zip Radio_in_Vehicle-utes.zip (932,3 KB, 42x aufgerufen)
Vienna ist offline   Mit Zitat antworten
Alt 12.06.2011, 07:16   #5 (permalink)
Newbie
 
Benutzerbild von Deep Five-9te
 
Registriert seit: 08.08.2010
Ort: Naumburg/Saale
Alter: 56
Beiträge: 16
Standard

So denn......
Neues Script-neues Glück

Setze ich eine KI in den Heli und lasse ihn zu einem beliebigen Ort fliegen,
ist alles in Ordnung.
Auch die Rückkehr von ihm mit dem Heli zu meiner Position ist OK.
Es klingt mit der Musik wie ein eingeschalteter "Außenlautsprecher" am Heli.
Dumm wird es erst,wenn ich als Pasagier einteige und die KI als Pilot los fliegen lasse.
Die Tonhöhe und die Abspielgeschwindigkeit der Musik verändert sich
bei der Innenansicht zu tiefer Stimme und langsamer Abspielgeschwindigkeit.
Beim wechsel in die Außenansicht,hört man im Hintergrund die gleiche Musik
in höherer Tonlage und schneller Abspielgeschwindigkeit zusammen mit
der zuvor geschilderten langsamen und tiefen Tonlage gleichzeitig.
Ich nehme an,es liegt an der Nachführung des "Unsichtbaren Heleports",
der ja die Musik ausgiebt.
Deswegen wollte ich ja ursprünglich,dass der Heli selbst mit "say"
die Musik wieder gibt.Da kommt die Tonwiedergabe vom Objekt selbst,
dass sich bewegt und mit ihm alle Insassen des Heli.
Ist der Heli zerstört worden,funktioniert das Ganze nach respawn
des Heli nicht mehr.
Kein Pip´s zu hören.
Ich erinnere noch mal daran,dass es die Lift-Heli´s in der Domination
sind,bei denen ich versuche eine Musikwiedergabe von selbst erstellten Sound zu basteln.
Eine Variante a la "Mando-Musik" mit Wiedergabe der internen Musik-Tracks von Arma
währe sicher einfacher zu bewerkstelligen.
Daran habe ich aber kein Intresse.
Außerdem betrachte ich mein Ansinnen als eine Art "Denksport".
Sollte es nicht gelingen,habe ich wenigstens ein wenig in den
"Eingeweiden" von Arma rum gewühlt und die Grenzen des
Machbaren erfahren.
Ich werde mich heute noch mal hin setzen,und mit "Versuch und Irrtum"
ein wenig experimentieren.
Eventuell komme ich da auch zu einem befriedigendem Ergebnis.
Deep Five-9te ist offline   Mit Zitat antworten
Alt 12.06.2011, 15:20   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Hast du das mit dem Beispiel aus Post #4 getestet? (Dazu eine KI in deine Gruppe hinzufügen.)

Dort ist ja der Heli mit dem Auslöser wie bei einem Respawn erstellt und der Sound ist vorhanden. (Was dabei für den Respawn zu beachten ist siehe auch im Post #4.)

In dem Beispiel gibt es bei mir keine Verzerrungen wenn die KI der Driver ist. Verwendest andere Sounddateien? Sind sie im .ogg Format?
Vienna ist offline   Mit Zitat antworten
Alt 12.06.2011, 19:35   #7 (permalink)
Newbie
 
Benutzerbild von SUBmars
 
Registriert seit: 24.05.2011
Ort: Innsbruck
Beiträge: 25
Standard

Also ich nehme mal einfach das Thema für mein Problem.
Seit gut 3 Stunden probiere ich nun Musik abzuspielen.
Die description:
PHP-Code:
class CfgMusic {
tracks[]= { Intormusic };
  class 
Intromusic {
    
name "Intromusic";
    
sound[] = {\music\Intromusic.oggdb+010.0};
  };
}; 
Und mit einem simplen Auslöser, in der Aktivierungszeile steht playMusic "Intromusic"; versuch ich dieses Musikstück aufzurufen.
Es will einfach nicht.
Ich habe es in .ogg Format mit 41kHz Stereo konvertiert und es will einfach nicht funzen.
Bitte Hilfe ich dreh sonst noch durch und ich weis nicht wie lange meine Maus das noch durchhält.
__________________


Geändert von SUBmars (12.06.2011 um 19:59 Uhr).
SUBmars ist offline   Mit Zitat antworten
Alt 12.06.2011, 19:51   #8 (permalink)
Imperator fori nocturni - This sucks more than anything that has ever sucked before 10 Jahre hx3
20.000 Beiträge
 
Benutzerbild von burns
 
Registriert seit: 13.04.2003
Ort: Monerica
Alter: 35
Beiträge: 32.186
Standard

Les mal ganz genau nach was du da in der Codebox geschrieben hast
__________________

burns ist offline   Mit Zitat antworten
Alt 12.06.2011, 19:59   #9 (permalink)
Newbie
 
Benutzerbild von SUBmars
 
Registriert seit: 24.05.2011
Ort: Innsbruck
Beiträge: 25
Standard



Habs ausgebessert funzt aber immer noch nicht.
__________________

SUBmars ist offline   Mit Zitat antworten
Alt 12.06.2011, 20:59   #10 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Probiere diese Zeile einmal so:

sound[] = {"\music\Intromusic.ogg", db+0, 1.0};
Vienna ist offline   Mit Zitat antworten
Alt 16.06.2011, 13:42   #11 (permalink)
Newbie
 
Benutzerbild von SUBmars
 
Registriert seit: 24.05.2011
Ort: Innsbruck
Beiträge: 25
Standard

Danke Vienna.
__________________

SUBmars ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Real Combat Sound JSR Mods & Addons 45 18.11.2011 01:22
Hilfe bei config Motor Sound stiefel1976 Editing & Scripting 4 30.01.2011 18:16
Sound beenden Anemia Editing & Scripting 5 11.07.2010 13:08
description.ext (sound) problem miromanu Editing & Scripting 7 07.07.2010 15:40
Riflesounds Big Fan Mods & Addons 3 26.05.2010 03:41


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116