Construction Set Musik-Typ per Script feststellen

Fellan

Freund des Hauses
In meinem Worldspace A ist der Standard-Musiktyp auf "Default" gestellt, also die Musik, die im "Explore"-Ordner ist.

Der Spieler geht jetzt durch eine Tür und landet an einer anderen Stelle im selben Worldspace, noch dazu in der selben Cell. Da soll jetzt aber Musik aus dem "Dungeon"-Ordner abgespielt werden. Kann ich per Script, der auf der Tür liegt, regeln, dass ab jetzt Dungeon-Musik gespielt werden soll? Sobald der Spieler die Gegend wieder verlässt, soll auch wieder Default-Musik gespielt werden. Wie ist das möglich?

Kann ich auch einen eigenen Musik-Typ erstellen, der dann in der Auswahl beim Worldspace oder der Cell angezeigt wird?

Außerdem wüsste ich gern, wie man Zeit und Wetter per Script regeln kann.
 
Danke.

Wenn ich per "StreamMusic Dungeon" also eine beliebige Dungeon-Musik einspielen lasse, würde aber am Ende der Dungeon-Musik wieder Default-Musik laufen. Ist es irgendwie möglich, dass ich dann dauerhaft Dungeon-Musik laufen habe, bis ich wieder Default-Musik haben will?
 
Wenn ich per "StreamMusic Dungeon" also eine beliebige Dungeon-Musik einspielen lasse, würde aber am Ende der Dungeon-Musik wieder Default-Musik laufen.

Es ist leider nicht ganz so einfach. Zitat aus dem Wiki:

To use this command in a cell with music-type "Default", you need to call StreamMusic random first, then wait for a frame for the command to be executed, and then use Streammusic "<filename>"

Nur dass das so bei mir noch nie funktioniert hat. :( Seit einem halben Jahr schon laboriere ich immer mal wieder daran herum, in Zellen mit "Default"-Musik zuverlässig eigene Musik abzuspielen. Mal gehts, mal nicht. Das ist wirklich ein Käse.

Ist es irgendwie möglich, dass ich dann dauerhaft Dungeon-Musik laufen habe, bis ich wieder Default-Musik haben will?

Nein.
 
Hm... in der Bruma Magiergilde gehts doch auch. Schaut euch mal das Questscript an bei der sie zerstört wird. Da wird ja auf Dungeon-Musik umgeschlatet.
 
Ich schrieb ja auch von Zellen mit "Default"-Musik. In der Regel Exterior-Zellen. In Interiors funktioniert StreamMusic, wie im Wiki beschrieben.

Die Magiergilde in Bruma sind unterschiedliche Zellen. Für die zerstörte Version ist im CS Dungeon-Musik eingetragen.
 
  • Like
Reaktionen: roobsi
Ich habe das nicht ausprobiert, aber das könnte eine Lösung sein:

Code:
scn MusikScript

short init
float timer

begin onActivate Player ;Script liegt auf der Tür, über die der Spieler die Cell betritt

if init == 0
   set init to 1
endif

end



begin GameMode || menumode ;wichtig, da der Ladebildschirm ja 'menumode' ist!

if init == 1
   set timer to 2
   StreamMusic random
   set init to 2
elseif init == 2
   if timer > 0 ;statt einen Frame wird eine Sekunde gewartet, um sicher zu gehen, dass der obige Befehl auch mindestens einen Frame vor diesem hier ausgeführt wird!
      set timer to timer - GetSecondsPassed
   else
      StreamMusic Dungeon ;oder filename
      set init to 0 ;damit das ganze auch wieder funktioniert
   endif
endif

end

Das ist aber wie gesagt ungetestet.
 
Hmm...

begin GameMode || menumode

Bist Du sicher, dass das funktioniert? Habe ich glaube ich auch schon einmal in einem Deiner Weißgoldturmskripte gesehen. Ich möchte fast die Behauptung wagen, dass der folgende Block nur im GameMode ausgeführt wird. Sicher bin ich mir aber nicht.

Desweiteren würde Dein Skript nach dem StreamMusic Random das aktuelle Musikstück abbrechen und ein neues aus dem Default-Ordner kurz anspielen. Nach einer Sekunde dann würde dieses gleich wieder beendet und nun die Dungeon-Musik gestartet. Das klingt nicht sehr gut.

Sofern es denn überhaupt funktioniert. Ein Skript ganz ähnlich dem Deinen hatte ich auch schon einmal probiert. Bei mir wurde wieder die [censored] Default-Musik gespielt. Kann natürlich sein, dass einfach irgendeine krude Einstellung in meiner Ini oder sonstwas dafür verantwortlich ist. Ich meine, dieser Eintrag zu StreamMusic steht seit mehr als einem Jahr unwidersprochen so im Wiki. Wenn er falsch wäre, müsste es ja eigentlich schon mal irgendjemand aufgefallen sein? :?

Das beste, was ich bislang hinbekommen habe ist, ganz kurz einen Kampf zu inszenieren. Für ein paar Sekundenbruchteile wird eine feindliche Zwergkreatur zum Spieler gemoved und gleich darauf wieder fort. Gerade lange genug, damit die Combat-Musik kurz gestartet wird. Danach (und bei mir eben nur dann) gelingt es mir, ein eigenes Lied abzuspielen - manchmal. :(

Das Problem habe ich wie gesagt nur, wenn zuvor Default-Musik gespielt wird. So habe ich auf der Ausgangstür einer Höhle ein Skript liegen, welches das Abspielen eines eigenen Liedes startet. Das klappt anstandslos. Das Stück wird im Exterior außerhalb der Höhle zu Ende gespielt bevor wieder die Default-Musik einsetzt. Mach ich's testweise umgedreht, d.h. ich lege das Skript auf die Eingangstür, wird nicht mein Lied gespielt, sondern es erklingt im Inneren die Dungeon-Musik.

Wenn Du für Dein Vorhaben eine zuverlässige Lösung findest oder es bei Dir ganz einfach funktioniert, wäre ich für eine Info darüber sehr dankbar, wie Du das gemacht hast. :)
 
Ich würde auch vermuten, dass das nicht komplett klappt.
Vielleicht ist es besser, wenn man eine Global oder eine Quest-variable benutzt... sich er bin ich mir nicht, aber man könnte es ja vielleicht so machen:
Dieser Script muss auf die Tür, die es zu aktivieren gilt:
Code:
scn ZuAktivierendeTürSCRIPT

Begin OnActivate

set [variable] to 1

End
Dieser Script muss auf die Tür, aus der man "rauskommt":
Code:
scn DieZweiteTürSCRIPT

Begin GameMode

If [variable] == 1
StreamMusic Dungeon
set [variable] to 0
Endif

End
Ich bin mir nicht sicher, ob der Script wirklich funktioniert... versuchen kann man es ja trotzdem vielleicht. :)

MfG Gildur
 
Brausebart schrieb:
Bist Du sicher, dass das funktioniert? Habe ich glaube ich auch schon einmal in einem Deiner Weißgoldturmskripte gesehen. Ich möchte fast die Behauptung wagen, dass der folgende Block nur im GameMode ausgeführt wird. Sicher bin ich mir aber nicht.

Ja, bin ich. Es gibt den Blocktype "GameMode" und "MenuMode". "||" ist ein "AND/OR", also eine Condition, die erfüllt werden kann, aber nicht muss. Der Script läuft also sowohl im Menü- als auch im Spiel-Modus, weil "begin GameMode AND/OR MenuMode". Die Musik wechselt also wie gewohnt im Menü-Modus.

Ob der Script funktioniert weiß ich nicht, der Blocktype "begin GameMode || menumode" aber schon.