PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BGM in Variablen einspeichern



Ken der Kot
19.04.2018, 13:36
Kann man BGM in Variablen speichern? Also daß man die einspeichert und der Maker weiß dann welche BGM er spielen soll wenn zum Beispiel die Variable 1 ist, soll er BGM 1 abspielen. Oder eben die, die auf der Map in den Properties eh schon eingestellt ist. Wenn die Variable 2 ist soll er die BGM 2 abspielen. Geht sowas mit einem Script? Hätte sehr starkes Interesse an sowas.

Grüßlies von eurem Ken dem Kot

Linkey
19.04.2018, 13:40
Kann ich mal später reinschauen, wenn ich zugriff auf den RPG Maker habe. Aber generell lässt es sich auch per Common Event lösen.
Klingt jedenfalls, als würdest du es so machen wollen:
Variable XXXX = irgendein Wert

Dann Common Event aufrufen und per Conditional Branch abfragen:
IF Variable XXXX = 1.
play BGM A
ELSE IF Variable XXXX = 2.
play BGM B
....

Ken der Kot
19.04.2018, 13:43
Ja, genau sowas :D aber der Maker soll bei 1 auf die Musik zugreifen, die in den Properties eingestellt ist.

Linkey
19.04.2018, 13:47
Bau das Gerüst einfach schon einmal auf. Ich versuche im Laufe des Tages in den Marker zu schauen und nenne dir den Befehl, der diese ausliest.
Aus dem Kopf heraus müsste es aber folgendes sein:
$game_map.bgm.play

Wenn du diesen Script-Befehl ausführst, sollte die Map-BGM abgespielt werden.

Ken der Kot
19.04.2018, 13:51
Stabil, danke! Ja, ich zimmer die Fassade schonmal zusammen und schau dann, ob es funzt

Edit:

Folgende 3 hab ich getestet und diese sind es leider nicht:

$game_map.bgm.play
$map.autoplay_bgm
$map.bgm.play

Linkey
19.04.2018, 13:56
Ja sollte
$game_map.bgm.play
oder
$game_map.map.bgm.play
sein.

Den genauen Aufruf solltest du in den Scripts finden, bei Game_Map. Einfach nach "bgm" suchen :)

Ken der Kot
19.04.2018, 14:05
Der Game_Interpreter klatscht mir da leider ein "undefined method "bgm" for nil class" entgegen. Hab die betreffende Stelle gefunden und die Calls ausprobiert, aber die die ich ausprobiert hab hauen mich alle aus dem Spiel raus. Sowohl mit $, als auch mit @ vorn dran.

Linkey
19.04.2018, 14:24
Das generierte Objekt von Game_Map wird in $game_map abgelegt.

Hab gerade mal schnell reingeschaut.
Entweder du machst das Objekt "map" innerhalb der Klasse Game_Map für Zugriffe verfügbar:
def map
return @map
end
Dann geht es über: $game_map.map.bgm.play

Oder du verwendest (das würde ich dir empfehlen) gleich den richtigen Methoden aufruf:
$game_map.autoplay

Dabei wird allerdings auch BGS ausgeführt, falls vorhanden. Falls du das nicht möchtest, kannst du dir die autoplay methode kopieren und als autoplay_2 einfügen und dort die Zeile mit "BGS" entfernen.

Ken der Kot
19.04.2018, 14:29
YES, klappt. $game_map.autoplay war der richtige Aufruf. Danke schön.

Dein Ken der Kot