Zufälliger Sound

T.R.Graves
Also ich habe in meiner Map ein kleines Gewitter eingebaut das sich in einem abstand von 50 Sekunden in Blitzen manifestiert.

Mein Problem ist das ich einen Sound dazu gesrcipted habe der auch abgespielt wird, aber es ist natürlich etwas langweilig immer den gleichen Sound zu hören da es im Orginal Spiel einige Donner Sounds gibt.

Meine Frage ist wie kann ich scripten das ein Origin zufällig einen Donnersound in einem bestimmten Abstand abspielt.

Mein einfaches Orginalscript sieht so aus.

donner()
{
wait (51.4);
thunder = getent ("donner", "targetname");
thunder playsound("donner");
{
thread donner();
}
}

Ist sicherlich nur eine Scriptzeile aber ich komme nicht dahinter.

Ciao
OLD MAN WITH GUN
Schon mal in die iw_06.iwd geschaut?
soundaliases -> iw_sound2.csv
Suchbegriff "thunder"

Im Prinzip musst du nur den Donner in der soundalias.csv mehrmals definieren, jeweils mit einer anderen sequence-Nummer (im Beispiel rot markiert) und mit jeweils einer anderen wav-Datei. An deinem Script brauchst du da garnichts ändern.

Zitat:

Beispiel mehrere Sounds
#Ambient Elements
donner,1 ,amb_elements/elm_thunder_y01.wav,0.85,0.99,,0.8,1.1,100000,,local,streamed
,,,,mp_testmap,,,,,,,,0.2
donner,2 ,amb_elements/elm_thunder_y02.wav,0.85,0.99,,0.8,1.1,100000,,local,streamed
,,,,mp_testmap,,,,,,,,0.2
donner,3 ,amb_elements/elm_thunder_y03.wav,0.85,0.99,,0.8,1.1,100000,,local,streamed
,,,,mp_testmap,,,,,,,,0.2
donner,4 ,amb_elements/elm_thunder_y04.wav,0.85,0.99,,0.8,1.1,100000,,local,streamed
,,,,mp_testmap,,,,,,,,0.2



Edit:
Wenn du noch mehr Zufall haben willst, solltest du die Zeit zwischen den Donnern nicht fest vorgeben (nichts ist unnatürlicher, als Donner in immer den selben Zeitabständen). Du solltest die Wartezeit zwischen den Donnern per Zufallszahl generieren, sodass das etwas natürlicher wird.

Zitat:

Beispiel
delay = 30.0 + randomfloat(30.0);
wait (delay);
Auf diese Art wird der nächste Donner in einem Zeitabstand zwischen 30.0 und 60.0 Sekunden gespielt (der Nächste kommt also mal früher oder mal später). Du kannst dir natürlich die Zeiten selber festlegen. Im oben genannten Beispiel bedeutet die 30.0 vorne hinter dem Gleichheitszeichen die minimale Zeit, die in Klammern bei randomfloat die maximale Erweiterung (als 30 Sekunden plus irgendwas zwischen 0 und 30).
Ist aber wie gesagt nur ein Vorschlag.
T.R.Graves
Ok, es funktioniert sehr gut und war doch so einfach wie ich mir dachte.

Einfach nur in der soundaliases eine Zahl einsetzen, hätte ich auch selber drauf kommen können.

Also danke noch mal grosses Grinsen

Bis denn Gute Nacht!